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

Commit 1a732291 authored by Alina Zaidi's avatar Alina Zaidi Committed by alinazaidi
Browse files

Revert "Partial revert of "Prepare LightBarController for multi display""

This reverts commit 63f2de1e and fixes
merge conflicts

Reason for revert: PerDisplayStore now handles display not present, it was fixed in b/384496996

Change-Id: Iad16e48bc727373fe9f518461e3ba60ac2e9e22e
Test: NavigationBarTest.java
Test: LightBarControllerTest.java
Flag: com.android.systemui.shared.status_bar_connected_displays
parent d6c0959f
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -120,6 +120,7 @@ import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
import com.android.systemui.statusbar.NotificationShadeDepthController;
import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.data.repository.LightBarControllerStore;
import com.android.systemui.statusbar.phone.AutoHideControllerStore;
import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.LightBarController;
@@ -213,7 +214,7 @@ public class NavigationBarTest extends SysuiTestCase {
    @Mock
    private LightBarController mLightBarController;
    @Mock
    private LightBarController.Factory mLightBarcontrollerFactory;
    private LightBarControllerStore mLightBarControllerStore;
    @Mock
    private WindowManager mWindowManager;
    @Mock
@@ -257,8 +258,7 @@ public class NavigationBarTest extends SysuiTestCase {
    @Before
    public void setup() throws Exception {
        MockitoAnnotations.initMocks(this);

        when(mLightBarcontrollerFactory.create(any(Context.class))).thenReturn(mLightBarController);
        when(mLightBarControllerStore.forDisplay(anyInt())).thenReturn(mLightBarController);
        when(mNavigationBarView.getHomeButton()).thenReturn(mHomeButton);
        when(mNavigationBarView.getRecentsButton()).thenReturn(mRecentsButton);
        when(mNavigationBarView.getAccessibilityButton()).thenReturn(mAccessibilityButton);
@@ -706,8 +706,7 @@ public class NavigationBarTest extends SysuiTestCase {
                mFakeExecutor,
                mUiEventLogger,
                mNavBarHelper,
                mLightBarController,
                mLightBarcontrollerFactory,
                mLightBarControllerStore,
                mAutoHideControllerStore,
                Optional.of(mTelecomManager),
                mInputMethodManager,
+5 −8
Original line number Diff line number Diff line
@@ -152,6 +152,7 @@ import com.android.systemui.statusbar.CommandQueue.Callbacks;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
import com.android.systemui.statusbar.NotificationShadeDepthController;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.data.repository.LightBarControllerStore;
import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.AutoHideControllerStore;
@@ -262,8 +263,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
    private boolean mTransientShownFromGestureOnSystemBar;
    private int mNavBarMode = NAV_BAR_MODE_3BUTTON;
    private LightBarController mLightBarController;
    private final LightBarController mMainLightBarController;
    private final LightBarController.Factory mLightBarControllerFactory;
    private final LightBarControllerStore mLightBarControllerStore;
    private AutoHideController mAutoHideController;
    private final AutoHideControllerStore mAutoHideControllerStore;
    private final Optional<TelecomManager> mTelecomManagerOptional;
@@ -578,8 +578,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
            @Background Executor bgExecutor,
            UiEventLogger uiEventLogger,
            NavBarHelper navBarHelper,
            LightBarController mainLightBarController,
            LightBarController.Factory lightBarControllerFactory,
            LightBarControllerStore lightBarControllerStore,
            AutoHideControllerStore autoHideControllerStore,
            Optional<TelecomManager> telecomManagerOptional,
            InputMethodManager inputMethodManager,
@@ -624,8 +623,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
        mUiEventLogger = uiEventLogger;
        mNavBarHelper = navBarHelper;
        mNotificationShadeDepthController = notificationShadeDepthController;
        mMainLightBarController = mainLightBarController;
        mLightBarControllerFactory = lightBarControllerFactory;
        mLightBarControllerStore = lightBarControllerStore;
        mAutoHideControllerStore = autoHideControllerStore;
        mTelecomManagerOptional = telecomManagerOptional;
        mInputMethodManager = inputMethodManager;
@@ -860,8 +858,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
        // Unfortunately, we still need it because status bar needs LightBarController
        // before notifications creation. We cannot directly use getLightBarController()
        // from NavigationBarFragment directly.
        LightBarController lightBarController = mIsOnDefaultDisplay
                ? mMainLightBarController : mLightBarControllerFactory.create(mContext);
        LightBarController lightBarController = mLightBarControllerStore.forDisplay(mDisplayId);
        setLightBarController(lightBarController);

        AutoHideController autoHideController = mAutoHideControllerStore.forDisplay(mDisplayId);
+0 −6
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import com.android.systemui.statusbar.layout.ui.viewmodel.StatusBarContentInsets
import com.android.systemui.statusbar.phone.AutoHideController
import com.android.systemui.statusbar.phone.AutoHideControllerImpl
import com.android.systemui.statusbar.phone.LightBarController
import com.android.systemui.statusbar.phone.LightBarControllerImpl
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallLog
@@ -91,11 +90,6 @@ interface StatusBarModule {

    @Binds @SysUISingleton fun autoHideController(impl: AutoHideControllerImpl): AutoHideController

    @Binds
    fun lightBarControllerFactory(
        legacyFactory: LightBarControllerImpl.LegacyFactory
    ): LightBarController.Factory

    companion object {
        @Provides
        @SysUISingleton
+0 −5
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.systemui.statusbar.phone

import android.content.Context
import android.view.WindowInsetsController
import com.android.internal.colorextraction.ColorExtractor
import com.android.internal.view.AppearanceRegion
@@ -65,8 +64,4 @@ interface LightBarController : CoreStartable {
        scrimBehindAlpha: Float,
        scrimInFrontColor: ColorExtractor.GradientColors,
    )

    fun interface Factory {
        fun create(context: Context): LightBarController
    }
}
+1 −50
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import static android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS;
import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT;
import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_TRANSPARENT;

import android.content.Context;
import android.graphics.Rect;
import android.util.Log;
import android.view.Display;
@@ -35,15 +34,12 @@ import androidx.annotation.Nullable;

import com.android.internal.colorextraction.ColorExtractor.GradientColors;
import com.android.internal.view.AppearanceRegion;
import com.android.systemui.dagger.qualifiers.Application;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.navigationbar.NavigationModeController;
import com.android.systemui.plugins.DarkIconDispatcher;
import com.android.systemui.statusbar.data.model.StatusBarAppearance;
import com.android.systemui.statusbar.data.repository.DarkIconDispatcherStore;
import com.android.systemui.statusbar.data.repository.StatusBarModePerDisplayRepository;
import com.android.systemui.statusbar.data.repository.StatusBarModeRepositoryStore;
import com.android.systemui.statusbar.layout.BoundsPair;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.util.Compile;
@@ -60,8 +56,6 @@ import kotlinx.coroutines.CoroutineScope;
import java.io.PrintWriter;
import java.util.ArrayList;

import javax.inject.Inject;

/**
 * Controls how light status bar flag applies to the icons.
 */
@@ -74,7 +68,6 @@ public class LightBarControllerImpl implements

    private static final float NAV_BAR_INVERSION_SCRIM_ALPHA_THRESHOLD = 0.1f;

    private final int mDisplayId;
    private final CoroutineScope mCoroutineScope;
    private final SysuiDarkIconDispatcher mStatusBarIconController;
    private final BatteryController mBatteryController;
@@ -148,7 +141,6 @@ public class LightBarControllerImpl implements
            DumpManager dumpManager,
            @Main CoroutineContext mainContext,
            BiometricUnlockController biometricUnlockController) {
        mDisplayId = displayId;
        mCoroutineScope = coroutineScope;
        mStatusBarIconController = (SysuiDarkIconDispatcher) darkIconDispatcher;
        mBatteryController = batteryController;
@@ -164,12 +156,7 @@ public class LightBarControllerImpl implements

    @Override
    public void start() {
        if (mDisplayId == Display.DEFAULT_DISPLAY) {
            // Can only register on default display, because NavigationBar creates its own instance
            // as well as PerDisplayStore.
            // TODO: b/380394368 - make sure there is only one instance per display.
        mDumpManager.registerCriticalDumpable(mDumpableName, this);
        }
        mBatteryController.addCallback(this);
        mNavigationMode = mNavModeController.addListener(mNavigationModeListener);
        JavaAdapterKt.collectFlow(
@@ -504,40 +491,4 @@ public class LightBarControllerImpl implements
                @NonNull DarkIconDispatcher darkIconDispatcher,
                @NonNull StatusBarModePerDisplayRepository statusBarModePerDisplayRepository);
    }

    public static class LegacyFactory implements LightBarController.Factory {

        private final Factory mFactory;
        private final CoroutineScope mApplicationScope;
        private final DarkIconDispatcherStore mDarkIconDispatcherStore;
        private final StatusBarModeRepositoryStore mStatusBarModeRepositoryStore;

        @Inject
        public LegacyFactory(
                LightBarControllerImpl.Factory factory,
                @Application CoroutineScope applicationScope,
                DarkIconDispatcherStore darkIconDispatcherStore,
                StatusBarModeRepositoryStore statusBarModeRepositoryStore) {
            mFactory = factory;
            mApplicationScope = applicationScope;
            mDarkIconDispatcherStore = darkIconDispatcherStore;
            mStatusBarModeRepositoryStore = statusBarModeRepositoryStore;
        }

        @NonNull
        @Override
        public LightBarController create(@NonNull Context context) {
            // TODO: b/380394368 - Make sure correct per display instances are used.
            LightBarControllerImpl lightBarController = mFactory.create(
                    context.getDisplayId(),
                    mApplicationScope,
                    mDarkIconDispatcherStore.getDefaultDisplay(),
                    mStatusBarModeRepositoryStore.getDefaultDisplay()
            );
            // Calling start() manually to keep the legacy behavior. Before, LightBarControllerImpl
            // was doing work in the constructor, which moved to start().
            lightBarController.start();
            return lightBarController;
        }
    }
}