diff options
| author | 2021-05-18 12:31:16 +0000 | |
|---|---|---|
| committer | 2021-05-18 12:31:16 +0000 | |
| commit | 5b53fb4fd7d64946bf13e9830be2fcc22d4bd4e5 (patch) | |
| tree | 7926b84608426797a554f516c4a8edc5dcdfe002 | |
| parent | 757c109f32163abf2386cdd09aa1eb18a2861d12 (diff) | |
| parent | b9d088b9021fa5521c92472bc02f6fd80bf76132 (diff) | |
Merge "Fixed the logic when dynamic privacy is enabled" into sc-dev
2 files changed, 28 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/DynamicPrivacyController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/DynamicPrivacyController.java index 9482c17a8769..a0ccd5726c75 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/DynamicPrivacyController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/DynamicPrivacyController.java @@ -19,6 +19,8 @@ package com.android.systemui.statusbar.notification; import android.annotation.Nullable; import android.util.ArraySet; +import androidx.annotation.VisibleForTesting; + import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.NotificationLockscreenUserManager; @@ -76,8 +78,9 @@ public class DynamicPrivacyController implements KeyguardStateController.Callbac } } - private boolean isDynamicPrivacyEnabled() { - return !mLockscreenUserManager.shouldHideNotifications( + @VisibleForTesting + boolean isDynamicPrivacyEnabled() { + return !mLockscreenUserManager.userAllowsPrivateNotificationsInPublic( mLockscreenUserManager.getCurrentUserId()); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/DynamicPrivacyControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/DynamicPrivacyControllerTest.java index 68cf66dfb700..7d06abf5cd67 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/DynamicPrivacyControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/DynamicPrivacyControllerTest.java @@ -16,6 +16,8 @@ package com.android.systemui.statusbar.notification; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.mock; @@ -60,13 +62,15 @@ public class DynamicPrivacyControllerTest extends SysuiTestCase { mDynamicPrivacyController.setStatusBarKeyguardViewManager( mock(StatusBarKeyguardViewManager.class)); mDynamicPrivacyController.addListener(mListener); + // Disable dynamic privacy by default + allowPrivateNotificationsInPublic(true); } @Test public void testDynamicFalseWhenCannotSkipBouncer() { enableDynamicPrivacy(); when(mKeyguardStateController.canDismissLockScreen()).thenReturn(false); - Assert.assertFalse("can't skip bouncer but is dynamically unlocked", + assertFalse("can't skip bouncer but is dynamically unlocked", mDynamicPrivacyController.isDynamicallyUnlocked()); } @@ -102,9 +106,26 @@ public class DynamicPrivacyControllerTest extends SysuiTestCase { verify(mListener).onDynamicPrivacyChanged(); } - private void enableDynamicPrivacy() { + @Test + public void dynamicPrivacyOnlyWhenHidingPrivate() { + // Verify that when only hiding notifications, this isn't enabled + allowPrivateNotificationsInPublic(true); when(mLockScreenUserManager.shouldHideNotifications(any())).thenReturn( false); + assertFalse("Dynamic privacy shouldn't be enabled when only hiding notifications", + mDynamicPrivacyController.isDynamicPrivacyEnabled()); + allowPrivateNotificationsInPublic(false); + assertTrue("Should be enabled when hiding notification contents", + mDynamicPrivacyController.isDynamicPrivacyEnabled()); + } + + private void enableDynamicPrivacy() { + allowPrivateNotificationsInPublic(false); + } + + private void allowPrivateNotificationsInPublic(boolean allow) { + when(mLockScreenUserManager.userAllowsPrivateNotificationsInPublic(anyInt())).thenReturn( + allow); } @Test |