screentinker/android/app/src/main/java/com/remotedisplay/player
Claude abdb3b434d Silence a backgrounded player, and rebuild zones when a layout is edited in place
Two more from #234, both Android-only.

1. "I closed the app and I can still hear the sound." Nothing in the Android lifecycle pauses a
   WebView, and MainActivity had no onStop at all, so a YouTube embed kept playing with the app in
   the background and the panel kept making noise with the app apparently closed. onStop rather
   than onPause: onPause also fires for a transient dialog or a permission prompt, and pausing
   playback for those would be a visible stutter on a wall. Pauses via the IFrame-API bridge that
   already exists for live mute, so returning to the foreground resumes in place instead of
   restarting the clip.

2. "I added 4 zones and they dont appear on the screen. I had 3 zones before and they appeared."
   The zone rebuild fired only when the layout ID changed. Editing a layout in place keeps its id,
   so setupZones never ran: the geometry stayed at three zones and only the assignments
   re-rendered into the old ones, which is why it took a force-stop to appear. The rebuild now also
   triggers on a signature of the zones themselves (id, position, size, z-index, type, fit).

Compiles clean; NOT yet verified on hardware — both need a device to prove, unlike the audio-on-
item-switch fix which was measured before and after on an emulator.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uaeo9MvzKoyXuN6ZsbhtkL
2026-07-30 19:48:31 -05:00
..
admin Add an operator override for self-update on MDM-managed panels 2026-07-28 23:07:30 -05:00
data Resume the playlist where it was after an Activity rebuild (#234) 2026-07-29 09:13:30 -05:00
player Silence a backgrounded player, and rebuild zones when a layout is edited in place 2026-07-30 19:48:31 -05:00
remote feat(device-owner): tier foundation + QR provisioning + content-expiry & device enhancements (#168) 2026-07-12 19:41:07 -05:00
service Make unblock stick, and say so when a device is refused 2026-07-29 18:44:11 -05:00
system feat(system-control): Tier 0/1 controls with no device-owner dependency (#160) (#169) 2026-07-12 20:48:47 -05:00
telemetry Report the screen's own IP, and make the Wi-Fi name an honest optional 2026-07-29 21:57:59 -05:00
util fix(content): render YouTube Shorts in 9:16 instead of a landscape frame (#184) (#189) 2026-07-15 08:41:43 -05:00
MainActivity.kt Silence a backgrounded player, and rebuild zones when a layout is edited in place 2026-07-30 19:48:31 -05:00
OwnerAccessibilityActivity.kt feat(device-owner): tier foundation + QR provisioning + content-expiry & device enhancements (#168) 2026-07-12 19:41:07 -05:00
ProvisioningActivity.kt Clear ProvisioningActivity's service callbacks (the white-flash relaunch loop) 2026-07-29 18:01:34 -05:00
RemoteDisplayApp.kt feat: app-ending signal (exit-signal contract v1) — server + APK + .wgt + /player 2026-07-08 15:32:40 -05:00
ScreenCapturePermissionActivity.kt fix(android): Android 14+ MediaProjection / foreground-service compliance (#5) 2026-06-08 17:19:56 -05:00
SetupActivity.kt Report the screen's own IP, and make the Wi-Fi name an honest optional 2026-07-29 21:57:59 -05:00