NTP-68525 || compose screen name mismatch fix (#16361)

Co-authored-by: Sayed Owais Ali <sayed.owais@navi.com>
This commit is contained in:
Aman S
2025-05-28 16:49:01 +05:30
committed by GitHub
parent 87b5ce19bb
commit 81281180bc
27 changed files with 12 additions and 116 deletions

View File

@@ -26,7 +26,6 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.repeatOnLifecycle
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import androidx.navigation.NavHostController
import com.google.android.play.core.install.model.AppUpdateType.FLEXIBLE import com.google.android.play.core.install.model.AppUpdateType.FLEXIBLE
import com.google.gson.Gson import com.google.gson.Gson
import com.navi.amc.fundbuy.fragments.FundListingFragmentV2 import com.navi.amc.fundbuy.fragments.FundListingFragmentV2
@@ -216,8 +215,6 @@ class HomePageActivity :
@Inject lateinit var permissionsManager: PermissionsManager @Inject lateinit var permissionsManager: PermissionsManager
lateinit var navController: NavHostController
@Inject lateinit var userDataUploadWorkerUseCase: UserDataUploadWorkerUseCase @Inject lateinit var userDataUploadWorkerUseCase: UserDataUploadWorkerUseCase
@Inject lateinit var redirectionUseCase: HomePageRedirectionUseCase @Inject lateinit var redirectionUseCase: HomePageRedirectionUseCase
@@ -1649,11 +1646,6 @@ class HomePageActivity :
} }
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
fun openAppSettings() { fun openAppSettings() {
Intent( Intent(
Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Settings.ACTION_APPLICATION_DETAILS_SETTINGS,

View File

@@ -65,7 +65,6 @@ fun HomePageContentFrameRoot(
val hpStates by homeVM.state.collectAsStateWithLifecycle() val hpStates by homeVM.state.collectAsStateWithLifecycle()
val navController = rememberNavController() val navController = rememberNavController()
activity.initialiseNavController(navController)
val selectedTabId by sharedVM.selectedTabId.collectAsStateWithLifecycle() val selectedTabId by sharedVM.selectedTabId.collectAsStateWithLifecycle()
HandleHomeEffects( HandleHomeEffects(

View File

@@ -58,7 +58,6 @@ open class ApplicationPlatformActivity : SdkHandlingActivity() {
setContent { setContent {
NaviMaterialTheme { NaviMaterialTheme {
navController = rememberNavHostEngine().rememberNavController() navController = rememberNavHostEngine().rememberNavController()
initialiseNavController(navController)
NavContainer( NavContainer(
activity = this@ApplicationPlatformActivity, activity = this@ApplicationPlatformActivity,
navController = navController, navController = navController,
@@ -110,11 +109,6 @@ open class ApplicationPlatformActivity : SdkHandlingActivity() {
intent?.getStringExtra(APP_PLATFORM_APPLICATION_TYPE).orEmpty() intent?.getStringExtra(APP_PLATFORM_APPLICATION_TYPE).orEmpty()
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
override fun onBackPressed() { override fun onBackPressed() {
if (isBlockInteractability()) return if (isBlockInteractability()) return
super.onBackPressed() super.onBackPressed()

View File

@@ -10,7 +10,6 @@ package com.navi.amc.common.activity
import android.os.Bundle import android.os.Bundle
import android.os.Parcelable import android.os.Parcelable
import android.view.MotionEvent import android.view.MotionEvent
import androidx.navigation.NavHostController
import com.navi.amc.common.fragment.HelpBottomSheet import com.navi.amc.common.fragment.HelpBottomSheet
import com.navi.amc.utils.AmcAnalytics import com.navi.amc.utils.AmcAnalytics
import com.navi.amc.utils.TempStorageHelper import com.navi.amc.utils.TempStorageHelper
@@ -187,6 +186,4 @@ abstract class AmcBaseActivity : BaseActivity() {
CommonR.anim.parallax_slide_out_right, CommonR.anim.parallax_slide_out_right,
) )
} }
override fun initialiseNavController(navHostController: NavHostController) {}
} }

View File

@@ -11,7 +11,6 @@ import android.graphics.Color
import android.os.Bundle import android.os.Bundle
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.viewModels
import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.LocalOverscrollConfiguration import androidx.compose.foundation.LocalOverscrollConfiguration
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
@@ -43,14 +42,11 @@ class AmcComposeActivity : AmcBaseActivity(), BackButtonHandler {
private val onBackPressedCallback = private val onBackPressedCallback =
object : OnBackPressedCallback(true) { object : OnBackPressedCallback(true) {
// review this
override fun handleOnBackPressed() { override fun handleOnBackPressed() {
handleBackPress() handleBackPress()
} }
} }
private val amcComposeViewModel by viewModels<AmcComposeViewModel>()
@OptIn(ExperimentalFoundationApi::class) @OptIn(ExperimentalFoundationApi::class)
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
screenEnterTransition() screenEnterTransition()
@@ -81,9 +77,4 @@ class AmcComposeActivity : AmcBaseActivity(), BackButtonHandler {
fun onHelpClick(helpBottomSheetData: HelpBottomSheetData?, bundle: Bundle?) { fun onHelpClick(helpBottomSheetData: HelpBottomSheetData?, bundle: Bundle?) {
openHelpInfo(helpBottomSheetData, bundle) openHelpInfo(helpBottomSheetData, bundle)
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
} }

View File

@@ -42,7 +42,7 @@ fun AmcMainScreen(amcComposeActivity: AmcComposeActivity) {
rememberModalBottomSheetState(initialValue = ModalBottomSheetValue.Hidden), rememberModalBottomSheetState(initialValue = ModalBottomSheetValue.Hidden),
sheetContent = {}, sheetContent = {},
) { ) {
amcComposeActivity.initialiseNavController(navController) amcComposeActivity.navController = navController
DestinationsNavHost( DestinationsNavHost(
startRoute = startRoute =
NaviAmcRouter.getStartRoute( NaviAmcRouter.getStartRoute(

View File

@@ -116,9 +116,4 @@ class NaviBbpsActivity : BaseActivity(), BackButtonHandler {
super.finish() super.finish()
screenExitTransition() screenExitTransition()
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
} }

View File

@@ -83,7 +83,7 @@ fun NaviBbpsMainScreen(
rememberModalBottomSheetState(initialValue = ModalBottomSheetValue.Hidden), rememberModalBottomSheetState(initialValue = ModalBottomSheetValue.Hidden),
sheetContent = {}, sheetContent = {},
) { ) {
naviBbpsActivity.initialiseNavController(navController) naviBbpsActivity.navController = navController
DestinationsNavHost( DestinationsNavHost(
startRoute = startRoute =
NaviBbpsRouter.getStartRoute( NaviBbpsRouter.getStartRoute(

View File

@@ -8,7 +8,6 @@
package com.navi.chat.base package com.navi.chat.base
import android.view.View import android.view.View
import androidx.navigation.NavHostController
import com.navi.base.deeplink.DeepLinkManager import com.navi.base.deeplink.DeepLinkManager
import com.navi.base.deeplink.util.DeeplinkConstants.HOME import com.navi.base.deeplink.util.DeeplinkConstants.HOME
import com.navi.base.model.CtaData import com.navi.base.model.CtaData
@@ -180,8 +179,6 @@ abstract class ChatBaseActivity : NaviCoreActivity(), LoaderState, ErrorState {
override val moduleName: ModuleNameV2 override val moduleName: ModuleNameV2
get() = ModuleNameV2.CHAT get() = ModuleNameV2.CHAT
override fun initialiseNavController(navHostController: NavHostController) {}
companion object { companion object {
private const val TAG = "CHAT_BASE_ACTIVITY" private const val TAG = "CHAT_BASE_ACTIVITY"
} }

View File

@@ -14,7 +14,6 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.navigation.NavHostController
import com.navi.base.deeplink.util.DeeplinkConstants import com.navi.base.deeplink.util.DeeplinkConstants
import com.navi.base.model.CtaData import com.navi.base.model.CtaData
import com.navi.coin.navigator.navigators.CoinNavigator import com.navi.coin.navigator.navigators.CoinNavigator
@@ -66,9 +65,4 @@ abstract class CoinBaseActivity :
startExitAnimation() startExitAnimation()
} }
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
} }

View File

@@ -23,7 +23,7 @@ import com.ramcosta.composedestinations.spec.Route
@OptIn(ExperimentalAnimationApi::class) @OptIn(ExperimentalAnimationApi::class)
@Composable @Composable
fun CoinDestinationNavHost(activity: CoinBaseActivity, startRoute: Route?) { fun CoinDestinationNavHost(activity: CoinBaseActivity, startRoute: Route?) {
activity.initialiseNavController(rememberNavController()) activity.navController = rememberNavController()
DestinationsNavHost( DestinationsNavHost(
navGraph = NavGraphs.root, navGraph = NavGraphs.root,
startRoute = startRoute ?: NavGraphs.root.startRoute, startRoute = startRoute ?: NavGraphs.root.startRoute,

View File

@@ -27,7 +27,6 @@ import androidx.fragment.app.FragmentManager
import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavHostController
import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.google.android.play.core.appupdate.AppUpdateInfo import com.google.android.play.core.appupdate.AppUpdateInfo
import com.google.android.play.core.appupdate.AppUpdateManager import com.google.android.play.core.appupdate.AppUpdateManager
@@ -1139,6 +1138,4 @@ abstract class BaseActivity :
open fun shouldDismissKeyboardOnFocusChange(): Boolean = true open fun shouldDismissKeyboardOnFocusChange(): Boolean = true
fun getNaviLocationManager() = locationManager fun getNaviLocationManager() = locationManager
override fun initialiseNavController(navHostController: NavHostController) {}
} }

View File

@@ -10,7 +10,6 @@ package com.navi.common.ui.activity
import android.os.Bundle import android.os.Bundle
import android.view.MotionEvent import android.view.MotionEvent
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.NavHostController
import com.navi.adverse.sdk.utils.AdverseTrackEvent import com.navi.adverse.sdk.utils.AdverseTrackEvent
import com.navi.analytics.utils.AlfredFacade import com.navi.analytics.utils.AlfredFacade
import com.navi.analytics.utils.NaviTrackEvent import com.navi.analytics.utils.NaviTrackEvent
@@ -18,7 +17,6 @@ import com.navi.analytics.utils.SCREEN_NAME_CAMEL_CASE
import com.navi.common.checkmate.core.CheckMateLatencyMapper import com.navi.common.checkmate.core.CheckMateLatencyMapper
import com.navi.common.checkmate.core.CheckMateMapper import com.navi.common.checkmate.core.CheckMateMapper
import com.navi.common.model.ModuleNameV2 import com.navi.common.model.ModuleNameV2
import com.navi.common.utils.CommonUtils.formatComposeScreenName
import com.navi.common.utils.Constants.ADVERSE import com.navi.common.utils.Constants.ADVERSE
import com.navi.common.utils.Constants.ADVERTISEMENT.ADVERSE_CTA_PAGE_OPENED_EVENT import com.navi.common.utils.Constants.ADVERTISEMENT.ADVERSE_CTA_PAGE_OPENED_EVENT
import com.navi.common.utils.Constants.PAGE_LAUNCH_SOURCE import com.navi.common.utils.Constants.PAGE_LAUNCH_SOURCE
@@ -29,8 +27,6 @@ abstract class NaviCoreActivity : AppCompatActivity(), CheckMateMapper by CheckM
abstract val moduleName: ModuleNameV2 abstract val moduleName: ModuleNameV2
abstract fun initialiseNavController(navHostController: NavHostController)
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
recordScreenLandTime(screenName) recordScreenLandTime(screenName)
@@ -64,17 +60,4 @@ abstract class NaviCoreActivity : AppCompatActivity(), CheckMateMapper by CheckM
) )
return super.dispatchTouchEvent(ev) return super.dispatchTouchEvent(ev)
} }
protected open fun onNavControllerSet(baseNavController: NavHostController) {
baseNavController.addOnDestinationChangedListener { _, destination, _ ->
destination.route?.let { originalRoute ->
originalRoute.formatComposeScreenName(moduleName.name).let { composeScreenName ->
NaviTrackEvent.setForegroundScreenAndVertical(
screen = composeScreenName,
vertical = moduleName.name,
)
}
}
}
}
} }

View File

@@ -102,9 +102,4 @@ class CycsActivity : BaseActivity(), BackButtonHandler {
permissionsManager.hasPermission(Manifest.permission.POST_NOTIFICATIONS) permissionsManager.hasPermission(Manifest.permission.POST_NOTIFICATIONS)
} else true } else true
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
} }

View File

@@ -27,8 +27,7 @@ private const val TRANSITION_DURATION_IN_MILLIS = 400
@Composable @Composable
fun CycsMainScreen(cycsActivity: CycsActivity) { fun CycsMainScreen(cycsActivity: CycsActivity) {
val navController = rememberNavController() val navController = rememberNavController()
cycsActivity.initialiseNavController(navController) cycsActivity.navController = navController
DestinationsNavHost( DestinationsNavHost(
modifier = Modifier.fillMaxSize(), modifier = Modifier.fillMaxSize(),
startRoute = LandingScreenDestination, startRoute = LandingScreenDestination,

View File

@@ -12,7 +12,6 @@ import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.navigation.NavHostController
import com.navi.base.utils.ConnectivityObserver import com.navi.base.utils.ConnectivityObserver
import com.navi.insurance.R import com.navi.insurance.R
import com.navi.insurance.analytics.NaviInsuranceAnalytics import com.navi.insurance.analytics.NaviInsuranceAnalytics
@@ -142,6 +141,4 @@ abstract class GiBaseActivity : BaseActivity(), ActionHandler.ActionOwner {
override fun getFragManager(): FragmentManager = supportFragmentManager override fun getFragManager(): FragmentManager = supportFragmentManager
override fun getContainerId(): Int = R.id.container override fun getContainerId(): Int = R.id.container
override fun initialiseNavController(navHostController: NavHostController) {}
} }

View File

@@ -209,7 +209,7 @@ abstract class BaseActivity : NaviCoreActivity() {
timeStamp = System.currentTimeMillis() timeStamp = System.currentTimeMillis()
} }
override fun onNavControllerSet(baseNavController: NavHostController) { fun onNavControllerSet(baseNavController: NavHostController) {
baseNavController.addOnDestinationChangedListener { _, destination, _ -> baseNavController.addOnDestinationChangedListener { _, destination, _ ->
destination.route?.let { originalRoute -> destination.route?.let { originalRoute ->
originalRoute.formatComposeScreenName(moduleName.name).let { composeScreenName -> originalRoute.formatComposeScreenName(moduleName.name).let { composeScreenName ->
@@ -224,7 +224,6 @@ abstract class BaseActivity : NaviCoreActivity() {
} }
} }
} }
super.onNavControllerSet(baseNavController)
} }
private fun showLockScreenDialog() { private fun showLockScreenDialog() {
@@ -513,6 +512,4 @@ abstract class BaseActivity : NaviCoreActivity() {
} }
return false return false
} }
override fun initialiseNavController(navHostController: NavHostController) {}
} }

View File

@@ -49,7 +49,7 @@ class PolicyReviewActivity : GiBaseActivity(), WidgetCallback {
view = NaviErrorPageView(this) view = NaviErrorPageView(this)
setContent { setContent {
navController = rememberNavController() navController = rememberNavController()
initialiseNavController(navController) onNavControllerSet(navController)
GiMaterialTheme { GiMaterialTheme {
DestinationsNavHost( DestinationsNavHost(
navGraph = PolicyReviewNavGraph.root, navGraph = PolicyReviewNavGraph.root,
@@ -125,11 +125,6 @@ class PolicyReviewActivity : GiBaseActivity(), WidgetCallback {
} }
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
override fun onBackPressed() { override fun onBackPressed() {
if (::navController.isInitialized && navController.previousBackStackEntry != null) { if (::navController.isInitialized && navController.previousBackStackEntry != null) {
navController.popBackStack() navController.popBackStack()

View File

@@ -258,9 +258,4 @@ class NaviPayActivity : BaseActivity() {
super.onDestroy() super.onDestroy()
NaviPayEventBus.resetEventBus() NaviPayEventBus.resetEventBus()
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
} }

View File

@@ -128,7 +128,7 @@ fun NaviPayMainScreen(
ModalBottomSheetLayout( ModalBottomSheetLayout(
bottomSheetNavigator = bottomSheetNavigator, bottomSheetNavigator = bottomSheetNavigator,
content = { content = {
naviPayActivity.initialiseNavController(navController) naviPayActivity.navController = navController
DestinationsNavHost( DestinationsNavHost(
startRoute = customerStatusRoute ?: NavGraphs.root.startRoute, startRoute = customerStatusRoute ?: NavGraphs.root.startRoute,
navGraph = NavGraphs.root, navGraph = NavGraphs.root,

View File

@@ -166,9 +166,4 @@ class NaviPayOnboardingActivity : BaseActivity(), BackButtonHandler {
} }
super.finish() super.finish()
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
} }

View File

@@ -29,7 +29,7 @@ fun NaviPayOnboardingMainScreen(naviPayOnboardingActivity: NaviPayOnboardingActi
ModalBottomSheetLayout( ModalBottomSheetLayout(
bottomSheetNavigator = bottomSheetNavigator, bottomSheetNavigator = bottomSheetNavigator,
content = { content = {
naviPayOnboardingActivity.initialiseNavController(navController) naviPayOnboardingActivity.navController = navController
DestinationsNavHost( DestinationsNavHost(
navGraph = OnboardingNavGraph.root, navGraph = OnboardingNavGraph.root,
startRoute = NaviPayOnboardingScreenDestination, startRoute = NaviPayOnboardingScreenDestination,

View File

@@ -150,11 +150,6 @@ class NaviPaymentActivity : BaseActivity(), IPaymentExternalSdk by PaymentExtern
} }
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
override fun onDestroy() { override fun onDestroy() {
eventHandler.naviPaymentsEventBus.resetEventBus() eventHandler.naviPaymentsEventBus.resetEventBus()
super.onDestroy() super.onDestroy()

View File

@@ -78,7 +78,7 @@ class WebPaymentActivity : BaseActivity() {
val bottomSheetNavigator = rememberBottomSheetNavigator() val bottomSheetNavigator = rememberBottomSheetNavigator()
val navController = val navController =
rememberNavController().apply { this.navigatorProvider += bottomSheetNavigator } rememberNavController().apply { this.navigatorProvider += bottomSheetNavigator }
initialiseNavController(navController) this.navController = navController
Column { Column {
DestinationsNavHost( DestinationsNavHost(
@@ -98,11 +98,6 @@ class WebPaymentActivity : BaseActivity() {
webPaymentDataProvider.clear() webPaymentDataProvider.clear()
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
override val screenName: String override val screenName: String
get() = WEB_PAYMENT_ACTIVITY get() = WEB_PAYMENT_ACTIVITY

View File

@@ -53,7 +53,7 @@ fun NaviPaymentMainScreen(
ModalBottomSheetLayout( ModalBottomSheetLayout(
bottomSheetNavigator = bottomSheetNavigator, bottomSheetNavigator = bottomSheetNavigator,
content = { content = {
activity.initialiseNavController(navController) activity.navController = navController
DestinationsNavHost( DestinationsNavHost(
modifier = modifier =
Modifier.background( Modifier.background(

View File

@@ -1,6 +1,6 @@
/* /*
* *
* * Copyright © 2024 by Navi Technologies Limited * * Copyright © 2024-2025 by Navi Technologies Limited
* * All rights reserved. Strictly confidential * * All rights reserved. Strictly confidential
* *
*/ */
@@ -14,7 +14,6 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.navigation.NavHostController
import com.navi.common.navigation.NavHostControlOwnerManager import com.navi.common.navigation.NavHostControlOwnerManager
import com.navi.common.navigation.NavHostControllerOwner import com.navi.common.navigation.NavHostControllerOwner
import com.navi.common.ui.activity.BaseActivity import com.navi.common.ui.activity.BaseActivity
@@ -52,9 +51,4 @@ abstract class RRBaseActivity() :
super.finish() super.finish()
startExitAnimation() startExitAnimation()
} }
override fun initialiseNavController(navHostController: NavHostController) {
this.navController = navHostController
onNavControllerSet(navHostController)
}
} }

View File

@@ -22,7 +22,7 @@ import com.ramcosta.composedestinations.spec.Route
@OptIn(ExperimentalAnimationApi::class) @OptIn(ExperimentalAnimationApi::class)
@Composable @Composable
fun ReferralDestinationNavHost(referralActivity: ReferralHomeActivity, startRoute: Route?) { fun ReferralDestinationNavHost(referralActivity: ReferralHomeActivity, startRoute: Route?) {
referralActivity.initialiseNavController(rememberNavController()) referralActivity.navController = rememberNavController()
DestinationsNavHost( DestinationsNavHost(
startRoute = startRoute ?: NavGraphs.root.startRoute, startRoute = startRoute ?: NavGraphs.root.startRoute,
navGraph = NavGraphs.root, navGraph = NavGraphs.root,