From f716fb7df7928e8e143d42f4221bc5e3d511cbd4 Mon Sep 17 00:00:00 2001 From: Sohan Reddy Atukula Date: Thu, 28 Mar 2024 11:25:39 +0530 Subject: [PATCH] TP-60183 | Sohan Reddy | Added post render action handling (#10202) Co-authored-by: Shivam Goyal --- .../navi/coin/ui/compose/CoinHomeScreen.kt | 5 ++++ .../com/navi/coin/views/CoinCommonView.kt | 4 ++-- .../com/navi/rr/utils/ScreenEventUtils.kt | 24 +++++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 android/navi-rr/src/main/java/com/navi/rr/utils/ScreenEventUtils.kt diff --git a/android/navi-coin/src/main/java/com/navi/coin/ui/compose/CoinHomeScreen.kt b/android/navi-coin/src/main/java/com/navi/coin/ui/compose/CoinHomeScreen.kt index 69bc47d9ae..05958b8452 100644 --- a/android/navi-coin/src/main/java/com/navi/coin/ui/compose/CoinHomeScreen.kt +++ b/android/navi-coin/src/main/java/com/navi/coin/ui/compose/CoinHomeScreen.kt @@ -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.InitWidgetActions import com.navi.rr.utils.brushType import com.navi.rr.utils.getGsonBuilders import com.navi.rr.utils.toJson @@ -320,6 +321,10 @@ fun CoinHomeScreen( LaunchedEffect(Unit) { coinHomeScreenVM.setBottomSheetMapData(state.data.screenStructure?.bottomSheets) } + InitWidgetActions( + screenDefinition = state.data, + viewModel = coinHomeScreenVM + ) val scrollState = rememberScrollState() val screenHeight = LocalConfiguration.current.screenHeightDp.dp.toPx() diff --git a/android/navi-coin/src/main/java/com/navi/coin/views/CoinCommonView.kt b/android/navi-coin/src/main/java/com/navi/coin/views/CoinCommonView.kt index 13fc565238..8f1832448b 100644 --- a/android/navi-coin/src/main/java/com/navi/coin/views/CoinCommonView.kt +++ b/android/navi-coin/src/main/java/com/navi/coin/views/CoinCommonView.kt @@ -227,15 +227,15 @@ fun MainScreenShimmerV2(){ .clip(RoundedCornerShape(4.dp)) .setShimmerEffect(true)) Box(modifier = Modifier + .padding(start = 16.dp) .height(220.dp) .width(136.dp) - .padding(start = 16.dp) .clip(RoundedCornerShape(4.dp)) .setShimmerEffect(true)) Box(modifier = Modifier + .padding(start = 16.dp) .height(220.dp) .width(136.dp) - .padding(start = 16.dp) .clip(RoundedCornerShape(4.dp)) .setShimmerEffect(true)) } diff --git a/android/navi-rr/src/main/java/com/navi/rr/utils/ScreenEventUtils.kt b/android/navi-rr/src/main/java/com/navi/rr/utils/ScreenEventUtils.kt new file mode 100644 index 0000000000..ef13040cf6 --- /dev/null +++ b/android/navi-rr/src/main/java/com/navi/rr/utils/ScreenEventUtils.kt @@ -0,0 +1,24 @@ +package com.navi.rr.utils + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import com.navi.common.forge.model.ScreenDefinition +import com.navi.uitron.viewmodel.UiTronViewModel + +@Composable +fun InitWidgetActions( + screenDefinition: ScreenDefinition, + viewModel: UiTronViewModel, +) { + LaunchedEffect(screenDefinition) { + viewModel.handleActions( + screenDefinition.screenStructure?.header?.widgetRenderActions?.postRenderAction + ) + viewModel.handleActions( + screenDefinition.screenStructure?.footer?.widgetRenderActions?.postRenderAction + ) + screenDefinition.screenStructure?.content?.widgets?.forEach { + viewModel.handleActions(it.widgetRenderActions?.postRenderAction) + } + } +} \ No newline at end of file