TP-60183 | Sohan Reddy | On Start call and back disable (#10304)

This commit is contained in:
Sohan Reddy Atukula
2024-04-05 15:13:37 +05:30
committed by GitHub
parent 38defd066e
commit 21745a2487
4 changed files with 40 additions and 10 deletions

View File

@@ -79,6 +79,7 @@ import com.navi.common.uitron.model.action.CtaAction
import com.navi.rr.common.actions.InitActionHandler
import com.navi.rr.common.activity.RRBaseActivity
import com.navi.rr.utils.Constants.NULL_STRING
import com.navi.rr.utils.DisposableEffectWithLifeCycle
import com.navi.rr.utils.InitWidgetActions
import com.navi.rr.utils.brushType
import com.navi.rr.utils.getGsonBuilders
@@ -98,7 +99,8 @@ import kotlinx.coroutines.launch
import java.util.UUID
import com.navi.common.R as CommonR
@OptIn(ExperimentalFoundationApi::class,
@OptIn(
ExperimentalFoundationApi::class,
ExperimentalMaterialApi::class, ExperimentalComposeUiApi::class
)
@Destination
@@ -185,10 +187,13 @@ fun CoinHomeScreen(
}
}
LaunchedEffect(Unit) {
naviCoinsAnalytics.sendEvent(NaviCoinsAnalytics.REWARDS_NAVI_COINS_INFO_PAGE_LANDS)
coinHomeScreenVM.fetchCoinHomeScreenUiTronConfigs()
DisposableEffectWithLifeCycle(
onStart = {
coinHomeScreenVM.fetchCoinHomeScreenUiTronConfigs()
}
) {
coinHomeScreenVM.fetchAndSaveCoinHistoryScreen()
naviCoinsAnalytics.sendEvent(NaviCoinsAnalytics.REWARDS_NAVI_COINS_INFO_PAGE_LANDS)
}
LaunchedEffect(Unit) {

View File

@@ -2,6 +2,7 @@ package com.navi.coin.ui.compose
import android.app.Activity
import android.os.Bundle
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
@@ -43,6 +44,8 @@ fun RedemptionStatusScreen(
viewModel = redemptionStatusVM
)
BackHandler {}
LaunchedEffect(Unit) {
redemptionStatusVM.screenActions.collect { action ->
when (action) {

View File

@@ -0,0 +1,28 @@
package com.navi.rr.utils
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
@Composable
fun DisposableEffectWithLifeCycle(
onStart: (() -> Unit)? = null,
onStop: (() -> Unit)? = null,
effect: (() -> Unit)? = null
) {
val lifecycle = LocalLifecycleOwner.current.lifecycle
DisposableEffect(lifecycle) {
effect?.invoke()
val observer = LifecycleEventObserver { _, event ->
when (event) {
Lifecycle.Event.ON_START -> onStart?.invoke()
Lifecycle.Event.ON_STOP -> onStop?.invoke()
else -> Lifecycle.Event.ON_ANY
}
}
lifecycle.addObserver(observer)
onDispose { lifecycle.removeObserver(observer) }
}
}

View File

@@ -16,10 +16,8 @@ import android.content.Intent
import android.net.Uri
import android.provider.Settings
import android.view.View
import androidx.compose.foundation.background
import androidx.compose.foundation.interaction.Interaction
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.SpanStyle
@@ -71,18 +69,14 @@ import com.navi.uitron.model.animations.PropertyAnimator
import com.navi.uitron.model.data.UiTronAction
import com.navi.uitron.model.data.UiTronData
import com.navi.uitron.model.ui.BaseProperty
import com.navi.uitron.model.ui.BrushData
import com.navi.uitron.model.ui.BrushType
import com.navi.uitron.model.visualtransformation.VisualTransformationData
import com.navi.uitron.serializer.ComposePropertySerializer
import com.navi.uitron.serializer.UiTronValidationSerializer
import com.navi.uitron.serializer.VisualTransformationDataSerializer
import com.navi.uitron.serializer.animationsSerializers.AnimationSpecSerializer
import com.navi.uitron.serializer.animationsSerializers.PropertyAnimatorSerializer
import com.navi.uitron.utils.getTileMode
import com.navi.uitron.utils.hexToComposeColor
import com.navi.uitron.utils.orFalse
import com.navi.uitron.utils.parseColorSafe
import com.navi.uitron.utils.transformations.moneyFormat
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.Flow