From 5652550c84e906a871e04a1ac491317ef3d9a6d2 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Wed, 9 Jan 2019 14:52:56 -0800 Subject: [PATCH] Persist token across activity lifecycle Test: token is persisted Bug: 122372584 Change-Id: Id3221d1a06c48779c743a685a49a70edff6e912c --- .../settings/biometrics/face/FaceSettings.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java index 8eabf002dfa..eb5e02bc0a4 100644 --- a/src/com/android/settings/biometrics/face/FaceSettings.java +++ b/src/com/android/settings/biometrics/face/FaceSettings.java @@ -51,11 +51,10 @@ import java.util.List; 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 @@ public class FaceSettings extends DashboardFragment { @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 @@ public class FaceSettings extends DashboardFragment { 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, @@ -113,6 +112,14 @@ public class FaceSettings extends DashboardFragment { } } + @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);