diff --git a/android/app/src/main/java/com/naviapp/home/dashboard/models/response/InvestmentTabResponse.kt b/android/app/src/main/java/com/naviapp/home/dashboard/models/response/InvestmentTabResponse.kt index a812df1fef..180d8f9de5 100644 --- a/android/app/src/main/java/com/naviapp/home/dashboard/models/response/InvestmentTabResponse.kt +++ b/android/app/src/main/java/com/naviapp/home/dashboard/models/response/InvestmentTabResponse.kt @@ -20,4 +20,5 @@ data class InvestmentTabResponse( @SerializedName("floatingButtonData") var floatingButtonData: FloatingButtonData? = null, @SerializedName("bottomStickyNudgeData") var bottomStickyNudgeData: InvestmentTabNudgeData? = null, + @SerializedName("isInvestmentTabDowntime") var isInvestmentTabDowntime: Boolean? = null, ) diff --git a/android/app/src/main/java/com/naviapp/home/dashboard/viewmodels/InvestmentsVm.kt b/android/app/src/main/java/com/naviapp/home/dashboard/viewmodels/InvestmentsVm.kt index 5ef2becfab..fcfe24420f 100644 --- a/android/app/src/main/java/com/naviapp/home/dashboard/viewmodels/InvestmentsVm.kt +++ b/android/app/src/main/java/com/naviapp/home/dashboard/viewmodels/InvestmentsVm.kt @@ -27,6 +27,7 @@ import com.navi.base.model.ActionData import com.navi.base.model.CtaData import com.navi.base.utils.isNotNull import com.navi.base.utils.orFalse +import com.navi.common.checkmate.core.CheckMateManager import com.navi.common.checkmate.model.MetricInfo import com.navi.common.model.GenericBottomSheetData import com.navi.common.model.ModuleNameV2 @@ -271,6 +272,19 @@ constructor( NaviSharedDbKeys.INVESTMENT_TAB.keyName, ) } + + if (data.isInvestmentTabDowntime == true) { + CheckMateManager.logAppErrorEvent( + metricInfo = + MetricInfo.AMCMetric( + screen = screenName, + isNae = { true }, + ), + errorTitle = INVESTMENT_TAB_DOWNTIME_TITLE, + errorDes = INVESTMENT_TAB_DOWNTIME_DESC, + errorCode = INVESTMENT_TAB_DOWNTIME_TITLE, + ) + } } } else { val errorUnifiedResponse = @@ -433,4 +447,9 @@ constructor( data class Error(val error: GenericErrorResponse? = null) : InvestmentsTabScreenState } + + companion object { + const val INVESTMENT_TAB_DOWNTIME_TITLE = "Investment Tab Downtime" + const val INVESTMENT_TAB_DOWNTIME_DESC = "Unable to load investor profile or user portfolio" + } } diff --git a/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/common/ui/ApplicationPlatformActivity.kt b/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/common/ui/ApplicationPlatformActivity.kt index 964e772ab9..92b56f7449 100644 --- a/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/common/ui/ApplicationPlatformActivity.kt +++ b/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/common/ui/ApplicationPlatformActivity.kt @@ -22,6 +22,7 @@ import com.navi.ap.common.viewmodel.ApSharedVM import com.navi.ap.common.viewmodel.ApplicationPlatformVM import com.navi.ap.navigator.Navigator import com.navi.ap.utils.constants.COINS +import com.navi.ap.utils.getModuleNameForApplicationType import com.navi.common.model.ModuleNameV2 import com.navi.common.utils.Constants.APP_PLATFORM_APPLICATION_TYPE import com.navi.design.theme.NaviMaterialTheme @@ -98,7 +99,7 @@ open class ApplicationPlatformActivity : SdkHandlingActivity() { get() = ApplicationPlatformActivity::javaClass.name override val moduleName: ModuleNameV2 - get() = ModuleNameV2.AP + get() = getModuleNameForApplicationType(applicationType.value) override fun onDestroy() { super.onDestroy() diff --git a/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/network/retrofit/service/APRetrofitService.kt b/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/network/retrofit/service/APRetrofitService.kt index d122ad9a13..9c5481afb7 100644 --- a/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/network/retrofit/service/APRetrofitService.kt +++ b/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/network/retrofit/service/APRetrofitService.kt @@ -47,6 +47,7 @@ interface APRetrofitService : CoinsLambdaService, GenericLambdaService, Investme @Header("X-Platform") applicationHash: String = OS_ANDROID, ): Response> + @RetryPolicy @PATCH("/arc-warden/api/v3/application/{applicationId}/fill") suspend fun fillApplication( @Path("applicationId") applicationId: String, diff --git a/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/utils/Utils.kt b/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/utils/Utils.kt index 0fb18d39cc..81fdb2a273 100644 --- a/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/utils/Utils.kt +++ b/android/application-platform/navi-ap/src/main/kotlin/com/navi/ap/utils/Utils.kt @@ -46,6 +46,7 @@ import com.navi.ap.utils.extractor.filterEntries import com.navi.base.AppServiceManager import com.navi.base.utils.isNotNull import com.navi.common.checkmate.model.MetricInfo +import com.navi.common.model.ModuleNameV2 import com.navi.common.network.models.RepoResult import com.navi.common.uitron.model.action.FillApiData import com.navi.common.uitron.model.action.SourceType @@ -363,6 +364,22 @@ fun getMetricInfoForApplicationType( } } +fun getModuleNameForApplicationType(applicationType: String): ModuleNameV2 { + return when (applicationType) { + ApplicationType.HPC.name -> { + ModuleNameV2.App + } + + ApplicationType.AMC_ONBOARDING.name -> { + ModuleNameV2.AMC + } + + else -> { + ModuleNameV2.AP + } + } +} + fun Modifier.getGenericModifier(widgetProperties: BaseProperty? = null): Modifier { var modifier = this widgetProperties?.let { properties -> diff --git a/android/navi-amc/src/main/java/com/navi/amc/fundbuy/fragments/FundListingFragmentV2.kt b/android/navi-amc/src/main/java/com/navi/amc/fundbuy/fragments/FundListingFragmentV2.kt index 246836d34f..07f1dd2634 100644 --- a/android/navi-amc/src/main/java/com/navi/amc/fundbuy/fragments/FundListingFragmentV2.kt +++ b/android/navi-amc/src/main/java/com/navi/amc/fundbuy/fragments/FundListingFragmentV2.kt @@ -716,6 +716,9 @@ class FundListingFragmentV2 : AmcBaseFragment(), WidgetCallback { } private fun setFilterItemList(list: List) { + if (viewModel.isEligibleForThemeChange == true) { + viewModel.isQuickFilterEnabled = false + } viewModel.setSelectedFilterItems(list, screenName) }