feat(settings): add toggle to disable auto-play next episode (#1342)

This commit is contained in:
Fredrik Burmester
2026-01-11 13:07:38 +01:00
committed by GitHub
parent 0e238ad10e
commit 62b45121e5
4 changed files with 36 additions and 16 deletions

View File

@@ -211,7 +211,23 @@ export const PlaybackControlsSettings: React.FC = () => {
/> />
</ListItem> </ListItem>
<ListItem title={t("home.settings.other.max_auto_play_episode_count")}> <ListItem
title={t("home.settings.other.auto_play_next_episode")}
disabled={pluginSettings?.autoPlayNextEpisode?.locked}
>
<Switch
value={settings.autoPlayNextEpisode}
disabled={pluginSettings?.autoPlayNextEpisode?.locked}
onValueChange={(autoPlayNextEpisode) =>
updateSettings({ autoPlayNextEpisode })
}
/>
</ListItem>
<ListItem
title={t("home.settings.other.max_auto_play_episode_count")}
disabled={!settings.autoPlayNextEpisode}
>
<PlatformDropdown <PlatformDropdown
groups={autoPlayEpisodeOptions} groups={autoPlayEpisodeOptions}
trigger={ trigger={

View File

@@ -148,21 +148,22 @@ export const BottomControls: FC<BottomControlsProps> = ({
onPress={skipCredit} onPress={skipCredit}
buttonText='Skip Credits' buttonText='Skip Credits'
/> />
{(settings.maxAutoPlayEpisodeCount.value === -1 || {settings.autoPlayNextEpisode !== false &&
settings.autoPlayEpisodeCount < (settings.maxAutoPlayEpisodeCount.value === -1 ||
settings.maxAutoPlayEpisodeCount.value) && ( settings.autoPlayEpisodeCount <
<NextEpisodeCountDownButton settings.maxAutoPlayEpisodeCount.value) && (
show={ <NextEpisodeCountDownButton
!nextItem show={
? false !nextItem
: // Show during credits if no content after, OR near end of video ? false
(showSkipCreditButton && !hasContentAfterCredits) || : // Show during credits if no content after, OR near end of video
remainingTime < 10000 (showSkipCreditButton && !hasContentAfterCredits) ||
} remainingTime < 10000
onFinish={handleNextEpisodeAutoPlay} }
onPress={handleNextEpisodeManual} onFinish={handleNextEpisodeAutoPlay}
/> onPress={handleNextEpisodeManual}
)} />
)}
</View> </View>
</View> </View>
<View <View

View File

@@ -278,6 +278,7 @@
"disable_haptic_feedback": "Disable Haptic Feedback", "disable_haptic_feedback": "Disable Haptic Feedback",
"default_quality": "Default Quality", "default_quality": "Default Quality",
"default_playback_speed": "Default Playback Speed", "default_playback_speed": "Default Playback Speed",
"auto_play_next_episode": "Auto-play Next Episode",
"max_auto_play_episode_count": "Max Auto Play Episode Count", "max_auto_play_episode_count": "Max Auto Play Episode Count",
"disabled": "Disabled" "disabled": "Disabled"
}, },

View File

@@ -180,6 +180,7 @@ export type Settings = {
enableH265ForChromecast: boolean; enableH265ForChromecast: boolean;
maxAutoPlayEpisodeCount: MaxAutoPlayEpisodeCount; maxAutoPlayEpisodeCount: MaxAutoPlayEpisodeCount;
autoPlayEpisodeCount: number; autoPlayEpisodeCount: number;
autoPlayNextEpisode: boolean;
// Playback speed settings // Playback speed settings
defaultPlaybackSpeed: number; defaultPlaybackSpeed: number;
playbackSpeedPerMedia: Record<string, number>; playbackSpeedPerMedia: Record<string, number>;
@@ -264,6 +265,7 @@ export const defaultValues: Settings = {
enableH265ForChromecast: false, enableH265ForChromecast: false,
maxAutoPlayEpisodeCount: { key: "3", value: 3 }, maxAutoPlayEpisodeCount: { key: "3", value: 3 },
autoPlayEpisodeCount: 0, autoPlayEpisodeCount: 0,
autoPlayNextEpisode: true,
// Playback speed defaults // Playback speed defaults
defaultPlaybackSpeed: 1.0, defaultPlaybackSpeed: 1.0,
playbackSpeedPerMedia: {}, playbackSpeedPerMedia: {},