Loading src/com/android/settings/password/SetupChooseLockPassword.java +16 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading Loading @@ -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); Loading tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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, Loading Loading @@ -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(); Loading Loading @@ -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(); } } } Loading
src/com/android/settings/password/SetupChooseLockPassword.java +16 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading Loading @@ -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); Loading
tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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, Loading Loading @@ -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(); Loading Loading @@ -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(); } } }