frosty/lib
Tommy Chow 880a9c92aa fix(video): sync android pip state and playback across both players
Three related PiP gaps on Android:

`handleAndroidPipChanged` lived on `NativeVideoPlayerInterface`, and
`notifyPip` type-checked against it, so the WebView store never learned it
was in PiP — `_isInPipMode` stayed false for the whole session and the
overlay kept auto-hiding behind the PiP window. Moved to the shared
`VideoPlayerInterface` and implemented in both stores. The WebView store's
two JS PiP channel bodies collapse into one `_setPipActive` state machine,
now shared with the Android callback.

`NativeVideoStore` never called `_pip.setIsPlaying()`, so with the
`mediaOnlyPause` layout the PiP window's button was stuck on whatever glyph
it started with, and `onPipAction` — which toggles blind — could do the
opposite of what the button showed.

`VideoStore.handleAppResume()` did nothing in video mode, while the native
store calls `play()`. Backgrounding can suspend the webview's playback with
no way for the page to restart itself, leaving it dead until a manual
refresh. Resumes now unless the user was the one who paused.

Not fixed: PiP with the WebView player. Twitch's embed refuses to play
below 400x300 CSS pixels and a PiP window is far under that, Android
resizes the activity before firing onPictureInPictureModeChanged so any
correction arrives too late, and the embed latches once tripped. The native
player has no such constraint. Refs #563.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 11:47:54 -07:00
..
apis fix(chat): paginate moderated channels and refresh mod status on entry 2026-07-02 18:51:04 -04:00
models feat(chat): add bubbles for shared chat participant channels (#581) 2026-07-03 00:16:49 -04:00
screens fix(video): sync android pip state and playback across both players 2026-08-08 11:47:54 -07:00
services feat(video,chat): native player, ad-break awareness, chat send/delay reliability, and tab redesign (#567) 2026-06-13 17:06:24 -04:00
stores improve Firebase integration across Crashlytics, Analytics, and Performance 2026-03-08 00:18:21 -08:00
utils feat(video,chat): native player, ad-break awareness, chat send/delay reliability, and tab redesign (#567) 2026-06-13 17:06:24 -04:00
widgets feat(chat): moderator actions (delete / timeout / ban / unban) (#576) 2026-07-02 17:43:37 -04:00
cache_manager.dart Fix large cache size (#437) 2025-04-06 19:58:37 -07:00
constants.dart feat(video,chat): native player, ad-break awareness, chat send/delay reliability, and tab redesign (#567) 2026-06-13 17:06:24 -04:00
firebase_options.dart Update to Material 3/You and other changes/fixes (#280) 2023-10-22 18:38:32 -04:00
main.dart fix: reclassify transient errors as non-fatal and fix top crashes 2026-06-21 15:04:11 -04:00
theme.dart feat(video,chat): native player, ad-break awareness, chat send/delay reliability, and tab redesign (#567) 2026-06-13 17:06:24 -04:00
utils.dart v5 (#463) 2026-01-01 22:28:17 -05:00