Log when SIA integration is enabled

This commit is contained in:
Moez Bhatti
2018-07-12 16:42:50 -04:00
parent 57b371400e
commit 9b833befc7
4 changed files with 18 additions and 5 deletions
@@ -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<String, String>) {
// Do nothing
override fun track(event: String, vararg properties: Pair<String, Any>) {
// 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) {
@@ -40,10 +40,11 @@ class AnalyticsManagerImpl @Inject constructor(context: Context) : AnalyticsMana
amplitude.trackSessionEvents(true)
}
override fun track(event: String, vararg properties: Pair<String, String>) {
override fun track(event: String, vararg properties: Pair<String, Any>) {
val propertiesJson = JSONObject(properties
.associateBy { pair -> pair.first }
.mapValues { pair -> pair.value.second })
.also { Timber.v("$event: $it") }
amplitude.logEvent(event, propertiesJson)
@@ -20,7 +20,7 @@ package com.moez.QKSMS.manager
interface AnalyticsManager {
fun track(event: String, vararg properties: Pair<String, String>)
fun track(event: String, vararg properties: Pair<String, Any>)
fun setUserProperty(key: String, value: Any)
@@ -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) }