private static <A, R> FixedLoadProvider<A, InputStream, GifDrawable, R> buildProvider(Glide glide,
            ModelLoader<A, InputStream> streamModelLoader, Class<R> transcodeClass,
            ResourceTranscoder<GifDrawable, R> transcoder) {
        if (streamModelLoader == null) {
            return null;
        }

        if (transcoder == null) {
            transcoder = glide.buildTranscoder(GifDrawable.class, transcodeClass);
        }
        DataLoadProvider<InputStream, GifDrawable> dataLoadProvider = glide.buildDataProvider(InputStream.class,
                GifDrawable.class);
        return new FixedLoadProvider<A, InputStream, GifDrawable, R>(streamModelLoader, transcoder, dataLoadProvider);
    }
A class for creating a load request that either loads an {@link GifDrawable}
directly or that adds an {@link ResourceTranscoder} to transcode
{@link GifDrawable} into another resource type.

@param <ModelType> The type of model to load the {@link GifDrawable} or other
          transcoded class from.
core/src/main/java/com/bumptech/glide/GifTypeRequest.java