Persist token across activity lifecycle
Test: token is persisted
Bug: 122372584
Change-Id: Id3221d1a06c48779c743a685a49a70edff6e912c
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index 8eabf00..eb5e02b 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -51,11 +51,10 @@
public class FaceSettings extends DashboardFragment {
private static final String TAG = "FaceSettings";
- private static final String KEY_LAUNCHED_CONFIRM = "key_launched_confirm";
+ private static final String KEY_TOKEN = "key_token";
private FaceManager mFaceManager;
private int mUserId;
- private boolean mLaunchedConfirm;
private byte[] mToken;
private FaceSettingsAttentionPreferenceController mAttentionController;
@@ -86,7 +85,7 @@
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
- outState.putBoolean(KEY_LAUNCHED_CONFIRM, mLaunchedConfirm);
+ outState.putByteArray(KEY_TOKEN, mToken);
}
@Override
@@ -98,10 +97,10 @@
Intent.EXTRA_USER_ID, UserHandle.myUserId());
if (savedInstanceState != null) {
- mLaunchedConfirm = savedInstanceState.getBoolean(KEY_LAUNCHED_CONFIRM, false);
+ mToken = savedInstanceState.getByteArray(KEY_TOKEN);
}
- if (!mLaunchedConfirm) {
+ if (mToken == null) {
final long challenge = mFaceManager.generateChallenge();
ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(getActivity(), this);
if (!helper.launchConfirmationActivity(CONFIRM_REQUEST,
@@ -114,6 +113,14 @@
}
@Override
+ public void onResume() {
+ super.onResume();
+ if (mToken != null) {
+ mAttentionController.setToken(mToken);
+ }
+ }
+
+ @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CONFIRM_REQUEST) {