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) {