summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/superpowers/plans/2026-10-20-corrections-and-signature-library.md30
1 files changed, 23 insertions, 7 deletions
diff --git a/docs/superpowers/plans/2026-10-20-corrections-and-signature-library.md b/docs/superpowers/plans/2026-10-20-corrections-and-signature-library.md
index 6dea531..cd79f1e 100644
--- a/docs/superpowers/plans/2026-10-20-corrections-and-signature-library.md
+++ b/docs/superpowers/plans/2026-10-20-corrections-and-signature-library.md
@@ -60,7 +60,7 @@ Tapping a break mark opens metadata and a verdict. Detail in the dispatch; the p
- **Verdicts stay local for now.** No endpoint, no consumer. Storing them from today means a
corpus exists by the time the library does.
-### 1b. "This is an ad" in the notification — NOT STARTED
+### 1b. "This is an ad" in the notification — DONE 2026-10-20
Peter, 2026-10-20: *"The notification currently has duplicate skip buttons (our custom ones plus
forward/back) - there's UI space for explicit 'this is an ad' there."*
@@ -71,12 +71,28 @@ forward/back) - there's UI space for explicit 'this is an ad' there."*
`NotificationControls.customLayout()` publishes a second seek-back-15 / forward-25 pair on top.
Reclaiming a slot means dropping one pair.
-**Do this on a device, carefully.** `ListenSessionCallback` carries a comment recording that
-removing commands to free notification slots once silently killed the headphone skip button.
-Whichever pair goes, verify: the notification, the lock screen, Bluetooth/headphone transport,
-and Android Auto. Note also that that comment currently contradicts its own code — it says "Only
-previous-media-item goes" while the code removes both previous and next. Worth resolving while
-in there.
+**How the slot was reclaimed — no command was removed at all.** Media3 1.8 has media button
+*preferences*: a `CommandButton` claiming `SLOT_BACK` or `SLOT_FORWARD` takes that slot instead
+of the default previous/next button (`DefaultMediaNotificationProvider.getMediaButtons` checks
+`CommandButton.containsButtonForSlot` before adding its own). So `setCustomLayout` became
+`setMediaButtonPreferences`, the custom back-15 / forward-25 pair claimed the two seek slots, the
+duplicate defaults disappeared, and "This is an ad" went in `SLOT_FORWARD_SECONDARY` falling back
+to `SLOT_OVERFLOW`. Player commands are untouched, so the headphone regression that comment warns
+about cannot recur by this route. The comment's contradiction was resolved while in there.
+
+**Verified on the emulator, 2026-10-20.** Notification actions are now exactly
+`[Back 15 seconds] [Pause] [Forward 25 seconds] [This is an ad]` — four, not five. The platform
+session carries all three custom actions, so the shade and lock-screen players show the
+circle-and-slash button, and pressing it **from the lock screen without unlocking** recorded a
+claim. All four gesture arms confirmed live, plus "nothing written" for a seek-back outside the
+window. Headphone/Bluetooth transport keys still seek: `KEYCODE_MEDIA_NEXT` +25s,
+`KEYCODE_MEDIA_PREVIOUS` -15s.
+
+**Android Auto is NOT verified** — it needs the real car. The risk is low (player commands,
+browse tree and custom actions are all unchanged or strictly added to) but it is not zero.
+
+**What the default jump is.** 45s, three 15-second units, when nothing better is known; the end
+of the detected break when the press lands inside one. See `AdJump`.
**Why this button matters more than the popup.** They catch opposite errors: