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

Commit a47310fd authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

Merge "Fix StatusBarWindowController initialization NPE"

parents 236b572a 42ebe548
Loading
Loading
Loading
Loading
+8 −6
Original line number Original line Diff line number Diff line
@@ -69,13 +69,13 @@ public class StatusBarWindowController implements Callback, Dumpable, Configurat
    private final WindowManager mWindowManager;
    private final WindowManager mWindowManager;
    private final IActivityManager mActivityManager;
    private final IActivityManager mActivityManager;
    private final DozeParameters mDozeParameters;
    private final DozeParameters mDozeParameters;
    private final WindowManager.LayoutParams mLpChanged;
    private final boolean mKeyguardScreenRotation;
    private ViewGroup mStatusBarView;
    private ViewGroup mStatusBarView;
    private WindowManager.LayoutParams mLp;
    private WindowManager.LayoutParams mLp;
    private WindowManager.LayoutParams mLpChanged;
    private boolean mHasTopUi;
    private boolean mHasTopUi;
    private boolean mHasTopUiChanged;
    private boolean mHasTopUiChanged;
    private int mBarHeight;
    private int mBarHeight;
    private final boolean mKeyguardScreenRotation;
    private float mScreenBrightnessDoze;
    private float mScreenBrightnessDoze;
    private final State mCurrentState = new State();
    private final State mCurrentState = new State();
    private OtherwisedCollapsedListener mListener;
    private OtherwisedCollapsedListener mListener;
@@ -97,6 +97,7 @@ public class StatusBarWindowController implements Callback, Dumpable, Configurat
        mKeyguardScreenRotation = shouldEnableKeyguardScreenRotation();
        mKeyguardScreenRotation = shouldEnableKeyguardScreenRotation();
        mDozeParameters = dozeParameters;
        mDozeParameters = dozeParameters;
        mScreenBrightnessDoze = mDozeParameters.getScreenBrightnessDoze();
        mScreenBrightnessDoze = mDozeParameters.getScreenBrightnessDoze();
        mLpChanged = new WindowManager.LayoutParams();
        Dependency.get(StatusBarStateController.class).addCallback(
        Dependency.get(StatusBarStateController.class).addCallback(
                mStateListener, StatusBarStateController.RANK_STATUS_BAR_WINDOW_CONTROLLER);
                mStateListener, StatusBarStateController.RANK_STATUS_BAR_WINDOW_CONTROLLER);
        Dependency.get(ConfigurationController.class).addCallback(this);
        Dependency.get(ConfigurationController.class).addCallback(this);
@@ -138,7 +139,6 @@ public class StatusBarWindowController implements Callback, Dumpable, Configurat
        mStatusBarView = statusBarView;
        mStatusBarView = statusBarView;
        mBarHeight = barHeight;
        mBarHeight = barHeight;
        mWindowManager.addView(mStatusBarView, mLp);
        mWindowManager.addView(mStatusBarView, mLp);
        mLpChanged = new WindowManager.LayoutParams();
        mLpChanged.copyFrom(mLp);
        mLpChanged.copyFrom(mLp);
        onThemeChanged();
        onThemeChanged();
    }
    }
@@ -228,7 +228,9 @@ public class StatusBarWindowController implements Callback, Dumpable, Configurat
    private void applyHeight(State state) {
    private void applyHeight(State state) {
        boolean expanded = isExpanded(state);
        boolean expanded = isExpanded(state);
        if (state.forcePluginOpen) {
        if (state.forcePluginOpen) {
            if (mListener != null) {
                mListener.setWouldOtherwiseCollapse(expanded);
                mListener.setWouldOtherwiseCollapse(expanded);
            }
            expanded = true;
            expanded = true;
        }
        }
        if (expanded) {
        if (expanded) {
@@ -247,7 +249,7 @@ public class StatusBarWindowController implements Callback, Dumpable, Configurat


    private void applyFitsSystemWindows(State state) {
    private void applyFitsSystemWindows(State state) {
        boolean fitsSystemWindows = !state.isKeyguardShowingAndNotOccluded();
        boolean fitsSystemWindows = !state.isKeyguardShowingAndNotOccluded();
        if (mStatusBarView.getFitsSystemWindows() != fitsSystemWindows) {
        if (mStatusBarView != null && mStatusBarView.getFitsSystemWindows() != fitsSystemWindows) {
            mStatusBarView.setFitsSystemWindows(fitsSystemWindows);
            mStatusBarView.setFitsSystemWindows(fitsSystemWindows);
            mStatusBarView.requestApplyInsets();
            mStatusBarView.requestApplyInsets();
        }
        }
@@ -289,7 +291,7 @@ public class StatusBarWindowController implements Callback, Dumpable, Configurat
        applyBrightness(state);
        applyBrightness(state);
        applyHasTopUi(state);
        applyHasTopUi(state);
        applyNotTouchable(state);
        applyNotTouchable(state);
        if (mLp.copyFrom(mLpChanged) != 0) {
        if (mLp != null && mLp.copyFrom(mLpChanged) != 0) {
            mWindowManager.updateViewLayout(mStatusBarView, mLp);
            mWindowManager.updateViewLayout(mStatusBarView, mLp);
        }
        }
        if (mHasTopUi != mHasTopUiChanged) {
        if (mHasTopUi != mHasTopUiChanged) {
+7 −0
Original line number Original line Diff line number Diff line
@@ -95,4 +95,11 @@ public class StatusBarWindowControllerTest extends SysuiTestCase {
    public void testAdd_updatesVisibilityFlags() {
    public void testAdd_updatesVisibilityFlags() {
        verify(mStatusBarView).setSystemUiVisibility(anyInt());
        verify(mStatusBarView).setSystemUiVisibility(anyInt());
    }
    }

    @Test
    public void testSetForcePluginOpen_beforeStatusBarInitialization() {
        mStatusBarWindowController = new StatusBarWindowController(mContext, mWindowManager,
                mActivityManager, mDozeParameters);
        mStatusBarWindowController.setForcePluginOpen(true);
    }
}
}