Update and cleanup FingerprintManager API to new spec
Fixes bug 21040383 Change-Id: Ic2b279ffad47d31a6ad3beed7b3af5ad0a61e815
This commit is contained in:
@@ -78,7 +78,7 @@ public class FingerprintEnrollSidecar extends Fragment {
|
|||||||
mEnrollmentSteps = -1;
|
mEnrollmentSteps = -1;
|
||||||
mEnrollmentCancel = new CancellationSignal();
|
mEnrollmentCancel = new CancellationSignal();
|
||||||
getActivity().getSystemService(FingerprintManager.class).enroll(mToken, mEnrollmentCancel,
|
getActivity().getSystemService(FingerprintManager.class).enroll(mToken, mEnrollmentCancel,
|
||||||
mEnrollmentCallback, 0);
|
0 /* flags */, mEnrollmentCallback);
|
||||||
mEnrolling = true;
|
mEnrolling = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -117,6 +117,8 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
private static final int MSG_REFRESH_FINGERPRINT_TEMPLATES = 1000;
|
private static final int MSG_REFRESH_FINGERPRINT_TEMPLATES = 1000;
|
||||||
private static final int MSG_FINGER_AUTH_SUCCESS = 1001;
|
private static final int MSG_FINGER_AUTH_SUCCESS = 1001;
|
||||||
private static final int MSG_FINGER_AUTH_FAIL = 1002;
|
private static final int MSG_FINGER_AUTH_FAIL = 1002;
|
||||||
|
private static final int MSG_FINGER_AUTH_ERROR = 1003;
|
||||||
|
private static final int MSG_FINGER_AUTH_HELP = 1004;
|
||||||
|
|
||||||
private static final int CONFIRM_REQUEST = 101;
|
private static final int CONFIRM_REQUEST = 101;
|
||||||
private static final int CHOOSE_LOCK_GENERIC_REQUEST = 102;
|
private static final int CHOOSE_LOCK_GENERIC_REQUEST = 102;
|
||||||
@@ -146,22 +148,14 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAuthenticationError(int errMsgId, CharSequence errString) {
|
public void onAuthenticationError(int errMsgId, CharSequence errString) {
|
||||||
// get activity will be null on a screen rotation
|
mHandler.obtainMessage(MSG_FINGER_AUTH_ERROR, errMsgId, 0, errString)
|
||||||
final Activity activity = getActivity();
|
.sendToTarget();
|
||||||
if (activity != null) {
|
|
||||||
Toast.makeText(activity, errString, Toast.LENGTH_SHORT);
|
|
||||||
}
|
|
||||||
if (errMsgId != FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
|
|
||||||
retryFingerprint(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {
|
public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {
|
||||||
final Activity activity = getActivity();
|
mHandler.obtainMessage(MSG_FINGER_AUTH_HELP, helpMsgId, 0, helpString)
|
||||||
if (activity != null) {
|
.sendToTarget();
|
||||||
Toast.makeText(activity, helpString, Toast.LENGTH_SHORT);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
private RemovalCallback mRemoveCallback = new RemovalCallback() {
|
private RemovalCallback mRemoveCallback = new RemovalCallback() {
|
||||||
@@ -187,12 +181,36 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
removeFingerprintPreference(msg.arg1);
|
removeFingerprintPreference(msg.arg1);
|
||||||
break;
|
break;
|
||||||
case MSG_FINGER_AUTH_SUCCESS:
|
case MSG_FINGER_AUTH_SUCCESS:
|
||||||
|
mFingerprintCancel = null;
|
||||||
highlightFingerprintItem(msg.arg1);
|
highlightFingerprintItem(msg.arg1);
|
||||||
retryFingerprint(true);
|
retryFingerprint(true);
|
||||||
break;
|
break;
|
||||||
case MSG_FINGER_AUTH_FAIL:
|
case MSG_FINGER_AUTH_FAIL:
|
||||||
|
mFingerprintCancel = null;
|
||||||
retryFingerprint(true);
|
retryFingerprint(true);
|
||||||
break;
|
break;
|
||||||
|
case MSG_FINGER_AUTH_ERROR: {
|
||||||
|
mFingerprintCancel = null;
|
||||||
|
// get activity will be null on a screen rotation
|
||||||
|
final Activity activity = getActivity();
|
||||||
|
if (activity != null) {
|
||||||
|
CharSequence errString = (CharSequence) msg.obj;
|
||||||
|
Toast.makeText(activity, errString , Toast.LENGTH_SHORT);
|
||||||
|
}
|
||||||
|
final int errMsgId = msg.arg1;
|
||||||
|
if (errMsgId != FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
|
||||||
|
retryFingerprint(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case MSG_FINGER_AUTH_HELP: {
|
||||||
|
final Activity activity = getActivity();
|
||||||
|
if (activity != null) {
|
||||||
|
CharSequence helpString = (CharSequence) msg.obj;
|
||||||
|
Toast.makeText(activity, helpString , Toast.LENGTH_SHORT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -208,9 +226,10 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
if (resetAttempts) {
|
if (resetAttempts) {
|
||||||
mMaxFingerprintAttempts = 0;
|
mMaxFingerprintAttempts = 0;
|
||||||
}
|
}
|
||||||
if (mMaxFingerprintAttempts < MAX_RETRY_ATTEMPTS) {
|
if (mMaxFingerprintAttempts < MAX_RETRY_ATTEMPTS && mFingerprintCancel == null) {
|
||||||
mFingerprintCancel = new CancellationSignal();
|
mFingerprintCancel = new CancellationSignal();
|
||||||
mFingerprintManager.authenticate(null, mFingerprintCancel, mAuthCallback, 0);
|
mFingerprintManager.authenticate(null, mFingerprintCancel, 0 /* flags */,
|
||||||
|
mAuthCallback, null);
|
||||||
}
|
}
|
||||||
mMaxFingerprintAttempts++;
|
mMaxFingerprintAttempts++;
|
||||||
}
|
}
|
||||||
@@ -351,7 +370,6 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
intent.setClassName("com.android.settings",
|
intent.setClassName("com.android.settings",
|
||||||
FingerprintEnrollEnrolling.class.getName());
|
FingerprintEnrollEnrolling.class.getName());
|
||||||
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
|
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
|
||||||
stopFingerprint();
|
|
||||||
startActivityForResult(intent, ADD_FINGERPRINT_REQUEST);
|
startActivityForResult(intent, ADD_FINGERPRINT_REQUEST);
|
||||||
} else if (pref instanceof FingerprintPreference) {
|
} else if (pref instanceof FingerprintPreference) {
|
||||||
FingerprintPreference fpref = (FingerprintPreference) pref;
|
FingerprintPreference fpref = (FingerprintPreference) pref;
|
||||||
|
@@ -51,7 +51,7 @@ public class FingerprintUiHelper extends FingerprintManager.AuthenticationCallba
|
|||||||
public void startListening() {
|
public void startListening() {
|
||||||
if (mFingerprintManager.getEnrolledFingerprints().size() > 0) {
|
if (mFingerprintManager.getEnrolledFingerprints().size() > 0) {
|
||||||
mCancellationSignal = new CancellationSignal();
|
mCancellationSignal = new CancellationSignal();
|
||||||
mFingerprintManager.authenticate(null, mCancellationSignal, this, 0 /* flags */);
|
mFingerprintManager.authenticate(null, mCancellationSignal, 0 /* flags */, this, null);
|
||||||
setFingerprintIconVisibility(true);
|
setFingerprintIconVisibility(true);
|
||||||
mIcon.setImageResource(R.drawable.ic_fingerprint);
|
mIcon.setImageResource(R.drawable.ic_fingerprint);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user