Revert "Combining the Thumbnail bitmap with the background to fix background spilling in the front."
This reverts commit 5a9dce518edb2487b76485723401751ac0be0a74.
Reason for revert: The solution is inefficient. There is already a solution in ag/17060224
Change-Id: I5b5862f1ae426c78062c5a0f481abfb13b3060cc
diff --git a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
index 11f9ddd..60b0d17 100644
--- a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
@@ -50,7 +50,6 @@
import com.android.launcher3.BaseActivity;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Utilities;
-import com.android.launcher3.icons.BitmapRenderer;
import com.android.launcher3.util.MainThreadInitializedObject;
import com.android.launcher3.util.SystemUiController;
import com.android.quickstep.TaskOverlayFactory.TaskOverlay;
@@ -162,23 +161,6 @@
setThumbnail(task, thumbnailData, true /* refreshNow */);
}
- /**
- * By combining the two in a single bitmap then we only have to do a single draw
- * call in the onDraw function. Also, this fixes a bug where the background was
- * visible in the corners because of anti-aliasing.
- */
- public Bitmap combineThumbnailAndBackground(Bitmap bm) {
- return BitmapRenderer.createHardwareBitmap(bm.getWidth(), bm.getHeight(), c -> {
- final boolean drawBackgroundOnly = mTask == null || mTask.isLocked;
- if (drawBackgroundOnly) {
- c.drawPaint(mBackgroundPaint);
- } else {
- c.drawPaint(mBackgroundPaint);
- c.drawBitmap(bm, 0, 0, null);
- }
- });
- }
-
/** Updates the shader, paint, matrix to redraw. */
public void refresh() {
refresh(false);
@@ -191,7 +173,6 @@
private void refresh(boolean shouldRefreshOverlay) {
if (mThumbnailData != null && mThumbnailData.thumbnail != null) {
Bitmap bm = mThumbnailData.thumbnail;
- bm = combineThumbnailAndBackground(bm);
bm.prepareToDraw();
mBitmapShader = new BitmapShader(bm, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
mPaint.setShader(mBitmapShader);
@@ -213,6 +194,7 @@
* <p>
* If dimAlpha is 0, no dimming is applied; if dimAlpha is 1, the thumbnail will be the
* extracted background color.
+ *
*/
public void setDimAlpha(float dimAlpha) {
mDimAlpha = dimAlpha;
@@ -314,6 +296,18 @@
return;
}
}
+
+ // Always draw the background since the snapshots might be translucent or partially empty
+ // (For example, tasks been reparented out of dismissing split root when drag-to-dismiss
+ // split screen).
+ canvas.drawRoundRect(x, y, width, height, cornerRadius, cornerRadius, mBackgroundPaint);
+
+ final boolean drawBackgroundOnly = mTask == null || mTask.isLocked || mBitmapShader == null
+ || mThumbnailData == null;
+ if (drawBackgroundOnly) {
+ return;
+ }
+
canvas.drawRoundRect(x, y, width, height, cornerRadius, cornerRadius, mPaint);
}
@@ -344,6 +338,7 @@
private void updateThumbnailPaintFilter() {
ColorFilter filter = getColorFilter(mDimAlpha);
+ mBackgroundPaint.setColorFilter(filter);
int alpha = (int) (mDimAlpha * 255);
mDimmingPaintAfterClearing.setAlpha(alpha);
if (mBitmapShader != null) {