Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ddc90f8f authored by Vadim Tryshev's avatar Vadim Tryshev Committed by Android (Google) Code Review
Browse files

Merge changes from topic "am-973ea672-98ae-4501-a3d3-ef5271a73c98" into...

Merge changes from topic "am-973ea672-98ae-4501-a3d3-ef5271a73c98" into ub-launcher3-edmonton-polish

* changes:
  [automerger] Reporting range of visible tasks am: 528b9e06
  Reporting range of visible tasks
parents 8f5f1e96 cd622e1e
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -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);
        }
    }

+31 −0
Original line number Diff line number Diff line
@@ -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);
    }
@@ -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;
    }
}
+3 −22
Original line number Diff line number Diff line
@@ -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);