summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java3
-rw-r--r--quickstep/src/com/android/quickstep/QuickScrubController.java5
-rw-r--r--quickstep/src/com/android/quickstep/RecentsAnimationWrapper.java11
-rw-r--r--quickstep/src/com/android/quickstep/TouchInteractionService.java2
-rw-r--r--quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java28
5 files changed, 28 insertions, 21 deletions
diff --git a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
index b3354a464..ef7f894df 100644
--- a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
+++ b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
@@ -21,10 +21,7 @@ import static android.view.MotionEvent.ACTION_MOVE;
import static android.view.MotionEvent.ACTION_POINTER_UP;
import static android.view.MotionEvent.ACTION_UP;
import static android.view.MotionEvent.INVALID_POINTER_ID;
-
import static com.android.quickstep.RemoteRunnable.executeSafely;
-import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_BACK;
-import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_HOME;
import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_NONE;
import android.app.ActivityManager.RunningTaskInfo;
diff --git a/quickstep/src/com/android/quickstep/QuickScrubController.java b/quickstep/src/com/android/quickstep/QuickScrubController.java
index 01c99d524..8d5422f04 100644
--- a/quickstep/src/com/android/quickstep/QuickScrubController.java
+++ b/quickstep/src/com/android/quickstep/QuickScrubController.java
@@ -20,6 +20,7 @@ import android.view.HapticFeedbackConstants;
import com.android.launcher3.Alarm;
import com.android.launcher3.OnAlarmListener;
+import com.android.launcher3.Utilities;
/**
* Responds to quick scrub callbacks to page through and launch recent tasks.
@@ -61,7 +62,8 @@ public class QuickScrubController implements OnAlarmListener {
int page = mRecentsView.getNextPage();
Runnable launchTaskRunnable = () -> {
if (page < mRecentsView.getFirstTaskIndex()) {
- mRecentsView.getPageAt(page).performClick();
+ // Call post() since we can't performClick() on a background thread.
+ mRecentsView.post(() -> mRecentsView.getPageAt(page).performClick());
} else {
((TaskView) mRecentsView.getPageAt(page)).launchTask(true);
}
@@ -114,6 +116,7 @@ public class QuickScrubController implements OnAlarmListener {
}
private void goToPageWithHaptic(int pageToGoTo) {
+ pageToGoTo = Utilities.boundToRange(pageToGoTo, mStartPage, mRecentsView.getPageCount() - 1);
if (pageToGoTo != mRecentsView.getNextPage()) {
int duration = Math.abs(pageToGoTo - mRecentsView.getNextPage())
* QUICKSCRUB_SNAP_DURATION_PER_PAGE;
diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationWrapper.java b/quickstep/src/com/android/quickstep/RecentsAnimationWrapper.java
index 7c983173f..2fae01a66 100644
--- a/quickstep/src/com/android/quickstep/RecentsAnimationWrapper.java
+++ b/quickstep/src/com/android/quickstep/RecentsAnimationWrapper.java
@@ -15,6 +15,9 @@
*/
package com.android.quickstep;
+import android.os.Handler;
+import android.os.Looper;
+
import com.android.systemui.shared.system.BackgroundExecutor;
import com.android.systemui.shared.system.RecentsAnimationControllerCompat;
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
@@ -39,12 +42,18 @@ public class RecentsAnimationWrapper {
}
}
- public void finish(boolean toHome) {
+ /**
+ * @param onFinishComplete A callback that runs on the UI thread.
+ */
+ public void finish(boolean toHome, Runnable onFinishComplete) {
BackgroundExecutor.get().submit(() -> {
synchronized (this) {
if (controller != null) {
controller.setInputConsumerEnabled(false);
controller.finish(toHome);
+ if (onFinishComplete != null) {
+ new Handler(Looper.getMainLooper()).post(onFinishComplete);
+ }
}
}
});
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index 0e7bc4257..52cd60e4f 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -21,7 +21,6 @@ import static android.view.MotionEvent.ACTION_MOVE;
import static android.view.MotionEvent.ACTION_POINTER_DOWN;
import static android.view.MotionEvent.ACTION_POINTER_UP;
import static android.view.MotionEvent.ACTION_UP;
-
import static com.android.launcher3.LauncherState.OVERVIEW;
import static com.android.quickstep.QuickScrubController.QUICK_SWITCH_START_DURATION;
import static com.android.quickstep.TouchConsumer.INTERACTION_QUICK_SCRUB;
@@ -49,7 +48,6 @@ import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.MainThreadExecutor;
import com.android.launcher3.R;
-import com.android.launcher3.model.ModelPreload;
import com.android.systemui.shared.recents.IOverviewProxy;
import com.android.systemui.shared.recents.ISystemUiProxy;
import com.android.systemui.shared.system.ActivityManagerWrapper;
diff --git a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
index bbd90cb27..a4c8d9634 100644
--- a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
+++ b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
@@ -595,7 +595,7 @@ public class WindowTransformSwipeHandler extends BaseSwipeInteractionHandler {
@UiThread
private void resumeLastTask() {
- mRecentsAnimationWrapper.finish(false /* toHome */);
+ mRecentsAnimationWrapper.finish(false /* toHome */, null);
}
public void reset() {
@@ -647,21 +647,21 @@ public class WindowTransformSwipeHandler extends BaseSwipeInteractionHandler {
transaction.apply();
}
}
- mRecentsAnimationWrapper.finish(true /* toHome */);
-
- if (mInteractionType == INTERACTION_QUICK_SWITCH) {
- if (mQuickScrubController != null) {
- mQuickScrubController.onQuickSwitch();
- }
- } else if (mInteractionType == INTERACTION_QUICK_SCRUB) {
- if (mQuickScrubController != null) {
- if (mDeferredQuickScrubEnd) {
- onQuickScrubEnd();
- } else {
- mQuickScrubController.snapToPageForCurrentQuickScrubSection();
+ mRecentsAnimationWrapper.finish(true /* toHome */, () -> {
+ if (mInteractionType == INTERACTION_QUICK_SWITCH) {
+ if (mQuickScrubController != null) {
+ mQuickScrubController.onQuickSwitch();
+ }
+ } else if (mInteractionType == INTERACTION_QUICK_SCRUB) {
+ if (mQuickScrubController != null) {
+ if (mDeferredQuickScrubEnd) {
+ onQuickScrubEnd();
+ } else {
+ mQuickScrubController.snapToPageForCurrentQuickScrubSection();
+ }
}
}
- }
+ });
}
private void setupLauncherUiAfterSwipeUpAnimation() {