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

Commit 6eca35f3 authored by Kensuke Miyagi's avatar Kensuke Miyagi
Browse files

Guard Notification Panel against DISABLE2_NOTIFICATION_SHADE

- Guard StatusManagerService.togglePanel() and expandNotificationsPanel() against DISABLE2_NOTIFICATION_SHADE
- Fix bug in StatusBar.disable()
- Fix longPressOnHomeBehaviorToString() for dumpsys

Bug: 175044947
Test: Simple boot check and checked the added logic is in the right
execution path

Change-Id: Id922977e52eb1f09d57f14b7a0c443785d444a52
parent 7bc036e9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1728,7 +1728,7 @@ public class StatusBar extends SystemUI implements DemoMode,

        if ((diff2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) != 0) {
            updateQsExpansionEnabled();
            if ((state1 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) != 0) {
            if ((state2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) != 0) {
                mShadeController.animateCollapsePanels();
            }
        }
+2 −0
Original line number Diff line number Diff line
@@ -5424,6 +5424,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                return "LONG_PRESS_HOME_ALL_APPS";
            case LONG_PRESS_HOME_ASSIST:
                return "LONG_PRESS_HOME_ASSIST";
            case LONG_PRESS_HOME_NOTIFICATION_PANEL:
                return "LONG_PRESS_HOME_NOTIFICATION_PANEL";
            default:
                return Integer.toString(behavior);
        }
+17 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server.statusbar;

import static android.app.StatusBarManager.DISABLE2_GLOBAL_ACTIONS;
import static android.app.StatusBarManager.DISABLE2_NOTIFICATION_SHADE;
import static android.view.Display.DEFAULT_DISPLAY;

import android.Manifest;
@@ -613,6 +614,14 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
        }
    };

    /**
     * Returns true if the target disable flag (target2) is set
     */
    private boolean isDisable2FlagSet(int target2) {
        final int disabled2 = mDisplayUiState.get(DEFAULT_DISPLAY).getDisabled2();
        return ((disabled2 & target2) == target2);
    }

    // ================================================================================
    // From IStatusBarService
    // ================================================================================
@@ -620,6 +629,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
    public void expandNotificationsPanel() {
        enforceExpandStatusBar();

        if (isDisable2FlagSet(DISABLE2_NOTIFICATION_SHADE)) {
            return;
        }

        if (mBar != null) {
            try {
                mBar.animateExpandNotificationsPanel();
@@ -658,6 +671,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
    public void togglePanel() {
        enforceExpandStatusBar();

        if (isDisable2FlagSet(DISABLE2_NOTIFICATION_SHADE)) {
            return;
        }

        if (mBar != null) {
            try {
                mBar.togglePanel();