From 0485dcc87ee8d5862ca3a808ffeb1bb8bcc4dbf1 Mon Sep 17 00:00:00 2001 From: wtclaude Date: Thu, 29 Oct 2026 07:48:18 -0500 Subject: [PATCH] docs(android): record M8 step 1, the push fix, as built (Android-app#62) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY --- android/PLAN.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/android/PLAN.md b/android/PLAN.md index b32ea84..a24f1d0 100644 --- a/android/PLAN.md +++ b/android/PLAN.md @@ -282,7 +282,8 @@ Work items: 2. **Deps + manifest.** Add the UnifiedPush connector + the embedded-distributor transport (per #1) to the version catalog; declare `POST_NOTIFICATIONS` (API 33+ runtime permission) **and `FOREGROUND_SERVICE` + `FOREGROUND_SERVICE_DATA_SYNC`** (API 34+, for the persistent ntfy - connection); register the receiver and the foreground service in `AndroidManifest.xml`; define the + connection; **now `FOREGROUND_SERVICE_SPECIAL_USE`** and `RECEIVE_BOOT_COMPLETED`, M8, + `Android-app#62`); register the receiver and the foreground service in `AndroidManifest.xml`; define the notification channels (id/name externalized, §2) — one for real notifications plus a low-importance channel for the ongoing foreground-service notification — and reuse the "RG" notification icon **already staged in M6**. @@ -1033,7 +1034,14 @@ push, and Play (M6–M8) follow the designed app. flavor for Play?" is therefore answered **no**. **The order from here** (org lead, 2026-10-29): - 1. **Push** (`edge`): `specialUse` and the restart on boot. One PR. + 1. **Push** (`edge`): `specialUse` and the restart on boot. One PR. **Built 2026-10-29** as + `Android-app#62`. `core/push/PushBootReceiver` (not exported) listens for + `BOOT_COMPLETED` and `MY_PACKAGE_REPLACED`, and starts `PushService` from the saved + registration when push was on, without re-registering, because the network is often not up + at boot. A sign-out clears the registration, so push stays off after one. Walked on the + `s22_ultra` emulator against a local site whose relay was `ntfy.sh`: the service ran as + `specialUse` (`types=0x40000000`), a tickle arrived, and push came back by itself after a + reboot and after an update. After a sign-out and a reboot it stayed off. 2. **Data safety** (runicgateway.com): the audit and the generator. One PR. 3. **Report, block and hide** across `website`, `Module-Rust`, the kit and this app (`USER_SAFETY.md` §7).