summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJian-Yang Liu <jianyliu@google.com>2019-10-30 12:23:58 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-10-30 12:23:58 -0700
commit269fe0141c481a96a24885f35ceab6c3a858e8e0 (patch)
treeb7d92035e4c6ce85c9c9e2199d11945f71095b0c
parent31d18fb0c43e2ed2e4cbf478a342cdbffb8a7cc9 (diff)
parent76cb6c04a8427392466b127f04609f3c7166393f (diff)
downloadSettings-269fe0141c481a96a24885f35ceab6c3a858e8e0.tar.gz
Merge "resolve merge conflicts of 741ceb5a7016876456f5a81407523e94eb897121 to qt-dev" into qt-dev am: 0f964c7278
am: 76cb6c04a8 Change-Id: Ic677116df6c51feaf3a75af0227aa5c45c31a362
-rw-r--r--src/com/android/car/settings/security/NoLockPreferenceController.java12
-rw-r--r--tests/robotests/src/com/android/car/settings/security/NoLockPreferenceControllerTest.java23
2 files changed, 29 insertions, 6 deletions
diff --git a/src/com/android/car/settings/security/NoLockPreferenceController.java b/src/com/android/car/settings/security/NoLockPreferenceController.java
index 316d43c11..989122ded 100644
--- a/src/com/android/car/settings/security/NoLockPreferenceController.java
+++ b/src/com/android/car/settings/security/NoLockPreferenceController.java
@@ -64,10 +64,16 @@ public class NoLockPreferenceController extends LockTypeBasePreferenceController
@Override
protected boolean handlePreferenceClicked(Preference preference) {
- ConfirmRemoveScreenLockDialog dialog = new ConfirmRemoveScreenLockDialog();
- dialog.setConfirmRemoveScreenLockListener(mRemoveLockListener);
- getFragmentController().showDialog(dialog,
+ if (isCurrentLock()) {
+ // No need to show dialog to confirm remove screen lock if screen lock is already
+ // removed, which is true if this controller is the current lock.
+ getFragmentController().goBack();
+ } else {
+ ConfirmRemoveScreenLockDialog dialog = new ConfirmRemoveScreenLockDialog();
+ dialog.setConfirmRemoveScreenLockListener(mRemoveLockListener);
+ getFragmentController().showDialog(dialog,
ConfirmRemoveScreenLockDialog.TAG);
+ }
return true;
}
diff --git a/tests/robotests/src/com/android/car/settings/security/NoLockPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/security/NoLockPreferenceControllerTest.java
index 8206fdaf9..a27607de0 100644
--- a/tests/robotests/src/com/android/car/settings/security/NoLockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/security/NoLockPreferenceControllerTest.java
@@ -23,6 +23,7 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.admin.DevicePolicyManager;
import android.car.userlib.CarUserManagerHelper;
import android.content.Context;
@@ -81,17 +82,31 @@ public class NoLockPreferenceControllerTest {
}
@Test
- public void testHandlePreferenceClicked_goesToNextFragment() {
+ public void testHandlePreferenceClicked_ifNotSelectedAsLock_goesToNextFragment() {
+ mController.setCurrentPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
+
mPreference.performClick();
- verify(mPreferenceControllerHelper.getMockFragmentController()).showDialog(
- any(ConfirmRemoveScreenLockDialog.class), anyString());
+
+ verify(mPreferenceControllerHelper.getMockFragmentController())
+ .showDialog(any(ConfirmRemoveScreenLockDialog.class), anyString());
+ }
+
+ @Test
+ public void testHandlePreferenceClicked_ifSelectedAsLock_goesBack() {
+ mController.setCurrentPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
+
+ mPreference.performClick();
+
+ verify(mPreferenceControllerHelper.getMockFragmentController()).goBack();
}
@Test
public void testConfirmRemoveScreenLockListener_removesLock() {
when(mCarUserManagerHelper.getCurrentProcessUserId()).thenReturn(TEST_USER);
mController.setCurrentPassword(TEST_CURRENT_PASSWORD);
+
mController.mRemoveLockListener.onConfirmRemoveScreenLock();
+
assertThat(ShadowLockPatternUtils.getClearLockCredential()).isEqualTo(
TEST_CURRENT_PASSWORD);
assertThat(ShadowLockPatternUtils.getClearLockUser()).isEqualTo(TEST_USER);
@@ -101,7 +116,9 @@ public class NoLockPreferenceControllerTest {
public void testConfirmRemoveScreenLockListener_goesBack() {
when(mCarUserManagerHelper.getCurrentProcessUserId()).thenReturn(TEST_USER);
mController.setCurrentPassword(TEST_CURRENT_PASSWORD);
+
mController.mRemoveLockListener.onConfirmRemoveScreenLock();
+
verify(mPreferenceControllerHelper.getMockFragmentController()).goBack();
}
}