Loading packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +8 −3 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import com.android.internal.statusbar.LetterboxDetails; import com.android.internal.view.AppearanceRegion; Loading Loading @@ -125,7 +126,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private final DisplayManager mDisplayManager; private Context mWindowContext; private ScreenPinningNotify mScreenPinningNotify; private int mNavigationMode; private int mNavigationMode = -1; private final Consumer<Rect> mPipListener; /** Loading Loading @@ -217,8 +218,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, parseCurrentSysuiState(); mCommandQueue.addCallback(this); mOverviewProxyService.addCallback(this); mEdgeBackGestureHandler.onNavigationModeChanged( mNavigationModeController.addListener(this)); onNavigationModeChanged(mNavigationModeController.addListener(this)); mNavBarHelper.registerNavTaskStateUpdater(mNavbarTaskbarStateUpdater); mNavBarHelper.init(); mEdgeBackGestureHandler.onNavBarAttached(); Loading Loading @@ -492,6 +492,11 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, !QuickStepContract.isGesturalMode(mNavigationMode)); } @VisibleForTesting int getNavigationMode() { return mNavigationMode; } @Override public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { pw.println("TaskbarDelegate (displayId=" + mDisplayId + "):"); Loading packages/SystemUI/tests/src/com/android/systemui/navigationbar/TaskbarDelegateTest.kt 0 → 100644 +93 −0 Original line number Diff line number Diff line package com.android.systemui.navigationbar import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.model.SysUiState import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler import com.android.systemui.recents.OverviewProxyService import com.android.systemui.statusbar.CommandQueue import com.android.systemui.statusbar.phone.AutoHideController import com.android.systemui.statusbar.phone.LightBarController import com.android.systemui.statusbar.phone.LightBarTransitionsController import com.android.wm.shell.back.BackAnimation import com.android.wm.shell.pip.Pip import org.junit.Before import org.junit.Test import org.mockito.Mock import org.mockito.Mockito.`when` import org.mockito.Mockito.any import org.mockito.Mockito.anyBoolean import org.mockito.Mockito.anyInt import org.mockito.Mockito.times import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations import java.util.Optional @SmallTest class TaskbarDelegateTest : SysuiTestCase() { val DISPLAY_ID = 0; val MODE_GESTURE = 0; val MODE_THREE_BUTTON = 1; private lateinit var mTaskbarDelegate: TaskbarDelegate @Mock lateinit var mEdgeBackGestureHandlerFactory : EdgeBackGestureHandler.Factory @Mock lateinit var mEdgeBackGestureHandler : EdgeBackGestureHandler @Mock lateinit var mLightBarControllerFactory : LightBarTransitionsController.Factory @Mock lateinit var mLightBarTransitionController: LightBarTransitionsController @Mock lateinit var mCommandQueue: CommandQueue @Mock lateinit var mOverviewProxyService: OverviewProxyService @Mock lateinit var mNavBarHelper: NavBarHelper @Mock lateinit var mNavigationModeController: NavigationModeController @Mock lateinit var mSysUiState: SysUiState @Mock lateinit var mDumpManager: DumpManager @Mock lateinit var mAutoHideController: AutoHideController @Mock lateinit var mLightBarController: LightBarController @Mock lateinit var mOptionalPip: Optional<Pip> @Mock lateinit var mBackAnimation: BackAnimation @Mock lateinit var mCurrentSysUiState: NavBarHelper.CurrentSysuiState @Before fun setup() { MockitoAnnotations.initMocks(this) `when`(mEdgeBackGestureHandlerFactory.create(context)).thenReturn(mEdgeBackGestureHandler) `when`(mLightBarControllerFactory.create(any())).thenReturn(mLightBarTransitionController) `when`(mNavBarHelper.currentSysuiState).thenReturn(mCurrentSysUiState) `when`(mSysUiState.setFlag(anyInt(), anyBoolean())).thenReturn(mSysUiState) mTaskbarDelegate = TaskbarDelegate(context, mEdgeBackGestureHandlerFactory, mLightBarControllerFactory) mTaskbarDelegate.setDependencies(mCommandQueue, mOverviewProxyService, mNavBarHelper, mNavigationModeController, mSysUiState, mDumpManager, mAutoHideController, mLightBarController, mOptionalPip, mBackAnimation) } @Test fun navigationModeInitialized() { `when`(mNavigationModeController.addListener(any())).thenReturn(MODE_THREE_BUTTON) assert(mTaskbarDelegate.navigationMode == -1) mTaskbarDelegate.init(DISPLAY_ID) assert(mTaskbarDelegate.navigationMode == MODE_THREE_BUTTON) } @Test fun navigationModeInitialized_notifyEdgeBackHandler() { `when`(mNavigationModeController.addListener(any())).thenReturn(MODE_GESTURE) mTaskbarDelegate.init(DISPLAY_ID) verify(mEdgeBackGestureHandler, times(1)).onNavigationModeChanged(MODE_GESTURE) } } No newline at end of file Loading
packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +8 −3 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import com.android.internal.statusbar.LetterboxDetails; import com.android.internal.view.AppearanceRegion; Loading Loading @@ -125,7 +126,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private final DisplayManager mDisplayManager; private Context mWindowContext; private ScreenPinningNotify mScreenPinningNotify; private int mNavigationMode; private int mNavigationMode = -1; private final Consumer<Rect> mPipListener; /** Loading Loading @@ -217,8 +218,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, parseCurrentSysuiState(); mCommandQueue.addCallback(this); mOverviewProxyService.addCallback(this); mEdgeBackGestureHandler.onNavigationModeChanged( mNavigationModeController.addListener(this)); onNavigationModeChanged(mNavigationModeController.addListener(this)); mNavBarHelper.registerNavTaskStateUpdater(mNavbarTaskbarStateUpdater); mNavBarHelper.init(); mEdgeBackGestureHandler.onNavBarAttached(); Loading Loading @@ -492,6 +492,11 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, !QuickStepContract.isGesturalMode(mNavigationMode)); } @VisibleForTesting int getNavigationMode() { return mNavigationMode; } @Override public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { pw.println("TaskbarDelegate (displayId=" + mDisplayId + "):"); Loading
packages/SystemUI/tests/src/com/android/systemui/navigationbar/TaskbarDelegateTest.kt 0 → 100644 +93 −0 Original line number Diff line number Diff line package com.android.systemui.navigationbar import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.model.SysUiState import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler import com.android.systemui.recents.OverviewProxyService import com.android.systemui.statusbar.CommandQueue import com.android.systemui.statusbar.phone.AutoHideController import com.android.systemui.statusbar.phone.LightBarController import com.android.systemui.statusbar.phone.LightBarTransitionsController import com.android.wm.shell.back.BackAnimation import com.android.wm.shell.pip.Pip import org.junit.Before import org.junit.Test import org.mockito.Mock import org.mockito.Mockito.`when` import org.mockito.Mockito.any import org.mockito.Mockito.anyBoolean import org.mockito.Mockito.anyInt import org.mockito.Mockito.times import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations import java.util.Optional @SmallTest class TaskbarDelegateTest : SysuiTestCase() { val DISPLAY_ID = 0; val MODE_GESTURE = 0; val MODE_THREE_BUTTON = 1; private lateinit var mTaskbarDelegate: TaskbarDelegate @Mock lateinit var mEdgeBackGestureHandlerFactory : EdgeBackGestureHandler.Factory @Mock lateinit var mEdgeBackGestureHandler : EdgeBackGestureHandler @Mock lateinit var mLightBarControllerFactory : LightBarTransitionsController.Factory @Mock lateinit var mLightBarTransitionController: LightBarTransitionsController @Mock lateinit var mCommandQueue: CommandQueue @Mock lateinit var mOverviewProxyService: OverviewProxyService @Mock lateinit var mNavBarHelper: NavBarHelper @Mock lateinit var mNavigationModeController: NavigationModeController @Mock lateinit var mSysUiState: SysUiState @Mock lateinit var mDumpManager: DumpManager @Mock lateinit var mAutoHideController: AutoHideController @Mock lateinit var mLightBarController: LightBarController @Mock lateinit var mOptionalPip: Optional<Pip> @Mock lateinit var mBackAnimation: BackAnimation @Mock lateinit var mCurrentSysUiState: NavBarHelper.CurrentSysuiState @Before fun setup() { MockitoAnnotations.initMocks(this) `when`(mEdgeBackGestureHandlerFactory.create(context)).thenReturn(mEdgeBackGestureHandler) `when`(mLightBarControllerFactory.create(any())).thenReturn(mLightBarTransitionController) `when`(mNavBarHelper.currentSysuiState).thenReturn(mCurrentSysUiState) `when`(mSysUiState.setFlag(anyInt(), anyBoolean())).thenReturn(mSysUiState) mTaskbarDelegate = TaskbarDelegate(context, mEdgeBackGestureHandlerFactory, mLightBarControllerFactory) mTaskbarDelegate.setDependencies(mCommandQueue, mOverviewProxyService, mNavBarHelper, mNavigationModeController, mSysUiState, mDumpManager, mAutoHideController, mLightBarController, mOptionalPip, mBackAnimation) } @Test fun navigationModeInitialized() { `when`(mNavigationModeController.addListener(any())).thenReturn(MODE_THREE_BUTTON) assert(mTaskbarDelegate.navigationMode == -1) mTaskbarDelegate.init(DISPLAY_ID) assert(mTaskbarDelegate.navigationMode == MODE_THREE_BUTTON) } @Test fun navigationModeInitialized_notifyEdgeBackHandler() { `when`(mNavigationModeController.addListener(any())).thenReturn(MODE_GESTURE) mTaskbarDelegate.init(DISPLAY_ID) verify(mEdgeBackGestureHandler, times(1)).onNavigationModeChanged(MODE_GESTURE) } } No newline at end of file