Commit Graph

903 Commits

Author SHA1 Message Date
Renovate Bot bea9c5b75a chore(deps): update dependency io.insert-koin:koin-test to v3.5.3
Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/merge_requests/347>
2024-02-22 19:01:22 +00:00
Renovate Bot 3ebf11a6f6 chore(deps): update dependency io.insert-koin:koin-core to v3.5.3
Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/merge_requests/346>
2024-02-22 18:24:22 +00:00
Hugh Daschbach 5ee798abfb Remember hostname of last login.
Seed the login screen with saved host name, checkboxes.

Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/merge_requests/342>
2024-02-22 18:15:04 +00:00
Hugh Daschbach 6f24535b79 Auto logout on unrecoverable authentication error.
When an unrecoverable authentication error occurs, automatically log
the user out.  This seems better than leaving the user wondering why
the UI is unresponsive or why each track they try to play fails with a
quickly disappearing toast.

Unrecoverable authentication errors typically mean the server has
timed out the session out or the session token has been deleted on the
server.  Tokens expire after 14 days without use.

Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/merge_requests/342>
2024-02-22 18:15:04 +00:00
Hugh Daschbach 467556d75c Suppress some authentication noise in the log.
Most of this was added to debug issue !102.  So these are vestigial.

The exception here is the handling of AuthorizationException type 2.
These are produced by racing authentication requests and are
successfully managed.  So we need not report these.

Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/merge_requests/342>
2024-02-22 18:15:04 +00:00
Renovate Bot 10035aa5fe chore(deps): update dependency io.insert-koin:koin-android to v3.5.3
Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/merge_requests/345>
2024-02-22 09:44:21 +00:00
Georg Krause 8b9a1201af fix(copy): Use correct spelling of favorites
Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/merge_requests/344>
2024-02-22 09:35:03 +00:00
Hugh Daschbach 2088e06a68 Do not close NowPlayingBottomSheet between tracks.
If the user opens the NowPlayingBottomSheet whilst playing a non empty
queue, leave the BottomSheet open at the end of the playing track.

Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/merge_requests/343>
2024-02-21 21:59:28 -08:00
Renovate Bot 22a72d9e83 chore(deps): update dependency androidx.preference:preference-ktx to v1.2.1
Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/merge_requests/341>
2024-01-25 22:44:39 +00:00
Bruno-Van-den-Bosch 2bdf904804 Translated using Weblate (Dutch)
Currently translated at 100.0% (127 of 127 strings)

Translation: Funkwhale/Funkwhale For Android
Translate-URL: https://translate.funkwhale.audio/projects/funkwhale/ffa/nl/
2023-12-30 12:07:45 +00:00
mittwerk 042d6b4d6e Translated using Weblate (Russian)
Currently translated at 100.0% (127 of 127 strings)

Translation: Funkwhale/Funkwhale For Android
Translate-URL: https://translate.funkwhale.audio/projects/funkwhale/ffa/ru/
2023-12-30 12:07:44 +00:00
mittwerk 67aa47a4cb Translated using Weblate (Russian)
Currently translated at 100.0% (127 of 127 strings)

Translation: Funkwhale/Funkwhale For Android
Translate-URL: https://translate.funkwhale.audio/projects/funkwhale/ffa/ru/
2023-12-17 14:50:32 +00:00
Hugh Daschbach 01c676acd8 Update build tools path.
Gradle now fetches command line tools 30.0.3.
2023-12-14 22:14:31 -08:00
Hugh Daschbach b27e4c85ee Adjustments for Gradle 8 build environment.
Gradle 8 requires JDK version 11.
Update build class path to pick up new Gradle version.
2023-12-14 22:13:18 -08:00
Renovate Bot c061c64c3d chore(deps): update dependency gradle to v8 2023-12-12 13:08:10 +00:00
Georg Krause 554bc0ca5c Update version information for F-Droid 2023-12-12 13:44:40 +01:00
Georg Krause ef54aad835 Update changelog for version 0.3.0 2023-12-12 13:44:40 +01:00
Aitor d23456d334 Translated using Weblate (Basque)
Currently translated at 100.0% (127 of 127 strings)

Translation: Funkwhale/Funkwhale For Android
Translate-URL: https://translate.funkwhale.audio/projects/funkwhale/ffa/eu/
2023-12-12 11:50:28 +00:00
Georg Krause fef2d5b05f Added translation using Weblate (Bengali (Bangladesh)) 2023-12-09 12:31:10 +00:00
josé m 64f947aa23 Translated using Weblate (Galician)
Currently translated at 99.2% (126 of 127 strings)

Translation: Funkwhale/Funkwhale For Android
Translate-URL: https://translate.funkwhale.audio/projects/funkwhale/ffa/gl/
2023-12-06 03:50:26 +00:00
Thomas 9666cccd5b Translated using Weblate (French)
Currently translated at 100.0% (127 of 127 strings)

Translation: Funkwhale/Funkwhale For Android
Translate-URL: https://translate.funkwhale.audio/projects/funkwhale/ffa/fr/
2023-12-06 03:50:26 +00:00
Hugh Daschbach 36f1c7ba66 Enable landscape mode (auto-rotation). 2023-11-15 11:28:29 -08:00
Georg Krause 1978fc4fb4 Add missing changelog snippets 2023-11-15 07:53:24 +00:00
Hugh Daschbach c9056a2dbe Fix Android 14 authentication breakage.
Workaround to fix issue #148: authentication failure to redirect back
to FFA.

Google issue tracker: https://issuetracker.google.com/issues/210886001

Workaround suggested by AppAuth:
https://github.com/openid/AppAuth-Android/issues/977#issuecomment-1785604118
2023-11-08 09:06:06 +00:00
Hugh Daschbach c1eb9d6b2a Fix landscape view induced MainActivity leak.
With landscape view enabled (e.g. e06b2c7) in the app and auto
rotation enabled on the phone, switching between portrait and
landscape orientations leaks instances of MainActivity.  This prevents
garbage collection of not just the MainActivity object, but fragments
and other objects referenced by the Activity.

This is caused by repositories, the AppContext instance, the player
service, and authentication code maintaining a reference to the
context which with they are initialized.  So rather than initialize
these with an Activity context, pass them the Application context.

Activities are torn down and rebuilt on screen rotation.  The
Application context is not.

To enable instantiation of the FavoritedRepository with the
Application context, delay that repository’s initialization until
first use.  This ensures the Application context is fully initialized.
It is not fully initialized until the MainActivity has been fully
initialized.
2023-11-07 08:33:36 +00:00
Hugh Daschbach b9ade47988 Increase player controls touchpoint size.
Adopting AndroidStudio suggestion to help those of us with fat
fingers.
2023-11-07 08:33:36 +00:00
Hugh Daschbach 2133d4a4fb Prevent BottomSheet tap leaking to nav panels.
With the BottomSheet open, while trying to tap one of the
controls (esp. add to playlist and favorite buttons) it is easy to
miss the touch point and tap directly on the BottomSheet.

This tap bleeds through to whatever fragment is currently displayed in
the navigation area (Artist, Album, Playlists, etc.).  That tap
changes the view in the navigation panel.  For example, if the Artist
fragment it current, it will open a list of the artists albums.

That change may be surprising when the BottomSheet is toggled closed.
So, ignore BottomSheet taps outside the active controls.
2023-11-07 08:33:36 +00:00
Hugh Daschbach feb86fe9c0 Refactor CoverArt.withContext().
Having changed the context object in CoverArt from a received function
parameter to an initialization time derived variable, withContext no
longer needs a Context parameter.

That leaves the method misnamed.  So rename withContext ->
requestCreator and drop the first parameter.
2023-11-07 08:33:36 +00:00
Hugh Daschbach f65e29af39 Do not create unnecessary Picasso objects.
Address "java.lang.IllegalStateException: Too many receivers"
exceptions.  (See Issue #145).  Each new Picasso object registers its
own NetworkBroadcastReceiver.  Worse, we create a new Picasso object
each time we transform an AlbumCover image.  So do not create
unnecessary Picasso objects.

Rather than depend on receiving a Context object when called to load
an cover art, fetch the Application context as returned from FFA.get()
at singleton construction time.  The Application context is long
lived.

This has an additional advantage.  Not generation new Picasso objects
for each CoverArt image avoids holding a reference to an object that
cannot, later, be garbage collected.
2023-11-07 08:33:36 +00:00
Hugh Daschbach 4dba9e29dd chore(deps): update dependency io.insert-koin:koin-test to v3.5.0 2023-11-06 12:21:47 -08:00
Hugh Daschbach 629ce2b309 chore(deps): update dependency io.insert-koin:koin-core to v3.5.0 2023-11-06 12:21:07 -08:00
Renovate Bot 080ba21c35 chore(deps): update dependency io.insert-koin:koin-android to v3.5.0 2023-11-06 12:19:23 -08:00
Christophe Henry 31908b6175 Fix buffering progress bar display 2023-10-02 20:30:09 +02:00
Christophe Henry 1a050c2d73 Fixes form peer review 2023-09-28 17:32:53 +02:00
Christophe Henry 056e3a4d66 Use MotionLayout to animate bottom sheet opening 2023-09-27 15:56:15 +02:00
Christophe Henry b924a0c655 Fix bottom sheet being hidden in certain conditions 2023-09-18 20:18:52 +02:00
Christophe Henry 822adcac4a Fix overlap between main fragment and player bottom bar 2023-09-18 17:35:26 +02:00
Christophe Henry fbbd90111d Fix a few regressions with the new bottom sheet 2023-09-18 17:35:26 +02:00
Christophe Henry 45773aac8d Improve player bottom sheet, in particular fling support 2023-09-18 17:35:26 +02:00
josé m 6472a3743e Translated using Weblate (Galician)
Currently translated at 99.2% (124 of 125 strings)

Translation: Funkwhale/Funkwhale For Android
Translate-URL: https://translate.funkwhale.audio/projects/funkwhale/ffa/gl/
2023-06-03 20:50:20 +00:00
Thomas ada0b09a66 Translated using Weblate (French)
Currently translated at 100.0% (125 of 125 strings)

Translation: Funkwhale/Funkwhale For Android
Translate-URL: https://translate.funkwhale.audio/projects/funkwhale/ffa/fr/
2023-06-03 20:50:15 +00:00
Hugh Daschbach 9c3d965a7e Fix Java version for gradle:7.4.2.
When Gradle version was bumped to 7.0.0, it required Java version 11.
In 82b9121 (2022/01/05), .sdkmanrc was adjusted to accommodate.  But
app/build.gradle.kts was not.

More recent Gradle releases have started to complain:
,----
| > Could not resolve all files for configuration ':classpath'.
|    > Could not resolve com.android.tools.build:gradle:7.4.2.
|      Required by:
|          project :
|       > No matching variant of com.android.tools.build:gradle:7.4.2 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin
| .api-version' with value '8.0.2' but:
|           - Variant 'apiElements' capability com.android.tools.build:gradle:7.4.2 declares a library, packaged as a jar, and its dependencies declared externally:
|               - Incompatible because this component declares a component for use during compile-time, compatible with Java 11 and the consumer needed a component for use during runtime, compatible with Java 8
|               - Other compatible attribute:
|                   - Doesn't say anything about org.gradle.plugin.api-version (required '8.0.2')
`----

Adjust gradle’s specification to suit.
2023-06-03 15:20:48 +00:00
Dylan Gageot 5c5d86a728 Add beta sign on network bandwidth limitation icon 2023-04-24 18:14:14 +02:00
Dylan Gageot 1288e050fd Add translations for other languanges than default 2023-04-24 17:25:24 +02:00
Dylan Gageot 8e09dccb9f Transcode at 320kbps when bandwidth limitation is enabled 2023-04-23 17:50:32 +00:00
Dylan Gageot 45ad4bdb8e Add summary for bandwidth limitation 2023-04-23 17:50:32 +00:00
Dylan Gageot 27e751df35 Add network icon for bandwidth limitation setting 2023-04-23 17:50:32 +00:00
Dylan Gageot 33938e3705 Add bandwidth limitation setting in Settings activity 2023-04-23 17:50:32 +00:00
Renovate Bot 1d5578febf chore(deps): update plugin com.github.triplet.play to v3.8.1 2023-04-19 10:30:51 +00:00
Georg krause e1be5b1303 Fix: Make check for proprietary code working with releases as well 2023-04-19 12:05:39 +02:00