NTP-5232 | Vedant Aggarwal | Making Bottom-Sheets dismissable in Onboarding Flows (#12918)
This commit is contained in:
@@ -51,7 +51,7 @@
|
||||
<activity
|
||||
android:name=".onboardingV2.ui.NaviPayOnboardingActivity"
|
||||
android:exported="false"
|
||||
android:theme="@style/NaviPayTransparentTheme" />
|
||||
android:theme="@style/NaviPayOnboardingTheme" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
||||
@@ -362,7 +362,9 @@ fun BottomSheetContentWithIconHeaderDescButton(
|
||||
) {
|
||||
Column(
|
||||
modifier =
|
||||
Modifier.fillMaxWidth().padding(start = 16.dp, end = 16.dp, top = 16.dp, bottom = 32.dp)
|
||||
Modifier.navigationBarsPadding()
|
||||
.fillMaxWidth()
|
||||
.padding(start = 16.dp, end = 16.dp, top = 16.dp, bottom = 32.dp)
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(id = iconId),
|
||||
|
||||
@@ -22,7 +22,6 @@ import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.rememberCoroutineScope
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.toArgb
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import androidx.paging.compose.LazyPagingItems
|
||||
@@ -97,11 +96,6 @@ fun AccountAdditionScreen(
|
||||
}
|
||||
}
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
naviPayOnboardingActivity.window.statusBarColor =
|
||||
NaviPayColor.bgDarkPurple.copy(alpha = 0.36f).toArgb()
|
||||
}
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
ErrorEventHandler.errorCtaClickEvent.collectLatest { NaviPayEventBus.resetEventBus() }
|
||||
}
|
||||
@@ -142,6 +136,12 @@ fun AccountAdditionScreen(
|
||||
}
|
||||
}
|
||||
|
||||
LaunchedEffect(key1 = bottomSheetState.isVisible) {
|
||||
if (bottomSheetState.isVisible.not()) {
|
||||
naviPayOnboardingActivity.finish()
|
||||
}
|
||||
}
|
||||
|
||||
val onSearchQueryChanged: (String) -> Unit = { query ->
|
||||
eventDispatcher(AccountAdditionScreenContract.Event.OnSearchQueryChanged(query))
|
||||
}
|
||||
@@ -197,7 +197,7 @@ fun AccountAdditionBottomSheet(
|
||||
onSearchQueryChanged = onSearchQueryChanged
|
||||
)
|
||||
},
|
||||
scrimColor = NaviPayColor.bgDarkPurple.copy(alpha = 0.36f)
|
||||
scrimColor = NaviPayColor.bgDarkPurple.copy(alpha = 0.64f)
|
||||
) {
|
||||
Surface(modifier = Modifier.fillMaxSize(), color = NaviPayColor.transparent) {}
|
||||
}
|
||||
|
||||
@@ -261,7 +261,7 @@ constructor(
|
||||
_bindingProgress.update { 0f }
|
||||
updateBottomSheetUIState(
|
||||
showBottomSheet = true,
|
||||
bottomSheetStateChange = false,
|
||||
bottomSheetStateChange = true,
|
||||
bottomSheetUIState = AccountAdditionBottomSheetType.AccountAddition
|
||||
)
|
||||
}
|
||||
@@ -375,7 +375,7 @@ constructor(
|
||||
_bindingProgress.update { 0f }
|
||||
updateBottomSheetUIState(
|
||||
showBottomSheet = true,
|
||||
bottomSheetStateChange = false,
|
||||
bottomSheetStateChange = true,
|
||||
bottomSheetUIState = AccountAdditionBottomSheetType.NoLinkedAccounts
|
||||
)
|
||||
return
|
||||
@@ -395,7 +395,7 @@ constructor(
|
||||
delay(1.seconds)
|
||||
updateBottomSheetUIState(
|
||||
showBottomSheet = true,
|
||||
bottomSheetStateChange = false,
|
||||
bottomSheetStateChange = true,
|
||||
bottomSheetUIState =
|
||||
AccountAdditionBottomSheetType.FetchedAccountsList(
|
||||
accountEntities = accountEntities,
|
||||
@@ -541,7 +541,7 @@ constructor(
|
||||
)
|
||||
updateBottomSheetUIState(
|
||||
showBottomSheet = true,
|
||||
bottomSheetStateChange = false,
|
||||
bottomSheetStateChange = true,
|
||||
bottomSheetUIState =
|
||||
AccountAdditionBottomSheetType.UpiGuidelinesBottomSheet(
|
||||
guidelineItems = getUpiGuidelineItems(resourceProvider = resourceProvider),
|
||||
@@ -694,7 +694,7 @@ constructor(
|
||||
viewModelScope.safeLaunch {
|
||||
updateBottomSheetUIState(
|
||||
showBottomSheet = true,
|
||||
bottomSheetStateChange = false,
|
||||
bottomSheetStateChange = true,
|
||||
bottomSheetUIState =
|
||||
AccountAdditionBottomSheetType.ErrorBottomSheet(
|
||||
errorConfig = errorConfig,
|
||||
|
||||
@@ -9,10 +9,13 @@ package com.navi.pay.onboardingV2.ui
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.graphics.Color
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.activity.SystemBarStyle
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.LocalOverscrollConfiguration
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
@@ -61,6 +64,9 @@ class NaviPayOnboardingActivity : BaseActivity(), BackButtonHandler {
|
||||
super.onCreate(savedInstanceState)
|
||||
onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
|
||||
updateOnboardingIntentData()
|
||||
enableEdgeToEdge(
|
||||
statusBarStyle = SystemBarStyle.light(Color.TRANSPARENT, Color.TRANSPARENT)
|
||||
)
|
||||
setContent {
|
||||
NaviPayMaterialTheme(transparentStatusBar = true) {
|
||||
CompositionLocalProvider(LocalOverscrollConfiguration provides null) {
|
||||
|
||||
@@ -554,7 +554,8 @@ fun GenericOnboardingBottomSheet(
|
||||
securePolicy = SecureFlagPolicy.Inherit,
|
||||
shouldDismissOnBackPress = true
|
||||
),
|
||||
dragHandle = null
|
||||
dragHandle = null,
|
||||
scrimColor = NaviPayColor.bgDarkPurple.copy(alpha = 0.64f)
|
||||
) {
|
||||
NaviPayOnboardingBottomSheetContent(
|
||||
naviPayAnalytics = naviPayAnalytics,
|
||||
|
||||
@@ -11,4 +11,11 @@
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:backgroundDimEnabled">true</item>
|
||||
</style>
|
||||
|
||||
<style name="NaviPayOnboardingTheme" parent="Theme.AppCompat.NoActionBar">
|
||||
<item name="android:windowIsTranslucent">true</item>
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
</style>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user