NTP-5232 | Vedant Aggarwal | Making Bottom-Sheets dismissable in Onboarding Flows (#12918)

This commit is contained in:
vedant aggarwal
2024-10-07 20:45:15 +05:30
committed by GitHub
parent 56c0a49559
commit 85620bf8df
7 changed files with 31 additions and 15 deletions

View File

@@ -51,7 +51,7 @@
<activity
android:name=".onboardingV2.ui.NaviPayOnboardingActivity"
android:exported="false"
android:theme="@style/NaviPayTransparentTheme" />
android:theme="@style/NaviPayOnboardingTheme" />
</application>
</manifest>

View File

@@ -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),

View File

@@ -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) {}
}

View File

@@ -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,

View File

@@ -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) {

View File

@@ -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,

View File

@@ -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>