From 3206f7dac7f7226a3ce78de38f50780ce49a381d Mon Sep 17 00:00:00 2001 From: Fernando Bunn Date: Tue, 6 Aug 2024 17:24:28 +0100 Subject: [PATCH] Handle contingency settings state on remote config (#3190) Task/Issue URL: https://app.asana.com/0/0/1207976963085128/f **Description**: Display DuckPlayer contingency message and disable settings if necessary --- DuckDuckGo.xcodeproj/project.pbxproj | 6 +--- .../xcshareddata/swiftpm/Package.resolved | 4 +-- .../DuckPlayerContingencyHandler.swift | 36 ------------------- DuckDuckGo/SettingsCell.swift | 5 +-- DuckDuckGo/SettingsDuckPlayerView.swift | 3 +- DuckDuckGo/SettingsViewModel.swift | 12 ++++--- 6 files changed, 16 insertions(+), 50 deletions(-) delete mode 100644 DuckDuckGo/DuckPlayer/DuckPlayerContingencyHandler.swift diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 5961fc7aa6..db91b29f90 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -118,7 +118,6 @@ 1EFDCBC127D2393C00916BC5 /* DownloadsDeleteHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EFDCBC027D2393C00916BC5 /* DownloadsDeleteHelper.swift */; }; 22CB1ED8203DDD2C00D2C724 /* AppDeepLinksTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22CB1ED7203DDD2C00D2C724 /* AppDeepLinksTests.swift */; }; 2DC3FC65C6D9DA634426672D /* AutofillNoAuthAvailableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DC3FBD62FBAF21E87610FA8 /* AutofillNoAuthAvailableView.swift */; }; - 31009B382C5D32D100510782 /* DuckPlayerContingencyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31009B372C5D32D100510782 /* DuckPlayerContingencyHandler.swift */; }; 310742A62848CD780012660B /* BackForwardMenuHistoryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 310742A52848CD780012660B /* BackForwardMenuHistoryItem.swift */; }; 310742AB2848E6FD0012660B /* BackForwardMenuHistoryItemURLSanitizerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 310742A92848E5B70012660B /* BackForwardMenuHistoryItemURLSanitizerTests.swift */; }; 310C4B45281B5A9A00BA79A9 /* AutofillLoginDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 310C4B44281B5A9A00BA79A9 /* AutofillLoginDetailsView.swift */; }; @@ -1333,7 +1332,6 @@ 1EFDCBC027D2393C00916BC5 /* DownloadsDeleteHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadsDeleteHelper.swift; sourceTree = ""; }; 22CB1ED7203DDD2C00D2C724 /* AppDeepLinksTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDeepLinksTests.swift; sourceTree = ""; }; 2DC3FBD62FBAF21E87610FA8 /* AutofillNoAuthAvailableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutofillNoAuthAvailableView.swift; sourceTree = ""; }; - 31009B372C5D32D100510782 /* DuckPlayerContingencyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DuckPlayerContingencyHandler.swift; sourceTree = ""; }; 310742A52848CD780012660B /* BackForwardMenuHistoryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackForwardMenuHistoryItem.swift; sourceTree = ""; }; 310742A92848E5B70012660B /* BackForwardMenuHistoryItemURLSanitizerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackForwardMenuHistoryItemURLSanitizerTests.swift; sourceTree = ""; }; 310C4B44281B5A9A00BA79A9 /* AutofillLoginDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutofillLoginDetailsView.swift; sourceTree = ""; }; @@ -4950,7 +4948,6 @@ D63FF8922C1B67D1006DE24D /* DuckPlayer */ = { isa = PBXGroup; children = ( - 31009B372C5D32D100510782 /* DuckPlayerContingencyHandler.swift */, 31DE43C82C2DAA8F00F8C51F /* Modal */, 31DE43C72C2DAA7F00F8C51F /* Resources */, D63FF8972C1B6A45006DE24D /* DuckPlayer.swift */, @@ -7021,7 +7018,6 @@ F1386BA41E6846C40062FC3C /* TabDelegate.swift in Sources */, 37CF91602BB4737300BADCAE /* CrashCollectionOnboarding.swift in Sources */, C1B924B72ACD6E6800EE7B06 /* AutofillNeverSavedTableViewCell.swift in Sources */, - 31009B382C5D32D100510782 /* DuckPlayerContingencyHandler.swift in Sources */, 3132FA2A27A0788F00DD7A12 /* QuickLookPreviewHelper.swift in Sources */, D670E5BB2BB6A75300941A42 /* SubscriptionNavigationCoordinator.swift in Sources */, 6F9FFE262C579BCD00A238BE /* NewTabPageShortcutsSettingsStorage.swift in Sources */, @@ -10473,7 +10469,7 @@ repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { kind = exactVersion; - version = 180.0.1; + version = 181.0.0; }; }; 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 1b903786ac..8b315c1f6f 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "revision" : "a3b3df069bbaa06149e43ca26e5df219ee61aa15", - "version" : "180.0.1" + "revision" : "1d5b3d0a52f75ec5899ae79aabe6c879102cf218", + "version" : "181.0.0" } }, { diff --git a/DuckDuckGo/DuckPlayer/DuckPlayerContingencyHandler.swift b/DuckDuckGo/DuckPlayer/DuckPlayerContingencyHandler.swift deleted file mode 100644 index 1e42f1c4d7..0000000000 --- a/DuckDuckGo/DuckPlayer/DuckPlayerContingencyHandler.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// DuckPlayerContingencyHandler.swift -// DuckDuckGo -// -// Copyright © 2024 DuckDuckGo. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import Foundation - -protocol DuckPlayerContingencyHandler { - var shouldDisplayContingencyMessage: Bool { get } - var learnMoreURL: URL { get } -} - -struct DefaultDuckPlayerContingencyHandler: DuckPlayerContingencyHandler { - var shouldDisplayContingencyMessage: Bool { - false - } - - var learnMoreURL: URL { -#warning("DuckPlayer - Replace this with real URL") - return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/duck-player/")! - } -} diff --git a/DuckDuckGo/SettingsCell.swift b/DuckDuckGo/SettingsCell.swift index 5a90ca6618..9ce7fd80bc 100644 --- a/DuckDuckGo/SettingsCell.swift +++ b/DuckDuckGo/SettingsCell.swift @@ -196,7 +196,8 @@ struct SettingsPickerCellView Bool { + var shouldDisplayDuckPlayerContingencyMessage: Bool { duckPlayerContingencyHandler.shouldDisplayContingencyMessage } func openDuckPlayerContingencyMessageSite() { - UIApplication.shared.open(duckPlayerContingencyHandler.learnMoreURL, + guard let url = duckPlayerContingencyHandler.learnMoreURL else { return } + UIApplication.shared.open(url, options: [:], completionHandler: nil) }