From 32494b961b8e6ff42534c255cb102dc3d5e2f95a Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 12 Apr 2022 22:52:00 +0100 Subject: [PATCH] closing keyboard after entering imported rooms keys passphrase --- .../main/kotlin/app/dapk/st/settings/SettingsScreen.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/features/settings/src/main/kotlin/app/dapk/st/settings/SettingsScreen.kt b/features/settings/src/main/kotlin/app/dapk/st/settings/SettingsScreen.kt index 9b3b793..3832fd3 100644 --- a/features/settings/src/main/kotlin/app/dapk/st/settings/SettingsScreen.kt +++ b/features/settings/src/main/kotlin/app/dapk/st/settings/SettingsScreen.kt @@ -21,10 +21,12 @@ import androidx.compose.material.icons.outlined.Lock import androidx.compose.runtime.* import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.PasswordVisualTransformation @@ -45,6 +47,7 @@ import app.dapk.st.navigator.Navigator import app.dapk.st.settings.SettingsEvent.* import app.dapk.st.settings.eventlogger.EventLogActivity +@OptIn(ExperimentalComposeUiApi::class) @Composable internal fun SettingsScreen(viewModel: SettingsViewModel, onSignOut: () -> Unit, navigator: Navigator) { viewModel.ObserveEvents(onSignOut) @@ -80,7 +83,7 @@ internal fun SettingsScreen(viewModel: SettingsViewModel, onSignOut: () -> Unit, viewModel.fileSelected(it) } } - + val keyboardController = LocalSoftwareKeyboardController.current Button(modifier = Modifier.fillMaxWidth(), onClick = { launcher.launch("text/*") }) { Text(text = "SELECT FILE".uppercase()) } @@ -92,7 +95,10 @@ internal fun SettingsScreen(viewModel: SettingsViewModel, onSignOut: () -> Unit, var passphrase by rememberSaveable { mutableStateOf("") } var passwordVisibility by rememberSaveable { mutableStateOf(false) } - val startImportAction = { viewModel.importFromFileKeys(it.selectedFile.uri, passphrase) } + val startImportAction = { + keyboardController?.hide() + viewModel.importFromFileKeys(it.selectedFile.uri, passphrase) + } TextField( modifier = Modifier.fillMaxWidth(),