In order to add a toolbar with a back button in settings I needed to extend from a fragment
so I converted SettingsFragment into a fragment and created SettingsContainerFragment,
the latter is injected as a child of SettingsFragment inside a FrameLayout.
Since SettingsContainerFragment extends from PreferenceFragmentCompat, this allows
to swap it for other and, in the bigger picture, allow an arbitrary organization.
PR #466 required a dynamic theming macro to set the color, however
if the device does not support that feature the app crashes after logging in
The dynamic theming macro has been replaced with a standard material component
Co-authored-by: eddyizm <eddyizm@gmail.com>
* feat: touch player chip to toggle bitrate visibility
* feat: player bitrate visibility is remembered
* fix: player landscape layout not grouping chip with textview
* feat: touch bitrate to toggle its visibility
This catches the edge case where the the chip is not reachable due to insuficient horizontal space
---------
Co-authored-by: eddyizm <eddyizm@gmail.com>
* feat: collect and save client certificate
* feat: use client certificate for Retrofit, Glide and ExoPlayer
---------
Co-authored-by: eddyizm <eddyizm@gmail.com>
* Add Android Auto icons and improve media service browsing
* chore: changelog and build updated for release
* add grid/list setting for playlist, podcast and radio
---------
Co-authored-by: eddyizm <eddyizm@gmail.com>
* feat: enhance navigation
* fix: leaving settings always unlocks drawer
* feat: set app settings inside a frame layout
In order to add a toolbar with a back button in settings I needed to extend from a fragment
so I converted SettingsFragment into a fragment and created SettingsContainerFragment,
the latter is injected as a child of SettingsFragment inside a FrameLayout.
Since SettingsContainerFragment extends from PreferenceFragmentCompat, this allows
to swap it for other and, in the bigger picture, allow an arbitrary organization.
* fix: onStop declaration on wrong class
* fix: equalizer not respecting navigation ui directives
* Revert "fix: equalizer not respecting navigation ui directives"
This reverts commit eeb125542d.
* fix: navbar + bottom sheet behavior on equalizer fragment
* Revert "fix: onStop declaration on wrong class"
This reverts commit 34d354d803.
* Revert "feat: set app settings inside a frame layout"
This reverts commit 52cfd36b09.
* chore: set experimental label to settings title
Hide bottom navigation bar on portrait and unlock drawer on portrait
* feat: implement track removal from playlists with real-time UI updates
- Added 'Remove from playlist' option to song bottom sheet (appears only when inside a playlist)
- Implemented immediate UI refresh for track count and duration in playlist header
- Fixed a bug where shuffling for covers scrambled the actual playlist song order
- Improved PlaylistPageViewModel to clear stale data and handle isolated updates correctly
- Added dedicated success/failure messages for track removal in English and Italian
- Unified heart icon size to 14dp across all track list items
* fix: missing code from port process
The cherry-pick was missing the database getter
and the function to remove a song from a playlist
---------
Co-authored-by: beeetfarmer <176325048+beeetfarmer@users.noreply.github.com>
In order to add a toolbar with a back button in settings I needed to extend from a fragment
so I converted SettingsFragment into a fragment and created SettingsContainerFragment,
the latter is injected as a child of SettingsFragment inside a FrameLayout.
Since SettingsContainerFragment extends from PreferenceFragmentCompat, this allows
to swap it for other and, in the bigger picture, allow an arbitrary organization.
* feat: radio logos support for AndroidAuto
* resolve a merge conflict.
* fix auto lint
* fix auto lint
* fix auto break line
* fix auto break line
* fix auto break line
* fix: add alternate serialized name for InternetRadioStation homePageUrl to support both `homePageUrl` and `homepageUrl` JSON keys.
* improve internet radio station cover art handling by prioritizing home page URLs
* fix: remove unnecessary blank line and adjust formatting in MusicUtil
* refactor: improve formatting and clean up whitespace in MappingUtil and MusicUtil
* fix: lock buttons at dialog bottom
The previous implementation appended the buttons to the RecyclerView programmatically
this disabled the scroll and pushed the buttons outside the visible dialog area
if too there were too many playlists.
To fix this now the XML defines a fixed location for the buttons, enabling
the scroll of the RecyclerView and preventing the buttons to become unreachable
* feat: improve playlist chooser dialog UI
Implement it in the XML layout and not programmatically.
* fix: detached listeners from XML layout
* fix: missing dialog title