Pin desktop tile to the right in overview

When desktop windowing prototype is enabled, pin desktop tile to the
right of the focused tile.
Also making desktop tile persistent so it will always show up,
regardless whether there are tasks added to the desktop or not.
Fixing some nullpointer issues that stem from that.

Bug: 261234155
Test: no recent tasks, go to overview, shows empty view
Test: only desktop tasks, go to overview from home, desktop tile focused
Test: only desktop tasks, desktop open, go to overview, desktop tile
  focused
Test: 1 fullscreen task and some desktop tasks, go to overview from home
  screen, fullscreen tile focused
Test: fullscreen task open and no desktop tasks, go to overview,
  fullscreen task focused and empty desktop tile on the right
Test: fullscreen task open and some desktop tasks in background, go to
  overview, fullscreen tile focused, desktop tile on the right
Test: some desktop tasks focused, some fullscreen tasks in background,
  go to overview, desktop tile focused, fullscreen tasks on the left

Change-Id: Ib28185b40f639d36b82b6d0e3c61026ec84e245c
This commit is contained in:
Ats Jenk
2023-01-30 17:32:30 -08:00
parent ba73400fe1
commit 6f50ca34c4
4 changed files with 74 additions and 19 deletions

View File

@@ -1007,6 +1007,11 @@ public class TaskView extends FrameLayout implements Reusable {
return deviceProfile.isTablet && !isFocusedTask();
}
/** Whether this task view represents the desktop */
public boolean isDesktopTask() {
return false;
}
/**
* Called to animate a smooth transition when going directly from an app into Overview (and
* vice versa). Icons fade in, and DWB banners slide in with a "shift up" animation.
@@ -1517,7 +1522,7 @@ public class TaskView extends FrameLayout implements Reusable {
int boxWidth;
int boxHeight;
boolean isFocusedTask = isFocusedTask();
if (isFocusedTask) {
if (isFocusedTask || isDesktopTask()) {
// Task will be focused and should use focused task size. Use focusTaskRatio
// that is associated with the original orientation of the focused task.
boxWidth = taskWidth;