Merge "Fix issue where onKeyguardOccludedChanged isn't called when occluded changes" into sc-v2-dev am: 2ab0199786
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16241358 Change-Id: Ie80f921df078a45a210ce9500273ac30fe680318
This commit is contained in:
@@ -627,7 +627,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
|||||||
SysUiStatsLog.write(SysUiStatsLog.KEYGUARD_STATE_CHANGED,
|
SysUiStatsLog.write(SysUiStatsLog.KEYGUARD_STATE_CHANGED,
|
||||||
SysUiStatsLog.KEYGUARD_STATE_CHANGED__STATE__OCCLUDED);
|
SysUiStatsLog.KEYGUARD_STATE_CHANGED__STATE__OCCLUDED);
|
||||||
if (mStatusBar.isInLaunchTransition()) {
|
if (mStatusBar.isInLaunchTransition()) {
|
||||||
mOccluded = true;
|
setOccludedAndUpdateStates(true);
|
||||||
mStatusBar.fadeKeyguardAfterLaunchTransition(null /* beforeFading */,
|
mStatusBar.fadeKeyguardAfterLaunchTransition(null /* beforeFading */,
|
||||||
new Runnable() {
|
new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@@ -640,7 +640,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mStatusBar.isLaunchingActivityOverLockscreen()) {
|
if (mStatusBar.isLaunchingActivityOverLockscreen()) {
|
||||||
mOccluded = true;
|
setOccludedAndUpdateStates(true);
|
||||||
|
|
||||||
// When isLaunchingActivityOverLockscreen() is true, we know for sure that the post
|
// When isLaunchingActivityOverLockscreen() is true, we know for sure that the post
|
||||||
// collapse runnables will be run.
|
// collapse runnables will be run.
|
||||||
@@ -655,7 +655,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
|||||||
SysUiStatsLog.KEYGUARD_STATE_CHANGED__STATE__SHOWN);
|
SysUiStatsLog.KEYGUARD_STATE_CHANGED__STATE__SHOWN);
|
||||||
}
|
}
|
||||||
boolean isOccluding = !mOccluded && occluded;
|
boolean isOccluding = !mOccluded && occluded;
|
||||||
mOccluded = occluded;
|
setOccludedAndUpdateStates(occluded);
|
||||||
if (mShowing) {
|
if (mShowing) {
|
||||||
mMediaManager.updateMediaMetaData(false, animate && !occluded);
|
mMediaManager.updateMediaMetaData(false, animate && !occluded);
|
||||||
}
|
}
|
||||||
@@ -672,6 +672,11 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setOccludedAndUpdateStates(boolean occluded) {
|
||||||
|
mOccluded = occluded;
|
||||||
|
updateStates();
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isOccluded() {
|
public boolean isOccluded() {
|
||||||
return mOccluded;
|
return mOccluded;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,8 +61,6 @@ import org.junit.runner.RunWith;
|
|||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
|
|
||||||
import dagger.Lazy;
|
|
||||||
|
|
||||||
@SmallTest
|
@SmallTest
|
||||||
@RunWith(AndroidTestingRunner.class)
|
@RunWith(AndroidTestingRunner.class)
|
||||||
@TestableLooper.RunWithLooper
|
@TestableLooper.RunWithLooper
|
||||||
@@ -87,6 +85,8 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
|
|||||||
@Mock
|
@Mock
|
||||||
private SysuiStatusBarStateController mStatusBarStateController;
|
private SysuiStatusBarStateController mStatusBarStateController;
|
||||||
@Mock
|
@Mock
|
||||||
|
private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||||
|
@Mock
|
||||||
private View mNotificationContainer;
|
private View mNotificationContainer;
|
||||||
@Mock
|
@Mock
|
||||||
private KeyguardBypassController mBypassController;
|
private KeyguardBypassController mBypassController;
|
||||||
@@ -103,7 +103,7 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
|
|||||||
@Mock
|
@Mock
|
||||||
private KeyguardMessageArea mKeyguardMessageArea;
|
private KeyguardMessageArea mKeyguardMessageArea;
|
||||||
@Mock
|
@Mock
|
||||||
private Lazy<ShadeController> mShadeController;
|
private ShadeController mShadeController;
|
||||||
|
|
||||||
private WakefulnessLifecycle mWakefulnessLifecycle;
|
private WakefulnessLifecycle mWakefulnessLifecycle;
|
||||||
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
||||||
@@ -127,7 +127,7 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
|
|||||||
mLockPatternUtils,
|
mLockPatternUtils,
|
||||||
mStatusBarStateController,
|
mStatusBarStateController,
|
||||||
mock(ConfigurationController.class),
|
mock(ConfigurationController.class),
|
||||||
mock(KeyguardUpdateMonitor.class),
|
mKeyguardUpdateMonitor,
|
||||||
mock(NavigationModeController.class),
|
mock(NavigationModeController.class),
|
||||||
mock(DockManager.class),
|
mock(DockManager.class),
|
||||||
mock(NotificationShadeWindowController.class),
|
mock(NotificationShadeWindowController.class),
|
||||||
@@ -137,7 +137,7 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
|
|||||||
mWakefulnessLifecycle,
|
mWakefulnessLifecycle,
|
||||||
mUnlockedScreenOffAnimationController,
|
mUnlockedScreenOffAnimationController,
|
||||||
mKeyguardMessageAreaFactory,
|
mKeyguardMessageAreaFactory,
|
||||||
mShadeController);
|
() -> mShadeController);
|
||||||
mStatusBarKeyguardViewManager.registerStatusBar(
|
mStatusBarKeyguardViewManager.registerStatusBar(
|
||||||
mStatusBar,
|
mStatusBar,
|
||||||
mNotificationPanelView,
|
mNotificationPanelView,
|
||||||
@@ -291,6 +291,45 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
|
|||||||
verify(mStatusBar, never()).animateKeyguardUnoccluding();
|
verify(mStatusBar, never()).animateKeyguardUnoccluding();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setOccluded_onKeyguardOccludedChangedCalledCorrectly() {
|
||||||
|
mStatusBarKeyguardViewManager.setOccluded(false /* occluded */, false /* animated */);
|
||||||
|
verify(mKeyguardUpdateMonitor).onKeyguardOccludedChanged(false);
|
||||||
|
|
||||||
|
clearInvocations(mKeyguardUpdateMonitor);
|
||||||
|
|
||||||
|
mStatusBarKeyguardViewManager.setOccluded(false /* occluded */, false /* animated */);
|
||||||
|
verify(mKeyguardUpdateMonitor, never()).onKeyguardOccludedChanged(anyBoolean());
|
||||||
|
|
||||||
|
clearInvocations(mKeyguardUpdateMonitor);
|
||||||
|
|
||||||
|
mStatusBarKeyguardViewManager.setOccluded(true /* occluded */, false /* animated */);
|
||||||
|
verify(mKeyguardUpdateMonitor).onKeyguardOccludedChanged(true);
|
||||||
|
|
||||||
|
clearInvocations(mKeyguardUpdateMonitor);
|
||||||
|
|
||||||
|
mStatusBarKeyguardViewManager.setOccluded(true /* occluded */, false /* animated */);
|
||||||
|
verify(mKeyguardUpdateMonitor, never()).onKeyguardOccludedChanged(anyBoolean());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setOccluded_isInLaunchTransition_onKeyguardOccludedChangedCalled() {
|
||||||
|
when(mStatusBar.isInLaunchTransition()).thenReturn(true);
|
||||||
|
mStatusBarKeyguardViewManager.show(null);
|
||||||
|
|
||||||
|
mStatusBarKeyguardViewManager.setOccluded(true /* occluded */, false /* animated */);
|
||||||
|
verify(mKeyguardUpdateMonitor).onKeyguardOccludedChanged(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setOccluded_isLaunchingActivityOverLockscreen_onKeyguardOccludedChangedCalled() {
|
||||||
|
when(mStatusBar.isLaunchingActivityOverLockscreen()).thenReturn(true);
|
||||||
|
mStatusBarKeyguardViewManager.show(null);
|
||||||
|
|
||||||
|
mStatusBarKeyguardViewManager.setOccluded(true /* occluded */, false /* animated */);
|
||||||
|
verify(mKeyguardUpdateMonitor).onKeyguardOccludedChanged(true);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testHiding_cancelsGoneRunnable() {
|
public void testHiding_cancelsGoneRunnable() {
|
||||||
OnDismissAction action = mock(OnDismissAction.class);
|
OnDismissAction action = mock(OnDismissAction.class);
|
||||||
|
|||||||
Reference in New Issue
Block a user