diff --git a/app/src/androidTestDev/java/com/naviapp/TestBase.kt b/app/src/androidTestDev/java/com/naviapp/TestBase.kt index d0b07c99c4..b5e6cbf1b1 100644 --- a/app/src/androidTestDev/java/com/naviapp/TestBase.kt +++ b/app/src/androidTestDev/java/com/naviapp/TestBase.kt @@ -28,7 +28,7 @@ open class TestBase { fun setup() { // closeSoftKeyboard() clearData() - PreferenceManager.clearPrefData() + PreferenceManager.clearPrefDataSession() } // val phoneNumber = Utilities.getRandomMockedPhoneNumber() diff --git a/app/src/androidTestMockServer/java/com/naviappmockserver/instrumentedTests/activityTests/LoanEligibilityMockTestBase.kt b/app/src/androidTestMockServer/java/com/naviappmockserver/instrumentedTests/activityTests/LoanEligibilityMockTestBase.kt index b24f3540ac..1e81560cb0 100644 --- a/app/src/androidTestMockServer/java/com/naviappmockserver/instrumentedTests/activityTests/LoanEligibilityMockTestBase.kt +++ b/app/src/androidTestMockServer/java/com/naviappmockserver/instrumentedTests/activityTests/LoanEligibilityMockTestBase.kt @@ -24,7 +24,7 @@ open class LoanEligibilityMockTestBase { webServer = MockWebServer() webServer.start(MockWebServerUtils.port) webServer.dispatcher = LoanEligibilityDispatcher() - PreferenceManager.clearPrefData() + PreferenceManager.clearPrefDataSession() } fun currentDispatcher(): T = webServer.dispatcher as T diff --git a/app/src/main/java/com/naviapp/registration/SplashActivity.kt b/app/src/main/java/com/naviapp/registration/SplashActivity.kt index 4a8ac790fa..cdb0e7cc60 100644 --- a/app/src/main/java/com/naviapp/registration/SplashActivity.kt +++ b/app/src/main/java/com/naviapp/registration/SplashActivity.kt @@ -62,10 +62,10 @@ class SplashActivity : BaseActivity() { intent, SingularData(BuildConfig.SINGULAR_APP_KEY, BuildConfig.SINGULAR_SECRET) ) - val appInstalled = PreferenceManager.getBooleanPreference(APP_INSTALLED) + val appInstalled = PreferenceManager.getBooleanPreferenceApp(APP_INSTALLED) if (!appInstalled.orFalse()) { analyticsTracker.trackAppInstall(applicationContext) - PreferenceManager.setBooleanPreference(APP_INSTALLED, true) + PreferenceManager.setBooleanPreferenceApp(APP_INSTALLED, true) } initErrors() init() diff --git a/app/src/main/java/com/naviapp/utils/Utility.kt b/app/src/main/java/com/naviapp/utils/Utility.kt index 59763cdba1..deec910f88 100644 --- a/app/src/main/java/com/naviapp/utils/Utility.kt +++ b/app/src/main/java/com/naviapp/utils/Utility.kt @@ -116,7 +116,7 @@ fun isNetworkAvailable(): Boolean { } fun clearData() { - PreferenceManager.clearPrefData() + PreferenceManager.clearPrefDataSession() NaviPreferenceManager.clearDataOnLogout() } diff --git a/navi-common/src/main/java/com/navi/common/sharedpref/PreferenceManager.kt b/navi-common/src/main/java/com/navi/common/sharedpref/PreferenceManager.kt index 0f8b17ae0c..1b0e63e6bb 100644 --- a/navi-common/src/main/java/com/navi/common/sharedpref/PreferenceManager.kt +++ b/navi-common/src/main/java/com/navi/common/sharedpref/PreferenceManager.kt @@ -15,11 +15,21 @@ import com.navi.common.sharedpref.CommonPrefConstants.IS_LOAN_JOURNEY_DATA_DELET object PreferenceManager { - private const val PREFS_FILENAME = "com.naviapp.preferences" - private lateinit var sharedPreferences: SharedPreferences + private const val PREFS_FILENAME_SESSION = "com.naviapp.preferences" + private const val PREFS_FILENAME = "com.naviapp.preferences.app" + + // Cleared on logout/endOfSession + private lateinit var sharedPreferencesForSession: SharedPreferences + + // Not cleared on logout/endOfSession + private lateinit var sharedPreferencesForApp: SharedPreferences private lateinit var gson: Gson fun init(application: Application) { - sharedPreferences = application.getSharedPreferences( + sharedPreferencesForSession = application.getSharedPreferences( + PREFS_FILENAME_SESSION, + Context.MODE_PRIVATE + ) + sharedPreferencesForApp = application.getSharedPreferences( PREFS_FILENAME, Context.MODE_PRIVATE ) @@ -27,38 +37,38 @@ object PreferenceManager { } fun getStringPreference(key: String): String? { - return sharedPreferences.getString(key, "") + return sharedPreferencesForSession.getString(key, "") } fun setStringPreference(key: String, value: String) { - val editor = sharedPreferences.edit() + val editor = sharedPreferencesForSession.edit() editor.putString(key, value) editor.apply() } fun getIntPreference(key: String): Int { - return sharedPreferences.getInt(key, 0) + return sharedPreferencesForSession.getInt(key, 0) } fun getLongPreference(key: String): Long? { - return sharedPreferences.getLong(key, -1L) + return sharedPreferencesForSession.getLong(key, -1L) } fun setIntPreference( key: String, value: Int ) { - val editor = sharedPreferences.edit() + val editor = sharedPreferencesForSession.edit() editor.putInt(key, value) editor.apply() } fun getBooleanPreference(key: String, defValue: Boolean = false): Boolean { - return sharedPreferences.getBoolean(key, defValue) + return sharedPreferencesForSession.getBoolean(key, defValue) } fun setBooleanPreference(key: String, value: Boolean) { - val editor = sharedPreferences.edit() + val editor = sharedPreferencesForSession.edit() editor.putBoolean(key, value) editor.apply() } @@ -67,20 +77,20 @@ object PreferenceManager { key: String, value: Long ) { - val editor = sharedPreferences.edit() + val editor = sharedPreferencesForSession.edit() editor.putLong(key, value) editor.apply() } fun setObjectPreference(key: String, value: Any?) { - val edit = sharedPreferences.edit() + val edit = sharedPreferencesForSession.edit() edit.putString(key, Gson().toJson(value)) edit.apply() } fun getObjectPrefrences(key: String, model: Class): T? { return run { - val json = sharedPreferences.getString(key, "") + val json = sharedPreferencesForSession.getString(key, "") if (key == CURRENT_USER && json.isNullOrBlank()) { return null } @@ -92,11 +102,11 @@ object PreferenceManager { } } - fun clearPrefData() { + fun clearPrefDataSession() { try { - val editor = sharedPreferences.edit() + val editor = sharedPreferencesForSession.edit() editor.clear() - editor.commit() + editor.apply() } catch (e: Exception) { } } @@ -104,7 +114,7 @@ object PreferenceManager { fun removePrefData(keys: Array) { try { if (keys.isEmpty()) return - val editor = sharedPreferences.edit() + val editor = sharedPreferencesForSession.edit() keys.forEach { editor.remove(it) } @@ -114,4 +124,14 @@ object PreferenceManager { setBooleanPreference(IS_LOAN_JOURNEY_DATA_DELETED, false) } } + + fun getBooleanPreferenceApp(key: String, defValue: Boolean = false): Boolean { + return sharedPreferencesForApp.getBoolean(key, defValue) + } + + fun setBooleanPreferenceApp(key: String, value: Boolean) { + val editor = sharedPreferencesForApp.edit() + editor.putBoolean(key, value) + editor.apply() + } } \ No newline at end of file diff --git a/navi-insurance/src/main/java/com/navi/insurance/health/fragment/ErrorFragment.kt b/navi-insurance/src/main/java/com/navi/insurance/health/fragment/ErrorFragment.kt index 5f542c6c84..cd92f1cba1 100644 --- a/navi-insurance/src/main/java/com/navi/insurance/health/fragment/ErrorFragment.kt +++ b/navi-insurance/src/main/java/com/navi/insurance/health/fragment/ErrorFragment.kt @@ -94,7 +94,7 @@ class ErrorFragment : BaseFragment(), binding.errorTitle.text = "Session expired!" binding.errorDescription.text = "Please Sign-in and retry again" binding.errorAction.text = "Sign In" - PreferenceManager.clearPrefData() + PreferenceManager.clearPrefDataSession() NaviPreferenceManager.clearDataOnLogout() actionCallback = { /*NaviPreferenceManager.removePrefData(listOf(SESSION_TOKEN)) diff --git a/navi-insurance/src/main/java/com/navi/insurance/registration/SplashActivity.kt b/navi-insurance/src/main/java/com/navi/insurance/registration/SplashActivity.kt index 5ccd39dcc8..ce42ebb373 100644 --- a/navi-insurance/src/main/java/com/navi/insurance/registration/SplashActivity.kt +++ b/navi-insurance/src/main/java/com/navi/insurance/registration/SplashActivity.kt @@ -199,28 +199,6 @@ class SplashActivity : BaseActivity() { super.onActivityResult(requestCode, resultCode, data) } - /*private fun postInstallData() { - val appInstalled = NaviPreferenceManager.getBooleanPreference(APP_INSTALLED) - val deviceDetailsCaptured = NaviPreferenceManager.getBooleanPreference( - DEVICE_DETAILS_CAPTURED_PRE_INSTALL - ) - - val deviceAppsCaptured = NaviPreferenceManager.getBooleanPreference( - DEVICE_INSTALLED_APPS_CAPTURED - ) - - - *//*if (!appInstalled.orFalse()) { - NaviInsuranceAnalytics.trackAppInstall() - NaviPreferenceManager.setBooleanPreference(APP_INSTALLED, true) - }*//* - - *//*if (!deviceDetailsCaptured.orFalse()) { - postDeviceDetailsToServer() - }*//* - - }*/ - private fun initPreferences() { NaviPreferenceManager.setStringPreference(USER_LOCATION_COUNTRY_CODE, "IN") //TODO } diff --git a/navi-insurance/src/main/java/com/navi/insurance/util/PrefConstants.kt b/navi-insurance/src/main/java/com/navi/insurance/util/PrefConstants.kt index f3de934a9f..5fd9c805ef 100644 --- a/navi-insurance/src/main/java/com/navi/insurance/util/PrefConstants.kt +++ b/navi-insurance/src/main/java/com/navi/insurance/util/PrefConstants.kt @@ -22,7 +22,6 @@ const val IS_LOCATION_DATA_POST = "IS_LOCATION_DATA_POST" const val PAYMENT_DONE_RATE_APP = "PAYMENT_DONE_RATE_APP" const val WHATSAPP_COMMUNICATION_ENABLED = "WHATSAPP_COMMUNICATION_ENABLED" const val FTUE_POLICY_PURCHASED = "FTUE_POLICY_PURCHASED" -const val APP_INSTALLED = "APP_INSTALLED" const val IS_FROM_FB = "IS_FROM_FB" const val SHOW_FEEDBACK_POPUP_COUNT = "SHOW_FEEDBACK_POPUP_COUNT" const val SHOW_FEEDBACK_POPUP = "SHOW_FEEDBACK_POPUP" diff --git a/pulse/src/main/java/com/navi/pulse/PulseHelper.kt b/pulse/src/main/java/com/navi/pulse/PulseHelper.kt index dca5a844df..b06e69dc7b 100644 --- a/pulse/src/main/java/com/navi/pulse/PulseHelper.kt +++ b/pulse/src/main/java/com/navi/pulse/PulseHelper.kt @@ -15,6 +15,7 @@ object PulseHelper { PulseRetrofitProvider.init(applicationContext) PulseSDKConfig.init(context, sdkConfig) PulseEventManager.startSyncEvents(context) + trackEvent("pulse_sdk_init") } fun setUserId(userId: String?) { diff --git a/pulse/src/main/java/com/navi/pulse/worker/SyncEventsWorker.kt b/pulse/src/main/java/com/navi/pulse/worker/SyncEventsWorker.kt index aca4dc587d..8ab1919502 100644 --- a/pulse/src/main/java/com/navi/pulse/worker/SyncEventsWorker.kt +++ b/pulse/src/main/java/com/navi/pulse/worker/SyncEventsWorker.kt @@ -12,10 +12,13 @@ class SyncEventsWorker(val context: Context, workerParameters: WorkerParameters) CoroutineWorker(context, workerParameters) { override suspend fun doWork(): Result { + PulseEventManager.trackEvent("heartbeat", null, context) if (PulseEventManager.isSyncTimerRunning()) { PulseLogger.log(PulseConstants.LOG_TAG, "Cancelling Worker as Timer is already running") return Result.failure() } + // This code doesn't work as Worker starts the Sync Timer and above check returns from worker. + PulseEventManager.trackEvent("worker_worked", null, context) PulseLogger.log(PulseConstants.LOG_TAG, "In doWork() of SyncEventsWorker") PulseLogger.log(PulseConstants.LOG_TAG, Thread.currentThread().name) val eventsSent = PulseEventManager.sendEventsToServer(context, SYNC_EVENTS_WORKER)