Use an empty transitioninfo for force-sleep

This way, if the sleep transition has content, it won't
be prematurely free'd by one of the "signal" merges.

Bug: 276144574
Test: reduction in reports
Change-Id: If1b255b3e55d7de74dd9358499fea98fd61c310e
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/SleepHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/SleepHandler.java
index 1879bf7..d279595 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/SleepHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/SleepHandler.java
@@ -41,9 +41,9 @@
             @NonNull SurfaceControl.Transaction startTransaction,
             @NonNull SurfaceControl.Transaction finishTransaction,
             @NonNull Transitions.TransitionFinishCallback finishCallback) {
+        mSleepTransitions.remove(transition);
         startTransaction.apply();
         finishCallback.onTransitionFinished(null, null);
-        mSleepTransitions.remove(transition);
         return true;
     }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java
index 681fa51..fa4de16 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java
@@ -986,6 +986,7 @@
             onFinish(forceFinish, null, null);
         }
         final SurfaceControl.Transaction dummyT = new SurfaceControl.Transaction();
+        final TransitionInfo dummyInfo = new TransitionInfo(TRANSIT_SLEEP, 0 /* flags */);
         while (!mActiveTransitions.isEmpty() && !mSleepHandler.mSleepTransitions.isEmpty()) {
             final ActiveTransition playing = mActiveTransitions.get(0);
             int sleepIdx = findByToken(mReadyTransitions, mSleepHandler.mSleepTransitions.get(0));
@@ -995,7 +996,7 @@
                 final ActiveTransition nextSleep = mReadyTransitions.get(sleepIdx);
                 ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TRANSITIONS, " Attempt to merge SLEEP %s"
                         + " into %s", nextSleep, playing);
-                playing.mHandler.mergeAnimation(nextSleep.mToken, nextSleep.mInfo, dummyT,
+                playing.mHandler.mergeAnimation(nextSleep.mToken, dummyInfo, dummyT,
                         playing.mToken, (wct, cb) -> {});
             } else {
                 Log.e(TAG, "Couldn't find sleep transition in ready list: "