Loading data/etc/services.core.protolog.json +6 −6 Original line number Diff line number Diff line Loading @@ -1183,12 +1183,6 @@ "group": "WM_DEBUG_APP_TRANSITIONS", "at": "com\/android\/server\/wm\/AppTransitionController.java" }, "292555239": { "message": "ScreenRotation sill animating: mDisplayAnimator: %s\nmEnterBlackFrameAnimator: %s\nmRotateScreenAnimator: %s\nmScreenshotRotationAnimator: %s", "level": "VERBOSE", "group": "WM_DEBUG_ORIENTATION", "at": "com\/android\/server\/wm\/ScreenRotationAnimation.java" }, "292904800": { "message": "Deferring rotation, animation in progress.", "level": "VERBOSE", Loading Loading @@ -1693,6 +1687,12 @@ "group": "WM_ERROR", "at": "com\/android\/server\/wm\/WindowManagerService.java" }, "1346895820": { "message": "ScreenRotation still animating: type: %d\nmDisplayAnimator: %s\nmEnterBlackFrameAnimator: %s\nmRotateScreenAnimator: %s\nmScreenshotRotationAnimator: %s", "level": "VERBOSE", "group": "WM_DEBUG_ORIENTATION", "at": "com\/android\/server\/wm\/ScreenRotationAnimation.java" }, "1358462645": { "message": "Looking for focus: %s, flags=%d, canReceive=%b", "level": "VERBOSE", Loading services/core/java/com/android/server/wm/ActivityRecord.java +8 −4 Original line number Diff line number Diff line Loading @@ -196,6 +196,7 @@ import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM; import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT; import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION; import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION; import static com.android.server.wm.TaskPersister.DEBUG; import static com.android.server.wm.TaskPersister.IMAGE_EXTENSION; import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN; Loading Loading @@ -311,6 +312,8 @@ import com.android.server.protolog.common.ProtoLog; import com.android.server.uri.UriPermissionOwner; import com.android.server.wm.ActivityMetricsLogger.TransitionInfoSnapshot; import com.android.server.wm.ActivityStack.ActivityState; import com.android.server.wm.SurfaceAnimator.AnimationType; import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback; import com.android.server.wm.WindowManagerService.H; import com.android.server.wm.utils.InsetUtils; Loading Loading @@ -4080,7 +4083,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A @Override boolean applyAnimation(WindowManager.LayoutParams lp, int transit, boolean enter, boolean isVoiceInteraction, @Nullable Runnable animationFinishedCallback) { boolean isVoiceInteraction, @Nullable OnAnimationFinishedCallback animationFinishedCallback) { if (mUseTransferredAnimation) { return false; } Loading Loading @@ -4158,7 +4162,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // We aren't delayed anything, but exiting windows rely on the animation finished // callback being called in case the ActivityRecord was pretending to be delayed, // which we might have done because we were in closing/opening apps list. onAnimationFinished(); onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, null /* AnimationAdapter */); if (visible) { // The token was made immediately visible, there will be no entrance animation. // We need to inform the client the enter animation was finished. Loading Loading @@ -6054,8 +6058,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } @Override protected void onAnimationFinished() { super.onAnimationFinished(); protected void onAnimationFinished(@AnimationType int type, AnimationAdapter anim) { super.onAnimationFinished(type, anim); Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "AR#onAnimationFinished"); mTransit = TRANSIT_UNSET; Loading services/core/java/com/android/server/wm/AnimationAdapter.java +3 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.view.SurfaceControl; import android.view.SurfaceControl.Transaction; import android.view.animation.Animation; import com.android.server.wm.SurfaceAnimator.AnimationType; import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback; import java.io.PrintWriter; Loading @@ -47,9 +48,10 @@ interface AnimationAdapter { * component running the animation after {@code finishCallback} has been * invoked, or after the animation was cancelled. * @param t The Transaction to apply the initial frame of the animation. * @param type The type of the animation. * @param finishCallback The callback to be invoked when the animation has finished. */ void startAnimation(SurfaceControl animationLeash, Transaction t, void startAnimation(SurfaceControl animationLeash, Transaction t, @AnimationType int type, OnAnimationFinishedCallback finishCallback); /** Loading services/core/java/com/android/server/wm/AppTransitionController.java +2 −2 Original line number Diff line number Diff line Loading @@ -377,9 +377,9 @@ public class AppTransitionController { transitioningDecendants.add(app); } } wc.applyAnimation(animLp, transit, visible, voiceInteraction, () -> { wc.applyAnimation(animLp, transit, visible, voiceInteraction, (type, anim) -> { for (int j = 0; j < transitioningDecendants.size(); ++j) { transitioningDecendants.get(j).onAnimationFinished(); transitioningDecendants.get(j).onAnimationFinished(type, anim); } }); } Loading services/core/java/com/android/server/wm/Dimmer.java +7 −4 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.server.wm.AlphaAnimationSpecProto.DURATION_MS; import static com.android.server.wm.AlphaAnimationSpecProto.FROM; import static com.android.server.wm.AlphaAnimationSpecProto.TO; import static com.android.server.wm.AnimationSpecProto.ALPHA; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_DIMMER; import android.annotation.Nullable; import android.graphics.Rect; Loading @@ -29,6 +30,8 @@ import android.view.Surface; import android.view.SurfaceControl; import com.android.internal.annotations.VisibleForTesting; import com.android.server.wm.SurfaceAnimator.AnimationType; import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback; import java.io.PrintWriter; Loading Loading @@ -135,7 +138,7 @@ class Dimmer { mDimLayer = dimLayer; mDimming = true; final DimAnimatable dimAnimatable = new DimAnimatable(dimLayer); mSurfaceAnimator = new SurfaceAnimator(dimAnimatable, () -> { mSurfaceAnimator = new SurfaceAnimator(dimAnimatable, (type, anim) -> { if (!mDimming) { dimAnimatable.removeSurface(); } Loading @@ -157,8 +160,8 @@ class Dimmer { @VisibleForTesting interface SurfaceAnimatorStarter { void startAnimation(SurfaceAnimator surfaceAnimator, SurfaceControl.Transaction t, AnimationAdapter anim, boolean hidden, @Nullable Runnable animationFinishedCallback); AnimationAdapter anim, boolean hidden, @AnimationType int type, @Nullable OnAnimationFinishedCallback animationFinishedCallback); } Dimmer(WindowContainer host) { Loading Loading @@ -345,7 +348,7 @@ class Dimmer { mSurfaceAnimatorStarter.startAnimation(animator, t, new LocalAnimationAdapter( new AlphaAnimationSpec(startAlpha, endAlpha, getDimDuration(container)), mHost.mWmService.mSurfaceAnimationRunner), false /* hidden */, null /* animationFinishedCallback */); ANIMATION_TYPE_DIMMER, null /* animationFinishedCallback */); } private long getDimDuration(WindowContainer container) { Loading Loading
data/etc/services.core.protolog.json +6 −6 Original line number Diff line number Diff line Loading @@ -1183,12 +1183,6 @@ "group": "WM_DEBUG_APP_TRANSITIONS", "at": "com\/android\/server\/wm\/AppTransitionController.java" }, "292555239": { "message": "ScreenRotation sill animating: mDisplayAnimator: %s\nmEnterBlackFrameAnimator: %s\nmRotateScreenAnimator: %s\nmScreenshotRotationAnimator: %s", "level": "VERBOSE", "group": "WM_DEBUG_ORIENTATION", "at": "com\/android\/server\/wm\/ScreenRotationAnimation.java" }, "292904800": { "message": "Deferring rotation, animation in progress.", "level": "VERBOSE", Loading Loading @@ -1693,6 +1687,12 @@ "group": "WM_ERROR", "at": "com\/android\/server\/wm\/WindowManagerService.java" }, "1346895820": { "message": "ScreenRotation still animating: type: %d\nmDisplayAnimator: %s\nmEnterBlackFrameAnimator: %s\nmRotateScreenAnimator: %s\nmScreenshotRotationAnimator: %s", "level": "VERBOSE", "group": "WM_DEBUG_ORIENTATION", "at": "com\/android\/server\/wm\/ScreenRotationAnimation.java" }, "1358462645": { "message": "Looking for focus: %s, flags=%d, canReceive=%b", "level": "VERBOSE", Loading
services/core/java/com/android/server/wm/ActivityRecord.java +8 −4 Original line number Diff line number Diff line Loading @@ -196,6 +196,7 @@ import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM; import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT; import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION; import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION; import static com.android.server.wm.TaskPersister.DEBUG; import static com.android.server.wm.TaskPersister.IMAGE_EXTENSION; import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN; Loading Loading @@ -311,6 +312,8 @@ import com.android.server.protolog.common.ProtoLog; import com.android.server.uri.UriPermissionOwner; import com.android.server.wm.ActivityMetricsLogger.TransitionInfoSnapshot; import com.android.server.wm.ActivityStack.ActivityState; import com.android.server.wm.SurfaceAnimator.AnimationType; import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback; import com.android.server.wm.WindowManagerService.H; import com.android.server.wm.utils.InsetUtils; Loading Loading @@ -4080,7 +4083,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A @Override boolean applyAnimation(WindowManager.LayoutParams lp, int transit, boolean enter, boolean isVoiceInteraction, @Nullable Runnable animationFinishedCallback) { boolean isVoiceInteraction, @Nullable OnAnimationFinishedCallback animationFinishedCallback) { if (mUseTransferredAnimation) { return false; } Loading Loading @@ -4158,7 +4162,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // We aren't delayed anything, but exiting windows rely on the animation finished // callback being called in case the ActivityRecord was pretending to be delayed, // which we might have done because we were in closing/opening apps list. onAnimationFinished(); onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, null /* AnimationAdapter */); if (visible) { // The token was made immediately visible, there will be no entrance animation. // We need to inform the client the enter animation was finished. Loading Loading @@ -6054,8 +6058,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } @Override protected void onAnimationFinished() { super.onAnimationFinished(); protected void onAnimationFinished(@AnimationType int type, AnimationAdapter anim) { super.onAnimationFinished(type, anim); Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "AR#onAnimationFinished"); mTransit = TRANSIT_UNSET; Loading
services/core/java/com/android/server/wm/AnimationAdapter.java +3 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.view.SurfaceControl; import android.view.SurfaceControl.Transaction; import android.view.animation.Animation; import com.android.server.wm.SurfaceAnimator.AnimationType; import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback; import java.io.PrintWriter; Loading @@ -47,9 +48,10 @@ interface AnimationAdapter { * component running the animation after {@code finishCallback} has been * invoked, or after the animation was cancelled. * @param t The Transaction to apply the initial frame of the animation. * @param type The type of the animation. * @param finishCallback The callback to be invoked when the animation has finished. */ void startAnimation(SurfaceControl animationLeash, Transaction t, void startAnimation(SurfaceControl animationLeash, Transaction t, @AnimationType int type, OnAnimationFinishedCallback finishCallback); /** Loading
services/core/java/com/android/server/wm/AppTransitionController.java +2 −2 Original line number Diff line number Diff line Loading @@ -377,9 +377,9 @@ public class AppTransitionController { transitioningDecendants.add(app); } } wc.applyAnimation(animLp, transit, visible, voiceInteraction, () -> { wc.applyAnimation(animLp, transit, visible, voiceInteraction, (type, anim) -> { for (int j = 0; j < transitioningDecendants.size(); ++j) { transitioningDecendants.get(j).onAnimationFinished(); transitioningDecendants.get(j).onAnimationFinished(type, anim); } }); } Loading
services/core/java/com/android/server/wm/Dimmer.java +7 −4 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.server.wm.AlphaAnimationSpecProto.DURATION_MS; import static com.android.server.wm.AlphaAnimationSpecProto.FROM; import static com.android.server.wm.AlphaAnimationSpecProto.TO; import static com.android.server.wm.AnimationSpecProto.ALPHA; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_DIMMER; import android.annotation.Nullable; import android.graphics.Rect; Loading @@ -29,6 +30,8 @@ import android.view.Surface; import android.view.SurfaceControl; import com.android.internal.annotations.VisibleForTesting; import com.android.server.wm.SurfaceAnimator.AnimationType; import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback; import java.io.PrintWriter; Loading Loading @@ -135,7 +138,7 @@ class Dimmer { mDimLayer = dimLayer; mDimming = true; final DimAnimatable dimAnimatable = new DimAnimatable(dimLayer); mSurfaceAnimator = new SurfaceAnimator(dimAnimatable, () -> { mSurfaceAnimator = new SurfaceAnimator(dimAnimatable, (type, anim) -> { if (!mDimming) { dimAnimatable.removeSurface(); } Loading @@ -157,8 +160,8 @@ class Dimmer { @VisibleForTesting interface SurfaceAnimatorStarter { void startAnimation(SurfaceAnimator surfaceAnimator, SurfaceControl.Transaction t, AnimationAdapter anim, boolean hidden, @Nullable Runnable animationFinishedCallback); AnimationAdapter anim, boolean hidden, @AnimationType int type, @Nullable OnAnimationFinishedCallback animationFinishedCallback); } Dimmer(WindowContainer host) { Loading Loading @@ -345,7 +348,7 @@ class Dimmer { mSurfaceAnimatorStarter.startAnimation(animator, t, new LocalAnimationAdapter( new AlphaAnimationSpec(startAlpha, endAlpha, getDimDuration(container)), mHost.mWmService.mSurfaceAnimationRunner), false /* hidden */, null /* animationFinishedCallback */); ANIMATION_TYPE_DIMMER, null /* animationFinishedCallback */); } private long getDimDuration(WindowContainer container) { Loading