diff --git a/data/src/noAnalytics/java/com/moez/QKSMS/manager/AnalyticsManagerImpl.kt b/data/src/noAnalytics/java/com/moez/QKSMS/manager/AnalyticsManagerImpl.kt index 4fb79b2f..91c1be14 100644 --- a/data/src/noAnalytics/java/com/moez/QKSMS/manager/AnalyticsManagerImpl.kt +++ b/data/src/noAnalytics/java/com/moez/QKSMS/manager/AnalyticsManagerImpl.kt @@ -18,14 +18,21 @@ */ package com.moez.QKSMS.manager +import org.json.JSONObject +import timber.log.Timber import javax.inject.Inject import javax.inject.Singleton @Singleton class AnalyticsManagerImpl @Inject constructor() : AnalyticsManager { - override fun track(event: String, vararg properties: Pair) { - // Do nothing + override fun track(event: String, vararg properties: Pair) { + + // Log the event, but don't do anything else + JSONObject(properties + .associateBy { pair -> pair.first } + .mapValues { pair -> pair.value.second }) + .also { Timber.v("$event: $it") } } override fun setUserProperty(key: String, value: Any) { diff --git a/data/src/withAnalytics/java/com/moez/QKSMS/manager/AnalyticsManagerImpl.kt b/data/src/withAnalytics/java/com/moez/QKSMS/manager/AnalyticsManagerImpl.kt index 1074061f..4fb14b2c 100644 --- a/data/src/withAnalytics/java/com/moez/QKSMS/manager/AnalyticsManagerImpl.kt +++ b/data/src/withAnalytics/java/com/moez/QKSMS/manager/AnalyticsManagerImpl.kt @@ -40,10 +40,11 @@ class AnalyticsManagerImpl @Inject constructor(context: Context) : AnalyticsMana amplitude.trackSessionEvents(true) } - override fun track(event: String, vararg properties: Pair) { + override fun track(event: String, vararg properties: Pair) { val propertiesJson = JSONObject(properties .associateBy { pair -> pair.first } .mapValues { pair -> pair.value.second }) + .also { Timber.v("$event: $it") } amplitude.logEvent(event, propertiesJson) diff --git a/domain/src/main/java/com/moez/QKSMS/manager/AnalyticsManager.kt b/domain/src/main/java/com/moez/QKSMS/manager/AnalyticsManager.kt index 37c4ecc6..1f0b9008 100644 --- a/domain/src/main/java/com/moez/QKSMS/manager/AnalyticsManager.kt +++ b/domain/src/main/java/com/moez/QKSMS/manager/AnalyticsManager.kt @@ -20,7 +20,7 @@ package com.moez.QKSMS.manager interface AnalyticsManager { - fun track(event: String, vararg properties: Pair) + fun track(event: String, vararg properties: Pair) fun setUserProperty(key: String, value: Any) diff --git a/presentation/src/main/java/com/moez/QKSMS/feature/blocked/BlockedViewModel.kt b/presentation/src/main/java/com/moez/QKSMS/feature/blocked/BlockedViewModel.kt index eb1fb25a..cdc02932 100644 --- a/presentation/src/main/java/com/moez/QKSMS/feature/blocked/BlockedViewModel.kt +++ b/presentation/src/main/java/com/moez/QKSMS/feature/blocked/BlockedViewModel.kt @@ -23,6 +23,7 @@ import com.moez.QKSMS.common.Navigator import com.moez.QKSMS.common.androidxcompat.scope import com.moez.QKSMS.common.base.QkViewModel import com.moez.QKSMS.interactor.MarkUnblocked +import com.moez.QKSMS.manager.AnalyticsManager import com.moez.QKSMS.repository.ConversationRepository import com.moez.QKSMS.util.Preferences import com.moez.QKSMS.util.tryOrNull @@ -33,6 +34,7 @@ import javax.inject.Inject class BlockedViewModel @Inject constructor( private val context: Context, + private val analytics: AnalyticsManager, private val conversationRepo: ConversationRepository, private val markUnblocked: MarkUnblocked, private val navigator: Navigator, @@ -56,7 +58,10 @@ class BlockedViewModel @Inject constructor( ?: false } .doOnNext { installed -> if (!installed) navigator.showSia() } - .withLatestFrom(prefs.sia.asObservable()) { installed, enabled -> installed && !enabled } + .withLatestFrom(prefs.sia.asObservable()) { installed, enabled -> + analytics.track("Clicked SIA", Pair("enable", !enabled), Pair("installed", installed)) + installed && !enabled + } .autoDisposable(view.scope()) .subscribe { shouldEnable -> prefs.sia.set(shouldEnable) }