Merge "support scroll backward to minus one screen via voice/switch access" into ub-launcher3-qt-future-dev

This commit is contained in:
Pinyao Ting
2019-09-16 22:05:59 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 7 deletions

View File

@@ -1543,7 +1543,7 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
snapToPage(getNextPage() - 1);
return true;
}
return false;
return onOverscroll(-getMeasuredWidth());
}
public boolean scrollRight() {
@@ -1551,7 +1551,15 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
snapToPage(getNextPage() + 1);
return true;
}
return false;
return onOverscroll(getMeasuredWidth());
}
protected boolean onOverscroll(int amount) {
if (!mAllowOverScroll) return false;
onScrollInteractionBegin();
overScroll(amount);
onScrollInteractionEnd();
return true;
}
@Override
@@ -1571,8 +1579,9 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
final boolean pagesFlipped = isPageOrderFlipped();
info.setScrollable(getPageCount() > 1);
if (getCurrentPage() < getPageCount() - 1) {
int offset = (mAllowOverScroll ? 0 : 1);
info.setScrollable(getPageCount() > offset);
if (getCurrentPage() < getPageCount() - offset) {
info.addAction(pagesFlipped ?
AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_BACKWARD
: AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_FORWARD);
@@ -1580,7 +1589,7 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
AccessibilityNodeInfo.AccessibilityAction.ACTION_PAGE_LEFT
: AccessibilityNodeInfo.AccessibilityAction.ACTION_PAGE_RIGHT);
}
if (getCurrentPage() > 0) {
if (getCurrentPage() >= offset) {
info.addAction(pagesFlipped ?
AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_FORWARD
: AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_BACKWARD);
@@ -1588,7 +1597,6 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
AccessibilityNodeInfo.AccessibilityAction.ACTION_PAGE_RIGHT
: AccessibilityNodeInfo.AccessibilityAction.ACTION_PAGE_LEFT);
}
// Accessibility-wise, PagedView doesn't support long click, so disabling it.
// Besides disabling the accessibility long-click, this also prevents this view from getting
// accessibility focus.
@@ -1607,7 +1615,7 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
@Override
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);
event.setScrollable(getPageCount() > 1);
event.setScrollable(mAllowOverScroll || getPageCount() > 1);
}
@Override

View File

@@ -1034,6 +1034,13 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
}
}
@Override
protected boolean onOverscroll(int amount) {
// Enforce overscroll on -1 direction
if ((amount > 0 && !mIsRtl) || (amount < 0 && mIsRtl)) return false;
return super.onOverscroll(amount);
}
@Override
protected boolean shouldFlingForVelocity(int velocityX) {
// When the overlay is moving, the fling or settle transition is controlled by the overlay.