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
This commit is contained in:
Winson Chung 2019-01-10 15:16:13 -08:00
parent 5e35040c75
commit 469864e49e
2 changed files with 8 additions and 9 deletions

View File

@ -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();
}

View File

@ -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() {