mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-03 17:36:49 +00:00
Fix TaskViewTouchController crash in seascape
Previously, we were using scroll direction POSITIVE as a catch all to mean "up" but in seascape, we actually want NEGATIVE. Added getUpDirection() to capture that. Tried to clarify the code a bit by putting all the methods used solely by TaskViewTouchController together with documentation. It's still pretty confusing and feels redundant, but couldn't think of an obvious way to simplify. Test: Swipe up and down on a task in all permutations of: - 3 button mode - Gesture navigation - Portrait - Landscape - Seascape - LTR - RTL - Home rotation allowed - Home rotation disallowed Fixes: 174009771 Fixes: 173567204 Change-Id: Id0f8d6f4365d888eb46182d8544d18206795dfb8
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.launcher3.touch;
|
||||
|
||||
import static com.android.launcher3.touch.SingleAxisSwipeDetector.HORIZONTAL;
|
||||
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.PointF;
|
||||
import android.graphics.Rect;
|
||||
@@ -32,11 +34,6 @@ public class SeascapePagedViewHandler extends LandscapePagedViewHandler {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTaskDragDisplacementFactor(boolean isRtl) {
|
||||
return isRtl ? -1 : 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getRecentsRtlSetting(Resources resources) {
|
||||
return Utilities.isRtl(resources);
|
||||
@@ -52,11 +49,6 @@ public class SeascapePagedViewHandler extends LandscapePagedViewHandler {
|
||||
return Surface.ROTATION_270;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGoingUp(float displacement, boolean isRtl) {
|
||||
return isRtl ? displacement > 0 : displacement < 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void adjustFloatingIconStartVelocity(PointF velocity) {
|
||||
float oldX = velocity.x;
|
||||
@@ -78,4 +70,29 @@ public class SeascapePagedViewHandler extends LandscapePagedViewHandler {
|
||||
public int getDistanceToBottomOfRect(DeviceProfile dp, Rect rect) {
|
||||
return dp.widthPx - rect.right;
|
||||
}
|
||||
|
||||
/* ---------- The following are only used by TaskViewTouchHandler. ---------- */
|
||||
|
||||
@Override
|
||||
public SingleAxisSwipeDetector.Direction getUpDownSwipeDirection() {
|
||||
return HORIZONTAL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getUpDirection(boolean isRtl) {
|
||||
return isRtl ? SingleAxisSwipeDetector.DIRECTION_POSITIVE
|
||||
: SingleAxisSwipeDetector.DIRECTION_NEGATIVE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGoingUp(float displacement, boolean isRtl) {
|
||||
return isRtl ? displacement > 0 : displacement < 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTaskDragDisplacementFactor(boolean isRtl) {
|
||||
return isRtl ? -1 : 1;
|
||||
}
|
||||
|
||||
/* -------------------- */
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user