Fixed Install Event + Heartbeat for tracking uninstall.
This commit is contained in:
@@ -28,7 +28,7 @@ open class TestBase {
|
||||
fun setup() {
|
||||
// closeSoftKeyboard()
|
||||
clearData()
|
||||
PreferenceManager.clearPrefData()
|
||||
PreferenceManager.clearPrefDataSession()
|
||||
}
|
||||
|
||||
// val phoneNumber = Utilities.getRandomMockedPhoneNumber()
|
||||
|
||||
@@ -24,7 +24,7 @@ open class LoanEligibilityMockTestBase {
|
||||
webServer = MockWebServer()
|
||||
webServer.start(MockWebServerUtils.port)
|
||||
webServer.dispatcher = LoanEligibilityDispatcher()
|
||||
PreferenceManager.clearPrefData()
|
||||
PreferenceManager.clearPrefDataSession()
|
||||
}
|
||||
|
||||
fun <T : Dispatcher> currentDispatcher(): T = webServer.dispatcher as T
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -116,7 +116,7 @@ fun isNetworkAvailable(): Boolean {
|
||||
}
|
||||
|
||||
fun clearData() {
|
||||
PreferenceManager.clearPrefData()
|
||||
PreferenceManager.clearPrefDataSession()
|
||||
NaviPreferenceManager.clearDataOnLogout()
|
||||
}
|
||||
|
||||
|
||||
@@ -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 <T> getObjectPrefrences(key: String, model: Class<T>): 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<String>) {
|
||||
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()
|
||||
}
|
||||
}
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -15,6 +15,7 @@ object PulseHelper {
|
||||
PulseRetrofitProvider.init(applicationContext)
|
||||
PulseSDKConfig.init(context, sdkConfig)
|
||||
PulseEventManager.startSyncEvents(context)
|
||||
trackEvent("pulse_sdk_init")
|
||||
}
|
||||
|
||||
fun setUserId(userId: String?) {
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user