Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e97f90b9 authored by Chris Wren's avatar Chris Wren
Browse files

on screen off: convert heads up to full screen intent.

Let the app handle screen off as appropriate.

Bug: 10209767
Change-Id: I3949def1980118c0380b173a83148321ad8c5d95
parent 6ccf0aff
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -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
+22 −0
Original line number Original line Diff line number Diff line
@@ -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) {