diff --git a/logging/build.gradle b/logging/build.gradle index 1cc7977..57d4392 100644 --- a/logging/build.gradle +++ b/logging/build.gradle @@ -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' } } } diff --git a/logging/src/main/java/ru/touchin/roboswag/core/utils/CrashlyticsLogProcessor.java b/logging/src/main/java/ru/touchin/roboswag/core/utils/CrashlyticsLogProcessor.java index 1234660..5dd9970 100644 --- a/logging/src/main/java/ru/touchin/roboswag/core/utils/CrashlyticsLogProcessor.java +++ b/logging/src/main/java/ru/touchin/roboswag/core/utils/CrashlyticsLogProcessor.java @@ -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); } } } diff --git a/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/marker/StateChange.kt b/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/marker/StateChange.kt index 93f3378..1d5da27 100644 --- a/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/marker/StateChange.kt +++ b/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/marker/StateChange.kt @@ -1,4 +1,3 @@ package ru.touchin.roboswag.mvi_arch.marker -interface StateChange { -} +interface StateChange diff --git a/navigation-base/build.gradle b/navigation-base/build.gradle index 0b97055..2b9ae58 100644 --- a/navigation-base/build.gradle +++ b/navigation-base/build.gradle @@ -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' } } diff --git a/navigation-base/src/main/java/ru/touchin/roboswag/navigation_base/TouchinApp.java b/navigation-base/src/main/java/ru/touchin/roboswag/navigation_base/TouchinApp.java index ca05782..60cabfd 100644 --- a/navigation-base/src/main/java/ru/touchin/roboswag/navigation_base/TouchinApp.java +++ b/navigation-base/src/main/java/ru/touchin/roboswag/navigation_base/TouchinApp.java @@ -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); } } diff --git a/utils/src/main/java/ru/touchin/roboswag/core/utils/StringUtils.java b/utils/src/main/java/ru/touchin/roboswag/core/utils/StringUtils.java index 9768287..d773f3e 100644 --- a/utils/src/main/java/ru/touchin/roboswag/core/utils/StringUtils.java +++ b/utils/src/main/java/ru/touchin/roboswag/core/utils/StringUtils.java @@ -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();