Nullcheck for StatusBarManagerInternal in InsetsPolicy

Wear does not support StatusBarManagerService

Bug: 158866039
Test: salmon boots successfully
Change-Id: I76a44c4cbc0f8eeeda6b9c35b2c29ce87f0db8de
(cherry picked from commit 3d40a967c3c111e205f577ab96daf7f2b696ee3e)
This commit is contained in:
shreerag@google.com
2020-06-12 13:41:42 -07:00
committed by Josh Yang
parent 47eaa5e84d
commit 7f00ac7f25
2 changed files with 27 additions and 10 deletions

View File

@@ -2240,7 +2240,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) {

View File

@@ -55,6 +55,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.
@@ -167,8 +168,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
@@ -282,9 +287,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());
} }
} }
} }
@@ -294,8 +301,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();
} }
@@ -474,8 +484,12 @@ 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 =
mDisplayContent.getDisplayId(), mId, state); mPolicy.getStatusBarManagerInternal();
if (statusBarManagerInternal != null) {
statusBarManagerInternal.setWindowState(
mDisplayContent.getDisplayId(), mId, state);
}
} }
} }
} }