From ade5b59a569e0306977cdaf14212268f27ba881b Mon Sep 17 00:00:00 2001 From: Satish Prasad Date: Wed, 12 Feb 2020 10:46:47 +0530 Subject: [PATCH] Firebase Analytics Setups (#246) * basic setuop * refactoring --- app/build.gradle | 3 + .../com/navi/analytics/FcmAnalyticsUtil.kt | 58 +++++++++++++++++++ .../java/com/navi/analytics/NaviTrackEvent.kt | 3 + .../main/java/com/navi/common/BaseActivity.kt | 6 ++ 4 files changed, 70 insertions(+) create mode 100644 app/src/main/java/com/navi/analytics/FcmAnalyticsUtil.kt diff --git a/app/build.gradle b/app/build.gradle index 98c6c574d6..24f6e7d369 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -105,6 +105,9 @@ dependencies { implementation 'com.appsflyer:af-android-sdk:5.1.0' implementation 'com.android.installreferrer:installreferrer:1.0' + // Add the Firebase SDK for Google Analytics + implementation 'com.google.firebase:firebase-analytics:17.2.2' + // AndroidJUnitRunner and JUnit Rules androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test:rules:1.0.2' diff --git a/app/src/main/java/com/navi/analytics/FcmAnalyticsUtil.kt b/app/src/main/java/com/navi/analytics/FcmAnalyticsUtil.kt new file mode 100644 index 0000000000..f9107a8f80 --- /dev/null +++ b/app/src/main/java/com/navi/analytics/FcmAnalyticsUtil.kt @@ -0,0 +1,58 @@ +/* + * * + * * Copyright (c) 2020 . All rights reserved @Navi + * + */ + +package com.navi.analytics + +import android.app.Application +import android.os.Bundle +import com.google.firebase.analytics.FirebaseAnalytics +import com.navi.analytics.FcmAnalyticsUtil.Holder.INSTANCE +import com.navi.app.NaviApplication + +class FcmAnalyticsUtil { + + private var firebaseAnalytics: FirebaseAnalytics? = null + + private object Holder { + val INSTANCE = FcmAnalyticsUtil() + } + + fun init(appContext: Application) { + firebaseAnalytics = + FirebaseAnalytics.getInstance(appContext) + } + + val firebaseAnalyticsInstance: FirebaseAnalytics + get() { + try { + if (firebaseAnalytics == null) { + firebaseAnalytics = + FirebaseAnalytics.getInstance(NaviApplication.instance.applicationContext) + } + } catch (e: Exception) { + } + + return firebaseAnalytics!! + } + + fun trackEvent(eventName: String, eventValues: Map?) { + var params: Bundle? = null + eventValues?.let { + params = Bundle() + for ((key, value) in eventValues) { + params?.putString(key, value) + } + } + firebaseAnalytics?.logEvent(eventName, params) + } + + fun setUserId() { + } + + companion object { + val analytics: FcmAnalyticsUtil by lazy { INSTANCE } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/navi/analytics/NaviTrackEvent.kt b/app/src/main/java/com/navi/analytics/NaviTrackEvent.kt index ff39c6f421..542ceb3d7b 100644 --- a/app/src/main/java/com/navi/analytics/NaviTrackEvent.kt +++ b/app/src/main/java/com/navi/analytics/NaviTrackEvent.kt @@ -12,5 +12,8 @@ object NaviTrackEvent { fun appInit(appContext: NaviApplication) { AppsFlyerUtil.init(appContext) + FcmAnalyticsUtil.analytics.init(appContext) } + + } \ No newline at end of file diff --git a/app/src/main/java/com/navi/common/BaseActivity.kt b/app/src/main/java/com/navi/common/BaseActivity.kt index 3422283e4f..fbc69554b6 100644 --- a/app/src/main/java/com/navi/common/BaseActivity.kt +++ b/app/src/main/java/com/navi/common/BaseActivity.kt @@ -13,6 +13,7 @@ import androidx.annotation.LayoutRes import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar import com.navi.R +import com.navi.analytics.FcmAnalyticsUtil import com.navi.common.listeners.ApiCallListener import com.navi.loader.NaviLoader @@ -64,6 +65,11 @@ abstract class BaseActivity : AppCompatActivity(), Toolbar.OnMenuItemClickListen override fun onStart() { super.onStart() + FcmAnalyticsUtil.analytics.firebaseAnalyticsInstance.setCurrentScreen( + this, + screenName, + null + ) } override fun onStop() {