OSDN Git Service

Hide screen lock options button in confirm lock
authorMaurice Lam <yukl@google.com>
Tue, 11 Jul 2017 01:15:10 +0000 (18:15 -0700)
committerMaurice Lam <yukl@google.com>
Tue, 11 Jul 2017 01:15:10 +0000 (18:15 -0700)
Hide the screen lock options button in the confirmation stage of
SetupChooseLockPassword, so the user cannot skip out of that screen
while the screen lock is being saved.

Test: Manual
Bug: 63526104
Change-Id: I8ee8938f3ddcd9f0ff3b1812fcae667eddaf09ab

src/com/android/settings/password/ChooseLockPassword.java
src/com/android/settings/password/SetupChooseLockPassword.java

index 0f50375..239b6cd 100644 (file)
@@ -202,7 +202,7 @@ public class ChooseLockPassword extends SettingsActivity {
         private SaveAndFinishWorker mSaveAndFinishWorker;
         private int mRequestedQuality = DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
         private ChooseLockSettingsHelper mChooseLockSettingsHelper;
-        private Stage mUiStage = Stage.Introduction;
+        protected Stage mUiStage = Stage.Introduction;
         private PasswordRequirementAdapter mPasswordRequirementAdapter;
         private GlifLayout mLayout;
         protected boolean mForFingerprint;
@@ -820,7 +820,7 @@ public class ChooseLockPassword extends SettingsActivity {
         /**
          * Update the hint based on current Stage and length of password entry
          */
-        private void updateUi() {
+        protected void updateUi() {
             final boolean canInput = mSaveAndFinishWorker == null;
             String password = mPasswordEntry.getText().toString();
             final int length = password.length();
index 8a7028e..0b21129 100644 (file)
@@ -21,6 +21,7 @@ import android.app.Fragment;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.support.annotation.Nullable;
 import android.view.View;
 import android.widget.Button;
 import android.widget.LinearLayout;
@@ -73,6 +74,9 @@ public class SetupChooseLockPassword extends ChooseLockPassword {
         @VisibleForTesting
         static final int REQUEST_SCREEN_LOCK_OPTIONS = 1;
 
+        @Nullable
+        private Button mOptionsButton;
+
         @Override
         public void onViewCreated(View view, Bundle savedInstanceState) {
             super.onViewCreated(view, savedInstanceState);
@@ -86,9 +90,9 @@ public class SetupChooseLockPassword extends ChooseLockPassword {
             boolean showOptionsButton = getActivity().getIntent().getBooleanExtra(
                     ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, false);
             if (showOptionsButton) {
-                Button optionsButton = view.findViewById(R.id.screen_lock_options);
-                optionsButton.setVisibility(View.VISIBLE);
-                optionsButton.setOnClickListener(this);
+                mOptionsButton = view.findViewById(R.id.screen_lock_options);
+                mOptionsButton.setVisibility(View.VISIBLE);
+                mOptionsButton.setOnClickListener(this);
             }
         }
 
@@ -168,5 +172,14 @@ public class SetupChooseLockPassword extends ChooseLockPassword {
                 }
             }
         }
+
+        @Override
+        protected void updateUi() {
+            super.updateUi();
+            if (mOptionsButton != null) {
+                mOptionsButton.setVisibility(
+                        mUiStage == Stage.Introduction ? View.VISIBLE : View.GONE);
+            }
+        }
     }
 }