on screen off: convert heads up to full screen intent.
Let the app handle screen off as appropriate. Bug: 10209767 Change-Id: I3949def1980118c0380b173a83148321ad8c5d95
This commit is contained in:
@@ -89,6 +89,7 @@ public abstract class BaseStatusBar extends SystemUI implements
|
|||||||
protected static final int MSG_CLOSE_SEARCH_PANEL = 1025;
|
protected static final int MSG_CLOSE_SEARCH_PANEL = 1025;
|
||||||
protected static final int MSG_SHOW_HEADS_UP = 1026;
|
protected static final int MSG_SHOW_HEADS_UP = 1026;
|
||||||
protected static final int MSG_HIDE_HEADS_UP = 1027;
|
protected static final int MSG_HIDE_HEADS_UP = 1027;
|
||||||
|
protected static final int MSG_ESCALATE_HEADS_UP = 1028;
|
||||||
|
|
||||||
protected static final boolean ENABLE_HEADS_UP = true;
|
protected static final boolean ENABLE_HEADS_UP = true;
|
||||||
// scores above this threshold should be displayed in heads up mode.
|
// scores above this threshold should be displayed in heads up mode.
|
||||||
@@ -1035,6 +1036,12 @@ public abstract class BaseStatusBar extends SystemUI implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void notifyHeadsUpScreenOn(boolean screenOn) {
|
||||||
|
if (!screenOn && mInterruptingNotificationEntry != null) {
|
||||||
|
mHandler.sendEmptyMessage(MSG_ESCALATE_HEADS_UP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected boolean shouldInterrupt(StatusBarNotification sbn) {
|
protected boolean shouldInterrupt(StatusBarNotification sbn) {
|
||||||
Notification notification = sbn.getNotification();
|
Notification notification = sbn.getNotification();
|
||||||
// some predicates to make the boolean logic legible
|
// some predicates to make the boolean logic legible
|
||||||
|
|||||||
@@ -1354,6 +1354,27 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
setHeadsUpVisibility(false);
|
setHeadsUpVisibility(false);
|
||||||
mInterruptingNotificationEntry = null;
|
mInterruptingNotificationEntry = null;
|
||||||
break;
|
break;
|
||||||
|
case MSG_ESCALATE_HEADS_UP:
|
||||||
|
escalateHeadsUp();
|
||||||
|
setHeadsUpVisibility(false);
|
||||||
|
mInterruptingNotificationEntry = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** if the interrupting notification had a fullscreen intent, fire it now. */
|
||||||
|
private void escalateHeadsUp() {
|
||||||
|
if (mInterruptingNotificationEntry != null) {
|
||||||
|
final StatusBarNotification sbn = mInterruptingNotificationEntry.notification;
|
||||||
|
final Notification notification = sbn.getNotification();
|
||||||
|
if (notification.fullScreenIntent != null) {
|
||||||
|
if (DEBUG)
|
||||||
|
Log.d(TAG, "converting a heads up to fullScreen");
|
||||||
|
try {
|
||||||
|
notification.fullScreenIntent.send();
|
||||||
|
} catch (PendingIntent.CanceledException e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2516,6 +2537,7 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
// no waiting!
|
// no waiting!
|
||||||
makeExpandedInvisible();
|
makeExpandedInvisible();
|
||||||
notifyNavigationBarScreenOn(false);
|
notifyNavigationBarScreenOn(false);
|
||||||
|
notifyHeadsUpScreenOn(false);
|
||||||
}
|
}
|
||||||
else if (Intent.ACTION_CONFIGURATION_CHANGED.equals(action)) {
|
else if (Intent.ACTION_CONFIGURATION_CHANGED.equals(action)) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
|
|||||||
Reference in New Issue
Block a user