Skip to content

Commit 9782660

Browse files
authored
Merge pull request #114 from code-payments/chore/modal-dismiss-ime-first
chore(modals): have all modals dismiss IME before hiding
2 parents a0a7113 + 6afc080 commit 9782660

2 files changed

Lines changed: 18 additions & 4 deletions

File tree

app/src/main/java/com/getcode/navigation/screens/ModalScreens.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@ import cafe.adriel.voyager.core.screen.ScreenKey
77
import cafe.adriel.voyager.core.screen.uniqueScreenKey
88
import cafe.adriel.voyager.hilt.getViewModel
99
import com.getcode.R
10-
import com.getcode.analytics.AnalyticsScreenWatcher
1110
import com.getcode.analytics.AnalyticsManager
11+
import com.getcode.analytics.AnalyticsScreenWatcher
1212
import com.getcode.navigation.core.LocalCodeNavigator
1313
import com.getcode.util.getActivityScopedViewModel
1414
import com.getcode.util.getStackScopedViewModel
1515
import com.getcode.view.login.PhoneConfirm
1616
import com.getcode.view.login.PhoneVerify
1717
import com.getcode.view.login.PhoneVerifyViewModel
18-
import com.getcode.view.main.account.BackupKey
19-
import com.getcode.view.main.account.BetaFlagsScreen
2018
import com.getcode.view.main.account.AccountDeposit
2119
import com.getcode.view.main.account.AccountDetails
2220
import com.getcode.view.main.account.AccountFaq
2321
import com.getcode.view.main.account.AccountPhone
22+
import com.getcode.view.main.account.BackupKey
23+
import com.getcode.view.main.account.BetaFlagsScreen
2424
import com.getcode.view.main.account.ConfirmDeleteAccount
2525
import com.getcode.view.main.account.DeleteCodeAccount
2626
import com.getcode.view.main.currency.CurrencySelectionSheet

app/src/main/java/com/getcode/navigation/screens/Modals.kt

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ import androidx.compose.runtime.CompositionLocalProvider
1616
import androidx.compose.runtime.derivedStateOf
1717
import androidx.compose.runtime.getValue
1818
import androidx.compose.runtime.remember
19+
import androidx.compose.runtime.rememberCoroutineScope
1920
import androidx.compose.ui.Modifier
21+
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
2022
import cafe.adriel.voyager.core.screen.Screen
2123
import cafe.adriel.voyager.core.screen.ScreenKey
2224
import cafe.adriel.voyager.core.screen.uniqueScreenKey
@@ -26,6 +28,8 @@ import com.getcode.theme.CodeTheme
2628
import com.getcode.theme.sheetHeight
2729
import com.getcode.util.recomposeHighlighter
2830
import com.getcode.view.components.SheetTitle
31+
import kotlinx.coroutines.delay
32+
import kotlinx.coroutines.launch
2933
import timber.log.Timber
3034

3135
internal interface ModalContent {
@@ -91,6 +95,16 @@ internal interface ModalContent {
9195
derivedStateOf { closeButton(lastItem) }
9296
}
9397

98+
val keyboardController = LocalSoftwareKeyboardController.current
99+
val composeScope = rememberCoroutineScope()
100+
101+
val hideSheet = {
102+
composeScope.launch {
103+
keyboardController?.hide()
104+
delay(500)
105+
navigator.hide()
106+
}
107+
}
94108
SheetTitle(
95109
modifier = Modifier,
96110
title = {
@@ -106,7 +120,7 @@ internal interface ModalContent {
106120
backButton = isBackEnabled,
107121
closeButton = isCloseEnabled,
108122
onBackIconClicked = onBackClicked?.let { { it() } } ?: { navigator.pop() },
109-
onCloseIconClicked = onCloseClicked?.let { { it() } } ?: { navigator.hide() }
123+
onCloseIconClicked = onCloseClicked?.let { { it() } } ?: { hideSheet() }
110124
)
111125
Box(
112126
modifier = Modifier

0 commit comments

Comments
 (0)