From e5eb27228e1d30d1a2cb71859b370b7c129a4c7c Mon Sep 17 00:00:00 2001 From: goon-foss Date: Wed, 2 Sep 2026 12:26:20 +0200 Subject: [PATCH] fix(player): dolny pasek sterowania nad systemowym paskiem nawigacji Zgloszenie 386ef7ab (Galaxy S25, Android 16, nawigacja trzema przyciskami): pasek przewijania niewidoczny w pionie. `controlsBottom` mial `bottom: 0` i stale `paddingBottom: 18`, bez marginesow systemowych. Od Androida 15 apka rysuje pod paskiem nawigacji, wiec przy trzech przyciskach (~48 dp) scrubber ladowal pod nimi. Dolozony `useSafeAreaInsets()`: dol plus lewy i prawy, bo w poziomie pasek przyciskow siedzi z boku. Z gestami margines to kilka dp, wiec wyglad prawie bez zmian. `SafeAreaProvider` juz owija apke, ten sam hook jest w nawigacji. tsc: 11 bledow przed i po, zadnego w okolicy zmiany. Wpis w changelogu 2026-09-02a. --- mobile/src/changelog.ts | 8 ++++++++ mobile/src/screens/PlayerScreen.tsx | 19 ++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/mobile/src/changelog.ts b/mobile/src/changelog.ts index 98f1e53..09186ab 100644 --- a/mobile/src/changelog.ts +++ b/mobile/src/changelog.ts @@ -29,6 +29,14 @@ export type ChangelogEntry = { }; export const CHANGELOG: ChangelogEntry[] = [ + { + id: '2026-09-02a', + date: 'September 2026', + items: [ + 'The seek bar no longer hides behind the Android navigation buttons. On phones that use the three-button bar, the player controls sat underneath it. They now leave room for it.', + 'Movies stop swallowing other movies. Titles that differ only by a series number, like part 60 and part 61, or a bare title against a numbered sequel, were being merged into one entry with a pile of wrong links. New arrivals are kept apart now; already merged ones are being sorted out separately.', + ], + }, { id: '2026-08-27a', date: 'August 2026', diff --git a/mobile/src/screens/PlayerScreen.tsx b/mobile/src/screens/PlayerScreen.tsx index aebfc16..7989d40 100644 --- a/mobile/src/screens/PlayerScreen.tsx +++ b/mobile/src/screens/PlayerScreen.tsx @@ -13,6 +13,7 @@ import { setLastPlayback } from '../lib/lastPlayback'; import { allowScreenOff, keepScreenOn } from '../lib/keepAwake'; import { usePreferences } from '../PreferencesContext'; import React from 'react'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { ActivityIndicator, Alert, @@ -203,6 +204,12 @@ function PlayerScreenActive() { function NativeVideoPlayer({ params }: { params: RouteParams }) { const client = useClient(); const nav = useNavigation>(); + // Marginesy systemowe. Od Androida 15 apka rysuje pod paskiem nawigacji, wiec dolny + // pasek sterowania z `bottom: 0` ladowal POD trzema przyciskami systemowymi i scrubber + // znikal (zgloszenie 386ef7ab, Galaxy S25 / Android 16, nawigacja przyciskami). + // Z gestami dolny margines to kilka dp, z przyciskami ~48 dp; w poziomie pasek + // przyciskow siedzi z boku, stad tez lewy i prawy. + const insets = useSafeAreaInsets(); const { url, sceneId, origin: playOrigin, resolvePageUrl, entityKind, durationSec, refererHost, title, fallbackEmbedUrl, headers: paramHeaders, fallbackProxyUrl } = params; const { markBroken, canMark, busy: markBusy } = useMarkSourceBroken(params); // 'movie' → /movies/{id}/progress, 'scene' (default) → /scenes/{id}/progress. @@ -1083,7 +1090,17 @@ function NativeVideoPlayer({ params }: { params: RouteParams }) { )} - + {formatTime(displayedTime)}