62 lines
No EOL
2 KiB
Java
62 lines
No EOL
2 KiB
Java
package com.tangem.data.fingerprint;
|
|
|
|
import android.annotation.TargetApi;
|
|
import android.hardware.fingerprint.FingerprintManager;
|
|
import android.os.Build;
|
|
import android.os.CancellationSignal;
|
|
|
|
/**
|
|
* Created by dtaka on 8/20/2016.
|
|
*/
|
|
@TargetApi(Build.VERSION_CODES.M)
|
|
public class FingerprintHelper extends FingerprintManager.AuthenticationCallback {
|
|
private FingerprintHelperListener listener;
|
|
|
|
public FingerprintHelper(FingerprintHelperListener listener) {
|
|
this.listener = listener;
|
|
}
|
|
|
|
private CancellationSignal cancellationSignal;
|
|
|
|
public void startAuth(FingerprintManager manager, FingerprintManager.CryptoObject cryptoObject) {
|
|
cancellationSignal = new CancellationSignal();
|
|
|
|
try {
|
|
manager.authenticate(cryptoObject, cancellationSignal, 0, this, null);
|
|
} catch (SecurityException ex) {
|
|
listener.authenticationFailed("An error occurred:\n" + ex.getMessage());
|
|
} catch (Exception ex) {
|
|
listener.authenticationFailed("An error occurred\n" + ex.getMessage());
|
|
}
|
|
}
|
|
|
|
public void cancel() {
|
|
if (cancellationSignal != null)
|
|
cancellationSignal.cancel();
|
|
}
|
|
|
|
public interface FingerprintHelperListener {
|
|
public void authenticationFailed(String error);
|
|
public void authenticationSucceeded(FingerprintManager.AuthenticationResult result);
|
|
}
|
|
|
|
@Override
|
|
public void onAuthenticationError(int errMsgId, CharSequence errString) {
|
|
listener.authenticationFailed("Authentication error\n" + errString);
|
|
}
|
|
|
|
@Override
|
|
public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {
|
|
listener.authenticationFailed("Authentication help\n" + helpString);
|
|
}
|
|
|
|
@Override
|
|
public void onAuthenticationFailed() {
|
|
listener.authenticationFailed("Authentication failed.");
|
|
}
|
|
|
|
@Override
|
|
public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {
|
|
listener.authenticationSucceeded(result);
|
|
}
|
|
} |