Merge "Add onTaskAppeared error detection." into tm-qpr-dev am: 56c92899f1

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/19936975

Change-Id: I9a176f1a4a8cac5d1e70a55aaf7e118ec08c3946
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Schneider Victor-tulias
2022-09-14 18:09:00 +00:00
committed by Automerger Merge Worker
3 changed files with 38 additions and 6 deletions
@@ -21,6 +21,8 @@ import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_OVERV
import static com.android.quickstep.MultiStateCallback.DEBUG_STATES;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.SET_END_TARGET;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.SET_END_TARGET_HOME;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.SET_END_TARGET_LAST_TASK;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.SET_END_TARGET_NEW_TASK;
import android.annotation.Nullable;
import android.annotation.TargetApi;
@@ -335,9 +337,13 @@ public class GestureState implements RecentsAnimationCallbacks.RecentsAnimationL
case HOME:
ActiveGestureLog.INSTANCE.trackEvent(SET_END_TARGET_HOME);
break;
case RECENTS:
case NEW_TASK:
ActiveGestureLog.INSTANCE.trackEvent(SET_END_TARGET_NEW_TASK);
break;
case LAST_TASK:
ActiveGestureLog.INSTANCE.trackEvent(SET_END_TARGET_LAST_TASK);
break;
case RECENTS:
default:
// No-Op
}
@@ -28,6 +28,7 @@ import androidx.annotation.UiThread;
import com.android.launcher3.Utilities;
import com.android.launcher3.util.Preconditions;
import com.android.quickstep.util.ActiveGestureErrorDetector;
import com.android.quickstep.util.ActiveGestureLog;
import com.android.systemui.shared.recents.model.ThumbnailData;
import com.android.systemui.shared.system.RecentsAnimationControllerCompat;
@@ -137,7 +138,8 @@ public class RecentsAnimationCallbacks implements
@Override
public void onTasksAppeared(RemoteAnimationTargetCompat[] apps) {
Utilities.postAsyncCallback(MAIN_EXECUTOR.getHandler(), () -> {
ActiveGestureLog.INSTANCE.addLog("onTasksAppeared");
ActiveGestureLog.INSTANCE.addLog("onTasksAppeared",
ActiveGestureErrorDetector.GestureEvent.TASK_APPEARED);
for (RecentsAnimationListener listener : getListeners()) {
listener.onTasksAppeared(apps);
}
@@ -33,10 +33,10 @@ public class ActiveGestureErrorDetector {
* Enums associated to gesture navigation events.
*/
public enum GestureEvent {
MOTION_DOWN, MOTION_UP, SET_END_TARGET, SET_END_TARGET_HOME, ON_SETTLED_ON_END_TARGET,
START_RECENTS_ANIMATION, FINISH_RECENTS_ANIMATION, CANCEL_RECENTS_ANIMATION,
SET_ON_PAGE_TRANSITION_END_CALLBACK, CANCEL_CURRENT_ANIMATION, CLEANUP_SCREENSHOT,
SCROLLER_ANIMATION_ABORTED,
MOTION_DOWN, MOTION_UP, SET_END_TARGET, SET_END_TARGET_HOME, SET_END_TARGET_LAST_TASK,
SET_END_TARGET_NEW_TASK, ON_SETTLED_ON_END_TARGET, START_RECENTS_ANIMATION,
FINISH_RECENTS_ANIMATION, CANCEL_RECENTS_ANIMATION, SET_ON_PAGE_TRANSITION_END_CALLBACK,
CANCEL_CURRENT_ANIMATION, CLEANUP_SCREENSHOT, SCROLLER_ANIMATION_ABORTED, TASK_APPEARED,
/**
* These GestureEvents are specifically associated to state flags that get set in
@@ -134,6 +134,15 @@ public class ActiveGestureErrorDetector {
+ " settling on end target.",
writer);
break;
case TASK_APPEARED:
errorDetected |= printErrorIfTrue(
!encounteredEvents.contains(GestureEvent.SET_END_TARGET_LAST_TASK)
&& !encounteredEvents.contains(
GestureEvent.SET_END_TARGET_NEW_TASK),
/* errorMessage= */ prefix + "\t\tonTasksAppeared called "
+ "before/without setting end target to last or new task",
writer);
break;
case STATE_GESTURE_COMPLETED:
errorDetected |= printErrorIfTrue(
!encounteredEvents.contains(GestureEvent.MOTION_UP),
@@ -289,6 +298,21 @@ public class ActiveGestureErrorDetector {
+ "the task screenshot wasn't cleaned up.",
writer);
errorDetected |= printErrorIfTrue(
/* condition= */ encounteredEvents.contains(
GestureEvent.SET_END_TARGET_LAST_TASK)
&& !encounteredEvents.contains(GestureEvent.TASK_APPEARED),
/* errorMessage= */ prefix + "\t\tend target set to last task, but "
+ "onTaskAppeared wasn't called.",
writer);
errorDetected |= printErrorIfTrue(
/* condition= */ encounteredEvents.contains(
GestureEvent.SET_END_TARGET_NEW_TASK)
&& !encounteredEvents.contains(GestureEvent.TASK_APPEARED),
/* errorMessage= */ prefix + "\t\tend target set to new task, but "
+ "onTaskAppeared wasn't called.",
writer);
if (!errorDetected) {
writer.println(prefix + "\t\tNo errors detected.");
}