summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Selim Cinek <cinek@google.com> 2021-05-18 12:31:16 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-05-18 12:31:16 +0000
commit5b53fb4fd7d64946bf13e9830be2fcc22d4bd4e5 (patch)
tree7926b84608426797a554f516c4a8edc5dcdfe002
parent757c109f32163abf2386cdd09aa1eb18a2861d12 (diff)
parentb9d088b9021fa5521c92472bc02f6fd80bf76132 (diff)
Merge "Fixed the logic when dynamic privacy is enabled" into sc-dev
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/DynamicPrivacyController.java7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/DynamicPrivacyControllerTest.java25
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