Postpone call to postEnroll() until we actually leave activity.

The existing code was calling postEnroll() too soon, which resulted
in the inability to add more than one fingerprint. The solution is to
only call postEnroll() when we're leaving the activity.

Fixes bug 22438498

Change-Id: Ia134899e12b4edc9cced834e99cb2bfd2d51321f
This commit is contained in:
Jim Miller
2015-07-13 15:58:59 -07:00
parent 53dd1d4dee
commit e9785ac1e4

View File

@@ -141,6 +141,7 @@ public class FingerprintSettings extends SubSettings {
mHandler.obtainMessage(MSG_FINGER_AUTH_SUCCESS, fingerId, 0).sendToTarget();
}
@Override
public void onAuthenticationFailed() {
mHandler.obtainMessage(MSG_FINGER_AUTH_FAIL).sendToTarget();
};
@@ -174,6 +175,7 @@ public class FingerprintSettings extends SubSettings {
}
};
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case MSG_REFRESH_FINGERPRINT_TEMPLATES:
@@ -431,8 +433,6 @@ public class FingerprintSettings extends SubSettings {
ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
}
}
} else if (requestCode == ADD_FINGERPRINT_REQUEST) {
int result = mFingerprintManager.postEnroll();
}
if (mToken == null) {
@@ -441,6 +441,15 @@ public class FingerprintSettings extends SubSettings {
}
}
@Override
public void onDestroy() {
super.onDestroy();
int result = mFingerprintManager.postEnroll();
if (result < 0) {
Log.w(TAG, "postEnroll failed: result = " + result);
}
}
private Drawable getHighlightDrawable() {
if (mHighlightDrawable == null) {
final Activity activity = getActivity();