From 22574afa00b7e32b7c4c5a1b98deebd67751b364 Mon Sep 17 00:00:00 2001 From: Winson Date: Wed, 23 Mar 2016 19:00:28 -0700 Subject: [PATCH] Adding workaround for crash. Bug: 27815919 Change-Id: I04d70d16dd8b8281ba1ffbba056d475d834d5b54 --- .../src/com/android/systemui/recents/RecentsImpl.java | 9 +++++++-- .../android/systemui/recents/views/TaskViewHeader.java | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java index cd131dc83c11b..58216b08463f1 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java @@ -20,8 +20,6 @@ import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; import android.app.ActivityManager; import android.app.ActivityOptions; -import android.app.ITaskStackListener; -import android.app.UiModeManager; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; @@ -30,6 +28,7 @@ import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.RectF; +import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.SystemClock; import android.os.UserHandle; @@ -795,6 +794,12 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener } else { Canvas c = new Canvas(thumbnail); c.scale(toTransform.scale, toTransform.scale); + // Workaround for b/27815919, reset the callback so that we do not trigger an + // invalidate on the header bar as a result of updating the icon + Drawable icon = mHeaderBar.getIconView().getDrawable(); + if (icon != null) { + icon.setCallback(null); + } mHeaderBar.rebindToTask(toTask, false /* touchExplorationEnabled */, disabledInSafeMode); mHeaderBar.setDimAlpha(toTransform.dimAlpha); diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java index cdff16d1a0b56..a2e95737eecfb 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java @@ -337,6 +337,11 @@ public class TaskViewHeader extends FrameLayout } } + /** Only exposed for the workaround for b/27815919. */ + public ImageView getIconView() { + return mIconView; + } + /** Returns the secondary color for a primary color. */ int getSecondaryColor(int primaryColor, boolean useLightOverlayColor) { int overlayColor = useLightOverlayColor ? Color.WHITE : Color.BLACK;