summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Selim Cinek <cinek@google.com> 2015-04-15 19:29:49 -0700
committer Selim Cinek <cinek@google.com> 2015-04-16 11:58:41 -0700
commit31d9ef7a402b58b10758da1d71ff5e2181abe8a4 (patch)
tree133394ed0f225152dd5945cee02ef18f11944da3
parent2aab2fb76e0d3cbc8457aaaf92f49da2be6e14cc (diff)
Fixed the behavior for HUNs with fullscreen intents
Now HUNs with full screen intents don't fire automatically when added and don't time out anymore when HUN'd Change-Id: Ic2d5033febe514760cbb4e6e028c3cea84d07cd8
-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 61e679afd426..a5dad923b776 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 920a0a15c261..dccf2e21fa2c 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