diff --git a/app/app.iml b/app/app.iml
index 08608e4eb..42873dc61 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -190,5 +190,8 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/keepassdroid/PasswordActivity.java b/app/src/main/java/com/keepassdroid/PasswordActivity.java
index 419c2e2b3..202073288 100644
--- a/app/src/main/java/com/keepassdroid/PasswordActivity.java
+++ b/app/src/main/java/com/keepassdroid/PasswordActivity.java
@@ -32,6 +32,7 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
+import android.support.v4.hardware.fingerprint.FingerprintManagerCompat;
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
@@ -295,7 +296,7 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
});
// callback for fingerprint findings
- fingerPrintHelper.setAuthenticationCallback(new FingerprintManager.AuthenticationCallback() {
+ fingerPrintHelper.setAuthenticationCallback(new FingerprintManagerCompat.AuthenticationCallback() {
@Override
public void onAuthenticationError(
final int errorCode,
@@ -319,7 +320,7 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
}
@Override
- public void onAuthenticationSucceeded(final FingerprintManager.AuthenticationResult result) {
+ public void onAuthenticationSucceeded(final FingerprintManagerCompat.AuthenticationResult result) {
if (mode == Cipher.ENCRYPT_MODE) {
diff --git a/app/src/main/java/com/keepassdroid/compat/BuildCompat.java b/app/src/main/java/com/keepassdroid/compat/BuildCompat.java
index 6936d4d6b..4661cafba 100644
--- a/app/src/main/java/com/keepassdroid/compat/BuildCompat.java
+++ b/app/src/main/java/com/keepassdroid/compat/BuildCompat.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2014-2016 Brian Pellin.
+ * Copyright 2014-2017 Brian Pellin.
*
* This file is part of KeePassDroid.
*
@@ -32,6 +32,7 @@ public class BuildCompat {
public static final int VERSION_CODE_JELLY_BEAN = 16;
public static final int VERSION_CODE_JELLY_BEAN_MR2 = 18;
public static final int VERSION_KITKAT = 19;
+ public static final int VERSION_CODE_M = 23;
private static Field versionSDK;
private static int versionInt;
diff --git a/app/src/main/java/com/keepassdroid/fingerprint/FingerPrintHelper.java b/app/src/main/java/com/keepassdroid/fingerprint/FingerPrintHelper.java
index d6c4fa538..12030e02a 100644
--- a/app/src/main/java/com/keepassdroid/fingerprint/FingerPrintHelper.java
+++ b/app/src/main/java/com/keepassdroid/fingerprint/FingerPrintHelper.java
@@ -4,14 +4,16 @@ import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.KeyguardManager;
import android.content.Context;
-import android.hardware.fingerprint.FingerprintManager;
import android.os.Build;
-import android.os.CancellationSignal;
+import android.support.v4.os.CancellationSignal;
import android.security.keystore.KeyGenParameterSpec;
import android.security.keystore.KeyPermanentlyInvalidatedException;
import android.security.keystore.KeyProperties;
+import android.support.v4.hardware.fingerprint.FingerprintManagerCompat;
import android.util.Base64;
+import com.keepassdroid.compat.BuildCompat;
+
import java.security.KeyStore;
import javax.crypto.Cipher;
@@ -23,19 +25,19 @@ public class FingerPrintHelper {
private static final String ALIAS_KEY = "example-key";
- private FingerprintManager fingerprintManager;
+ private FingerprintManagerCompat fingerprintManager;
private KeyStore keyStore = null;
private KeyGenerator keyGenerator = null;
private Cipher cipher = null;
private KeyguardManager keyguardManager = null;
- private FingerprintManager.CryptoObject cryptoObject = null;
+ private FingerprintManagerCompat.CryptoObject cryptoObject = null;
private boolean initOk = false;
private FingerPrintCallback fingerPrintCallback;
private CancellationSignal cancellationSignal;
- private FingerprintManager.AuthenticationCallback authenticationCallback;
+ private FingerprintManagerCompat.AuthenticationCallback authenticationCallback;
- public void setAuthenticationCallback(final FingerprintManager.AuthenticationCallback authenticationCallback) {
+ public void setAuthenticationCallback(final FingerprintManagerCompat.AuthenticationCallback authenticationCallback) {
this.authenticationCallback = authenticationCallback;
}
@@ -52,8 +54,8 @@ public class FingerPrintHelper {
cancellationSignal = new CancellationSignal();
fingerprintManager.authenticate(
cryptoObject,
- cancellationSignal,
0 /* flags */,
+ cancellationSignal,
authenticationCallback,
null);
}
@@ -81,7 +83,7 @@ public class FingerPrintHelper {
}
- @TargetApi(Build.VERSION_CODES.M)
+ @TargetApi(BuildCompat.VERSION_CODE_M)
public FingerPrintHelper(
final Context context,
final FingerPrintCallback fingerPrintCallback) {
@@ -91,8 +93,8 @@ public class FingerPrintHelper {
setInitOk(false);
return;
}
- this.fingerprintManager = context.getSystemService(FingerprintManager.class);
- this.keyguardManager = context.getSystemService(KeyguardManager.class);
+ this.fingerprintManager = FingerprintManagerCompat.from(context);
+ this.keyguardManager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);
this.fingerPrintCallback = fingerPrintCallback;
if (hasEnrolledFingerprints()) {
@@ -105,7 +107,7 @@ public class FingerPrintHelper {
KeyProperties.KEY_ALGORITHM_AES + "/"
+ KeyProperties.BLOCK_MODE_CBC + "/"
+ KeyProperties.ENCRYPTION_PADDING_PKCS7);
- this.cryptoObject = new FingerprintManager.CryptoObject(cipher);
+ this.cryptoObject = new FingerprintManagerCompat.CryptoObject(cipher);
setInitOk(true);
} catch (final Exception e) {
setInitOk(false);
@@ -278,7 +280,7 @@ public class FingerPrintHelper {
}
public boolean isFingerprintSupported() {
- return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
+ return Build.VERSION.SDK_INT >= BuildCompat.VERSION_CODE_M;
}
}
\ No newline at end of file