Revert "Add CUJ Jank interactions for App Pair saving and launching"
Revert submission 26567492-appPairsCUJ
Reason for revert: http://b/330185095
Reverted changes: /q/submissionid:26567492-appPairsCUJ
Change-Id: I73d29fe3618a55622e0daa22c9960e3c5783c275
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
index a980af5..27a895c 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
@@ -1249,7 +1249,7 @@
if (findExactPairMatch) {
// We did not find the app pair we were looking for, so launch one.
recents.getSplitSelectController().getAppPairsController().launchAppPair(
- (AppPairIcon) launchingIconView, -1 /*cuj*/);
+ (AppPairIcon) launchingIconView);
} else {
startItemInfoActivity(itemInfos.get(0));
}
diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
index ea07246..2c45129 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
@@ -21,7 +21,6 @@
import static android.view.accessibility.AccessibilityEvent.TYPE_VIEW_FOCUSED;
import static com.android.app.animation.Interpolators.EMPHASIZED;
-import static com.android.internal.jank.Cuj.CUJ_LAUNCHER_LAUNCH_APP_PAIR_FROM_WORKSPACE;
import static com.android.launcher3.Flags.enablePredictiveBackGesture;
import static com.android.launcher3.Flags.enableUnfoldStateAnimation;
import static com.android.launcher3.LauncherConstants.SavedInstanceKeys.PENDING_SPLIT_SELECT_INFO;
@@ -1347,8 +1346,7 @@
* Launches two apps as an app pair.
*/
public void launchAppPair(AppPairIcon appPairIcon) {
- mSplitSelectStateController.getAppPairsController().launchAppPair(appPairIcon,
- CUJ_LAUNCHER_LAUNCH_APP_PAIR_FROM_WORKSPACE);
+ mSplitSelectStateController.getAppPairsController().launchAppPair(appPairIcon);
}
public boolean canStartHomeSafely() {
diff --git a/quickstep/src/com/android/quickstep/util/AppPairsController.java b/quickstep/src/com/android/quickstep/util/AppPairsController.java
index ecb6118..757f1f8 100644
--- a/quickstep/src/com/android/quickstep/util/AppPairsController.java
+++ b/quickstep/src/com/android/quickstep/util/AppPairsController.java
@@ -19,7 +19,6 @@
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
-import static com.android.internal.jank.Cuj.CUJ_LAUNCHER_LAUNCH_APP_PAIR_FROM_TASKBAR;
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_APP_PAIR_LAUNCH;
import static com.android.launcher3.model.data.AppInfo.PACKAGE_KEY_COMPARATOR;
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
@@ -41,7 +40,6 @@
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
-import com.android.internal.jank.Cuj;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.LauncherSettings;
@@ -64,7 +62,6 @@
import com.android.quickstep.views.GroupedTaskView;
import com.android.quickstep.views.TaskView;
import com.android.systemui.shared.recents.model.Task;
-import com.android.systemui.shared.system.InteractionJankMonitorWrapper;
import com.android.wm.shell.common.split.SplitScreenConstants.PersistentSnapPosition;
import java.util.Arrays;
@@ -115,7 +112,6 @@
* well on trampoline apps).
*/
public void saveAppPair(GroupedTaskView gtv) {
- InteractionJankMonitorWrapper.begin(gtv, Cuj.CUJ_LAUNCHER_SAVE_APP_PAIR);
TaskView.TaskIdAttributeContainer[] attributes = gtv.getTaskIdAttributeContainers();
WorkspaceItemInfo recentsInfo1 = attributes[0].getItemInfo();
WorkspaceItemInfo recentsInfo2 = attributes[1].getItemInfo();
@@ -172,13 +168,7 @@
LauncherAccessibilityDelegate delegate =
Launcher.getLauncher(mContext).getAccessibilityDelegate();
if (delegate != null) {
- delegate.addToWorkspace(newAppPair, true, (success) -> {
- if (success) {
- InteractionJankMonitorWrapper.end(Cuj.CUJ_LAUNCHER_SAVE_APP_PAIR);
- } else {
- InteractionJankMonitorWrapper.cancel(Cuj.CUJ_LAUNCHER_SAVE_APP_PAIR);
- }
- });
+ delegate.addToWorkspace(newAppPair, true);
mStatsLogManager.logger().withItemInfo(newAppPair)
.log(StatsLogManager.LauncherEvent.LAUNCHER_APP_PAIR_SAVE);
}
@@ -189,18 +179,12 @@
/**
* Launches an app pair by searching the RecentsModel for running instances of each app, and
* staging either those running instances or launching the apps as new Intents.
- *
- * @param cuj Should be an integer from {@link Cuj} or -1 if no CUJ needs to be logged for jank
- * monitoring
*/
- public void launchAppPair(AppPairIcon appPairIcon, int cuj) {
+ public void launchAppPair(AppPairIcon appPairIcon) {
WorkspaceItemInfo app1 = appPairIcon.getInfo().contents.get(0);
WorkspaceItemInfo app2 = appPairIcon.getInfo().contents.get(1);
ComponentKey app1Key = new ComponentKey(app1.getTargetComponent(), app1.user);
ComponentKey app2Key = new ComponentKey(app2.getTargetComponent(), app2.user);
- mSplitSelectStateController.setLaunchingCuj(cuj);
- InteractionJankMonitorWrapper.begin(appPairIcon, cuj);
-
mSplitSelectStateController.findLastActiveTasksAndRunCallback(
Arrays.asList(app1Key, app2Key),
false /* findExactPairMatch */,
@@ -359,8 +343,7 @@
&& !lastActiveTasksOfAppPair.contains(runningTaskId2)) {
// Neither A nor B are on screen, so just launch a new app pair
// normally.
- launchAppPair(launchingIconView,
- CUJ_LAUNCHER_LAUNCH_APP_PAIR_FROM_TASKBAR);
+ launchAppPair(launchingIconView);
} else {
// Exactly one app (A or B) is on-screen, so we have to launch the other
// on the appropriate side.
@@ -405,8 +388,7 @@
if (!task1IsOnScreen && !task2IsOnScreen) {
// Neither App A nor App B are on-screen, launch the app pair normally.
- launchAppPair(launchingIconView,
- CUJ_LAUNCHER_LAUNCH_APP_PAIR_FROM_TASKBAR);
+ launchAppPair(launchingIconView);
} else {
// Either A or B is on-screen, so launch the other on the appropriate
// side.
diff --git a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
index 44da8b1..8e2520e 100644
--- a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
+++ b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
@@ -104,7 +104,6 @@
import com.android.systemui.animation.RemoteAnimationRunnerCompat;
import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.system.ActivityManagerWrapper;
-import com.android.systemui.shared.system.InteractionJankMonitorWrapper;
import com.android.wm.shell.common.split.SplitScreenConstants.PersistentSnapPosition;
import com.android.wm.shell.splitscreen.ISplitSelectListener;
@@ -152,12 +151,6 @@
/** True when the first selected split app is being launched in fullscreen. */
private boolean mLaunchingFirstAppFullscreen;
- /**
- * Should be a constant from {@link com.android.internal.jank.Cuj} or -1, does not need to be
- * set for all launches.
- */
- private int mLaunchCuj = -1;
-
private FloatingTaskView mFirstFloatingTaskView;
private SplitInstructionsView mSplitInstructionsView;
@@ -714,10 +707,6 @@
return mSplitAnimationController;
}
- public void setLaunchingCuj(int launchCuj) {
- mLaunchCuj = launchCuj;
- }
-
/**
* Requires Shell Transitions
*/
@@ -861,11 +850,6 @@
mSplitInstructionsView = null;
mLaunchingFirstAppFullscreen = false;
- if (mLaunchCuj != -1) {
- InteractionJankMonitorWrapper.end(mLaunchCuj);
- }
- mLaunchCuj = -1;
-
if (mSessionInstanceIds != null) {
mStatsLogManager.logger()
.withInstanceId(mSessionInstanceIds.second)
diff --git a/quickstep/tests/src/com/android/quickstep/util/AppPairsControllerTest.kt b/quickstep/tests/src/com/android/quickstep/util/AppPairsControllerTest.kt
index adaf7ff..510faf6 100644
--- a/quickstep/tests/src/com/android/quickstep/util/AppPairsControllerTest.kt
+++ b/quickstep/tests/src/com/android/quickstep/util/AppPairsControllerTest.kt
@@ -105,7 +105,7 @@
whenever(mockTopTaskTracker.getCachedTopTask(any())).thenReturn(mockCachedTaskInfo)
whenever(mockTask1.getKey()).thenReturn(mockTaskKey1)
whenever(mockTask2.getKey()).thenReturn(mockTaskKey2)
- doNothing().whenever(spyAppPairsController).launchAppPair(any(), any())
+ doNothing().whenever(spyAppPairsController).launchAppPair(any())
doNothing()
.whenever(spyAppPairsController)
.launchToSide(anyOrNull(), anyOrNull(), anyOrNull(), anyOrNull())
@@ -210,7 +210,7 @@
callback.accept(arrayOf(mockTask1, mockTask2))
// Verify that launchAppPair and launchToSide were never called
- verify(spyAppPairsController, never()).launchAppPair(any(), any())
+ verify(spyAppPairsController, never()).launchAppPair(any())
verify(spyAppPairsController, never())
.launchToSide(anyOrNull(), anyOrNull(), anyOrNull(), anyOrNull())
}
@@ -234,7 +234,7 @@
callback.accept(arrayOf(mockTask1, mockTask2))
// Verify that launchToSide was called with the correct arguments
- verify(spyAppPairsController, never()).launchAppPair(any(), any())
+ verify(spyAppPairsController, never()).launchAppPair(any())
verify(spyAppPairsController, times(1))
.launchToSide(anyOrNull(), anyOrNull(), anyOrNull(), eq(STAGE_POSITION_BOTTOM_OR_RIGHT))
}
@@ -258,7 +258,7 @@
callback.accept(arrayOf(mockTask1, mockTask2))
// Verify that launchToSide was called with the correct arguments
- verify(spyAppPairsController, never()).launchAppPair(any(), any())
+ verify(spyAppPairsController, never()).launchAppPair(any())
verify(spyAppPairsController, times(1))
.launchToSide(anyOrNull(), anyOrNull(), anyOrNull(), eq(STAGE_POSITION_TOP_OR_LEFT))
}
@@ -282,7 +282,7 @@
callback.accept(arrayOf(mockTask1, mockTask2))
// Verify that launchToSide was called with the correct arguments
- verify(spyAppPairsController, never()).launchAppPair(any(), any())
+ verify(spyAppPairsController, never()).launchAppPair(any())
verify(spyAppPairsController, times(1))
.launchToSide(anyOrNull(), anyOrNull(), anyOrNull(), eq(STAGE_POSITION_BOTTOM_OR_RIGHT))
}
@@ -306,7 +306,7 @@
callback.accept(arrayOf(mockTask1, mockTask2))
// Verify that launchToSide was called with the correct arguments
- verify(spyAppPairsController, never()).launchAppPair(any(), any())
+ verify(spyAppPairsController, never()).launchAppPair(any())
verify(spyAppPairsController, times(1))
.launchToSide(anyOrNull(), anyOrNull(), anyOrNull(), eq(STAGE_POSITION_TOP_OR_LEFT))
}
@@ -330,7 +330,7 @@
callback.accept(arrayOf(mockTask1, mockTask2))
// Verify that launchAppPair was called
- verify(spyAppPairsController, times(1)).launchAppPair(any(), any())
+ verify(spyAppPairsController, times(1)).launchAppPair(any())
verify(spyAppPairsController, never())
.launchToSide(anyOrNull(), anyOrNull(), anyOrNull(), anyOrNull())
}
@@ -354,7 +354,7 @@
callback.accept(arrayOf(mockTask1, mockTask2))
// Verify that launchToSide was called with the correct arguments
- verify(spyAppPairsController, never()).launchAppPair(any(), any())
+ verify(spyAppPairsController, never()).launchAppPair(any())
verify(spyAppPairsController, times(1))
.launchToSide(anyOrNull(), anyOrNull(), anyOrNull(), eq(STAGE_POSITION_BOTTOM_OR_RIGHT))
}
@@ -378,7 +378,7 @@
callback.accept(arrayOf(mockTask1, mockTask2))
// Verify that launchToSide was called with the correct arguments
- verify(spyAppPairsController, never()).launchAppPair(any(), any())
+ verify(spyAppPairsController, never()).launchAppPair(any())
verify(spyAppPairsController, times(1))
.launchToSide(anyOrNull(), anyOrNull(), anyOrNull(), eq(STAGE_POSITION_TOP_OR_LEFT))
}
@@ -402,7 +402,7 @@
callback.accept(arrayOf(mockTask1, mockTask2))
// Verify that launchAppPair was called
- verify(spyAppPairsController, times(1)).launchAppPair(any(), any())
+ verify(spyAppPairsController, times(1)).launchAppPair(any())
verify(spyAppPairsController, never())
.launchToSide(anyOrNull(), anyOrNull(), anyOrNull(), anyOrNull())
}
diff --git a/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java b/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java
index 30fa7ff..e861d38 100644
--- a/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java
+++ b/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java
@@ -22,8 +22,6 @@
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
-import androidx.annotation.Nullable;
-
import com.android.launcher3.BubbleTextView;
import com.android.launcher3.ButtonDropTarget;
import com.android.launcher3.CellLayout;
@@ -60,7 +58,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.function.Consumer;
public class LauncherAccessibilityDelegate extends BaseAccessibilityDelegate<Launcher> {
@@ -176,7 +173,7 @@
} else if (action == MOVE) {
return beginAccessibleDrag(host, item, fromKeyboard);
} else if (action == ADD_TO_WORKSPACE) {
- return addToWorkspace(item, true /*accessibility*/, null /*finishCallback*/);
+ return addToWorkspace(item, true);
} else if (action == MOVE_TO_WORKSPACE) {
return moveToWorkspace(item);
} else if (action == RESIZE) {
@@ -387,19 +384,13 @@
* @param item item to be added
* @param accessibility true if the first item to be added to the workspace
* should be focused for accessibility.
- * @param finishCallback Callback which will be run after this item has been added
- * and the view has been transitioned to the workspace, or on failure.
*
* @return true if the item could be successfully added
*/
- public boolean addToWorkspace(ItemInfo item, boolean accessibility,
- @Nullable Consumer<Boolean> finishCallback) {
+ public boolean addToWorkspace(ItemInfo item, boolean accessibility) {
final int[] coordinates = new int[2];
final int screenId = findSpaceOnWorkspace(item, coordinates);
if (screenId == -1) {
- if (finishCallback != null) {
- finishCallback.accept(false /*success*/);
- }
return false;
}
mContext.getStateManager().goToState(NORMAL, true, forSuccessCallback(() -> {
@@ -409,7 +400,7 @@
LauncherSettings.Favorites.CONTAINER_DESKTOP,
screenId, coordinates[0], coordinates[1]);
- bindItem(item, accessibility, finishCallback);
+ bindItem(item, accessibility);
announceConfirmation(R.string.item_added_to_workspace);
} else if (item instanceof PendingAddItemInfo) {
PendingAddItemInfo info = (PendingAddItemInfo) item;
@@ -422,7 +413,7 @@
mContext.getModelWriter().addItemToDatabase(info,
LauncherSettings.Favorites.CONTAINER_DESKTOP,
screenId, coordinates[0], coordinates[1]);
- bindItem(info, accessibility, finishCallback);
+ bindItem(info, accessibility);
} else if (item instanceof FolderInfo fi) {
Workspace<?> workspace = mContext.getWorkspace();
workspace.snapToPage(workspace.getPageIndexForScreenId(screenId));
@@ -432,30 +423,23 @@
fi.contents.forEach(member -> {
mContext.getModelWriter().addItemToDatabase(member, fi.id, -1, -1, -1);
});
- bindItem(fi, accessibility, finishCallback);
+ bindItem(fi, accessibility);
}
}));
return true;
}
- private void bindItem(ItemInfo item, boolean focusForAccessibility,
- @Nullable Consumer<Boolean> finishCallback) {
+ private void bindItem(ItemInfo item, boolean focusForAccessibility) {
View view = mContext.getItemInflater().inflateItem(item, mContext.getModelWriter());
if (view == null) {
- if (finishCallback != null) {
- finishCallback.accept(false /*success*/);
- }
return;
}
- AnimatorSet anim = new AnimatorSet();
- anim.addListener(forEndCallback((success) -> {
- if (focusForAccessibility) {
- view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
- }
- if (finishCallback != null) {
- finishCallback.accept(success);
- }
- }));
+ AnimatorSet anim = null;
+ if (focusForAccessibility) {
+ anim = new AnimatorSet();
+ anim.addListener(forEndCallback(
+ () -> view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)));
+ }
mContext.bindInflatedItems(Collections.singletonList(Pair.create(item, view)), anim);
}