Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 12ea12aa authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "2D Recents: polish the app -> recents transition" into nyc-mr2-dev

parents 1cf89cb8 fc6ac0a7
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -733,7 +733,11 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener
            Task toTask = new Task();
            TaskViewTransform toTransform = getThumbnailTransitionTransform(stackView, toTask,
                    windowOverrideRect);
            Bitmap thumbnail = drawThumbnailTransitionBitmap(toTask, toTransform,
            // When using a grid layout, the header is already visible on screen at the target
            // location, making it unnecessary to draw it in the transition thumbnail.
            Bitmap thumbnail = stackView.useGridLayout()
                    ? mThumbTransitionBitmapCache.createAshmemBitmap()
                    : drawThumbnailTransitionBitmap(toTask, toTransform,
                            mThumbTransitionBitmapCache);
            if (thumbnail != null) {
                RectF toTaskRect = toTransform.rect;
@@ -765,7 +769,6 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener
        // Get the transform for the running task
        stackView.updateLayoutAlgorithm(true /* boundScroll */);
        stackView.updateToInitialState();
        boolean isInSplitScreen = Recents.getSystemServices().hasDockedTask();
        stackView.getStackAlgorithm().getStackTransformScreenCoordinates(launchTask,
                stackView.getScroller().getStackScroll(), mTmpTransform, null, windowOverrideRect);
        return mTmpTransform;
+17 −1
Original line number Diff line number Diff line
@@ -292,6 +292,9 @@ public class TaskStackLayoutAlgorithm {
    @ViewDebug.ExportedProperty(category="recents")
    private int mStackBottomOffset;

    /** The height, in pixels, of each task view's title bar. */
    private int mTitleBarHeight;

    // The paths defining the motion of the tasks when the stack is focused and unfocused
    private Path mUnfocusedCurve;
    private Path mFocusedCurve;
@@ -404,6 +407,14 @@ public class TaskStackLayoutAlgorithm {
        mBaseBottomMargin = res.getDimensionPixelSize(R.dimen.recents_layout_bottom_margin);
        mFreeformStackGap =
                res.getDimensionPixelSize(R.dimen.recents_freeform_layout_bottom_margin);
        mTitleBarHeight = getDimensionForDevice(mContext,
                R.dimen.recents_task_view_header_height,
                R.dimen.recents_task_view_header_height,
                R.dimen.recents_task_view_header_height,
                R.dimen.recents_task_view_header_height_tablet_land,
                R.dimen.recents_task_view_header_height,
                R.dimen.recents_task_view_header_height_tablet_land,
                R.dimen.recents_grid_task_view_header_height);
    }

    /**
@@ -904,12 +915,17 @@ public class TaskStackLayoutAlgorithm {
     * Transforms the given {@param transformOut} to the screen coordinates, overriding the current
     * window rectangle with {@param windowOverrideRect} if non-null.
     */
    public TaskViewTransform transformToScreenCoordinates(TaskViewTransform transformOut,
    TaskViewTransform transformToScreenCoordinates(TaskViewTransform transformOut,
            Rect windowOverrideRect) {
        Rect windowRect = windowOverrideRect != null
                ? windowOverrideRect
                : Recents.getSystemServices().getWindowRect();
        transformOut.rect.offset(windowRect.left, windowRect.top);
        if (useGridLayout()) {
            // Draw the thumbnail a little lower to perfectly coincide with the view we are
            // transitioning to, where the header bar has already been drawn.
            transformOut.rect.offset(0, mTitleBarHeight);
        }
        return transformOut;
    }