NTP-24289 | Ads on scroll status bar color change (#14449)
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user