mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 11:18:21 +00:00
Merge "Limit starting bounds of swipe to animation start rect" into tm-dev am: e8a4e0e2dc
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/18607508 Change-Id: Idfabce2fada6528db39af475b21a1f464717da33 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -266,6 +266,13 @@ public abstract class SwipeUpAnimationLogic implements
|
||||
RectF cropRectF = new RectF(taskViewSimulator.getCurrentCropRect());
|
||||
// Move the startRect to Launcher space as floatingIconView runs in Launcher
|
||||
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);
|
||||
windowToHomePositionMap.mapRect(startRect);
|
||||
|
||||
|
||||
@@ -102,6 +102,17 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler {
|
||||
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
|
||||
public <T> void setPrimary(T target, Int2DAction<T> action, int param) {
|
||||
action.call(target, 0, param);
|
||||
|
||||
@@ -226,6 +226,12 @@ public interface PagedOrientationHandler {
|
||||
*/
|
||||
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 {
|
||||
|
||||
public final int primaryDimension;
|
||||
|
||||
@@ -101,6 +101,15 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
|
||||
//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
|
||||
public <T> void setPrimary(T target, Int2DAction<T> action, int param) {
|
||||
action.call(target, param, 0);
|
||||
|
||||
Reference in New Issue
Block a user