From 462497632db844942163c2a20ee9c90c0e241261 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Fri, 9 Jun 2017 14:38:39 -0700 Subject: [PATCH] Preemptively create Bitmap from GraphicBuffer - This call moves up the code to create a ThumbnailData from the TaskSnapshot to ensure that it is registered with the GC even if there is no active TaskView bound to process the event. Bug: 62360156 Test: Run "bit CtsMediaTestCases:.DecodeAccuracyTest", and ensure that the "Lost RAM" is relatively unchanged afterwards Change-Id: I64af55aa40e80604864e17045798823cc6fee483 --- .../src/com/android/systemui/recents/RecentsImpl.java | 4 +++- .../recents/events/ui/TaskSnapshotChangedEvent.java | 9 ++++----- .../systemui/recents/views/TaskViewThumbnail.java | 9 +++------ 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java index 611169f575c1d..42e892136954b 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java @@ -78,6 +78,7 @@ import com.android.systemui.recents.model.RecentsTaskLoader; import com.android.systemui.recents.model.Task; import com.android.systemui.recents.model.TaskGrouping; import com.android.systemui.recents.model.TaskStack; +import com.android.systemui.recents.model.ThumbnailData; import com.android.systemui.recents.views.RecentsTransitionHelper; import com.android.systemui.recents.views.RecentsTransitionHelper.AppTransitionAnimationSpecsFuture; import com.android.systemui.recents.views.TaskStackLayoutAlgorithm; @@ -199,7 +200,8 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener return; } - EventBus.getDefault().send(new TaskSnapshotChangedEvent(taskId, snapshot)); + EventBus.getDefault().send(new TaskSnapshotChangedEvent(taskId, + ThumbnailData.createFromTaskSnapshot(snapshot))); } } diff --git a/packages/SystemUI/src/com/android/systemui/recents/events/ui/TaskSnapshotChangedEvent.java b/packages/SystemUI/src/com/android/systemui/recents/events/ui/TaskSnapshotChangedEvent.java index 07c3b3d7b391a..e0ed7a9e7e356 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/events/ui/TaskSnapshotChangedEvent.java +++ b/packages/SystemUI/src/com/android/systemui/recents/events/ui/TaskSnapshotChangedEvent.java @@ -16,9 +16,8 @@ package com.android.systemui.recents.events.ui; -import android.app.ActivityManager.TaskSnapshot; - import com.android.systemui.recents.events.EventBus; +import com.android.systemui.recents.model.ThumbnailData; /** * Sent when a task snapshot has changed. @@ -26,10 +25,10 @@ import com.android.systemui.recents.events.EventBus; public class TaskSnapshotChangedEvent extends EventBus.Event { public final int taskId; - public final TaskSnapshot taskSnapshot; + public final ThumbnailData thumbnailData; - public TaskSnapshotChangedEvent(int taskId, TaskSnapshot taskSnapshot) { + public TaskSnapshotChangedEvent(int taskId, ThumbnailData thumbnailData) { this.taskId = taskId; - this.taskSnapshot = taskSnapshot; + this.thumbnailData = thumbnailData; } } diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java index 5989b33f38084..a2190b3a3d199 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java @@ -16,7 +16,6 @@ package com.android.systemui.recents.views; -import android.app.ActivityManager; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; @@ -37,7 +36,6 @@ import android.view.ViewDebug; import com.android.systemui.R; import com.android.systemui.recents.events.EventBus; -import com.android.systemui.recents.events.EventBus.Event; import com.android.systemui.recents.events.ui.TaskSnapshotChangedEvent; import com.android.systemui.recents.misc.Utilities; import com.android.systemui.recents.model.Task; @@ -386,15 +384,14 @@ public class TaskViewThumbnail extends View { } public final void onBusEvent(TaskSnapshotChangedEvent event) { - if (mTask == null || event.taskId != mTask.key.id || event.taskSnapshot == null) { + if (mTask == null || event.taskId != mTask.key.id || event.thumbnailData == null + || event.thumbnailData.thumbnail == null) { return; } - setThumbnail(ThumbnailData.createFromTaskSnapshot(event.taskSnapshot)); + setThumbnail(event.thumbnailData); } public void dump(String prefix, PrintWriter writer) { - String innerPrefix = prefix + " "; - writer.print(prefix); writer.print("TaskViewThumbnail"); writer.print(" mTaskViewRect="); writer.print(Utilities.dumpRect(mTaskViewRect)); writer.print(" mThumbnailRect="); writer.print(Utilities.dumpRect(mThumbnailRect));