翰林优商.apk(点击下载) / Glide.java


package com.sjm.bumptech.glide;

import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.os.ParcelFileDescriptor;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import androidx.fragment.app.FragmentActivity;
import com.sjm.bumptech.glide.load.DecodeFormat;
import com.sjm.bumptech.glide.load.engine.Engine;
import com.sjm.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.sjm.bumptech.glide.load.engine.cache.MemoryCache;
import com.sjm.bumptech.glide.load.engine.prefill.BitmapPreFiller;
import com.sjm.bumptech.glide.load.engine.prefill.PreFillType;
import com.sjm.bumptech.glide.load.model.GenericLoaderFactory;
import com.sjm.bumptech.glide.load.model.GlideUrl;
import com.sjm.bumptech.glide.load.model.ImageVideoWrapper;
import com.sjm.bumptech.glide.load.model.ModelLoader;
import com.sjm.bumptech.glide.load.model.ModelLoaderFactory;
import com.sjm.bumptech.glide.load.model.file_descriptor.FileDescriptorFileLoader;
import com.sjm.bumptech.glide.load.model.file_descriptor.FileDescriptorResourceLoader;
import com.sjm.bumptech.glide.load.model.file_descriptor.FileDescriptorStringLoader;
import com.sjm.bumptech.glide.load.model.file_descriptor.FileDescriptorUriLoader;
import com.sjm.bumptech.glide.load.model.stream.HttpUrlGlideUrlLoader;
import com.sjm.bumptech.glide.load.model.stream.StreamByteArrayLoader;
import com.sjm.bumptech.glide.load.model.stream.StreamFileLoader;
import com.sjm.bumptech.glide.load.model.stream.StreamResourceLoader;
import com.sjm.bumptech.glide.load.model.stream.StreamStringLoader;
import com.sjm.bumptech.glide.load.model.stream.StreamUriLoader;
import com.sjm.bumptech.glide.load.model.stream.StreamUrlLoader;
import com.sjm.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.sjm.bumptech.glide.load.resource.bitmap.FileDescriptorBitmapDataLoadProvider;
import com.sjm.bumptech.glide.load.resource.bitmap.FitCenter;
import com.sjm.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable;
import com.sjm.bumptech.glide.load.resource.bitmap.ImageVideoDataLoadProvider;
import com.sjm.bumptech.glide.load.resource.bitmap.StreamBitmapDataLoadProvider;
import com.sjm.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.sjm.bumptech.glide.load.resource.file.StreamFileDataLoadProvider;
import com.sjm.bumptech.glide.load.resource.gif.GifDrawable;
import com.sjm.bumptech.glide.load.resource.gif.GifDrawableLoadProvider;
import com.sjm.bumptech.glide.load.resource.gifbitmap.GifBitmapWrapper;
import com.sjm.bumptech.glide.load.resource.gifbitmap.GifBitmapWrapperTransformation;
import com.sjm.bumptech.glide.load.resource.gifbitmap.ImageVideoGifDrawableLoadProvider;
import com.sjm.bumptech.glide.load.resource.transcode.GifBitmapWrapperDrawableTranscoder;
import com.sjm.bumptech.glide.load.resource.transcode.GlideBitmapDrawableTranscoder;
import com.sjm.bumptech.glide.load.resource.transcode.ResourceTranscoder;
import com.sjm.bumptech.glide.load.resource.transcode.TranscoderRegistry;
import com.sjm.bumptech.glide.manager.RequestManagerRetriever;
import com.sjm.bumptech.glide.module.GlideModule;
import com.sjm.bumptech.glide.module.ManifestParser;
import com.sjm.bumptech.glide.provider.DataLoadProvider;
import com.sjm.bumptech.glide.provider.DataLoadProviderRegistry;
import com.sjm.bumptech.glide.request.FutureTarget;
import com.sjm.bumptech.glide.request.Request;
import com.sjm.bumptech.glide.request.animation.GlideAnimation;
import com.sjm.bumptech.glide.request.target.ImageViewTargetFactory;
import com.sjm.bumptech.glide.request.target.Target;
import com.sjm.bumptech.glide.request.target.ViewTarget;
import com.sjm.bumptech.glide.util.Util;
import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.util.List;

public class Glide {
    private static final String TAG = "Glide";
    private static volatile Glide glide;
    private final CenterCrop bitmapCenterCrop;
    private final FitCenter bitmapFitCenter;
    private final BitmapPool bitmapPool;
    private final BitmapPreFiller bitmapPreFiller;
    private final DataLoadProviderRegistry dataLoadProviderRegistry;
    private final DecodeFormat decodeFormat;
    private final GifBitmapWrapperTransformation drawableCenterCrop;
    private final GifBitmapWrapperTransformation drawableFitCenter;
    private final Engine engine;
    private final ImageViewTargetFactory imageViewTargetFactory = new ImageViewTargetFactory();
    private final GenericLoaderFactory loaderFactory;
    private final Handler mainHandler;
    private final MemoryCache memoryCache;
    private final TranscoderRegistry transcoderRegistry;

    private static class ClearTarget extends ViewTarget<View, Object> {
        public ClearTarget(View view) {
            super(view);
        }

        @Override // com.sjm.bumptech.glide.request.target.Target, com.sjm.bumptech.glide.request.target.BaseTarget
        public void onLoadCleared(Drawable drawable) {
        }

        @Override // com.sjm.bumptech.glide.request.target.Target, com.sjm.bumptech.glide.request.target.BaseTarget
        public void onLoadFailed(Exception exc, Drawable drawable) {
        }

        @Override // com.sjm.bumptech.glide.request.target.Target, com.sjm.bumptech.glide.request.target.BaseTarget
        public void onLoadStarted(Drawable drawable) {
        }

        @Override // com.sjm.bumptech.glide.request.target.Target
        public void onResourceReady(Object obj, GlideAnimation<? super Object> glideAnimation) {
        }
    }

    Glide(Engine engine2, MemoryCache memoryCache2, BitmapPool bitmapPool2, Context context, DecodeFormat decodeFormat2) {
        TranscoderRegistry transcoderRegistry2 = new TranscoderRegistry();
        this.transcoderRegistry = transcoderRegistry2;
        this.engine = engine2;
        this.bitmapPool = bitmapPool2;
        this.memoryCache = memoryCache2;
        this.decodeFormat = decodeFormat2;
        this.loaderFactory = new GenericLoaderFactory(context);
        this.mainHandler = new Handler(Looper.getMainLooper());
        this.bitmapPreFiller = new BitmapPreFiller(memoryCache2, bitmapPool2, decodeFormat2);
        DataLoadProviderRegistry dataLoadProviderRegistry2 = new DataLoadProviderRegistry();
        this.dataLoadProviderRegistry = dataLoadProviderRegistry2;
        StreamBitmapDataLoadProvider streamBitmapDataLoadProvider = new StreamBitmapDataLoadProvider(bitmapPool2, decodeFormat2);
        dataLoadProviderRegistry2.register(InputStream.class, Bitmap.class, streamBitmapDataLoadProvider);
        FileDescriptorBitmapDataLoadProvider fileDescriptorBitmapDataLoadProvider = new FileDescriptorBitmapDataLoadProvider(bitmapPool2, decodeFormat2);
        dataLoadProviderRegistry2.register(ParcelFileDescriptor.class, Bitmap.class, fileDescriptorBitmapDataLoadProvider);
        ImageVideoDataLoadProvider imageVideoDataLoadProvider = new ImageVideoDataLoadProvider(streamBitmapDataLoadProvider, fileDescriptorBitmapDataLoadProvider);
        dataLoadProviderRegistry2.register(ImageVideoWrapper.class, Bitmap.class, imageVideoDataLoadProvider);
        GifDrawableLoadProvider gifDrawableLoadProvider = new GifDrawableLoadProvider(context, bitmapPool2);
        dataLoadProviderRegistry2.register(InputStream.class, GifDrawable.class, gifDrawableLoadProvider);
        dataLoadProviderRegistry2.register(ImageVideoWrapper.class, GifBitmapWrapper.class, new ImageVideoGifDrawableLoadProvider(imageVideoDataLoadProvider, gifDrawableLoadProvider, bitmapPool2));
        dataLoadProviderRegistry2.register(InputStream.class, File.class, new StreamFileDataLoadProvider());
        register(File.class, ParcelFileDescriptor.class, new FileDescriptorFileLoader.Factory());
        register(File.class, InputStream.class, new StreamFileLoader.Factory());
        register(Integer.TYPE, ParcelFileDescriptor.class, new FileDescriptorResourceLoader.Factory());
        register(Integer.TYPE, InputStream.class, new StreamResourceLoader.Factory());
        register(Integer.class, ParcelFileDescriptor.class, new FileDescriptorResourceLoader.Factory());
        register(Integer.class, InputStream.class, new StreamResourceLoader.Factory());
        register(String.class, ParcelFileDescriptor.class, new FileDescriptorStringLoader.Factory());
        register(String.class, InputStream.class, new StreamStringLoader.Factory());
        register(Uri.class, ParcelFileDescriptor.class, new FileDescriptorUriLoader.Factory());
        register(Uri.class, InputStream.class, new StreamUriLoader.Factory());
        register(URL.class, InputStream.class, new StreamUrlLoader.Factory());
        register(GlideUrl.class, InputStream.class, new HttpUrlGlideUrlLoader.Factory());
        register(byte[].class, InputStream.class, new StreamByteArrayLoader.Factory());
        transcoderRegistry2.register(Bitmap.class, GlideBitmapDrawable.class, new GlideBitmapDrawableTranscoder(context.getResources(), bitmapPool2));
        transcoderRegistry2.register(GifBitmapWrapper.class, GlideDrawable.class, new GifBitmapWrapperDrawableTranscoder(new GlideBitmapDrawableTranscoder(context.getResources(), bitmapPool2)));
        CenterCrop centerCrop = new CenterCrop(bitmapPool2);
        this.bitmapCenterCrop = centerCrop;
        this.drawableCenterCrop = new GifBitmapWrapperTransformation(bitmapPool2, centerCrop);
        FitCenter fitCenter = new FitCenter(bitmapPool2);
        this.bitmapFitCenter = fitCenter;
        this.drawableFitCenter = new GifBitmapWrapperTransformation(bitmapPool2, fitCenter);
    }

    public static <T> ModelLoader<T, ParcelFileDescriptor> buildFileDescriptorModelLoader(Class<T> cls, Context context) {
        return buildModelLoader((Class) cls, ParcelFileDescriptor.class, context);
    }

    public static <T> ModelLoader<T, ParcelFileDescriptor> buildFileDescriptorModelLoader(T t, Context context) {
        return buildModelLoader((Object) t, ParcelFileDescriptor.class, context);
    }

    public static <T, Y> ModelLoader<T, Y> buildModelLoader(Class<T> cls, Class<Y> cls2, Context context) {
        if (cls != null) {
            return get(context).getLoaderFactory().buildModelLoader(cls, cls2);
        }
        if (!Log.isLoggable(TAG, 3)) {
            return null;
        }
        Log.d(TAG, "Unable to load null model, setting placeholder only");
        return null;
    }

    public static <T, Y> ModelLoader<T, Y> buildModelLoader(T t, Class<Y> cls, Context context) {
        return buildModelLoader((Class) (t != null ? t.getClass() : null), (Class) cls, context);
    }

    public static <T> ModelLoader<T, InputStream> buildStreamModelLoader(Class<T> cls, Context context) {
        return buildModelLoader((Class) cls, InputStream.class, context);
    }

    public static <T> ModelLoader<T, InputStream> buildStreamModelLoader(T t, Context context) {
        return buildModelLoader((Object) t, InputStream.class, context);
    }

    public static void clear(View view) {
        clear(new ClearTarget(view));
    }

    public static void clear(FutureTarget<?> futureTarget) {
        futureTarget.clear();
    }

    public static void clear(Target<?> target) {
        Util.assertMainThread();
        Request request = target.getRequest();
        if (request != null) {
            request.clear();
            target.setRequest(null);
        }
    }

    public static Glide get(Context context) {
        if (glide == null) {
            synchronized (Glide.class) {
                if (glide == null) {
                    Context applicationContext = context.getApplicationContext();
                    List<GlideModule> parse = new ManifestParser(applicationContext).parse();
                    GlideBuilder glideBuilder = new GlideBuilder(applicationContext);
                    for (GlideModule glideModule : parse) {
                        glideModule.applyOptions(applicationContext, glideBuilder);
                    }
                    glide = glideBuilder.createGlide();
                    for (GlideModule glideModule2 : parse) {
                        glideModule2.registerComponents(applicationContext, glide);
                    }
                }
            }
        }
        return glide;
    }

    private GenericLoaderFactory getLoaderFactory() {
        return this.loaderFactory;
    }

    public static File getPhotoCacheDir(Context context) {
        return getPhotoCacheDir(context, "image_manager_disk_cache");
    }

    public static File getPhotoCacheDir(Context context, String str) {
        File cacheDir = context.getCacheDir();
        if (cacheDir != null) {
            File file = new File(cacheDir, str);
            if (file.mkdirs() || (file.exists() && file.isDirectory())) {
                return file;
            }
            return null;
        }
        if (Log.isLoggable(TAG, 6)) {
            Log.e(TAG, "default disk cache dir is null");
        }
        return null;
    }

    @Deprecated
    public static boolean isSetup() {
        return glide != null;
    }

    @Deprecated
    public static void setup(GlideBuilder glideBuilder) {
        if (!isSetup()) {
            glide = glideBuilder.createGlide();
            return;
        }
        throw new IllegalArgumentException("Glide is already setup, check with isSetup() first");
    }

    static void tearDown() {
        glide = null;
    }

    public static RequestManager with(Activity activity) {
        return RequestManagerRetriever.get().get(activity);
    }

    public static RequestManager with(Fragment fragment) {
        return RequestManagerRetriever.get().get(fragment);
    }

    public static RequestManager with(Context context) {
        return RequestManagerRetriever.get().get(context);
    }

    public static RequestManager with(androidx.fragment.app.Fragment fragment) {
        return RequestManagerRetriever.get().get(fragment);
    }

    public static RequestManager with(FragmentActivity fragmentActivity) {
        return RequestManagerRetriever.get().get(fragmentActivity);
    }

    /* access modifiers changed from: package-private */
    public <T, Z> DataLoadProvider<T, Z> buildDataProvider(Class<T> cls, Class<Z> cls2) {
        return this.dataLoadProviderRegistry.get(cls, cls2);
    }

    /* access modifiers changed from: package-private */
    public <R> Target<R> buildImageViewTarget(ImageView imageView, Class<R> cls) {
        return this.imageViewTargetFactory.buildTarget(imageView, cls);
    }

    /* access modifiers changed from: package-private */
    public <Z, R> ResourceTranscoder<Z, R> buildTranscoder(Class<Z> cls, Class<R> cls2) {
        return this.transcoderRegistry.get(cls, cls2);
    }

    public void clearDiskCache() {
        Util.assertBackgroundThread();
        getEngine().clearDiskCache();
    }

    public void clearMemory() {
        this.bitmapPool.clearMemory();
        this.memoryCache.clearMemory();
    }

    /* access modifiers changed from: package-private */
    public CenterCrop getBitmapCenterCrop() {
        return this.bitmapCenterCrop;
    }

    /* access modifiers changed from: package-private */
    public FitCenter getBitmapFitCenter() {
        return this.bitmapFitCenter;
    }

    public BitmapPool getBitmapPool() {
        return this.bitmapPool;
    }

    /* access modifiers changed from: package-private */
    public DecodeFormat getDecodeFormat() {
        return this.decodeFormat;
    }

    /* access modifiers changed from: package-private */
    public GifBitmapWrapperTransformation getDrawableCenterCrop() {
        return this.drawableCenterCrop;
    }

    /* access modifiers changed from: package-private */
    public GifBitmapWrapperTransformation getDrawableFitCenter() {
        return this.drawableFitCenter;
    }

    /* access modifiers changed from: package-private */
    public Engine getEngine() {
        return this.engine;
    }

    /* access modifiers changed from: package-private */
    public Handler getMainHandler() {
        return this.mainHandler;
    }

    public void preFillBitmapPool(PreFillType.Builder... builderArr) {
        this.bitmapPreFiller.preFill(builderArr);
    }

    public <T, Y> void register(Class<T> cls, Class<Y> cls2, ModelLoaderFactory<T, Y> modelLoaderFactory) {
        ModelLoaderFactory<T, Y> register = this.loaderFactory.register(cls, cls2, modelLoaderFactory);
        if (register != null) {
            register.teardown();
        }
    }

    public void setMemoryCategory(MemoryCategory memoryCategory) {
        this.memoryCache.setSizeMultiplier(memoryCategory.getMultiplier());
        this.bitmapPool.setSizeMultiplier(memoryCategory.getMultiplier());
    }

    public void trimMemory(int i) {
        this.bitmapPool.trimMemory(i);
        this.memoryCache.trimMemory(i);
    }

    @Deprecated
    public <T, Y> void unregister(Class<T> cls, Class<Y> cls2) {
        ModelLoaderFactory<T, Y> unregister = this.loaderFactory.unregister(cls, cls2);
        if (unregister != null) {
            unregister.teardown();
        }
    }
}