Loading quickstep/src/com/android/quickstep/OverviewCommandHelper.java +9 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import com.android.quickstep.views.TaskView; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.system.InteractionJankMonitorWrapper; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; Loading Loading @@ -271,6 +272,14 @@ public class OverviewCommandHelper { scheduleNextTask(cmd); } public void dump(PrintWriter pw) { pw.println("OverviewCommandHelper:"); pw.println(" mPendingCommands=" + mPendingCommands.size()); if (!mPendingCommands.isEmpty()) { pw.println(" pendingCommandType=" + mPendingCommands.get(0).type); } } private static class CommandInfo { public final long createTime = SystemClock.elapsedRealtime(); public final int type; Loading quickstep/src/com/android/quickstep/RecentsActivity.java +19 −0 Original line number Diff line number Diff line Loading @@ -100,6 +100,7 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { private Handler mUiHandler = new Handler(Looper.getMainLooper()); private static final long HOME_APPEAR_DURATION = 250; private static final long RECENTS_ANIMATION_TIMEOUT = 1000; private RecentsDragLayer mDragLayer; private ScrimView mScrimView; Loading @@ -116,6 +117,11 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { // Strong refs to runners which are cleared when the activity is destroyed private RemoteAnimationFactory mActivityLaunchAnimationRunner; // For handling degenerate cases where starting an activity doesn't actually trigger the remote // animation callback private final Handler mHandler = new Handler(); private final Runnable mAnimationStartTimeoutRunnable = this::onAnimationStartTimeout; /** * Init drag layer and overview panel views. */ Loading Loading @@ -220,6 +226,16 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { // TODO(b/137318995) This should go home, but doing so removes freeform windows } /** * Called if the remote animation callback from #getActivityLaunchOptions() hasn't called back * in a reasonable time due to a conflict with the recents animation. */ private void onAnimationStartTimeout() { if (mActivityLaunchAnimationRunner != null) { mActivityLaunchAnimationRunner.onAnimationCancelled(); } } @Override public ActivityOptionsWrapper getActivityLaunchOptions(final View v, @Nullable ItemInfo item) { if (!(v instanceof TaskView)) { Loading @@ -234,6 +250,7 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { public void onCreateAnimation(int transit, RemoteAnimationTargetCompat[] appTargets, RemoteAnimationTargetCompat[] wallpaperTargets, RemoteAnimationTargetCompat[] nonAppTargets, AnimationResult result) { mHandler.removeCallbacks(mAnimationStartTimeoutRunnable); AnimatorSet anim = composeRecentsLaunchAnimator(taskView, appTargets, wallpaperTargets, nonAppTargets); anim.addListener(resetStateListener()); Loading @@ -243,6 +260,7 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { @Override public void onAnimationCancelled() { mHandler.removeCallbacks(mAnimationStartTimeoutRunnable); onEndCallback.executeAllAndDestroy(); } }; Loading @@ -260,6 +278,7 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { activityOptions.options.setLaunchDisplayId( (v != null && v.getDisplay() != null) ? v.getDisplay().getDisplayId() : Display.DEFAULT_DISPLAY); mHandler.postDelayed(mAnimationStartTimeoutRunnable, RECENTS_ANIMATION_TIMEOUT); return activityOptions; } Loading quickstep/src/com/android/quickstep/TouchInteractionService.java +3 −0 Original line number Diff line number Diff line Loading @@ -942,6 +942,9 @@ public class TouchInteractionService extends Service if (mOverviewComponentObserver != null) { mOverviewComponentObserver.dump(pw); } if (mOverviewCommandHelper != null) { mOverviewCommandHelper.dump(pw); } if (mGestureState != null) { mGestureState.dump(pw); } Loading Loading
quickstep/src/com/android/quickstep/OverviewCommandHelper.java +9 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import com.android.quickstep.views.TaskView; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.system.InteractionJankMonitorWrapper; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; Loading Loading @@ -271,6 +272,14 @@ public class OverviewCommandHelper { scheduleNextTask(cmd); } public void dump(PrintWriter pw) { pw.println("OverviewCommandHelper:"); pw.println(" mPendingCommands=" + mPendingCommands.size()); if (!mPendingCommands.isEmpty()) { pw.println(" pendingCommandType=" + mPendingCommands.get(0).type); } } private static class CommandInfo { public final long createTime = SystemClock.elapsedRealtime(); public final int type; Loading
quickstep/src/com/android/quickstep/RecentsActivity.java +19 −0 Original line number Diff line number Diff line Loading @@ -100,6 +100,7 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { private Handler mUiHandler = new Handler(Looper.getMainLooper()); private static final long HOME_APPEAR_DURATION = 250; private static final long RECENTS_ANIMATION_TIMEOUT = 1000; private RecentsDragLayer mDragLayer; private ScrimView mScrimView; Loading @@ -116,6 +117,11 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { // Strong refs to runners which are cleared when the activity is destroyed private RemoteAnimationFactory mActivityLaunchAnimationRunner; // For handling degenerate cases where starting an activity doesn't actually trigger the remote // animation callback private final Handler mHandler = new Handler(); private final Runnable mAnimationStartTimeoutRunnable = this::onAnimationStartTimeout; /** * Init drag layer and overview panel views. */ Loading Loading @@ -220,6 +226,16 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { // TODO(b/137318995) This should go home, but doing so removes freeform windows } /** * Called if the remote animation callback from #getActivityLaunchOptions() hasn't called back * in a reasonable time due to a conflict with the recents animation. */ private void onAnimationStartTimeout() { if (mActivityLaunchAnimationRunner != null) { mActivityLaunchAnimationRunner.onAnimationCancelled(); } } @Override public ActivityOptionsWrapper getActivityLaunchOptions(final View v, @Nullable ItemInfo item) { if (!(v instanceof TaskView)) { Loading @@ -234,6 +250,7 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { public void onCreateAnimation(int transit, RemoteAnimationTargetCompat[] appTargets, RemoteAnimationTargetCompat[] wallpaperTargets, RemoteAnimationTargetCompat[] nonAppTargets, AnimationResult result) { mHandler.removeCallbacks(mAnimationStartTimeoutRunnable); AnimatorSet anim = composeRecentsLaunchAnimator(taskView, appTargets, wallpaperTargets, nonAppTargets); anim.addListener(resetStateListener()); Loading @@ -243,6 +260,7 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { @Override public void onAnimationCancelled() { mHandler.removeCallbacks(mAnimationStartTimeoutRunnable); onEndCallback.executeAllAndDestroy(); } }; Loading @@ -260,6 +278,7 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> { activityOptions.options.setLaunchDisplayId( (v != null && v.getDisplay() != null) ? v.getDisplay().getDisplayId() : Display.DEFAULT_DISPLAY); mHandler.postDelayed(mAnimationStartTimeoutRunnable, RECENTS_ANIMATION_TIMEOUT); return activityOptions; } Loading
quickstep/src/com/android/quickstep/TouchInteractionService.java +3 −0 Original line number Diff line number Diff line Loading @@ -942,6 +942,9 @@ public class TouchInteractionService extends Service if (mOverviewComponentObserver != null) { mOverviewComponentObserver.dump(pw); } if (mOverviewCommandHelper != null) { mOverviewCommandHelper.dump(pw); } if (mGestureState != null) { mGestureState.dump(pw); } Loading