Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9a48d83 authored by Maurice Lam's avatar Maurice Lam Committed by android-build-merger
Browse files

Hide options button when user starts entering pattern

am: 4723abfe

Change-Id: I3223a1a40b08c0dcef90ec117ac08b1888e6174e
parents be581fd7 4723abfe
Loading
Loading
Loading
Loading
+22 −5
Original line number Diff line number Diff line
@@ -20,7 +20,10 @@ import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

@@ -54,16 +57,20 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
    public static class SetupChooseLockPatternFragment extends ChooseLockPatternFragment
            implements ChooseLockTypeDialogFragment.OnLockTypeSelectedListener {

        @Nullable
        private Button mOptionsButton;

        @Override
        public void onViewCreated(View view, Bundle savedInstanceState) {
            super.onViewCreated(view, savedInstanceState);
        public View onCreateView(
                LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View view = super.onCreateView(inflater, container, savedInstanceState);
            if (!getResources().getBoolean(R.bool.config_lock_pattern_minimal_ui)) {
                Button optionsButton = view.findViewById(R.id.screen_lock_options);
                optionsButton.setVisibility(View.VISIBLE);
                optionsButton.setOnClickListener((btn) ->
                mOptionsButton = view.findViewById(R.id.screen_lock_options);
                mOptionsButton.setOnClickListener((btn) ->
                        ChooseLockTypeDialogFragment.newInstance(mUserId)
                                .show(getChildFragmentManager(), null));
            }
            return view;
        }

        @Override
@@ -84,6 +91,16 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
            }
        }

        @Override
        protected void updateStage(Stage stage) {
            super.updateStage(stage);
            if (!getResources().getBoolean(R.bool.config_lock_pattern_minimal_ui)
                    && mOptionsButton != null) {
                mOptionsButton.setVisibility(
                        stage == Stage.Introduction ? View.VISIBLE : View.INVISIBLE);
            }
        }

        @Override
        public void handleLeftButton() {
            SetupSkipDialog dialog = SetupSkipDialog.newInstance(
+17 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.os.UserHandle;
import android.view.View;
import android.widget.Button;

import com.android.internal.widget.LockPatternView;
import com.android.settings.R;
import com.android.settings.SetupRedactionInterstitial;
import com.android.settings.password.ChooseLockPattern.ChooseLockPatternFragment;
@@ -44,6 +45,11 @@ import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowAlertDialog;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.util.ReflectionHelpers;
import org.robolectric.util.ReflectionHelpers.ClassParameter;

import java.util.Collections;
import java.util.List;

@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {
@@ -83,6 +89,17 @@ public class SetupChooseLockPatternTest {
        assertThat(componentEnabled).isEqualTo(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
    }

    @Config(qualifiers = "sw400dp")
    @Test
    public void selectPattern_shouldHideOptionsButton() {
        Button button = mActivity.findViewById(R.id.screen_lock_options);
        assertThat(button).isNotNull();
        assertThat(button.getVisibility()).isEqualTo(View.VISIBLE);

        LockPatternView lockPatternView = mActivity.findViewById(R.id.lockPattern);
        ReflectionHelpers.callInstanceMethod(lockPatternView, "notifyPatternDetected");
    }

    @Config(qualifiers = "sw400dp")
    @Test
    public void sw400dp_shouldShowScreenLockOptions() {