Loading quickstep/src/com/android/quickstep/views/RecentsView.java +5 −4 Original line number Diff line number Diff line Loading @@ -1307,10 +1307,11 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl super.onInitializeAccessibilityEvent(event); if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_SCROLLED) { final int visiblePageNumber = getChildCount() - getCurrentPage() - 1; event.setFromIndex(visiblePageNumber); event.setToIndex(visiblePageNumber); event.setItemCount(getChildCount()); final int childCount = getChildCount(); final int[] visibleTasks = getVisibleChildrenRange(); event.setFromIndex(childCount - visibleTasks[1] - 1); event.setToIndex(childCount - visibleTasks[0] - 1); event.setItemCount(childCount); } } Loading src/com/android/launcher3/PagedView.java +31 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,8 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou // Similar to the platform implementation of isLayoutValid(); protected boolean mIsLayoutValid; private int[] mTmpIntPair = new int[2]; public PagedView(Context context) { this(context, null); } Loading Loading @@ -1600,4 +1602,33 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou boolean shouldIncludeView(View view); } public int[] getVisibleChildrenRange() { float visibleLeft = 0; float visibleRight = visibleLeft + getMeasuredWidth(); float scaleX = getScaleX(); if (scaleX < 1 && scaleX > 0) { float mid = getMeasuredWidth() / 2; visibleLeft = mid - ((mid - visibleLeft) / scaleX); visibleRight = mid + ((visibleRight - mid) / scaleX); } int leftChild = -1; int rightChild = -1; final int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { final View child = getPageAt(i); float left = child.getLeft() + child.getTranslationX() - getScrollX(); if (left <= visibleRight && (left + child.getMeasuredWidth()) >= visibleLeft) { if (leftChild == -1) { leftChild = i; } rightChild = i; } } mTmpIntPair[0] = leftChild; mTmpIntPair[1] = rightChild; return mTmpIntPair; } } src/com/android/launcher3/Workspace.java +3 −22 Original line number Diff line number Diff line Loading @@ -1381,28 +1381,9 @@ public class Workspace extends PagedView<WorkspacePageIndicator> if (mChildrenLayersEnabled) { final int screenCount = getChildCount(); float visibleLeft = 0; float visibleRight = visibleLeft + getMeasuredWidth(); float scaleX = getScaleX(); if (scaleX < 1 && scaleX > 0) { float mid = getMeasuredWidth() / 2; visibleLeft = mid - ((mid - visibleLeft) / scaleX); visibleRight = mid + ((visibleRight - mid) / scaleX); } int leftScreen = -1; int rightScreen = -1; for (int i = 0; i < screenCount; i++) { final View child = getPageAt(i); float left = child.getLeft() + child.getTranslationX() - getScrollX(); if (left <= visibleRight && (left + child.getMeasuredWidth()) >= visibleLeft) { if (leftScreen == -1) { leftScreen = i; } rightScreen = i; } } final int[] visibleScreens = getVisibleChildrenRange(); int leftScreen = visibleScreens[0]; int rightScreen = visibleScreens[1]; if (mForceDrawAdjacentPages) { // In overview mode, make sure that the two side pages are visible. leftScreen = Utilities.boundToRange(getCurrentPage() - 1, 0, rightScreen); Loading Loading
quickstep/src/com/android/quickstep/views/RecentsView.java +5 −4 Original line number Diff line number Diff line Loading @@ -1307,10 +1307,11 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl super.onInitializeAccessibilityEvent(event); if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_SCROLLED) { final int visiblePageNumber = getChildCount() - getCurrentPage() - 1; event.setFromIndex(visiblePageNumber); event.setToIndex(visiblePageNumber); event.setItemCount(getChildCount()); final int childCount = getChildCount(); final int[] visibleTasks = getVisibleChildrenRange(); event.setFromIndex(childCount - visibleTasks[1] - 1); event.setToIndex(childCount - visibleTasks[0] - 1); event.setItemCount(childCount); } } Loading
src/com/android/launcher3/PagedView.java +31 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,8 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou // Similar to the platform implementation of isLayoutValid(); protected boolean mIsLayoutValid; private int[] mTmpIntPair = new int[2]; public PagedView(Context context) { this(context, null); } Loading Loading @@ -1600,4 +1602,33 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou boolean shouldIncludeView(View view); } public int[] getVisibleChildrenRange() { float visibleLeft = 0; float visibleRight = visibleLeft + getMeasuredWidth(); float scaleX = getScaleX(); if (scaleX < 1 && scaleX > 0) { float mid = getMeasuredWidth() / 2; visibleLeft = mid - ((mid - visibleLeft) / scaleX); visibleRight = mid + ((visibleRight - mid) / scaleX); } int leftChild = -1; int rightChild = -1; final int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { final View child = getPageAt(i); float left = child.getLeft() + child.getTranslationX() - getScrollX(); if (left <= visibleRight && (left + child.getMeasuredWidth()) >= visibleLeft) { if (leftChild == -1) { leftChild = i; } rightChild = i; } } mTmpIntPair[0] = leftChild; mTmpIntPair[1] = rightChild; return mTmpIntPair; } }
src/com/android/launcher3/Workspace.java +3 −22 Original line number Diff line number Diff line Loading @@ -1381,28 +1381,9 @@ public class Workspace extends PagedView<WorkspacePageIndicator> if (mChildrenLayersEnabled) { final int screenCount = getChildCount(); float visibleLeft = 0; float visibleRight = visibleLeft + getMeasuredWidth(); float scaleX = getScaleX(); if (scaleX < 1 && scaleX > 0) { float mid = getMeasuredWidth() / 2; visibleLeft = mid - ((mid - visibleLeft) / scaleX); visibleRight = mid + ((visibleRight - mid) / scaleX); } int leftScreen = -1; int rightScreen = -1; for (int i = 0; i < screenCount; i++) { final View child = getPageAt(i); float left = child.getLeft() + child.getTranslationX() - getScrollX(); if (left <= visibleRight && (left + child.getMeasuredWidth()) >= visibleLeft) { if (leftScreen == -1) { leftScreen = i; } rightScreen = i; } } final int[] visibleScreens = getVisibleChildrenRange(); int leftScreen = visibleScreens[0]; int rightScreen = visibleScreens[1]; if (mForceDrawAdjacentPages) { // In overview mode, make sure that the two side pages are visible. leftScreen = Utilities.boundToRange(getCurrentPage() - 1, 0, rightScreen); Loading