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

Commit 42fb2e41 authored by Manu Cornet's avatar Manu Cornet Committed by Android (Google) Code Review
Browse files

Merge "2d Recents: show full task thumbnail and don't overlap header"

parents f8783bc6 5f61536c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@ public class TaskView extends FixedSizeFrameLayout implements Task.TaskCallbacks
    private ArrayList<Animator> mTmpAnimators = new ArrayList<>();

    @ViewDebug.ExportedProperty(deepExport=true, prefix="thumbnail_")
    TaskViewThumbnail mThumbnailView;
    protected TaskViewThumbnail mThumbnailView;
    @ViewDebug.ExportedProperty(deepExport=true, prefix="header_")
    TaskViewHeader mHeaderView;
    private View mActionButtonView;
@@ -239,7 +239,7 @@ public class TaskView extends FixedSizeFrameLayout implements Task.TaskCallbacks
    /**
     * Update the task view when the configuration changes.
     */
    void onConfigurationChanged() {
    protected void onConfigurationChanged() {
        mHeaderView.onConfigurationChanged();
    }

+20 −4
Original line number Diff line number Diff line
@@ -60,6 +60,8 @@ public class TaskViewThumbnail extends View {
    @ViewDebug.ExportedProperty(category="recents")
    private float mThumbnailScale;
    private float mFullscreenThumbnailScale;
    private boolean mSizeToFit = false;
    private boolean mOverlayHeaderOnThumbnailActionBar = true;
    private ActivityManager.TaskThumbnailInfo mThumbnailInfo;

    private int mCornerRadius;
@@ -140,9 +142,10 @@ public class TaskViewThumbnail extends View {
            canvas.drawRoundRect(0, 0, viewWidth, viewHeight, mCornerRadius, mCornerRadius,
                    mLockedPaint);
        } else if (mBitmapShader != null && thumbnailWidth > 0 && thumbnailHeight > 0) {
            int topOffset = mTaskBar != null
                    ? mTaskBar.getHeight() - mCornerRadius
                    : 0;
            int topOffset = 0;
            if (mTaskBar != null && mOverlayHeaderOnThumbnailActionBar) {
                topOffset = mTaskBar.getHeight() - mCornerRadius;
            }

            // Draw the background, there will be some small overdraw with the thumbnail
            if (thumbnailWidth < viewWidth) {
@@ -238,7 +241,7 @@ public class TaskViewThumbnail extends View {
                // If we haven't measured or the thumbnail is invalid, skip the thumbnail drawing
                // and only draw the background color
                mThumbnailScale = 0f;
            } else if (isStackTask) {
            } else if (isStackTask && !mSizeToFit) {
                float invThumbnailScale = 1f / mFullscreenThumbnailScale;
                if (mDisplayOrientation == Configuration.ORIENTATION_PORTRAIT) {
                    if (mThumbnailInfo.screenOrientation == Configuration.ORIENTATION_PORTRAIT) {
@@ -270,6 +273,19 @@ public class TaskViewThumbnail extends View {
        }
    }

    /** Sets whether the thumbnail should be resized to fit the task view in all orientations. */
    public void setSizeToFit(boolean flag) {
        mSizeToFit = flag;
    }

    /**
     * Sets whether the header should overlap (and hide) the action bar in the thumbnail, or
     * be stacked just above it.
     */
    public void setOverlayHeaderOnThumbnailActionBar(boolean flag) {
        mOverlayHeaderOnThumbnailActionBar = flag;
    }

    /** Updates the clip rect based on the given task bar. */
    void updateClipToTaskBar(View taskBar) {
        mTaskBar = taskBar;
+24 −0
Original line number Diff line number Diff line
@@ -23,6 +23,10 @@ import com.android.systemui.recents.views.AnimateableViewBounds;
import com.android.systemui.recents.views.TaskView;

public class GridTaskView extends TaskView {

    /** The height, in pixels, of the header view. */
    private int mHeaderHeight;

    public GridTaskView(Context context) {
        this(context, null);
    }
@@ -37,6 +41,18 @@ public class GridTaskView extends TaskView {

    public GridTaskView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        mHeaderHeight = context.getResources().getDimensionPixelSize(
                R.dimen.recents_task_view_header_height);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        // Show the full thumbnail and don't overlap with the header.
        mThumbnailView.setSizeToFit(true);
        mThumbnailView.setOverlayHeaderOnThumbnailActionBar(false);
        mThumbnailView.updateThumbnailScale();
        mThumbnailView.setTranslationY(mHeaderHeight);
    }

    @Override
@@ -44,4 +60,12 @@ public class GridTaskView extends TaskView {
        return new AnimateableGridViewBounds(this, mContext.getResources().getDimensionPixelSize(
            R.dimen.recents_task_view_shadow_rounded_corners_radius));
    }

    @Override
    protected void onConfigurationChanged() {
        super.onConfigurationChanged();
        mHeaderHeight = mContext.getResources().getDimensionPixelSize(
                R.dimen.recents_task_view_header_height);
        mThumbnailView.setTranslationY(mHeaderHeight);
    }
}