Merge pull request #284 from magnusvs/upgrade-coil-0.12.0

Update Coil to 0.12.0 and fix breaking changes
This commit is contained in:
Dimitry 2020-08-26 12:49:15 +03:00 committed by GitHub
commit fa286287c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 20 deletions

View File

@ -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
@ -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)
)
@ -61,7 +61,7 @@ class CoilRecyclerViewSample : MarkwonRecyclerViewSample() {
.build()
}
override fun cancel(disposable: RequestDisposable) {
override fun cancel(disposable: Disposable) {
disposable.dispose()
}
},

View File

@ -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).

View File

@ -16,8 +16,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
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;
@ -37,9 +37,9 @@ 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
@ -47,14 +47,14 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
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));
@ -66,14 +66,14 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
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);
@ -116,7 +116,7 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
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;
@ -127,13 +127,13 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
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
@ -144,7 +144,7 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
@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);
}