Commit Graph

2167 Commits

Author SHA1 Message Date
Tomás Villegas
3f16eca404 feat: add back button to settings view 2026-03-07 20:21:28 -03:00
Tomás Villegas
525608320e fix: onStop declaration on wrong class 2026-03-07 18:56:27 -03:00
Tomás Villegas
fe324b6f9b 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.
2026-03-07 18:56:15 -03:00
Tomás Villegas
bca2b6ccab Merge branch 'refactor-set-controller-pattern-to-navigation' into refactor-navigation-and-bottom-sheet 2026-03-07 18:33:20 -03:00
eddyizm
7a17e91690 chore: bumped version and updated change log for release v4.12.6 2026-03-06 19:21:54 -08:00
Tom
1036829186 fix: collapse sheet on navitation change (#482)
Co-authored-by: eddyizm <eddyizm@gmail.com>
2026-03-06 19:00:01 -08:00
Tom
becfc1d589 fix: remove material you dynamic theming (#484)
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>
2026-03-06 07:43:13 -08:00
skajmer
44bf346332 chore(i18n): Update Polish translation (#483)
* Add #457

* Add #450

* Add #458
2026-03-04 07:40:37 -08:00
MaFo-28
896e5fb3bd doc: update USAGE with android auto configuration (#481)
* doc: update USAGE with android auto configuration

* Update USAGE.md
2026-03-02 12:33:09 -08:00
eddyizm
3086a8b9f9 chore: bumped version for build fix v4.12.4 2026-03-01 20:20:08 -08:00
eddyizm
10c2172be0 fix: updated constraints causing fata lint build failures (#478) 2026-03-01 20:19:05 -08:00
eddyizm
918bf6928e chore: bumped version and change log for release v4.12.3 2026-03-01 19:59:28 -08:00
Tom
c9cf86acb5 feat: toggle player bitrate visibility on touch (#466)
* 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>
2026-03-01 19:48:15 -08:00
eddyizm
0487f3bb9b fix: returns filtered list and reset correctly (#476) 2026-03-01 19:36:48 -08:00
Tom
c7f2524085 feat: feat: advertise existing long press to refresh per section (#467)
* feat: advertise existing long press to refresh per section

---------

Co-authored-by: eddyizm <eddyizm@gmail.com>
2026-03-01 19:36:03 -08:00
eddyizm
88c2129cd4 chore: bumping version for release v4.12.0 2026-02-28 09:07:59 -08:00
Angelo Suzuki
aa5d0f92db Support specifying a client certificate for mTLS auth (#458)
* feat: collect and save client certificate

* feat: use client certificate for Retrofit, Glide and ExoPlayer

---------

Co-authored-by: eddyizm <eddyizm@gmail.com>
2026-02-26 21:20:01 -08:00
MaFo-28
3ba2255205 Android Auto: improve media service browsing (#437)
* 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>
2026-02-26 21:09:49 -08:00
Tom
145bb82eb0 feat: enhance navigation (#450)
* 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
2026-02-26 07:14:42 -08:00
Tomás Villegas
0a77afae14 refactor: set controller pattern to bottom sheet 2026-02-26 00:00:56 -03:00
Tom
932d1aaa8c fix: artist sort by name case sensitive (#462) 2026-02-25 17:40:50 -08:00
Tom
4f8212d491 Port remove song of playlist from tempus ng (#457)
* 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>
2026-02-25 11:37:43 -08:00
Tomás Villegas
91506a308d feat: remove unnecessary global variables 2026-02-25 13:51:08 -03:00
Tomás Villegas
dba4e4b428 feat: migrate to new navigation controller 2026-02-25 13:33:17 -03:00
Tomás Villegas
0b23d4355e feat: stabilize public methods and their implementations 2026-02-25 13:32:09 -03:00
Tomás Villegas
4803ce676a fix: remove old navigation controller delegate 2026-02-25 13:30:53 -03:00
Tomás Villegas
ecec442e4b refactor: move controller to dedicated pakckage 2026-02-25 11:17:22 -03:00
Tomás Villegas
b38da77393 Merge branch 'feat-enhance-navigation' into refactor-set-controller-pattern-to-navigation 2026-02-25 11:09:11 -03:00
Tomás Villegas
0268bb42c3 chore: set experimental label to settings title
Hide bottom navigation bar on portrait and unlock drawer on portrait
2026-02-25 11:07:21 -03:00
Tomás Villegas
ae183122ac Revert "feat: set app settings inside a frame layout"
This reverts commit 52cfd36b09.
2026-02-25 09:59:59 -03:00
Tomás Villegas
6ce1063639 Revert "fix: onStop declaration on wrong class"
This reverts commit 34d354d803.
2026-02-25 09:59:52 -03:00
Tomás Villegas
d1851bcc5a refactor: delegate navigation to controller and helper 2026-02-25 01:56:03 -03:00
Tomás Villegas
2db9cb80d1 fix: navbar + bottom sheet behavior on equalizer fragment 2026-02-24 18:23:03 -03:00
Tomás Villegas
0b7d1e629b Revert "fix: equalizer not respecting navigation ui directives"
This reverts commit eeb125542d.
2026-02-24 18:09:30 -03:00
Tomás Villegas
eeb125542d fix: equalizer not respecting navigation ui directives 2026-02-23 00:19:20 -03:00
Tomás Villegas
34d354d803 fix: onStop declaration on wrong class 2026-02-23 00:18:50 -03:00
Tomás Villegas
52cfd36b09 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.
2026-02-23 00:03:41 -03:00
Denis Machard
b403d69982 feat: radio logos support for AndroidAuto (#435)
* 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
2026-02-22 08:08:01 -08:00
eddyizm
a49f2b97a2 Merge branch 'main' into development 2026-02-21 22:12:56 -08:00
Tomás Villegas
360929e772 fix: leaving settings always unlocks drawer 2026-02-21 14:31:22 -03:00
Tomás Villegas
82f9679da7 feat: enhance navigation 2026-02-21 01:14:08 -03:00
skajmer
c44e60c0e5 chore(i18n): Update Polish translation (#441)
* Add #338

* Add #3700 (strings.xml)

* Add #370 (arrays.xml)

* Add #386

* Add #394

* Add #411 and #413

* Add #411 (arrays)

* misspelling
2026-02-16 09:45:57 -08:00
eddyizm
4cd15b4284 chore: changelog and build updated for release v4.11.0 2026-02-15 10:35:22 -08:00
eddyizm
72d7aea6e3 fix: release build errors 2026-02-15 10:30:01 -08:00
Tom
9adaf8c013 feat: improve playlist chooser dialog UI (#439)
* 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
2026-02-15 09:42:07 -08:00
TrackArcher
661346ca3a feat: radio metadata (#352)
* feat: support dynamic metadata for internet radio stations

- Implemented `onMetadata` in `BaseMediaService` to extract "Artist - Title" info from ICY, ID3, and Vorbis streams.
- Added a fallback mechanism to periodically check HTTP headers (e.g., `icy-name`, `StreamTitle`) for radio metadata.
- Updated `PlayerControllerFragment` and `TrackInfoDialog` to display the station name alongside dynamic track information.
- Enhanced `TrackInfoDialog` layout to include a dedicated "Station" field for radio tracks.
- Modified `MappingUtil` to preserve station names in media metadata extras.

* fix crashing issue

* radio bob metadata works now. fix crashing issue

* Fixing unchecked operation warnings in SongHorizontalAdapter.java.

* optimizing a bit and better format for notification

* removed xml files affecting build and enviroment

* removed xml files affecting build and enviroment

* fix ui internet radio bottomview

* Revert "fix ui internet radio bottomview"

This reverts commit c237ed451f.

* rebased to upstream/development and fixed metadata to show up for radio after the rebase

* misc.xml restored

* Apply suggestion from @eddyizm

---------

Co-authored-by: eddyizm <wtfisup@hotmail.com>
Co-authored-by: eddyizm <eddyizm@gmail.com>
2026-02-15 08:03:00 -08:00
eddyizm
dbd32baa12 feat: prefer locally downloaded media vs server stream (#433)
resolves #404 and should address #285
2026-02-11 21:31:46 -08:00
Tom
3958cbcc1c fix: local url used in share link instead of server url (#431)
fix: use explicitly Server Public URl in link sharing
2026-02-09 20:02:15 -08:00
Tom
fb568d1d74 fix: speed button overlaps with shuffle on landscape (#430)
fix: buttons overlap on landscape player
2026-02-09 20:01:02 -08:00
Denis Machard
e06a168350 fix: radio playback "source error" on android auto (#426) 2026-02-09 20:00:33 -08:00