From ce91dcde7f004347b9b400436334fc66811b23e1 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Sun, 31 Jul 2022 20:46:09 +0100 Subject: [PATCH] android: save SOCKS setting to preference and enable on start (#848) * android: save SOCKS setting to preference and enable on start * use socks proxy preference --- .../src/main/java/chat/simplex/app/model/SimpleXAPI.kt | 5 +++++ .../simplex/app/views/usersettings/NetworkSettings.kt | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt index 519451a65b..d1e2af8920 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt @@ -84,6 +84,7 @@ class AppPreferences(val context: Context) { val chatArchiveName = mkStrPreference(SHARED_PREFS_CHAT_ARCHIVE_NAME, null) val chatArchiveTime = mkDatePreference(SHARED_PREFS_CHAT_ARCHIVE_TIME, null) val chatLastStart = mkDatePreference(SHARED_PREFS_CHAT_LAST_START, null) + val useSocksProxy = mkBoolPreference(SHARED_PREFS_USE_SOCKS_PROXY, false) private fun mkIntPreference(prefName: String, default: Int) = Preference( @@ -128,6 +129,7 @@ class AppPreferences(val context: Context) { private const val SHARED_PREFS_CHAT_ARCHIVE_NAME = "ChatArchiveName" private const val SHARED_PREFS_CHAT_ARCHIVE_TIME = "ChatArchiveTime" private const val SHARED_PREFS_CHAT_LAST_START = "ChatLastStart" + private const val SHARED_PREFS_USE_SOCKS_PROXY = "UseSocksProxy" } } @@ -146,6 +148,9 @@ open class ChatController(private val ctrl: ChatCtrl, val ntfManager: NtfManager Log.d(TAG, "user: $user") try { if (chatModel.chatRunning.value == true) return + if (chatModel.controller.appPrefs.useSocksProxy.get()) { + setNetworkConfig(NetCfg(socksProxy = ":9050", tcpTimeout = 10_000_000)) + } val justStarted = apiStartChat() if (justStarted) { apiSetFilesFolder(getAppFilesDirectory(appContext)) diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkSettings.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkSettings.kt index 14c2ea34c5..72c2d2c463 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkSettings.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkSettings.kt @@ -19,6 +19,10 @@ import chat.simplex.app.views.helpers.* @Composable fun NetworkSettingsView(chatModel: ChatModel, netCfg: NetCfg) { val useSocksProxy = remember { mutableStateOf(netCfg.socksProxy != null) } + fun setSocksProxy(value: Boolean) { + chatModel.controller.appPrefs.useSocksProxy.set(value) + useSocksProxy.value = value + } NetworkSettingsLayout( useSocksProxy, @@ -31,7 +35,7 @@ fun NetworkSettingsView(chatModel: ChatModel, netCfg: NetCfg) { onConfirm = { withApi { chatModel.controller.setNetworkConfig(NetCfg(socksProxy = ":9050", tcpTimeout = 10_000_000)) - useSocksProxy.value = true + setSocksProxy(true) } } ) @@ -43,7 +47,7 @@ fun NetworkSettingsView(chatModel: ChatModel, netCfg: NetCfg) { onConfirm = { withApi { chatModel.controller.setNetworkConfig(NetCfg(tcpTimeout = 5_000_000)) - useSocksProxy.value = false + setSocksProxy(false) } } )