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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user