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.
This commit is contained in:
parent
ca80ae44b6
commit
e5eb27228e
2 changed files with 26 additions and 1 deletions
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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<NativeStackNavigationProp<RootStackParamList, 'Player'>>();
|
||||
// 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 }) {
|
|||
</View>
|
||||
)}
|
||||
|
||||
<View style={styles.controlsBottom} pointerEvents="box-none">
|
||||
<View
|
||||
style={[
|
||||
styles.controlsBottom,
|
||||
{
|
||||
paddingBottom: 18 + insets.bottom,
|
||||
paddingLeft: 14 + insets.left,
|
||||
paddingRight: 14 + insets.right,
|
||||
},
|
||||
]}
|
||||
pointerEvents="box-none"
|
||||
>
|
||||
<Text style={styles.timeText}>{formatTime(displayedTime)}</Text>
|
||||
<GestureDetector gesture={scrubGesture}>
|
||||
<View style={styles.scrubTouchArea} onLayout={scrubBarLayout} collapsable={false}>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue