Skip to content

fix(tile): open the drop on a locked Android 14+ phone; bind the tile only when tapped - #55

Merged
gitubpatrice merged 1 commit into
mainfrom
fix/3.4.0-active-tile
Nov 9, 2026
Merged

gitubpatrice merged 1 commit into
mainfrom
fix/3.4.0-active-tile

Conversation

@gitubpatrice

Copy link
Copy Markdown
Owner

Two defects of the quick drop tile found while testing 3.4.0 before publication (3.4.0 is merged, not released).

  • Locked phone, Android 14+: tapping the tile asked for the code, then unlocked onto the home screen — the drop never opened (unlockAndRun's callback did not come back on Android 16). From Android 14 the tile now relies on startActivityAndCollapse(PendingIntent), which waits for the unlocking itself; unlockAndRun stays below 14, where it works.
  • Process started by the panel (audit M6, now measured): with the tile added, pulling down the notifications alone restarted a dead process, whose start purges cache/exports — a shared sealed note or export could vanish before the receiving app read it. The tile is now an ACTIVE_TILE, bound only when tapped.

Measured on the S9 (Android 10) and on emulators (Android 11 and 16, with a PIN): the panel no longer starts the process, the tile looks the same, the drop opens unlocked, and on a locked phone only after the code — nothing opens without it.

docs/15 also records the full instrumented run on a Galaxy S24 FE (Android 16): 585/589; the one failure is a search test typing while Samsung's keyboard starts (3/3 on an Android 16 emulator, the S9 and CI).

🤖 Generated with Claude Code

… only when tapped

Two defects of the quick drop tile, found testing 3.4.0 before publication:

- On a locked phone, Android 16: the code was asked, the phone unlocked onto the home screen, and the
  drop never opened — `unlockAndRun`'s callback did not come back. Same with the tile as merged. From
  Android 14, `startActivityAndCollapse(PendingIntent)` waits for the unlocking itself: used alone there.
  `unlockAndRun` stays below 14, where it works (Android 11 emulator).
- M6 of the 3-axes audit, now measured: with the tile added and the process dead, pulling down the
  notifications alone restarted the app (S9) — and a start purges cache/exports, where a shared sealed
  note or export may still wait for the receiving app. The tile is now an ACTIVE tile: bound when
  tapped only; its resting state is set when added and whenever bound.

Measured: S9 (Android 10, no screen lock), emulators Android 11 and 16 with a PIN — the panel no longer
starts the process; the tile shows as before; tapped unlocked, it opens the drop; tapped locked, the code
is asked and the drop opens after it, and nothing opens without it.

docs/15: these two, and the full instrumented suite on the S24 (585/589; the one failure is a search
test typing while Samsung's keyboard starts, 3/3 on an Android 16 emulator, to confirm by hand).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gitubpatrice
gitubpatrice merged commit 1bd3289 into main Nov 9, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant