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

am: 0bde6dcb18

Change-Id: I7b2ba35b04f53e28ad98eec54b8fe42811a6eb8d
This commit is contained in:
Ajay Nadathur
2017-07-12 18:04:26 +00:00
committed by android-build-merger
2 changed files with 40 additions and 2 deletions

View File

@@ -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);

View File

@@ -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();
}
}
}