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

Commit fdbfc545 authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Defer theme flags when view isn't attached

Change-Id: Ie042da18b8c84d9067bb4d951f9dd35fe4ea9d19
Fixes: 113530582
Test: atest packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowControllerTest.java
parent 7db3ae4f
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -135,6 +135,7 @@ public class StatusBarWindowController implements Callback, Dumpable, Configurat
        mWindowManager.addView(mStatusBarView, mLp);
        mLpChanged = new WindowManager.LayoutParams();
        mLpChanged.copyFrom(mLp);
        onThemeChanged();
    }

    public void setDozeScreenBrightness(int value) {
@@ -483,6 +484,10 @@ public class StatusBarWindowController implements Callback, Dumpable, Configurat

    @Override
    public void onThemeChanged() {
        if (mStatusBarView == null) {
            return;
        }

        StatusBarStateController state = Dependency.get(StatusBarStateController.class);
        int which;
        if (state.getState() == StatusBarState.KEYGUARD
+13 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.statusbar.phone;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -83,4 +84,16 @@ public class StatusBarWindowControllerTest extends SysuiTestCase {
                & WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
        assertThat(flag).isEqualTo(0);
    }

    @Test
    public void testOnThemeChanged_doesntCrash() {
        mStatusBarWindowController = new StatusBarWindowController(mContext, mWindowManager,
                mActivityManager, mDozeParameters);
        mStatusBarWindowController.onThemeChanged();
    }

    @Test
    public void testAdd_updatesVisibilityFlags() {
        verify(mStatusBarView).setSystemUiVisibility(anyInt());
    }
}