Adding more events for reproducing race conditions during Launcher start
Bug: 120628042
Change-Id: Ifcb6a170e3b227c690eff0255ca3e25cd5d491a5
Tests: StartLauncherViaGestureTests
diff --git a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
index 9712eb3..cd71f3d 100644
--- a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
+++ b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
@@ -72,6 +72,7 @@
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<RecentsAnimationState> mAnimationStates = new SparseArray<>();
private final RunningTaskInfo mRunningTask;
@@ -197,9 +198,11 @@
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 @@
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 @@
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 d7720ee..33c7c4d 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.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.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 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 @@
}
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 f09b6e8..16909f0 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -189,6 +189,8 @@
// Type: SparseArray<Parcelable>
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 @@
@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 @@
@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 @@
UiFactory.onLauncherStateOrResumeChanged(this);
TraceHelper.endSection("ON_RESUME");
+ RaceConditionTracker.onEvent(ON_RESUME_EVT, EXIT);
}
@Override