diff --git a/build.gradle b/build.gradle index 65450e5..eb10492 100644 --- a/build.gradle +++ b/build.gradle @@ -36,7 +36,7 @@ ext { retrofit : '2.4.0', rxJava : '2.2.2', rxAndroid : '2.1.0', - crashlytics : '2.9.5', + crashlytics : '17.0.0-beta01', location : '16.0.0', coreKtx : '1.0.1', yandex_mapkit: '3.4.0', diff --git a/navigation/build.gradle b/navigation/build.gradle index c4fa596..bb97748 100644 --- a/navigation/build.gradle +++ b/navigation/build.gradle @@ -27,8 +27,6 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "androidx.appcompat:appcompat:$versions.appcompat" - - implementation("com.crashlytics.sdk.android:crashlytics:$versions.crashlytics@aar") { - transitive = true - } + + implementation "com.google.firebase:firebase-crashlytics:$versions.crashlytics" } diff --git a/navigation/src/main/java/ru/touchin/roboswag/components/navigation/TouchinApp.java b/navigation/src/main/java/ru/touchin/roboswag/components/navigation/TouchinApp.java index 49f4047..b95c2e0 100644 --- a/navigation/src/main/java/ru/touchin/roboswag/components/navigation/TouchinApp.java +++ b/navigation/src/main/java/ru/touchin/roboswag/components/navigation/TouchinApp.java @@ -24,7 +24,7 @@ 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; @@ -34,7 +34,6 @@ import java.util.List; import androidx.annotation.NonNull; import androidx.annotation.Nullable; 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; @@ -65,16 +64,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); } } @@ -96,13 +92,17 @@ public abstract class TouchinApp extends Application { private static 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, @@ -110,17 +110,17 @@ public abstract class TouchinApp extends Application { @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 == ApiModel.API_VALIDATION_LC_GROUP && 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); } } }