NTP-42969 | Gold first investment reward migration (#15248)
Co-authored-by: Varun Jain <varun.jain@navi.com>
This commit is contained in:
@@ -67,6 +67,9 @@ import com.navi.gold.util.CommonUtils.updateColorsBasedOnPosition
|
||||
import com.navi.gold.util.Constants
|
||||
import com.navi.gold.util.Constants.CSAT_POPUP_DELAY
|
||||
import com.navi.gold.util.Constants.CSAT_POPUP_DELAY_TIME
|
||||
import com.navi.gold.util.Constants.GOLD_FIRST_INVESTMENT
|
||||
import com.navi.gold.util.Constants.NAVI_UPI_TXN
|
||||
import com.navi.gold.util.Constants.NONE
|
||||
import com.navi.gold.util.Constants.REDIRECTION_SOURCE
|
||||
import com.navi.gold.util.Constants.SHOW_REWARD_GRATIFICATION
|
||||
import com.navi.gold.util.Constants.TYPE
|
||||
@@ -256,19 +259,7 @@ class DigitalGoldTransactionActivity : BaseActivity(), WidgetCallback, CsatCompl
|
||||
}
|
||||
?: run {
|
||||
setPageContent(widgetResponse)
|
||||
|
||||
widgetResponse.extraData?.screenDefinition?.let { screenDefinition ->
|
||||
val gratificationFragment =
|
||||
GratificationFragment.getInstance(
|
||||
gratificationData = Gson().toJson(screenDefinition),
|
||||
screenName = screenName,
|
||||
dialogDismissListener = {
|
||||
csatPopupDelay = 500
|
||||
startCsat(csatPopupDelay)
|
||||
},
|
||||
)
|
||||
safelyOpenFragment(gratificationFragment, GratificationFragment.TAG)
|
||||
} ?: run { handleScratchCardResponse(widgetResponse) }
|
||||
handleScratchCardResponse(widgetResponse)
|
||||
}
|
||||
|
||||
widgetResponse.extraData?.launchToastInfo?.contentWidget?.let { toastWidgets ->
|
||||
@@ -291,21 +282,38 @@ class DigitalGoldTransactionActivity : BaseActivity(), WidgetCallback, CsatCompl
|
||||
|
||||
viewModel.scratchCardResponse.observe(this@DigitalGoldTransactionActivity) {
|
||||
scratchCardResponse ->
|
||||
scratchCardSharedVm.setScratchCardScreenData(scratchCardResponse.data)
|
||||
scratchCardResponse?.data?.scratchCardResponse?.rewardForm?.let { rewardForm ->
|
||||
when (rewardForm) {
|
||||
NONE -> {
|
||||
scratchCardSharedVm.setScratchCardScreenData(scratchCardResponse.data)
|
||||
|
||||
val scratchCardFragment =
|
||||
ScratchCardFragment.getInstance(
|
||||
screenName = screenName,
|
||||
dialogDismissListener = { startCsat(CSAT_POPUP_DELAY_TIME) },
|
||||
)
|
||||
val scratchCardFragment =
|
||||
ScratchCardFragment.getInstance(
|
||||
screenName = screenName,
|
||||
dialogDismissListener = { startCsat(CSAT_POPUP_DELAY_TIME) },
|
||||
)
|
||||
|
||||
safelyOpenFragment(scratchCardFragment, ScratchCardFragment.TAG)
|
||||
safelyOpenFragment(scratchCardFragment, ScratchCardFragment.TAG)
|
||||
}
|
||||
else -> {
|
||||
val gratificationFragment =
|
||||
GratificationFragment.getInstance(
|
||||
gratificationData =
|
||||
Gson().toJson(scratchCardResponse.data.screenDefinition),
|
||||
screenName = screenName,
|
||||
dialogDismissListener = { startCsat(CSAT_POPUP_DELAY_TIME) },
|
||||
)
|
||||
|
||||
safelyOpenFragment(gratificationFragment, GratificationFragment.TAG)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleScratchCardResponse(widgetResponse: WidgetResponse) {
|
||||
if (widgetResponse.extraData?.isScratchCardEnabled.orFalse()) {
|
||||
if (widgetResponse.extraData?.reward?.isScratchCardEnabled.orFalse()) {
|
||||
fetchScratchCardData()
|
||||
} else {
|
||||
startCsat(CSAT_POPUP_DELAY_TIME)
|
||||
@@ -313,9 +321,29 @@ class DigitalGoldTransactionActivity : BaseActivity(), WidgetCallback, CsatCompl
|
||||
}
|
||||
|
||||
private fun fetchScratchCardData() {
|
||||
intent.getStringExtra(UPI_REQUEST_ID)?.let {
|
||||
viewModel.fetchScratchCardData(naviUpiRequestId = it, screenName = screenName)
|
||||
intent.removeExtra(UPI_REQUEST_ID)
|
||||
|
||||
viewModel.digitalGoldTransactionWidgets.value?.extraData?.reward?.let { rewardData ->
|
||||
val rewardEventId =
|
||||
when (rewardData.scratchCardRewardType) {
|
||||
GOLD_FIRST_INVESTMENT -> {
|
||||
rewardData.rewardEventId
|
||||
}
|
||||
NAVI_UPI_TXN -> {
|
||||
intent.getStringExtra(UPI_REQUEST_ID)?.let { rewardEventId ->
|
||||
intent.removeExtra(UPI_REQUEST_ID)
|
||||
rewardEventId
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
null
|
||||
}
|
||||
}
|
||||
rewardEventId?.let {
|
||||
viewModel.fetchScratchCardOrGratificationData(
|
||||
naviUpiRequestId = rewardEventId,
|
||||
screenName = screenName,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -83,4 +83,8 @@ object Constants {
|
||||
const val DIGITAL_GOLD_PAYMENT = "DIGITAL_GOLD_PAYMENT"
|
||||
const val GOLD_OFFER_BOTTOM_SHEET = "GOLD_OFFER_BOTTOM_SHEET"
|
||||
const val SHOW_OFFER_BOTTOMSHEET = "SHOW_OFFER_BOTTOMSHEET"
|
||||
const val SCRATCH_CARD = "SCRATCH_CARD"
|
||||
const val NONE = "NONE"
|
||||
const val GOLD_FIRST_INVESTMENT = "GOLD_FIRST_INVESTMENT"
|
||||
const val NAVI_UPI_TXN = "NAVI_UPI_TXN"
|
||||
}
|
||||
|
||||
@@ -192,7 +192,7 @@ constructor(
|
||||
this.isAutoClickConsumed = true
|
||||
}
|
||||
|
||||
fun fetchScratchCardData(naviUpiRequestId: String, screenName: String) {
|
||||
fun fetchScratchCardOrGratificationData(naviUpiRequestId: String, screenName: String) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
scratchCardNudgeHelper
|
||||
.getGratification(requestId = naviUpiRequestId, screenName = screenName)
|
||||
|
||||
Reference in New Issue
Block a user