diff --git a/Sources/Brave/Frontend/Browser/BrowserViewController.swift b/Sources/Brave/Frontend/Browser/BrowserViewController.swift index 4e1af53b003..54a967f6409 100644 --- a/Sources/Brave/Frontend/Browser/BrowserViewController.swift +++ b/Sources/Brave/Frontend/Browser/BrowserViewController.swift @@ -380,8 +380,7 @@ public class BrowserViewController: UIViewController { } if Preferences.Privacy.screenTimeEnabled.value { - // Enable once fixed, ref #8566 - //screenTimeViewController = STWebpageController() + screenTimeViewController = STWebpageController() } } @@ -1252,9 +1251,11 @@ public class BrowserViewController: UIViewController { } if let screenTimeViewController = screenTimeViewController { - webViewContainer.addSubview(screenTimeViewController.view) - addChild(screenTimeViewController) - screenTimeViewController.didMove(toParent: self) + if screenTimeViewController.parent == nil { + addChild(screenTimeViewController) + screenTimeViewController.didMove(toParent: self) + webViewContainer.addSubview(screenTimeViewController.view) + } screenTimeViewController.view.snp.remakeConstraints { $0.edges.equalTo(webViewContainer) @@ -3321,13 +3322,13 @@ extension BrowserViewController: PreferencesObserver { recordAdsUsageType() case Preferences.Privacy.screenTimeEnabled.key: if Preferences.Privacy.screenTimeEnabled.value { - // Enable once fixed, ref #8566 - //screenTimeViewController = STWebpageController() + screenTimeViewController = STWebpageController() if let tab = tabManager.selectedTab { recordScreenTimeUsage(for: tab) } } else { screenTimeViewController?.view.removeFromSuperview() + screenTimeViewController?.willMove(toParent: nil) screenTimeViewController?.removeFromParent() screenTimeViewController?.suppressUsageRecording = true screenTimeViewController = nil diff --git a/Sources/Brave/Frontend/Browser/BrowserViewController/BVC+ScreenTime.swift b/Sources/Brave/Frontend/Browser/BrowserViewController/BVC+ScreenTime.swift index 47ad2473e7d..c329aa8951d 100644 --- a/Sources/Brave/Frontend/Browser/BrowserViewController/BVC+ScreenTime.swift +++ b/Sources/Brave/Frontend/Browser/BrowserViewController/BVC+ScreenTime.swift @@ -13,7 +13,9 @@ extension BrowserViewController { /// it will not block anything for the rest of its lifecycle. Our internal urls have to be bridged to an empty https url. func updateScreenTimeUrl(_ url: URL?) { guard let url = url, (url.scheme == "http" || url.scheme == "https") else { - screenTimeViewController?.url = URL(string: "https://about:blank") + screenTimeViewController?.view.removeFromSuperview() + screenTimeViewController?.willMove(toParent: nil) + screenTimeViewController?.removeFromParent() return } diff --git a/Sources/Brave/Frontend/ClientPreferences.swift b/Sources/Brave/Frontend/ClientPreferences.swift index 6e312b7386b..fff74b178f1 100644 --- a/Sources/Brave/Frontend/ClientPreferences.swift +++ b/Sources/Brave/Frontend/ClientPreferences.swift @@ -133,7 +133,7 @@ extension Preferences { /// The toggles states for clear private data screen static let clearPrivateDataToggles = Option<[Bool]>(key: "privacy.clear-data-toggles", default: []) /// Enables the Apple's Screen Time feature. - public static let screenTimeEnabled = Option(key: "privacy.screentime", default: true) + public static let screenTimeEnabled = Option(key: "privacy.screentime-toggle", default: AppConstants.buildChannel != .release) } final public class NewTabPage { diff --git a/Sources/Brave/Frontend/Settings/Features/ShieldsPrivacy/OtherPrivacySettingsSectionView.swift b/Sources/Brave/Frontend/Settings/Features/ShieldsPrivacy/OtherPrivacySettingsSectionView.swift index 2d065895078..201ae5e93fa 100644 --- a/Sources/Brave/Frontend/Settings/Features/ShieldsPrivacy/OtherPrivacySettingsSectionView.swift +++ b/Sources/Brave/Frontend/Settings/Features/ShieldsPrivacy/OtherPrivacySettingsSectionView.swift @@ -69,14 +69,11 @@ struct OtherPrivacySettingsSectionView: View { subtitle: String.localizedStringWithFormat(Strings.googleSafeBrowsingUsingWebKitDescription, URL.brave.safeBrowsingHelp.absoluteString), option: Preferences.Shields.googleSafeBrowsing ) - // Enable once fixed, ref #8566 - /* OptionToggleView( title: Strings.screenTimeSetting, subtitle: String.localizedStringWithFormat(Strings.screenTimeSettingDescription, URL.brave.screenTimeHelp.absoluteString), option: Preferences.Privacy.screenTimeEnabled ) - */ ShieldToggleView( title: Strings.P3A.settingTitle, subtitle: Strings.P3A.settingSubtitle,