From 67961180c917c4cf4bd7038d4782844aafdd6824 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Wed, 29 Mar 2023 09:34:55 +0100 Subject: [PATCH] android: developer tools page (#2094) --- .../app/views/usersettings/DeveloperView.kt | 34 ++++++++++++++----- .../app/views/usersettings/SettingsView.kt | 6 ++-- .../app/src/main/res/values/strings.xml | 6 ++++ 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/DeveloperView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/DeveloperView.kt index e0fd6d276f..f20cde508a 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/DeveloperView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/DeveloperView.kt @@ -1,6 +1,8 @@ package chat.simplex.app.views.usersettings import SectionDivider +import SectionSpacer +import SectionTextFooter import SectionView import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth @@ -14,7 +16,7 @@ import androidx.compose.ui.res.stringResource import chat.simplex.app.R import chat.simplex.app.model.ChatModel import chat.simplex.app.views.TerminalView -import chat.simplex.app.views.helpers.AppBarTitle +import chat.simplex.app.views.helpers.* @Composable fun DeveloperView( @@ -23,20 +25,34 @@ fun DeveloperView( withAuth: (block: () -> Unit) -> Unit ) { Column(Modifier.fillMaxWidth()) { - val developerTools = m.controller.appPrefs.developerTools - val confirmDBUpgrades = m.controller.appPrefs.confirmDBUpgrades val uriHandler = LocalUriHandler.current AppBarTitle(stringResource(R.string.settings_developer_tools)) + val developerTools = m.controller.appPrefs.developerTools + val devTools = remember { mutableStateOf(developerTools.get()) } SectionView() { + InstallTerminalAppItem(uriHandler) + SectionDivider() ChatConsoleItem { withAuth(showCustomModal { it, close -> TerminalView(it, close) }) } SectionDivider() - val devTools = remember { mutableStateOf(developerTools.get()) } - SettingsPreferenceItem(Icons.Outlined.Construction, stringResource(R.string.settings_developer_tools), developerTools, devTools) + SettingsPreferenceItem(Icons.Outlined.DriveFolderUpload, stringResource(R.string.confirm_database_upgrades), m.controller.appPrefs.confirmDBUpgrades) SectionDivider() - var confirm = remember { mutableStateOf(confirmDBUpgrades.get()) } - SettingsPreferenceItem(Icons.Outlined.DriveFolderUpload, stringResource(R.string.confirm_database_upgrades), confirmDBUpgrades, confirm) - SectionDivider() - InstallTerminalAppItem(uriHandler) + SettingsPreferenceItem(Icons.Outlined.Code, stringResource(R.string.show_developer_options), developerTools, devTools) + } + SectionTextFooter( + generalGetString(if (devTools.value) R.string.show_dev_options else R.string.hide_dev_options) + + generalGetString(R.string.developer_options) + ) + SectionSpacer() + + val xftpSendEnabled = m.controller.appPrefs.xftpSendEnabled + val xftpEnabled = remember { mutableStateOf(xftpSendEnabled.get()) } + SectionView(generalGetString(R.string.settings_section_title_experimenta)) { + SettingsPreferenceItem(Icons.Outlined.UploadFile, stringResource(R.string.settings_send_files_via_xftp), xftpSendEnabled, xftpEnabled) { + withApi { m.controller.apiSetXFTPConfig(m.controller.getXFTPCfg()) } + } + } + if (xftpEnabled.value) { + SectionTextFooter(generalGetString(R.string.xftp_requires_v461)) } } } diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt index f55eb941ba..e07b3443d0 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt @@ -205,10 +205,10 @@ fun SettingsLayout( SectionSpacer() SectionView(stringResource(R.string.settings_section_title_develop)) { - SettingsActionItem(Icons.Outlined.Construction, stringResource(R.string.settings_developer_tools), showSettingsModal { DeveloperView(it, showCustomModal, withAuth) }) - SectionDivider() - SettingsActionItem(Icons.Outlined.Science, stringResource(R.string.settings_experimental_features), showSettingsModal { ExperimentalFeaturesView(it) }) + SettingsActionItem(Icons.Outlined.Code, stringResource(R.string.settings_developer_tools), showSettingsModal { DeveloperView(it, showCustomModal, withAuth) }) SectionDivider() +// SettingsActionItem(Icons.Outlined.Science, stringResource(R.string.settings_experimental_features), showSettingsModal { ExperimentalFeaturesView(it) }) +// SectionDivider() AppVersionItem(showVersion) } } diff --git a/apps/android/app/src/main/res/values/strings.xml b/apps/android/app/src/main/res/values/strings.xml index 2f8206c58a..045da6c4b4 100644 --- a/apps/android/app/src/main/res/values/strings.xml +++ b/apps/android/app/src/main/res/values/strings.xml @@ -509,6 +509,10 @@ Core version: v%s Core built at: %s simplexmq: v%s (%2s) + Show:\ + Hide:\ + Show developer options + Database IDs and Transport isolation option. Create address @@ -716,7 +720,9 @@ MESSAGES CALLS Incognito mode + EXPERIMENTAL Send files via XFTP + v4.6.1+ is required to receive via XFTP. Your chat database