Merge "Limit starting bounds of swipe to animation start rect" into tm-dev
This commit is contained in:
@@ -266,6 +266,13 @@ public abstract class SwipeUpAnimationLogic implements
|
|||||||
RectF cropRectF = new RectF(taskViewSimulator.getCurrentCropRect());
|
RectF cropRectF = new RectF(taskViewSimulator.getCurrentCropRect());
|
||||||
// Move the startRect to Launcher space as floatingIconView runs in Launcher
|
// Move the startRect to Launcher space as floatingIconView runs in Launcher
|
||||||
Matrix windowToHomePositionMap = new Matrix();
|
Matrix windowToHomePositionMap = new Matrix();
|
||||||
|
|
||||||
|
// If the start rect ends up overshooting too much to the left/right offscreen, bring it
|
||||||
|
// back to fullscreen. This can happen when the recentsScroll value isn't aligned with
|
||||||
|
// the pageScroll value for a given taskView, see b/228829958#comment12
|
||||||
|
mRemoteTargetHandles[0].getTaskViewSimulator().getOrientationState().getOrientationHandler()
|
||||||
|
.fixBoundsForHomeAnimStartRect(startRect, mDp);
|
||||||
|
|
||||||
homeToWindowPositionMap.invert(windowToHomePositionMap);
|
homeToWindowPositionMap.invert(windowToHomePositionMap);
|
||||||
windowToHomePositionMap.mapRect(startRect);
|
windowToHomePositionMap.mapRect(startRect);
|
||||||
|
|
||||||
|
|||||||
@@ -102,6 +102,17 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler {
|
|||||||
velocity.set(-oldY, oldX);
|
velocity.set(-oldY, oldX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fixBoundsForHomeAnimStartRect(RectF outStartRect, DeviceProfile deviceProfile) {
|
||||||
|
// We don't need to check the "top" value here because the startRect is in the orientation
|
||||||
|
// of the app, not of the fixed portrait launcher.
|
||||||
|
if (outStartRect.left > deviceProfile.heightPx) {
|
||||||
|
outStartRect.offsetTo(0, outStartRect.top);
|
||||||
|
} else if (outStartRect.left < -deviceProfile.heightPx) {
|
||||||
|
outStartRect.offsetTo(0, outStartRect.top);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> void setPrimary(T target, Int2DAction<T> action, int param) {
|
public <T> void setPrimary(T target, Int2DAction<T> action, int param) {
|
||||||
action.call(target, 0, param);
|
action.call(target, 0, param);
|
||||||
|
|||||||
@@ -226,6 +226,12 @@ public interface PagedOrientationHandler {
|
|||||||
*/
|
*/
|
||||||
void adjustFloatingIconStartVelocity(PointF velocity);
|
void adjustFloatingIconStartVelocity(PointF velocity);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensures that outStartRect left bound is within the DeviceProfile's visual boundaries
|
||||||
|
* @param outStartRect The start rect that will directly be modified
|
||||||
|
*/
|
||||||
|
void fixBoundsForHomeAnimStartRect(RectF outStartRect, DeviceProfile deviceProfile);
|
||||||
|
|
||||||
class ChildBounds {
|
class ChildBounds {
|
||||||
|
|
||||||
public final int primaryDimension;
|
public final int primaryDimension;
|
||||||
|
|||||||
@@ -101,6 +101,15 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
|
|||||||
//no-op
|
//no-op
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fixBoundsForHomeAnimStartRect(RectF outStartRect, DeviceProfile deviceProfile) {
|
||||||
|
if (outStartRect.left > deviceProfile.widthPx) {
|
||||||
|
outStartRect.offsetTo(0, outStartRect.top);
|
||||||
|
} else if (outStartRect.left < -deviceProfile.widthPx) {
|
||||||
|
outStartRect.offsetTo(0, outStartRect.top);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> void setPrimary(T target, Int2DAction<T> action, int param) {
|
public <T> void setPrimary(T target, Int2DAction<T> action, int param) {
|
||||||
action.call(target, param, 0);
|
action.call(target, param, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user