Merge "Pass keyguard occlude state to onLaunchAnimationCancelled." into tm-qpr-dev
This commit is contained in:
@@ -352,8 +352,11 @@ class ActivityLaunchAnimator(
|
||||
* The animation was cancelled. Note that [onLaunchAnimationEnd] will still be called after
|
||||
* this if the animation was already started, i.e. if [onLaunchAnimationStart] was called
|
||||
* before the cancellation.
|
||||
*
|
||||
* If this launch animation affected the occlusion state of the keyguard, WM will provide
|
||||
* us with [newKeyguardOccludedState] so that we can set the occluded state appropriately.
|
||||
*/
|
||||
fun onLaunchAnimationCancelled() {}
|
||||
fun onLaunchAnimationCancelled(newKeyguardOccludedState: Boolean? = null) {}
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -667,7 +670,7 @@ class ActivityLaunchAnimator(
|
||||
removeTimeout()
|
||||
context.mainExecutor.execute {
|
||||
animation?.cancel()
|
||||
controller.onLaunchAnimationCancelled()
|
||||
controller.onLaunchAnimationCancelled(newKeyguardOccludedState = isKeyguardOccluded)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -238,7 +238,7 @@ constructor(
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLaunchAnimationCancelled() {
|
||||
override fun onLaunchAnimationCancelled(newKeyguardOccludedState: Boolean?) {
|
||||
controller.onLaunchAnimationCancelled()
|
||||
enableDialogDismiss()
|
||||
dialog.dismiss()
|
||||
|
||||
@@ -831,7 +831,7 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable,
|
||||
public void onLaunchAnimationStart(boolean isExpandingFullyAbove) {}
|
||||
|
||||
@Override
|
||||
public void onLaunchAnimationCancelled() {
|
||||
public void onLaunchAnimationCancelled(@Nullable Boolean newKeyguardOccludedState) {
|
||||
Log.d(TAG, "Occlude launch animation cancelled. Occluded state is now: "
|
||||
+ mOccluded);
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@ class NotificationLaunchAnimatorController(
|
||||
headsUpManager.removeNotification(notificationKey, true /* releaseImmediately */, animate)
|
||||
}
|
||||
|
||||
override fun onLaunchAnimationCancelled() {
|
||||
override fun onLaunchAnimationCancelled(newKeyguardOccludedState: Boolean?) {
|
||||
// TODO(b/184121838): Should we call InteractionJankMonitor.cancel if the animation started
|
||||
// here?
|
||||
notificationShadeWindowViewController.setExpandAnimationRunning(false)
|
||||
|
||||
@@ -1737,13 +1737,18 @@ public class CentralSurfacesImpl extends CoreStartable implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLaunchAnimationCancelled() {
|
||||
public void onLaunchAnimationCancelled(@Nullable Boolean newKeyguardOccludedState) {
|
||||
if (newKeyguardOccludedState != null) {
|
||||
mKeyguardViewMediator.setOccluded(
|
||||
newKeyguardOccludedState, false /* animate */);
|
||||
}
|
||||
|
||||
// Set mIsLaunchingActivityOverLockscreen to false before actually finishing the
|
||||
// animation so that we can assume that mIsLaunchingActivityOverLockscreen
|
||||
// being true means that we will collapse the shade (or at least run the
|
||||
// post collapse runnables) later on.
|
||||
CentralSurfacesImpl.this.mIsLaunchingActivityOverLockscreen = false;
|
||||
getDelegate().onLaunchAnimationCancelled();
|
||||
getDelegate().onLaunchAnimationCancelled(newKeyguardOccludedState);
|
||||
}
|
||||
};
|
||||
} else if (dismissShade) {
|
||||
|
||||
@@ -51,7 +51,7 @@ class StatusBarLaunchAnimatorController(
|
||||
centralSurfaces.notificationPanelViewController.applyLaunchAnimationProgress(linearProgress)
|
||||
}
|
||||
|
||||
override fun onLaunchAnimationCancelled() {
|
||||
override fun onLaunchAnimationCancelled(newKeyguardOccludedState: Boolean?) {
|
||||
delegate.onLaunchAnimationCancelled()
|
||||
centralSurfaces.notificationPanelViewController.setIsLaunchAnimationRunning(false)
|
||||
centralSurfaces.onLaunchAnimationCancelled(isLaunchForActivity)
|
||||
|
||||
@@ -161,7 +161,18 @@ class ActivityLaunchAnimatorTest : SysuiTestCase() {
|
||||
runner.onAnimationStart(0, emptyArray(), emptyArray(), emptyArray(), iCallback)
|
||||
|
||||
waitForIdleSync()
|
||||
verify(controller).onLaunchAnimationCancelled()
|
||||
verify(controller).onLaunchAnimationCancelled(false /* newKeyguardOccludedState */)
|
||||
verify(controller, never()).onLaunchAnimationStart(anyBoolean())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun passesOccludedStateToLaunchAnimationCancelled_ifTrue() {
|
||||
val runner = activityLaunchAnimator.createRunner(controller)
|
||||
runner.onAnimationCancelled(true /* isKeyguardOccluded */)
|
||||
runner.onAnimationStart(0, emptyArray(), emptyArray(), emptyArray(), iCallback)
|
||||
|
||||
waitForIdleSync()
|
||||
verify(controller).onLaunchAnimationCancelled(true /* newKeyguardOccludedState */)
|
||||
verify(controller, never()).onLaunchAnimationStart(anyBoolean())
|
||||
}
|
||||
|
||||
@@ -253,7 +264,7 @@ private class TestLaunchAnimatorController(override var launchContainer: ViewGro
|
||||
assertOnMainThread()
|
||||
}
|
||||
|
||||
override fun onLaunchAnimationCancelled() {
|
||||
override fun onLaunchAnimationCancelled(newKeyguardOccludedState: Boolean?) {
|
||||
assertOnMainThread()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user