TP-71218 | Loans Tab Status Bar Issue Fix (#11490)
Co-authored-by: Aman S <aman.s@navi.com>
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
package com.naviapp.home.dashboard.ui.compose.loansTab
|
||||
|
||||
import android.app.Activity
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.navi.base.deeplink.DeepLinkManager
|
||||
import com.navi.base.model.CtaData
|
||||
import com.navi.base.model.CtaType
|
||||
@@ -18,6 +19,9 @@ import com.navi.common.utils.isDynamicModuleInstalled
|
||||
import com.navi.common.utils.setStatusBarColorInt
|
||||
import com.navi.design.utils.parseColorSafe
|
||||
import com.navi.rr.utils.NaviRRAnalytics.Companion.currency
|
||||
import com.naviapp.R
|
||||
import com.naviapp.forge.model.ScreenDefinition
|
||||
import com.naviapp.home.compose.activity.HomePageActivity
|
||||
import com.naviapp.home.compose.model.InitiatePaymentFromComposeData
|
||||
import com.naviapp.home.dashboard.viewmodels.LoanTabVm
|
||||
import com.naviapp.home.model.HpBottomSheetContent
|
||||
@@ -63,8 +67,14 @@ class LoansTabHelper {
|
||||
}
|
||||
}
|
||||
|
||||
fun toggleStatusBarColor(startColor: String, activity: Activity) {
|
||||
activity.setStatusBarColorInt(startColor.parseColorSafe())
|
||||
fun toggleStatusBarColor(activity: HomePageActivity, loanTabVm: LoanTabVm) {
|
||||
loanTabVm.loansTabUiTronData.value.let {
|
||||
if (it is LoanTabVm.LoansTabUiTronScreenState.Success) {
|
||||
activity.setStatusBarColorInt(getStatusBarColor(it.data))
|
||||
} else {
|
||||
activity.setStatusBarColorInt(ContextCompat.getColor(activity, R.color.white))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun handlePaymentActionData(actionData: CtaData, sharedVM: SharedVM) {
|
||||
@@ -103,4 +113,18 @@ class LoansTabHelper {
|
||||
homeLoanAppInstalled = isDynamicModuleInstalled(HL_DYNAMIC_MODULE_NAME)
|
||||
)
|
||||
}
|
||||
|
||||
private fun getStatusBarColor(data: ScreenDefinition): Int =
|
||||
data.screenStructure
|
||||
?.header
|
||||
?.widgetData
|
||||
?.parentComposeView
|
||||
?.get(0)
|
||||
?.property
|
||||
?.backGroundBrushData
|
||||
?.colorStops
|
||||
?.get(0)
|
||||
?.second
|
||||
.toString()
|
||||
.parseColorSafe()
|
||||
}
|
||||
|
||||
@@ -12,11 +12,19 @@ import androidx.compose.runtime.DisposableEffect
|
||||
import androidx.compose.ui.platform.LocalLifecycleOwner
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.LifecycleEventObserver
|
||||
import com.naviapp.home.compose.activity.HomePageActivity
|
||||
import com.naviapp.home.dashboard.viewmodels.LoanTabVm
|
||||
import com.naviapp.home.model.HpBottomSheetState
|
||||
import com.naviapp.home.viewmodel.SharedVM
|
||||
import com.naviapp.utils.Constants.LOANS_TAB_SCREEN
|
||||
|
||||
@Composable
|
||||
fun LoansTabLifeCycleListener(loansTabVm: LoanTabVm, loansTabHelper: LoansTabHelper) {
|
||||
fun LoansTabLifeCycleListener(
|
||||
loansTabVm: LoanTabVm,
|
||||
loansTabHelper: LoansTabHelper,
|
||||
activity: HomePageActivity,
|
||||
sharedVM: SharedVM
|
||||
) {
|
||||
val lifecycleOwner = LocalLifecycleOwner.current
|
||||
val lifecycle = lifecycleOwner.lifecycle
|
||||
|
||||
@@ -24,7 +32,11 @@ fun LoansTabLifeCycleListener(loansTabVm: LoanTabVm, loansTabHelper: LoansTabHel
|
||||
val observer = LifecycleEventObserver { _, event ->
|
||||
when (event) {
|
||||
Lifecycle.Event.ON_RESUME -> {
|
||||
if (loansTabVm.getLoansTabInitStatus().not()) {
|
||||
loansTabHelper.toggleStatusBarColor(activity, loansTabVm)
|
||||
if (
|
||||
loansTabVm.getLoansTabInitStatus().not() &&
|
||||
sharedVM.bottomSheetStateHolder.value.state == HpBottomSheetState.Hidden
|
||||
) {
|
||||
sendInitEvent(LOANS_TAB_SCREEN)
|
||||
loansTabVm.setLoansTabInitStatus(true)
|
||||
loansTabHelper.fetchLoansTab(loansTabVm)
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
package com.naviapp.home.dashboard.ui.compose.loansTab
|
||||
|
||||
import android.app.Activity
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
@@ -27,7 +26,7 @@ import com.naviapp.home.viewmodel.SharedVM
|
||||
fun LoansTabScreen(activity: HomePageActivity, sharedVM: SharedVM, modifier: Modifier = Modifier) {
|
||||
val loansTabVm by lazy { ViewModelProvider(activity)[LoanTabVm::class.java] }
|
||||
val loansTabHelper by lazy { LoansTabHelper() }
|
||||
LoansTabLifeCycleListener(loansTabVm, loansTabHelper)
|
||||
LoansTabLifeCycleListener(loansTabVm, loansTabHelper, activity, sharedVM)
|
||||
InitObserver(
|
||||
viewModel = loansTabVm,
|
||||
activity = activity,
|
||||
@@ -40,7 +39,7 @@ fun LoansTabScreen(activity: HomePageActivity, sharedVM: SharedVM, modifier: Mod
|
||||
@Composable
|
||||
private fun InitObserver(
|
||||
viewModel: LoanTabVm,
|
||||
activity: Activity,
|
||||
activity: HomePageActivity,
|
||||
sharedVM: SharedVM,
|
||||
modifier: Modifier = Modifier,
|
||||
loansTabHelper: LoansTabHelper
|
||||
@@ -49,12 +48,15 @@ private fun InitObserver(
|
||||
Box(modifier = modifier) {
|
||||
when (val shimmerState = viewModel.loansTabUiTronData.collectAsStateWithLifecycle().value) {
|
||||
is LoanTabVm.LoansTabUiTronScreenState.Loading -> {
|
||||
loansTabHelper.toggleStatusBarColor(activity, viewModel)
|
||||
LoansTabContentShimmer()
|
||||
}
|
||||
is LoanTabVm.LoansTabUiTronScreenState.Success -> {
|
||||
LoansTab(
|
||||
loansTabVm = viewModel,
|
||||
toggleStatusBarColor = { loansTabHelper.toggleStatusBarColor(it, activity) }
|
||||
toggleStatusBarColor = {
|
||||
loansTabHelper.toggleStatusBarColor(activity, viewModel)
|
||||
}
|
||||
)
|
||||
}
|
||||
is LoanTabVm.LoansTabUiTronScreenState.Error -> {
|
||||
|
||||
Reference in New Issue
Block a user