diff options
| author | 2020-06-12 13:41:42 -0700 | |
|---|---|---|
| committer | 2021-09-03 13:36:31 +0800 | |
| commit | 64266375986c38fdbe4549ddd77ac39878b1f74c (patch) | |
| tree | c93a0efa5b0005a727c9a5d96db0d5370745bae3 | |
| parent | 4abf39e6daf8c0de652b36591b715f4078751640 (diff) | |
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 7f00ac7f25eb591dcd2dab851b60d4e598581ead)
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayPolicy.java | 5 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/InsetsPolicy.java | 32 |
2 files changed, 27 insertions, 10 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index c99e5cecc858..278080f6fc05 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -2273,7 +2273,10 @@ public class DisplayPolicy { void notifyDisplayReady() { mHandler.post(() -> { final int displayId = getDisplayId(); - getStatusBarManagerInternal().onDisplayReady(displayId); + StatusBarManagerInternal statusBar = getStatusBarManagerInternal(); + if (statusBar != null) { + statusBar.onDisplayReady(displayId); + } final WallpaperManagerInternal wpMgr = LocalServices .getService(WallpaperManagerInternal.class); if (wpMgr != null) { diff --git a/services/core/java/com/android/server/wm/InsetsPolicy.java b/services/core/java/com/android/server/wm/InsetsPolicy.java index e932fc32c861..450c2c14bb1c 100644 --- a/services/core/java/com/android/server/wm/InsetsPolicy.java +++ b/services/core/java/com/android/server/wm/InsetsPolicy.java @@ -54,6 +54,7 @@ import android.view.WindowManager; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; import com.android.server.DisplayThread; +import com.android.server.statusbar.StatusBarManagerInternal; /** * Policy that implements who gets control over the windows generating insets. @@ -170,8 +171,12 @@ class InsetsPolicy { changed = true; } if (changed) { - mPolicy.getStatusBarManagerInternal().showTransient(mDisplayContent.getDisplayId(), - mShowingTransientTypes.toArray()); + StatusBarManagerInternal statusBarManagerInternal = + mPolicy.getStatusBarManagerInternal(); + if (statusBarManagerInternal != null) { + statusBarManagerInternal.showTransient( + mDisplayContent.getDisplayId(), mShowingTransientTypes.toArray()); + } updateBarControlTarget(mFocusedWin); // The leashes can be created while updating bar control target. The surface transaction @@ -306,9 +311,11 @@ class InsetsPolicy { abortTypes.add(type); } } - if (abortTypes.size() > 0) { - mPolicy.getStatusBarManagerInternal().abortTransient(mDisplayContent.getDisplayId(), - abortTypes.toArray()); + StatusBarManagerInternal statusBarManagerInternal = + mPolicy.getStatusBarManagerInternal(); + if (abortTypes.size() > 0 && statusBarManagerInternal != null) { + statusBarManagerInternal.abortTransient( + mDisplayContent.getDisplayId(), abortTypes.toArray()); } } } @@ -318,8 +325,11 @@ class InsetsPolicy { * updateBarControlTarget(mFocusedWin) after this invocation. */ private void abortTransient() { - mPolicy.getStatusBarManagerInternal().abortTransient(mDisplayContent.getDisplayId(), - mShowingTransientTypes.toArray()); + StatusBarManagerInternal statusBarManagerInternal = mPolicy.getStatusBarManagerInternal(); + if (statusBarManagerInternal != null) { + statusBarManagerInternal.abortTransient( + mDisplayContent.getDisplayId(), mShowingTransientTypes.toArray()); + } mShowingTransientTypes.clear(); } @@ -478,8 +488,12 @@ class InsetsPolicy { final int state = visible ? WINDOW_STATE_SHOWING : WINDOW_STATE_HIDDEN; if (mState != state) { mState = state; - mPolicy.getStatusBarManagerInternal().setWindowState( - mDisplayContent.getDisplayId(), mId, state); + StatusBarManagerInternal statusBarManagerInternal = + mPolicy.getStatusBarManagerInternal(); + if (statusBarManagerInternal != null) { + statusBarManagerInternal.setWindowState( + mDisplayContent.getDisplayId(), mId, state); + } } } } |