Skip to content

Commit 5f8f934

Browse files
committed
chore(currency): hide IME prior to navigation
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 55f4899 commit 5f8f934

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

app/src/main/java/com/getcode/view/main/currency/CurrencySelectionSheet.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,14 @@ import androidx.compose.runtime.collectAsState
3232
import androidx.compose.runtime.getValue
3333
import androidx.compose.runtime.mutableStateOf
3434
import androidx.compose.runtime.remember
35+
import androidx.compose.runtime.rememberCoroutineScope
3536
import androidx.compose.runtime.setValue
3637
import androidx.compose.ui.Alignment
38+
import androidx.compose.ui.ExperimentalComposeUiApi
3739
import androidx.compose.ui.Modifier
3840
import androidx.compose.ui.draw.alpha
3941
import androidx.compose.ui.draw.clip
42+
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
4043
import androidx.compose.ui.res.painterResource
4144
import androidx.compose.ui.res.stringResource
4245
import androidx.compose.ui.text.input.TextFieldValue
@@ -56,22 +59,25 @@ import com.getcode.util.rememberedClickable
5659
import com.getcode.view.components.CodeCircularProgressIndicator
5760
import com.getcode.view.components.SwipeableView
5861
import com.getcode.view.main.giveKin.CurrencyListItem
62+
import kotlinx.coroutines.delay
5963
import kotlinx.coroutines.flow.distinctUntilChanged
6064
import kotlinx.coroutines.flow.filter
6165
import kotlinx.coroutines.flow.filterIsInstance
6266
import kotlinx.coroutines.flow.launchIn
6367
import kotlinx.coroutines.flow.map
6468
import kotlinx.coroutines.flow.onEach
69+
import kotlinx.coroutines.launch
6570
import timber.log.Timber
6671

67-
@OptIn(ExperimentalMaterialApi::class)
72+
@OptIn(ExperimentalMaterialApi::class, ExperimentalComposeUiApi::class)
6873
@Composable
6974
fun CurrencySelectionSheet(
7075
viewModel: CurrencyViewModel,
7176
) {
7277
val navigator = LocalCodeNavigator.current
7378
val state by viewModel.stateFlow.collectAsState()
74-
79+
val keyboardController = LocalSoftwareKeyboardController.current
80+
val composeScope = rememberCoroutineScope()
7581
var searchQuery by remember {
7682
mutableStateOf(TextFieldValue())
7783
}
@@ -89,7 +95,11 @@ fun CurrencySelectionSheet(
8995
.map { it.currency }
9096
.distinctUntilChanged()
9197
.onEach {
92-
navigator.hideWithResult(it)
98+
composeScope.launch {
99+
keyboardController?.hide()
100+
delay(500)
101+
navigator.hideWithResult(it)
102+
}
93103
}.launchIn(this)
94104
}
95105

0 commit comments

Comments
 (0)