summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java30
2 files changed, 30 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
index 11ceedf79227..77ae059a0cb9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
@@ -502,7 +502,7 @@ public class LockscreenLockIconController {
* @return true if the visibility changed
*/
private boolean updateIconVisibility() {
- boolean onAodOrDocked = mStatusBarStateController.isDozing() && mDocked;
+ boolean onAodOrDocked = mStatusBarStateController.isDozing() || mDocked;
boolean invisible = onAodOrDocked || mWakeAndUnlockRunning || mShowingLaunchAffordance;
boolean fingerprintOrBypass = mFingerprintUnlock
|| mKeyguardBypassController.getBypassEnabled();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java
index 85b5d70c883c..06d0331543da 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java
@@ -18,11 +18,13 @@ package com.android.systemui.statusbar.phone;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.res.Resources;
import android.view.View;
+import android.view.View.OnAttachStateChangeListener;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
@@ -48,7 +50,6 @@ import org.mockito.MockitoAnnotations;
@SmallTest
@RunWith(AndroidJUnit4.class)
public class LockscreenIconControllerTest extends SysuiTestCase {
- private LockscreenLockIconController mLockIconController;
@Mock
private LockscreenGestureLogger mLockscreenGestureLogger;
@Mock
@@ -80,11 +81,15 @@ public class LockscreenIconControllerTest extends SysuiTestCase {
@Mock
private HeadsUpManagerPhone mHeadsUpManagerPhone;
+ private LockscreenLockIconController mLockIconController;
+ private OnAttachStateChangeListener mOnAttachStateChangeListener;
+
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ when(mLockIcon.getContext()).thenReturn(mContext);
mLockIconController = new LockscreenLockIconController(
mLockscreenGestureLogger, mKeyguardUpdateMonitor, mLockPatternUtils,
mShadeController, mAccessibilityController, mKeyguardIndicationController,
@@ -92,7 +97,15 @@ public class LockscreenIconControllerTest extends SysuiTestCase {
mKeyguardBypassController, mDockManager, mKeyguardStateController, mResources,
mHeadsUpManagerPhone);
+ ArgumentCaptor<OnAttachStateChangeListener> onAttachStateChangeListenerArgumentCaptor =
+ ArgumentCaptor.forClass(OnAttachStateChangeListener.class);
+
+ doNothing().when(mLockIcon)
+ .addOnAttachStateChangeListener(
+ onAttachStateChangeListenerArgumentCaptor.capture());
mLockIconController.attach(mLockIcon);
+
+ mOnAttachStateChangeListener = onAttachStateChangeListenerArgumentCaptor.getValue();
}
@Test
@@ -114,4 +127,19 @@ public class LockscreenIconControllerTest extends SysuiTestCase {
verify(mLockPatternUtils).requireCredentialEntry(anyInt());
verify(mKeyguardUpdateMonitor).onLockIconPressed();
}
+
+ @Test
+ public void testVisibility_Dozing() {
+ ArgumentCaptor<StatusBarStateController.StateListener> sBStateListenerCaptor =
+ ArgumentCaptor.forClass(StatusBarStateController.StateListener.class);
+
+ mOnAttachStateChangeListener.onViewAttachedToWindow(mLockIcon);
+ verify(mStatusBarStateController).addCallback(sBStateListenerCaptor.capture());
+
+ when(mStatusBarStateController.isDozing()).thenReturn(true);
+ sBStateListenerCaptor.getValue().onDozingChanged(true);
+
+ verify(mLockIcon).updateIconVisibility(false);
+
+ }
}