From 6331e69a2f655589d5d2d65d5ecc325c61986830 Mon Sep 17 00:00:00 2001 From: Pas <74743263+Pasithea0@users.noreply.github.com> Date: Thu, 8 Jan 2026 13:19:21 -0700 Subject: [PATCH] fix quality switching bug --- .../player/atoms/settings/QualityView.tsx | 27 +++++++++++++------ src/components/player/display/base.ts | 21 ++++++++++++--- src/stores/player/utils/qualities.ts | 10 ++++++- 3 files changed, 46 insertions(+), 12 deletions(-) diff --git a/src/components/player/atoms/settings/QualityView.tsx b/src/components/player/atoms/settings/QualityView.tsx index 0250c8ea..689c43ed 100644 --- a/src/components/player/atoms/settings/QualityView.tsx +++ b/src/components/player/atoms/settings/QualityView.tsx @@ -40,6 +40,7 @@ function useIsIosHls() { export function QualityView({ id }: { id: string }) { const router = useOverlayRouter(id); const isIosHls = useIsIosHls(); + const sourceType = usePlayerStore((s) => s.source?.type); const availableQualities = usePlayerStore((s) => s.qualities); const currentQuality = usePlayerStore((s) => s.currentQuality); const switchQuality = usePlayerStore((s) => s.switchQuality); @@ -50,14 +51,18 @@ export function QualityView({ id }: { id: string }) { const setLastChosenQuality = useQualityStore((s) => s.setLastChosenQuality); const autoQuality = useQualityStore((s) => s.quality.automaticQuality); + // Auto quality only makes sense for HLS sources + const supportsAutoQuality = sourceType === "hls"; + const change = useCallback( (q: SourceQuality) => { setLastChosenQuality(q); - setAutomaticQuality(false); + // Don't disable auto quality when manually selecting a quality + // Keep auto quality enabled by default unless user explicitly toggles it switchQuality(q); router.close(); }, - [router, switchQuality, setLastChosenQuality, setAutomaticQuality], + [router, switchQuality, setLastChosenQuality], ); const changeAutomatic = useCallback(() => { @@ -90,12 +95,18 @@ export function QualityView({ id }: { id: string }) { {qualityToString(v)} ))} -