From f6da63ec906299d1e8f759f730b8719350874713 Mon Sep 17 00:00:00 2001 From: problematicconsumer Date: Sat, 9 Sep 2023 12:07:39 +0330 Subject: [PATCH] Change sharedpreferences to unify with android --- .../com/hiddify/hiddify/MethodHandler.kt | 2 +- .../kotlin/com/hiddify/hiddify/Settings.kt | 18 ++++++++++++------ .../com/hiddify/hiddify/bg/BoxService.kt | 2 +- .../com/hiddify/hiddify/bg/VPNService.kt | 4 ++-- .../hiddify/hiddify/constant/SettingsKey.kt | 11 ++++++++--- 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/android/app/src/main/kotlin/com/hiddify/hiddify/MethodHandler.kt b/android/app/src/main/kotlin/com/hiddify/hiddify/MethodHandler.kt index 09790b4d..33793aaf 100644 --- a/android/app/src/main/kotlin/com/hiddify/hiddify/MethodHandler.kt +++ b/android/app/src/main/kotlin/com/hiddify/hiddify/MethodHandler.kt @@ -57,7 +57,7 @@ class MethodHandler : FlutterPlugin, MethodChannel.MethodCallHandler { Trigger.SetActiveConfigPath.method -> { val args = call.arguments as Map<*, *> - Settings.selectedConfigPath = args["path"] as String? ?: "" + Settings.activeConfigPath = args["path"] as String? ?: "" result.success(true) } diff --git a/android/app/src/main/kotlin/com/hiddify/hiddify/Settings.kt b/android/app/src/main/kotlin/com/hiddify/hiddify/Settings.kt index bbce7be0..0be52e5f 100644 --- a/android/app/src/main/kotlin/com/hiddify/hiddify/Settings.kt +++ b/android/app/src/main/kotlin/com/hiddify/hiddify/Settings.kt @@ -11,25 +11,31 @@ object Settings { private val preferences by lazy { val context = Application.application.applicationContext - context.getSharedPreferences("preferences", Context.MODE_PRIVATE) + context.getSharedPreferences("FlutterSharedPreferences", Context.MODE_PRIVATE) } - var disableMemoryLimit = preferences.getBoolean(SettingsKey.DISABLE_MEMORY_LIMIT, false) - var perAppProxyEnabled = preferences.getBoolean(SettingsKey.PER_APP_PROXY_ENABLED, false) var perAppProxyMode = preferences.getInt(SettingsKey.PER_APP_PROXY_MODE, PER_APP_PROXY_EXCLUDE) var perAppProxyList = preferences.getStringSet(SettingsKey.PER_APP_PROXY_LIST, emptySet())!! var perAppProxyUpdateOnChange = preferences.getInt(SettingsKey.PER_APP_PROXY_UPDATE_ON_CHANGE, PER_APP_PROXY_DISABLED) - var selectedConfigPath: String - get() = preferences.getString(SettingsKey.SELECTED_CONFIG_PATH, "") ?: "" - set(value) = preferences.edit().putString(SettingsKey.SELECTED_CONFIG_PATH, value).apply() + var activeConfigPath: String + get() = preferences.getString(SettingsKey.ACTIVE_CONFIG_PATH, "") ?: "" + set(value) = preferences.edit().putString(SettingsKey.ACTIVE_CONFIG_PATH, value).apply() var configOptions: String get() = preferences.getString(SettingsKey.CONFIG_OPTIONS, "") ?: "" set(value) = preferences.edit().putString(SettingsKey.CONFIG_OPTIONS, value).apply() + var disableMemoryLimit: Boolean + get() = preferences.getBoolean(SettingsKey.DISABLE_MEMORY_LIMIT, false) + set(value) = preferences.edit().putBoolean(SettingsKey.DISABLE_MEMORY_LIMIT, value).apply() + + var systemProxyEnabled: Boolean + get() = preferences.getBoolean(SettingsKey.SYSTEM_PROXY_ENABLED, true) + set(value) = preferences.edit().putBoolean(SettingsKey.SYSTEM_PROXY_ENABLED, value).apply() + var startedByUser: Boolean get() = preferences.getBoolean(SettingsKey.STARTED_BY_USER, false) set(value) = preferences.edit().putBoolean(SettingsKey.STARTED_BY_USER, value).apply() diff --git a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/BoxService.kt b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/BoxService.kt index 6896952c..7fb07108 100644 --- a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/BoxService.kt +++ b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/BoxService.kt @@ -136,7 +136,7 @@ class BoxService( try { Log.d(TAG, "starting service") - val selectedConfigPath = Settings.selectedConfigPath + val selectedConfigPath = Settings.activeConfigPath if (selectedConfigPath.isBlank()) { stopAndAlert(Alert.EmptyConfiguration) return diff --git a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt index 044d19c5..acf29f1a 100644 --- a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt +++ b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt @@ -33,7 +33,7 @@ class VPNService : VpnService(), PlatformInterfaceWrapper { } var systemProxyAvailable = false - var systemProxyEnabled = true + var systemProxyEnabled = false override fun openTun(options: TunOptions): Int { if (prepare(this) != null) error("android: missing vpn permission") @@ -128,7 +128,7 @@ class VPNService : VpnService(), PlatformInterfaceWrapper { if (options.isHTTPProxyEnabled) { systemProxyAvailable = true -// systemProxyEnabled = Settings.systemProxyEnabled + systemProxyEnabled = Settings.systemProxyEnabled if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { if (systemProxyEnabled) builder.setHttpProxy( ProxyInfo.buildDirectProxy( diff --git a/android/app/src/main/kotlin/com/hiddify/hiddify/constant/SettingsKey.kt b/android/app/src/main/kotlin/com/hiddify/hiddify/constant/SettingsKey.kt index 7b8eedb1..8eb1491b 100644 --- a/android/app/src/main/kotlin/com/hiddify/hiddify/constant/SettingsKey.kt +++ b/android/app/src/main/kotlin/com/hiddify/hiddify/constant/SettingsKey.kt @@ -1,17 +1,22 @@ package com.hiddify.hiddify.constant object SettingsKey { - const val SELECTED_CONFIG_PATH = "selected_config_path" + private const val KEY_PREFIX = "flutter." + + const val ACTIVE_CONFIG_PATH = "${KEY_PREFIX}active_config_path" + const val CONFIG_OPTIONS = "config_options_json" - const val DISABLE_MEMORY_LIMIT = "disable_memory_limit" const val PER_APP_PROXY_ENABLED = "per_app_proxy_enabled" const val PER_APP_PROXY_MODE = "per_app_proxy_mode" const val PER_APP_PROXY_LIST = "per_app_proxy_list" const val PER_APP_PROXY_UPDATE_ON_CHANGE = "per_app_proxy_update_on_change" + const val DISABLE_MEMORY_LIMIT = "${KEY_PREFIX}disable_memory_limit" + const val SYSTEM_PROXY_ENABLED = "${KEY_PREFIX}system_proxy_enabled" + // cache - const val STARTED_BY_USER = "started_by_user" + const val STARTED_BY_USER = "${KEY_PREFIX}started_by_user" } \ No newline at end of file