summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/DynamicPrivacyController.java12
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/DynamicPrivacyControllerTest.java6
2 files changed, 15 insertions, 3 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 1250a8caa8bf..d9328fa3affd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/DynamicPrivacyController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/DynamicPrivacyController.java
@@ -25,6 +25,7 @@ import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.UnlockMethodCache;
+import com.android.systemui.statusbar.policy.KeyguardMonitor;
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -38,6 +39,7 @@ public class DynamicPrivacyController implements UnlockMethodCache.OnUnlockMetho
private final UnlockMethodCache mUnlockMethodCache;
private final NotificationLockscreenUserManager mLockscreenUserManager;
private final StatusBarStateController mStateController;
+ private final KeyguardMonitor mKeyguardMonitor;
private ArraySet<Listener> mListeners = new ArraySet<>();
private boolean mLastDynamicUnlocked;
@@ -46,19 +48,23 @@ public class DynamicPrivacyController implements UnlockMethodCache.OnUnlockMetho
@Inject
DynamicPrivacyController(Context context,
+ KeyguardMonitor keyguardMonitor,
NotificationLockscreenUserManager notificationLockscreenUserManager,
StatusBarStateController stateController) {
- this(notificationLockscreenUserManager, UnlockMethodCache.getInstance(context),
+ this(notificationLockscreenUserManager, keyguardMonitor,
+ UnlockMethodCache.getInstance(context),
stateController);
}
@VisibleForTesting
DynamicPrivacyController(NotificationLockscreenUserManager notificationLockscreenUserManager,
+ KeyguardMonitor keyguardMonitor,
UnlockMethodCache unlockMethodCache,
StatusBarStateController stateController) {
mLockscreenUserManager = notificationLockscreenUserManager;
mStateController = stateController;
mUnlockMethodCache = unlockMethodCache;
+ mKeyguardMonitor = keyguardMonitor;
mUnlockMethodCache.addListener(this);
mLastDynamicUnlocked = isDynamicallyUnlocked();
}
@@ -86,7 +92,9 @@ public class DynamicPrivacyController implements UnlockMethodCache.OnUnlockMetho
}
public boolean isDynamicallyUnlocked() {
- return mUnlockMethodCache.canSkipBouncer() && isDynamicPrivacyEnabled();
+ return (mUnlockMethodCache.canSkipBouncer() || mKeyguardMonitor.isKeyguardGoingAway()
+ || mKeyguardMonitor.isKeyguardFadingAway())
+ && isDynamicPrivacyEnabled();
}
public void addListener(Listener listener) {
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 5a056ac17b0a..d804b6f5c5ee 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
@@ -34,6 +34,7 @@ import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationViewHierarchyManager;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.UnlockMethodCache;
+import com.android.systemui.statusbar.policy.KeyguardMonitor;
import org.junit.Assert;
import org.junit.Before;
@@ -53,12 +54,15 @@ public class DynamicPrivacyControllerTest extends SysuiTestCase {
= mock(NotificationLockscreenUserManager.class);
private DynamicPrivacyController.Listener mListener
= mock(DynamicPrivacyController.Listener.class);
+ private KeyguardMonitor mKeyguardMonitor = mock(KeyguardMonitor.class);
@Before
public void setUp() throws Exception {
when(mCache.canSkipBouncer()).thenReturn(false);
+ when(mKeyguardMonitor.isShowing()).thenReturn(true);
mDynamicPrivacyController = new DynamicPrivacyController(
- mLockScreenUserManager, mCache, mock(StatusBarStateController.class));
+ mLockScreenUserManager, mKeyguardMonitor, mCache,
+ mock(StatusBarStateController.class));
mDynamicPrivacyController.setStatusBarKeyguardViewManager(
mock(StatusBarKeyguardViewManager.class));
mDynamicPrivacyController.addListener(mListener);