@@ -14,20 +14,40 @@ import timber.log.Timber
1414import javax.inject.Inject
1515import javax.inject.Singleton
1616
17+ interface AnalyticsService {
18+ fun open (screen : AnalyticsManager .Screen )
19+ fun login (ownerPublicKey : String , autoCompleteCount : Int , inputChangeCount : Int )
20+ fun logout ()
21+ fun track (event : AnalyticsManager .Name , vararg properties : Pair <AnalyticsManager .Property , String >)
22+ }
23+
24+ class AnalyticsServiceNull : AnalyticsService {
25+ override fun open (screen : AnalyticsManager .Screen ) = Unit
26+
27+ override fun login (ownerPublicKey : String , autoCompleteCount : Int , inputChangeCount : Int ) = Unit
28+
29+ override fun logout () = Unit
30+
31+ override fun track (
32+ event : AnalyticsManager .Name ,
33+ vararg properties : Pair <AnalyticsManager .Property , String >
34+ ) = Unit
35+ }
36+
1737@Singleton
18- class AnalyticsManager @Inject constructor(private val mixpanelAPI : MixpanelAPI ) {
38+ class AnalyticsManager @Inject constructor(private val mixpanelAPI : MixpanelAPI ): AnalyticsService {
1939 private var grabStartMillis: Long = 0L
2040 private var cashLinkGrabStartMillis: Long = 0L
2141
22- fun open (screen : Screen ) {
42+ override fun open (screen : Screen ) {
2343 track(Name .Open , Pair (Property .Screen , screen.value))
2444 }
2545
26- fun logout () {
46+ override fun logout () {
2747 track(Name .Logout )
2848 }
2949
30- fun login (ownerPublicKey : String , autoCompleteCount : Int , inputChangeCount : Int ) {
50+ override fun login (ownerPublicKey : String , autoCompleteCount : Int , inputChangeCount : Int ) {
3151 track(
3252 Name .Login ,
3353 Pair (Property .OwnerPublicKey , ownerPublicKey),
@@ -151,8 +171,11 @@ class AnalyticsManager @Inject constructor(private val mixpanelAPI: MixpanelAPI)
151171 Timber .i(" Bill scanned. From start: " + (System .currentTimeMillis() - (timeAppInit ? : 0 )))
152172 }
153173
154- private fun track (event : Name , vararg properties : Pair <Property , String >) {
155- if (BuildConfig .DEBUG ) return // no logging in debug
174+ override fun track (event : Name , vararg properties : Pair <Property , String >) {
175+ if (BuildConfig .DEBUG ) {
176+ Timber .d(" debug track $event , ${properties.map { " ${it.first.name} , ${it.second} " }} " )
177+ return
178+ } // no logging in debug
156179
157180 val jsonObject = JSONObject ()
158181 properties.forEach { property ->
0 commit comments