From d87d9e262b679436736a58807ccb5b30a7663787 Mon Sep 17 00:00:00 2001 From: Uwais Ashraf Date: Thu, 13 Jun 2024 12:19:57 +0000 Subject: [PATCH] Refresh overlay on new snapshot taken even if an old snapshot exists Bug: 302041971 Test: Manual checking of overlay refreshes in bug repro case - live tile and select Test: Manual checking of no additional overlay refreshes on non-live tile select Test: Manually ensured no additional overlay refreshes while scrolling Test: presubmit Flag: EXEMPT bugfix Change-Id: I5d455560d0bf816f86042078a662f06f5d1397bb --- .../quickstep/views/TaskThumbnailViewDeprecated.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/quickstep/views/TaskThumbnailViewDeprecated.java b/quickstep/src/com/android/quickstep/views/TaskThumbnailViewDeprecated.java index 447002f2a6..4283d0e4cf 100644 --- a/quickstep/src/com/android/quickstep/views/TaskThumbnailViewDeprecated.java +++ b/quickstep/src/com/android/quickstep/views/TaskThumbnailViewDeprecated.java @@ -61,6 +61,8 @@ import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.recents.utilities.PreviewPositionHelper; +import java.util.Objects; + /** * A task in the Recents view. * @@ -222,14 +224,16 @@ public class TaskThumbnailViewDeprecated extends View implements ViewPool.Reusab public void setThumbnail(@Nullable Task task, @Nullable ThumbnailData thumbnailData, boolean refreshNow) { mTask = task; - boolean thumbnailWasNull = mThumbnailData == null; + ThumbnailData oldThumbnailData = mThumbnailData; mThumbnailData = (thumbnailData != null && thumbnailData.getThumbnail() != null) ? thumbnailData : null; if (mTask != null) { updateSplashView(mTask.icon); } if (refreshNow) { - refresh(thumbnailWasNull && mThumbnailData != null); + Long oldSnapshotId = oldThumbnailData != null ? oldThumbnailData.getSnapshotId() : null; + Long snapshotId = mThumbnailData != null ? mThumbnailData.getSnapshotId() : null; + refresh(snapshotId != null && !Objects.equals(oldSnapshotId, snapshotId)); } }