Merge "Initialize navigation mode for TaskbarDelegate" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
961eece32b
@@ -55,6 +55,7 @@ import android.view.WindowInsetsController.Appearance;
|
|||||||
import android.view.WindowInsetsController.Behavior;
|
import android.view.WindowInsetsController.Behavior;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.android.internal.statusbar.LetterboxDetails;
|
import com.android.internal.statusbar.LetterboxDetails;
|
||||||
import com.android.internal.view.AppearanceRegion;
|
import com.android.internal.view.AppearanceRegion;
|
||||||
@@ -125,7 +126,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,
|
|||||||
private final DisplayManager mDisplayManager;
|
private final DisplayManager mDisplayManager;
|
||||||
private Context mWindowContext;
|
private Context mWindowContext;
|
||||||
private ScreenPinningNotify mScreenPinningNotify;
|
private ScreenPinningNotify mScreenPinningNotify;
|
||||||
private int mNavigationMode;
|
private int mNavigationMode = -1;
|
||||||
private final Consumer<Rect> mPipListener;
|
private final Consumer<Rect> mPipListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -217,8 +218,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,
|
|||||||
parseCurrentSysuiState();
|
parseCurrentSysuiState();
|
||||||
mCommandQueue.addCallback(this);
|
mCommandQueue.addCallback(this);
|
||||||
mOverviewProxyService.addCallback(this);
|
mOverviewProxyService.addCallback(this);
|
||||||
mEdgeBackGestureHandler.onNavigationModeChanged(
|
onNavigationModeChanged(mNavigationModeController.addListener(this));
|
||||||
mNavigationModeController.addListener(this));
|
|
||||||
mNavBarHelper.registerNavTaskStateUpdater(mNavbarTaskbarStateUpdater);
|
mNavBarHelper.registerNavTaskStateUpdater(mNavbarTaskbarStateUpdater);
|
||||||
mNavBarHelper.init();
|
mNavBarHelper.init();
|
||||||
mEdgeBackGestureHandler.onNavBarAttached();
|
mEdgeBackGestureHandler.onNavBarAttached();
|
||||||
@@ -492,6 +492,11 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,
|
|||||||
!QuickStepContract.isGesturalMode(mNavigationMode));
|
!QuickStepContract.isGesturalMode(mNavigationMode));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
int getNavigationMode() {
|
||||||
|
return mNavigationMode;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
|
public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
|
||||||
pw.println("TaskbarDelegate (displayId=" + mDisplayId + "):");
|
pw.println("TaskbarDelegate (displayId=" + mDisplayId + "):");
|
||||||
|
|||||||
@@ -0,0 +1,93 @@
|
|||||||
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user