@Override
    public void onScroll(AbsListView absListView, int firstVisible, int visibleCount,
                         int totalCount) {
        totalItemCount = totalCount;
        if (firstVisible > lastFirstVisible) {
            preload(firstVisible + visibleCount, true);
        } else if (firstVisible < lastFirstVisible) {
            preload(firstVisible, false);
        }
        lastFirstVisible = firstVisible;
    }
Constructor for {@link ListPreloader} that accepts interfaces for providing the dimensions of
images to preload, the list of models to preload for a given position, and the request to use to load images.

@param preloadModelProvider     Provides models to load and requests capable of loading them.
@param preloadDimensionProvider Provides the dimensions of images to load.
@param maxPreload               Maximum number of items to preload.
core/src/main/java/com/bumptech/glide/ListPreloader.java