summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java14
2 files changed, 13 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 61e679a..a5dad92 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -1116,11 +1116,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
if (shadeEntry == null) {
return;
}
- if (mUseHeadsUp && shouldInterrupt(notification)) {
+ boolean isHeadsUped = mUseHeadsUp && shouldInterrupt(notification);
+ if (isHeadsUped) {
mHeadsUpManager.showNotification(shadeEntry);
}
- if (notification.getNotification().fullScreenIntent != null) {
+ if (!isHeadsUped && notification.getNotification().fullScreenIntent != null) {
// Stop screensaver if the notification has a full-screen intent.
// (like an incoming phone call)
awakenDreams();
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 920a0a1..dccf2e2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
@@ -464,15 +464,21 @@ public class HeadsUpManager implements ViewTreeObserver.OnComputeInternalInsetsL
public void updateEntry() {
long currentTime = mClock.currentTimeMillis();
- postTime = Math.max(postTime, currentTime);
- long finishTime = postTime + mHeadsUpNotificationDecay;
- long removeDelay = Math.max(finishTime - currentTime, mMinimumDisplayTime);
earliestRemovaltime = currentTime + mMinimumDisplayTime;
+ postTime = Math.max(postTime, currentTime);
removeAutoCancelCallbacks();
- mHandler.postDelayed(mRemoveHeadsUpRunnable, removeDelay);
+ if (canEntryDecay()) {
+ long finishTime = postTime + mHeadsUpNotificationDecay;
+ long removeDelay = Math.max(finishTime - currentTime, mMinimumDisplayTime);
+ mHandler.postDelayed(mRemoveHeadsUpRunnable, removeDelay);
+ }
updateSortOrder(HeadsUpEntry.this);
}
+ private boolean canEntryDecay() {
+ return entry.notification.getNotification().fullScreenIntent == null;
+ }
+
@Override
public int compareTo(HeadsUpEntry o) {
return postTime < o.postTime ? 1