TP-59976 | Sohan Reddy | Milestones UAT fixes (#10064)
This commit is contained in:
committed by
GitHub
parent
469287fef7
commit
25d0c84259
@@ -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<String, Any?>,
|
||||
val milestoneID: String,
|
||||
)
|
||||
|
||||
data class MilestoneBottomSheetDataMap (
|
||||
val key: String? = null,
|
||||
var value: Any? = null,
|
||||
var pluralValue: String? = null,
|
||||
val pluralCheck: String? = null
|
||||
)
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
)
|
||||
},
|
||||
|
||||
@@ -47,4 +47,16 @@ fun getMilestoneGratificationAnimationPaddingValues(scaleValue: Float): Float {
|
||||
|
||||
fun getMilestoneGratificationAnimationSpec(scaleValue: Float): AnimationSpec<Float> {
|
||||
return if(scaleValue!= 0.5f) spring<Float>(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
|
||||
}
|
||||
}
|
||||
@@ -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<String, WidgetModelDefinition<UiTronResponse>> = remember {
|
||||
mutableMapOf()
|
||||
}
|
||||
|
||||
val systemUiController = rememberSystemUiController()
|
||||
val listState = rememberLazyListState()
|
||||
var bottomSheetList: Map<String, ScreenStructure> = remember { emptyMap() }
|
||||
var jsonMetaData: Map<String, Any?>? = remember { emptyMap() }
|
||||
val dataMapType: Type = remember {
|
||||
object : TypeToken<List<MilestoneBottomSheetDataMap?>?>() {}.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<String, String>()
|
||||
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<MilestoneBottomSheetDataMap> = 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<UiTronResponse>?,
|
||||
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<UiTronResponse>?,
|
||||
referralHomeVM: ReferralHomeVM
|
||||
referralHomeVM: ReferralHomeVM,
|
||||
) {
|
||||
footerData?.let { uiTronFooter ->
|
||||
Column(
|
||||
@@ -833,17 +787,18 @@ fun BottomSheet(
|
||||
@Composable
|
||||
fun MilestoneBottomSheet(
|
||||
referralHomeVM: ReferralHomeVM,
|
||||
bottomSheetData: WidgetModelDefinition<UiTronResponse>,
|
||||
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
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user