NTP-3815 | Send money focusRequester crash fix (#12577)
This commit is contained in:
@@ -72,7 +72,6 @@ import com.navi.pay.utils.conditional
|
||||
import com.navi.pay.utils.customHide
|
||||
import com.navi.pay.utils.isAmountValidForSendMoney
|
||||
import com.navi.pay.utils.shake
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
@@ -151,23 +150,12 @@ fun MainScreenV2(
|
||||
)
|
||||
}
|
||||
|
||||
LaunchedEffect(key1 = Unit) {
|
||||
launch {
|
||||
sendMoneyViewModel.shouldAutoFocusOnAmount.collect {
|
||||
sendMoneyViewModel.clearShouldAutoFocusOnAmountReplayCache()
|
||||
if (it && lastExecutedActionBeforeOnboardingSdkTrigger == null) {
|
||||
focusRequester.requestFocus()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
launch {
|
||||
sendMoneyViewModel.triggerErrorVibrationAndShakeAnimation.collect {
|
||||
amountFieldShakeController.shake(
|
||||
ShakeConfig(iterations = 3, translateX = 7f, durationMillis = 30)
|
||||
)
|
||||
NaviPayCommonUtils.playErrorHaptic(context)
|
||||
}
|
||||
LaunchedEffect(Unit) {
|
||||
sendMoneyViewModel.triggerErrorVibrationAndShakeAnimation.collect {
|
||||
amountFieldShakeController.shake(
|
||||
ShakeConfig(iterations = 3, translateX = 7f, durationMillis = 30)
|
||||
)
|
||||
NaviPayCommonUtils.playErrorHaptic(context)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -277,6 +265,17 @@ fun MainScreenV2(
|
||||
else AMOUNT_MAX_LENGTH,
|
||||
focusRequester = focusRequester
|
||||
)
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
sendMoneyViewModel.shouldAutoFocusOnAmount.collect { requestFocus ->
|
||||
sendMoneyViewModel.clearShouldAutoFocusOnAmountReplayCache()
|
||||
if (requestFocus && lastExecutedActionBeforeOnboardingSdkTrigger == null) {
|
||||
focusRequester.requestFocus()
|
||||
keyboardController?.show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Spacer(modifier = Modifier.height(4.dp))
|
||||
if (isWarningOrErrorState.isErrorState) {
|
||||
RenderWarningOrErrorMessage(isWarningOrErrorState = isWarningOrErrorState)
|
||||
|
||||
@@ -86,8 +86,6 @@ import com.navi.pay.utils.customHide
|
||||
import com.navi.pay.utils.initials
|
||||
import com.ramcosta.composedestinations.annotation.Destination
|
||||
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
|
||||
import kotlin.time.Duration.Companion.milliseconds
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@OptIn(ExperimentalMaterialApi::class)
|
||||
@@ -307,7 +305,6 @@ fun RenderUPIIdInputScreen(
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
focusRequester.requestFocus()
|
||||
delay(100.milliseconds) // Delay to ensure focus is set
|
||||
keyboardController?.show()
|
||||
}
|
||||
|
||||
|
||||
@@ -109,8 +109,6 @@ import com.navi.pay.utils.customHide
|
||||
import com.navi.pay.utils.launchPermissionSettingsScreen
|
||||
import com.ramcosta.composedestinations.annotation.Destination
|
||||
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
|
||||
import kotlin.time.Duration.Companion.milliseconds
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@OptIn(ExperimentalPermissionsApi::class, ExperimentalMaterialApi::class)
|
||||
@@ -501,7 +499,6 @@ fun RenderPayToContactsSearchScreen(
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
focusRequester.requestFocus()
|
||||
delay(100.milliseconds) // Delay to ensure focus is set
|
||||
keyboardController?.show()
|
||||
}
|
||||
|
||||
|
||||
@@ -109,8 +109,6 @@ import com.navi.pay.utils.isEmpty
|
||||
import com.navi.pay.utils.shimmerEffect
|
||||
import com.ramcosta.composedestinations.annotation.Destination
|
||||
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
|
||||
import kotlin.time.Duration.Companion.milliseconds
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@OptIn(ExperimentalMaterialApi::class, ExperimentalComposeUiApi::class)
|
||||
@@ -648,7 +646,6 @@ private fun RenderSavedBeneficiarySearchScreen(
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
focusRequester.requestFocus()
|
||||
delay(100.milliseconds) // Delay to ensure focus is set
|
||||
keyboardController?.show()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user