Skip to content

Commit 3d2d107

Browse files
committed
Initial, untested version.
0 parents  commit 3d2d107

16 files changed

+747
-0
lines changed

.gitignore

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
*.class
2+
3+
# Mobile Tools for Java (J2ME)
4+
.mtj.tmp/
5+
6+
# Package Files #
7+
*.jar
8+
*.war
9+
*.ear
10+
11+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
12+
hs_err_pid*
13+
14+
.DS_Store

Analytics.js

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* @providesModule Answers
3+
*/
4+
'use strict';
5+
6+
var { NativeModules, Platform } = require('react-native');
7+
var FBAnalytics = NativeModules.FBAnalytics;
8+
9+
module.exports = FBAnalytics;
10+

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# react-native-firebase

RemoteConfig.js

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/**
2+
* @providesModule Crashlytics
3+
*/
4+
'use strict';
5+
6+
var { NativeModules, Platform } = require('react-native');
7+
var FBRemoteConfig = NativeModules.FBRemoteConfig;
8+
9+
module.exports = FBRemoteConfig;

android/build.gradle

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
buildscript {
2+
repositories {
3+
jcenter()
4+
}
5+
6+
dependencies {
7+
classpath 'com.android.tools.build:gradle:1.1.3'
8+
}
9+
}
10+
11+
apply plugin: 'com.android.library'
12+
13+
android {
14+
compileSdkVersion 23
15+
buildToolsVersion "23.0.1"
16+
17+
defaultConfig {
18+
minSdkVersion 16
19+
targetSdkVersion 22
20+
versionCode 1
21+
versionName "1.0"
22+
}
23+
lintOptions {
24+
abortOnError false
25+
}
26+
}
27+
28+
repositories {
29+
mavenCentral()
30+
}
31+
32+
repositories {
33+
maven { url 'https://maven.fabric.io/public' }
34+
}
35+
36+
dependencies {
37+
compile 'com.facebook.react:react-native:0.18.+'
38+
}

android/src/main/AndroidManifest.xml

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2+
package="org.jall.reactnative.firebase">
3+
4+
</manifest>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package org.jall.reactnative.firebase;
2+
3+
import android.app.Activity;
4+
import android.util.Log;
5+
6+
import com.crashlytics.android.answers.AddToCartEvent;
7+
import com.crashlytics.android.answers.Answers;
8+
import com.crashlytics.android.answers.AnswersEvent;
9+
import com.crashlytics.android.answers.ContentViewEvent;
10+
import com.crashlytics.android.answers.CustomEvent;
11+
import com.crashlytics.android.answers.InviteEvent;
12+
import com.crashlytics.android.answers.LevelEndEvent;
13+
import com.crashlytics.android.answers.LevelStartEvent;
14+
import com.crashlytics.android.answers.LoginEvent;
15+
import com.crashlytics.android.answers.PredefinedEvent;
16+
import com.crashlytics.android.answers.PurchaseEvent;
17+
import com.crashlytics.android.answers.RatingEvent;
18+
import com.crashlytics.android.answers.SearchEvent;
19+
import com.crashlytics.android.answers.ShareEvent;
20+
import com.crashlytics.android.answers.SignUpEvent;
21+
import com.crashlytics.android.answers.StartCheckoutEvent;
22+
import com.facebook.react.bridge.ReactApplicationContext;
23+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
24+
import com.facebook.react.bridge.ReactMethod;
25+
import com.facebook.react.bridge.ReadableMap;
26+
import com.facebook.react.bridge.ReadableMapKeySetIterator;
27+
import com.facebook.react.bridge.ReadableType;
28+
29+
import java.math.BigDecimal;
30+
import java.util.Currency;
31+
32+
public class FBAnalytics extends ReactContextBaseJavaModule {
33+
public Activity activity;
34+
35+
public FBAnalytics(ReactApplicationContext reactContext, Activity activity) {
36+
super(reactContext);
37+
this.activity = activity;
38+
}
39+
40+
@Override
41+
public String getName() {
42+
return "FBAnalytics";
43+
}
44+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
package org.jall.reactnative.firebase;
2+
3+
import android.app.Activity;
4+
import android.util.Log;
5+
6+
import com.facebook.react.bridge.ReactApplicationContext;
7+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
8+
import com.facebook.react.bridge.ReactMethod;
9+
import com.google.firebase.remoteconfig.FirebaseRemoteConfig;
10+
11+
public class FBRemoteConfig extends ReactContextBaseJavaModule {
12+
public Activity activity;
13+
14+
public FBRemoteConfig(ReactApplicationContext reactContext, Activity activity) {
15+
super(reactContext);
16+
this.activity = activity;
17+
}
18+
19+
@Override
20+
public String getName() {
21+
return "FBRemoteConfig";
22+
}
23+
24+
@ReactMethod
25+
public boolean activateFetched(Promise promise) {
26+
promise.resolve(
27+
FirebaseRemoteConfig.getInstance().activateFetched()
28+
);
29+
}
30+
31+
@ReactMethod
32+
public void fetch() {
33+
FirebaseRemoteConfig.getInstance().fetch();
34+
}
35+
36+
@ReactMethod
37+
public void fetchWithExpirationDuration(long cacheExpirationSeconds) {
38+
FirebaseRemoteConfig.getInstance().fetch(cacheExpirationSeconds);
39+
}
40+
41+
@ReactMethod
42+
public void getNamespacedBoolean(String key, String namespace, Promise promise) {
43+
promise.resolve(
44+
FirebaseRemoteConfig.getInstance().getBoolean(key, namespace)
45+
);
46+
}
47+
48+
@ReactMethod
49+
public void getBoolean(String key, Promise promise) {
50+
promise.resolve(
51+
FirebaseRemoteConfig.getInstance().getBoolean(key)
52+
);
53+
}
54+
55+
@ReactMethod
56+
public void getNamespacedDouble(String key, String namespace, Promise promise) {
57+
promise.resolve(
58+
FirebaseRemoteConfig.getInstance().getDouble(key, namespace)
59+
);
60+
}
61+
62+
@ReactMethod
63+
public void getDouble(String key, Promise promise) {
64+
promise.resolve(
65+
FirebaseRemoteConfig.getInstance().getDouble(key)
66+
);
67+
}
68+
69+
@ReactMethod
70+
public boolean getNamespacedLong(String key, String namespace, Promise promise) {
71+
promise.resolve(
72+
FirebaseRemoteConfig.getInstance().getLong(key, namespace)
73+
);
74+
}
75+
76+
@ReactMethod
77+
public boolean getLong(String key, Promise promise) {
78+
promise.resolve(
79+
FirebaseRemoteConfig.getInstance().getLong(key)
80+
);
81+
}
82+
83+
@ReactMethod
84+
public boolean getNamespacedString(String key, String namespace, Promise promise) {
85+
promise.resolve(
86+
FirebaseRemoteConfig.getInstance().getString(key, namespace)
87+
);
88+
}
89+
90+
@ReactMethod
91+
public boolean getString(String key, Promise promise) {
92+
promise.resolve(
93+
FirebaseRemoteConfig.getInstance().getString(key)
94+
);
95+
}
96+
97+
@ReactMethod
98+
public void setNamespacedDefaults(final ReadableMap defaults, String namespace) {
99+
FirebaseRemoteConfig.getInstance().setDefaults(
100+
((ReadableNativeMap)defaults).toHashMap(),
101+
namespace
102+
);
103+
}
104+
105+
@ReactMethod
106+
public void setDefaults(final ReadableMap defaults) {
107+
FirebaseRemoteConfig.getInstance().setDefaults(
108+
((ReadableNativeMap)defaults).toHashMap()
109+
);
110+
}
111+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package org.jall.reactnative.firebase;
2+
3+
import android.app.Activity;
4+
5+
import com.facebook.react.ReactPackage;
6+
import com.facebook.react.bridge.JavaScriptModule;
7+
import com.facebook.react.bridge.NativeModule;
8+
import com.facebook.react.bridge.ReactApplicationContext;
9+
import com.facebook.react.uimanager.ViewManager;
10+
11+
import java.util.ArrayList;
12+
import java.util.List;
13+
14+
public class FirebasePackage implements ReactPackage {
15+
16+
private Activity mActivity = null;
17+
public FirebasePackage(Activity activity) {
18+
mActivity = activity;
19+
}
20+
21+
@Override
22+
public List<NativeModule> createNativeModules(
23+
ReactApplicationContext reactContext) {
24+
List<NativeModule> modules = new ArrayList<>();
25+
modules.add(new FBRemoteConfig(reactContext, mActivity));
26+
modules.add(new FBAnalytics(reactContext, mActivity));
27+
return modules;
28+
}
29+
30+
@Override
31+
public List<Class<? extends JavaScriptModule>> createJSModules() {
32+
return new ArrayList<>();
33+
}
34+
35+
@Override
36+
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
37+
return new ArrayList<>();
38+
}
39+
}

index.js

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**
2+
*/
3+
'use strict';
4+
module.exports.Analytics = require('./Analytics');
5+
module.exports.RemoteConfig = require('./RemoteConfig');

0 commit comments

Comments
 (0)