desktop: don't show device specific network and database settings when connected to remote host (#3449)
This commit is contained in:
parent
7f9a490edb
commit
9fb4b3cf40
@ -40,6 +40,7 @@ fun DatabaseView(
|
|||||||
m: ChatModel,
|
m: ChatModel,
|
||||||
showSettingsModal: (@Composable (ChatModel) -> Unit) -> (() -> Unit)
|
showSettingsModal: (@Composable (ChatModel) -> Unit) -> (() -> Unit)
|
||||||
) {
|
) {
|
||||||
|
val currentRemoteHost by remember { chatModel.currentRemoteHost }
|
||||||
val progressIndicator = remember { mutableStateOf(false) }
|
val progressIndicator = remember { mutableStateOf(false) }
|
||||||
val prefs = m.controller.appPrefs
|
val prefs = m.controller.appPrefs
|
||||||
val useKeychain = remember { mutableStateOf(prefs.storeDBPassphrase.get()) }
|
val useKeychain = remember { mutableStateOf(prefs.storeDBPassphrase.get()) }
|
||||||
@ -68,6 +69,7 @@ fun DatabaseView(
|
|||||||
val user = m.currentUser.value
|
val user = m.currentUser.value
|
||||||
val rhId = user?.remoteHostId
|
val rhId = user?.remoteHostId
|
||||||
DatabaseLayout(
|
DatabaseLayout(
|
||||||
|
currentRemoteHost = currentRemoteHost,
|
||||||
progressIndicator.value,
|
progressIndicator.value,
|
||||||
remember { m.chatRunning }.value != false,
|
remember { m.chatRunning }.value != false,
|
||||||
m.chatDbChanged.value,
|
m.chatDbChanged.value,
|
||||||
@ -119,6 +121,7 @@ fun DatabaseView(
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun DatabaseLayout(
|
fun DatabaseLayout(
|
||||||
|
currentRemoteHost: RemoteHostInfo?,
|
||||||
progressIndicator: Boolean,
|
progressIndicator: Boolean,
|
||||||
runChat: Boolean,
|
runChat: Boolean,
|
||||||
chatDbChanged: Boolean,
|
chatDbChanged: Boolean,
|
||||||
@ -165,6 +168,8 @@ fun DatabaseLayout(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (currentRemoteHost == null) {
|
||||||
SectionDividerSpaced(maxTopPadding = true)
|
SectionDividerSpaced(maxTopPadding = true)
|
||||||
|
|
||||||
SectionView(stringResource(MR.strings.run_chat_section)) {
|
SectionView(stringResource(MR.strings.run_chat_section)) {
|
||||||
@ -262,6 +267,8 @@ fun DatabaseLayout(
|
|||||||
String.format(stringResource(MR.strings.total_files_count_and_size), count, formatBytes(size))
|
String.format(stringResource(MR.strings.total_files_count_and_size), count, formatBytes(size))
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
SectionBottomSpacer()
|
SectionBottomSpacer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -666,6 +673,7 @@ private fun operationEnded(m: ChatModel, progressIndicator: MutableState<Boolean
|
|||||||
fun PreviewDatabaseLayout() {
|
fun PreviewDatabaseLayout() {
|
||||||
SimpleXTheme {
|
SimpleXTheme {
|
||||||
DatabaseLayout(
|
DatabaseLayout(
|
||||||
|
currentRemoteHost = null,
|
||||||
progressIndicator = false,
|
progressIndicator = false,
|
||||||
runChat = true,
|
runChat = true,
|
||||||
chatDbChanged = false,
|
chatDbChanged = false,
|
||||||
|
@ -28,7 +28,6 @@ import chat.simplex.common.model.*
|
|||||||
import chat.simplex.common.ui.theme.*
|
import chat.simplex.common.ui.theme.*
|
||||||
import chat.simplex.common.views.chat.item.ClickableText
|
import chat.simplex.common.views.chat.item.ClickableText
|
||||||
import chat.simplex.common.views.helpers.*
|
import chat.simplex.common.views.helpers.*
|
||||||
import chat.simplex.common.model.*
|
|
||||||
import chat.simplex.common.views.helpers.annotatedStringResource
|
import chat.simplex.common.views.helpers.annotatedStringResource
|
||||||
import chat.simplex.res.MR
|
import chat.simplex.res.MR
|
||||||
|
|
||||||
@ -39,6 +38,7 @@ fun NetworkAndServersView(
|
|||||||
showSettingsModal: (@Composable (ChatModel) -> Unit) -> (() -> Unit),
|
showSettingsModal: (@Composable (ChatModel) -> Unit) -> (() -> Unit),
|
||||||
showCustomModal: (@Composable (ChatModel, () -> Unit) -> Unit) -> (() -> Unit),
|
showCustomModal: (@Composable (ChatModel, () -> Unit) -> Unit) -> (() -> Unit),
|
||||||
) {
|
) {
|
||||||
|
val currentRemoteHost by remember { chatModel.currentRemoteHost }
|
||||||
// It's not a state, just a one-time value. Shouldn't be used in any state-related situations
|
// It's not a state, just a one-time value. Shouldn't be used in any state-related situations
|
||||||
val netCfg = remember { chatModel.controller.getNetCfg() }
|
val netCfg = remember { chatModel.controller.getNetCfg() }
|
||||||
val networkUseSocksProxy: MutableState<Boolean> = remember { mutableStateOf(netCfg.useSocksProxy) }
|
val networkUseSocksProxy: MutableState<Boolean> = remember { mutableStateOf(netCfg.useSocksProxy) }
|
||||||
@ -52,6 +52,7 @@ fun NetworkAndServersView(
|
|||||||
|
|
||||||
val proxyPort = remember { derivedStateOf { chatModel.controller.appPrefs.networkProxyHostPort.state.value?.split(":")?.lastOrNull()?.toIntOrNull() ?: 9050 } }
|
val proxyPort = remember { derivedStateOf { chatModel.controller.appPrefs.networkProxyHostPort.state.value?.split(":")?.lastOrNull()?.toIntOrNull() ?: 9050 } }
|
||||||
NetworkAndServersLayout(
|
NetworkAndServersLayout(
|
||||||
|
currentRemoteHost = currentRemoteHost,
|
||||||
developerTools = developerTools,
|
developerTools = developerTools,
|
||||||
networkUseSocksProxy = networkUseSocksProxy,
|
networkUseSocksProxy = networkUseSocksProxy,
|
||||||
onionHosts = onionHosts,
|
onionHosts = onionHosts,
|
||||||
@ -150,6 +151,7 @@ fun NetworkAndServersView(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable fun NetworkAndServersLayout(
|
@Composable fun NetworkAndServersLayout(
|
||||||
|
currentRemoteHost: RemoteHostInfo?,
|
||||||
developerTools: Boolean,
|
developerTools: Boolean,
|
||||||
networkUseSocksProxy: MutableState<Boolean>,
|
networkUseSocksProxy: MutableState<Boolean>,
|
||||||
onionHosts: MutableState<OnionHosts>,
|
onionHosts: MutableState<OnionHosts>,
|
||||||
@ -172,6 +174,7 @@ fun NetworkAndServersView(
|
|||||||
|
|
||||||
SettingsActionItem(painterResource(MR.images.ic_dns), stringResource(MR.strings.xftp_servers), showCustomModal { m, close -> ProtocolServersView(m, m.remoteHostId, ServerProtocol.XFTP, close) })
|
SettingsActionItem(painterResource(MR.images.ic_dns), stringResource(MR.strings.xftp_servers), showCustomModal { m, close -> ProtocolServersView(m, m.remoteHostId, ServerProtocol.XFTP, close) })
|
||||||
|
|
||||||
|
if (currentRemoteHost == null) {
|
||||||
UseSocksProxySwitch(networkUseSocksProxy, proxyPort, toggleSocksProxy, showSettingsModal)
|
UseSocksProxySwitch(networkUseSocksProxy, proxyPort, toggleSocksProxy, showSettingsModal)
|
||||||
UseOnionHosts(onionHosts, networkUseSocksProxy, showSettingsModal, useOnion)
|
UseOnionHosts(onionHosts, networkUseSocksProxy, showSettingsModal, useOnion)
|
||||||
if (developerTools) {
|
if (developerTools) {
|
||||||
@ -179,7 +182,8 @@ fun NetworkAndServersView(
|
|||||||
}
|
}
|
||||||
SettingsActionItem(painterResource(MR.images.ic_cable), stringResource(MR.strings.network_settings), showSettingsModal { AdvancedNetworkSettingsView(it) })
|
SettingsActionItem(painterResource(MR.images.ic_cable), stringResource(MR.strings.network_settings), showSettingsModal { AdvancedNetworkSettingsView(it) })
|
||||||
}
|
}
|
||||||
if (networkUseSocksProxy.value) {
|
}
|
||||||
|
if (currentRemoteHost == null && networkUseSocksProxy.value) {
|
||||||
SectionCustomFooter {
|
SectionCustomFooter {
|
||||||
Column {
|
Column {
|
||||||
Text(annotatedStringResource(MR.strings.disable_onion_hosts_when_not_supported))
|
Text(annotatedStringResource(MR.strings.disable_onion_hosts_when_not_supported))
|
||||||
@ -448,6 +452,7 @@ private fun showUpdateNetworkSettingsDialog(
|
|||||||
fun PreviewNetworkAndServersLayout() {
|
fun PreviewNetworkAndServersLayout() {
|
||||||
SimpleXTheme {
|
SimpleXTheme {
|
||||||
NetworkAndServersLayout(
|
NetworkAndServersLayout(
|
||||||
|
currentRemoteHost = null,
|
||||||
developerTools = true,
|
developerTools = true,
|
||||||
networkUseSocksProxy = remember { mutableStateOf(true) },
|
networkUseSocksProxy = remember { mutableStateOf(true) },
|
||||||
proxyPort = remember { mutableStateOf(9050) },
|
proxyPort = remember { mutableStateOf(9050) },
|
||||||
|
Loading…
Reference in New Issue
Block a user