Commit Graph

40 Commits

Author SHA1 Message Date
ByteHamster 4f10efee7a
Remove external files permission (#7407)
Android documentation:
> If your app is on a device that runs API level 19 or higher,
> you don't need to declare this permission to read and write files
> in your application-specific directories.

AntennaPod supports API 21+, so the permission is completely irrelevant.

Removing it to "clean up" our permissions list on F-Droid.
2024-09-14 11:19:15 +02:00
ByteHamster 5ea92f68b1
Catch crash when device does not support LoudnessEnhancer properly (#7390) 2024-09-08 12:06:20 +02:00
ByteHamster ab4d05e7b5
Check if media player is null before accessing tracks (#7388) 2024-09-08 12:05:13 +02:00
ByteHamster 936bfa029e
Increase buffer duration (#7362)
When podcasts use dynamic ad insertion and the media file changes
between different network requests, users might experience jumps.
Now, try to basically download the whole episode as soon as one
hits the play button. That should avoid most of the jumps.
2024-08-30 18:11:26 +02:00
Gregory Simon 627d8ee83f
Workaround of AudioEffect crashing on Lenovo tablets (#7309)
Android 14 on Lenovo tablets does not intialize this AudioEffect. Catch this exception and continue playback.
2024-08-01 22:06:49 +02:00
ByteHamster d7d783c63c Merge branch 'master' into develop 2024-07-27 19:22:28 +02:00
ByteHamster 87355b528c
Revert ExoPlayer back to default http backend (#7250)
Basically reverts 186de76d95
The OkHttp backend sometimes causes issues when servers cut the connection.
We had this happen after 1000s (about 17 minutes) for many users after upgrading OkHttp.
Removes proxy support for streaming.
2024-07-02 16:44:58 +02:00
Taco c51656f8e7
Spotbugs cleanup part 2 (#7204) 2024-06-09 20:47:49 +02:00
ByteHamster 0a768e6286 Merge branch 'master' into develop 2024-05-29 18:27:53 +02:00
hades 84b6f442fc
Fix android auto resume on reconnect issues (#7156)
Previously the MediaSession object created in PlaybackService in onCreate would
be completely empty. This seemed to confuse Android Auto, and prevented it from
restarting playback.

Filling the MediaSession object using the data from the player state at
onCreate resolves this problem.

This is documented in Android Auto docs[1], albeit indirectly and somewhat
confusingly.

Also move the setSessionToken call to the end of onCreate handler to ensure
that the media session has already been completely filled by the time the
session token is made available to the framework. There is no evidence that
this is required; however intuitively, this is likely the trigger for the
framework to start querying the media session.

The change was tested both with Desktop Head Unit and with a real vehicle.

[1] https://developer.android.com/training/cars/media/#initial-playback-state
2024-05-18 19:34:36 +02:00
ByteHamster 084723ad76
Add episodes without subscribing (#7098) 2024-05-09 11:44:26 +02:00
hades 292a21f8f8
Playback: remove special handling for Huawei (#7152)
This was introduced in 5105cdd7 to prevent crashes on Huawei phones[1].
However, it seems this has already regressed in 376ffed5, where the setActive
call was moved outside of the try-catch block.

Additionally, the problem is now 9 years old, and hopefully fixed for the users
already.

[1] https://stackoverflow.com/questions/31556679/android-huawei-mediassessioncompat
2024-05-01 11:36:15 +02:00
hades 841bda020f
Do not enable sleep mode in Android Auto (#7053)
When playback is started while an Android Auto projection is active, we want to
prevent automatic sleep timer from starting.

Note: the androidx.car.app library has not seen a full release since 1.2.0. We opted to use a release candidate here, which has a downgraded minSdk requirement, compatible with the current minSdk of AntennaPod at the time this dependency is introduced.
2024-04-17 00:01:34 +02:00
ByteHamster 91bcf4b400
Work around race condition where position reset might be undone (#7102)
When the position saver ticks while the service is just about to be
stopped, it might happen that we first reset the position and then
set it to the end again. This works around this.
2024-04-15 19:23:26 +02:00
ByteHamster f3bca9d9e4
Add lazy loading to feed item list (#7091) 2024-04-13 19:18:13 +02:00
ByteHamster d9e84f8c38
Target SDK 34 (#7075) 2024-04-09 22:33:52 +02:00
ByteHamster e578f4ca93
CI tweaks (#7069)
- Run Checkstyle with gradle to make it easier for users
  - No longer needs different configuration for new code
  - Exclude current violations
  - Fix some violations that somehow couldn't be specified in the exclusion file
- Print SpotBugs/Lint/Checkstly violations in GitHub format
  - Then the CI run gets annotated on the web UI
2024-04-07 23:28:14 +02:00
ByteHamster fc40da28a7 Merge branch 'master' into develop 2024-04-07 10:42:25 +02:00
Taco b6a4049ff4
Spotbugs cleanup (#6968)
Remove unused SpotBugs rules.
Fix URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD, ICAST_INTEGER_MULTIPLY_CAST_TO_LONG, NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION, OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE
2024-04-05 19:28:36 +02:00
ByteHamster 92ab575b15
Delete core module (#7060) 2024-04-05 19:20:27 +02:00
ByteHamster 2143ab1351
Move some tests from core module to their respective module (#7059) 2024-04-04 22:26:53 +02:00
ByteHamster a846e417b0
Fix playback state not being updated (#7050) 2024-04-01 09:55:30 +02:00
ByteHamster 8accb54685
Move playback service to module (#7042) 2024-03-29 21:05:02 +01:00
ByteHamster f6b45e7162
Rename FeedMedia methods to no longer have underscores (#7017) 2024-03-23 11:27:55 +01:00
Taco e1ef2a643a
Update AndroidX libraries (#6940) 2024-03-09 10:56:58 +01:00
quails4Eva 60f3d77eb2
Skip silence setting per feed (#6910) 2024-03-03 20:17:22 +01:00
Taco e9d190da1b
Bump AGP and Gradle (#6489) 2023-10-17 20:52:21 +02:00
ByteHamster 2ee2cb6702
Ignore skip in first second of playback (#6704)
Users complained that they wanted to skip the ending of
an episode and accidentally skipped the next one that
started while their finger was moving.
2023-10-13 00:26:07 +02:00
ByteHamster f1f3674230
Fix Chromecast crash if FeedItem does not have a feed (#6541) 2023-07-15 22:03:50 +02:00
ByteHamster f8be7d596d Merge branch 'master' into develop 2023-05-05 19:43:45 +02:00
Taco 78f65349d5
Update AGP to 7.4.0 (#5655) 2023-04-01 23:16:53 +02:00
ByteHamster 07b59d8b32
More workarounds for devices that crash when getting a cast context (#6378) 2023-03-14 19:56:23 +01:00
ByteHamster d8d94878a2
Fix crash on Huawei devices (#6365) 2023-03-06 21:39:47 +01:00
ByteHamster ccea00e405
Remove deprecated media players (#6354) 2023-02-26 16:38:31 +01:00
ByteHamster 5b6fe580e0
Fix Chromecast on Android 12, use styled receiver (#6321) 2023-02-17 20:13:30 +01:00
ByteHamster a29041cd4d No need to define INVALID_TIME multiple times 2022-11-01 12:06:13 +01:00
ByteHamster 48852e081a Delete a few unused things 2022-02-22 20:14:00 +01:00
TacoTheDank 87067af965 Fix some gradle deprecations 2022-02-09 11:28:40 -05:00
TacoTheDank 560bf3f434 Centralize library versions used in multiple modules 2021-12-04 13:01:22 -05:00
ByteHamster f0100e61ac
Chromecast rework (#5518) 2021-11-28 22:19:14 +01:00