[crashlytics] Add first version of crashlytics functionality

This commit is contained in:
Chris Bianca
2017-12-06 17:25:17 +00:00
parent e697f11641
commit efeb24d168
19 changed files with 406 additions and 8 deletions

View File

@@ -2,9 +2,13 @@ buildscript {
ext.firebaseVersion = '11.4.2'
repositories {
jcenter()
maven {
url 'https://maven.fabric.io/public'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'io.fabric.tools:gradle:1.24.4'
}
}
@@ -91,4 +95,7 @@ dependencies {
compile "com.google.firebase:firebase-ads:$firebaseVersion"
compile "com.google.firebase:firebase-firestore:$firebaseVersion"
compile "com.google.firebase:firebase-invites:$firebaseVersion"
compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') {
transitive = true
}
}

View File

@@ -0,0 +1,65 @@
package io.invertase.firebase.fabric.crashlytics;
import android.util.Log;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.crashlytics.android.Crashlytics;
public class RNFirebaseCrashlytics extends ReactContextBaseJavaModule {
private static final String TAG = "RNFirebaseCrashlytics";
public RNFirebaseCrashlytics(ReactApplicationContext reactContext) {
super(reactContext);
Log.d(TAG, "New instance");
}
@Override
public String getName() {
return TAG;
}
@ReactMethod
public void crash() {
Crashlytics.getInstance().crash();
}
@ReactMethod
public void log(final String message) {
Crashlytics.log(message);
}
@ReactMethod
public void recordError(final int code, final String domain) {
Crashlytics.logException(new Exception(code + ": " + domain));
}
@ReactMethod
public void setBoolValue(final String key, final boolean boolValue) {
Crashlytics.setBool(key, boolValue);
}
@ReactMethod
public void setFloatValue(final String key, final float floatValue) {
Crashlytics.setFloat(key, floatValue);
}
@ReactMethod
public void setIntValue(final String key, final int intValue) {
Crashlytics.setInt(key, intValue);
}
@ReactMethod
public void setStringValue(final String key, final String stringValue) {
Crashlytics.setString(key, stringValue);
}
@ReactMethod
public void setUserIdentifier(String userId) {
Crashlytics.setUserIdentifier(userId);
}
}

View File

@@ -0,0 +1,39 @@
package io.invertase.firebase.fabric.crashlytics;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.UIManagerModule;
import com.facebook.react.uimanager.ViewManager;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@SuppressWarnings("unused")
public class RNFirebaseCrashlyticsPackage implements ReactPackage {
public RNFirebaseCrashlyticsPackage() {
}
/**
* @param reactContext react application context that can be used to create modules
* @return list of native modules to register with the newly created catalyst instance
*/
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
List<NativeModule> modules = new ArrayList<>();
modules.add(new RNFirebaseCrashlytics(reactContext));
return modules;
}
/**
* @param reactContext
* @return a list of view managers that should be registered with {@link UIManagerModule}
*/
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
}