NTP-24289 | Ads on scroll status bar color change (#14449)

This commit is contained in:
Ayushman Sharma
2025-01-08 19:28:51 +05:30
committed by GitHub
parent 740e8f1e53
commit 9cc893e2e0
2 changed files with 28 additions and 4 deletions

View File

@@ -1,6 +1,6 @@
/*
*
* * Copyright © 2024 by Navi Technologies Limited
* * Copyright © 2024-2025 by Navi Technologies Limited
* * All rights reserved. Strictly confidential
*
*/
@@ -47,4 +47,8 @@ class CreditCardAdDetailsActivity : BaseActivity() {
super.finish()
startExitAnimation()
}
companion object {
const val SCROLL_THRESHOLD_FOR_STATUS_BAR_COLOR_CHANGE_IN_DP = 270
}
}

View File

@@ -13,16 +13,23 @@ import androidx.compose.foundation.LocalOverscrollConfiguration
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import com.google.accompanist.systemuicontroller.rememberSystemUiController
import com.navi.common.alchemist.model.AlchemistScreenStructure
import com.navi.common.commoncomposables.ui.AlchemistWidgetListRenderer
import com.navi.design.utils.dpToPx
import com.navi.design.utils.parseColorSafe
import com.navi.uitron.model.ui.ScrollData
import com.navi.uitron.utils.setVerticalScroll
import com.naviapp.adverse.creditcard.ui.CreditCardAdDetailsActivity.Companion.SCROLL_THRESHOLD_FOR_STATUS_BAR_COLOR_CHANGE_IN_DP
import com.naviapp.adverse.creditcard.viewmodel.CreditCardScreenViewModel
@SuppressLint("UnusedMaterialScaffoldPaddingParameter")
@@ -32,6 +39,19 @@ fun CreditCardScaffoldRenderer(
screenStructure: AlchemistScreenStructure,
viewModel: CreditCardScreenViewModel,
) {
val systemUiController = rememberSystemUiController()
val scrollState = rememberScrollState()
val isStatusBarColorWhite by remember {
derivedStateOf {
scrollState.value > dpToPx(SCROLL_THRESHOLD_FOR_STATUS_BAR_COLOR_CHANGE_IN_DP)
}
}
LaunchedEffect(isStatusBarColorWhite) {
val statusBarColor = if (isStatusBarColorWhite) Color.White else Color.Transparent
systemUiController.setStatusBarColor(color = statusBarColor, darkIcons = true)
}
Scaffold(
modifier = Modifier.fillMaxSize(),
topBar = {
@@ -45,7 +65,7 @@ fun CreditCardScaffoldRenderer(
Column(
modifier =
Modifier.padding(bottom = it.calculateBottomPadding())
.setVerticalScroll(ScrollData(enabled = true))
.verticalScroll(scrollState)
) {
AlchemistWidgetListRenderer(
viewModel = viewModel,