Skip to content
This repository was archived by the owner on Feb 24, 2025. It is now read-only.

Commit e4272fc

Browse files
Privacy Pro settings updates (#3189)
Task/Issue URL: https://app.asana.com/0/1205842942115003/1207746442205594/f CC: @miasma13 New Subscription settings menu states and new subscription setting pages.
1 parent 46f1541 commit e4272fc

File tree

54 files changed

+787
-584
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+787
-584
lines changed

.swiftlint.yml

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ disabled_rules:
1212
- function_body_length
1313
- file_length
1414
- type_body_length
15+
- non_optional_string_data_conversion
16+
- static_over_final_class
1517

1618
opt_in_rules:
1719
- closure_end_indentation
@@ -21,16 +23,6 @@ opt_in_rules:
2123
- fatal_error_message
2224
- file_header
2325

24-
custom_rules:
25-
enforce_os_log_wrapper:
26-
included: ".*\\.swift"
27-
excluded: ".*Tests.*"
28-
name: "Use `import Common` for os_log instead of `import os.log`"
29-
regex: "^(import (?:os\\.log|os|OSLog))$"
30-
capture_group: 0
31-
message: "os_log wrapper ensures log args are @autoclosures (computed when needed) and to be able to use String Interpolation."
32-
severity: error
33-
3426
analyzer_rules:
3527
- unused_import
3628

Core/LegacyBookmarksCoreDataStorage.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,6 @@ extension LegacyBookmarksCoreDataStorage {
264264
private func deleteExtraOrphanedFolders(_ orphanedFolders: [BookmarkFolderManagedObject],
265265
onContext context: NSManagedObjectContext,
266266
withFolderType folderType: TopLevelFolderType) {
267-
let count = orphanedFolders.count
268-
let pixelParam = [PixelParameters.bookmarkErrorOrphanedFolderCount: "\(count)"]
269-
270267
// Sort all orphaned folders by number of children
271268
let sorted = orphanedFolders.sorted { ($0.children?.count ?? 0) > ($1.children?.count ?? 0) }
272269

DuckDuckGo.xcodeproj/project.pbxproj

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
1DEAADEC2BA45B4500E25A97 /* SettingsAccessibilityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEAADEB2BA45B4400E25A97 /* SettingsAccessibilityView.swift */; };
3333
1DEAADEE2BA45DFE00E25A97 /* SettingsDataClearingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEAADED2BA45DFE00E25A97 /* SettingsDataClearingView.swift */; };
3434
1DEAADF02BA46E0700E25A97 /* PrivateSearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEAADEF2BA46E0600E25A97 /* PrivateSearchView.swift */; };
35-
1DEAADF22BA4716C00E25A97 /* SettingsStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEAADF12BA4716C00E25A97 /* SettingsStatus.swift */; };
35+
1DEAADF22BA4716C00E25A97 /* StatusIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEAADF12BA4716C00E25A97 /* StatusIndicator.swift */; };
3636
1DEAADF42BA47B5300E25A97 /* WebTrackingProtectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEAADF32BA47B5300E25A97 /* WebTrackingProtectionView.swift */; };
3737
1DEAADF62BA4809400E25A97 /* CookiePopUpProtectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEAADF52BA4809400E25A97 /* CookiePopUpProtectionView.swift */; };
3838
1DEAADFB2BA71E9A00E25A97 /* SettingsPrivacyProtectionDescriptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEAADFA2BA71E9A00E25A97 /* SettingsPrivacyProtectionDescriptionView.swift */; };
@@ -992,6 +992,8 @@
992992
F114C55B1E66EB020018F95F /* NibLoading.swift in Sources */ = {isa = PBXBuildFile; fileRef = F114C55A1E66EB020018F95F /* NibLoading.swift */; };
993993
F115ED9C2B4EFC8E001A0453 /* TestUtils in Frameworks */ = {isa = PBXBuildFile; productRef = F115ED9B2B4EFC8E001A0453 /* TestUtils */; };
994994
F130D73A1E5776C500C45811 /* OmniBarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F130D7391E5776C500C45811 /* OmniBarDelegate.swift */; };
995+
F132D6A52C62239B00D85426 /* SubscriptionSettingsHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F132D6A42C62239B00D85426 /* SubscriptionSettingsHeaderView.swift */; };
996+
F132D6A82C6524B600D85426 /* Logger+Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = F132D6A72C6524B600D85426 /* Logger+Subscription.swift */; };
995997
F1386BA41E6846C40062FC3C /* TabDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1386BA31E6846C40062FC3C /* TabDelegate.swift */; };
996998
F13B4BC01F180D8A00814661 /* TabsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F13B4BBF1F180D8A00814661 /* TabsModel.swift */; };
997999
F13B4BD31F1822C700814661 /* Tab.swift in Sources */ = {isa = PBXBuildFile; fileRef = F13B4BD21F1822C700814661 /* Tab.swift */; };
@@ -1058,6 +1060,7 @@
10581060
F1E4A4451EE89460006F2EAE /* Bookmarks.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F1E4A4431EE89460006F2EAE /* Bookmarks.storyboard */; };
10591061
F1E90C201E678E7C005E7E21 /* HomeControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1E90C1F1E678E7C005E7E21 /* HomeControllerDelegate.swift */; };
10601062
F1ED309D1EDC2EA400651986 /* TabSwitcher.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F1ED309B1EDC2EA400651986 /* TabSwitcher.storyboard */; };
1063+
F1EFB0062C5B8B8E009AB44B /* StatusIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1EFB0052C5B8B8E009AB44B /* StatusIndicatorView.swift */; };
10611064
F1F5337C1F26A9EF00D80D4F /* UserText.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1F5337B1F26A9EF00D80D4F /* UserText.swift */; };
10621065
F1F533841F26ABAC00D80D4F /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F1F533861F26ABAC00D80D4F /* Localizable.strings */; };
10631066
F1FDC9302BF4E0B3006B1435 /* SubscriptionEnvironment+Default.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1FDC92F2BF4E0B3006B1435 /* SubscriptionEnvironment+Default.swift */; };
@@ -1263,7 +1266,7 @@
12631266
1DEAADEB2BA45B4400E25A97 /* SettingsAccessibilityView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsAccessibilityView.swift; sourceTree = "<group>"; };
12641267
1DEAADED2BA45DFE00E25A97 /* SettingsDataClearingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsDataClearingView.swift; sourceTree = "<group>"; };
12651268
1DEAADEF2BA46E0600E25A97 /* PrivateSearchView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrivateSearchView.swift; sourceTree = "<group>"; };
1266-
1DEAADF12BA4716C00E25A97 /* SettingsStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsStatus.swift; sourceTree = "<group>"; };
1269+
1DEAADF12BA4716C00E25A97 /* StatusIndicator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusIndicator.swift; sourceTree = "<group>"; };
12671270
1DEAADF32BA47B5300E25A97 /* WebTrackingProtectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebTrackingProtectionView.swift; sourceTree = "<group>"; };
12681271
1DEAADF52BA4809400E25A97 /* CookiePopUpProtectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CookiePopUpProtectionView.swift; sourceTree = "<group>"; };
12691272
1DEAADFA2BA71E9A00E25A97 /* SettingsPrivacyProtectionDescriptionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsPrivacyProtectionDescriptionView.swift; sourceTree = "<group>"; };
@@ -2765,6 +2768,8 @@
27652768
F1134ED41F40F15800B73467 /* StatisticsUserDefaultsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatisticsUserDefaultsTests.swift; sourceTree = "<group>"; };
27662769
F114C55A1E66EB020018F95F /* NibLoading.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NibLoading.swift; sourceTree = "<group>"; };
27672770
F130D7391E5776C500C45811 /* OmniBarDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmniBarDelegate.swift; sourceTree = "<group>"; };
2771+
F132D6A42C62239B00D85426 /* SubscriptionSettingsHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionSettingsHeaderView.swift; sourceTree = "<group>"; };
2772+
F132D6A72C6524B600D85426 /* Logger+Subscription.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Logger+Subscription.swift"; sourceTree = "<group>"; };
27682773
F1386BA31E6846C40062FC3C /* TabDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabDelegate.swift; sourceTree = "<group>"; };
27692774
F13B4BBF1F180D8A00814661 /* TabsModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabsModel.swift; sourceTree = "<group>"; };
27702775
F13B4BD21F1822C700814661 /* Tab.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Tab.swift; sourceTree = "<group>"; };
@@ -2837,6 +2842,7 @@
28372842
F1E4A4441EE89460006F2EAE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Bookmarks.storyboard; sourceTree = "<group>"; };
28382843
F1E90C1F1E678E7C005E7E21 /* HomeControllerDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeControllerDelegate.swift; sourceTree = "<group>"; };
28392844
F1ED309C1EDC2EA400651986 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/TabSwitcher.storyboard; sourceTree = "<group>"; };
2845+
F1EFB0052C5B8B8E009AB44B /* StatusIndicatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusIndicatorView.swift; sourceTree = "<group>"; };
28402846
F1F5337B1F26A9EF00D80D4F /* UserText.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserText.swift; sourceTree = "<group>"; };
28412847
F1FDC92F2BF4E0B3006B1435 /* SubscriptionEnvironment+Default.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SubscriptionEnvironment+Default.swift"; sourceTree = "<group>"; };
28422848
F1FDC9342BF51E41006B1435 /* VPNSettings+Environment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "VPNSettings+Environment.swift"; sourceTree = "<group>"; };
@@ -5028,6 +5034,7 @@
50285034
isa = PBXGroup;
50295035
children = (
50305036
F1FDC9342BF51E41006B1435 /* VPNSettings+Environment.swift */,
5037+
F132D6A72C6524B600D85426 /* Logger+Subscription.swift */,
50315038
D664C7982B289AA000CBFA76 /* WKUserContentController+Handler.swift */,
50325039
);
50335040
path = Extensions;
@@ -5046,6 +5053,7 @@
50465053
D68A21432B7EC08500BB372E /* SubscriptionExternalLinkView.swift */,
50475054
D6BFCB5E2B7524AA0051FF81 /* SubscriptionPIRView.swift */,
50485055
D6F93E3D2B50A8A0004C268D /* SubscriptionSettingsView.swift */,
5056+
F132D6A42C62239B00D85426 /* SubscriptionSettingsHeaderView.swift */,
50495057
D60B1F262B9DDE5A00AE4760 /* SubscriptionGoogleView.swift */,
50505058
D670E5BA2BB6A75200941A42 /* SubscriptionNavigationCoordinator.swift */,
50515059
D63677F42BBDB1C300605BA5 /* DaxLogoNavbarTitle.swift */,
@@ -5092,7 +5100,8 @@
50925100
D6E83C472B20C812006C8AFB /* SettingsHostingController.swift */,
50935101
1DDF401F2BA049FA006850D9 /* SettingsRootView.swift */,
50945102
D6E83C302B1EA309006C8AFB /* SettingsCell.swift */,
5095-
1DEAADF12BA4716C00E25A97 /* SettingsStatus.swift */,
5103+
1DEAADF12BA4716C00E25A97 /* StatusIndicator.swift */,
5104+
F1EFB0052C5B8B8E009AB44B /* StatusIndicatorView.swift */,
50965105
1DDF40272BA04CF3006850D9 /* Sections */,
50975106
85449EF623FDA03100512AAF /* UIkit */,
50985107
);
@@ -7002,6 +7011,7 @@
70027011
D6FEB8B32B74990D00C3615F /* HeadlessWebViewNavCoordinator.swift in Sources */,
70037012
85BDC310243359040053DB07 /* FindInPageUserScript.swift in Sources */,
70047013
F1DE78581E5CAE350058895A /* TabViewGridCell.swift in Sources */,
7014+
F132D6A52C62239B00D85426 /* SubscriptionSettingsHeaderView.swift in Sources */,
70057015
984D035824ACCC6F0066CFB8 /* TabViewListCell.swift in Sources */,
70067016
B6BA95C328891E33004ABA20 /* BrowsingMenuAnimator.swift in Sources */,
70077017
D68DF81C2B58302E0023DBEA /* SubscriptionRestoreView.swift in Sources */,
@@ -7175,7 +7185,7 @@
71757185
BD2F39EB2C19F955005B19E7 /* NetworkProtectionDNSSettingsView.swift in Sources */,
71767186
CB2A7EEF283D185100885F67 /* RulesCompilationMonitor.swift in Sources */,
71777187
D6037E692C32F2E7009AAEC0 /* DuckPlayerSettings.swift in Sources */,
7178-
1DEAADF22BA4716C00E25A97 /* SettingsStatus.swift in Sources */,
7188+
1DEAADF22BA4716C00E25A97 /* StatusIndicator.swift in Sources */,
71797189
C18ED43C2AB8364400BF3805 /* FileTextPreviewDebugViewController.swift in Sources */,
71807190
1EEF12502851016B003DDE57 /* PrivacyIconAndTrackersAnimator.swift in Sources */,
71817191
31CB4251273AF50700FA0F3F /* SpeechRecognizerProtocol.swift in Sources */,
@@ -7196,6 +7206,7 @@
71967206
D66F683D2BB333C100AE93E2 /* SubscriptionContainerView.swift in Sources */,
71977207
851B128822200575004781BC /* Onboarding.swift in Sources */,
71987208
9FB027192C26BC29009EA190 /* BrowsersComparisonModel.swift in Sources */,
7209+
F1EFB0062C5B8B8E009AB44B /* StatusIndicatorView.swift in Sources */,
71997210
EE5929622C5A8AF40029380B /* AutofillUsageMonitor.swift in Sources */,
72007211
3151F0EE2735800800226F58 /* VoiceSearchFeedbackView.swift in Sources */,
72017212
37CF91642BB4A82A00BADCAE /* CrashCollectionOnboardingViewModel.swift in Sources */,
@@ -7302,6 +7313,7 @@
73027313
85C861E628FF1B5F00189466 /* HomeViewSectionRenderersExtension.swift in Sources */,
73037314
CB825C922C071B1400BCC586 /* AlertView.swift in Sources */,
73047315
1DDF40292BA04FCD006850D9 /* SettingsPrivacyProtectionsView.swift in Sources */,
7316+
F132D6A82C6524B600D85426 /* Logger+Subscription.swift in Sources */,
73057317
6F64AA5F2C49463C00CF4489 /* ShortcutsModel.swift in Sources */,
73067318
F1D477C61F2126CC0031ED49 /* OmniBarState.swift in Sources */,
73077319
85F2FFCD2211F615006BB258 /* MainViewController+KeyCommands.swift in Sources */,
@@ -10555,7 +10567,7 @@
1055510567
repositoryURL = "https://github.com/duckduckgo/DesignResourcesKit";
1055610568
requirement = {
1055710569
kind = exactVersion;
10558-
version = 3.0.0;
10570+
version = 3.2.0;
1055910571
};
1056010572
};
1056110573
F486D2EF25069482002D07D7 /* XCRemoteSwiftPackageReference "Kingfisher" */ = {

DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

DuckDuckGo/AboutView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,11 @@ struct AboutViewVersion: View {
7676
var body: some View {
7777
Section(header: Text("DuckDuckGo for iOS"), footer: Text(UserText.settingsSendCrashReportsDescription)) {
7878
SettingsCellView(label: UserText.settingsVersion,
79-
accesory: .rightDetail(viewModel.state.version))
79+
accessory: .rightDetail(viewModel.state.version))
8080

8181
// Send Crash Reports
8282
SettingsCellView(label: UserText.settingsSendCrashReports,
83-
accesory: .toggle(isOn: viewModel.crashCollectionOptInStatusBinding))
83+
accessory: .toggle(isOn: viewModel.crashCollectionOptInStatusBinding))
8484
}
8585
}
8686
}

DuckDuckGo/CookiePopUpProtectionView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ struct CookiePopUpProtectionViewSettings: View {
5454
Section {
5555
// Let DuckDuckGo manage cookie consent pop-ups
5656
SettingsCellView(label: UserText.letDuckDuckGoManageCookieConsentPopups,
57-
accesory: .toggle(isOn: viewModel.autoconsentBinding))
57+
accessory: .toggle(isOn: viewModel.autoconsentBinding))
5858
}
5959
}
6060
}

DuckDuckGo/PrivateSearchView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ struct PrivateSearchViewSettings: View {
5151
Section(footer: Text(UserText.settingsAutocompleteSubtitle)) {
5252
// Autocomplete Suggestions
5353
SettingsCellView(label: UserText.settingsAutocompleteLabel,
54-
accesory: .toggle(isOn: viewModel.autocompletePrivateSearchBinding))
54+
accessory: .toggle(isOn: viewModel.autocompletePrivateSearchBinding))
5555
}
5656

5757
if viewModel.shouldShowRecentlyVisitedSites {
5858
Section(footer: Text(UserText.settingsAutocompleteRecentlyVisitedSubtitle)) {
5959
SettingsCellView(label: UserText.settingsAutocompleteRecentlyVisitedLabel,
60-
accesory: .toggle(isOn: viewModel.autocompleteRecentlyVisitedSitesBinding))
60+
accessory: .toggle(isOn: viewModel.autocompleteRecentlyVisitedSitesBinding))
6161
}
6262
}
6363

DuckDuckGo/Settings.xcassets/Colors/AlertGreen.colorset/Contents.json

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)