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

Commit f587b631 authored by wilsonshih's avatar wilsonshih
Browse files

Move the view inflation outside of constructor.

Move the view inflation operation from the constructor of
NotificationShadeWindowController to StatusBar#start.

Fix: 149326478
Test: atest SystemUITests
Change-Id: I34386e30ac0777d7b2ba93142ad69e6ff43dbc82
parent a0466a29
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -18,8 +18,8 @@ package com.android.systemui.statusbar.phone;

import static android.view.WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE;
import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;

import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_BEHAVIOR_CONTROLLED;

import static com.android.systemui.DejankUtils.whitelistIpcs;
import static com.android.systemui.statusbar.NotificationRemoteInputManager.ENABLE_REMOTE_INPUT;

@@ -48,7 +48,6 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.statusbar.RemoteInputController.Callback;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.SuperStatusBarViewFactory;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
@@ -96,15 +95,13 @@ public class NotificationShadeWindowController implements Callback, Dumpable,
            mCallbacks = Lists.newArrayList();

    private final SysuiColorExtractor mColorExtractor;
    private final SuperStatusBarViewFactory mSuperStatusBarViewFactory;

    @Inject
    public NotificationShadeWindowController(Context context, WindowManager windowManager,
            IActivityManager activityManager, DozeParameters dozeParameters,
            StatusBarStateController statusBarStateController,
            ConfigurationController configurationController,
            KeyguardBypassController keyguardBypassController, SysuiColorExtractor colorExtractor,
            SuperStatusBarViewFactory superStatusBarViewFactory) {
            KeyguardBypassController keyguardBypassController, SysuiColorExtractor colorExtractor) {
        mContext = context;
        mWindowManager = windowManager;
        mActivityManager = activityManager;
@@ -114,8 +111,6 @@ public class NotificationShadeWindowController implements Callback, Dumpable,
        mLpChanged = new LayoutParams();
        mKeyguardBypassController = keyguardBypassController;
        mColorExtractor = colorExtractor;
        mSuperStatusBarViewFactory = superStatusBarViewFactory;
        mNotificationShadeView = mSuperStatusBarViewFactory.getNotificationShadeWindowView();

        mLockScreenDisplayTimeout = context.getResources()
                .getInteger(R.integer.config_lockScreenDisplayTimeout);
@@ -194,6 +189,10 @@ public class NotificationShadeWindowController implements Callback, Dumpable,
        onThemeChanged();
    }

    public void setNotificationShadeView(ViewGroup view) {
        mNotificationShadeView = view;
    }

    public ViewGroup getNotificationShadeView() {
        return mNotificationShadeView;
    }
+1 −0
Original line number Diff line number Diff line
@@ -1353,6 +1353,7 @@ public class StatusBar extends SystemUI implements DemoMode,
                .statusBarWindowView(mNotificationShadeWindowView).build();
        mNotificationShadeWindowViewController = statusBarComponent
                .getNotificationShadeWindowViewController();
        mNotificationShadeWindowController.setNotificationShadeView(mNotificationShadeWindowView);
        mNotificationShadeWindowViewController.setupExpandedStatusBar();
        mStatusBarWindowController = statusBarComponent.getStatusBarWindowController();
        mPhoneStatusBarWindow = mSuperStatusBarViewFactory.getStatusBarWindowView();
+3 −2
Original line number Diff line number Diff line
@@ -201,8 +201,9 @@ public class BubbleControllerTest extends SysuiTestCase {
        // Bubbles get added to status bar window view
        mNotificationShadeWindowController = new NotificationShadeWindowController(mContext,
                mWindowManager, mActivityManager, mDozeParameters, mStatusBarStateController,
                mConfigurationController, mKeyguardBypassController, mColorExtractor,
                mSuperStatusBarViewFactory);
                mConfigurationController, mKeyguardBypassController, mColorExtractor);
        mNotificationShadeWindowController.setNotificationShadeView(
                mSuperStatusBarViewFactory.getNotificationShadeWindowView());
        mNotificationShadeWindowController.attach();

        // Need notifications for bubbles
+3 −2
Original line number Diff line number Diff line
@@ -195,8 +195,9 @@ public class NewNotifPipelineBubbleControllerTest extends SysuiTestCase {
        // Bubbles get added to status bar window view
        mNotificationShadeWindowController = new NotificationShadeWindowController(mContext,
                mWindowManager, mActivityManager, mDozeParameters, mStatusBarStateController,
                mConfigurationController, mKeyguardBypassController, mColorExtractor,
                mSuperStatusBarViewFactory);
                mConfigurationController, mKeyguardBypassController, mColorExtractor);
        mNotificationShadeWindowController.setNotificationShadeView(
                mSuperStatusBarViewFactory.getNotificationShadeWindowView());
        mNotificationShadeWindowController.attach();

        // Need notifications for bubbles
+4 −8
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import androidx.test.filters.SmallTest;
import com.android.internal.colorextraction.ColorExtractor;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.statusbar.SuperStatusBarViewFactory;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.policy.ConfigurationController;

@@ -52,14 +51,13 @@ public class NotificationShadeWindowControllerTest extends SysuiTestCase {

    @Mock private WindowManager mWindowManager;
    @Mock private DozeParameters mDozeParameters;
    @Mock private NotificationShadeWindowView mStatusBarView;
    @Mock private NotificationShadeWindowView mNotificationShadeWindowView;
    @Mock private IActivityManager mActivityManager;
    @Mock private SysuiStatusBarStateController mStatusBarStateController;
    @Mock private ConfigurationController mConfigurationController;
    @Mock private KeyguardBypassController mKeyguardBypassController;
    @Mock private SysuiColorExtractor mColorExtractor;
    @Mock ColorExtractor.GradientColors mGradientColors;
    @Mock private SuperStatusBarViewFactory mSuperStatusBarViewFactory;

    private NotificationShadeWindowController mNotificationShadeWindowController;

@@ -68,13 +66,11 @@ public class NotificationShadeWindowControllerTest extends SysuiTestCase {
        MockitoAnnotations.initMocks(this);
        when(mDozeParameters.getAlwaysOn()).thenReturn(true);
        when(mColorExtractor.getNeutralColors()).thenReturn(mGradientColors);
        when(mSuperStatusBarViewFactory.getNotificationShadeWindowView())
                .thenReturn(mStatusBarView);

        mNotificationShadeWindowController = new NotificationShadeWindowController(mContext,
                mWindowManager, mActivityManager, mDozeParameters, mStatusBarStateController,
                mConfigurationController, mKeyguardBypassController, mColorExtractor,
                mSuperStatusBarViewFactory);
                mConfigurationController, mKeyguardBypassController, mColorExtractor);
        mNotificationShadeWindowController.setNotificationShadeView(mNotificationShadeWindowView);

        mNotificationShadeWindowController.attach();
    }
@@ -104,7 +100,7 @@ public class NotificationShadeWindowControllerTest extends SysuiTestCase {

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

    @Test