# CarDash releases ## 1.2.1 — Jellyfin pause equalizer fix - **File:** `cardash-android-1.2.1.apk` - **Version:** 1.2.1 (versionCode 21) - **ABIs:** arm64-v8a, armeabi-v7a, x86_64 - **SHA-256:** `8fc6de444c2811dfe8269b21a7ad7b1f927cdde6b97d4f2f9fadd7cf0ea9b97e` - **Signing:** project debug key matching all releases. - **Changes:** the Music equalizer only animates for an external system media session, so pausing Jellyfin from Home cannot briefly light it up while CarDash's own stale MediaSession snapshot catches up. The Home card stays on the paused Jellyfin queue during that gap. No playback changes. Includes all 1.2.0 Jellyfin features. - **Verified:** 139 tests; Android 14 emulator pause sequence leaves the Music tile quiet and the Jellyfin tile stopped immediately. ## 1.2.0 — Jellyfin - **File:** `cardash-android-1.2.0.apk` - **Version:** 1.2.0 (versionCode 20) - **ABIs:** arm64-v8a, armeabi-v7a, x86_64 - **SHA-256:** `cd8e7de1225dc9caa04d7caffe0d254db79f1bb0af872d5437f90adeab784acf` - **Signing:** project debug key matching all releases. - **Changes:** adds the optional full Jellyfin music source: a Home button after Music, dashboard with recently played/added and grouped-genre Random rows (six cards when they fit, five otherwise), album page with track list and previous/next, in-app Media3 playback with background/notification/audio focus, Jellyfin playback reporting, exclusive Music/Jellyfin equalizers and a clipped Home subtitle. Artists, offline caching and data-aware streaming are deferred. See `releases/1.2.0.md`. - **Verified:** 134 tests; Android 14 emulator at 1280×800 and 1024×600 against Jellyfin 12.2 (Quick Connect, genre grouping, album/transport, notification, media keys, audio focus, Random re-shuffle). Testing against the real account marked a few played tracks, as expected from playback reporting. ## 1.0.7 — Truly disable Impeller - **File:** `cardash-android-1.0.7.apk` - **Version:** 1.0.7 (versionCode 19) - **ABIs:** arm64-v8a, armeabi-v7a, x86_64 - **SHA-256:** `5b37116b38683ae5e9c42f36841ca509a417f21164902ffe0a93e7b5b29c61ae` - **Signing:** project debug key matching all releases. - **Changes:** moves the `EnableImpeller=false` manifest entry from `` to ``. Flutter ignores the activity-scoped key, so 1.0.6 and earlier silently ran Impeller. That caused the host emulator's SwiftShader process to segfault when Settings opened. 1.0.7 uses Skia as originally intended. Includes all 1.0.6 Bluetooth/OBD hardening. - **Verified:** on the 1024×600 Android 14 SwiftShader emulator, opening Settings, granting Bluetooth permission, and the Bluetooth-off → Android settings → Bluetooth-on → return flow all stay alive. ## 1.0.6 — Bluetooth/OBD freeze hardening - **File:** `cardash-android-1.0.6.apk` - **Version:** 1.0.6 (versionCode 18) - **ABIs:** arm64-v8a, armeabi-v7a, x86_64 - **SHA-256:** `180050ad7cb7db88b4e253d748e49dedb380f0ed11acad743c39b4f925e9afed` - **Signing:** project debug key matching all releases. - **Changes:** moves every Bluetooth binder call off the Android main thread, filters the OBD-II picker to likely OBD-II adapters, adds a bounded three-attempt connection limit with a **Retry connection** action, stops re-querying bonded devices on every resume, and adds timeouts around the telemetry bridge. Intended to remove the freeze that could occur after returning from Bluetooth settings with the OBD-II card open. ## 1.0.5 — Volume diagnostics - **File:** `cardash-android-1.0.5.apk` - **Version:** 1.0.5 (versionCode 17) - **ABIs:** arm64-v8a, armeabi-v7a, x86_64 - **SHA-256:** `d3fcd888d4b742a3c636d65126c9d0e4a9550a0d04db0eceef9cd6a18be0fcc2` - **Signing:** project debug key matching all releases. - **Changes:** adds a long-press **Media volume** diagnostics panel showing the raw `index/max`, fixed-volume flag, every audio stream level, and the last target/actual volume write. The same data is logged under `CarDashVolume`. This release is for identifying car units that ignore both absolute and relative volume writes. ## 1.0.4 — Car volume fix - **File:** `cardash-android-1.0.4.apk` - **Version:** 1.0.4 (versionCode 16) - **ABIs:** arm64-v8a, armeabi-v7a, x86_64 - **SHA-256:** `d26e5a3bd98c38e639edebea92e0e165da8245eccaca14973eb549569e6b6a5e` - **Signing:** project debug key (SHA-256 `C2:8E:5B:0B:E0:F8:27:EE:12:22:B0:62:9F:EE:1C:F2:7E:14:3F:78:95:86:1E:3F:34:15:A6:E5:3A:06:BE:ED`). - **Changes:** detects Android's fixed-volume car policy, disables the misleading volume slider and explains that the vehicle amplifier owns the level. On units that ignore absolute volume writes, CarDash now retries with the same relative steps used by the hardware volume keys. Fixed-volume units also pass the hardware keys through to the car instead of consuming them. ## 1.0.3 — Speed and temperature cards - **File:** `cardash-android-1.0.3.apk` - **Version:** 1.0.3 (versionCode 15) - **ABIs:** arm64-v8a, armeabi-v7a, x86_64 - **SHA-256:** `3106540af2254b7eb7717bb95a5a61d8b7c9680fb2230711c624c5846e9bc209` - **Signing:** debug key matching the 1.0.0–1.0.2 releases. - **Changes:** splits Settings into **OBD-II**, **Speed** and **Temperature** cards; adds independent show/hide switches plus OBD-II/GPS and OBD-II/weather source switches; limits the long-press hint to the first ten minutes after a fresh installation and never shows it again after an upgrade. ## 1.0.2 — Bluetooth settings action - **File:** `cardash-android-1.0.2.apk` - **Version:** 1.0.2 (versionCode 14) - **ABIs:** arm64-v8a, armeabi-v7a, x86_64 - **SHA-256:** `9cecb410c9d6af6e83f13c63d3c9839614f03505ccb47682b646a1e461da916c` - **Changes:** adds **Open Bluetooth settings** when Bluetooth is off; no changes to the update installer. ## 1.0.1 — update-test release - **File:** `cardash-android-1.0.1.apk` - **Version:** 1.0.1 (versionCode 13) - **ABIs:** arm64-v8a, armeabi-v7a, x86_64 - **SHA-256:** `f229414c8c406a2f6754f9ee1ccc4763ba1742acd277765962b61ecaaf356329` - **Changes:** version bump only; no functional changes from the 1.0.0 updater build. - The in-app Updates action downloads this APK and opens Android’s installer; the user still confirms the installation and allows unknown-app installs once. ## 1.0.0 — first universal release - **File:** `cardash-android-1.0.0.apk` - **Version:** 1.0.0 (versionCode 12) - **SHA-256:** `9a75258e14432d74eedb866ac4043179496234c252a877d25b709c2a2ff4d9a2` - **Source:** commit `d28bfea` The release is published at: Gogs limits release attachments to 32 MB, so the universal APKs (59 MB for 1.2.0) are linked directly from the repository rather than attached to the release. This is a single universal APK containing all supported Android ABIs. It is signed with the project's existing debug signing configuration, so it is suitable for sideloading and local testing but is **not** a Play Store/production-signed artifact. Install with: ```bash adb install -r cardash-android-1.0.0.apk ``` Verify the download with: ```bash sha256sum -c cardash-android-1.0.0.apk.sha256 ```