Skip to content

Commit 07937a9

Browse files
committed
chore: add analytics around app settings toggled
Signed-off-by: Brandon McAnsh <[email protected]>
1 parent cd5680a commit 07937a9

File tree

3 files changed

+28
-1
lines changed

3 files changed

+28
-1
lines changed

api/src/main/java/com/getcode/analytics/AnalyticsManager.kt

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.getcode.analytics
22

33
import com.getcode.api.BuildConfig
4+
import com.getcode.model.AppSetting
45
import com.getcode.model.CurrencyCode
56
import com.getcode.model.Kin
67
import com.getcode.model.KinAmount
8+
import com.getcode.model.PrefsBool
79
import com.getcode.solana.keys.PublicKey
810
import com.getcode.solana.keys.base58
911
import com.google.firebase.ktx.Firebase
@@ -92,7 +94,11 @@ class AnalyticsManager @Inject constructor(
9294
)
9395
}
9496

95-
override fun billHidden(kin: Kin, currencyCode: CurrencyCode, animation: BillPresentationStyle) {
97+
override fun billHidden(
98+
kin: Kin,
99+
currencyCode: CurrencyCode,
100+
animation: BillPresentationStyle
101+
) {
96102
track(
97103
Name.Bill,
98104
Pair(Property.State, StringValue.Hidden.value),
@@ -247,6 +253,17 @@ class AnalyticsManager @Inject constructor(
247253
track(Name.BackgroundSwap)
248254
}
249255

256+
override fun appSettingToggled(setting: AppSetting, value: Boolean) {
257+
val name = when (setting) {
258+
PrefsBool.CAMERA_START_BY_DEFAULT -> Name.AutoStartCamera
259+
}
260+
261+
track(
262+
name,
263+
Property.State to if (value) StringValue.Yes.value else StringValue.No.value,
264+
)
265+
}
266+
250267
private fun track(event: Name, vararg properties: Pair<Property, String>) {
251268
if (BuildConfig.DEBUG) {
252269
Timber.d("debug track $event, ${properties.map { "${it.first.name}, ${it.second}" }}")
@@ -292,6 +309,9 @@ class AnalyticsManager @Inject constructor(
292309
ErrorRequest("Error Request"),
293310

294311
Recompute("Recompute"),
312+
313+
// App Settings
314+
AutoStartCamera("Auto Start Camera")
295315
}
296316

297317
enum class Property(val value: String) {

api/src/main/java/com/getcode/analytics/AnalyticsService.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.getcode.analytics
22

3+
import com.getcode.model.AppSetting
34
import com.getcode.model.CurrencyCode
45
import com.getcode.model.Kin
56
import com.getcode.model.KinAmount
@@ -47,6 +48,8 @@ interface AnalyticsService {
4748

4849
fun backgroundSwapInitiated()
4950
fun unintentionalLogout()
51+
52+
fun appSettingToggled(setting: AppSetting, value: Boolean)
5053
}
5154

5255
class AnalyticsServiceNull : AnalyticsService {
@@ -90,4 +93,5 @@ class AnalyticsServiceNull : AnalyticsService {
9093
override fun tipCardShown(username: String) = Unit
9194
override fun backgroundSwapInitiated() = Unit
9295
override fun unintentionalLogout() = Unit
96+
override fun appSettingToggled(setting: AppSetting, value: Boolean) = Unit
9397
}

api/src/main/java/com/getcode/network/repository/AppSettingsRepository.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.getcode.network.repository
22

3+
import com.getcode.analytics.AnalyticsService
34
import com.getcode.model.AppSetting
45
import com.getcode.model.PrefsBool
56
import kotlinx.coroutines.flow.Flow
@@ -17,6 +18,7 @@ data class AppSettings(
1718
}
1819
class AppSettingsRepository @Inject constructor(
1920
private val prefRepository: PrefRepository,
21+
private val analytics: AnalyticsService,
2022
) {
2123

2224
fun observe(): Flow<AppSettings> = AppSettings.Defaults.let { defaults ->
@@ -34,6 +36,7 @@ class AppSettingsRepository @Inject constructor(
3436
}
3537

3638
fun update(setting: AppSetting, value: Boolean) {
39+
analytics.appSettingToggled(setting, value)
3740
when (setting) {
3841
PrefsBool.CAMERA_START_BY_DEFAULT -> {
3942
prefRepository.set(PrefsBool.CAMERA_START_BY_DEFAULT, value)

0 commit comments

Comments
 (0)