Skip to content

Commit 9dc1f5d

Browse files
wenxi-zengWenxi Zeng
and
Wenxi Zeng
authored
add event origin (#15)
Co-authored-by: Wenxi Zeng <[email protected]>
1 parent 648be58 commit 9dc1f5d

File tree

2 files changed

+38
-10
lines changed

2 files changed

+38
-10
lines changed

analytics-kotlin-live/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ android {
3434
dependencies {
3535
// Segment
3636
implementation 'com.segment.analytics.kotlin:substrata:1.0.0'
37-
implementation 'com.segment.analytics.kotlin:android:1.16.0'
37+
implementation 'com.segment.analytics.kotlin:android:1.16.3'
3838

3939
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1'
4040
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1'

analytics-kotlin-live/src/main/java/com/segment/analytics/liveplugins/kotlin/JSAnalytics.kt

+37-9
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@ package com.segment.analytics.liveplugins.kotlin
33
import android.content.Context
44
import com.segment.analytics.kotlin.android.Analytics
55
import com.segment.analytics.kotlin.core.Analytics
6+
import com.segment.analytics.kotlin.core.BaseEvent
67
import com.segment.analytics.kotlin.core.platform.Plugin
8+
import com.segment.analytics.kotlin.core.utilities.putInContext
79
import com.segment.analytics.substrata.kotlin.JSObject
810
import com.segment.analytics.substrata.kotlin.JSScope
911
import com.segment.analytics.substrata.kotlin.JsonElementConverter
12+
import kotlinx.serialization.json.buildJsonObject
13+
import kotlinx.serialization.json.put
1014
import java.lang.ref.WeakReference
1115

1216
object LivePluginsHolder {
@@ -64,39 +68,57 @@ class JSAnalytics {
6468
}
6569

6670
fun track(event: String) {
67-
analytics.track(event)
71+
analytics.track(event) {
72+
it?.insertEventOrigin()
73+
}
6874
}
6975

7076
fun track(event: String, properties: JSObject) {
71-
analytics.track(event, JsonElementConverter.read(properties))
77+
analytics.track(event, JsonElementConverter.read(properties)) {
78+
it?.insertEventOrigin()
79+
}
7280
}
7381

7482
fun identify(userId: String) {
75-
analytics.identify(userId)
83+
analytics.identify(userId) {
84+
it?.insertEventOrigin()
85+
}
7686
}
7787

7888
fun identify(userId: String, traits: JSObject) {
79-
analytics.identify(userId, JsonElementConverter.read(traits))
89+
analytics.identify(userId, JsonElementConverter.read(traits)) {
90+
it?.insertEventOrigin()
91+
}
8092
}
8193

8294
fun screen(title: String, category: String) {
83-
analytics.screen(title, category)
95+
analytics.screen(title, category) {
96+
it?.insertEventOrigin()
97+
}
8498
}
8599

86100
fun screen(title: String, category: String, properties: JSObject) {
87-
analytics.screen(title, JsonElementConverter.read(properties), category)
101+
analytics.screen(title, JsonElementConverter.read(properties), category) {
102+
it?.insertEventOrigin()
103+
}
88104
}
89105

90106
fun group(groupId: String) {
91-
analytics.group(groupId)
107+
analytics.group(groupId) {
108+
it?.insertEventOrigin()
109+
}
92110
}
93111

94112
fun group(groupId: String, traits: JSObject) {
95-
analytics.group(groupId, JsonElementConverter.read(traits))
113+
analytics.group(groupId, JsonElementConverter.read(traits)) {
114+
it?.insertEventOrigin()
115+
}
96116
}
97117

98118
fun alias(newId: String) {
99-
analytics.alias(newId)
119+
analytics.alias(newId) {
120+
it?.insertEventOrigin()
121+
}
100122
}
101123

102124
fun flush() {
@@ -126,4 +148,10 @@ class JSAnalytics {
126148
}
127149
return result
128150
}
151+
152+
private fun BaseEvent.insertEventOrigin() : BaseEvent {
153+
return putInContext("__eventOrigin", buildJsonObject {
154+
put("type", "js")
155+
})
156+
}
129157
}

0 commit comments

Comments
 (0)