Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update VPN Status View submenu to show exclusions #3818

Merged
merged 10 commits into from
Feb 4, 2025
6 changes: 6 additions & 0 deletions DuckDuckGo-macOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1907,6 +1907,8 @@
7B934C412A866DD400FC8F9C /* UserDefaults+NetworkProtectionShared.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B934C402A866DD400FC8F9C /* UserDefaults+NetworkProtectionShared.swift */; };
7B93A68B2D4A5AF200E9FFC1 /* ExcludedAppsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B93A68A2D4A5AEC00E9FFC1 /* ExcludedAppsModel.swift */; };
7B93A68C2D4A5AF200E9FFC1 /* ExcludedAppsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B93A68A2D4A5AEC00E9FFC1 /* ExcludedAppsModel.swift */; };
7B969B3D2D52A81D004AE4E8 /* VPNUIPresenting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B969B3C2D52A818004AE4E8 /* VPNUIPresenting.swift */; };
7B969B3E2D52A81D004AE4E8 /* VPNUIPresenting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B969B3C2D52A818004AE4E8 /* VPNUIPresenting.swift */; };
7B97CD592B7E0B57004FEF43 /* NetworkProtectionProxy in Frameworks */ = {isa = PBXBuildFile; productRef = 7B97CD582B7E0B57004FEF43 /* NetworkProtectionProxy */; };
7B97CD5B2B7E0B85004FEF43 /* Common in Frameworks */ = {isa = PBXBuildFile; productRef = 7B97CD5A2B7E0B85004FEF43 /* Common */; };
7B97CD5C2B7E0BBB004FEF43 /* UserDefaultsWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85C6A29525CC1FFD00EEB5F1 /* UserDefaultsWrapper.swift */; };
Expand Down Expand Up @@ -4290,6 +4292,7 @@
7B934C3D2A866CFF00FC8F9C /* NetworkProtectionOnboardingMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkProtectionOnboardingMenu.swift; sourceTree = "<group>"; };
7B934C402A866DD400FC8F9C /* UserDefaults+NetworkProtectionShared.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UserDefaults+NetworkProtectionShared.swift"; sourceTree = "<group>"; };
7B93A68A2D4A5AEC00E9FFC1 /* ExcludedAppsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExcludedAppsModel.swift; sourceTree = "<group>"; };
7B969B3C2D52A818004AE4E8 /* VPNUIPresenting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VPNUIPresenting.swift; sourceTree = "<group>"; };
7BA7CC0B2AD11D1E0042E5CE /* DuckDuckGoVPNAppStore.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = DuckDuckGoVPNAppStore.xcconfig; sourceTree = "<group>"; };
7BA7CC0C2AD11D1E0042E5CE /* DuckDuckGoVPN.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = DuckDuckGoVPN.xcconfig; sourceTree = "<group>"; };
7BA7CC0E2AD11DC80042E5CE /* DuckDuckGoVPNAppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DuckDuckGoVPNAppDelegate.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -6633,6 +6636,7 @@
B6F1B02D2BCE6B47005E863C /* TunnelControllerProvider.swift */,
4BE3A6C02C16BEB1003FC378 /* VPNRedditSessionWorkaround.swift */,
7B60B0002C514541008E32A3 /* VPNUIActionHandler.swift */,
7B969B3C2D52A818004AE4E8 /* VPNUIPresenting.swift */,
7B60AFFC2C514260008E32A3 /* VPNURLEventHandler.swift */,
);
path = BothAppTargets;
Expand Down Expand Up @@ -12329,6 +12333,7 @@
317307262CD248DB00C492AB /* AutofillToolbarOnboardingPopover.swift in Sources */,
9F6434622BEC82B700D2D8A0 /* AttributionPixelHandler.swift in Sources */,
843AD3DC2CD389CC00163067 /* XMLNodeExtension.swift in Sources */,
7B969B3E2D52A81D004AE4E8 /* VPNUIPresenting.swift in Sources */,
3706FC32293F65D500E42796 /* MoreOptionsMenu.swift in Sources */,
3706FC34293F65D500E42796 /* PermissionAuthorizationViewController.swift in Sources */,
3706FC35293F65D500E42796 /* BookmarkNode.swift in Sources */,
Expand Down Expand Up @@ -13744,6 +13749,7 @@
37DF370A2CF38CD7005ED34B /* PrivacyStatsDatabase.swift in Sources */,
4B4D60C22A0C849000BCD287 /* EventMapping+NetworkProtectionError.swift in Sources */,
4B9292D02667123700AD2C21 /* BookmarkManagementSplitViewController.swift in Sources */,
7B969B3D2D52A81D004AE4E8 /* VPNUIPresenting.swift in Sources */,
31F2D1FF2AF026D800BF0144 /* WaitlistTermsAndConditionsActionHandler.swift in Sources */,
B6B140882ABDBCC1004F8E85 /* HoverTrackingArea.swift in Sources */,
84F1C8CF2C7705B500716446 /* BookmarksBarMenuPopover.swift in Sources */,
Expand Down
15 changes: 15 additions & 0 deletions DuckDuckGo/Assets.xcassets/Images/Help-16.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"images" : [
{
"filename" : "Help-16.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
}
}
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"images" : [
{
"filename" : "Support-16.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
}
}
Binary file not shown.
37 changes: 36 additions & 1 deletion DuckDuckGo/Common/Localizables/UserText+NetworkProtection.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,48 @@ extension UserText {

static let networkProtectionInviteSuccessMessage = NSLocalizedString("network.protection.invite.success.title", value: "DuckDuckGo's VPN secures all of your device's Internet traffic anytime, anywhere.", comment: "Message for the VPN invite success view")

// MARK: - Navigation Bar Status View
// MARK: - VPN Status View submenu (legacy)

static let networkProtectionNavBarStatusViewSendFeedback = NSLocalizedString("network.protection.navbar.status.view.send.feedback", value: "Send Feedback…", comment: "Menu item for 'Send Feedback' in the VPN status view that's shown in the navigation bar")

static let networkProtectionNavBarStatusViewVPNSettings = NSLocalizedString("network.protection.navbar.status.view.vpn.settings", value: "VPN Settings…", comment: "The status menu 'VPN Settings' menu item")

static let networkProtectionNavBarStatusViewFAQ = NSLocalizedString("network.protection.navbar.status.view.faq", value: "FAQs and Support…", comment: "The status menu 'FAQ' menu item")

// MARK: - VPN Status View submenu

static let vpnStatusViewVPNSettingsMenuItemTitle = NSLocalizedString(
"vpn.status-view.vpn-settings.menu-item.title",
value: "VPN Settings",
comment: "The VPN status view's 'VPN Settings' menu item for our main app. The number shown is how many Apps are excluded.")

static func vpnStatusViewExcludedAppsMenuItemTitle(_ count: Int) -> String {
let message = NSLocalizedString(
"vpn.status-view.excluded-apps.menu-item.title",
value: "Excluded Apps (%d)",
comment: "The VPN status view's 'Excluded Apps' menu item for our main app. The number shown is how many Apps are excluded.")

return String(format: message, count)
}

static func vpnStatusViewExcludedDomainsMenuItemTitle(_ count: Int) -> String {
let message = NSLocalizedString(
"vpn.status-view.excluded-domains.menu-item.title",
value: "Excluded Websites (%d)",
comment: "The VPN status view's 'Excluded Websites' menu item for our main app. The number shown is how many websites are excluded.")

return String(format: message, count)
}

static let vpnStatusViewSendFeedbackMenuItemTitle = NSLocalizedString(
"vpn.status-view.send-feedback.menu-item.title",
value: "Send Feedback",
comment: "The VPN status view's 'Send Feedback' menu item for our main app")

static let vpnStatusViewFAQMenuItemTitle = NSLocalizedString(
"vpn.status-view.faq.menu-item.title",
value: "FAQs and Support",
comment: "The VPN status view's 'FAQ' menu item for our main app")
}

extension UserText {
Expand Down
Loading
Loading