private void preload(int from, int to) {
        int start;
        int end;
        if (from < to) {
            start = Math.max(lastEnd, from);
            end = to;
        } else {
            start = to;
            end = Math.min(lastStart, from);
        }
        end = Math.min(totalItemCount, end);
        start = Math.min(totalItemCount, Math.max(0, start));

        if (from < to) {
            // Increasing
            for (int i = start; i < end; i++) {
                preloadAdapterPosition(this.preloadModelProvider.getPreloadItems(i), i, true);
            }
        } else {
            // Decreasing
            for (int i = end - 1; i >= start; i--) {
                preloadAdapterPosition(this.preloadModelProvider.getPreloadItems(i), i, false);
            }
        }

        lastStart = start;
        lastEnd = end;
    }
Returns a non null {@link GenericRequestBuilder} for a given item. Must exactly match the
request used to load the resource in the list.

<p>
The target and context will be provided by the preloader.
</p>

@deprecated Use {@link PreloadModelProvider} instead. This method will be
removed in Glide 4.0.
@param item The model to load.
core/src/main/java/com/bumptech/glide/ListPreloader.java