private static <A, Z, R> FixedLoadProvider<A, ImageVideoWrapper, Z, R> buildProvider(Glide glide,
            ModelLoader<A, InputStream> streamModelLoader,
            ModelLoader<A, ParcelFileDescriptor> fileDescriptorModelLoader, Class<Z> resourceClass,
            Class<R> transcodedClass,
            ResourceTranscoder<Z, R> transcoder) {
        if (streamModelLoader == null && fileDescriptorModelLoader == null) {
            return null;
        }

        if (transcoder == null) {
            transcoder = glide.buildTranscoder(resourceClass, transcodedClass);
        }
        DataLoadProvider<ImageVideoWrapper, Z> dataLoadProvider = glide.buildDataProvider(ImageVideoWrapper.class,
                resourceClass);
        ImageVideoModelLoader<A> modelLoader = new ImageVideoModelLoader<A>(streamModelLoader,
                fileDescriptorModelLoader);
        return new FixedLoadProvider<A, ImageVideoWrapper, Z, R>(modelLoader, transcoder, dataLoadProvider);
    }
A class for creating a load request that loads either an animated GIF drawable or a Bitmap drawable directly, or
adds an {@link ResourceTranscoder} to transcode the data into a
resource type other than a {@link android.graphics.drawable.Drawable}.

@param <ModelType> The type of model to use to load the {@link android.graphics.drawable.BitmapDrawable} or
{@link com.bumptech.glide.load.resource.gif.GifDrawable}.
core/src/main/java/com/bumptech/glide/DrawableTypeRequest.java