diff --git a/app/build.gradle b/app/build.gradle index e1c74eb1c8..76656d74ce 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -179,9 +179,9 @@ configurations.all { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - def core_version = "1.2.0-beta01" + def core_version = "1.2.0-beta02" def appcompat_version = "1.1.0" - def fragment_version = "1.2.0-rc01" + def fragment_version = "1.2.0-rc02" def recyclerview_version = "1.1.0-rc01" def coordinatorlayout_version = "1.1.0-rc01" def constraintlayout_version = "2.0.0-beta3" @@ -190,13 +190,13 @@ dependencies { def lbm_version = "1.0.0" def swiperefresh_version = "1.0.0" def documentfile_version = "1.0.1" - def lifecycle_version = "2.2.0-rc01" + def lifecycle_version = "2.2.0-rc02" def room_version = "2.2.1" def paging_version = "2.1.0" def preference_version = "1.1.0" def work_version = "2.2.0" def exif_version = "1.1.0-rc01" - def biometric_version = "1.0.0-rc02" + def biometric_version = "1.0.0" def billingclient_version = "2.0.3" def javamail_version = "1.6.5-SNAPSHOT" def jsoup_version = "1.12.1" @@ -258,7 +258,7 @@ dependencies { implementation "androidx.room:room-runtime:$room_version" implementation "androidx.room:room-common:$room_version" // because of exclude // https://mvnrepository.com/artifact/androidx.sqlite/sqlite-framework - implementation "androidx.sqlite:sqlite-framework:2.0.1" // because of exclude + implementation "androidx.sqlite:sqlite-framework:2.1.0-alpha01" // because of exclude annotationProcessor "androidx.room:room-compiler:$room_version" // https://mvnrepository.com/artifact/androidx.paging/paging-runtime diff --git a/app/src/main/java/androidx/lifecycle/ComputableLiveData.java b/app/src/main/java/androidx/lifecycle/ComputableLiveData.java index 92016a24b6..cc375b15ba 100644 --- a/app/src/main/java/androidx/lifecycle/ComputableLiveData.java +++ b/app/src/main/java/androidx/lifecycle/ComputableLiveData.java @@ -152,7 +152,8 @@ public abstract class ComputableLiveData { ArchTaskExecutor.getInstance().executeOnMainThread(mInvalidationRunnable); } - @SuppressWarnings("WeakerAccess") + // TODO https://issuetracker.google.com/issues/112197238 + @SuppressWarnings({"WeakerAccess", "UnknownNullness"}) @WorkerThread protected abstract T compute(); } diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 4eee12f1f4..a69f702eb2 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -19,7 +19,6 @@ package eu.faircode.email; Copyright 2018-2019 by Marcel Bokhorst (M66B) */ -import android.annotation.SuppressLint; import android.app.Dialog; import android.app.KeyguardManager; import android.content.ActivityNotFoundException; @@ -32,8 +31,6 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.TypedArray; import android.graphics.Color; -import android.hardware.biometrics.BiometricManager; -import android.hardware.fingerprint.FingerprintManager; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -68,6 +65,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; +import androidx.biometric.BiometricManager; import androidx.biometric.BiometricPrompt; import androidx.browser.customtabs.CustomTabsIntent; import androidx.constraintlayout.widget.ConstraintLayout; @@ -730,18 +728,8 @@ public class Helper { if (!TextUtils.isEmpty(pin)) return true; - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) - return false; - else if (Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.Q) { - if (!context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) - return false; - FingerprintManager fpm = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE); - return (fpm != null && fpm.isHardwareDetected() && fpm.hasEnrolledFingerprints()); - } else { - @SuppressLint("WrongConstant") - BiometricManager bm = (BiometricManager) context.getSystemService(Context.BIOMETRIC_SERVICE); - return (bm != null && bm.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS); - } + BiometricManager bm = BiometricManager.from(context); + return (bm.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS); } static boolean shouldAuthenticate(Context context) {