Skip to content

Resolve the current open issue backlog - #115

Open
lostf1sh wants to merge 14 commits into
mainfrom
fix/resolve-open-issues
Open

Resolve the current open issue backlog#115
lostf1sh wants to merge 14 commits into
mainfrom
fix/resolve-open-issues

Conversation

@lostf1sh

@lostf1sh lostf1sh commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

What changed

Implemented the current open issue backlog across cloud downloads, metadata parsing and editing, playlist behavior and M3U synchronization, lyrics, theme and gestures, library selection, crash hardening, and performance diagnostics.

Added regression coverage and repaired Android instrumentation fixtures so the device suite runs safely against API 37 without changing an existing emulator music library.

Why

The repository had 14 open issues spanning missing workflows and device-specific failures. Handling them together also exposed shared boundaries in media scanning, playback snapshots, metadata writes, and playlist reconciliation.

Closes #90
Closes #97
Closes #98
Closes #99
Closes #100
Closes #104
Closes #105
Closes #107
Closes #108
Closes #109
Closes #110
Closes #111
Closes #112
Closes #114

How to test

  • Run ./gradlew test assembleDebug --no-daemon --console=plain.
  • Start an API 37 emulator and run ./gradlew :app:connectedDebugAndroidTest --no-daemon --console=plain.
  • Exercise playlist downloads, album and artist multi-selection, M3U sync, custom metadata editing, word-synced lyrics, global now-playing colors, and mini-player swipe controls.
    TREX

Things to watch out for

Full lint still reports 94 pre-existing errors in old translation, Media3 opt-in, and Russian plural resources. The changes in this branch do not add new lint errors. M3U providers that cannot rename documents fail closed instead of replacing the original file.

@greptile-apps

greptile-apps Bot commented Sep 1, 2026

Copy link
Copy Markdown

Greptile Summary

M3U playlist imports now preserve repeated tracks and their source ordering. The accompanying regression coverage defines the expected behavior for playlists containing the same track more than once.

Confidence Score: 5/5

No blocking failure remains.

No accepted P0 or P1 findings remain.

Reviews (4): Last reviewed commit: "Download cloud playlists and selections ..." | Re-trigger Greptile

Changing artist parsing rules now forces embedded metadata to be read again, so comma and word delimiters are reflected without requiring a manual rebuild.
Repeated ARTIST fields are preserved in source order, split with the configured delimiters, and deduplicated before artist relationships are rebuilt.
Album sorting now keeps discs in sequence, places numbered tracks before unknown positions, and uses stable title and id fallbacks.
A searchable playback setting now keeps the visible activity awake only while music is actively playing and always clears the window flag afterward.
Enhanced lyric files are parsed into word timings and rendered with faster, continuous highlighting while line-synced and plain lyrics keep their existing behavior.
The album-art palette can now theme the whole app, and short mini-player swipes skip tracks while the existing long dismiss gesture remains available.
Playlist launches now carry their playlist id into media items, allowing the service to resolve the selected transition rule instead of falling back to the global default.
Download and sync workers now start with the required dataSync service type and permission on modern Android releases instead of crashing the app.
Library selection now resolves visible album and artist songs once, removes duplicates from multi-artist tracks, and exposes the existing batch actions for the resolved set.
@lostf1sh
lostf1sh force-pushed the fix/resolve-open-issues branch from ad567f1 to 01065e5 Compare September 1, 2026 12:11
Comment thread app/src/main/java/com/lostf1sh/pixelplayeross/data/playlist/M3uManager.kt Outdated
Users can choose an external folder, reconcile file and app changes safely, run sync on demand, and keep synchronization active across app foreground sessions.
The song editor can read, validate, add, remove, and write optional rating and text metadata across the supported tag families without discarding unknown fields.
Playback now keeps durable cloud URIs, refreshes offline resolution safely, caches queue snapshots, and exposes artwork through explicit grants for external media controllers.
Diagnostics now distinguish foreground timing and playback transitions, while search genre typography avoids repeated font loading on the first rendered frame.
Cloud songs can now be downloaded from playlist actions and batch selections, with duplicate and already-local entries filtered before work is queued.
@lostf1sh
lostf1sh force-pushed the fix/resolve-open-issues branch from 01065e5 to fb5f972 Compare September 1, 2026 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment