Skip to content

Commit 64a1134

Browse files
Better way of tracking whether dispatcher/kit is disabled
1 parent 12169d5 commit 64a1134

File tree

2 files changed

+28
-8
lines changed

2 files changed

+28
-8
lines changed

analytics/src/main/java/com/sofakingforever/analytics/Analytics.kt

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ import com.sofakingforever.analytics.events.base.Event
1414
*/
1515
class Analytics(context: Context, private vararg val dispatchers: AnalyticsDispatcher) {
1616

17+
18+
private val enabledKitMap: EnabledMap<AnalyticsKit> = EnabledMap()
19+
private val enabledDispatcherMap: EnabledMap<String> = EnabledMap()
20+
1721
val settings: AnalyticsSettings = AnalyticsSettings()
1822

1923
init {
@@ -33,6 +37,13 @@ class Analytics(context: Context, private vararg val dispatchers: AnalyticsDispa
3337

3438
events.forEach {
3539
dispatchers.forEach { dispatcher ->
40+
41+
if (enabledKitMap.isDisabled(dispatcher.kit)) {
42+
return
43+
}
44+
if (enabledDispatcherMap.isDisabled(dispatcher.dispatcherName)) {
45+
return
46+
}
3647
try {
3748
dispatcher.track(it)
3849
} catch (e: Exception) {
@@ -46,17 +57,19 @@ class Analytics(context: Context, private vararg val dispatchers: AnalyticsDispa
4657
}
4758

4859
fun setKitEnabled(kit: AnalyticsKit, enabled: Boolean) {
49-
dispatchers.filter { d -> d.kit == kit }
50-
.forEach { dispatcher ->
51-
dispatcher.enabled = enabled
52-
}
60+
enabledKitMap[kit] = enabled
61+
// dispatchers.filter { d -> d.kit == kit }
62+
// .forEach { dispatcher ->
63+
//
64+
// }
5365
}
5466

5567
fun setDispatcherEnabled(dispatcherName: String, enabled: Boolean) {
56-
dispatchers.filter { d -> d.dispatcherName == dispatcherName }
57-
.forEach { dispatcher ->
58-
dispatcher.enabled = enabled
59-
}
68+
enabledDispatcherMap[dispatcherName] = enabled
69+
// dispatchers.filter { d -> d.dispatcherName == dispatcherName }
70+
// .forEach { dispatcher ->
71+
// dispatcher.enabled = enabled
72+
// }
6073
}
6174

6275
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.sofakingforever.analytics
2+
3+
class EnabledMap<Key> : LinkedHashMap<Key, Boolean>() {
4+
5+
fun isDisabled(something : Key) : Boolean = this[something] == false
6+
7+
}

0 commit comments

Comments
 (0)