From 66353bc80cbc731e20bcef63832ba81d0853ab28 Mon Sep 17 00:00:00 2001 From: Seiike <122684677+Seeike@users.noreply.github.com> Date: Tue, 10 Jun 2025 17:10:23 +0200 Subject: [PATCH] toggle for subtitles (#166) * added persistance for subtitle toggling * fixed typo * now we good (i think fuck windows) * adasd WSEFG --------- Co-authored-by: cranci <100066266+cranci1@users.noreply.github.com> --- .../MediaPlayer/CustomPlayer/CustomPlayer.swift | 1 + .../Helpers/SubtitleSettingsManager.swift | 1 + .../SettingsSubViews/SettingsViewPlayer.swift | 17 +++++++++++++++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift b/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift index 9483e0e..fcf4bf2 100644 --- a/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift +++ b/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift @@ -307,6 +307,7 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele setupPipIfSupported() view.bringSubviewToFront(subtitleStackView) + subtitleStackView.isHidden = !SubtitleSettingsManager.shared.settings.enabled AniListMutation().fetchMalID(animeId: aniListID) { [weak self] result in switch result { diff --git a/Sora/Utils/MediaPlayer/CustomPlayer/Helpers/SubtitleSettingsManager.swift b/Sora/Utils/MediaPlayer/CustomPlayer/Helpers/SubtitleSettingsManager.swift index 57e96b3..2ef7fbd 100644 --- a/Sora/Utils/MediaPlayer/CustomPlayer/Helpers/SubtitleSettingsManager.swift +++ b/Sora/Utils/MediaPlayer/CustomPlayer/Helpers/SubtitleSettingsManager.swift @@ -8,6 +8,7 @@ import UIKit struct SubtitleSettings: Codable { + var enabled: Bool = true var foregroundColor: String = "white" var fontSize: Double = 20.0 var shadowRadius: Double = 1.0 diff --git a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewPlayer.swift b/Sora/Views/SettingsView/SettingsSubViews/SettingsViewPlayer.swift index 0c57c37..9ce67eb 100644 --- a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewPlayer.swift +++ b/Sora/Views/SettingsView/SettingsSubViews/SettingsViewPlayer.swift @@ -342,12 +342,25 @@ struct SubtitleSettingsSection: View { @State private var backgroundEnabled: Bool = SubtitleSettingsManager.shared.settings.backgroundEnabled @State private var bottomPadding: Double = Double(SubtitleSettingsManager.shared.settings.bottomPadding) @State private var subtitleDelay: Double = SubtitleSettingsManager.shared.settings.subtitleDelay + @AppStorage("subtitlesEnabled") private var subtitlesEnabled: Bool = true private let colors = ["white", "yellow", "green", "blue", "red", "purple"] private let shadowOptions = [0, 1, 3, 6] var body: some View { - SettingsSection(title: "Subtitle Settings") { + SettingsSection(title: "Subtitle Settings") { + SettingsToggleRow( + icon: "captions.bubble", + title: "Enable Subtitles", + isOn: $subtitlesEnabled, + showDivider: false + ) + .onChange(of: subtitlesEnabled) { newValue in + SubtitleSettingsManager.shared.update { settings in + settings.enabled = newValue + } + } + SettingsPickerRow( icon: "paintbrush", title: "Subtitle Color", @@ -416,4 +429,4 @@ struct SubtitleSettingsSection: View { } } } -} +} \ No newline at end of file