From 45d2b9b644985963886bf6cb1ba6437c9a4fe841 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Tue, 19 Sep 2023 17:48:13 +0800 Subject: [PATCH] Add back include all networks option --- .../Views/Dashboard/ExtensionStatusView.swift | 2 +- ApplicationLibrary/Views/Setting/SettingView.swift | 8 ++++++++ Library/Database/SharedPreferences.swift | 1 + Library/Network/ExtensionProfile.swift | 3 +++ sing-box.xcodeproj/project.pbxproj | 12 ++++++------ 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/ApplicationLibrary/Views/Dashboard/ExtensionStatusView.swift b/ApplicationLibrary/Views/Dashboard/ExtensionStatusView.swift index 8e3f37c..26a07ed 100644 --- a/ApplicationLibrary/Views/Dashboard/ExtensionStatusView.swift +++ b/ApplicationLibrary/Views/Dashboard/ExtensionStatusView.swift @@ -20,7 +20,7 @@ public struct ExtensionStatusView: View { body0 } } - + public var body0: some View { viewBuilder { VStack { diff --git a/ApplicationLibrary/Views/Setting/SettingView.swift b/ApplicationLibrary/Views/Setting/SettingView.swift index ce4445a..e06c2c6 100644 --- a/ApplicationLibrary/Views/Setting/SettingView.swift +++ b/ApplicationLibrary/Views/Setting/SettingView.swift @@ -22,6 +22,7 @@ public struct SettingView: View { @State private var alwaysOn = false @State private var disableMemoryLimit = false + @State private var includeAllNetworks = false @State private var version = "" @State private var dataSize = "" @State private var taiwanFlagAvailable = false @@ -80,6 +81,12 @@ public struct SettingView: View { SharedPreferences.disableMemoryLimit = newValue } } + Toggle("Include All Networks", isOn: $includeAllNetworks) + .onChangeCompat(of: includeAllNetworks) { newValue in + Task.detached { + SharedPreferences.includeAllNetworks = newValue + } + } #if os(macOS) if Variant.useSystemExtension { HStack { @@ -165,6 +172,7 @@ public struct SettingView: View { #endif alwaysOn = SharedPreferences.alwaysOn disableMemoryLimit = SharedPreferences.disableMemoryLimit + includeAllNetworks = SharedPreferences.includeAllNetworks version = LibboxVersion() if ApplicationLibrary.inPreview { dataSize = LibboxFormatBytes(1024 * 1024 * 10) diff --git a/Library/Database/SharedPreferences.swift b/Library/Database/SharedPreferences.swift index 5990dba..91b7f13 100644 --- a/Library/Database/SharedPreferences.swift +++ b/Library/Database/SharedPreferences.swift @@ -9,6 +9,7 @@ public enum SharedPreferences { private static let disableMemoryLimitByDefault = false #endif @Preference("disable_memory_limit", defaultValue: disableMemoryLimitByDefault) public static var disableMemoryLimit + @Preference("include_all_networks", defaultValue: false) public static var includeAllNetworks @Preference("max_log_lines", defaultValue: 300) public static var maxLogLines @Preference("always_on", defaultValue: false) public static var alwaysOn diff --git a/Library/Network/ExtensionProfile.swift b/Library/Network/ExtensionProfile.swift index 7fe3503..f149662 100644 --- a/Library/Network/ExtensionProfile.swift +++ b/Library/Network/ExtensionProfile.swift @@ -58,6 +58,9 @@ public class ExtensionProfile: ObservableObject { manager.isOnDemandEnabled = true setOnDemandRules() } + if let protocolConfiguration = manager.protocolConfiguration { + protocolConfiguration.includeAllNetworks = SharedPreferences.includeAllNetworks + } try await manager.saveToPreferences() #if os(macOS) if Variant.useSystemExtension { diff --git a/sing-box.xcodeproj/project.pbxproj b/sing-box.xcodeproj/project.pbxproj index 47547cc..75e4594 100644 --- a/sing-box.xcodeproj/project.pbxproj +++ b/sing-box.xcodeproj/project.pbxproj @@ -2293,7 +2293,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 52; + CURRENT_PROJECT_VERSION = 54; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = Z56Z6NYZN2; ENABLE_HARDENED_RUNTIME = YES; @@ -2331,7 +2331,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 52; + CURRENT_PROJECT_VERSION = 54; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = Z56Z6NYZN2; ENABLE_HARDENED_RUNTIME = YES; @@ -2489,7 +2489,7 @@ "@executable_path/../../../../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.5.0-beta.6; + MARKETING_VERSION = 1.5.0-beta.11; PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa.system; PRODUCT_NAME = "$(inherited)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -2525,7 +2525,7 @@ "@executable_path/../../../../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.5.0-beta.6; + MARKETING_VERSION = 1.5.0-beta.11; PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa.system; PRODUCT_NAME = "$(inherited)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -2565,7 +2565,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.5.0-beta.6; + MARKETING_VERSION = 1.5.0-beta.11; PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa.independent; PRODUCT_NAME = SFM; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -2604,7 +2604,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.5.0-beta.6; + MARKETING_VERSION = 1.5.0-beta.11; PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa.independent; PRODUCT_NAME = SFM; PROVISIONING_PROFILE_SPECIFIER = "";