Skip to content

Commit

Permalink
Merge pull request noties#284 from magnusvs/upgrade-coil-0.12.0
Browse files Browse the repository at this point in the history
Update Coil to 0.12.0 and fix breaking changes
  • Loading branch information
noties committed Aug 26, 2020
2 parents 65309e6 + 12be227 commit fa28628
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package io.noties.markwon.app.samples.image

import androidx.recyclerview.widget.LinearLayoutManager
import coil.Coil
import coil.request.LoadRequest
import coil.request.RequestDisposable
import coil.request.Disposable
import coil.request.ImageRequest
import coil.transform.RoundedCornersTransformation
import io.noties.markwon.Markwon
import io.noties.markwon.app.R
Expand Down Expand Up @@ -51,8 +51,8 @@ class CoilRecyclerViewSample : MarkwonRecyclerViewSample() {
val markwon = Markwon.builder(context)
.usePlugin(CoilImagesPlugin.create(
object : CoilImagesPlugin.CoilStore {
override fun load(drawable: AsyncDrawable): LoadRequest {
return LoadRequest.Builder(context)
override fun load(drawable: AsyncDrawable): ImageRequest {
return ImageRequest.Builder(context)
.transformations(
RoundedCornersTransformation(14F)
)
Expand All @@ -61,7 +61,7 @@ class CoilRecyclerViewSample : MarkwonRecyclerViewSample() {
.build()
}

override fun cancel(disposable: RequestDisposable) {
override fun cancel(disposable: Disposable) {
disposable.dispose()
}
},
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ ext {

final def commonMarkVersion = '0.13.0'
final def daggerVersion = '2.10'
final def coilVersion = '0.10.1'
final def coilVersion = '0.12.0'

// please note that `pl.droidsonroids.gif:android-gif-drawable:1.2.15` is used due to the minimum
// api level mismatch that Markwon supports (16) and later versions of AndroidGifDrawable (17).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

import coil.Coil;
import coil.ImageLoader;
import coil.request.LoadRequest;
import coil.request.RequestDisposable;
import coil.request.ImageRequest;
import coil.request.Disposable;
import coil.target.Target;
import io.noties.markwon.AbstractMarkwonPlugin;
import io.noties.markwon.MarkwonConfiguration;
Expand All @@ -37,24 +37,24 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
public interface CoilStore {

@NonNull
LoadRequest load(@NonNull AsyncDrawable drawable);
ImageRequest load(@NonNull AsyncDrawable drawable);

void cancel(@NonNull RequestDisposable disposable);
void cancel(@NonNull Disposable disposable);
}

@NonNull
public static CoilImagesPlugin create(@NonNull final Context context) {
return create(new CoilStore() {
@NonNull
@Override
public LoadRequest load(@NonNull AsyncDrawable drawable) {
return LoadRequest.builder(context)
public ImageRequest load(@NonNull AsyncDrawable drawable) {
return new ImageRequest.Builder(context)
.data(drawable.getDestination())
.build();
}

@Override
public void cancel(@NonNull RequestDisposable disposable) {
public void cancel(@NonNull Disposable disposable) {
disposable.dispose();
}
}, Coil.imageLoader(context));
Expand All @@ -66,14 +66,14 @@ public static CoilImagesPlugin create(@NonNull final Context context,
return create(new CoilStore() {
@NonNull
@Override
public LoadRequest load(@NonNull AsyncDrawable drawable) {
return LoadRequest.builder(context)
public ImageRequest load(@NonNull AsyncDrawable drawable) {
return new ImageRequest.Builder(context)
.data(drawable.getDestination())
.build();
}

@Override
public void cancel(@NonNull RequestDisposable disposable) {
public void cancel(@NonNull Disposable disposable) {
disposable.dispose();
}
}, imageLoader);
Expand Down Expand Up @@ -116,7 +116,7 @@ private static class CoilAsyncDrawableLoader extends AsyncDrawableLoader {

private final CoilStore coilStore;
private final ImageLoader imageLoader;
private final Map<AsyncDrawable, RequestDisposable> cache = new HashMap<>(2);
private final Map<AsyncDrawable, Disposable> cache = new HashMap<>(2);

CoilAsyncDrawableLoader(@NonNull CoilStore coilStore, @NonNull ImageLoader imageLoader) {
this.coilStore = coilStore;
Expand All @@ -127,13 +127,13 @@ private static class CoilAsyncDrawableLoader extends AsyncDrawableLoader {
public void load(@NonNull AsyncDrawable drawable) {
final AtomicBoolean loaded = new AtomicBoolean(false);
final Target target = new AsyncDrawableTarget(drawable, loaded);
final LoadRequest request = coilStore.load(drawable).newBuilder()
final ImageRequest request = coilStore.load(drawable).newBuilder()
.target(target)
.build();
// @since 4.5.1 execute can return result _before_ disposable is created,
// thus `execute` would finish before we put disposable in cache (and thus result is
// not delivered)
final RequestDisposable disposable = imageLoader.execute(request);
final Disposable disposable = imageLoader.enqueue(request);
// if flag was not set, then job is running (else - finished before we got here)
if (!loaded.get()) {
// mark flag
Expand All @@ -144,7 +144,7 @@ public void load(@NonNull AsyncDrawable drawable) {

@Override
public void cancel(@NonNull AsyncDrawable drawable) {
final RequestDisposable disposable = cache.remove(drawable);
final Disposable disposable = cache.remove(drawable);
if (disposable != null) {
coilStore.cancel(disposable);
}
Expand Down

0 comments on commit fa28628

Please sign in to comment.