From cb863750e07c2d9d32c93b437c8d9761f033f466 Mon Sep 17 00:00:00 2001 From: vadimt Date: Wed, 19 Dec 2018 17:44:57 -0800 Subject: [PATCH] Adding more events for reproducing race conditions during Launcher start Bug: 120628042 Change-Id: Ifcb6a170e3b227c690eff0255ca3e25cd5d491a5 Tests: StartLauncherViaGestureTests --- .../com/android/quickstep/OtherActivityTouchConsumer.java | 6 ++++++ .../com/android/quickstep/WindowTransformSwipeHandler.java | 6 ++++++ src/com/android/launcher3/Launcher.java | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java index 9712eb3dd0..cd71f3d268 100644 --- a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java +++ b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java @@ -72,6 +72,7 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC private static final long LAUNCHER_DRAW_TIMEOUT_MS = 150; public static final String DOWN_EVT = "OtherActivityTouchConsumer.DOWN"; + private static final String UP_EVT = "OtherActivityTouchConsumer.UP"; private final SparseArray mAnimationStates = new SparseArray<>(); private final RunningTaskInfo mRunningTask; @@ -197,9 +198,11 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC case ACTION_CANCEL: // TODO: Should be different than ACTION_UP case ACTION_UP: { + RaceConditionTracker.onEvent(UP_EVT, ENTER); TraceHelper.endSection("TouchInt"); finishTouchTracking(ev); + RaceConditionTracker.onEvent(UP_EVT, EXIT); break; } } @@ -428,6 +431,7 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC private class RecentsAnimationState implements RecentsAnimationListener { + private static final String ANIMATION_START_EVT = "RecentsAnimationState.onAnimationStart"; private final int id; private RecentsAnimationControllerCompat mController; @@ -446,11 +450,13 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC RecentsAnimationControllerCompat controller, RemoteAnimationTargetCompat[] apps, Rect homeContentInsets, Rect minimizedHomeBounds) { + RaceConditionTracker.onEvent(ANIMATION_START_EVT, ENTER); mController = controller; mTargets = new RemoteAnimationTargetSet(apps, MODE_CLOSING); mHomeContentInsets = homeContentInsets; mMinimizedHomeBounds = minimizedHomeBounds; mEventQueue.onCommand(id); + RaceConditionTracker.onEvent(ANIMATION_START_EVT, EXIT); } @Override diff --git a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java index d7720eeb26..33c7c4d718 100644 --- a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java +++ b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java @@ -24,6 +24,8 @@ import static com.android.launcher3.anim.Interpolators.LINEAR; import static com.android.launcher3.anim.Interpolators.OVERSHOOT_1_2; import static com.android.launcher3.config.FeatureFlags.ENABLE_QUICKSTEP_LIVE_TILE; import static com.android.launcher3.config.FeatureFlags.QUICKSTEP_SPRINGS; +import static com.android.launcher3.util.RaceConditionTracker.ENTER; +import static com.android.launcher3.util.RaceConditionTracker.EXIT; import static com.android.quickstep.QuickScrubController.QUICK_SCRUB_FROM_APP_START_DURATION; import static com.android.quickstep.QuickScrubController.QUICK_SWITCH_FROM_APP_START_DURATION; import static com.android.quickstep.TouchConsumer.INTERACTION_NORMAL; @@ -74,6 +76,7 @@ import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch; import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; import com.android.launcher3.util.MultiValueAlpha; import com.android.launcher3.util.MultiValueAlpha.AlphaProperty; +import com.android.launcher3.util.RaceConditionTracker; import com.android.launcher3.util.TraceHelper; import com.android.quickstep.ActivityControlHelper.ActivityInitListener; import com.android.quickstep.ActivityControlHelper.AnimationFactory; @@ -182,6 +185,7 @@ public class WindowTransformSwipeHandler { public static final float MIN_PROGRESS_FOR_OVERVIEW = 0.7f; private static final float SWIPE_DURATION_MULTIPLIER = Math.min(1 / MIN_PROGRESS_FOR_OVERVIEW, 1 / (1 - MIN_PROGRESS_FOR_OVERVIEW)); + private static final String SCREENSHOT_CAPTURED_EVT = "ScreenshotCaptured"; private final ClipAnimationHelper mClipAnimationHelper; private final ClipAnimationHelper.TransformParams mTransformParams; @@ -1078,7 +1082,9 @@ public class WindowTransformSwipeHandler { } if (!finishTransitionPosted) { // If we haven't posted a draw callback, set the state immediately. + RaceConditionTracker.onEvent(SCREENSHOT_CAPTURED_EVT, ENTER); setStateOnUiThread(STATE_SCREENSHOT_CAPTURED); + RaceConditionTracker.onEvent(SCREENSHOT_CAPTURED_EVT, EXIT); } } } diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index f09b6e852d..16909f005f 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -189,6 +189,8 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, // Type: SparseArray private static final String RUNTIME_STATE_WIDGET_PANEL = "launcher.widget_panel"; public static final String ON_CREATE_EVT = "Launcher.onCreate"; + private static final String ON_START_EVT = "Launcher.onStart"; + private static final String ON_RESUME_EVT = "Launcher.onResume"; private LauncherStateManager mStateManager; @@ -762,12 +764,14 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, @Override protected void onStart() { + RaceConditionTracker.onEvent(ON_START_EVT, ENTER); super.onStart(); if (mLauncherCallbacks != null) { mLauncherCallbacks.onStart(); } mAppWidgetHost.setListenIfResumed(true); NotificationListener.setNotificationsChangedListener(mPopupDataProvider); + RaceConditionTracker.onEvent(ON_START_EVT, EXIT); } private void logOnDelayedResume() { @@ -780,6 +784,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, @Override protected void onResume() { + RaceConditionTracker.onEvent(ON_RESUME_EVT, ENTER); TraceHelper.beginSection("ON_RESUME"); super.onResume(); TraceHelper.partitionSection("ON_RESUME", "superCall"); @@ -802,6 +807,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, UiFactory.onLauncherStateOrResumeChanged(this); TraceHelper.endSection("ON_RESUME"); + RaceConditionTracker.onEvent(ON_RESUME_EVT, EXIT); } @Override