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

Commit 0bde6dcb authored by Ajay Nadathur's avatar Ajay Nadathur Committed by Android (Google) Code Review
Browse files

Merge "Do not show options if screen lock types is empty" into oc-dr1-dev

parents bce83f8c 17d66bea
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -18,10 +18,12 @@ package com.android.settings.password;

import android.app.Activity;
import android.app.Fragment;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
@@ -43,6 +45,8 @@ import com.android.setupwizardlib.util.WizardManagerHelper;
 */
public class SetupChooseLockPassword extends ChooseLockPassword {

    private static final String TAG = "SetupChooseLockPassword";

    public static Intent modifyIntentForSetup(
            Context context,
            Intent chooseLockPasswordIntent) {
@@ -87,9 +91,19 @@ public class SetupChooseLockPassword extends ChooseLockPassword {
                mCancelButton.setText(R.string.skip_label);
            }

            boolean showOptionsButton = getActivity().getIntent().getBooleanExtra(
            final Activity activity = getActivity();
            ChooseLockGenericController chooseLockGenericController =
                    new ChooseLockGenericController(activity, mUserId);
            boolean anyOptionsShown = chooseLockGenericController.getVisibleScreenLockTypes(
                    DevicePolicyManager.PASSWORD_QUALITY_SOMETHING, false).size() > 0;
            boolean showOptionsButton = activity.getIntent().getBooleanExtra(
                    ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, false);
            if (showOptionsButton) {

            if (!anyOptionsShown) {
                Log.w(TAG, "Visible screen lock types is empty!");
            }

            if (showOptionsButton && anyOptionsShown) {
                mOptionsButton = view.findViewById(R.id.screen_lock_options);
                mOptionsButton.setVisibility(View.VISIBLE);
                mOptionsButton.setOnClickListener(this);
+24 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static org.robolectric.Shadows.shadowOf;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.android.settings.R;
@@ -42,11 +43,16 @@ import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowActivity.IntentForResult;
import org.robolectric.shadows.ShadowAlertDialog;
import org.robolectric.shadows.ShadowDialog;

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

@RunWith(SettingsRobolectricTestRunner.class)
@Config(
        manifest = TestConfig.MANIFEST_PATH,
@@ -79,6 +85,15 @@ public class SetupChooseLockPasswordTest {
        assertThat(ShadowDialog.getLatestDialog()).isNotNull();
    }

    @Test
    @Config(shadows = ShadowChooseLockGenericController.class)
    public void createActivity_withShowOptionsButtonExtra_buttonNotVisibleIfNoVisibleLockTypes() {
        SetupChooseLockPassword activity = createSetupChooseLockPassword();
        Button optionsButton = activity.findViewById(R.id.screen_lock_options);
        assertThat(optionsButton).isNotNull();
        assertThat(optionsButton.getVisibility()).isEqualTo(View.GONE);
    }

    @Test
    public void allSecurityOptions_shouldBeShown_When_OptionsButtonIsClicked() {
        SetupChooseLockPassword activity = createSetupChooseLockPassword();
@@ -122,4 +137,13 @@ public class SetupChooseLockPasswordTest {
        intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
        return Robolectric.buildActivity(SetupChooseLockPassword.class, intent).setup().get();
    }

    @Implements(ChooseLockGenericController.class)
    public static class ShadowChooseLockGenericController {
        @Implementation
        public List<ScreenLockType> getVisibleScreenLockTypes(int quality,
                boolean includeDisabled) {
            return Collections.emptyList();
        }
    }
}