Commit Graph

293 Commits

Author SHA1 Message Date
Antoine POPINEAU dd86988518
Explicitely remove notification when paused and the app is swiped up. 2020-07-11 14:16:22 +02:00
Antoine POPINEAU b6b9e4c053
Reattach the detached service notification when the app is swiped (if not playing) for it be removed with the application. 2020-07-11 12:58:25 +02:00
Antoine POPINEAU eb6b7a807b
Fixed album position in track info and ensure safe callback to current recycler view. 2020-07-10 21:03:48 +02:00
Antoine POPINEAU 3a81d26cd9
Renamed some components to refer to Otter instead of Funkwhale. 2020-07-10 20:40:18 +02:00
Antoine POPINEAU 28949a8e17
Fixed loading wheel. 2020-07-10 20:37:28 +02:00
Antoine POPINEAU bc1e911b41
Globalize the use of caching for main sections data, improved handling of loading more pages. 2020-07-10 20:28:44 +02:00
Antoine POPINEAU 57692f2e42
Added copyright and license information (#58). 2020-07-10 20:25:35 +02:00
Antoine POPINEAU fe224b097a
Re-enabled media session on service start. Do not condition radio resumption to having a cookie, since those are only valid when authenticated anonymously. 2020-07-10 18:46:49 +02:00
Antoine POPINEAU 080c07eeab
Specify in the app name when using a develop build. 2020-07-10 17:23:02 +02:00
Antoine POPINEAU b34810d631
Allow media session resuming from media buttons when service is killed. 2020-07-10 17:18:29 +02:00
Antoine POPINEAU b14b703f05
Fix an issue where always retrieving favorites from the network could be really costly and introduce stack overflows (#60). 2020-07-10 15:50:56 +02:00
Antoine POPINEAU 4ecb607f45
Let the media session live when playback is paused.
As per Android policy and internal logic, we stopped the playback
foreground service when playback was paused. This made our PlayService
elligible for garbage collection by the OS. This had the consequences of
not allowing someone to pause playback and resume it after some time.
Android would always kill the service after around one minute.

This commit, on supported Android version (7.0+) detaches the
notification when stopping the foreground service, leaving the
notification in place even when the service is killed, allowing the user
to resume playback whenever they please.

We also had to move the MediaSession out of the service, for it to
remain alive between service killing and resurrection.
2020-07-09 23:01:35 +02:00
Antoine POPINEAU a3f84cc56c
Add an application ID suffix for development versions. 2020-07-09 23:00:50 +02:00
Antoine POPINEAU 4b2cf10e78
Fix IO thread performing UI task on some occasion (#59). 2020-07-09 10:45:52 +02:00
Antoine POPINEAU 5d397ab1fe
Sort radios, playlists and favorites by name. 2020-07-08 23:23:14 +02:00
Antoine POPINEAU f3bbca9c27
Fixed caching of metadata. 2020-07-08 23:21:47 +02:00
Antoine POPINEAU 37d5c7b7be
Load data from network on resume if cached data is empty. 2020-07-08 23:00:10 +02:00
Antoine POPINEAU 97bb621d7f
Enable network security setting to allow for user-configured CAs. 2020-07-08 22:20:38 +02:00
Antoine POPINEAU b2e6ec43a8
Improved loading of new and cached items.
Scrolling through large lists was a pain. The next page would only load
when the end of the list was reached, stopping the scroll action while the new
page was fetched.

This commits adds two items:

 * Artists, albums and playlists do not refresh data on resume, only
   using cached data until manually refreshed.
 * When manually refreshed, we initially fetch a few pages instead
   of only one. Also, on scroll, we try as best as we can to always keep
   10 pages (pages as in screen estate) worth of data loaded.
2020-07-08 22:11:50 +02:00
Antoine POPINEAU de0a494b43
Do not transform URLs to HTTPS now that we support cleartext connections. 2020-07-08 15:12:49 +02:00
Antoine POPINEAU 0facf09c94
Do not list artists without albums.
As of now, Otter cannot list albumless tracks (for example, tracks in
compilation, appearing under the original artist, but not part of an
album published by this artist). This created a lot of "empty" artists
(with no albums) in the Artists section of the app.

This may be rolled back if we are some day able to list "orphan"
tracks.
2020-07-08 14:09:48 +02:00
Antoine POPINEAU 2c4f8a4329
Added margin on the left of album release date. 2020-07-08 14:08:59 +02:00
Antoine POPINEAU e17c706ae3
Release date can be null, changed model and added checks. 2020-07-08 14:08:35 +02:00
Antoine POPINEAU 37f4b1da9e
Sort artists and global albums by name/title. Sort an artist's albums by release date. Display the release year in the albums view (#54). 2020-07-08 13:19:47 +02:00
Antoine POPINEAU b0d7ff393d
Changed track metadata reporting method so it could work similarly across devices (notification, ambient display, lockscreen, watches, ...) (#55). 2020-07-08 12:46:52 +02:00
Antoine POPINEAU a3f74af076
Fixed tag regex so that CI kicks in on release. 2020-07-07 21:11:45 +02:00
Antoine POPINEAU 34ddef8489
Prepare 1.0.20: provide missing debug values. 2020-07-07 21:04:24 +02:00
Antoine POPINEAU 7f6b748032
Prepare 1.0.20: resized screenshots to be accepted by the Play Store. 2020-07-07 20:38:41 +02:00
Antoine POPINEAU c5a63f88da
Merge branch 'master' into develop 2020-07-07 20:10:58 +02:00
Antoine POPINEAU 1a105654f0
Prepare 1.0.20. 2020-07-07 20:10:35 +02:00
Antoine POPINEAU 8b4537217b
Mention our brand new Matrix channel. 2020-07-07 19:52:15 +02:00
Antoine POPINEAU 1238931384
Updated banner with new logo. Added source files for logo and banner. 2020-06-26 20:37:47 +02:00
Antoine POPINEAU 100514cde6
Limit the width of the login screen in landscape mode to be easier on the eye. 2020-06-26 20:03:48 +02:00
Antoine POPINEAU 72ba8733b3
Added downloads option menu in landscape mode. 2020-06-26 19:43:32 +02:00
Antoine POPINEAU 49f5754f2b
Add more emphasis to currently playing track in listings. 2020-06-26 19:42:10 +02:00
Antoine POPINEAU 9b888ba17f
Do not skip track on error if the user paused playback. Fixed an issue where two track could be marked as playing at the same time in TracksFragment. 2020-06-26 19:05:11 +02:00
Antoine POPINEAU 212b44a22f
Actually disable caching if cache size is set to zero. 2020-06-26 18:50:17 +02:00
Antoine POPINEAU 441ca3249c
Added new full set of adaptive icons. 2020-06-26 12:34:08 +02:00
Antoine POPINEAU c420f26b88
Added the full-size logo to prevent blurry Otter icon. Resized album cover arts in landscape mode. 2020-06-25 22:33:01 +02:00
Antoine POPINEAU 921154edbb
Updated Gradle and Gradle plugin versions. Enabled artifact minification and resource shrinking (reduces APK size by more than 50%). 2020-06-25 22:29:33 +02:00
Antoine POPINEAU 9c61fcf462
Tidied up usage of GlobalScope to the profit of AndroidX's lifecycle coroutine scopes. 2020-06-25 01:26:15 +02:00
Antoine POPINEAU eb57b4c872
Updated README to reflect GitHub Actions build status. 2020-06-24 21:27:47 +02:00
Antoine POPINEAU 9dbaf509c2
Added FUNDING.yml (related to #18). 2020-06-24 21:08:04 +02:00
Antoine POPINEAU bedae61646
Migrated main release build from Travis to GitHub Actions. 2020-06-24 21:02:37 +02:00
Antoine POPINEAU f7a5a29eea
Pulled some fixes from dev/chromecast (080cce00ee). 2020-06-24 19:45:16 +02:00
Antoine POPINEAU 2b9eb789e8
Changed style for main shuffle button to be less conspicuous. 2020-06-24 16:04:36 +02:00
Antoine POPINEAU b2d26a8127
Refactored and rationalized some events and commands on the buses. 2020-06-24 14:54:13 +02:00
Antoine POPINEAU dc25a922c2
Changed icons (still need to make full set). 2020-06-23 23:23:46 +02:00
Antoine POPINEAU 1ee9f021ce
Login screen would briefly display an dummy error when authentication succeeded. 2020-06-23 09:40:18 +02:00
Antoine POPINEAU 7a72558d1a
Refresh every second instead of 500ms. 2020-06-22 22:25:03 +02:00