diff --git a/navi-rr/src/main/java/com/navi/rr/milestones/models/MilestoneBottomSheet.kt b/navi-rr/src/main/java/com/navi/rr/milestones/models/MilestoneBottomSheet.kt index 1da3264e38..8d420c07cd 100644 --- a/navi-rr/src/main/java/com/navi/rr/milestones/models/MilestoneBottomSheet.kt +++ b/navi-rr/src/main/java/com/navi/rr/milestones/models/MilestoneBottomSheet.kt @@ -7,16 +7,27 @@ package com.navi.rr.milestones.models +import com.navi.common.forge.model.ScreenStructure + data class MilestoneBottomSheet ( var index: Int, var coinsValue: Long, var referralsCompleted: Int, var totalReferralsCompleted: Int, - var referralsToCompleteForReward: Int + var referralsToCompleteForReward: Int, + var lastIndex: Int, + var defaultRewardAmount: Long ) data class MilestoneBottomSheetRenderProps ( - val index: Int, - val coinsValue: Long, - val milestoneID: String + val screen: ScreenStructure?, + val dataMap: Map, + val milestoneID: String, +) + +data class MilestoneBottomSheetDataMap ( + val key: String? = null, + var value: Any? = null, + var pluralValue: String? = null, + val pluralCheck: String? = null ) \ No newline at end of file diff --git a/navi-rr/src/main/java/com/navi/rr/milestones/ui/compose/MileStoneRenderer.kt b/navi-rr/src/main/java/com/navi/rr/milestones/ui/compose/MileStoneRenderer.kt index 810fea4b0a..3b9b30180f 100644 --- a/navi-rr/src/main/java/com/navi/rr/milestones/ui/compose/MileStoneRenderer.kt +++ b/navi-rr/src/main/java/com/navi/rr/milestones/ui/compose/MileStoneRenderer.kt @@ -41,6 +41,7 @@ import com.navi.rr.referral.ui.compose.CashHeaderPill import com.navi.rr.referral.ui.compose.CoinsHeaderPill import com.navi.rr.referral.ui.compose.TextWithShadow import com.navi.rr.utils.Constants.NEXT_MILESTONE_INDEX +import com.navi.rr.utils.Constants.CAPITAL_S import com.navi.rr.utils.ReferralHomeConstants.CASH_HISTORY_CTA import com.navi.rr.utils.ReferralHomeConstants.COINS_HISTORY_CTA @@ -109,7 +110,7 @@ fun MileStoneRenderer( Column(modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { if(moreToWinNum >= 0) { milestoneData?.milestoneNudgeText?.let { - TextWithShadow(String.format(it, moreToWinNum)) + TextWithShadow(String.format(it, moreToWinNum, if(moreToWinNum>1) CAPITAL_S else EMPTY)) } ?: run { TextWithShadow(stringResource(R.string.just_more_to_win, moreToWinNum)) } diff --git a/navi-rr/src/main/java/com/navi/rr/milestones/ui/compose/MilestoneViews.kt b/navi-rr/src/main/java/com/navi/rr/milestones/ui/compose/MilestoneViews.kt index f4e83679c3..ca17ea8ffc 100644 --- a/navi-rr/src/main/java/com/navi/rr/milestones/ui/compose/MilestoneViews.kt +++ b/navi-rr/src/main/java/com/navi/rr/milestones/ui/compose/MilestoneViews.kt @@ -282,7 +282,10 @@ fun FinalTicketInImage( ) Text( - text = formatIndianNumericAbbreviation(coinsAmt), + text = stringResource( + R.string.plus_amount, + formatIndianNumericAbbreviation(coinsAmt) + ), fontSize = 12.sp, fontFamily = ttComposeFontFamily, lineHeight = 16.sp, @@ -864,7 +867,10 @@ fun MileStone( } if (showGratification) { MileStoneCompletedAnimation( - coinsAmt = milestoneAnimationValue?.coinsAmt ?: stringResource(R.string.EMPTY_STRING), + coinsAmt = stringResource( + R.string.plus_amount, + milestoneAnimationValue?.coinsAmt ?: EMPTY + ), index = milestoneAnimationValue?.playAtIndex ?: 0, isFinal = milestoneAnimationValue?.isFinal ?: false, lazyListState = lazyListState, @@ -943,7 +949,9 @@ fun MileStone( ?: scrollState.maxValue.toFloat())) index else endIndex, totalReferralsCompleted = endIndex, referralsToCompleteForReward = if(currentPercentage >= (positionMap[megaStageMap[i]?.rewardStage] - ?: scrollState.maxValue.toFloat())) nextMilestone else index - endIndex + ?: scrollState.maxValue.toFloat())) nextMilestone else index - endIndex, + lastIndex = totalStages, + defaultRewardAmount = milestoneData?.defaultStage?.rewardAmount?:0, ) ) }, diff --git a/navi-rr/src/main/java/com/navi/rr/milestones/utils/MilestoneUtils.kt b/navi-rr/src/main/java/com/navi/rr/milestones/utils/MilestoneUtils.kt index 7cfbbb2e8b..2708981dae 100644 --- a/navi-rr/src/main/java/com/navi/rr/milestones/utils/MilestoneUtils.kt +++ b/navi-rr/src/main/java/com/navi/rr/milestones/utils/MilestoneUtils.kt @@ -47,4 +47,16 @@ fun getMilestoneGratificationAnimationPaddingValues(scaleValue: Float): Float { fun getMilestoneGratificationAnimationSpec(scaleValue: Float): AnimationSpec { return if(scaleValue!= 0.5f) spring(dampingRatio = Spring.DampingRatioMediumBouncy, stiffness = Spring.StiffnessLow) else tween(durationMillis = 300) +} + +fun setPluralText(value: String, checkingVariable: String, pluralValue: String): String { + return try { + if (checkingVariable.toInt() > 1) { + pluralValue + } else { + value + } + } catch (e: Exception) { + value + } } \ No newline at end of file diff --git a/navi-rr/src/main/java/com/navi/rr/referral/ui/compose/RefereeHomePage.kt b/navi-rr/src/main/java/com/navi/rr/referral/ui/compose/RefereeHomePage.kt index beed56f802..096c6bd982 100644 --- a/navi-rr/src/main/java/com/navi/rr/referral/ui/compose/RefereeHomePage.kt +++ b/navi-rr/src/main/java/com/navi/rr/referral/ui/compose/RefereeHomePage.kt @@ -72,6 +72,7 @@ import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.rememberPermissionState import com.google.accompanist.systemuicontroller.rememberSystemUiController +import com.google.gson.reflect.TypeToken import com.navi.alfred.AlfredManager import com.navi.base.deeplink.DeepLinkManager import com.navi.base.model.CtaData @@ -79,6 +80,7 @@ import com.navi.base.sharedpref.PreferenceManager import com.navi.base.utils.EMPTY import com.navi.base.utils.isNotNull import com.navi.base.utils.isNull +import com.navi.common.forge.model.ScreenStructure import com.navi.common.forge.model.WidgetModelDefinition import com.navi.common.uitron.model.action.CtaAction import com.navi.common.utils.Constants @@ -100,57 +102,53 @@ import com.navi.rr.leaderboard.utils.Constants.LEADERBOARD_NAME import com.navi.rr.leaderboard.utils.Constants.SHOW_LOTTIE import com.navi.rr.leaderboard.vm.LeaderboardScreenVM import com.navi.rr.milestones.models.MilestoneBottomSheet +import com.navi.rr.milestones.models.MilestoneBottomSheetDataMap import com.navi.rr.milestones.models.MilestoneBottomSheetRenderProps import com.navi.rr.milestones.models.MilestoneTicketUrl +import com.navi.rr.milestones.utils.setPluralText import com.navi.rr.referral.ui.activity.ReferralHomeActivity import com.navi.rr.referral.viewmodels.RefereeTrackerVM import com.navi.rr.referral.viewmodels.ReferralGratificationScreenState import com.navi.rr.referral.viewmodels.ReferralHomeScreenState import com.navi.rr.referral.viewmodels.ReferralHomeVM +import com.navi.rr.utils.Constants.COINS_VALUE +import com.navi.rr.utils.Constants.DEFAULT_REWARD_AMOUNT import com.navi.rr.utils.Constants.GENERIC_SHARE -import com.navi.rr.utils.Constants.NEW_LINE +import com.navi.rr.utils.Constants.INDEX +import com.navi.rr.utils.Constants.INDEX_TH +import com.navi.rr.utils.Constants.LAST_INDEX +import com.navi.rr.utils.Constants.REFERRALS_TO_COMPLETE_FOR_REWARD +import com.navi.rr.utils.Constants.REFERRAL_COMPLETED import com.navi.rr.utils.Constants.REFERRAL_HOME_SCREEN import com.navi.rr.utils.Constants.SHOW_CONTACT_BOOK_BOTTOM_SHEET import com.navi.rr.utils.Constants.SHOW_REFERRAL_LOTTIE import com.navi.rr.utils.Constants.TIMER_ENDS +import com.navi.rr.utils.Constants.TOTAL_REFERRALS_COMPLETED import com.navi.rr.utils.NaviRRAnalytics import com.navi.rr.utils.NaviRRAnalytics.Companion.MILESTONE_BOTTOMSHEET_VIEW import com.navi.rr.utils.NaviRRAnalytics.Companion.MILESTONE_IDENTIFIER +import com.navi.rr.utils.RefereeTrackerConstants.MILESTONE_BOTTOM_SHEET_DATA_MAP import com.navi.rr.utils.ReferralHomeConstants.ALL_MILESTONES_COMPLETED -import com.navi.rr.utils.ReferralHomeConstants.BOTTOMSHEET_HEADING import com.navi.rr.utils.ReferralHomeConstants.CASH_INVESTMENT_BOTTOMSHEET -import com.navi.rr.utils.ReferralHomeConstants.COINS_VAL -import com.navi.rr.utils.ReferralHomeConstants.COINS_VALUE import com.navi.rr.utils.ReferralHomeConstants.COIN_INVESTMENT_BOTTOMSHEET import com.navi.rr.utils.ReferralHomeConstants.GOLDEN_BOTTOMSHEET import com.navi.rr.utils.ReferralHomeConstants.GREY_BOTTOMSHEET -import com.navi.rr.utils.ReferralHomeConstants.HEADING -import com.navi.rr.utils.ReferralHomeConstants.MORE -import com.navi.rr.utils.ReferralHomeConstants.MORE_REFERRAL_TEXT -import com.navi.rr.utils.ReferralHomeConstants.MORE_TO_WIN_VAL -import com.navi.rr.utils.ReferralHomeConstants.N_REFERRAL_COMPLETED -import com.navi.rr.utils.ReferralHomeConstants.RECEIVED_MESSAGE -import com.navi.rr.utils.ReferralHomeConstants.REFERRAL_AWAY -import com.navi.rr.utils.ReferralHomeConstants.REFERRAL_COMPLETED -import com.navi.rr.utils.ReferralHomeConstants.REFERRAL_COMPLETED_VAL -import com.navi.rr.utils.ReferralHomeConstants.SUCCESSFUL -import com.navi.rr.utils.ReferralHomeConstants.WON_REFERRAL_COMPLETED_VAL import com.navi.rr.utils.ReferralHomeConstants.YELLOW_BOTTOMSHEET import com.navi.rr.utils.ReferralHomeConstants.YOU_HAVE_WON_BOTTOMSHEET import com.navi.rr.utils.clickable import com.navi.rr.utils.formatIndianNumericAbbreviation +import com.navi.rr.utils.getGsonBuilders import com.navi.rr.utils.getNumberSuffix -import com.navi.rr.utils.getReferralOrReferralsFromNumber +import com.navi.rr.utils.injectData import com.navi.rr.utils.openSettings import com.navi.rr.widgetFactory.WidgetRenderer import com.navi.uitron.model.UiTronResponse -import com.navi.uitron.model.data.SpannableTextData -import com.navi.uitron.model.data.TextData import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootNavGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import java.lang.reflect.Type import com.navi.design.R as DesignR import com.navi.naviwidgets.R as WidgetR @@ -163,7 +161,7 @@ fun ReferralHomeScreen( referralHomeVM: ReferralHomeVM = hiltViewModel(), leaderboardScreenVM: LeaderboardScreenVM = hiltViewModel(), refereeTrackerVM: RefereeTrackerVM = hiltViewModel(), - navigator: DestinationsNavigator + navigator: DestinationsNavigator, ) { val context = LocalContext.current as ReferralHomeActivity val coroutineScope = rememberCoroutineScope() @@ -209,8 +207,14 @@ fun ReferralHomeScreen( val bottomSheetMap: MutableMap> = remember { mutableMapOf() } + val systemUiController = rememberSystemUiController() val listState = rememberLazyListState() + var bottomSheetList: Map = remember { emptyMap() } + var jsonMetaData: Map? = remember { emptyMap() } + val dataMapType: Type = remember { + object : TypeToken?>() {}.type + } fun fetchAndSaveRefereeTrackerDetails() { refereeTrackerVM.fetchAndSaveRefereeTrackerScreenV2() @@ -226,117 +230,59 @@ fun ReferralHomeScreen( } } } + fun renderMilestonesBottomSheet( bottomSheetId: String, - milestoneBottomSheetData: MilestoneBottomSheet + milestoneBottomSheetData: MilestoneBottomSheet, ) { - coroutineScope.launch(Dispatchers.IO) { - val bottomSheetResponse = bottomSheetMap[bottomSheetId] - bottomSheetResponse?.widgetData?.data.let { - it?.forEach { data -> - if (data.value is SpannableTextData && data.key == BOTTOMSHEET_HEADING) { - val spannableTextData = data.value as SpannableTextData - spannableTextData.textMap?.forEach { (key, _) -> - if (key == REFERRAL_AWAY) { - (data.value as SpannableTextData).textMap?.set( - key, - "${milestoneBottomSheetData.referralsToCompleteForReward} ${ - getReferralOrReferralsFromNumber( - milestoneBottomSheetData.referralsToCompleteForReward - ) - }" - ) - } - } - } else if (data.value is TextData && data.key == COINS_VALUE) { - (data.value as TextData).text = - milestoneBottomSheetData.coinsValue.toString() - } else if (data.value is SpannableTextData && data.key == HEADING) { - val spannableTextData = data.value as SpannableTextData - spannableTextData.textMap?.forEach { (key, _) -> - if (key == REFERRAL_COMPLETED) { - (data.value as SpannableTextData).textMap?.set( - key, - "${milestoneBottomSheetData.totalReferralsCompleted} ${ - getReferralOrReferralsFromNumber( - milestoneBottomSheetData.totalReferralsCompleted - ) - }" - ) - } - } - } else if (data.value is SpannableTextData && data.key == RECEIVED_MESSAGE) { - val spannableTextData = data.value as SpannableTextData - spannableTextData.textMap?.forEach { (key, _) -> - when (key) { - REFERRAL_COMPLETED_VAL -> { - (data.value as SpannableTextData).textMap?.set( - key, - "${milestoneBottomSheetData.referralsCompleted} $SUCCESSFUL ${ - getReferralOrReferralsFromNumber( - milestoneBottomSheetData.referralsCompleted - ) - }.$NEW_LINE" - ) - } - - MORE_TO_WIN_VAL -> { - (data.value as SpannableTextData).textMap?.set( - key, - milestoneBottomSheetData.referralsToCompleteForReward.toString() - ) - } - - WON_REFERRAL_COMPLETED_VAL -> { - (data.value as SpannableTextData).textMap?.set( - key, - "${milestoneBottomSheetData.referralsCompleted}${ - getNumberSuffix(milestoneBottomSheetData.referralsCompleted) - }" - ) - - } - - MORE_REFERRAL_TEXT -> { - (data.value as SpannableTextData).textMap?.set( - key, - "${milestoneBottomSheetData.referralsToCompleteForReward} $MORE ${ - getReferralOrReferralsFromNumber( - milestoneBottomSheetData.referralsToCompleteForReward - ) - }" - ) - } - - COINS_VAL -> { - (data.value as SpannableTextData).textMap?.set( - key, - milestoneBottomSheetData.coinsValue.toString() - ) - } - - N_REFERRAL_COMPLETED -> { - spannableTextData.textMap!![key] = - milestoneBottomSheetData.referralsCompleted.toString() - } - + coroutineScope.launch(Dispatchers.Default) { + var bottomSheetResponse = bottomSheetList[bottomSheetId] + val variableDataMap = mutableMapOf() + variableDataMap.apply { + put(REFERRAL_COMPLETED, milestoneBottomSheetData.referralsCompleted.toString()) + put(TOTAL_REFERRALS_COMPLETED, milestoneBottomSheetData.totalReferralsCompleted.toString()) + put(REFERRALS_TO_COMPLETE_FOR_REWARD, milestoneBottomSheetData.referralsToCompleteForReward.toString()) + put(LAST_INDEX, milestoneBottomSheetData.lastIndex.toString()) + put(COINS_VALUE, milestoneBottomSheetData.coinsValue.toString()) + put(INDEX, milestoneBottomSheetData.index.toString()) + put(INDEX_TH, milestoneBottomSheetData.index.toString().plus(getNumberSuffix(milestoneBottomSheetData.index))) + put(DEFAULT_REWARD_AMOUNT, milestoneBottomSheetData.defaultRewardAmount.toString()) + } + jsonMetaData?.get(MILESTONE_BOTTOM_SHEET_DATA_MAP)?.let { + val json = getGsonBuilders().toJson(it) + val milestoneBottomSheetDataMap: List = getGsonBuilders().fromJson(json, dataMapType) + milestoneBottomSheetDataMap.forEach { dataMap -> + dataMap.key?.let { key -> + dataMap.pluralCheck?.let { pluralCheck -> + variableDataMap[pluralCheck]?.let { value -> + dataMap.value = setPluralText(dataMap.value.toString(), value, dataMap.pluralValue.toString()) } } + variableDataMap[key] = dataMap.value.toString() } } } - bottomSheetId.let { - bottomSheetMap[bottomSheetId]?.let { - showMilestoneBottomSheet = MilestoneBottomSheetRenderProps(index = milestoneBottomSheetData.index, coinsValue = milestoneBottomSheetData.coinsValue, milestoneID = bottomSheetId) - bottomSheetData.value = it - } + bottomSheetResponse = bottomSheetResponse?.let { + injectData( + injectionObject = bottomSheetResponse, + dataMap = variableDataMap + ) + } ?: ScreenStructure() + bottomSheetMap[bottomSheetId]?.let { + showMilestoneBottomSheet = MilestoneBottomSheetRenderProps( + screen = bottomSheetResponse, + dataMap = variableDataMap, + milestoneID = bottomSheetId + ) } } } + BackHandler { if(!navigator.navigateUp()) context.finish() } + LaunchedEffect(Unit) { referralHomeVM.ctaNavigation.collect { action -> when (action) { @@ -447,6 +393,7 @@ fun ReferralHomeScreen( if (it) navigator.navigateUp() } } + LaunchedEffect(permissionRequested) { if (permissionRequested) { if (contactsPermissionState.status.isGranted) { @@ -456,6 +403,7 @@ fun ReferralHomeScreen( } } } + LaunchedEffect(referralHomeScreenState) { when(referralHomeScreenState) { is ReferralHomeScreenState.Success -> { @@ -465,6 +413,7 @@ fun ReferralHomeScreen( else -> {} } } + LaunchedEffect(Unit) { referralHomeVM.fetchReferralPopupScreen() fetchAndSaveRefereeTrackerDetails() @@ -473,6 +422,7 @@ fun ReferralHomeScreen( if(referralHomeScreenState !is ReferralHomeScreenState.Success) referralHomeVM.fetchReferralForgeScreen() } + if (showSheet) { BottomSheet(referralHomeVM, bottomSheetData.value, modalBottomSheetState= modalBottomSheetState) { showSheet = false } } @@ -484,8 +434,7 @@ fun ReferralHomeScreen( if (showMilestoneBottomSheet.isNotNull()) { MilestoneBottomSheet( referralHomeVM = referralHomeVM, - bottomSheetData = bottomSheetData.value, - milestoneBottomSheet = showMilestoneBottomSheet, + bottomSheetData = showMilestoneBottomSheet, milestoneTicketUrl = milestoneTicketUrl, modalBottomSheetState= modalBottomSheetState ) { @@ -521,6 +470,11 @@ fun ReferralHomeScreen( } is ReferralHomeScreenState.Success -> { + bottomSheetList = + state.data.screenStructure?.bottomSheetScreens?.toList()?.associateBy { + it.screenId ?: EMPTY + } ?: emptyMap() + jsonMetaData = state.data.jsonMetaData Scaffold( modifier = Modifier.fillMaxSize(), topBar = {}, @@ -673,7 +627,7 @@ fun ReferralHomeScreen( @Composable fun RenderReferralHomeScreenTopBar( headerData: WidgetModelDefinition?, - referralHomeVM: ReferralHomeVM + referralHomeVM: ReferralHomeVM, ) { headerData?.let { uiTronHeader -> Column(modifier = Modifier.padding(top = 48.dp)) { @@ -692,7 +646,7 @@ fun RenderReferralHomeScreenContent( isGratificationActive: Boolean, lazyListState: LazyListState, renderMilestoneBottomSheet: (screenId: String, milestoneBottomSheetData: MilestoneBottomSheet) -> Unit, - setMilestoneTicketUrl: ((milestoneTicketUrl: MilestoneTicketUrl) -> Unit)? = null + setMilestoneTicketUrl: ((milestoneTicketUrl: MilestoneTicketUrl) -> Unit)? = null, ) { WidgetRenderer(widget = contentItem, viewModel = referralHomeVM, lazyListState = lazyListState, isGratificationActive = isGratificationActive, renderMilestoneBottomSheet){ setMilestoneTicketUrl?.invoke(it) @@ -702,7 +656,7 @@ fun RenderReferralHomeScreenContent( @Composable fun RenderReferralHomeScreenBottomBar( footerData: WidgetModelDefinition?, - referralHomeVM: ReferralHomeVM + referralHomeVM: ReferralHomeVM, ) { footerData?.let { uiTronFooter -> Column( @@ -833,17 +787,18 @@ fun BottomSheet( @Composable fun MilestoneBottomSheet( referralHomeVM: ReferralHomeVM, - bottomSheetData: WidgetModelDefinition, - milestoneBottomSheet: MilestoneBottomSheetRenderProps?, + bottomSheetData: MilestoneBottomSheetRenderProps?, milestoneTicketUrl: MilestoneTicketUrl?, modalBottomSheetState: SheetState, onDismiss: () -> Unit, ) { val coroutineScope = rememberCoroutineScope() - LaunchedEffect(Unit){ - NaviRRAnalytics.naviRRAnalytics.Referral().sendEvent(eventName = MILESTONE_BOTTOMSHEET_VIEW, extraAttributes = hashMapOf( - MILESTONE_IDENTIFIER to milestoneBottomSheet?.index.toString() - )) + LaunchedEffect(Unit) { + NaviRRAnalytics.naviRRAnalytics.Referral().sendEvent( + eventName = MILESTONE_BOTTOMSHEET_VIEW, extraAttributes = hashMapOf( + MILESTONE_IDENTIFIER to bottomSheetData?.dataMap?.get(INDEX).toString() + ) + ) } ModalBottomSheet( onDismissRequest = { onDismiss() }, @@ -879,17 +834,24 @@ fun MilestoneBottomSheet( } } ) - RenderBottomSheet(bottomSheetData, referralHomeVM) + bottomSheetData?.screen?.content?.widgets?.forEach { + WidgetRenderer( + widget = it, + viewModel = referralHomeVM + ) + } } - Box(modifier = Modifier - .height(90.dp) - .width(65.dp), contentAlignment = Alignment.TopCenter){ + Box( + modifier = Modifier + .height(90.dp) + .width(65.dp), contentAlignment = Alignment.TopCenter + ) { AsyncImage( model = ImageRequest.Builder(LocalContext.current) .allowHardware(false) .data( - when(milestoneBottomSheet?.milestoneID){ + when (bottomSheetData?.milestoneID) { YOU_HAVE_WON_BOTTOMSHEET -> { milestoneTicketUrl?.greenTicketUrl?.iconUrl.orEmpty() } @@ -926,37 +888,45 @@ fun MilestoneBottomSheet( Column( verticalArrangement = Arrangement.Top, horizontalAlignment = Alignment.CenterHorizontally, - modifier = Modifier.fillMaxHeight()) { + modifier = Modifier.fillMaxHeight() + ) { Text( - milestoneBottomSheet?.index.toString(), + bottomSheetData?.dataMap?.get(INDEX).toString(), color = colorResource(id = DesignR.color.color_1F002A), modifier = Modifier .padding(top = 3.dp) .width(24.dp) .height(18.dp), fontFamily = ttComposeFontFamily, + lineHeight = 18.sp, fontWeight = getFontWeight(FontWeightEnum.TT_SEMI_BOLD), fontSize = 12.sp, textAlign = TextAlign.Center ) val annotatedString = buildAnnotatedString { - withStyle(style = SpanStyle( - fontFamily = ttComposeFontFamily, - fontWeight = getFontWeight(FontWeightEnum.TT_SEMI_BOLD), - fontSize = 15.sp, - ) + withStyle( + style = SpanStyle( + fontFamily = ttComposeFontFamily, + fontWeight = getFontWeight(FontWeightEnum.TT_SEMI_BOLD), + fontSize = 15.sp, + ) ) { - append("${milestoneBottomSheet?.coinsValue?.let { - formatIndianNumericAbbreviation( - it - ) - }}\n") + append( + "+${ + bottomSheetData?.dataMap?.get(COINS_VALUE).toString().let { + formatIndianNumericAbbreviation( + it.toLong() + ) + } + }\n" + ) } - withStyle(style = SpanStyle( - fontFamily = ttComposeFontFamily, - fontWeight = getFontWeight(FontWeightEnum.TT_REGULAR), - fontSize = 15.sp - ) + withStyle( + style = SpanStyle( + fontFamily = ttComposeFontFamily, + fontWeight = getFontWeight(FontWeightEnum.TT_REGULAR), + fontSize = 15.sp + ) ) { append(stringResource(R.string.coins)) } @@ -969,7 +939,6 @@ fun MilestoneBottomSheet( lineHeight = 15.sp ) } - } } } diff --git a/navi-rr/src/main/java/com/navi/rr/utils/Constants.kt b/navi-rr/src/main/java/com/navi/rr/utils/Constants.kt index 2f3e597d1b..769cf0e8cc 100644 --- a/navi-rr/src/main/java/com/navi/rr/utils/Constants.kt +++ b/navi-rr/src/main/java/com/navi/rr/utils/Constants.kt @@ -69,11 +69,15 @@ object Constants { const val SCRATCH_STARTED="scratchStarted" const val BACK="BACK" const val LOTTIE="Lottie" - - - - - + const val REFERRAL_COMPLETED = "referralCompleted" + const val TOTAL_REFERRALS_COMPLETED = "totalReferralsCompleted" + const val REFERRALS_TO_COMPLETE_FOR_REWARD = "referralsToCompleteForReward" + const val LAST_INDEX = "lastIndex" + const val INDEX = "index" + const val INDEX_TH = "indexTh" + const val DEFAULT_REWARD_AMOUNT = "defaultRewardAmount" + const val COINS_VALUE = "coinsValue" + const val CAPITAL_S = "S" const val CLOSE_BOTTOM_SHEET = "closeBottomSheet" const val TIMER_ENDS = "timerEnds" const val CARD_ID = "card_id" @@ -122,6 +126,7 @@ object RefereeTrackerConstants { const val SUMMARY_ITEM = "SUMMARY_ITEM" const val REFEREE_TRACKER_ACTION_STATUS_KEY = "actionStatus" const val REFEREE_TRACKER_STATUS_TITLE_KEY = "text" + const val MILESTONE_BOTTOM_SHEET_DATA_MAP = "milestoneBottomSheetDataMap" } object ReferralHomeConstants {