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.Activity;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
@@ -43,6 +45,8 @@ import com.android.setupwizardlib.util.WizardManagerHelper;
|
|||||||
*/
|
*/
|
||||||
public class SetupChooseLockPassword extends ChooseLockPassword {
|
public class SetupChooseLockPassword extends ChooseLockPassword {
|
||||||
|
|
||||||
|
private static final String TAG = "SetupChooseLockPassword";
|
||||||
|
|
||||||
public static Intent modifyIntentForSetup(
|
public static Intent modifyIntentForSetup(
|
||||||
Context context,
|
Context context,
|
||||||
Intent chooseLockPasswordIntent) {
|
Intent chooseLockPasswordIntent) {
|
||||||
@@ -87,9 +91,19 @@ public class SetupChooseLockPassword extends ChooseLockPassword {
|
|||||||
mCancelButton.setText(R.string.skip_label);
|
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);
|
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 = view.findViewById(R.id.screen_lock_options);
|
||||||
mOptionsButton.setVisibility(View.VISIBLE);
|
mOptionsButton.setVisibility(View.VISIBLE);
|
||||||
mOptionsButton.setOnClickListener(this);
|
mOptionsButton.setOnClickListener(this);
|
||||||
|
@@ -24,6 +24,7 @@ import static org.robolectric.Shadows.shadowOf;
|
|||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -42,11 +43,16 @@ import org.junit.runner.RunWith;
|
|||||||
import org.robolectric.Robolectric;
|
import org.robolectric.Robolectric;
|
||||||
import org.robolectric.Shadows;
|
import org.robolectric.Shadows;
|
||||||
import org.robolectric.annotation.Config;
|
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;
|
||||||
import org.robolectric.shadows.ShadowActivity.IntentForResult;
|
import org.robolectric.shadows.ShadowActivity.IntentForResult;
|
||||||
import org.robolectric.shadows.ShadowAlertDialog;
|
import org.robolectric.shadows.ShadowAlertDialog;
|
||||||
import org.robolectric.shadows.ShadowDialog;
|
import org.robolectric.shadows.ShadowDialog;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
@Config(
|
@Config(
|
||||||
manifest = TestConfig.MANIFEST_PATH,
|
manifest = TestConfig.MANIFEST_PATH,
|
||||||
@@ -79,6 +85,15 @@ public class SetupChooseLockPasswordTest {
|
|||||||
assertThat(ShadowDialog.getLatestDialog()).isNotNull();
|
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
|
@Test
|
||||||
public void allSecurityOptions_shouldBeShown_When_OptionsButtonIsClicked() {
|
public void allSecurityOptions_shouldBeShown_When_OptionsButtonIsClicked() {
|
||||||
SetupChooseLockPassword activity = createSetupChooseLockPassword();
|
SetupChooseLockPassword activity = createSetupChooseLockPassword();
|
||||||
@@ -122,4 +137,13 @@ public class SetupChooseLockPasswordTest {
|
|||||||
intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
|
intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
|
||||||
return Robolectric.buildActivity(SetupChooseLockPassword.class, intent).setup().get();
|
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