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
This commit is contained in:
Evgeny Poberezkin
2022-07-31 20:46:09 +01:00
committed by GitHub
parent 999923bcf9
commit ce91dcde7f
2 changed files with 11 additions and 2 deletions

View File

@@ -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))

View File

@@ -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)
}
}
)