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

Commit d84643ad authored by Mark Renouf's avatar Mark Renouf
Browse files

Avoid detecting WebView as TYPE_RECYCLING

Currently ScrollCaptureIntrnal only checks for >1 child views
but not >0 child views. Because of this, WebView is considered
a RecyclerView, but this will not work without any Views to
track.

This change classifies these as "OPAQUE" so they can be handled
specially. Until support for these is implemented they will be
skipped as targets.

Bug: 179253269
Test: Open Chrome to a scrollable page, take screenshot
Change-Id: I0b00598031879d2fa7c1295440b3de1e0e453031
parent 4edcb527
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -58,6 +58,11 @@ public class ScrollCaptureInternal {
     */
    public static final int TYPE_RECYCLING = 2;

    /**
     * The ViewGroup scrolls, but has no child views in
     */
    private static final int TYPE_OPAQUE = 3;

    /**
     * Performs tests on the given View and determines:
     * 1. If scrolling is possible
@@ -95,8 +100,15 @@ public class ScrollCaptureInternal {
            }
            return TYPE_RECYCLING;
        }
        // At least one child view is required.
        if (((ViewGroup) view).getChildCount() < 1) {
            if (DEBUG_VERBOSE) {
                Log.v(TAG, "scrollable with no children");
            }
            return TYPE_OPAQUE;
        }
        if (DEBUG_VERBOSE) {
            Log.v(TAG, "hint: less than two child views");
            Log.v(TAG, "hint: single child view");
        }
        //Because recycling containers don't use scrollY, a non-zero value means Scroll view.
        if (view.getScrollY() != 0) {