v2026.05.19.2 — hotfix: restore media notification (remove broken custom favorite) #55

Merged
bvandeusen merged 262 commits from dev into main 2026-05-19 07:48:10 -04:00
bvandeusen commented 2026-05-19 07:48:01 -04:00 (Migrated from git.fabledsword.com)

Hotfix for v2026.05.19.1. Mobile client 2026.5.19+12. CI green on dev.

The media notification + watch controls were completely absent on the physical Pixel (worked on the emulator). Device logcat showed audio_service throwing on every state broadcast:

java.lang.IllegalArgumentException: You must specify an icon resource id to build a CustomAction
    at com.ryanheise.audioservice.AudioService...

Root cause, isolated by elimination (all evidence-disproven: permission [POST_NOTIFICATIONS granted, verified], PathParser, FGS, aapt2-rejection [both vectors compile clean], git/tag absence [drawable confirmed at the v2026.05.19.1 tag], resource-shrinker [none configured]): the #57 custom favorite MediaControl.custom's androidIcon (ic_stat_favorite) is absent from the shipped CI release APK despite being valid and in the tagged source — so audio_service resolves it to id 0 and PlaybackStateCompat.CustomAction.Builder throws, which aborts the entire media notification.

Fix: remove the custom favorite control; the notification rebuilds with only the standard transport controls (audio_service-bundled icons, always present). Like/favorite remains in-app and on the lock-screen media UI. The auto-minimize-on-teardown fix from v2026.05.19.1 stands.

The deeper "why is a valid tagged drawable not in the CI APK" is tracked separately (#64) — a CI build-packaging investigation, not blocking the notification.

Flutter client only; no server/migration changes.

Hotfix for v2026.05.19.1. Mobile client `2026.5.19+12`. CI green on dev. **The media notification + watch controls were completely absent on the physical Pixel** (worked on the emulator). Device logcat showed audio_service throwing on every state broadcast: ``` java.lang.IllegalArgumentException: You must specify an icon resource id to build a CustomAction at com.ryanheise.audioservice.AudioService... ``` Root cause, isolated by elimination (all evidence-disproven: permission [POST_NOTIFICATIONS granted, verified], PathParser, FGS, aapt2-rejection [both vectors compile clean], git/tag absence [drawable confirmed at the v2026.05.19.1 tag], resource-shrinker [none configured]): the `#57` custom favorite `MediaControl.custom`'s `androidIcon` (`ic_stat_favorite`) is **absent from the shipped CI release APK** despite being valid and in the tagged source — so audio_service resolves it to id 0 and `PlaybackStateCompat.CustomAction.Builder` throws, which **aborts the entire media notification**. Fix: remove the custom favorite control; the notification rebuilds with only the standard transport controls (audio_service-bundled icons, always present). Like/favorite remains in-app and on the lock-screen media UI. The auto-minimize-on-teardown fix from v2026.05.19.1 stands. The deeper "why is a valid tagged drawable not in the CI APK" is tracked separately (#64) — a CI build-packaging investigation, not blocking the notification. Flutter client only; no server/migration changes.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/minstrel#55