Merge "Pass keyguard occlude state to onLaunchAnimationCancelled." into tm-qpr-dev

This commit is contained in:
Josh Tsuji
2022-09-15 20:55:57 +00:00
committed by Android (Google) Code Review
7 changed files with 29 additions and 10 deletions

View File

@@ -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)
}
}

View File

@@ -238,7 +238,7 @@ constructor(
}
}
override fun onLaunchAnimationCancelled() {
override fun onLaunchAnimationCancelled(newKeyguardOccludedState: Boolean?) {
controller.onLaunchAnimationCancelled()
enableDialogDismiss()
dialog.dismiss()

View File

@@ -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);
}

View File

@@ -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)

View File

@@ -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) {

View File

@@ -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)

View File

@@ -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()
}
}