Merge "Do not show options if screen lock types is empty" into oc-dr1-dev am: 0bde6dcb18
am: 3d627974d6
Change-Id: Ib062bcdfc23008dab14622e4741fca6dc30e5950
This commit is contained in:
@@ -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,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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user