Commit Graph

9405 Commits

Author SHA1 Message Date
bdfd540c32 Bump version to 3.12.0-beta4 2026-06-30 08:08:02 +02:00
1f755eed98 Don't swallow PlayerStatusEvent if media changed (#8554)
### Description

Don't swallow PlayerStatusEvent if media changed. We only checked the
status, but if we directly started a new episode without going through
pause/play, we skipped sending the PlayerStatusEvent incorrectly.

Closes #8548
Closes #8516
Closes #8530

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-06-30 08:05:40 +02:00
7ad0ce618a Run widget updates from a background thread (#8553)
### Description

Run widget updates from a background thread
Closes #8546

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-06-29 22:46:50 +02:00
e977dad7fc Enable media3 disk cache in new playback service (#8552)
### Description

Enable media3 disk cache in new playback service
Closes #8487

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-06-29 22:06:42 +02:00
5442a66573 Fix cover display on chromecast (#8543)
### Description

Fix cover display on chromecast

Closes #8503

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-06-23 09:20:47 +02:00
f9ca0e55bb Try to reduce memory consumption (#8539)
### Description

Try to reduce memory consumption
- Initialize the data source factory only once
- Do not hand out cover images to media sessions (Android Auto, etc)

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-06-23 07:59:31 +02:00
c789cc03ea Fix crash when leaving while delete dialog is open (#8542)
### Description

Fix crash when resuming the activity while "delete podcast" dialog is
open.

The dialog gets called with a `Feed` as its extra but the `Feed` object
is not serializable. When the background activity gets killed, restoring
from the instance state is broken and crashes the app. Simply making it
serializable fixes the problem. Crash reported through Google Play.

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-06-23 07:57:37 +02:00
f75b3ff1a8 Fix undo snackbar showing placeholders (#8540)
### Description

Fix undo snackbar showing placeholders

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-06-23 07:57:09 +02:00
43394f9ff3 Fix crash when speed dialog gets closed while handler is running (#8541)
### Description

Fix crash when speed dialog gets closed while handler is running. This
seems super hard to trigger, but apparently some of our beta testers
managed to do it.

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-06-23 07:56:44 +02:00
8ed8b74232 Fix not displaying artist in notification (#8533)
### Description

Fix not displaying artist in notification

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-06-20 09:09:48 +02:00
1d8f354028 Bump version to 3.12.0-beta3 2026-06-04 21:33:24 +02:00
cd511305f5 Translations update from Hosted Weblate (#8511)
Translated using Weblate
Translator: de by ByteHamster <info@bytehamster.com>

Translated using Weblate
Translator: pt by "Filipe Mota (BlackSpirits)" <blackspirits@gmail.com>

Translated using Weblate
Translator: de by VfBFan <vfbfan@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: fr by Matth78 <3684177+Matth7878@users.noreply.github.com>

Translated using Weblate
Translator: it by Luca <loucasal@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: iw by Yaron Shahrabani <sh.yaron@gmail.com>

Translated using Weblate
Translator: ru by Jin Xiashomi <cute.XFCE.rat@2mail.co>

Translated using Weblate
Translator: et by Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>

Co-authored-by: ByteHamster <info@bytehamster.com>
Co-authored-by: Filipe Mota (BlackSpirits) <blackspirits@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jin Xiashomi <cute.XFCE.rat@2mail.co>
Co-authored-by: Luca <loucasal@users.noreply.hosted.weblate.org>
Co-authored-by: Matth78 <3684177+Matth7878@users.noreply.github.com>
Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>
Co-authored-by: VfBFan <vfbfan@users.noreply.hosted.weblate.org>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
2026-06-04 21:31:55 +02:00
ca86fec2c2 Fix widget buttons on new playback service (#8510)
### Description

Fix widget buttons on new playback service
Closes #8454

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-06-04 20:49:10 +02:00
0207527d9d Ensure that we always have something to resume (#8502)
### Description

Ensure that we always have something to resume

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-30 20:32:44 +02:00
b1604a503a Fix redirect checker taking too long (#8501)
### Description

Fix redirect checker taking too long when enriching media items. We
cannot do this here, otherwise the media session takes too long to load
lists with many items. Also, it potentially delays starting playback,
which leads to "service did not start in time" crashes.

Instead, do this in the data source factory and cache the result. That
way, we already start playback earlier and transition the service
earlier.

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-30 12:22:26 +02:00
a0010694a3 Fix sleep timer and chapter notification buttons (#8499)
### Description

Fix notification buttons: Fix sleep timer button not getting displayed
and chapter button not seeing any chapters.

Closes #8473

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-30 11:19:27 +02:00
b57991fab2 Reduce padding of currently playing item background (#8498)
### Description

Reduce padding of currently playing item background

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-29 12:56:51 +02:00
7bc412a06e Fix pressing cover to start playing (#8497)
### Description

Fix pressing cover to start playing in new playback service

Closes #8492

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-29 11:43:30 +02:00
f3cce39ee5 Reduce number of PlayerStatusEvent messages (#8495)
### Description

We send lots of duplicate PlayerStatusEvent messages, especially around
seeking and when pressing play for the first time. Each of those events
starts a re-load of the current fragments. This means we parse chapters
again, update the position again, etc.

Closes #8447

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-29 11:27:18 +02:00
d1541863ca Fix crash in sync preferences fragment (#8496)
### Description

Fix crash in sync preferences fragment. When changing the theme while on
the sync preferences page, we went through onCreate with restoring the
instance state. In this case, the action bar is not available, so we
crash. Move action bar handling to a new function that is not called
from onCreate.

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-29 11:11:14 +02:00
036b01f003 Fix pausing on bluetooth disconnect (#8493)
### Description

Fix pausing on bluetooth disconnect. This took ~100 lines of code in the
old service, with media3 it's a single line :)

Closes #8482

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-28 21:27:03 +02:00
55cf75def9 Add if-range header when downloading (#8491)
### Description

Add if-range header when downloading. Only resume download if the server
tells us that the file didn't change in the meantime. This can happen
especially in the presence of dynamic ad insertion.

Original idea by @bushnelb in #8441

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests

Co-authored-by: bushnelb <134662243+bushnelb@users.noreply.github.com>
2026-05-28 16:39:10 +02:00
269d6b7ef1 Fix chapter buttons in new playback service (#8488)
### Description

Fix chapter buttons in new playback service. They still tried to use the
old service controls.
Closes #8483

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-28 10:58:21 +02:00
f5184b68c7 Bump version to 3.12.0-beta2 2026-05-25 22:51:11 +02:00
5c1ba4e235 Translations update from Hosted Weblate (#8479)
Translator: de by ByteHamster <info@bytehamster.com>

Translated using Weblate
Translator: ro by ByteHamster <info@bytehamster.com>

Translated using Weblate
Translator: in by Arif Budiman <arifpedia@gmail.com>

Translated using Weblate
Translator: pt-rBR by OlliesGudh <github@paulogomez.anonaddy.com>

Translated using Weblate
Translator: pt-rBR by burns <ahoradocafezinho@gmail.com>

Translated using Weblate
Translator: tr by Bora Atıcı <boratici.acc@gmail.com>

Translated using Weblate
Translator: pt by ssantos <ssantos@web.de>

Translated using Weblate
Translator: es by CJ Montero <cristlad@proton.me>

Translated using Weblate
Translator: es by Libre <6n0n1m0s@proton.me>

Translated using Weblate
Translator: it by Luca <loucasal@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: cs by Petr Čech <petr@cechovi.org>

Translated using Weblate
Translator: sv by Martin Bergström <brgstrmm@gmail.com>

Translated using Weblate
Translator: fa by Danial Behzadi <dani.behzi@ubuntu.com>

Translated using Weblate
Translator: zh-rTW by samko5sam <sam930903@gmail.com>

Translated using Weblate
Translator: ro by Nicodim Ştefan <ioi_dima.86@protonmail.com>

Translated using Weblate
Translator: el by axilleas tsimp <axiltsi8@gmail.com>

Translated using Weblate
Translator: fr by Matth78 <3684177+Matth7878@users.noreply.github.com>

Translated using Weblate
Translator: zh-rTW by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: sk by Tibor Blažko <tblazko+transifex@gmail.com>

Translated using Weblate
Translator: eu by Eder Etxebarria Rojo <eder@betxepare.eus>

Translated using Weblate
Translator: sv by Efraim Sundelin <efraim.sundelin@gmail.com>

Translated using Weblate
Translator: gl by "josé m." <correoxm@disroot.org>

Translated using Weblate
Translator: iw by Yaron Shahrabani <sh.yaron@gmail.com>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: zh-rCN by 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: fil by Wacky Wars <wackywars21@gmail.com>

Translated using Weblate
Translator: da by ERYpTION <eryption@users.noreply.hosted.weblate.org>

Translated using Weblate
Translator: de by ByteHamster <info@bytehamster.com>

Translated using Weblate
Translator: de by VfBFan <vfbfan@users.noreply.hosted.weblate.org>

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate
Translator: be by Jaŭhien <j.kisliakou@gmail.com>

Translated using Weblate
Translator: pt-rBR by Gabriel <bloxgabriel18@gmail.com>

Translated using Weblate
Translator: el by axilleas tsimp <axiltsi8@gmail.com>

Translated using Weblate
Translator: sv by Martin Bergström <brgstrmm@gmail.com>

Translated using Weblate
Translator: fi by Lilli <kauhanen.johannes20@gmail.com>

Translated using Weblate
Translator: gl by "josé m." <correoxm@disroot.org>

Co-authored-by: Arif Budiman <arifpedia@gmail.com>
Co-authored-by: Bora Atıcı <boratici.acc@gmail.com>
Co-authored-by: ByteHamster <info@bytehamster.com>
Co-authored-by: CJ Montero <cristlad@proton.me>
Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Co-authored-by: ERYpTION <eryption@users.noreply.hosted.weblate.org>
Co-authored-by: Eder Etxebarria Rojo <eder@betxepare.eus>
Co-authored-by: Efraim Sundelin <efraim.sundelin@gmail.com>
Co-authored-by: Gabriel <bloxgabriel18@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jaŭhien <j.kisliakou@gmail.com>
Co-authored-by: Libre <6n0n1m0s@proton.me>
Co-authored-by: Lilli <kauhanen.johannes20@gmail.com>
Co-authored-by: Luca <loucasal@users.noreply.hosted.weblate.org>
Co-authored-by: Martin Bergström <brgstrmm@gmail.com>
Co-authored-by: Matth78 <3684177+Matth7878@users.noreply.github.com>
Co-authored-by: Nicodim Ştefan <ioi_dima.86@protonmail.com>
Co-authored-by: OlliesGudh <github@paulogomez.anonaddy.com>
Co-authored-by: Petr Čech <petr@cechovi.org>
Co-authored-by: Sketch6580 <sketch6580@users.noreply.hosted.weblate.org>
Co-authored-by: Tibor Blažko <tblazko+transifex@gmail.com>
Co-authored-by: VfBFan <vfbfan@users.noreply.hosted.weblate.org>
Co-authored-by: Wacky Wars <wackywars21@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: axilleas tsimp <axiltsi8@gmail.com>
Co-authored-by: burns <ahoradocafezinho@gmail.com>
Co-authored-by: josé m. <correoxm@disroot.org>
Co-authored-by: samko5sam <sam930903@gmail.com>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/antennapod/app/
Translation: AntennaPod/App
2026-05-25 22:48:34 +02:00
40ff8c0bbf Make progress indicator more visible in dark theme (#8478)
### Description

Make progress indicator more visible in dark theme

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-25 22:32:00 +02:00
2a84466d3f Fix clicking position links in shownotes (#8477)
### Description

Fix clicking position links in shownotes with new playback service

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-25 22:31:18 +02:00
6fb78719f5 Fix too many items showing up in playback history (#8476)
### Description

Fix too many items showing up in playback history. When continuous
playback is disabled, we still load the next episode to update the media
session. However, we should not mark it as started. Otherwise we clutter
the playback history with episodes that have not been played.

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-25 22:31:00 +02:00
7c768dceca Improve deletion from local folders (#8440)
### Description

Fix two issues with deleting episodes from local folder subscriptions:

1. **#8425**: The Delete action button was missing from the
single-episode detail screen for local folder items. In
`ItemFragment.java`, `actionButton2` was only set to
`DeleteActionButton` when `media.isDownloaded()` — but local feed media
is never "downloaded" in the traditional sense, so the button was never
shown. Added `item.getFeed().isLocalFeed()` to the condition.

2. **#8424**: The multi-select Delete action silently did nothing for
local folder items. The `performMultiSelectAction` method runs on a
`Schedulers.computation()` background thread, but
`LocalDeleteModal.showLocalFeedDeleteWarningIfNecessary` needs to show a
dialog on the main thread. Wrapped the call in
`activity.runOnUiThread()` in `EpisodeMultiSelectActionHandler` so the
confirmation dialog is shown (or deletion proceeds directly for
non-local items).

Both fixes ensure the local-folder delete warning dialog is still shown
when appropriate.

Closes: #8424
Closes: #8425

### Checklist
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [ ] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [ ] If it is a core feature, I have added automated tests

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ByteHamster <5811634+ByteHamster@users.noreply.github.com>
Co-authored-by: ByteHamster <info@bytehamster.com>
2026-05-20 10:38:00 +02:00
bf65dd5601 Fix dismissing miniplayer on media3 service (#8453)
### Description

Fix dismissing miniplayer on media3 service. To make this super nice, we
would need resumption support at runtime, but media3 does not support
that: https://github.com/androidx/media/issues/770
Closes #8446

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-19 12:47:16 +02:00
120ee36cc9 Fix rename icon in dark theme (#8451)
### Description

Fix rename icon in dark theme
Closes #8445

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-19 12:13:46 +02:00
8e5d4dab5e Fix trying to load local files over http (#8450)
### Description

Fix trying to load local files over http.
Closes #8449

```
E  java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but was 'content'
	at okhttp3.HttpUrl$Builder.parse$okhttp(HttpUrl.kt:1254)
	at okhttp3.HttpUrl$Companion.get(HttpUrl.kt:1634)
	at okhttp3.Request$Builder.url(Request.kt:184)
	at de.danoeh.antennapod.ui.episodeslist.MediaSizeLoader.lambda$getFeedMediaSizeObservable$0(MediaSizeLoader.java:46)
	at de.danoeh.antennapod.ui.episodeslist.MediaSizeLoader$$ExternalSyntheticLambda0.subscribe(D8$$SyntheticClass:0)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate.subscribeActual(SingleCreate.java:40)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
	at io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
	at io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(Scheduler.java:644)
	at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
	at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
	at java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:348)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1154)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:652)
	at java.lang.Thread.run(Thread.java:1564)

```

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-19 12:13:18 +02:00
501251d8ff Bump version to 3.12.0-beta1 2026-05-14 15:18:14 +02:00
0a1ea7bb3d Merge branch 'master' into develop 2026-05-14 15:10:05 +02:00
6c3492af72 Update store metadata 3.11.4 2026-05-14 14:57:03 +02:00
7a362e12ff Follow all redirects before giving stream url to ExoPlayer (#8436)
### Description

Follow all redirects before giving stream url to ExoPlayer. This is an
attempt to reduce the impact of dynamic ad insertion changing the media
file while AntennaPod is still playing it.

Contributes to #7409

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-14 14:55:19 +02:00
2fa245c093 More 'expressive' item backgrounds (#8435)
### Description

Material 3 "expressive" uses a lot more bold color. Make the currently
playing item background a bit more expressive by using a stronger color.

Before/After:
<img width="200" alt="Screenshot_20260514-135531"
src="https://github.com/user-attachments/assets/6571f48c-333b-4c3b-b4e5-799e10a3cf84"
/> <img width="200" alt="Screenshot_20260514-135455"
src="https://github.com/user-attachments/assets/c709a9d8-a5bb-4c9e-bade-b805f68e3788"
/>


### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-14 14:24:17 +02:00
61b227e546 Remove 'pause on focus loss' setting (#8433)
### Description

Remove 'pause on focus loss' setting. The setting is non-functional with
the new playback service, which always pauses (and never ducks) when on
media type speech. This aligns with the Android system defaults and
media3 behavior.

Closes #8390

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-14 14:19:34 +02:00
5fe70196eb Basic WearOS app (#8396)
### Description

An initial minimal implementation for a Wear OS app. So far, the wear
app can only display episodes and start them on the phone. No standalone
features available yet.

Contributes to #4264

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-14 14:17:54 +02:00
c39cfc9719 Shorten queue subtitle (#8432)
### Description

Shorten queue subtitle. In German, it sometimes broke to two lines,
which looked super messy

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-14 14:01:43 +02:00
188d756911 Tweak button design on home page (#8434)
### Description

Tweak button design on home page. We used text-based "arrows" (`»`).
Those don't work well depending on the language. Instead, use an actual
arrow icon.

Before/After:

<img width="200" alt="Screenshot_20260514-125712"
src="https://github.com/user-attachments/assets/da8c37c4-64c4-4904-986d-4df5020e7bc4"
/> <img width="200" alt="Screenshot_20260514-130130"
src="https://github.com/user-attachments/assets/3f527b42-b9cb-4aff-8eea-16c96e961661"
/>


### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-14 13:48:41 +02:00
9e18b674b2 Support password protected media streams in new playback service (#8430)
### Description

Support password protected media streams in new playback service

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-14 12:19:23 +02:00
7281fb1fc0 Animate subscription selection (#8431)
### Description

Animate subscription selection. Instead of jumping to the larger margin,
animate to it. Feels much more natural

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-14 12:15:41 +02:00
ec4f9a255f Fix two bugs in the new playback service (#8429)
### Description

Fix two bugs in the new playback service
- Play button sometimes not working because it checks the wrong ID
- Errors getting the player stuck because it thinks it is still playing

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-14 11:33:50 +02:00
e0f5f278a0 Add support for searching queue only (#8419)
### Description

The search icon in the queue now searches the queue only. A chip
indicates that this is the case. This lays the groundwork for adding
other filters as well.

Contributes to #4374

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-14 09:57:18 +02:00
e1ce785d58 Show "Import error" instead of "Export error" for import failures (#8427)
### Description

Fix a bug where import errors re-used the "export error" dialog, causing
user confusion.

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-13 19:22:18 +02:00
78594ecd85 Fix sleep timer hint text wrapping (#8420)
### Description

Closes: #8199

Updates the sleep timer dialog hint text so it uses `wrap_content`
height instead of a weighted zero-height layout. This lets the
disabled-continuous-playback warning expand to its full text instead of
being constrained to a single line.

This follows the layout cleanup suggested by the maintainer in the issue
thread.

### Checklist

- [x] I have read the contribution guidelines
- [x] I have performed a self-review of my code
- [ ] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project
- [x] I have mentioned the corresponding issue and the relevant keyword
in the description
- [x] If it is a core feature, I have added automated tests

Validation performed:

- `xmllint --noout app/src/main/res/layout/time_dialog.xml`
- `git diff --check`

Gradle validation attempted:

- `./gradlew :app:lintPlayDebug` could not run because the Android SDK
is not configured in this environment (`ANDROID_HOME` / `sdk.dir`
missing).
2026-05-09 07:48:50 +02:00
d9e258155c Add unit tests for opml import/export (#8418)
### Description

Adds Robolectric unit tests for `OpmlReader` and `OpmlWriter`, which
previously had no coverage.

### Checklist
- [ ] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [ ] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [ ] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [ ] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [ ] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ByteHamster <5811634+ByteHamster@users.noreply.github.com>
2026-05-09 07:47:07 +02:00
d3364aa085 Remove EventBus annotation processor (#8410)
### Description

Remove EventBus annotation processor. This breaks reproducible builds
without really helping with performance.

See also https://verification.f-droid.org/packages/de.danoeh.antennapod/

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-05-04 22:18:28 +02:00
6c44611c25 Clarify what the auto-delete-local setting does (#8409)
### Description

It looks like users do not understand the setting, clarify it.

Mastodon conversation:
https://fosstodon.org/@Diogenes@fuerth.social/116357209491352791

> the check mark for "Automatically delete from local folders" was
probably missing

> then I also have to check the box. But I wonder where else they should
be stored. In my opinion, it makes no sense to store them in a cloud
storage.

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint spotbugsPlayDebug spotbugsDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests

---------

Co-authored-by: Keunes <11229646+keunes@users.noreply.github.com>
2026-05-02 20:03:45 +02:00