Remove focus task
- Focus task is only removed under ENABLE_GRID_ONLY_OVERVIEW, but many fixes/refactoring are generic and apply with the flag off - Keep moving running task to front if go to overvied after quick switch, so live tile is always on top right Grid calculation: - Fixed some top/bottom calculation assumption that assume focus task is always present Size calculation: - With ENABLE_GRID_ONLY_OVERVIEW, taskSize == gridTaskSize, and task is aligned to top-right of gridRect (instead of focusTaskRect) Bug: 257952455 Test: Enter overview from home Test: Enter overview from app, with variations that quick switch and enter Test: Dismiss task from different position Test: Split select task from different position Test: Repeat with/without GRID_ONLY_OVERVIEW flag Test: Repeat with handheld Change-Id: I6580a8ac6c2c2059c33c4daca05b7d0354513e74
This commit is contained in:
@@ -678,7 +678,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
@Override
|
||||
public void onMotionPauseDetected() {
|
||||
mHasMotionEverBeenPaused = true;
|
||||
maybeUpdateRecentsAttachedState(true/* animate */, true/* moveFocusedTask */);
|
||||
maybeUpdateRecentsAttachedState(true/* animate */, true/* moveRunningTask */);
|
||||
Optional.ofNullable(mActivityInterface.getTaskbarController())
|
||||
.ifPresent(TaskbarUIController::startTranslationSpring);
|
||||
performHapticFeedback();
|
||||
@@ -696,7 +696,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
}
|
||||
|
||||
private void maybeUpdateRecentsAttachedState(boolean animate) {
|
||||
maybeUpdateRecentsAttachedState(animate, false /* moveFocusedTask */);
|
||||
maybeUpdateRecentsAttachedState(animate, false /* moveRunningTask */);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -706,9 +706,9 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
*
|
||||
* Note this method has no effect unless the navigation mode is NO_BUTTON.
|
||||
* @param animate whether to animate when attaching RecentsView
|
||||
* @param moveFocusedTask whether to move focused task to front when attaching
|
||||
* @param moveRunningTask whether to move running task to front when attaching
|
||||
*/
|
||||
private void maybeUpdateRecentsAttachedState(boolean animate, boolean moveFocusedTask) {
|
||||
private void maybeUpdateRecentsAttachedState(boolean animate, boolean moveRunningTask) {
|
||||
if (!mDeviceState.isFullyGesturalNavMode() || mRecentsView == null) {
|
||||
return;
|
||||
}
|
||||
@@ -727,11 +727,11 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
} else {
|
||||
recentsAttachedToAppWindow = mHasMotionEverBeenPaused || mIsLikelyToStartNewTask;
|
||||
}
|
||||
if (moveFocusedTask && !mAnimationFactory.hasRecentsEverAttachedToAppWindow()
|
||||
if (moveRunningTask && !mAnimationFactory.hasRecentsEverAttachedToAppWindow()
|
||||
&& recentsAttachedToAppWindow) {
|
||||
// Only move focused task if RecentsView has never been attached before, to avoid
|
||||
// Only move running task if RecentsView has never been attached before, to avoid
|
||||
// TaskView jumping to new position as we move the tasks.
|
||||
mRecentsView.moveFocusedTaskToFront();
|
||||
mRecentsView.moveRunningTaskToFront();
|
||||
}
|
||||
mAnimationFactory.setRecentsAttachedToAppWindow(recentsAttachedToAppWindow, animate);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user