OSDN Git Service

Fixed a bug where the ConfirmDeviceCredentials activity was shown twice.
authorSelim Cinek <cinek@google.com>
Sat, 12 Sep 2015 00:06:29 +0000 (17:06 -0700)
committerSelim Cinek <cinek@google.com>
Sat, 12 Sep 2015 00:22:22 +0000 (17:22 -0700)
When rotating the ConfirmDeviceCredentials Activity, it was launched again after
solving the challenge.

Bug: 23937676
Change-Id: Ic0852448f498c79d5448c72cbc31bb55d9bfeddb

src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java

index 8864822..7d6280b 100644 (file)
@@ -16,7 +16,6 @@
 
 package com.android.settings.fingerprint;
 
-import android.content.Context;
 import android.content.Intent;
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.Bundle;
@@ -32,15 +31,19 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase {
 
     private static final int CONFIRM_REQUEST = 1;
     private static final int ENROLLING = 2;
+    public static final String EXTRA_KEY_LAUNCHED_CONFIRM = "launched_confirm_lock";
 
     private FingerprintLocationAnimationView mAnimation;
+    private boolean mLaunchedConfirmLock;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.fingerprint_enroll_find_sensor);
         setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
-        if (mToken == null) {
+        mLaunchedConfirmLock = savedInstanceState != null && savedInstanceState.getBoolean(
+                EXTRA_KEY_LAUNCHED_CONFIRM);
+        if (mToken == null && !mLaunchedConfirmLock) {
             launchConfirmLock();
         }
         mAnimation = (FingerprintLocationAnimationView) findViewById(
@@ -60,6 +63,12 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase {
     }
 
     @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(EXTRA_KEY_LAUNCHED_CONFIRM, mLaunchedConfirmLock);
+    }
+
+    @Override
     protected void onNextButtonClick() {
         startActivityForResult(getEnrollingIntent(), ENROLLING);
     }
@@ -104,6 +113,8 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase {
             // This shouldn't happen, as we should only end up at this step if a lock thingy is
             // already set.
             finish();
+        } else {
+            mLaunchedConfirmLock = true;
         }
     }