From d840e6270be6fbdbfbb18822dcb740a85bf0fb14 Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Wed, 1 May 2024 13:47:53 +0100 Subject: [PATCH] Add additional StateManager log to track cancelAnimation Bug: 325463989 Test: Manual Flag: NONE Change-Id: I4f9eb13eb460e0bae0582992d18b8b81250f8eaa --- .../launcher3/statemanager/StateManager.java | 36 ++++++++----------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/src/com/android/launcher3/statemanager/StateManager.java b/src/com/android/launcher3/statemanager/StateManager.java index 51bc33959d..eea1a7d5e9 100644 --- a/src/com/android/launcher3/statemanager/StateManager.java +++ b/src/com/android/launcher3/statemanager/StateManager.java @@ -51,7 +51,7 @@ import java.util.stream.Collectors; public class StateManager> { public static final String TAG = "StateManager"; - // b/279059025 + // b/279059025, b/325463989 private static final boolean DEBUG = true; private final AnimationState mConfig = new AnimationState(); @@ -240,16 +240,8 @@ public class StateManager> { private void goToState( STATE_TYPE state, boolean animated, long delay, AnimatorListener listener) { if (DEBUG) { - String stackTrace = Log.getStackTraceString(new Exception("tracing state transition")); - String truncatedTrace = - Arrays.stream(stackTrace.split("\\n")) - .limit(5) - .skip(1) // Removes the line "java.lang.Exception: tracing state - // transition" - .filter(traceLine -> !traceLine.contains("StateManager.goToState")) - .collect(Collectors.joining("\n")); Log.d(TAG, "goToState - fromState: " + mState + ", toState: " + state - + ", partial trace:\n" + truncatedTrace); + + ", partial trace:\n" + getTrimmedStackTrace("StateManager.goToState")); } animated &= areAnimatorsEnabled(); @@ -336,17 +328,9 @@ public class StateManager> { public AnimatorSet createAtomicAnimation( STATE_TYPE fromState, STATE_TYPE toState, StateAnimationConfig config) { if (DEBUG) { - String stackTrace = Log.getStackTraceString(new Exception("tracing state transition")); - String truncatedTrace = - Arrays.stream(stackTrace.split("\\n")) - .limit(5) - .skip(1) // Removes the line "java.lang.Exception: tracing state - // transition" - .filter(traceLine -> !traceLine.contains( - "StateManager.createAtomicAnimation")) - .collect(Collectors.joining("\n")); Log.d(TAG, "createAtomicAnimation - fromState: " + fromState + ", toState: " + toState - + ", partial trace:\n" + truncatedTrace); + + ", partial trace:\n" + getTrimmedStackTrace( + "StateManager.createAtomicAnimation")); } PendingAnimation builder = new PendingAnimation(config.duration); @@ -481,7 +465,8 @@ public class StateManager> { */ public void cancelAnimation() { if (DEBUG && mConfig.currentAnimation != null) { - Log.d(TAG, "cancelAnimation - with ongoing animation"); + Log.d(TAG, "cancelAnimation - with ongoing animation" + + ", partial trace:\n" + getTrimmedStackTrace("StateManager.cancelAnimation")); } mConfig.reset(); // It could happen that a new animation is set as a result of an endListener on the @@ -579,6 +564,15 @@ public class StateManager> { mConfig.playbackController = null; } + private String getTrimmedStackTrace(String callingMethodName) { + String stackTrace = Log.getStackTraceString(new Exception()); + return Arrays.stream(stackTrace.split("\\n")) + .skip(2) // Removes the line "java.lang.Exception" and "getTrimmedStackTrace". + .filter(traceLine -> !traceLine.contains(callingMethodName)) + .limit(3) + .collect(Collectors.joining("\n")); + } + private class StartAnimRunnable implements Runnable { private final AnimatorSet mAnim;