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

Commit 2369804a authored by Alina Zaidi's avatar Alina Zaidi Committed by Android (Google) Code Review
Browse files

Merge "Use AutoHideControllerStore to provide separate instances of...

Merge "Use AutoHideControllerStore to provide separate instances of AutoHideController for multi displays" into main
parents f4a22257 c0513c3a
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ import com.android.systemui.accessibility.SystemActions;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.kosmos.KosmosJavaAdapter;
import com.android.systemui.model.SysUiState;
import com.android.systemui.navigationbar.NavBarHelper;
import com.android.systemui.navigationbar.NavigationBarController;
@@ -116,7 +117,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.phone.AutoHideController;
import com.android.systemui.statusbar.phone.AutoHideControllerStore;
import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.phone.LightBarTransitionsController;
@@ -147,6 +148,7 @@ import java.util.concurrent.Executor;
@SmallTest
public class NavigationBarTest extends SysuiTestCase {
    private static final int EXTERNAL_DISPLAY_ID = 2;
    private final KosmosJavaAdapter mKosmos = new KosmosJavaAdapter(this);

    private NavigationBar mNavigationBar;
    private NavigationBar mExternalDisplayNavigationBar;
@@ -210,10 +212,6 @@ public class NavigationBarTest extends SysuiTestCase {
    @Mock
    private LightBarController.Factory mLightBarcontrollerFactory;
    @Mock
    private AutoHideController mAutoHideController;
    @Mock
    private AutoHideController.Factory mAutoHideControllerFactory;
    @Mock
    private WindowManager mWindowManager;
    @Mock
    private ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager;
@@ -247,6 +245,8 @@ public class NavigationBarTest extends SysuiTestCase {
    private DeviceConfigProxyFake mDeviceConfigProxyFake = new DeviceConfigProxyFake();
    private TaskStackChangeListeners mTaskStackChangeListeners =
            TaskStackChangeListeners.getTestInstance();
    private final AutoHideControllerStore mAutoHideControllerStore =
            mKosmos.getAutoHideControllerStore();

    @Rule
    public final LeakCheckedTest.SysuiLeakCheck mLeakCheck = new LeakCheckedTest.SysuiLeakCheck();
@@ -258,7 +258,6 @@ public class NavigationBarTest extends SysuiTestCase {
        MockitoAnnotations.initMocks(this);

        when(mLightBarcontrollerFactory.create(any(Context.class))).thenReturn(mLightBarController);
        when(mAutoHideControllerFactory.create(any(Context.class))).thenReturn(mAutoHideController);
        when(mNavigationBarView.getHomeButton()).thenReturn(mHomeButton);
        when(mNavigationBarView.getRecentsButton()).thenReturn(mRecentsButton);
        when(mNavigationBarView.getAccessibilityButton()).thenReturn(mAccessibilityButton);
@@ -651,8 +650,7 @@ public class NavigationBarTest extends SysuiTestCase {
                mNavBarHelper,
                mLightBarController,
                mLightBarcontrollerFactory,
                mAutoHideController,
                mAutoHideControllerFactory,
                mAutoHideControllerStore,
                Optional.of(mTelecomManager),
                mInputMethodManager,
                mDeadZone,
+5 −4
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ import com.android.systemui.settings.DisplayTracker;
import com.android.systemui.shared.statusbar.phone.BarTransitions.TransitionMode;
import com.android.systemui.shared.system.TaskStackChangeListeners;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.AutoHideControllerStore;
import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.util.Utils;
@@ -124,7 +124,7 @@ public class NavigationBarControllerImpl implements
            TaskbarDelegate taskbarDelegate,
            NavigationBarComponent.Factory navigationBarComponentFactory,
            DumpManager dumpManager,
            AutoHideController autoHideController,
            AutoHideControllerStore autoHideControllerStore,
            LightBarController lightBarController,
            TaskStackChangeListeners taskStackChangeListeners,
            Optional<Pip> pipOptional,
@@ -146,8 +146,9 @@ public class NavigationBarControllerImpl implements
        mTaskbarDelegate = taskbarDelegate;
        mTaskbarDelegate.setDependencies(commandQueue, overviewProxyService,
                navBarHelper, navigationModeController, sysUiFlagsContainer,
                dumpManager, autoHideController, lightBarController, pipOptional,
                backAnimation.orElse(null), taskStackChangeListeners);
                dumpManager, autoHideControllerStore.forDisplay(mContext.getDisplayId()),
                lightBarController, pipOptional, backAnimation.orElse(null),
                taskStackChangeListeners);
        mIsLargeScreen = isLargeScreen(mContext);
        mIsPhone = determineIfPhone(mContext, deviceStateManager);
        dumpManager.registerDumpable(this);
+5 −13
Original line number Diff line number Diff line
@@ -151,6 +151,7 @@ import com.android.systemui.statusbar.NotificationShadeDepthController;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.AutoHideControllerStore;
import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
@@ -261,8 +262,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
    private final LightBarController mMainLightBarController;
    private final LightBarController.Factory mLightBarControllerFactory;
    private AutoHideController mAutoHideController;
    private final AutoHideController mMainAutoHideController;
    private final AutoHideController.Factory mAutoHideControllerFactory;
    private final AutoHideControllerStore mAutoHideControllerStore;
    private final Optional<TelecomManager> mTelecomManagerOptional;
    private final InputMethodManager mInputMethodManager;
    private final TaskStackChangeListeners mTaskStackChangeListeners;
@@ -582,8 +582,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
            NavBarHelper navBarHelper,
            LightBarController mainLightBarController,
            LightBarController.Factory lightBarControllerFactory,
            AutoHideController mainAutoHideController,
            AutoHideController.Factory autoHideControllerFactory,
            AutoHideControllerStore autoHideControllerStore,
            Optional<TelecomManager> telecomManagerOptional,
            InputMethodManager inputMethodManager,
            DeadZone deadZone,
@@ -630,8 +629,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
        mNotificationShadeDepthController = notificationShadeDepthController;
        mMainLightBarController = mainLightBarController;
        mLightBarControllerFactory = lightBarControllerFactory;
        mMainAutoHideController = mainAutoHideController;
        mAutoHideControllerFactory = autoHideControllerFactory;
        mAutoHideControllerStore = autoHideControllerStore;
        mTelecomManagerOptional = telecomManagerOptional;
        mInputMethodManager = inputMethodManager;
        mUserContextProvider = userContextProvider;
@@ -846,13 +844,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
                ? mMainLightBarController : mLightBarControllerFactory.create(mContext);
        setLightBarController(lightBarController);

        // TODO(b/118592525): to support multi-display, we start to add something which is
        //                    per-display, while others may be global. I think it's time to
        //                    add a new class maybe named DisplayDependency to solve
        //                    per-display Dependency problem.
        // Alternative: this is a good case for a Dagger subcomponent. Same with LightBarController.
        AutoHideController autoHideController = mIsOnDefaultDisplay
                ? mMainAutoHideController : mAutoHideControllerFactory.create(mContext);
        AutoHideController autoHideController = mAutoHideControllerStore.forDisplay(mDisplayId);
        setAutoHideController(autoHideController);
        restoreAppearanceAndTransientState();
    }
+3 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import com.android.systemui.display.data.repository.DisplayScopeRepository
import com.android.systemui.statusbar.data.repository.LightBarControllerStore
import com.android.systemui.statusbar.data.repository.PrivacyDotWindowControllerStore
import com.android.systemui.statusbar.data.repository.StatusBarModeRepositoryStore
import com.android.systemui.statusbar.phone.AutoHideControllerStore
import com.android.systemui.statusbar.window.StatusBarWindowControllerStore
import com.android.systemui.statusbar.window.data.repository.StatusBarWindowStateRepositoryStore
import com.android.systemui.util.kotlin.pairwiseBy
@@ -50,6 +51,7 @@ constructor(
    private val initializerStore: StatusBarInitializerStore,
    private val statusBarWindowControllerStore: StatusBarWindowControllerStore,
    private val statusBarInitializerStore: StatusBarInitializerStore,
    private val autoHideControllerStore: AutoHideControllerStore,
    private val privacyDotWindowControllerStore: PrivacyDotWindowControllerStore,
    private val lightBarControllerStore: LightBarControllerStore,
) : CoreStartable {
@@ -95,6 +97,7 @@ constructor(
                statusBarModeRepositoryStore.forDisplay(displayId),
                initializerStore.forDisplay(displayId),
                statusBarWindowControllerStore.forDisplay(displayId),
                autoHideControllerStore.forDisplay(displayId),
            )
            .start()
    }
+3 −9
Original line number Diff line number Diff line
@@ -71,9 +71,9 @@ constructor(
    @Assisted private val statusBarInitializer: StatusBarInitializer,
    @Assisted private val statusBarWindowController: StatusBarWindowController,
    @Main private val mainContext: CoroutineContext,
    @Assisted private val autoHideController: AutoHideController,
    private val demoModeController: DemoModeController,
    private val pluginDependencyProvider: PluginDependencyProvider,
    private val autoHideController: AutoHideController,
    private val remoteInputManager: NotificationRemoteInputManager,
    private val notificationShadeWindowViewControllerLazy:
        Lazy<NotificationShadeWindowViewController>,
@@ -210,10 +210,6 @@ constructor(
    }

    private fun setUpAutoHide() {
        if (displayId != Display.DEFAULT_DISPLAY) {
            return
        }
        // TODO(b/373309973): per display implementation of auto hide controller
        autoHideController.setStatusBar(
            object : AutoHideUiElement {
                override fun synchronizeState() {}
@@ -241,11 +237,8 @@ constructor(
        if (!demoModeController.isInDemoMode) {
            barTransitions.transitionTo(barMode.toTransitionModeInt(), animate)
        }
        if (displayId == Display.DEFAULT_DISPLAY) {
            // TODO(b/373309973): per display implementation of auto hide controller
        autoHideController.touchAutoHide()
    }
    }

    private fun updateBubblesVisibility(statusBarVisible: Boolean) {
        if (displayId != Display.DEFAULT_DISPLAY) {
@@ -288,6 +281,7 @@ constructor(
            statusBarModeRepository: StatusBarModePerDisplayRepository,
            statusBarInitializer: StatusBarInitializer,
            statusBarWindowController: StatusBarWindowController,
            autoHideController: AutoHideController,
        ): StatusBarOrchestrator
    }
}
Loading