1
1
package io .fullstack .firestack ;
2
2
3
3
import java .util .Map ;
4
-
5
- import android .app .Activity ;
6
4
import android .util .Log ;
7
5
import android .os .Bundle ;
6
+ import android .app .Activity ;
8
7
9
- import com .facebook .react .bridge .Callback ;
10
8
import com .facebook .react .bridge .ReactMethod ;
11
9
import com .facebook .react .bridge .ReadableMap ;
10
+ import com .google .firebase .analytics .FirebaseAnalytics ;
12
11
import com .facebook .react .bridge .ReactApplicationContext ;
13
12
import com .facebook .react .bridge .ReactContextBaseJavaModule ;
14
13
15
- import com .google .firebase .analytics .FirebaseAnalytics ;
16
-
17
14
class FirestackAnalyticsModule extends ReactContextBaseJavaModule {
18
15
19
16
private static final String TAG = "FirestackAnalytics" ;
@@ -28,6 +25,10 @@ public FirestackAnalyticsModule(ReactApplicationContext reactContext) {
28
25
mFirebaseAnalytics = FirebaseAnalytics .getInstance (this .context );
29
26
}
30
27
28
+ /**
29
+ *
30
+ * @return
31
+ */
31
32
@ Override
32
33
public String getName () {
33
34
return TAG ;
@@ -50,42 +51,64 @@ public void setAnalyticsCollectionEnabled(final Boolean enabled) {
50
51
mFirebaseAnalytics .setAnalyticsCollectionEnabled (enabled );
51
52
}
52
53
54
+ /**
55
+ *
56
+ * @param screenName
57
+ * @param screenClassOverride
58
+ */
53
59
@ ReactMethod
54
60
public void setCurrentScreen (final String screenName , final String screenClassOverride ) {
55
61
final Activity activity = getCurrentActivity ();
56
62
if (activity != null ) {
57
- Log .d (TAG , "setCurrentScreen " + screenName + " " + screenClassOverride );
63
+ Log .d (TAG , "setCurrentScreen " + screenName + " - " + screenClassOverride );
64
+ // needs to be run on main thread
58
65
activity .runOnUiThread (new Runnable () {
59
66
@ Override
60
67
public void run () {
61
68
mFirebaseAnalytics .setCurrentScreen (activity , screenName , screenClassOverride );
62
69
}
63
70
});
64
-
65
71
}
66
72
}
67
73
68
-
74
+ /**
75
+ *
76
+ * @param milliseconds
77
+ */
69
78
@ ReactMethod
70
79
public void setMinimumSessionDuration (final double milliseconds ) {
71
80
mFirebaseAnalytics .setMinimumSessionDuration ((long ) milliseconds );
72
81
}
73
82
83
+ /**
84
+ *
85
+ * @param milliseconds
86
+ */
74
87
@ ReactMethod
75
88
public void setSessionTimeoutDuration (final double milliseconds ) {
76
89
mFirebaseAnalytics .setSessionTimeoutDuration ((long ) milliseconds );
77
90
}
78
91
92
+ /**
93
+ *
94
+ * @param id
95
+ */
79
96
@ ReactMethod
80
97
public void setUserId (final String id ) {
81
98
mFirebaseAnalytics .setUserId (id );
82
99
}
83
100
101
+ /**
102
+ *
103
+ * @param name
104
+ * @param value
105
+ */
84
106
@ ReactMethod
85
107
public void setUserProperty (final String name , final String value ) {
86
108
mFirebaseAnalytics .setUserProperty (name , value );
87
109
}
88
110
111
+ // todo refactor/clean me
89
112
private Bundle makeEventBundle (final String name , final Map <String , Object > map ) {
90
113
Bundle bundle = new Bundle ();
91
114
// Available from the Analytics event
0 commit comments