Loading quickstep/src/com/android/quickstep/ActivityControlHelper.java +6 −5 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> { * Updates the UI to indicate quick interaction. */ void onQuickInteractionStart(T activity, @Nullable RunningTaskInfo taskInfo, boolean activityVisible); boolean activityVisible, TouchInteractionLog touchInteractionLog); float getTranslationYForQuickScrub(TransformedRect targetRect, DeviceProfile dp, Context context); Loading Loading @@ -153,13 +153,14 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> { @Override public void onQuickInteractionStart(Launcher activity, RunningTaskInfo taskInfo, boolean activityVisible) { boolean activityVisible, TouchInteractionLog touchInteractionLog) { LauncherState fromState = activity.getStateManager().getState(); activity.getStateManager().goToState(FAST_OVERVIEW, activityVisible); QuickScrubController controller = activity.<RecentsView>getOverviewPanel() .getQuickScrubController(); controller.onQuickScrubStart(activityVisible && !fromState.overviewUi, this); controller.onQuickScrubStart(activityVisible && !fromState.overviewUi, this, touchInteractionLog); if (!activityVisible) { // For the duration of the gesture, lock the screen orientation to ensure that we Loading Loading @@ -425,14 +426,14 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> { @Override public void onQuickInteractionStart(RecentsActivity activity, RunningTaskInfo taskInfo, boolean activityVisible) { boolean activityVisible, TouchInteractionLog touchInteractionLog) { QuickScrubController controller = activity.<RecentsView>getOverviewPanel() .getQuickScrubController(); // TODO: match user is as well boolean startingFromHome = !activityVisible && (taskInfo == null || Objects.equals(taskInfo.topActivity, mHomeComponent)); controller.onQuickScrubStart(startingFromHome, this); controller.onQuickScrubStart(startingFromHome, this, touchInteractionLog); if (activityVisible) { mUiHandler.postDelayed(controller::onFinishedTransitionToQuickScrub, OVERVIEW_TRANSITION_MS); Loading quickstep/src/com/android/quickstep/DeferredTouchConsumer.java +2 −2 Original line number Diff line number Diff line Loading @@ -49,8 +49,8 @@ public class DeferredTouchConsumer implements TouchConsumer { } @Override public void updateTouchTracking(int interactionType) { mTarget.updateTouchTracking(interactionType); public void onQuickScrubStart() { mTarget.onQuickScrubStart(); } @Override Loading quickstep/src/com/android/quickstep/MotionEventQueue.java +2 −2 Original line number Diff line number Diff line Loading @@ -146,7 +146,7 @@ public class MotionEventQueue { if (event.getActionMasked() == ACTION_VIRTUAL) { switch (event.getAction()) { case ACTION_QUICK_SCRUB_START: mConsumer.updateTouchTracking(INTERACTION_QUICK_SCRUB); mConsumer.onQuickScrubStart(); break; case ACTION_QUICK_SCRUB_PROGRESS: mConsumer.onQuickScrubProgress(event.getX()); Loading @@ -162,7 +162,7 @@ public class MotionEventQueue { break; case ACTION_SHOW_OVERVIEW_FROM_ALT_TAB: mConsumer.onShowOverviewFromAltTab(); mConsumer.updateTouchTracking(INTERACTION_QUICK_SCRUB); mConsumer.onQuickScrubStart(); break; case ACTION_QUICK_STEP: mConsumer.onQuickStep(event); Loading quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java +22 −10 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC private final Choreographer mBackgroundThreadChoreographer; private final OverviewCallbacks mOverviewCallbacks; private final TaskOverlayFactory mTaskOverlayFactory; private final TouchInteractionLog mTouchInteractionLog; private final boolean mIsDeferredDownTarget; private final PointF mDownPos = new PointF(); Loading @@ -100,7 +101,8 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC RecentsModel recentsModel, Intent homeIntent, ActivityControlHelper activityControl, MainThreadExecutor mainThreadExecutor, Choreographer backgroundThreadChoreographer, @HitTarget int downHitTarget, OverviewCallbacks overviewCallbacks, TaskOverlayFactory taskOverlayFactory, VelocityTracker velocityTracker) { TaskOverlayFactory taskOverlayFactory, VelocityTracker velocityTracker, TouchInteractionLog touchInteractionLog) { super(base); mRunningTask = runningTaskInfo; Loading @@ -113,6 +115,8 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC mIsDeferredDownTarget = activityControl.deferStartingActivity(downHitTarget); mOverviewCallbacks = overviewCallbacks; mTaskOverlayFactory = taskOverlayFactory; mTouchInteractionLog = touchInteractionLog; mTouchInteractionLog.setTouchConsumer(this); } @Override Loading @@ -125,6 +129,7 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC if (mVelocityTracker == null) { return; } mTouchInteractionLog.addMotionEvent(ev); switch (ev.getActionMasked()) { case ACTION_DOWN: { TraceHelper.beginSection("TouchInt"); Loading Loading @@ -215,10 +220,13 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC } private void startTouchTrackingForWindowAnimation(long touchTimeMs) { mTouchInteractionLog.startRecentsAnimation(); // Create the shared handler RecentsAnimationState animationState = new RecentsAnimationState(); final WindowTransformSwipeHandler handler = new WindowTransformSwipeHandler( animationState.id, mRunningTask, this, touchTimeMs, mActivityControlHelper); animationState.id, mRunningTask, this, touchTimeMs, mActivityControlHelper, mTouchInteractionLog); // Preload the plan mRecentsModel.loadTasks(mRunningTask.id, null); Loading Loading @@ -315,7 +323,13 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC } @Override public void updateTouchTracking(int interactionType) { public Choreographer getIntrimChoreographer(MotionEventQueue queue) { mEventQueue = queue; return mBackgroundThreadChoreographer; } @Override public void onQuickScrubStart() { if (!mPassedInitialSlop && mIsDeferredDownTarget && mInteractionHandler == null) { // If we deferred starting the window animation on touch down, then // start tracking now Loading @@ -323,20 +337,16 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC mPassedInitialSlop = true; } mTouchInteractionLog.startQuickScrub(); if (mInteractionHandler != null) { mInteractionHandler.updateInteractionType(interactionType); mInteractionHandler.onQuickScrubStart(); } notifyGestureStarted(); } @Override public Choreographer getIntrimChoreographer(MotionEventQueue queue) { mEventQueue = queue; return mBackgroundThreadChoreographer; } @Override public void onQuickScrubEnd() { mTouchInteractionLog.endQuickScrub("onQuickScrubEnd"); if (mInteractionHandler != null) { mInteractionHandler.onQuickScrubEnd(); } Loading @@ -344,6 +354,7 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC @Override public void onQuickScrubProgress(float progress) { mTouchInteractionLog.setQuickScrubProgress(progress); if (mInteractionHandler != null) { mInteractionHandler.onQuickScrubProgress(progress); } Loading @@ -351,6 +362,7 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC @Override public void onQuickStep(MotionEvent ev) { mTouchInteractionLog.startQuickStep(); if (mIsDeferredDownTarget) { // Deferred gesture, start the animation and gesture tracking once we pass the actual // touch slop Loading quickstep/src/com/android/quickstep/QuickScrubController.java +6 −1 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ public class QuickScrubController implements OnAlarmListener { private boolean mFinishedTransitionToQuickScrub; private Runnable mOnFinishedTransitionToQuickScrubRunnable; private ActivityControlHelper mActivityControlHelper; private TouchInteractionLog mTouchInteractionLog; public QuickScrubController(BaseActivity activity, RecentsView recentsView) { mActivity = activity; Loading @@ -79,13 +80,15 @@ public class QuickScrubController implements OnAlarmListener { } } public void onQuickScrubStart(boolean startingFromHome, ActivityControlHelper controlHelper) { public void onQuickScrubStart(boolean startingFromHome, ActivityControlHelper controlHelper, TouchInteractionLog touchInteractionLog) { prepareQuickScrub(TAG); mInQuickScrub = true; mStartedFromHome = startingFromHome; mQuickScrubSection = 0; mFinishedTransitionToQuickScrub = false; mActivityControlHelper = controlHelper; mTouchInteractionLog = touchInteractionLog; snapToNextTaskIfAvailable(); mActivity.getUserEventDispatcher().resetActionDurationMillis(); Loading @@ -101,7 +104,9 @@ public class QuickScrubController implements OnAlarmListener { TaskView taskView = mRecentsView.getTaskViewAt(page); if (taskView != null) { mWaitingForTaskLaunch = true; mTouchInteractionLog.launchTaskStart(); taskView.launchTask(true, (result) -> { mTouchInteractionLog.launchTaskEnd(result); if (!result) { taskView.notifyTaskLaunchFailed(TAG); breakOutOfQuickScrub(); Loading Loading
quickstep/src/com/android/quickstep/ActivityControlHelper.java +6 −5 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> { * Updates the UI to indicate quick interaction. */ void onQuickInteractionStart(T activity, @Nullable RunningTaskInfo taskInfo, boolean activityVisible); boolean activityVisible, TouchInteractionLog touchInteractionLog); float getTranslationYForQuickScrub(TransformedRect targetRect, DeviceProfile dp, Context context); Loading Loading @@ -153,13 +153,14 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> { @Override public void onQuickInteractionStart(Launcher activity, RunningTaskInfo taskInfo, boolean activityVisible) { boolean activityVisible, TouchInteractionLog touchInteractionLog) { LauncherState fromState = activity.getStateManager().getState(); activity.getStateManager().goToState(FAST_OVERVIEW, activityVisible); QuickScrubController controller = activity.<RecentsView>getOverviewPanel() .getQuickScrubController(); controller.onQuickScrubStart(activityVisible && !fromState.overviewUi, this); controller.onQuickScrubStart(activityVisible && !fromState.overviewUi, this, touchInteractionLog); if (!activityVisible) { // For the duration of the gesture, lock the screen orientation to ensure that we Loading Loading @@ -425,14 +426,14 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> { @Override public void onQuickInteractionStart(RecentsActivity activity, RunningTaskInfo taskInfo, boolean activityVisible) { boolean activityVisible, TouchInteractionLog touchInteractionLog) { QuickScrubController controller = activity.<RecentsView>getOverviewPanel() .getQuickScrubController(); // TODO: match user is as well boolean startingFromHome = !activityVisible && (taskInfo == null || Objects.equals(taskInfo.topActivity, mHomeComponent)); controller.onQuickScrubStart(startingFromHome, this); controller.onQuickScrubStart(startingFromHome, this, touchInteractionLog); if (activityVisible) { mUiHandler.postDelayed(controller::onFinishedTransitionToQuickScrub, OVERVIEW_TRANSITION_MS); Loading
quickstep/src/com/android/quickstep/DeferredTouchConsumer.java +2 −2 Original line number Diff line number Diff line Loading @@ -49,8 +49,8 @@ public class DeferredTouchConsumer implements TouchConsumer { } @Override public void updateTouchTracking(int interactionType) { mTarget.updateTouchTracking(interactionType); public void onQuickScrubStart() { mTarget.onQuickScrubStart(); } @Override Loading
quickstep/src/com/android/quickstep/MotionEventQueue.java +2 −2 Original line number Diff line number Diff line Loading @@ -146,7 +146,7 @@ public class MotionEventQueue { if (event.getActionMasked() == ACTION_VIRTUAL) { switch (event.getAction()) { case ACTION_QUICK_SCRUB_START: mConsumer.updateTouchTracking(INTERACTION_QUICK_SCRUB); mConsumer.onQuickScrubStart(); break; case ACTION_QUICK_SCRUB_PROGRESS: mConsumer.onQuickScrubProgress(event.getX()); Loading @@ -162,7 +162,7 @@ public class MotionEventQueue { break; case ACTION_SHOW_OVERVIEW_FROM_ALT_TAB: mConsumer.onShowOverviewFromAltTab(); mConsumer.updateTouchTracking(INTERACTION_QUICK_SCRUB); mConsumer.onQuickScrubStart(); break; case ACTION_QUICK_STEP: mConsumer.onQuickStep(event); Loading
quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java +22 −10 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC private final Choreographer mBackgroundThreadChoreographer; private final OverviewCallbacks mOverviewCallbacks; private final TaskOverlayFactory mTaskOverlayFactory; private final TouchInteractionLog mTouchInteractionLog; private final boolean mIsDeferredDownTarget; private final PointF mDownPos = new PointF(); Loading @@ -100,7 +101,8 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC RecentsModel recentsModel, Intent homeIntent, ActivityControlHelper activityControl, MainThreadExecutor mainThreadExecutor, Choreographer backgroundThreadChoreographer, @HitTarget int downHitTarget, OverviewCallbacks overviewCallbacks, TaskOverlayFactory taskOverlayFactory, VelocityTracker velocityTracker) { TaskOverlayFactory taskOverlayFactory, VelocityTracker velocityTracker, TouchInteractionLog touchInteractionLog) { super(base); mRunningTask = runningTaskInfo; Loading @@ -113,6 +115,8 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC mIsDeferredDownTarget = activityControl.deferStartingActivity(downHitTarget); mOverviewCallbacks = overviewCallbacks; mTaskOverlayFactory = taskOverlayFactory; mTouchInteractionLog = touchInteractionLog; mTouchInteractionLog.setTouchConsumer(this); } @Override Loading @@ -125,6 +129,7 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC if (mVelocityTracker == null) { return; } mTouchInteractionLog.addMotionEvent(ev); switch (ev.getActionMasked()) { case ACTION_DOWN: { TraceHelper.beginSection("TouchInt"); Loading Loading @@ -215,10 +220,13 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC } private void startTouchTrackingForWindowAnimation(long touchTimeMs) { mTouchInteractionLog.startRecentsAnimation(); // Create the shared handler RecentsAnimationState animationState = new RecentsAnimationState(); final WindowTransformSwipeHandler handler = new WindowTransformSwipeHandler( animationState.id, mRunningTask, this, touchTimeMs, mActivityControlHelper); animationState.id, mRunningTask, this, touchTimeMs, mActivityControlHelper, mTouchInteractionLog); // Preload the plan mRecentsModel.loadTasks(mRunningTask.id, null); Loading Loading @@ -315,7 +323,13 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC } @Override public void updateTouchTracking(int interactionType) { public Choreographer getIntrimChoreographer(MotionEventQueue queue) { mEventQueue = queue; return mBackgroundThreadChoreographer; } @Override public void onQuickScrubStart() { if (!mPassedInitialSlop && mIsDeferredDownTarget && mInteractionHandler == null) { // If we deferred starting the window animation on touch down, then // start tracking now Loading @@ -323,20 +337,16 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC mPassedInitialSlop = true; } mTouchInteractionLog.startQuickScrub(); if (mInteractionHandler != null) { mInteractionHandler.updateInteractionType(interactionType); mInteractionHandler.onQuickScrubStart(); } notifyGestureStarted(); } @Override public Choreographer getIntrimChoreographer(MotionEventQueue queue) { mEventQueue = queue; return mBackgroundThreadChoreographer; } @Override public void onQuickScrubEnd() { mTouchInteractionLog.endQuickScrub("onQuickScrubEnd"); if (mInteractionHandler != null) { mInteractionHandler.onQuickScrubEnd(); } Loading @@ -344,6 +354,7 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC @Override public void onQuickScrubProgress(float progress) { mTouchInteractionLog.setQuickScrubProgress(progress); if (mInteractionHandler != null) { mInteractionHandler.onQuickScrubProgress(progress); } Loading @@ -351,6 +362,7 @@ public class OtherActivityTouchConsumer extends ContextWrapper implements TouchC @Override public void onQuickStep(MotionEvent ev) { mTouchInteractionLog.startQuickStep(); if (mIsDeferredDownTarget) { // Deferred gesture, start the animation and gesture tracking once we pass the actual // touch slop Loading
quickstep/src/com/android/quickstep/QuickScrubController.java +6 −1 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ public class QuickScrubController implements OnAlarmListener { private boolean mFinishedTransitionToQuickScrub; private Runnable mOnFinishedTransitionToQuickScrubRunnable; private ActivityControlHelper mActivityControlHelper; private TouchInteractionLog mTouchInteractionLog; public QuickScrubController(BaseActivity activity, RecentsView recentsView) { mActivity = activity; Loading @@ -79,13 +80,15 @@ public class QuickScrubController implements OnAlarmListener { } } public void onQuickScrubStart(boolean startingFromHome, ActivityControlHelper controlHelper) { public void onQuickScrubStart(boolean startingFromHome, ActivityControlHelper controlHelper, TouchInteractionLog touchInteractionLog) { prepareQuickScrub(TAG); mInQuickScrub = true; mStartedFromHome = startingFromHome; mQuickScrubSection = 0; mFinishedTransitionToQuickScrub = false; mActivityControlHelper = controlHelper; mTouchInteractionLog = touchInteractionLog; snapToNextTaskIfAvailable(); mActivity.getUserEventDispatcher().resetActionDurationMillis(); Loading @@ -101,7 +104,9 @@ public class QuickScrubController implements OnAlarmListener { TaskView taskView = mRecentsView.getTaskViewAt(page); if (taskView != null) { mWaitingForTaskLaunch = true; mTouchInteractionLog.launchTaskStart(); taskView.launchTask(true, (result) -> { mTouchInteractionLog.launchTaskEnd(result); if (!result) { taskView.notifyTaskLaunchFailed(TAG); breakOutOfQuickScrub(); Loading