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

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

don't clear notification effects in response to peeks

When the heads up appears it generates a visibility event for the panel.
This always clears the notification effects (buzz, beep, blink).
If we suppress that for heads up notifications, we never get another chance.
So we add a new call when we open the shade from the heads up to catch this case.

Bug: 20947591
Change-Id: I233e5346617ca2fce7851bd85154c838849df8f7
parent f1b25bd4
Loading
Loading
Loading
Loading
+16 −2
Original line number Original line Diff line number Diff line
@@ -1617,8 +1617,9 @@ public abstract class BaseStatusBar extends SystemUI implements
    protected void handleVisibleToUserChanged(boolean visibleToUser) {
    protected void handleVisibleToUserChanged(boolean visibleToUser) {
        try {
        try {
            if (visibleToUser) {
            if (visibleToUser) {
                boolean clearNotificationEffects = mShowLockscreenNotifications ||
                boolean clearNotificationEffects = !isPanelFullyCollapsed() &&
                        (mState == StatusBarState.SHADE || mState == StatusBarState.SHADE_LOCKED);
                    (mShowLockscreenNotifications ||
                        (mState == StatusBarState.SHADE || mState == StatusBarState.SHADE_LOCKED));
                mBarService.onPanelRevealed(clearNotificationEffects);
                mBarService.onPanelRevealed(clearNotificationEffects);
            } else {
            } else {
                mBarService.onPanelHidden();
                mBarService.onPanelHidden();
@@ -1628,6 +1629,19 @@ public abstract class BaseStatusBar extends SystemUI implements
        }
        }
    }
    }


    /**
     * Clear Buzz/Beep/Blink.
     */
    public void clearNotificationEffects() {
        try {
            mBarService.clearNotificationEffects();
        } catch (RemoteException e) {
            // Won't fail unless the world has ended.
        }
    }

    protected abstract boolean isPanelFullyCollapsed();

    /**
    /**
     * Cancel this notification and tell the StatusBarManagerService / NotificationManagerService
     * Cancel this notification and tell the StatusBarManagerService / NotificationManagerService
     * about the failure.
     * about the failure.
+1 −0
Original line number Original line Diff line number Diff line
@@ -114,6 +114,7 @@ public class HeadsUpTouchHelper implements Gefingerpoken {
                            / mPanel.getMaxPanelHeight());
                            / mPanel.getMaxPanelHeight());
                    mPanel.startExpandMotion(x, y, true /* startTracking */, expandedHeight
                    mPanel.startExpandMotion(x, y, true /* startTracking */, expandedHeight
                            + mNotificationsTopPadding);
                            + mNotificationsTopPadding);
                    mPanel.clearNotificattonEffects();
                    mHeadsUpManager.unpinAll();
                    mHeadsUpManager.unpinAll();
                    return true;
                    return true;
                }
                }
+4 −0
Original line number Original line Diff line number Diff line
@@ -2340,4 +2340,8 @@ public class NotificationPanelView extends PanelView implements
    public void setPanelScrimMinFraction(float minFraction) {
    public void setPanelScrimMinFraction(float minFraction) {
        mBar.panelScrimMinFractionChanged(minFraction);
        mBar.panelScrimMinFractionChanged(minFraction);
    }
    }

    public void clearNotificattonEffects() {
        mStatusBar.clearNotificationEffects();
    }
}
}
+6 −4
Original line number Original line Diff line number Diff line
@@ -28,6 +28,8 @@ import java.util.ArrayList;
public abstract class PanelBar extends FrameLayout {
public abstract class PanelBar extends FrameLayout {
    public static final boolean DEBUG = false;
    public static final boolean DEBUG = false;
    public static final String TAG = PanelBar.class.getSimpleName();
    public static final String TAG = PanelBar.class.getSimpleName();
    private static final boolean SPEW = false;

    public static final void LOG(String fmt, Object... args) {
    public static final void LOG(String fmt, Object... args) {
        if (!DEBUG) return;
        if (!DEBUG) return;
        Log.v(TAG, String.format(fmt, args));
        Log.v(TAG, String.format(fmt, args));
@@ -167,7 +169,7 @@ public abstract class PanelBar extends FrameLayout {
    public void panelExpansionChanged(PanelView panel, float frac, boolean expanded) {
    public void panelExpansionChanged(PanelView panel, float frac, boolean expanded) {
        boolean fullyClosed = true;
        boolean fullyClosed = true;
        PanelView fullyOpenedPanel = null;
        PanelView fullyOpenedPanel = null;
        if (DEBUG) LOG("panelExpansionChanged: start state=%d panel=%s", mState, panel.getName());
        if (SPEW) LOG("panelExpansionChanged: start state=%d panel=%s", mState, panel.getName());
        mPanelExpandedFractionSum = 0f;
        mPanelExpandedFractionSum = 0f;
        for (PanelView pv : mPanels) {
        for (PanelView pv : mPanels) {
            pv.setVisibility(expanded ? View.VISIBLE : View.INVISIBLE);
            pv.setVisibility(expanded ? View.VISIBLE : View.INVISIBLE);
@@ -180,7 +182,7 @@ public abstract class PanelBar extends FrameLayout {
                fullyClosed = false;
                fullyClosed = false;
                final float thisFrac = pv.getExpandedFraction();
                final float thisFrac = pv.getExpandedFraction();
                mPanelExpandedFractionSum += thisFrac;
                mPanelExpandedFractionSum += thisFrac;
                if (DEBUG) LOG("panelExpansionChanged:  -> %s: f=%.1f", pv.getName(), thisFrac);
                if (SPEW) LOG("panelExpansionChanged:  -> %s: f=%.1f", pv.getName(), thisFrac);
                if (panel == pv) {
                if (panel == pv) {
                    if (thisFrac == 1f) fullyOpenedPanel = panel;
                    if (thisFrac == 1f) fullyOpenedPanel = panel;
                }
                }
@@ -195,7 +197,7 @@ public abstract class PanelBar extends FrameLayout {
            onAllPanelsCollapsed();
            onAllPanelsCollapsed();
        }
        }


        if (DEBUG) LOG("panelExpansionChanged: end state=%d [%s%s ]", mState,
        if (SPEW) LOG("panelExpansionChanged: end state=%d [%s%s ]", mState,
                (fullyOpenedPanel!=null)?" fullyOpened":"", fullyClosed?" fullyClosed":"");
                (fullyOpenedPanel!=null)?" fullyOpened":"", fullyClosed?" fullyClosed":"");
    }
    }


@@ -241,7 +243,7 @@ public abstract class PanelBar extends FrameLayout {
    }
    }


    public void onExpandingFinished() {
    public void onExpandingFinished() {

        if (DEBUG) LOG("onExpandingFinished");
    }
    }


    public void onClosingFinished() {
    public void onClosingFinished() {
+5 −0
Original line number Original line Diff line number Diff line
@@ -3290,6 +3290,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
        return mState;
        return mState;
    }
    }


    @Override
    protected boolean isPanelFullyCollapsed() {
        return mNotificationPanel.isFullyCollapsed();
    }

    public void showKeyguard() {
    public void showKeyguard() {
        if (mLaunchTransitionFadingAway) {
        if (mLaunchTransitionFadingAway) {
            mNotificationPanel.animate().cancel();
            mNotificationPanel.animate().cancel();
Loading