Merge pull request #4593 from medici/home_page_events

add events on home page
This commit is contained in:
Abhinav Gupta
2022-12-08 21:10:07 +05:30
committed by GitHub Enterprise
2 changed files with 52 additions and 14 deletions

View File

@@ -2176,6 +2176,34 @@ class NaviAnalytics private constructor() {
fun onStoriesIconDisplayed() =
NaviTrackEvent.trackEvent("NaviApp_Homepage_StoriesWidget_View")
fun onHomePageCreated() {
NaviTrackEvent.trackEvent(
"G_Homepage_OnCreated",
mapOf(Pair("atTimeStamp", System.currentTimeMillis().toString()))
)
}
fun onHomePageApiCall() {
NaviTrackEvent.trackEvent(
"G_Homepage_Home_Api_Start",
mapOf(Pair("atTimeStamp", System.currentTimeMillis().toString()))
)
}
fun onHomePageApiResponse() {
NaviTrackEvent.trackEvent(
"G_Homepage_Home_Api_End",
mapOf(Pair("atTimeStamp", System.currentTimeMillis().toString()))
)
}
fun onDataDisplayed() {
NaviTrackEvent.trackEvent(
"G_Homepage_Ui_Rendered",
mapOf(Pair("atTimeStamp", System.currentTimeMillis().toString()))
)
}
fun onInAppSharePopupDisplayed() = NaviTrackEvent.trackEvent("in_app_share_popup_shown")
fun onCardViewEvent(widgetId: String?, widgetName: String?, rank: Int) {

View File

@@ -125,6 +125,7 @@ class HomeFragment : BaseFragment(), WidgetCallback, PlayStoreActionListener, Di
showFullScreenError = true,
container = R.id.container
)
naviAnalyticsEventTracker.onHomePageCreated()
initUI()
initListener()
initObservers()
@@ -138,7 +139,7 @@ class HomeFragment : BaseFragment(), WidgetCallback, PlayStoreActionListener, Di
override fun onResume() {
super.onResume()
if (isDataNeedToRefresh) {
fetchCards()
fetchCards(true)
}
}
@@ -159,12 +160,12 @@ class HomeFragment : BaseFragment(), WidgetCallback, PlayStoreActionListener, Di
com.navi.common.utils.Constants.OFFER_VALUE
).orEmpty()
PreferenceManager.setBooleanPreference(Constants.OFFER_VIEWED, true)
viewModel.fetchHomeItems(queryMap, density, connectivityType)
fetchCards(false, queryMap, density, connectivityType)
} ?: kotlin.run {
viewModel.fetchHomeItems()
fetchCards()
}
} else {
viewModel.fetchHomeItems()
fetchCards()
}
}
@@ -198,9 +199,16 @@ class HomeFragment : BaseFragment(), WidgetCallback, PlayStoreActionListener, Di
}
}
private fun fetchCards() {
showLoader()
viewModel.fetchHomeItems()
private fun fetchCards(
showLoader: Boolean = false, queryMap: HashMap<String, String>? = null,
density: String? = null,
connectivityType: String? = null
) {
if (showLoader) {
showLoader()
}
naviAnalyticsEventTracker.onHomePageApiCall()
viewModel.fetchHomeItems(queryMap, density, connectivityType)
}
private fun initUI() {
@@ -211,7 +219,7 @@ class HomeFragment : BaseFragment(), WidgetCallback, PlayStoreActionListener, Di
binding.shimmerLayout.visibility = View.VISIBLE
binding.recycleView.visibility = View.GONE
binding.shimmerLayout.startShimmer()
viewModel.fetchHomeItems()
fetchCards()
fetchStories()
}
@@ -254,6 +262,7 @@ class HomeFragment : BaseFragment(), WidgetCallback, PlayStoreActionListener, Di
}
}
viewModel.homeItems.observe(viewLifecycleOwner) { response ->
naviAnalyticsEventTracker.onHomePageApiResponse()
hideLoader()
binding.shimmerLayout.stopShimmer()
binding.shimmerLayout.visibility = View.GONE
@@ -315,6 +324,7 @@ class HomeFragment : BaseFragment(), WidgetCallback, PlayStoreActionListener, Di
}
}
}
naviAnalyticsEventTracker.onDataDisplayed()
}
viewModel.errorResponse.observe(viewLifecycleOwner) {
binding.shimmerLayout.stopShimmer()
@@ -326,18 +336,18 @@ class HomeFragment : BaseFragment(), WidgetCallback, PlayStoreActionListener, Di
// TODO: update based on the notification mediums - need to re-look into existing
// contracts too
PreferenceManager.setBooleanPreference(WHATSAPP_COMMUNICATION_ENABLED, true)
fetchCards()
fetchCards(true)
}
paymentVM.hidePaymentStatus.observeNonNull(viewLifecycleOwner) { fetchCards() }
paymentVM.hidePaymentStatus.observeNonNull(viewLifecycleOwner) { fetchCards(true) }
ratingVM.ratingData.observeNonNull(viewLifecycleOwner) { fetchCards() }
ratingVM.ratingData.observeNonNull(viewLifecycleOwner) { fetchCards(true) }
val sharedVM = activity?.let { ViewModelProvider(it).get(DashboardSharedVM::class.java) }
sharedVM?.loanClosureToHomeWithDelay?.observeNonNull(this) { fetchCards() }
sharedVM?.loanClosureToHomeWithDelay?.observeNonNull(this) { fetchCards(true) }
sharedVM?.playStoreBannerViewStatus?.observeNonNull(this) { success ->
if (success) fetchCards()
if (success) fetchCards(true)
}
lifecycleScope.launchWhenStarted {
@@ -414,7 +424,7 @@ class HomeFragment : BaseFragment(), WidgetCallback, PlayStoreActionListener, Di
}
override fun handleDialogCancel() {
fetchCards()
fetchCards(true)
}
override fun onPlayStoreRatingSuccess(requestData: RateDataRequest?) {