diff options
author | Jian-Yang Liu <jianyliu@google.com> | 2019-10-30 12:23:58 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-10-30 12:23:58 -0700 |
commit | 269fe0141c481a96a24885f35ceab6c3a858e8e0 (patch) | |
tree | b7d92035e4c6ce85c9c9e2199d11945f71095b0c | |
parent | 31d18fb0c43e2ed2e4cbf478a342cdbffb8a7cc9 (diff) | |
parent | 76cb6c04a8427392466b127f04609f3c7166393f (diff) | |
download | Settings-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.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 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(); } } |