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

Commit 469864e4 authored by Winson Chung's avatar Winson Chung
Browse files

Fix issue with black flash when swiping up

- Ensure we update the background paint whenever the thumbnail is
  bound to the task view (we still draw with the background paint when the
  thumbnail has not yet loaded)
- Ensure that the dim is applied to the background paint even before
  the thumbnail has loaded

Bug: 122612839
Test: Kill launcher, launch overview
Change-Id: Ia09ff49e4641b6a02a37cec3f94f74c2b0b8fd24
parent 5e35040c
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -116,8 +116,12 @@ public class TaskThumbnailView extends View {
        mIsDarkTextTheme = Themes.getAttrBoolean(mActivity, R.attr.isWorkspaceDarkText);
    }

    public void bind() {
    public void bind(Task task) {
        mOverlay.reset();
        mTask = task;
        int color = task == null ? Color.BLACK : task.colorBackground | 0xFF000000;
        mPaint.setColor(color);
        mBackgroundPaint.setColor(color);
    }

    /**
@@ -125,10 +129,6 @@ public class TaskThumbnailView extends View {
     */
    public void setThumbnail(Task task, ThumbnailData thumbnailData) {
        mTask = task;
        int color = task == null ? Color.BLACK : task.colorBackground | 0xFF000000;
        mPaint.setColor(color);
        mBackgroundPaint.setColor(color);

        if (thumbnailData != null && thumbnailData.thumbnail != null) {
            Bitmap bm = thumbnailData.thumbnail;
            bm.prepareToDraw();
@@ -255,15 +255,14 @@ public class TaskThumbnailView extends View {

    private void updateThumbnailPaintFilter() {
        int mul = (int) ((1 - mDimAlpha * mDimAlphaMultiplier) * 255);
        ColorFilter filter = getColorFilter(mul, mIsDarkTextTheme, mSaturation);
        mBackgroundPaint.setColorFilter(filter);
        mDimmingPaintAfterClearing.setAlpha(255 - mul);
        if (mBitmapShader != null) {
            ColorFilter filter = getColorFilter(mul, mIsDarkTextTheme, mSaturation);
            mPaint.setColorFilter(filter);
            mBackgroundPaint.setColorFilter(filter);
        } else {
            mPaint.setColorFilter(null);
            mPaint.setColor(Color.argb(255, mul, mul, mul));
            mBackgroundPaint.setColorFilter(null);
        }
        invalidate();
    }
+1 −1
Original line number Diff line number Diff line
@@ -214,7 +214,7 @@ public class TaskView extends FrameLayout implements PageCallbacks {
     */
    public void bind(Task task) {
        mTask = task;
        mSnapshotView.bind();
        mSnapshotView.bind(task);
    }

    public Task getTask() {