1
1
package io .fullstack .firestack ;
2
2
3
3
import java .util .Map ;
4
+
5
+ import android .app .Activity ;
4
6
import android .util .Log ;
5
7
import android .os .Bundle ;
6
- import java .util .Iterator ;
7
- import android .content .Context ;
8
8
9
9
import com .facebook .react .bridge .Callback ;
10
10
import com .facebook .react .bridge .ReactMethod ;
11
11
import com .facebook .react .bridge .ReadableMap ;
12
- import com .facebook .react .bridge .ReactContext ;
13
12
import com .facebook .react .bridge .ReactApplicationContext ;
14
13
import com .facebook .react .bridge .ReactContextBaseJavaModule ;
15
14
@@ -19,13 +18,12 @@ class FirestackAnalyticsModule extends ReactContextBaseJavaModule {
19
18
20
19
private static final String TAG = "FirestackAnalytics" ;
21
20
22
- private Context context ;
21
+ private ReactApplicationContext context ;
23
22
private FirebaseAnalytics mFirebaseAnalytics ;
24
23
25
24
public FirestackAnalyticsModule (ReactApplicationContext reactContext ) {
26
25
super (reactContext );
27
- this .context = reactContext ;
28
-
26
+ context = reactContext ;
29
27
Log .d (TAG , "New instance" );
30
28
mFirebaseAnalytics = FirebaseAnalytics .getInstance (this .context );
31
29
}
@@ -36,42 +34,56 @@ public String getName() {
36
34
}
37
35
38
36
@ ReactMethod
39
- public void logEventWithName (final String name , final ReadableMap props , final Callback callback ) {
40
- // TODO
41
- // FirestackUtils.todoNote(TAG, "logEventWithName", callback);
42
- Map <String , Object > m = FirestackUtils .recursivelyDeconstructReadableMap (props );
43
- final String eventName = getEventName (name );
37
+ public void logEvent (final String name , final ReadableMap params ) {
38
+ Map <String , Object > m = FirestackUtils .recursivelyDeconstructReadableMap (params );
44
39
final Bundle bundle = makeEventBundle (name , m );
45
- Log .d (TAG , "Logging event " + eventName );
40
+ Log .d (TAG , "Logging event " + name );
46
41
mFirebaseAnalytics .logEvent (name , bundle );
47
42
}
48
43
49
- private String getEventName (final String name ) {
50
- if (name == FirebaseAnalytics .Event .ADD_PAYMENT_INFO ) {return FirebaseAnalytics .Event .ADD_PAYMENT_INFO ; }
51
- else if (name == FirebaseAnalytics .Event .ADD_TO_CART ) {return FirebaseAnalytics .Event .ADD_TO_CART ;}
52
- else if (name == FirebaseAnalytics .Event .ADD_TO_WISHLIST ) {return FirebaseAnalytics .Event .ADD_TO_WISHLIST ;}
53
- else if (name == FirebaseAnalytics .Event .APP_OPEN ) {return FirebaseAnalytics .Event .APP_OPEN ;}
54
- else if (name == FirebaseAnalytics .Event .BEGIN_CHECKOUT ) {return FirebaseAnalytics .Event .BEGIN_CHECKOUT ;}
55
- else if (name == FirebaseAnalytics .Event .ECOMMERCE_PURCHASE ) {return FirebaseAnalytics .Event .ECOMMERCE_PURCHASE ;}
56
- else if (name == FirebaseAnalytics .Event .GENERATE_LEAD ) {return FirebaseAnalytics .Event .GENERATE_LEAD ;}
57
- else if (name == FirebaseAnalytics .Event .JOIN_GROUP ) {return FirebaseAnalytics .Event .JOIN_GROUP ;}
58
- else if (name == FirebaseAnalytics .Event .LEVEL_UP ) {return FirebaseAnalytics .Event .LEVEL_UP ;}
59
- else if (name == FirebaseAnalytics .Event .LOGIN ) {return FirebaseAnalytics .Event .LOGIN ;}
60
- else if (name == FirebaseAnalytics .Event .POST_SCORE ) {return FirebaseAnalytics .Event .POST_SCORE ;}
61
- else if (name == FirebaseAnalytics .Event .PRESENT_OFFER ) {return FirebaseAnalytics .Event .PRESENT_OFFER ;}
62
- else if (name == FirebaseAnalytics .Event .PURCHASE_REFUND ) {return FirebaseAnalytics .Event .PURCHASE_REFUND ;}
63
- else if (name == FirebaseAnalytics .Event .SEARCH ) {return FirebaseAnalytics .Event .SEARCH ;}
64
- else if (name == FirebaseAnalytics .Event .SELECT_CONTENT ) {return FirebaseAnalytics .Event .SELECT_CONTENT ;}
65
- else if (name == FirebaseAnalytics .Event .SHARE ) {return FirebaseAnalytics .Event .SHARE ;}
66
- else if (name == FirebaseAnalytics .Event .SIGN_UP ) {return FirebaseAnalytics .Event .SIGN_UP ;}
67
- else if (name == FirebaseAnalytics .Event .SPEND_VIRTUAL_CURRENCY ) {return FirebaseAnalytics .Event .SPEND_VIRTUAL_CURRENCY ;}
68
- else if (name == FirebaseAnalytics .Event .TUTORIAL_BEGIN ) {return FirebaseAnalytics .Event .TUTORIAL_BEGIN ;}
69
- else if (name == FirebaseAnalytics .Event .TUTORIAL_COMPLETE ) {return FirebaseAnalytics .Event .TUTORIAL_COMPLETE ;}
70
- else if (name == FirebaseAnalytics .Event .UNLOCK_ACHIEVEMENT ) {return FirebaseAnalytics .Event .UNLOCK_ACHIEVEMENT ;}
71
- else if (name == FirebaseAnalytics .Event .VIEW_ITEM ) {return FirebaseAnalytics .Event .VIEW_ITEM ;}
72
- else if (name == FirebaseAnalytics .Event .VIEW_ITEM_LIST ) {return FirebaseAnalytics .Event .VIEW_ITEM_LIST ;}
73
- else if (name == FirebaseAnalytics .Event .VIEW_SEARCH_RESULTS ) {return FirebaseAnalytics .Event .VIEW_SEARCH_RESULTS ;}
74
- else return name ;
44
+ /**
45
+ *
46
+ * @param enabled
47
+ */
48
+ @ ReactMethod
49
+ public void setAnalyticsCollectionEnabled (final Boolean enabled ) {
50
+ mFirebaseAnalytics .setAnalyticsCollectionEnabled (enabled );
51
+ }
52
+
53
+ @ ReactMethod
54
+ public void setCurrentScreen (final String screenName , final String screenClassOverride ) {
55
+ final Activity activity = getCurrentActivity ();
56
+ if (activity != null ) {
57
+ Log .d (TAG , "setCurrentScreen " + screenName + " " + screenClassOverride );
58
+ activity .runOnUiThread (new Runnable () {
59
+ @ Override
60
+ public void run () {
61
+ mFirebaseAnalytics .setCurrentScreen (activity , screenName , screenClassOverride );
62
+ }
63
+ });
64
+
65
+ }
66
+ }
67
+
68
+
69
+ @ ReactMethod
70
+ public void setMinimumSessionDuration (final double milliseconds ) {
71
+ mFirebaseAnalytics .setMinimumSessionDuration ((long ) milliseconds );
72
+ }
73
+
74
+ @ ReactMethod
75
+ public void setSessionTimeoutDuration (final double milliseconds ) {
76
+ mFirebaseAnalytics .setSessionTimeoutDuration ((long ) milliseconds );
77
+ }
78
+
79
+ @ ReactMethod
80
+ public void setUserId (final String id ) {
81
+ mFirebaseAnalytics .setUserId (id );
82
+ }
83
+
84
+ @ ReactMethod
85
+ public void setUserProperty (final String name , final String value ) {
86
+ mFirebaseAnalytics .setUserProperty (name , value );
75
87
}
76
88
77
89
private Bundle makeEventBundle (final String name , final Map <String , Object > map ) {
@@ -207,6 +219,7 @@ private Bundle makeEventBundle(final String name, final Map<String, Object> map)
207
219
bundle .putString (entry .getKey (), entry .getValue ().toString ());
208
220
}
209
221
}
222
+
210
223
return bundle ;
211
224
}
212
225
}
0 commit comments