Avoid FingerprintManager.hasEnrolledFingerprints() crash on samsung devices
This commit is contained in:
1 parent
2681e4a6e6
commit
257758b27d
2 files changed
+15
-3
No files matched your search
@@ -17,8 +17,10 @@
|
||||
package com.hippo.ehviewer.ui;
|
||||
|
||||
import android.hardware.fingerprint.FingerprintManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.text.TextUtils;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
@@ -62,7 +64,7 @@ public class SetSecurityActivity extends ToolbarActivity implements View.OnClick
|
||||
FingerprintManager fingerprintManager = getSystemService(FingerprintManager.class);
|
||||
// The line below prevents the false positive inspection from Android Studio
|
||||
// noinspection ResourceType
|
||||
if (fingerprintManager != null && fingerprintManager.hasEnrolledFingerprints()) {
|
||||
if (fingerprintManager != null && hasEnrolledFingerprints(fingerprintManager)) {
|
||||
mFingerprint.setVisibility(View.VISIBLE);
|
||||
mFingerprint.setChecked(Settings.getEnableFingerprint());
|
||||
}
|
||||
@@ -72,6 +74,16 @@ public class SetSecurityActivity extends ToolbarActivity implements View.OnClick
|
||||
mSet.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
public static boolean hasEnrolledFingerprints(FingerprintManager fingerprintManager) {
|
||||
try {
|
||||
return fingerprintManager.isHardwareDetected()
|
||||
&& fingerprintManager.hasEnrolledFingerprints();
|
||||
} catch (Throwable e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
@@ -31,6 +31,7 @@ import android.widget.ImageView;
|
||||
import com.hippo.ehviewer.R;
|
||||
import com.hippo.ehviewer.Settings;
|
||||
import com.hippo.ehviewer.ui.MainActivity;
|
||||
import com.hippo.ehviewer.ui.SetSecurityActivity;
|
||||
import com.hippo.hardware.ShakeDetector;
|
||||
import com.hippo.widget.lockpattern.LockPatternUtils;
|
||||
import com.hippo.widget.lockpattern.LockPatternView;
|
||||
@@ -235,8 +236,7 @@ public class SecurityScene extends SolidScene implements
|
||||
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||
&& Settings.getEnableFingerprint()
|
||||
&& mFingerprintManager != null
|
||||
&& mFingerprintManager.isHardwareDetected()
|
||||
&& mFingerprintManager.hasEnrolledFingerprints();
|
||||
&& SetSecurityActivity.hasEnrolledFingerprints(mFingerprintManager);
|
||||
}
|
||||
|
||||
private Runnable mResetFingerprintRunnable = new Runnable() {
|
||||
|
||||
Reference in new issue
Block a user