Add more create functions

This commit is contained in:
Tyler Wong 2019-11-13 00:16:19 -08:00
parent 4fa1ac718f
commit fb4e2c089f
2 changed files with 14 additions and 10 deletions

View File

@ -20,7 +20,8 @@ val markwon = Markwon.builder(context)
// if you need more control
.usePlugin(CoilImagesPlugin.create(object : CoilImagesPlugin.CoilStore {
override fun load(drawable: AsyncDrawable): LoadRequest {
return LoadRequest(context, Coil.loader().defaults) {
return LoadRequest(context, customImageLoader.defaults) {
data(drawable.destination)
crossfade(true)
transformations(CircleCropTransformation())
}
@ -29,6 +30,6 @@ val markwon = Markwon.builder(context)
override cancel(disposable: RequestDisposable) {
disposable.dispose()
}
}))
}, customImageLoader))
.build()
```

View File

@ -56,7 +56,7 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
public void cancel(@NonNull RequestDisposable disposable) {
disposable.dispose();
}
});
}, Coil.loader());
}
@NonNull
@ -75,19 +75,20 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
public void cancel(@NonNull RequestDisposable disposable) {
disposable.dispose();
}
});
}, imageLoader);
}
@NonNull
public static CoilImagesPlugin create(@NonNull CoilStore coilStore) {
return new CoilImagesPlugin(coilStore);
public static CoilImagesPlugin create(@NonNull final CoilStore coilStore,
@NonNull final ImageLoader imageLoader) {
return new CoilImagesPlugin(coilStore, imageLoader);
}
private final CoilAsyncDrawableLoader coilAsyncDrawableLoader;
@SuppressWarnings("WeakerAccess")
CoilImagesPlugin(@NonNull CoilStore coilStore) {
this.coilAsyncDrawableLoader = new CoilAsyncDrawableLoader(coilStore);
CoilImagesPlugin(@NonNull CoilStore coilStore, @NonNull ImageLoader imageLoader) {
this.coilAsyncDrawableLoader = new CoilAsyncDrawableLoader(coilStore, imageLoader);
}
@Override
@ -113,10 +114,12 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
private static class CoilAsyncDrawableLoader extends AsyncDrawableLoader {
private final CoilStore coilStore;
private final ImageLoader imageLoader;
private final Map<AsyncDrawable, RequestDisposable> cache = new HashMap<>(2);
CoilAsyncDrawableLoader(@NonNull CoilStore coilStore) {
CoilAsyncDrawableLoader(@NonNull CoilStore coilStore, @NonNull ImageLoader imageLoader) {
this.coilStore = coilStore;
this.imageLoader = imageLoader;
}
@Override
@ -125,7 +128,7 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
LoadRequest request = coilStore.load(drawable).newBuilder()
.target(target)
.build();
RequestDisposable disposable = Coil.loader().load(request);
RequestDisposable disposable = imageLoader.load(request);
cache.put(drawable, disposable);
}