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

Commit d592191b authored by Selim Cinek's avatar Selim Cinek
Browse files

Improved the heads up logic to launch fullscreen intents less

Fullscreen intents are always less distracting when heads upped
instead of launched fullscreen, so when snoozed or if the ranking
isn't high enough we now prefer HUN instead of simply launching
it.

Change-Id: Iae16d35c6a6d3f11f3d1f6db6e1dc067018a5172
parent 3776fe00
Loading
Loading
Loading
Loading
+29 −20
Original line number Diff line number Diff line
@@ -2080,8 +2080,25 @@ public abstract class BaseStatusBar extends SystemUI implements
            return false;
        }

        if (isSnoozedPackage(sbn)) {
            if (DEBUG) Log.d(TAG, "No peeking: snoozed package: " + sbn.getKey());
        boolean inUse = mPowerManager.isScreenOn()
                && (!mStatusBarKeyguardViewManager.isShowing()
                || mStatusBarKeyguardViewManager.isOccluded())
                && !mStatusBarKeyguardViewManager.isInputRestricted();
        try {
            inUse = inUse && !mDreamManager.isDreaming();
        } catch (RemoteException e) {
            Log.d(TAG, "failed to query dream manager", e);
        }

        if (!inUse) {
            if (DEBUG) {
                Log.d(TAG, "No peeking: not in use: " + sbn.getKey());
            }
            return false;
        }

        if (mNotificationData.shouldSuppressScreenOn(sbn.getKey())) {
            if (DEBUG) Log.d(TAG, "No peeking: suppressed by DND: " + sbn.getKey());
            return false;
        }

@@ -2090,15 +2107,17 @@ public abstract class BaseStatusBar extends SystemUI implements
            return false;
        }

        if (sbn.getNotification().fullScreenIntent != null
                && mAccessibilityManager.isTouchExplorationEnabled()) {
        if (sbn.getNotification().fullScreenIntent != null) {
            if (mAccessibilityManager.isTouchExplorationEnabled()) {
                if (DEBUG) Log.d(TAG, "No peeking: accessible fullscreen: " + sbn.getKey());
                return false;
            } else {
                return true;
            }
        }


        if (mNotificationData.shouldSuppressScreenOn(sbn.getKey())) {
            if (DEBUG) Log.d(TAG, "No peeking: suppressed by DND: " + sbn.getKey());
        if (isSnoozedPackage(sbn)) {
            if (DEBUG) Log.d(TAG, "No peeking: snoozed package: " + sbn.getKey());
            return false;
        }

@@ -2107,17 +2126,7 @@ public abstract class BaseStatusBar extends SystemUI implements
            return false;
        }

        boolean inUse = mPowerManager.isScreenOn()
                && (!mStatusBarKeyguardViewManager.isShowing()
                        || mStatusBarKeyguardViewManager.isOccluded())
                && !mStatusBarKeyguardViewManager.isInputRestricted();
        try {
            inUse = inUse && !mDreamManager.isDreaming();
        } catch (RemoteException e) {
            Log.d(TAG, "failed to query dream manager", e);
        }
        if (DEBUG) Log.d(TAG, "peek if device in use: " + inUse);
        return inUse;
        return true;
    }

    protected abstract boolean isSnoozedPackage(StatusBarNotification sbn);