From 4e6e1555c4c1d45abdce6cd7fdae03a8adb37832 Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Mon, 12 Feb 2024 18:26:45 +0000 Subject: [PATCH] Refactored StateManager logs - Make the log permanaent behind a DEBUG flag - Logs are currently enabled with b/279059025 marked as the related bug Bug: 279059025 Flag: None Test: Manual Change-Id: I60a75d73d40d00e7d42292f3d42cc9dd8c9b0825 --- .../QuickstepAtomicAnimationFactory.java | 4 -- .../quickstep/views/LauncherRecentsView.java | 4 -- .../launcher3/statemanager/StateManager.java | 53 +++++++++++++------ .../testing/shared/TestProtocol.java | 1 - 4 files changed, 37 insertions(+), 25 deletions(-) diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java b/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java index 0650f9d8b8..72218bf26e 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java @@ -55,14 +55,12 @@ import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_T import static com.android.quickstep.views.RecentsView.RECENTS_SCALE_PROPERTY; import android.animation.ValueAnimator; -import android.util.Log; import com.android.launcher3.CellLayout; import com.android.launcher3.Hotseat; import com.android.launcher3.LauncherState; import com.android.launcher3.Workspace; import com.android.launcher3.states.StateAnimationConfig; -import com.android.launcher3.testing.shared.TestProtocol; import com.android.launcher3.touch.AllAppsSwipeController; import com.android.launcher3.uioverrides.QuickstepLauncher; import com.android.launcher3.util.DisplayController; @@ -96,8 +94,6 @@ public class QuickstepAtomicAnimationFactory extends @Override public void prepareForAtomicAnimation(LauncherState fromState, LauncherState toState, StateAnimationConfig config) { - Log.d(TestProtocol.OVERVIEW_OVER_HOME, "creating animation fromState: " - + fromState + " toState: " + toState); RecentsView overview = mActivity.getOverviewPanel(); if ((fromState == OVERVIEW || fromState == OVERVIEW_SPLIT_SELECT) && toState == NORMAL) { overview.switchToScreenshot(() -> diff --git a/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java b/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java index 9bb9775a51..a27875ad6b 100644 --- a/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java +++ b/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java @@ -31,7 +31,6 @@ import android.annotation.TargetApi; import android.content.Context; import android.os.Build; import android.util.AttributeSet; -import android.util.Log; import android.view.MotionEvent; import androidx.annotation.Nullable; @@ -45,7 +44,6 @@ import com.android.launcher3.statehandlers.DepthController; import com.android.launcher3.statehandlers.DesktopVisibilityController; import com.android.launcher3.statemanager.StateManager; import com.android.launcher3.statemanager.StateManager.StateListener; -import com.android.launcher3.testing.shared.TestProtocol; import com.android.launcher3.uioverrides.QuickstepLauncher; import com.android.launcher3.util.PendingSplitSelectInfo; import com.android.launcher3.util.SplitConfigurationOptions; @@ -187,8 +185,6 @@ public class LauncherRecentsView extends RecentsView> { public static final String TAG = "StateManager"; + // b/279059025 + private static final boolean DEBUG = true; private final AnimationState mConfig = new AnimationState(); private final Handler mUiHandler; @@ -231,15 +232,18 @@ public class StateManager> { private void goToState( STATE_TYPE state, boolean animated, long delay, AnimatorListener listener) { - 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(TestProtocol.OVERVIEW_OVER_HOME, - "go to state " + state + " partial trace:\n" + truncatedTrace); + 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); + } animated &= areAnimatorsEnabled(); if (mActivity.isInState(state)) { @@ -324,6 +328,20 @@ 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); + } + PendingAnimation builder = new PendingAnimation(config.duration); prepareForAtomicAnimation(fromState, toState, config); @@ -395,8 +413,9 @@ public class StateManager> { mState = state; mActivity.onStateSetStart(mState); - Log.d(TestProtocol.OVERVIEW_OVER_HOME, "Notifying listeners for state transition start" - + " to state: " + state.toString()); + if (DEBUG) { + Log.d(TAG, "onStateTransitionStart - state: " + state); + } for (int i = mListeners.size() - 1; i >= 0; i--) { mListeners.get(i).onStateTransitionStart(state); } @@ -414,8 +433,9 @@ public class StateManager> { setRestState(null); } - Log.d(TestProtocol.OVERVIEW_OVER_HOME, "Notifying " + mListeners.size() + " listeners " - + "for end transition for state: " + state.toString()); + if (DEBUG) { + Log.d(TAG, "onStateTransitionEnd - state: " + state); + } for (int i = mListeners.size() - 1; i >= 0; i--) { mListeners.get(i).onStateTransitionComplete(state); } @@ -453,7 +473,9 @@ public class StateManager> { * Cancels the current animation. */ public void cancelAnimation() { - Log.d(TestProtocol.OVERVIEW_OVER_HOME, "current animation cancelled"); + if (DEBUG && mConfig.currentAnimation != null) { + Log.d(TAG, "cancelAnimation - with ongoing animation"); + } mConfig.reset(); // It could happen that a new animation is set as a result of an endListener on the // existing animation. @@ -485,7 +507,6 @@ public class StateManager> { * @param toState The state we are animating towards. */ public void setCurrentAnimation(AnimatorSet anim, STATE_TYPE toState) { - Log.d(TestProtocol.OVERVIEW_OVER_HOME, "setting animation to " + toState.toString()); cancelAnimation(); setCurrentAnimation(anim); anim.addListener(createStateAnimationListener(toState)); diff --git a/tests/multivalentTests/shared/com/android/launcher3/testing/shared/TestProtocol.java b/tests/multivalentTests/shared/com/android/launcher3/testing/shared/TestProtocol.java index 8d40ff207f..c750c7e4ff 100644 --- a/tests/multivalentTests/shared/com/android/launcher3/testing/shared/TestProtocol.java +++ b/tests/multivalentTests/shared/com/android/launcher3/testing/shared/TestProtocol.java @@ -167,7 +167,6 @@ public final class TestProtocol { public static final String TWO_NEXUS_LAUNCHER_ACTIVITY_WHILE_UNLOCKING = "b/273347463"; public static final String TWO_TASKBAR_LONG_CLICKS = "b/262282528"; public static final String ICON_MISSING = "b/282963545"; - public static final String OVERVIEW_OVER_HOME = "b/279059025"; public static final String REQUEST_EMULATE_DISPLAY = "emulate-display"; public static final String REQUEST_STOP_EMULATE_DISPLAY = "stop-emulate-display";