Merge pull request #140 from TouchInstinct/firebase_crashlytics

Firebase crashlytics and remove multidex
This commit is contained in:
Maxim Bachinsky 2020-07-07 15:53:56 +03:00 committed by GitHub
commit b866e09668
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 26 additions and 45 deletions

View File

@ -3,7 +3,7 @@ apply from: "../android-configs/lib-config.gradle"
dependencies {
implementation "androidx.annotation:annotation"
implementation "com.crashlytics.sdk.android:crashlytics"
implementation "com.google.firebase:firebase-crashlytics"
constraints {
implementation("androidx.annotation:annotation") {
@ -12,9 +12,9 @@ dependencies {
}
}
implementation("com.crashlytics.sdk.android:crashlytics") {
implementation("com.google.firebase:firebase-crashlytics") {
version {
require '2.10.0'
require '17.1.0'
}
}
}

View File

@ -2,7 +2,7 @@ package ru.touchin.roboswag.core.utils;
import android.util.Log;
import com.crashlytics.android.Crashlytics;
import com.google.firebase.crashlytics.FirebaseCrashlytics;
import java.util.ArrayList;
import java.util.List;
@ -17,13 +17,17 @@ import ru.touchin.roboswag.core.log.LogProcessor;
public class CrashlyticsLogProcessor extends LogProcessor {
@NonNull
private final Crashlytics crashlytics;
private final FirebaseCrashlytics crashlytics;
public CrashlyticsLogProcessor(@NonNull final Crashlytics crashlytics) {
public CrashlyticsLogProcessor(@NonNull final FirebaseCrashlytics crashlytics) {
super(LcLevel.INFO);
this.crashlytics = crashlytics;
}
private String getLogMessage(final int priorityLevel, final String tag, final String message) {
return "Priority:" + priorityLevel + ' ' + tag + ':' + message;
}
@Override
public void processLogMessage(@NonNull final LcGroup group,
@NonNull final LcLevel level,
@ -31,17 +35,17 @@ public class CrashlyticsLogProcessor extends LogProcessor {
@NonNull final String message,
@Nullable final Throwable throwable) {
if (group == LcGroup.UI_LIFECYCLE) {
crashlytics.core.log(level.getPriority(), tag, message);
crashlytics.log(getLogMessage(level.getPriority(), tag, message));
} else if (!level.lessThan(LcLevel.ASSERT)
|| (group == LcGroup.API_VALIDATION && level == LcLevel.ERROR)) {
Log.e(tag, message);
if (throwable != null) {
crashlytics.core.log(level.getPriority(), tag, message);
crashlytics.core.logException(throwable);
crashlytics.log(getLogMessage(level.getPriority(), tag, message));
crashlytics.recordException(throwable);
} else {
final ShouldNotHappenException exceptionToLog = new ShouldNotHappenException(tag + ':' + message);
reduceStackTrace(exceptionToLog);
crashlytics.core.logException(exceptionToLog);
crashlytics.recordException(exceptionToLog);
}
}
}

View File

@ -1,4 +1,3 @@
package ru.touchin.roboswag.mvi_arch.marker
interface StateChange {
}
interface StateChange

View File

@ -10,8 +10,6 @@ dependencies {
implementation project(":utils")
implementation project(":logging")
implementation 'androidx.multidex:multidex'
implementation "com.google.dagger:dagger"
implementation 'net.danlew:android.joda'
@ -26,16 +24,9 @@ dependencies {
implementation "androidx.lifecycle:lifecycle-common-java8"
implementation "androidx.lifecycle:lifecycle-livedata-ktx"
implementation("com.crashlytics.sdk.android:crashlytics") {
transitive = true
}
implementation "com.google.firebase:firebase-crashlytics"
constraints {
implementation("androidx.multidex:multidex") {
version {
require '2.0.0'
}
}
implementation("com.google.dagger:dagger") {
version {
@ -67,9 +58,9 @@ dependencies {
}
}
implementation("com.crashlytics.sdk.android:crashlytics") {
implementation("com.google.firebase:firebase-crashlytics") {
version {
require '2.10.0'
require '17.1.0'
}
}

View File

@ -20,17 +20,12 @@
package ru.touchin.roboswag.navigation_base;
import android.app.Application;
import android.content.Context;
import android.os.StrictMode;
import android.util.Log;
import com.crashlytics.android.Crashlytics;
import com.google.firebase.crashlytics.FirebaseCrashlytics;
import net.danlew.android.joda.JodaTimeAndroid;
import androidx.annotation.NonNull;
import androidx.multidex.MultiDex;
import io.fabric.sdk.android.Fabric;
import ru.touchin.roboswag.core.log.ConsoleLogProcessor;
import ru.touchin.roboswag.core.log.Lc;
import ru.touchin.roboswag.core.log.LcGroup;
@ -43,12 +38,6 @@ import ru.touchin.roboswag.core.utils.CrashlyticsLogProcessor;
*/
public abstract class TouchinApp extends Application {
@Override
protected void attachBaseContext(@NonNull final Context base) {
super.attachBaseContext(base);
MultiDex.install(base);
}
@Override
public void onCreate() {
super.onCreate();
@ -59,16 +48,13 @@ public abstract class TouchinApp extends Application {
LcGroup.UI_LIFECYCLE.disable();
} else {
try {
final Crashlytics crashlytics = new Crashlytics();
Fabric.with(this, crashlytics);
Fabric.getLogger().setLogLevel(Log.ERROR);
final FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();
crashlytics.setCrashlyticsCollectionEnabled(true);
Lc.initialize(new CrashlyticsLogProcessor(crashlytics), false);
} catch (final NoClassDefFoundError error) {
Lc.initialize(new ConsoleLogProcessor(LcLevel.INFO), false);
Lc.e("Crashlytics initialization error! Did you forget to add\n"
+ "compile('com.crashlytics.sdk.android:crashlytics:+@aar') {\n"
+ " transitive = true;\n"
+ "}\n"
+ "com.google.firebase:firebase-crashlytics\n"
+ "to your build.gradle?", error);
}
}

View File

@ -19,12 +19,13 @@
package ru.touchin.roboswag.core.utils;
import androidx.annotation.NonNull;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import androidx.annotation.NonNull;
/**
* Created by Gavriil Sitnikov on 29/08/2016.
* Utility class to providing some string-related helper methods.
@ -40,7 +41,7 @@ public final class StringUtils {
@NonNull
public static String md5(@NonNull final String string) throws NoSuchAlgorithmException, UnsupportedEncodingException {
final MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(string.getBytes("UTF-8"));
digest.update(string.getBytes(StandardCharsets.UTF_8));
final byte[] messageDigestArray = digest.digest();
final StringBuilder hexString = new StringBuilder();