diff options
author | Jian-Yang Liu <jianyliu@google.com> | 2019-10-22 17:11:15 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-10-22 17:11:15 +0000 |
commit | 741ceb5a7016876456f5a81407523e94eb897121 (patch) | |
tree | bfc8281198842279375e06b9d6a9f7afdfcb6e74 | |
parent | b1ef8f8905cfc67d7a1c336631fe8287023b2fbf (diff) | |
parent | 77142533dafc8290579e0fa0de288216b72a4f02 (diff) | |
download | Settings-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.java | 12 | ||||
-rw-r--r-- | tests/robotests/src/com/android/car/settings/security/NoLockPreferenceControllerTest.java | 23 |
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(); } } |