2D Recents: use correct layout logic for drawing transition headers

Bug: 33752154
Test: Checked/screencasted app -> recents -> app transitions on sw60dp device
Change-Id: Ib29e5feaadb4bdacae6c60d25526d0c7af95361f
This commit is contained in:
Manu Cornet
2017-01-25 18:31:01 +09:00
parent 56d29925ac
commit de3cfb0c1f
2 changed files with 21 additions and 3 deletions

View File

@@ -71,6 +71,7 @@ import com.android.systemui.recents.views.TaskStackView;
import com.android.systemui.recents.views.TaskStackViewScroller;
import com.android.systemui.recents.views.TaskViewHeader;
import com.android.systemui.recents.views.TaskViewTransform;
import com.android.systemui.recents.views.grid.TaskGridLayoutAlgorithm;
import com.android.systemui.stackdivider.DividerView;
import com.android.systemui.statusbar.BaseStatusBar;
import com.android.systemui.statusbar.phone.NavigationBarGestureHelper;
@@ -618,10 +619,21 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener
stackLayout.initialize(displayRect, windowRect, mTaskStackBounds,
TaskStackLayoutAlgorithm.StackState.getStackStateForStack(stack));
mDummyStackView.setTasks(stack, false /* allowNotifyStackChanges */);
// Get the width of a task view so that we know how wide to draw the header bar.
int taskViewWidth = 0;
if (mDummyStackView.useGridLayout()) {
TaskGridLayoutAlgorithm gridLayout = mDummyStackView.getGridAlgorithm();
gridLayout.initialize(windowRect);
taskViewWidth = (int) gridLayout.getTransform(0 /* taskIndex */,
stack.getTaskCount(), new TaskViewTransform(), stackLayout).rect.width();
} else {
Rect taskViewBounds = stackLayout.getUntransformedTaskViewBounds();
if (!taskViewBounds.isEmpty()) {
taskViewWidth = taskViewBounds.width();
}
}
Rect taskViewBounds = stackLayout.getUntransformedTaskViewBounds();
if (!taskViewBounds.isEmpty()) {
int taskViewWidth = taskViewBounds.width();
if (taskViewWidth > 0) {
synchronized (mHeaderBarLock) {
if (mHeaderBar.getMeasuredWidth() != taskViewWidth ||
mHeaderBar.getMeasuredHeight() != mTaskBarHeight) {

View File

@@ -95,6 +95,7 @@ import com.android.systemui.recents.model.Task;
import com.android.systemui.recents.model.TaskStack;
import com.android.systemui.recents.views.grid.GridTaskView;
import com.android.systemui.recents.views.grid.TaskGridLayoutAlgorithm;
import com.android.systemui.recents.views.grid.TaskViewFocusFrame;
import java.io.PrintWriter;
import java.lang.annotation.Retention;
@@ -446,6 +447,11 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
return mLayoutAlgorithm;
}
/** Returns the grid algorithm for this task stack. */
public TaskGridLayoutAlgorithm getGridAlgorithm() {
return mLayoutAlgorithm.mTaskGridLayoutAlgorithm;
}
/**
* Returns the touch handler for this task stack.
*/