/** * Constructor for {@link com.bumptech.glide.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. */ public ListPreloader(@NonNull RequestManager requestManager, @NonNull PreloadModelProvider<T> preloadModelProvider, @NonNull PreloadSizeProvider<T> preloadDimensionProvider, int maxPreload) { this.requestManager = requestManager; this.preloadModelProvider = preloadModelProvider; this.preloadDimensionProvider = preloadDimensionProvider; this.maxPreload = maxPreload; preloadTargetQueue = new PreloadTargetQueue(maxPreload + 1); }
/** * Constructor for {@link ListPreloader} that requires users to subclass and override * the {@link #getItems(int, int)} and {@link #getRequestBuilder(Object)} methods. * * @deprecated Use {@link #ListPreloader(PreloadModelProvider, * PreloadSizeProvider, int)} instead. This constructor will be removed in Glide * 4.0. * @param maxPreload Maximum number of items to preload. */ @Deprecated public ListPreloader(int maxPreload) { this.preloadModelProvider = new PreloadModelProvider<T>() { @Override public List<T> getPreloadItems(int position) { return getItems(position, position + 1); } @Override public GenericRequestBuilder getPreloadRequestBuilder(T item) { return getRequestBuilder(item); } }; this.preloadDimensionProvider = new PreloadSizeProvider<T>() { @Override public int[] getPreloadSize(T item, int adapterPosition, int perItemPosition) { return getDimensions(item); } }; this.maxPreload = maxPreload; preloadTargetQueue = new PreloadTargetQueue(maxPreload + 1); }
/** * Constructor for {@link com.bumptech.glide.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. */ public ListPreloader(RequestManager requestManager, PreloadModelProvider<T> preloadModelProvider, PreloadSizeProvider<T> preloadDimensionProvider, int maxPreload) { this.requestManager = requestManager; this.preloadModelProvider = preloadModelProvider; this.preloadDimensionProvider = preloadDimensionProvider; this.maxPreload = maxPreload; preloadTargetQueue = new PreloadTargetQueue(maxPreload + 1); }
/** * 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. */ public ListPreloader(PreloadModelProvider<T> preloadModelProvider, PreloadSizeProvider<T> preloadDimensionProvider, int maxPreload) { this.preloadModelProvider = preloadModelProvider; this.preloadDimensionProvider = preloadDimensionProvider; this.maxPreload = maxPreload; preloadTargetQueue = new PreloadTargetQueue(maxPreload + 1); }