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

Commit 64266375 authored by shreerag@google.com's avatar shreerag@google.com Committed by Tiger Huang
Browse files

Nullcheck for StatusBarManagerInternal in InsetsPolicy

Wear does not support StatusBarManagerService

Bug: 158866039
Test: salmon boots successfully
Change-Id: I76a44c4cbc0f8eeeda6b9c35b2c29ce87f0db8de
Merged-In: I76a44c4cbc0f8eeeda6b9c35b2c29ce87f0db8de
(cherry picked from commit 3d40a967c3c111e205f577ab96daf7f2b696ee3e)
(cherry picked from commit 7f00ac7f)
parent 4abf39e6
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -2273,7 +2273,10 @@ public class DisplayPolicy {
    void notifyDisplayReady() {
    void notifyDisplayReady() {
        mHandler.post(() -> {
        mHandler.post(() -> {
            final int displayId = getDisplayId();
            final int displayId = getDisplayId();
            getStatusBarManagerInternal().onDisplayReady(displayId);
            StatusBarManagerInternal statusBar = getStatusBarManagerInternal();
            if (statusBar != null) {
                statusBar.onDisplayReady(displayId);
            }
            final WallpaperManagerInternal wpMgr = LocalServices
            final WallpaperManagerInternal wpMgr = LocalServices
                    .getService(WallpaperManagerInternal.class);
                    .getService(WallpaperManagerInternal.class);
            if (wpMgr != null) {
            if (wpMgr != null) {
+23 −9
Original line number Original line Diff line number Diff line
@@ -54,6 +54,7 @@ import android.view.WindowManager;
import com.android.internal.R;
import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.DisplayThread;
import com.android.server.DisplayThread;
import com.android.server.statusbar.StatusBarManagerInternal;


/**
/**
 * Policy that implements who gets control over the windows generating insets.
 * Policy that implements who gets control over the windows generating insets.
@@ -170,8 +171,12 @@ class InsetsPolicy {
            changed = true;
            changed = true;
        }
        }
        if (changed) {
        if (changed) {
            mPolicy.getStatusBarManagerInternal().showTransient(mDisplayContent.getDisplayId(),
            StatusBarManagerInternal statusBarManagerInternal =
                    mShowingTransientTypes.toArray());
                    mPolicy.getStatusBarManagerInternal();
            if (statusBarManagerInternal != null) {
                statusBarManagerInternal.showTransient(
                        mDisplayContent.getDisplayId(), mShowingTransientTypes.toArray());
            }
            updateBarControlTarget(mFocusedWin);
            updateBarControlTarget(mFocusedWin);


            // The leashes can be created while updating bar control target. The surface transaction
            // The leashes can be created while updating bar control target. The surface transaction
@@ -306,9 +311,11 @@ class InsetsPolicy {
                    abortTypes.add(type);
                    abortTypes.add(type);
                }
                }
            }
            }
            if (abortTypes.size() > 0) {
            StatusBarManagerInternal statusBarManagerInternal =
                mPolicy.getStatusBarManagerInternal().abortTransient(mDisplayContent.getDisplayId(),
                    mPolicy.getStatusBarManagerInternal();
                        abortTypes.toArray());
            if (abortTypes.size() > 0 && statusBarManagerInternal != null) {
                statusBarManagerInternal.abortTransient(
                        mDisplayContent.getDisplayId(), abortTypes.toArray());
            }
            }
        }
        }
    }
    }
@@ -318,8 +325,11 @@ class InsetsPolicy {
     * updateBarControlTarget(mFocusedWin) after this invocation.
     * updateBarControlTarget(mFocusedWin) after this invocation.
     */
     */
    private void abortTransient() {
    private void abortTransient() {
        mPolicy.getStatusBarManagerInternal().abortTransient(mDisplayContent.getDisplayId(),
        StatusBarManagerInternal statusBarManagerInternal = mPolicy.getStatusBarManagerInternal();
                mShowingTransientTypes.toArray());
        if (statusBarManagerInternal != null) {
            statusBarManagerInternal.abortTransient(
                    mDisplayContent.getDisplayId(), mShowingTransientTypes.toArray());
        }
        mShowingTransientTypes.clear();
        mShowingTransientTypes.clear();
    }
    }


@@ -478,11 +488,15 @@ class InsetsPolicy {
            final int state = visible ? WINDOW_STATE_SHOWING : WINDOW_STATE_HIDDEN;
            final int state = visible ? WINDOW_STATE_SHOWING : WINDOW_STATE_HIDDEN;
            if (mState != state) {
            if (mState != state) {
                mState = state;
                mState = state;
                mPolicy.getStatusBarManagerInternal().setWindowState(
                StatusBarManagerInternal statusBarManagerInternal =
                        mPolicy.getStatusBarManagerInternal();
                if (statusBarManagerInternal != null) {
                    statusBarManagerInternal.setWindowState(
                            mDisplayContent.getDisplayId(), mId, state);
                            mDisplayContent.getDisplayId(), mId, state);
                }
                }
            }
            }
        }
        }
    }


    private class InsetsPolicyAnimationControlListener extends
    private class InsetsPolicyAnimationControlListener extends
            InsetsController.InternalAnimationControlListener {
            InsetsController.InternalAnimationControlListener {