Skip to content

Commit 3bad21c

Browse files
committed
fix(android): fix missing context data
1 parent c570576 commit 3bad21c

File tree

2 files changed

+38
-10
lines changed

2 files changed

+38
-10
lines changed

packages/core/android/build.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,14 @@ repositories {
3030
name 'React Native (local)'
3131
}
3232
mavenCentral()
33+
maven { url 'https://jitpack.io' }
3334
}
3435

3536

3637
dependencies {
37-
api 'com.segment.analytics.android:analytics:4.+'
38+
// api 'com.segment.analytics.android:analytics:4.+'
39+
api 'com.github.segmentio:analytics-android:feat~add-options-context-SNAPSHOT'
40+
3841

3942
api 'com.facebook.react:react-native:+'
4043
api 'org.jetbrains.kotlin:kotlin-stdlib:1.2.+'

packages/core/android/src/main/java/com/segment/analytics/reactnative/core/RNAnalyticsModule.kt

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@ import com.facebook.react.bridge.ReactApplicationContext
2828
import com.facebook.react.bridge.ReactContextBaseJavaModule
2929
import com.facebook.react.bridge.ReactMethod
3030
import com.facebook.react.bridge.ReadableMap
31-
import com.segment.analytics.Analytics
32-
import com.segment.analytics.Properties
33-
import com.segment.analytics.Traits
34-
import com.segment.analytics.ValueMap
31+
import com.segment.analytics.*
3532
import java.util.concurrent.TimeUnit
3633

3734
class RNAnalyticsModule(context: ReactApplicationContext): ReactContextBaseJavaModule(context) {
@@ -77,23 +74,43 @@ class RNAnalyticsModule(context: ReactApplicationContext): ReactContextBaseJavaM
7774

7875
@ReactMethod
7976
fun track(event: String, properties: ReadableMap, context: ReadableMap) =
80-
analytics.track(event, Properties() from properties)
77+
analytics.track(
78+
event,
79+
Properties() from properties,
80+
Options() from context
81+
)
8182

8283
@ReactMethod
8384
fun screen(name: String, properties: ReadableMap, context: ReadableMap) =
84-
analytics.screen(name, Properties() from properties)
85+
analytics.screen(
86+
null,
87+
name,
88+
Properties() from properties,
89+
Options() from context
90+
)
8591

8692
@ReactMethod
8793
fun identify(userId: String, traits: ReadableMap, context: ReadableMap) =
88-
analytics.identify(userId, Traits() from traits, null)
94+
analytics.identify(
95+
userId,
96+
Traits() from traits,
97+
Options() from context
98+
)
8999

90100
@ReactMethod
91101
fun group(groupId: String, traits: ReadableMap, context: ReadableMap) =
92-
analytics.group(groupId, Traits() from traits)
102+
analytics.group(
103+
groupId,
104+
Traits() from traits,
105+
Options() from context
106+
)
93107

94108
@ReactMethod
95109
fun alias(newId: String, context: ReadableMap) =
96-
analytics.alias(newId)
110+
analytics.alias(
111+
newId,
112+
Options() from context
113+
)
97114

98115
@ReactMethod
99116
fun reset() =
@@ -112,6 +129,14 @@ class RNAnalyticsModule(context: ReactApplicationContext): ReactContextBaseJavaM
112129
analytics.optOut(true)
113130
}
114131

132+
private infix fun<T: Options> T.from(source: ReadableMap): T {
133+
source.toHashMap().forEach {(key, value) ->
134+
putContext(key, value)
135+
}
136+
137+
return this
138+
}
139+
115140
private infix fun<T: ValueMap> T.from(source: ReadableMap): T {
116141
putAll(source.toHashMap())
117142

0 commit comments

Comments
 (0)