Ensuring that the dock state is opposite of the nav bar.

am: c54c748ede

Change-Id: Ic02f30251b1b2d0633928f45ff78a3fdb0227b88
This commit is contained in:
Winson
2016-08-04 01:32:51 +00:00
committed by android-build-merger
2 changed files with 24 additions and 6 deletions

View File

@@ -222,6 +222,13 @@ public class RecentsView extends FrameLayout {
return mBackgroundScrim;
}
/**
* Returns whether the nav bar is on the right.
*/
public boolean isNavBarOnRight() {
return mSystemInsets.right > 0;
}
/**
* Returns whether the last task launched was in the freeform stack or not.
*/

View File

@@ -45,10 +45,14 @@ import java.util.ArrayList;
* Represents the dock regions for each orientation.
*/
class DockRegion {
public static TaskStack.DockState[] PHONE_LANDSCAPE = {
// We only allow docking to the left for now on small devices
// The phone landscape dock states correspond to the opposite end of the screen that the nav bar
// appears
public static TaskStack.DockState[] PHONE_LANDSCAPE_LEFT = {
TaskStack.DockState.LEFT
};
public static TaskStack.DockState[] PHONE_LANDSCAPE_RIGHT = {
TaskStack.DockState.RIGHT
};
public static TaskStack.DockState[] PHONE_PORTRAIT = {
// We only allow docking to the top for now on small devices
TaskStack.DockState.TOP
@@ -113,10 +117,17 @@ public class RecentsViewTouchHandler {
boolean isLandscape = mRv.getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_LANDSCAPE;
RecentsConfiguration config = Recents.getConfiguration();
TaskStack.DockState[] dockStates = isLandscape ?
(config.isLargeScreen ? DockRegion.TABLET_LANDSCAPE : DockRegion.PHONE_LANDSCAPE) :
(config.isLargeScreen ? DockRegion.TABLET_PORTRAIT : DockRegion.PHONE_PORTRAIT);
return dockStates;
if (config.isLargeScreen) {
return isLandscape ? DockRegion.TABLET_LANDSCAPE : DockRegion.TABLET_PORTRAIT;
} else {
if (isLandscape) {
return mRv.isNavBarOnRight()
? DockRegion.PHONE_LANDSCAPE_LEFT
: DockRegion.PHONE_LANDSCAPE_RIGHT;
} else {
return DockRegion.PHONE_PORTRAIT;
}
}
}
/**