package com.pitchedapps.butler.iconrequest.glide; import android.graphics.drawable.Drawable; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.bumptech.glide.Priority; import com.bumptech.glide.load.data.DataFetcher; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.model.ModelLoader; import com.pitchedapps.butler.iconrequest.App; /** * Created by Allan Wang on 2016-08-20. */ public class AppIconLoader implements ModelLoader<App, App> { @Override public DataFetcher<App> getResourceFetcher(final App model, int width, int height) { return new DataFetcher<App>() { @Override public App loadData(Priority priority) throws Exception { return model; } @Override public void cleanup() { } @Override public String getId() { return "AppIconLoader_" + model.getPackage(); } @Override public void cancel() { } }; } public static void display(ImageView imageView, App app, Priority priority, Drawable thumbnail) { Glide.with(imageView.getContext()) .using(new AppIconLoader(), App.class) .from(App.class) .as(Drawable.class) .decoder(new AppIconDecoder(imageView.getContext(), app.getPackage())) .diskCacheStrategy(DiskCacheStrategy.NONE) // cannot disk cache ApplicationInfo, nor Drawables .load(app) .placeholder(thumbnail) .priority(priority) .into(imageView); } }