|
|
@@ -0,0 +1,73 @@
|
|
|
+CarDash 1.2.0 adds an optional, fully in-app Jellyfin music source.
|
|
|
+
|
|
|
+- **Package:** `com.wasp.cardash_launcher`
|
|
|
+- **Version:** 1.2.0 (versionCode 20)
|
|
|
+- **ABIs:** arm64-v8a, armeabi-v7a, x86_64 (universal APK)
|
|
|
+- **Signing:** project debug key matching all prior releases
|
|
|
+- **SHA-256:** `cd8e7de1225dc9caa04d7caffe0d254db79f1bb0af872d5437f90adeab784acf`
|
|
|
+
|
|
|
+**Jellyfin**
|
|
|
+- New optional **Jellyfin** Home button after Music and before Radio. It is
|
|
|
+ enabled in Settings → General → Home buttons and stays disabled/off until the
|
|
|
+ integration is configured. It counts toward the 16-button cap and has no
|
|
|
+ long-press action.
|
|
|
+- Jellyfin dashboard with **Albums / Artists** (Artists disabled for now):
|
|
|
+ - **Recently played** derived from played tracks across Jellyfin devices,
|
|
|
+ - **Recently added** albums,
|
|
|
+ - **Random** albums from up to five grouped genre families (Metal, Rock, Jazz,
|
|
|
+ Pop, Folk and so on; Cyrillic and variant tags are grouped), with a refresh
|
|
|
+ button and an automatic re-roll after you start a Random album.
|
|
|
+- **Six cards per row when they fit, five otherwise.** Album names and artists
|
|
|
+ are aligned to the album art's left edge.
|
|
|
+- Album page: top-aligned large cover, track list with the current track
|
|
|
+ highlighted, tap-to-play, previous/play-pause/next, and the volume/mute
|
|
|
+ controls.
|
|
|
+- Home **Jellyfin** tile subtitle shows **Artist — Album**, clipped to the
|
|
|
+ rounded button width so long titles cannot break the shortcut grid.
|
|
|
+- Music and Jellyfin equalizers are exclusive: Jellyfin animates its own tile
|
|
|
+ while it plays; the Music tile only animates for another app.
|
|
|
+
|
|
|
+**Playback**
|
|
|
+- Media3 1.11.1 playback inside CarDash, not a hand-off to the Jellyfin app.
|
|
|
+- Background playback through a `mediaPlayback` foreground service.
|
|
|
+- Media notification (Android 13+ requires the optional **Allow** row in
|
|
|
+ Settings → Jellyfin; playback works without it).
|
|
|
+- Hardware/Bluetooth media keys, play/pause from the Home ring and album page.
|
|
|
+- Audio focus: pauses and keeps its position when another app takes over;
|
|
|
+ resumes after a short transient interruption only if it was playing; stops at
|
|
|
+ the end of the album.
|
|
|
+- Reports start/progress/stop to Jellyfin so the server sees CarDash as the
|
|
|
+ player and recently played updates.
|
|
|
+
|
|
|
+**Compatibility**
|
|
|
+- Android 10+ (minSdk 29), landscape tablet-first.
|
|
|
+- Jellyfin 12.x; verified against Jellyfin 12.2. Quick Connect is the only
|
|
|
+ sign-in path. The access token is stored in Keystore-backed storage and never
|
|
|
+ placed in a URL or log.
|
|
|
+
|
|
|
+**Verified**
|
|
|
+- 134 Dart unit/widget tests (`flutter analyze` clean).
|
|
|
+- Android 14 emulator at 1280×800 and 1024×600: Quick Connect, grouped genres,
|
|
|
+ 6/5-card dashboard, album page, track tap, previous/next, background playback,
|
|
|
+ notification actions, hardware media keys, exclusive equalizers, audio-focus
|
|
|
+ handover with Chrome, Random re-shuffle, Home title/progress and the clipped
|
|
|
+ tile subtitle.
|
|
|
+- Jellyfin 12.2 real server and a local 12.2 container. Testing against the real
|
|
|
+ account marked a few played tracks/albums, which is expected Jellyfin
|
|
|
+ playback-reporting behavior.
|
|
|
+
|
|
|
+**Not in 1.2.0**
|
|
|
+- Artists tab/artist browsing, offline library/downloads, data-aware streaming
|
|
|
+ quality and queue persistence across process death. See
|
|
|
+ `docs/JELLYFIN_1.2.0_PLAN.md` for the future work list.
|
|
|
+
|
|
|
+**[Download cardash-android-1.2.0.apk](https://git.krasi.net/kkazakov/car-interface-android/raw/main/releases/cardash-android-1.2.0.apk)**
|
|
|
+
|
|
|
+Devices with the in-app updater can use Settings → Updates to download this APK
|
|
|
+and open Android's package installer. Android requires install confirmation and a
|
|
|
+one-time unknown-apps allowance; no silent install is attempted. A yellow dot
|
|
|
+appears on the Settings gear when this release is available.
|
|
|
+
|
|
|
+This build is debug-signed for sideloading/testing, not Play Store distribution.
|
|
|
+Gogs release attachments are limited to 32 MB, so the 59 MB universal APK is
|
|
|
+linked directly from the repository.
|