summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJian-Yang Liu <jianyliu@google.com>2019-10-22 17:11:15 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-10-22 17:11:15 +0000
commit741ceb5a7016876456f5a81407523e94eb897121 (patch)
treebfc8281198842279375e06b9d6a9f7afdfcb6e74
parentb1ef8f8905cfc67d7a1c336631fe8287023b2fbf (diff)
parent77142533dafc8290579e0fa0de288216b72a4f02 (diff)
downloadSettings-741ceb5a7016876456f5a81407523e94eb897121.tar.gz
Merge "Changed Security - None preference to not show dialog when it is currently selected and None is selected again." into pi-car-dev
-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 bf34e3474..ed6e3a7cd 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;
@@ -85,17 +86,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();
+
verify(mLockPatternUtils).clearLock(TEST_CURRENT_PASSWORD, TEST_USER);
}
@@ -103,7 +118,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();
}
}