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/NetworkSettings.imageset/Contents.json b/DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/Contents.json new file mode 100644 index 0000000..09b5053 --- /dev/null +++ b/DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "NetworkSettings.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} 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 d2bf7a4..a404499 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,6 +27,14 @@ 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") @@ -37,44 +51,83 @@ extension HowToActivateView: View { .frame(maxHeight: 200) } #if targetEnvironment(macCatalyst) - 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) { - 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) { + HStack { + Text("5. Select \"\(Bundle.main.displayName!)\" and click") + Image(systemName: "ellipsis.circle") + Text("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(.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) } #else VStack(alignment: .leading) {