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:
Tony Wickham
2020-12-11 17:30:41 -08:00
parent 64594c803a
commit e3386502cf
6 changed files with 115 additions and 58 deletions
@@ -60,6 +60,11 @@ public class SingleAxisSwipeDetector extends BaseSwipeDetector {
return direction.x;
}
@NonNull
@Override
public String toString() {
return "VERTICAL";
}
};
public static final Direction HORIZONTAL = new Direction() {
@@ -86,6 +91,11 @@ public class SingleAxisSwipeDetector extends BaseSwipeDetector {
return direction.y;
}
@NonNull
@Override
public String toString() {
return "HORIZONTAL";
}
};
private final Direction mDir;
@@ -117,10 +127,6 @@ public class SingleAxisSwipeDetector extends BaseSwipeDetector {
mIgnoreSlopWhenSettling = ignoreSlop;
}
public int getScrollDirections() {
return mScrollDirections;
}
/**
* Returns if the start drag was towards the positive direction or negative.
*