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

am: 8e08d0e828

Change-Id: I048d8bb5e3eff94ad87d302f000a6739ad51fc49
This commit is contained in:
Manu Cornet
2017-02-06 22:53:09 +00:00
committed by android-build-merger
2 changed files with 21 additions and 3 deletions

View File

@@ -76,6 +76,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.phone.NavigationBarGestureHelper;
import com.android.systemui.statusbar.phone.StatusBar;
@@ -637,10 +638,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

@@ -96,6 +96,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;
@@ -447,6 +448,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.
*/