Commit Graph
461 Commits
Author SHA1 Message Date
austinried 68ca600bb5 key queue rows and keep the dragged row composed 2026-10-04 00:29:52 +00:00
austinried 821a2b02a2 keep artist and playlist rows at a fixed two-line height 2026-10-04 00:29:52 +00:00
austinried 03c58a0c36 show the artist as the song row subtitle 2026-10-04 00:29:52 +00:00
austinried 56d2a3c326 keep song rows a fixed two-line height 2026-10-04 00:29:52 +00:00
austinried 5492a57e09 track the finger position while dragging queue rows 2026-10-04 00:29:52 +00:00
austinried c2ecc63fe5 fix the queue paging refresh key and drag edge detection 2026-10-04 00:29:52 +00:00
austinried 2d64826164 put the queue button at the bottom left of now playing 2026-10-04 00:29:51 +00:00
austinried 59a4bee51b cover pause-free undo with tests 2026-10-04 00:29:51 +00:00
austinried dde78bb9fb keep playback going through undo and polish the queue drag 2026-10-04 00:29:51 +00:00
austinried 7fc142ce6f add a one-step undo and harden queue edits 2026-10-04 00:29:51 +00:00
austinried e87d176155 add a queue view with jump, remove and reorder 2026-10-04 00:29:51 +00:00
austinried 853f37f14d stop committing the roborazzi screenshots 2026-10-04 00:29:51 +00:00
austinried 320a9db597 stop syncing from rewriting unchanged rows 2026-10-04 00:29:51 +00:00
austinried ebe76cd5bb play the songs list from the songs tab 2026-10-04 00:29:51 +00:00
austinried 131b0d56a6 run ci as a single job 2026-10-04 00:29:51 +00:00
austinried 659df47c14 choose the stream bitrate and format from settings 2026-10-04 00:29:51 +00:00
austinried 6e4e911f95 show the playlists tab before songs in the library 2026-10-04 00:29:51 +00:00
austinried e7cfe7a840 document the playback queue model and mark generated files 2026-10-04 00:29:51 +00:00
austinried 7abf01c5ce add queue, migration and playback controller tests and goldens 2026-10-04 00:29:51 +00:00
austinried ed9d74d5ae add the mini player and now playing screen 2026-10-04 00:29:51 +00:00
austinried 592c27c99c add media3, the playback session and the sql-backed queue 2026-10-04 00:29:51 +00:00
austinried 143f2accb7 document the phase 2 slice, add ktlint to ci, and warm the gradle cache 2026-10-04 00:29:51 +00:00
austinried 177e5ad108 add screenshot goldens and the title collapse gesture test 2026-10-04 00:29:51 +00:00
austinried 87cab9d805 add the browse ui: library tabs, detail screens, settings and server setup 2026-10-04 00:29:51 +00:00
austinried 3f91a29850 add preferences, paging reads, repositories and sync status 2026-10-04 00:29:51 +00:00
austinried 46bc95104d add the phase 2 dependencies, ktlint and release shrinking 2026-10-04 00:29:51 +00:00
austinried 2dc6d49948 document the architecture, implementation plan, and agent guidance
adds docs/architecture.md (stack, layers, data model, sync, search, networking, testing, CI), docs/implementation-plan.md (phases and status), and AGENTS.md for agents and contributors
2026-10-04 00:29:51 +00:00
austinried 760e951128 add native integration tests and a nushell harness
SubsonicSourceIntegrationTest runs against locally started navidrome and gonic; tools/integration-test.nu downloads the test music once, starts both servers, seeds data, runs :app:integrationTest, and tears everything down.
2026-10-04 00:29:51 +00:00
austinried 7bc1bd9a19 add unit tests for the data layer
MockWebServer client tests, XML mapping (including timestamp parsing), source fallback, and sync/search against an in-memory Room DB using the bundled SQLite JVM driver.
2026-10-04 00:29:51 +00:00
austinried 2c377f0f22 add the subsonic data layer on Room 3
SubsonicClient (token/plaintext auth, XXE-hardened parsing, root validation), SubsonicXml mapping (ISO-8601 with fractions and offsets), SubsonicSource (paged albums/ranks, search fallback), Room 3 entities/DAOs with diff-based sync pruning and an FTS5 trigram search index.
2026-10-04 00:29:51 +00:00
austinried 967b733925 update the toolchain, devshell, and build configuration
AGP 9.4.1 / Gradle 9.7.1 / Kotlin 2.3.10 (AGP built-in Kotlin), compileSdk and targetSdk 37, Room 3 with KSP schema export, and nushell/navidrome/gonic in the devshell plus a direnv .envrc. Adds a dedicated :app:integrationTest task and excludes the integration class from the unit test tasks.
2026-10-04 00:29:51 +00:00
austinried 6b6758a9b0 disable auto backup 2026-10-04 00:29:51 +00:00
austinried 67ef1626dd keep allowBackup enabled so server settings survive device changes 2026-10-04 00:29:51 +00:00
austinried 43d26d52e4 pin the android sdk explicitly and apply review fixes
- flake: pin build-tools and platform-tools to 37.0.0 instead of "latest", matching build.gradle.kts
- robolectric: run at sdk 35 (targetSdk) and re-record the golden
- manifest: allowBackup off, drop not-yet-used permissions
- theme: drop no-op status/nav bar colors (edge-to-edge)
- deps: kotlin 2.1.20, drop unused deps and test runner
- wrapper: regenerate jar from 8.11.1, add distributionSha256Sum
- remove stale README
2026-10-04 00:29:51 +00:00
austinried d227972a12 drop unused placeholder art 2026-10-04 00:29:51 +00:00
austinried 3edcbe63bc track screenshot goldens with git lfs 2026-10-04 00:29:51 +00:00
austinried 05ac1768d3 start kotlin/jetpack compose rewrite
replace the flutter project with a gradle/compose android app:
- nix flake dev shell (jdk21, android sdk 35, build-tools 37, gradle)
- material3 app with a placeholder screen
- roborazzi/robolectric screenshot tests with one golden
- carry over the existing launcher/notification assets
2026-10-04 00:29:51 +00:00
Oğuz Ersen ab418fc234 Translated using Weblate (Turkish)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/tr/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
Nguyen Tuan Khoi 786ec10110 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Vietnamese)

Currently translated at 77.6% (73 of 94 strings)

Co-authored-by: Nguyen Tuan Khoi <khoint828@proton.me>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/vi/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
itsmekingtiger 735b84d120 Translated using Weblate (Korean)
Currently translated at 94.6% (89 of 94 strings)

Added translation using Weblate (Korean)

Co-authored-by: itsmekingtiger <dlcmaldmlzldxkdlrj@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/ko/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
தமிழ்நேரம் 4c9a5dcd97 Translated using Weblate (Tamil)
Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Tamil)

Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Tamil)

Currently translated at 100.0% (94 of 94 strings)

Added translation using Weblate (Tamil)

Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/ta/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
Kajiab 24730fc332 Translated using Weblate (Thai)
Currently translated at 100.0% (94 of 94 strings)

Added translation using Weblate (Thai)

Co-authored-by: Kajiab <kajiab@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/th/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
Babel Nam 0d503467a2 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (94 of 94 strings)

Added translation using Weblate (Chinese (Traditional Han script))

Co-authored-by: Babel Nam <babelman97@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/zh_Hant/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
Giuseppe Rimicci ac3c830d79 Translated using Weblate (Italian)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: Giuseppe Rimicci <giuseppe.rimicci@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/it/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
Clyhtsuriva 19329642c9 Translated using Weblate (French)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: Clyhtsuriva <aimeric@adjutor.xyz>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/fr/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
mechanlou 6729a7c283 Translated using Weblate (French)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: mechanlou <loumechan@proton.me>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/fr/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
Zev Ross 444b66070a Translated using Weblate (Japanese)
Currently translated at 32.9% (31 of 94 strings)

Co-authored-by: Zev Ross <zevross@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/ja/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
josé m 29c271ee44 Translated using Weblate (Galician)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: josé m <correoxm@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/gl/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
Porrumentzio 53723d188b Translated using Weblate (Basque)
Currently translated at 59.5% (56 of 94 strings)

Added translation using Weblate (Basque)

Co-authored-by: Porrumentzio <porrumentzio@riseup.net>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/eu/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00
William Andrade Pires 4c9b2eea07 Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.3% (84 of 94 strings)

Added translation using Weblate (Portuguese (Brazil))

Co-authored-by: William Andrade Pires <williamapires88@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/pt_BR/
Translation: Subtracks/subtracks
2026-10-04 09:24:53 +09:00