From 73f2cb8b7c1c7723bd643925e68f3b48733abbec Mon Sep 17 00:00:00 2001 From: Michael Moore Date: Sat, 14 Nov 2020 22:18:48 -0500 Subject: [PATCH] remove deprecated Crashlytics and Fabric dependencies; replace with Firebase Crashlytics per https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=android#java --- .idea/caches/build_file_checksums.ser | Bin 799 -> 0 bytes .idea/jarRepositories.xml | 40 ++++++++++++++++++ app/build.gradle | 19 ++++++--- .../main/java/com/ravenwallet/RavenApp.java | 5 +-- .../settings/DisplayCurrencyActivity.java | 2 - .../tools/manager/BRReportsManager.java | 11 ++--- .../tools/manager/SendManager.java | 12 ++---- .../tools/manager/SyncManager.java | 7 +-- .../ravenwallet/wallet/RvnWalletManager.java | 9 ++-- build.gradle | 15 +++---- gradle/wrapper/gradle-wrapper.properties | 4 +- 11 files changed, 81 insertions(+), 43 deletions(-) delete mode 100644 .idea/caches/build_file_checksums.ser create mode 100644 .idea/jarRepositories.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser deleted file mode 100644 index 8d6769fc8f709657e8ef8ae3a55213cd36ed7f0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmZ4UmVvdnh`~NNKUXg?FQq6yGexf?KR>5fFEb@IQ7^qHF(oHeub?PDD>b=9F91S2 zm1gFoxMk*~I%lLNXBU^|7Q2L-Ts|(GuF1r}uGBYr_F>vMNC#JY1CYR(Fc`|U8WE7!hR-MlYPt75{3|pT!%^;;FZsG5#L4m%rFEG@6GK))!^-3yA z5Xx0ne4TN6^Xat*&gREH=F#>kVNgZ(HPkKoh=hk>;T74QoBa%%SY9@8&Uo{~sjh@U x5RdBlxoc+^Y%h4OA07Jb?S?7QK)-;Thuz~lJWj80WB#K$*?u;I{u>v)3ILj|8#e#| diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 000000000..7b492be50 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 3bfc6740b..bb689dc08 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,9 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'io.fabric' +apply plugin: 'com.google.gms.google-services' +apply plugin: 'com.google.firebase.crashlytics' repositories { - maven { url 'https://maven.fabric.io/public' } + // Add Google's Maven repository + google() } android { compileSdkVersion = 28 @@ -166,10 +168,15 @@ dependencies { implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'androidx.cardview:cardview:1.0.0' implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.10.0' - implementation 'com.google.firebase:firebase-core:16.0.8' - implementation('com.crashlytics.sdk.android:crashlytics:2.9.9@aar') { - transitive = true - } + + // Per https://firebase.google.com/support/release-notes/android#java + // The Firebase Android library firebase-core is no longer needed. + // Add the Firebase Crashlytics SDK. + implementation 'com.google.firebase:firebase-crashlytics:17.3.0' + + // Add the Google Analytics SDK. + implementation 'com.google.firebase:firebase-analytics:18.0.0' + implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' implementation('androidx.work:work-runtime:2.0.1') { exclude group: 'com.google.guava', module: 'listenablefuture' diff --git a/app/src/main/java/com/ravenwallet/RavenApp.java b/app/src/main/java/com/ravenwallet/RavenApp.java index 44f8b4d09..59a9750f9 100644 --- a/app/src/main/java/com/ravenwallet/RavenApp.java +++ b/app/src/main/java/com/ravenwallet/RavenApp.java @@ -17,8 +17,7 @@ import com.ravenwallet.tools.listeners.SyncReceiver; import com.ravenwallet.tools.manager.InternetManager; import com.ravenwallet.tools.util.Utils; -import com.crashlytics.android.Crashlytics; -import io.fabric.sdk.android.Fabric; +import com.google.firebase.crashlytics.FirebaseCrashlytics; import java.util.ArrayList; import java.util.List; @@ -52,7 +51,7 @@ public class RavenApp extends Application { public void onCreate() { super.onCreate(); - Fabric.with(this, new Crashlytics()); + FirebaseCrashlytics.getInstance(); mContext = this; diff --git a/app/src/main/java/com/ravenwallet/presenter/activities/settings/DisplayCurrencyActivity.java b/app/src/main/java/com/ravenwallet/presenter/activities/settings/DisplayCurrencyActivity.java index 8ce9f5647..b2cbada29 100644 --- a/app/src/main/java/com/ravenwallet/presenter/activities/settings/DisplayCurrencyActivity.java +++ b/app/src/main/java/com/ravenwallet/presenter/activities/settings/DisplayCurrencyActivity.java @@ -31,8 +31,6 @@ import java.math.BigDecimal; import java.util.Currency; -import io.fabric.sdk.android.services.common.SafeToast; - import static com.ravenwallet.tools.util.BRConstants.SATOSHIS; diff --git a/app/src/main/java/com/ravenwallet/tools/manager/BRReportsManager.java b/app/src/main/java/com/ravenwallet/tools/manager/BRReportsManager.java index bdedd8fe4..532fa6974 100644 --- a/app/src/main/java/com/ravenwallet/tools/manager/BRReportsManager.java +++ b/app/src/main/java/com/ravenwallet/tools/manager/BRReportsManager.java @@ -2,10 +2,7 @@ import android.util.Log; -import com.crashlytics.android.Crashlytics; - -//import com.google.firebase.crash.FirebaseCrash; - +import com.google.firebase.crashlytics.FirebaseCrashlytics; /** * RavenWallet @@ -38,8 +35,7 @@ public class BRReportsManager { public static void reportBug(RuntimeException er, boolean crash) { Log.e(TAG, "reportBug: ", er); try { -// FirebaseCrash.report(er); - Crashlytics.logException(er); + FirebaseCrashlytics.getInstance().recordException(er); } catch (Exception e) { Log.e(TAG, "reportBug: failed to report to FireBase: ", e); } @@ -49,8 +45,7 @@ public static void reportBug(RuntimeException er, boolean crash) { public static void reportBug(Exception er) { Log.e(TAG, "reportBug: ", er); try { -// FirebaseCrash.report(er); - Crashlytics.logException(er); + FirebaseCrashlytics.getInstance().recordException(er); } catch (Exception e) { Log.e(TAG, "reportBug: failed to report to FireBase: ", e); } diff --git a/app/src/main/java/com/ravenwallet/tools/manager/SendManager.java b/app/src/main/java/com/ravenwallet/tools/manager/SendManager.java index 76e7143cc..c884af0bb 100644 --- a/app/src/main/java/com/ravenwallet/tools/manager/SendManager.java +++ b/app/src/main/java/com/ravenwallet/tools/manager/SendManager.java @@ -27,8 +27,7 @@ import com.ravenwallet.wallet.exceptions.InsufficientFundsException; import com.ravenwallet.wallet.exceptions.SomethingWentWrong; import com.ravenwallet.wallet.exceptions.SpendingNotAllowed; -import com.crashlytics.android.Crashlytics; -//import com.google.firebase.crash.FirebaseCrash; +import com.google.firebase.crashlytics.FirebaseCrashlytics; import java.math.BigDecimal; import java.util.Locale; @@ -104,8 +103,7 @@ public void run() { if (!timedOut) tryPay(app, payment, walletManager); else -// FirebaseCrash.report(new NullPointerException("did not send, timedOut!")); - Crashlytics.logException(new NullPointerException("did not send, timedOut!")); + FirebaseCrashlytics.getInstance().recordException(new NullPointerException("did not send, timedOut!")); return; //return so no error is shown } catch (InsufficientFundsException ignored) { errTitle[0] = app.getString(R.string.Alerts_sendFailure); @@ -135,8 +133,7 @@ public void onClick(BRDialogView brDialogView) { return; } catch (FeeOutOfDate ex) { //Fee is out of date, show not connected error -// FirebaseCrash.report(ex); - Crashlytics.logException(ex); + FirebaseCrashlytics.getInstance().recordException(ex); BRExecutor.getInstance().forMainThreadTasks().execute(new Runnable() { @Override public void run() { @@ -151,8 +148,7 @@ public void onClick(BRDialogView brDialogView) { return; } catch (SomethingWentWrong somethingWentWrong) { somethingWentWrong.printStackTrace(); -// FirebaseCrash.report(somethingWentWrong); - Crashlytics.logException(somethingWentWrong); + FirebaseCrashlytics.getInstance().recordException(somethingWentWrong); BRExecutor.getInstance().forMainThreadTasks().execute(new Runnable() { @Override public void run() { diff --git a/app/src/main/java/com/ravenwallet/tools/manager/SyncManager.java b/app/src/main/java/com/ravenwallet/tools/manager/SyncManager.java index 5987f4c34..b62c8c685 100644 --- a/app/src/main/java/com/ravenwallet/tools/manager/SyncManager.java +++ b/app/src/main/java/com/ravenwallet/tools/manager/SyncManager.java @@ -10,7 +10,7 @@ import com.ravenwallet.tools.listeners.SyncReceiver; import com.ravenwallet.tools.threads.executor.BRExecutor; import com.ravenwallet.wallet.abstracts.BaseWalletManager; -import com.crashlytics.android.Crashlytics; +import com.google.firebase.crashlytics.FirebaseCrashlytics; import java.util.concurrent.TimeUnit; @@ -122,8 +122,9 @@ public void run() { } } catch (InterruptedException e) { Log.e(TAG, "run: " + getName(), e); - Crashlytics.log("run: " + getName() + " " + e.getMessage()); - Crashlytics.logException(e); + FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); + crashlytics.log("run: " + getName() + " " + e.getMessage()); + crashlytics.recordException(e); final double syncProgress = mCurrentWallet.getPeerManager().getSyncProgress(BRSharedPrefs.getStartHeight(mApp, mCurrentWallet.getIso(mApp))); BRExecutor.getInstance().forMainThreadTasks().execute(new Runnable() { @Override diff --git a/app/src/main/java/com/ravenwallet/wallet/RvnWalletManager.java b/app/src/main/java/com/ravenwallet/wallet/RvnWalletManager.java index 92d7cd59f..e82691c0b 100644 --- a/app/src/main/java/com/ravenwallet/wallet/RvnWalletManager.java +++ b/app/src/main/java/com/ravenwallet/wallet/RvnWalletManager.java @@ -16,7 +16,7 @@ import android.util.Log; import android.widget.Toast; -import com.crashlytics.android.Crashlytics; +import com.google.firebase.crashlytics.FirebaseCrashlytics; import com.platform.addressBook.AddressBookRepository; import com.platform.assets.Asset; import com.platform.assets.AssetType; @@ -222,17 +222,20 @@ public void updateFee(Context app) { fee = obj.getLong("fee_per_kb"); economyFee = obj.getLong("fee_per_kb_economy"); + FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); + + if (fee != 0 && fee < getWallet().getMaxFeePerKb()) { BRSharedPrefs.putFeePerKb(app, getIso(app), fee); getWallet().setFeePerKb(BRSharedPrefs.getFavorStandardFee(app, getIso(app)) ? fee : economyFee); BRSharedPrefs.putFeeTime(app, getIso(app), System.currentTimeMillis()); //store the time of the last successful fee fetch } else { - Crashlytics.logException(new NullPointerException("Fee is weird:" + fee)); + crashlytics.recordException(new NullPointerException("Fee is weird:" + fee)); } if (economyFee != 0 && economyFee < getWallet().getMaxFeePerKb()) { BRSharedPrefs.putEconomyFeePerKb(app, getIso(app), economyFee); } else { - Crashlytics.logException(new NullPointerException("Economy fee is weird:" + economyFee)); + crashlytics.recordException(new NullPointerException("Economy fee is weird:" + economyFee)); } } catch (JSONException e) { Log.e(TAG, "updateFeePerKb: FAILED: " + jsonString, e); diff --git a/build.gradle b/build.gradle index 00d0f2c62..231f6d4cb 100644 --- a/build.gradle +++ b/build.gradle @@ -3,21 +3,20 @@ buildscript { repositories { // You need to add the following repository to download the - // new plugin. + // new plugin. `google()` is Google's Maven repository google() jcenter() - maven { - url 'https://maven.fabric.io/public' - } } dependencies { - classpath 'com.android.tools.build:gradle:3.6.1' + classpath 'com.android.tools.build:gradle:4.1.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle filesSystem.loadLibrary - classpath 'com.google.gms:google-services:4.2.0' - // Add dependency - classpath 'io.fabric.tools:gradle:1.+' + classpath 'com.google.gms:google-services:4.3.4' + + // Add the Crashlytics Gradle plugin (use v2.0.0+ if you built + // your app with Android Studio 4.1). + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1' } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0fe2acc70..8fb866c33 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Mar 12 09:02:29 MDT 2020 +#Sat Nov 14 00:24:02 EST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip