Fixing non-scrolling of workspace view after opening/closing AllApps vew.

The reason for non-scrolling was excluding the pages view from the
accessibility hierarchy by marking it as non-important. So, I just
removed the code manipulating [non]importance of the PagedView.

However, this would make the PagesView accessibility-focusable, which is
undesirable. It becomes focusable because it supports long clicks in "normal"
mode. Since it doesn't support accessibility long clicks (i.e. Overview mode is
fetched NOT via accessibility long-click), I just disabled accessibility
long-clickability, which made PageView non-focusable, and it started to behave
correctly.

Bug: 21281859
Change-Id: I7ab01e5f39cb37c456c961199c27458c9bda1c3d
This commit is contained in:
Vadim Tryshev
2015-05-15 08:48:11 -07:00
parent bbcf5ac7aa
commit 7af0d4474f
2 changed files with 12 additions and 9 deletions
+10 -1
View File
@@ -853,7 +853,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
int offsetY = getViewportOffsetY();
// Update the viewport offsets
mViewport.offset(offsetX, offsetY);
mViewport.offset(offsetX, offsetY);
final int startIndex = mIsRtl ? childCount - 1 : 0;
final int endIndex = mIsRtl ? -1 : childCount;
@@ -2347,6 +2347,15 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
if (getCurrentPage() > 0) {
info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD);
}
info.setClassName(getClass().getName());
// 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.
info.setLongClickable(false);
if (Utilities.isLmpOrAbove()) {
info.removeAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_LONG_CLICK);
}
}
@Override