zarzet
6debfccba2
fix(theme): retain dominant cover colors in player backgrounds
2026-10-17 16:18:39 +07:00
zarzet
161a216bea
fix(automix): align effect handoffs and render sufficient source audio
2026-10-17 16:18:38 +07:00
zarzet
11c6cf9915
feat(player): synchronize music haptics with local playback
2026-10-17 16:18:37 +07:00
zarzet
78a5e078cd
feat(lyrics): share lyric cards and refine timed vocal transitions
2026-10-17 16:18:35 +07:00
zarzet
40f65d3a4d
feat(player): show audio source processing and output details
2026-10-17 16:18:32 +07:00
zarzet
ecf594aac2
feat(equalizer): add multiband EQ and per-player native audio processing
2026-10-17 16:18:30 +07:00
zarzet
21fd51d62c
feat(autoplay): enable personalization by default and confirm learning resets
2026-10-17 16:18:26 +07:00
zarzet
befcd2adec
feat(a11y): label controls and improve settings contrast and targets
2026-10-17 16:18:25 +07:00
zarzet
1e73ffea3b
feat(i18n): add player feature text and clarify built-in playback
2026-10-17 16:18:17 +07:00
zarzet
09e07671c7
fix(downloads): recover native queues when their service dies
...
Check service liveness while monitoring newly started native runs, matching the recovery protection already present during adoption. After three consecutive dead-service probes, reconcile completed results, requeue in-flight items and release the run instead of polling a stale running snapshot indefinitely.
Cover stale snapshots, transient probe failures, paused workers, run isolation, startup timeout and sequential verification reconciliation. Related queue and verification validation: 155 tests passed; scoped analyzer and formatter clean.
Refs #675
2026-10-17 11:45:53 +07:00
zarzet
2bf50ecb30
fix(verification): bound browser handoffs and release expired dialogs
...
Apply the three-minute deadline to pending-auth lookup, browser launch, manual help and grant waiting. Dismiss owned help dialogs on timeout or cancellation, and prevent late launch failures from opening a fallback browser.
Add regression coverage for stalled steps, cancellation, late responses and successful retry after expiry. Related queue and verification validation: 155 tests passed; scoped analyzer and formatter clean.
Refs #675
2026-10-17 11:45:40 +07:00
zarzet
56a526caf4
chore(release): bump app to 5.2.0 build 162
2026-10-15 22:37:55 +07:00
zarzet
47ccf9c9ed
fix(player): size volume slider handle proportionally
2026-10-15 22:37:55 +07:00
zarzet
23fe78f30d
feat(loading): align skeletons with collection and extension layouts
2026-10-15 19:16:47 +07:00
zarzet
2111afa468
feat(player): share volume controls across Material and Mornye
2026-10-15 19:16:17 +07:00
zarzet
1d53bf9301
feat(rewind): add yearly highlights and seasonal library banners
2026-10-15 17:15:32 +07:00
zarzet
318fbe714e
refactor(ui): use shared loading indicators
2026-10-15 16:00:34 +07:00
zarzet
bf8ae854dd
feat(forms): adopt expressive inputs with consistent form state
2026-10-15 16:00:15 +07:00
zarzet
c5491302a7
feat(ui): add themed menus and adaptive checkbox rows
2026-10-15 16:00:02 +07:00
zarzet
33dca89f28
feat(ui): unify content cards and preserve press behavior
2026-10-15 15:59:38 +07:00
zarzet
8ff1490d9e
fix(settings): use shared sheet for log level selection
2026-10-15 02:52:38 +07:00
zarzet
d28e3f65b1
fix(headers): fit artwork and unify toolbar controls
2026-10-15 02:52:23 +07:00
zarzet
1bae2e6b16
refactor(ui): unify expressive actions and modal transitions
2026-10-15 02:52:15 +07:00
zarzet
bd0b4a50c3
feat(layout): adapt tablet navigation and center wide content
2026-10-15 02:51:53 +07:00
zarzet
9495a6bf66
fix(metadata): align separator picker with Settings components
2026-10-15 01:14:54 +07:00
zarzet
1cc233bdc1
fix(settings): unify adaptive sheet layout and drag behavior
2026-10-15 01:14:54 +07:00
zarzet
c42b314042
fix(player): expose favorites and shuffle in Material notifications
2026-10-15 00:28:17 +07:00
zarzet
3dc2d69051
fix(audio): preserve FLAC precision in Android bit-perfect playback
2026-10-15 00:28:17 +07:00
zarzet
ba737c625e
feat(listening): show a skeleton while statistics load
2026-10-15 00:28:16 +07:00
zarzet
d96a9b56cd
fix(extensions): use adaptive icons for installed extension avatars
2026-10-15 00:28:16 +07:00
zarzet
3fd1588154
fix(library): align filter and sort sheet sizing and dismissal
2026-10-15 00:28:16 +07:00
zarzet
08266c7369
feat(listening): add Rewind highlights and refresh statistics
2026-10-14 23:05:26 +07:00
zarzet
97d8ee3695
fix(player): prevent overlapping titles during rapid skips
2026-10-14 23:05:08 +07:00
zarzet
8d1a42e01a
feat(player): refine mini-player and queue feedback
2026-10-14 23:04:56 +07:00
zarzet
83a55fb80b
feat(library): add sectioned browsing and adaptive fast scrolling
2026-10-14 23:04:46 +07:00
zarzet
9bac4a6efb
feat(material): unify progress and surface transitions
2026-10-14 23:04:27 +07:00
zarzet
56e2eb8589
feat(material): animate header action groups and collapse
2026-10-14 23:04:07 +07:00
zarzet
736cfcd081
feat(settings): connect custom Material settings rows
2026-10-14 23:03:27 +07:00
zarzet
ef600973e8
style(material): align tonal surfaces and control shapes
2026-10-14 20:20:44 +07:00
zarzet
8f6aa00152
feat(settings): connect standard Material settings rows
2026-10-14 20:20:44 +07:00
zarzet
5e6afc7a32
feat(ui): add Material Expressive spring motion
2026-10-14 20:20:44 +07:00
zarzet
e049604b24
feat(lyrics): add SpotiFLAC fallback for Apple Music outages
2026-10-14 20:20:44 +07:00
zarzet
62ce404390
feat(ui): extend Material Expressive surfaces and playback controls
2026-10-13 22:58:00 +07:00
zarzet
186c66aeb8
fix(lyrics): refresh LRC sidecars in their actual SAF folder
...
Resolve opaque SAF document ancestry before writing adjacent lyrics. Propagate failed requested LRC writes and cover native word-synced refresh in regression tests.
2026-10-13 19:38:00 +07:00
zarzet
0b3b9c21c9
feat(theme): show a check on selected expressive switches
...
M3ESwitch does not read the Flutter switch theme, so selected switches
lost the check thumb icon that the standard Material switch shows.
2026-10-13 18:27:38 +07:00
zarzet
e56d59c798
feat(theme): adopt Material Symbols and expressive components
...
The Material theme now draws its main surfaces with rounded Material
Symbols: navigation, player, mini player, queue, settings, sheets,
dialogs and shared controls. AppIcon maps legacy Icons to their symbol
and keeps outlined glyphs unfilled. Mornye keeps its original icons.
Icon buttons, text and filled buttons, dialog actions, sliders, the setup
FAB and indeterminate spinners use the Material 3 Expressive components.
Each wrapper falls back to the standard Flutter widget for Mornye, reduced
motion and custom sizing, so existing layouts and hit areas stay intact.
2026-10-13 18:27:38 +07:00
zarzet
e3b69a25ef
fix(download): probe M4A streams before preserving requested FLAC
...
Provider and decryption extensions describe the downloaded container, not
its audio codec. A decrypted M4A/MP4 can still carry FLAC, so a requested
FLAC output now reaches the codec probe instead of being preserved early.
Lossy streams keep their native container and still receive metadata.
2026-10-13 18:27:16 +07:00
zarzet
65dbce27f5
fix(automix): wait for advancing audio before starting fades
2026-10-12 12:11:27 +07:00
zarzet
ac8523d789
feat(metadata): add per-field download tag separators
2026-10-12 12:11:06 +07:00
zarzet
78699a9163
fix(mornye): strengthen held navigation glass refraction
2026-10-11 16:14:55 +07:00