Merge "Refresh thumbnail splash when task icon changes." into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2023-02-09 16:29:50 +00:00
committed by Android (Google) Code Review
5 changed files with 30 additions and 3 deletions

View File

@@ -355,6 +355,12 @@ public class GroupedTaskView extends TaskView {
mSnapshotView2.setSplashAlpha(mTaskThumbnailSplashAlpha);
}
@Override
protected void refreshTaskThumbnailSplash() {
super.refreshTaskThumbnailSplash();
mSnapshotView2.refreshSplashView();
}
/**
* Sets visibility for thumbnails and associated elements (DWB banners).
* IconView is unaffected.

View File

@@ -92,6 +92,7 @@ public class LauncherRecentsView extends RecentsView<QuickstepLauncher, Launcher
@Override
public void onTaskIconChanged(int taskId) {
super.onTaskIconChanged(taskId);
// If Launcher needs to return to split select state, do it now, after the icon has updated.
if (mActivity.hasPendingSplitSelectInfo()) {
PendingSplitSelectInfo recoveryData = mActivity.getPendingSplitSelectInfo();

View File

@@ -956,6 +956,14 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
}
}
@Override
public void onTaskIconChanged(int taskId) {
TaskView taskView = getTaskViewByTaskId(taskId);
if (taskView != null) {
taskView.refreshTaskThumbnailSplash();
}
}
/**
* Update the thumbnail of the task.
* @param refreshNow Refresh immediately if it's true.

View File

@@ -342,10 +342,11 @@ public class TaskThumbnailView extends View {
// Draw splash above thumbnail to hide inconsistencies in rotation and aspect ratios.
if (shouldShowSplashView()) {
// Always draw background for hiding inconsistencies, even if splash view is not yet
// loaded (which can happen as task icons are loaded asynchronously in the background)
canvas.drawRoundRect(x, y, width + 1, height + 1, cornerRadius,
cornerRadius, mSplashBackgroundPaint);
if (mSplashView != null) {
canvas.drawRoundRect(x, y, width + 1, height + 1, cornerRadius,
cornerRadius, mSplashBackgroundPaint);
mSplashView.layout((int) x, (int) (y + 1), (int) width, (int) height - 1);
mSplashView.draw(canvas);
}
@@ -375,6 +376,13 @@ public class TaskThumbnailView extends View {
|| isThumbnailRotationDifferentFromTask();
}
protected void refreshSplashView() {
if (mTask != null) {
updateSplashView(mTask.icon);
invalidate();
}
}
private void updateSplashView(Drawable icon) {
if (icon == null || icon.getConstantState() == null) {
mSplashViewDrawable = null;

View File

@@ -1215,6 +1215,10 @@ public class TaskView extends FrameLayout implements Reusable {
mSnapshotView.setSplashAlpha(mTaskThumbnailSplashAlpha);
}
protected void refreshTaskThumbnailSplash() {
mSnapshotView.refreshSplashView();
}
private void setSplitSelectTranslationX(float x) {
mSplitSelectTranslationX = x;
applyTranslationX();