Skip to content

UI: Add features for player controls, lyrics notifications, and widgets - #1003

Open
SteveZMTstudios wants to merge 12 commits into
FoedusProgramme:betafrom
SteveZMTstudios:feature/stevezmt
Open

UI: Add features for player controls, lyrics notifications, and widgets#1003
SteveZMTstudios wants to merge 12 commits into
FoedusProgramme:betafrom
SteveZMTstudios:feature/stevezmt

Conversation

@SteveZMTstudios

@SteveZMTstudios SteveZMTstudios commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Card widget — a new responsive home-screen widget family for quick playback control. One provider delivers pill (1×1), circle (2×2 w/ progress ring), card (4×1), medium (4×2) and large (4×4 / wide 5×4) layouts, plus favorite & shuffle actions on wide slots.
  • Notification lyrics — opt-in setting that surfaces the current synced lyric line in both the expanded media notification and the system media session metadata (lockscreen / BT / Android Auto), with the original title+artist preserved as the subtitle line.
  • Swipe cover to switch track on the full player (default enabled); gesture recognition keeps vertical gestures & single-tap behavior intact.
  • Optional rotating cookie play/pause button to match the cover-rotation feel while playing, controlled by a player setting.
  • "Always skip to previous track" behavior — opt-in flag so pressing Previous jumps straight to the last item instead of seeking back to track start, useful for heads-free and hardware-button use cases.
  • Widget favorite action connects through a dedicated playback-service helper so the current item's heart rating and widget state stay in sync across lyric/session updates.
  • Widget resources use Material You system colors on Android 12+ with stable theme-token fallbacks for pre-12 and night mode; default + zh-rCN strings added for all new settings and the widget picker label.

Test

Installed on my phone (android 16):

Screenshot_2026-08-22-19-54-58-26_b783bf344239542886fee7b48fa4b892

and i run it about 3 hours playing music, no crash and any error occured.

Also Windows subsystem of Android:
image

with music3 patch at nift4/media#2, works on Android 6 AVD:

image

And my low-performance platform (Android 8.1 MT6580 1GB RAM):
Screenshot_20260823-010351_Trebuchet

Even my Android 7.1 arm 512MB RAM device MT6572 1.2GHz x2,

Screenshot_20260823-234356

All works fine and stable.

CI Passed:

https://github.com/SteveZMTstudios/Gramophone/actions/runs/32650576403

@nift4

nift4 commented Aug 22, 2026

Copy link
Copy Markdown
Member

Hi, thank you very much for your PR.

To make review easier, please can you split features to have one PR per feature?

@SteveZMTstudios

Copy link
Copy Markdown
Contributor Author

sure im handling

@nift4

nift4 commented Aug 22, 2026

Copy link
Copy Markdown
Member

Please make sure the individual branches are buildable, some currently aren't. Thanks

@SteveZMTstudios

Copy link
Copy Markdown
Contributor Author

still cherrypickin

@SteveZMTstudios

SteveZMTstudios commented Aug 23, 2026

Copy link
Copy Markdown
Contributor Author

done.
Although all four branches can be compiled, due to capacity constraints, I only conducted a rigorous test on this comprehensive branch.

If you feel something is out of place, please point it out here. If you are satisfied with these changes, it is a good idea to merge this pull request but not others to avoid possible conflicts.

@nift4

nift4 commented Aug 23, 2026

Copy link
Copy Markdown
Member

Thanks, I will take a look when I have some time.

@SteveZMTstudios
SteveZMTstudios marked this pull request as draft August 23, 2026 07:20

@SteveZMTstudios SteveZMTstudios left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am testing tested this change on my device chain to ensure the low_end device performance and old Android sdk compatibility.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants