diff options
author | Selim Cinek <cinek@google.com> | 2015-11-06 11:33:20 -0800 |
---|---|---|
committer | Selim Cinek <cinek@google.com> | 2016-01-13 21:13:33 +0000 |
commit | ba9e8586e3eb32f8a33695964da0bdf8eab13da9 (patch) | |
tree | a0fa4853c45b47e89da3bb6f0bda05c66979af89 | |
parent | 9ae30e69ada03ebf3408ed1d2f24a5a67ea33b68 (diff) | |
download | base-ba9e8586e3eb32f8a33695964da0bdf8eab13da9.tar.gz |
Fixed a crash with the heads up manager
Bug: 25693389
Change-Id: Id852e342000bff6de0ce19f442eb53b21e935b7b
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java index 4a95d3a4d52a..53c47dd08ac9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java @@ -453,7 +453,10 @@ public class HeadsUpManager implements ViewTreeObserver.OnComputeInternalInsetsL mReleaseOnExpandFinish = false; } else { for (NotificationData.Entry entry : mEntriesToRemoveAfterExpand) { - removeHeadsUpEntry(entry); + if (isHeadsUp(entry.key)) { + // Maybe the heads-up was removed already + removeHeadsUpEntry(entry); + } } } mEntriesToRemoveAfterExpand.clear(); @@ -572,6 +575,9 @@ public class HeadsUpManager implements ViewTreeObserver.OnComputeInternalInsetsL earliestRemovaltime = currentTime + mMinimumDisplayTime; postTime = Math.max(postTime, currentTime); removeAutoRemovalCallbacks(); + if (mEntriesToRemoveAfterExpand.contains(entry)) { + mEntriesToRemoveAfterExpand.remove(entry); + } if (!hasFullScreenIntent(entry)) { long finishTime = postTime + mHeadsUpNotificationDecay; long removeDelay = Math.max(finishTime - currentTime, mMinimumDisplayTime); |