diff --git a/DNSecure/Assets.xcassets/HowToActivate/AllDone.imageset/AllDone.png b/DNSecure/Assets.xcassets/HowToActivate/AllDone.imageset/AllDone.png new file mode 100644 index 0000000..251eb48 Binary files /dev/null and b/DNSecure/Assets.xcassets/HowToActivate/AllDone.imageset/AllDone.png differ diff --git a/DNSecure/Assets.xcassets/HowToActivate/AllDone.imageset/Contents.json b/DNSecure/Assets.xcassets/HowToActivate/AllDone.imageset/Contents.json new file mode 100644 index 0000000..763b014 --- /dev/null +++ b/DNSecure/Assets.xcassets/HowToActivate/AllDone.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "AllDone.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DNSecure/Assets.xcassets/HowToActivate/FiltersSettings.imageset/Contents.json b/DNSecure/Assets.xcassets/HowToActivate/FiltersSettings.imageset/Contents.json new file mode 100644 index 0000000..32b8c9e --- /dev/null +++ b/DNSecure/Assets.xcassets/HowToActivate/FiltersSettings.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "FiltersSettings.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DNSecure/Assets.xcassets/HowToActivate/FiltersSettings.imageset/FiltersSettings.png b/DNSecure/Assets.xcassets/HowToActivate/FiltersSettings.imageset/FiltersSettings.png new file mode 100644 index 0000000..c196291 Binary files /dev/null and b/DNSecure/Assets.xcassets/HowToActivate/FiltersSettings.imageset/FiltersSettings.png differ diff --git a/DNSecure/Assets.xcassets/HowToActivate/MakeItEnabled.imageset/Contents.json b/DNSecure/Assets.xcassets/HowToActivate/MakeItEnabled.imageset/Contents.json new file mode 100644 index 0000000..5ab25e7 --- /dev/null +++ b/DNSecure/Assets.xcassets/HowToActivate/MakeItEnabled.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "MakeItEnabled.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DNSecure/Assets.xcassets/HowToActivate/MakeItEnabled.imageset/MakeItEnabled.png b/DNSecure/Assets.xcassets/HowToActivate/MakeItEnabled.imageset/MakeItEnabled.png new file mode 100644 index 0000000..e51b1f1 Binary files /dev/null and b/DNSecure/Assets.xcassets/HowToActivate/MakeItEnabled.imageset/MakeItEnabled.png differ diff --git a/DNSecure/Assets.xcassets/HowToActivate/MakeServiceActive.imageset/Contents.json b/DNSecure/Assets.xcassets/HowToActivate/MontereyMakeServiceActive.imageset/Contents.json similarity index 100% rename from DNSecure/Assets.xcassets/HowToActivate/MakeServiceActive.imageset/Contents.json rename to DNSecure/Assets.xcassets/HowToActivate/MontereyMakeServiceActive.imageset/Contents.json diff --git a/DNSecure/Assets.xcassets/HowToActivate/MakeServiceActive.imageset/IMG_0244.jpg b/DNSecure/Assets.xcassets/HowToActivate/MontereyMakeServiceActive.imageset/IMG_0244.jpg similarity index 100% rename from DNSecure/Assets.xcassets/HowToActivate/MakeServiceActive.imageset/IMG_0244.jpg rename to DNSecure/Assets.xcassets/HowToActivate/MontereyMakeServiceActive.imageset/IMG_0244.jpg diff --git a/DNSecure/Assets.xcassets/HowToActivate/MontereyNetworkSettings.imageset/Contents.json b/DNSecure/Assets.xcassets/HowToActivate/MontereyNetworkSettings.imageset/Contents.json new file mode 100644 index 0000000..c32e378 --- /dev/null +++ b/DNSecure/Assets.xcassets/HowToActivate/MontereyNetworkSettings.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Screen Shot 2021-02-13 at 11.25.16 AM.jpg", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/Screen Shot 2021-02-13 at 11.25.16 AM.jpg b/DNSecure/Assets.xcassets/HowToActivate/MontereyNetworkSettings.imageset/Screen Shot 2021-02-13 at 11.25.16 AM.jpg similarity index 100% rename from DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/Screen Shot 2021-02-13 at 11.25.16 AM.jpg rename to DNSecure/Assets.xcassets/HowToActivate/MontereyNetworkSettings.imageset/Screen Shot 2021-02-13 at 11.25.16 AM.jpg diff --git a/DNSecure/Assets.xcassets/HowToActivate/NetworkSettingsApply.imageset/Contents.json b/DNSecure/Assets.xcassets/HowToActivate/MontereyNetworkSettingsApply.imageset/Contents.json similarity index 100% rename from DNSecure/Assets.xcassets/HowToActivate/NetworkSettingsApply.imageset/Contents.json rename to DNSecure/Assets.xcassets/HowToActivate/MontereyNetworkSettingsApply.imageset/Contents.json diff --git a/DNSecure/Assets.xcassets/HowToActivate/NetworkSettingsApply.imageset/Image 2-13-21 at 12.10 PM.jpg b/DNSecure/Assets.xcassets/HowToActivate/MontereyNetworkSettingsApply.imageset/Image 2-13-21 at 12.10 PM.jpg similarity index 100% rename from DNSecure/Assets.xcassets/HowToActivate/NetworkSettingsApply.imageset/Image 2-13-21 at 12.10 PM.jpg rename to DNSecure/Assets.xcassets/HowToActivate/MontereyNetworkSettingsApply.imageset/Image 2-13-21 at 12.10 PM.jpg diff --git a/DNSecure/Assets.xcassets/HowToActivate/SystemPreferences.imageset/Contents.json b/DNSecure/Assets.xcassets/HowToActivate/MontereySystemPreferences.imageset/Contents.json similarity index 100% rename from DNSecure/Assets.xcassets/HowToActivate/SystemPreferences.imageset/Contents.json rename to DNSecure/Assets.xcassets/HowToActivate/MontereySystemPreferences.imageset/Contents.json diff --git a/DNSecure/Assets.xcassets/HowToActivate/SystemPreferences.imageset/Screen Shot 2021-02-13 at 11.36.47 AM.jpg b/DNSecure/Assets.xcassets/HowToActivate/MontereySystemPreferences.imageset/Screen Shot 2021-02-13 at 11.36.47 AM.jpg similarity index 100% rename from DNSecure/Assets.xcassets/HowToActivate/SystemPreferences.imageset/Screen Shot 2021-02-13 at 11.36.47 AM.jpg rename to DNSecure/Assets.xcassets/HowToActivate/MontereySystemPreferences.imageset/Screen Shot 2021-02-13 at 11.36.47 AM.jpg diff --git a/DNSecure/Assets.xcassets/HowToActivate/SystemPreferencesIcon.imageset/Contents.json b/DNSecure/Assets.xcassets/HowToActivate/MontereySystemPreferencesIcon.imageset/Contents.json similarity index 100% rename from DNSecure/Assets.xcassets/HowToActivate/SystemPreferencesIcon.imageset/Contents.json rename to DNSecure/Assets.xcassets/HowToActivate/MontereySystemPreferencesIcon.imageset/Contents.json diff --git a/DNSecure/Assets.xcassets/HowToActivate/SystemPreferencesIcon.imageset/IMG_0250.jpg b/DNSecure/Assets.xcassets/HowToActivate/MontereySystemPreferencesIcon.imageset/IMG_0250.jpg similarity index 100% rename from DNSecure/Assets.xcassets/HowToActivate/SystemPreferencesIcon.imageset/IMG_0250.jpg rename to DNSecure/Assets.xcassets/HowToActivate/MontereySystemPreferencesIcon.imageset/IMG_0250.jpg diff --git a/DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/Contents.json b/DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/Contents.json index c32e378..09b5053 100644 --- a/DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/Contents.json +++ b/DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/Contents.json @@ -5,7 +5,7 @@ "scale" : "1x" }, { - "filename" : "Screen Shot 2021-02-13 at 11.25.16 AM.jpg", + "filename" : "NetworkSettings.png", "idiom" : "universal", "scale" : "2x" }, diff --git a/DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/NetworkSettings.png b/DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/NetworkSettings.png new file mode 100644 index 0000000..f6b8151 Binary files /dev/null and b/DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/NetworkSettings.png differ diff --git a/DNSecure/Assets.xcassets/HowToActivate/SystemSettingsIcon.imageset/Contents.json b/DNSecure/Assets.xcassets/HowToActivate/SystemSettingsIcon.imageset/Contents.json new file mode 100644 index 0000000..6880f6a --- /dev/null +++ b/DNSecure/Assets.xcassets/HowToActivate/SystemSettingsIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "SystemSettingsIcon.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DNSecure/Assets.xcassets/HowToActivate/SystemSettingsIcon.imageset/SystemSettingsIcon.png b/DNSecure/Assets.xcassets/HowToActivate/SystemSettingsIcon.imageset/SystemSettingsIcon.png new file mode 100644 index 0000000..cea6e9c Binary files /dev/null and b/DNSecure/Assets.xcassets/HowToActivate/SystemSettingsIcon.imageset/SystemSettingsIcon.png differ diff --git a/DNSecure/Views/HowToActivateView.swift b/DNSecure/Views/HowToActivateView.swift index d266006..3ed13c3 100644 --- a/DNSecure/Views/HowToActivateView.swift +++ b/DNSecure/Views/HowToActivateView.swift @@ -7,8 +7,14 @@ import SwiftUI +private enum MacOSVersion { + case venturaOrLater + case monterey +} + struct HowToActivateView { @Environment(\.dismiss) private var dismiss + @State private var macOSVersion: MacOSVersion = .venturaOrLater let isSheet: Bool } @@ -21,65 +27,110 @@ extension HowToActivateView: View { Spacer() } ScrollView { + #if targetEnvironment(macCatalyst) + Picker("", selection: self.$macOSVersion) { + Text("macOS 13 or later").tag(MacOSVersion.venturaOrLater) + Text("macOS 12").tag(MacOSVersion.monterey) + } + .pickerStyle(.segmented) + .fixedSize() + #endif VStack(alignment: .leading) { VStack(alignment: .leading) { Text("1. Select a DNS server you like, or add another one") - Image("SelectServer") + Image(.selectServer) .resizable() .scaledToFit() .frame(maxHeight: 200) } VStack(alignment: .leading) { Text("2. Enable \"Use This Server\"") - Image("UseThisServer") + Image(.useThisServer) .resizable() .scaledToFit() .frame(maxHeight: 200) } #if targetEnvironment(macCatalyst) - VStack(alignment: .leading) { - Text("3. Open the System Preferences") - Image("SystemPreferencesIcon") - .resizable() - .scaledToFit() - .frame(maxHeight: 200) - } - VStack(alignment: .leading) { - Text("4. Go to Network settings") - Image("SystemPreferences") - .resizable() - .scaledToFit() - .frame(maxHeight: 400) - } - VStack(alignment: .leading) { - HStack { - Text("5. Select \"\(Bundle.main.displayName!)\" and click") - Image(systemName: "ellipsis.circle") - Text("button") + switch self.macOSVersion { + case .venturaOrLater: + VStack(alignment: .leading) { + Text("3. Open the System Settings") + Image(.systemSettingsIcon) + .resizable() + .scaledToFit() + .frame(maxHeight: 200) + } + VStack(alignment: .leading) { + Text("4. Go to Network settings and click \"Filters\"") + Image(.networkSettings) + .resizable() + .scaledToFit() + .frame(maxHeight: 400) + } + VStack(alignment: .leading) { + Text("5. Click on the status of \"\(Bundle.main.displayName!)\"") + Image(.filtersSettings) + .resizable() + .scaledToFit() + .frame(maxHeight: 400) + } + VStack(alignment: .leading) { + Text("6. Click \"Enabled\"") + Image(.makeItEnabled) + .resizable() + .scaledToFit() + .frame(maxHeight: 200) + } + VStack(alignment: .leading) { + Text("7. All done 🎉") + Image(.allDone) + .resizable() + .scaledToFit() + .frame(maxHeight: 400) + } + case .monterey: + VStack(alignment: .leading) { + Text("3. Open the System Preferences") + Image(.montereySystemPreferencesIcon) + .resizable() + .scaledToFit() + .frame(maxHeight: 200) + } + VStack(alignment: .leading) { + Text("4. Go to Network settings") + Image(.montereySystemPreferences) + .resizable() + .scaledToFit() + .frame(maxHeight: 400) + } + VStack(alignment: .leading) { + Text( + "5. Select \"\(Bundle.main.displayName!)\" and click \(Image(systemName: "ellipsis.circle")) button" + ) + Image(.montereyNetworkSettings) + .resizable() + .scaledToFit() + .frame(maxHeight: 400) + } + VStack(alignment: .leading) { + Text("6. Click \"Make Service Active\"") + Image(.montereyMakeServiceActive) + .resizable() + .scaledToFit() + .frame(maxHeight: 200) + } + VStack(alignment: .leading) { + Text("7. Click \"Apply\" button") + Image(.montereyNetworkSettingsApply) + .resizable() + .scaledToFit() + .frame(maxHeight: 400) } - Image("NetworkSettings") - .resizable() - .scaledToFit() - .frame(maxHeight: 400) - } - VStack(alignment: .leading) { - Text("6. Click \"Make Service Active\"") - Image("MakeServiceActive") - .resizable() - .scaledToFit() - .frame(maxHeight: 200) - } - VStack(alignment: .leading) { - Text("7. Click \"Apply\" button") - Image("NetworkSettingsApply") - .resizable() - .scaledToFit() - .frame(maxHeight: 400) } #else VStack(alignment: .leading) { Text("3. Open the Settings") - Image("Settings") + Image(.settings) .resizable() .scaledToFit() .frame(maxHeight: 200) @@ -88,11 +139,11 @@ extension HowToActivateView: View { Text("4. Go to \"General\" > \"VPN & Network\" > \"DNS\"") ScrollView(.horizontal) { HStack { - Image("GeneralVPNNetwork") + Image(.generalVPNNetwork) .resizable() .scaledToFit() .frame(maxHeight: 200) - Image("DNS") + Image(.dns) .resizable() .scaledToFit() .frame(maxHeight: 200) @@ -101,7 +152,7 @@ extension HowToActivateView: View { } VStack(alignment: .leading) { Text("5. \"Automatic\" is selected by default, so select \"\(Bundle.main.displayName!)\"") - Image("DNSProvider") + Image(.dnsProvider) .resizable() .scaledToFit() .frame(maxHeight: 200)