Merge "Fixed the logic when dynamic privacy is enabled" into sc-dev

This commit is contained in:
Selim Cinek
2021-05-18 12:31:16 +00:00
committed by Android (Google) Code Review
2 changed files with 28 additions and 4 deletions

View File

@@ -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());
}

View File

@@ -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