Merge branch 'master' of https://github.com/noties/Markwon
This commit is contained in:
		
						commit
						d41137f6cf
					
				| @ -2,8 +2,8 @@ package io.noties.markwon.app.samples.image | |||||||
| 
 | 
 | ||||||
| import androidx.recyclerview.widget.LinearLayoutManager | import androidx.recyclerview.widget.LinearLayoutManager | ||||||
| import coil.Coil | import coil.Coil | ||||||
| import coil.request.LoadRequest | import coil.request.Disposable | ||||||
| import coil.request.RequestDisposable | import coil.request.ImageRequest | ||||||
| import coil.transform.RoundedCornersTransformation | import coil.transform.RoundedCornersTransformation | ||||||
| import io.noties.markwon.Markwon | import io.noties.markwon.Markwon | ||||||
| import io.noties.markwon.app.R | import io.noties.markwon.app.R | ||||||
| @ -51,8 +51,8 @@ class CoilRecyclerViewSample : MarkwonRecyclerViewSample() { | |||||||
|     val markwon = Markwon.builder(context) |     val markwon = Markwon.builder(context) | ||||||
|       .usePlugin(CoilImagesPlugin.create( |       .usePlugin(CoilImagesPlugin.create( | ||||||
|         object : CoilImagesPlugin.CoilStore { |         object : CoilImagesPlugin.CoilStore { | ||||||
|           override fun load(drawable: AsyncDrawable): LoadRequest { |           override fun load(drawable: AsyncDrawable): ImageRequest { | ||||||
|             return LoadRequest.Builder(context) |             return ImageRequest.Builder(context) | ||||||
|               .transformations( |               .transformations( | ||||||
|                 RoundedCornersTransformation(14F) |                 RoundedCornersTransformation(14F) | ||||||
|               ) |               ) | ||||||
| @ -61,7 +61,7 @@ class CoilRecyclerViewSample : MarkwonRecyclerViewSample() { | |||||||
|               .build() |               .build() | ||||||
|           } |           } | ||||||
| 
 | 
 | ||||||
|           override fun cancel(disposable: RequestDisposable) { |           override fun cancel(disposable: Disposable) { | ||||||
|             disposable.dispose() |             disposable.dispose() | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|  | |||||||
| @ -58,7 +58,7 @@ ext { | |||||||
| 
 | 
 | ||||||
|     final def commonMarkVersion = '0.13.0' |     final def commonMarkVersion = '0.13.0' | ||||||
|     final def daggerVersion = '2.10' |     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 |     // 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). |     // api level mismatch that Markwon supports (16) and later versions of AndroidGifDrawable (17). | ||||||
|  | |||||||
| @ -16,8 +16,8 @@ import java.util.concurrent.atomic.AtomicBoolean; | |||||||
| 
 | 
 | ||||||
| import coil.Coil; | import coil.Coil; | ||||||
| import coil.ImageLoader; | import coil.ImageLoader; | ||||||
| import coil.request.LoadRequest; | import coil.request.ImageRequest; | ||||||
| import coil.request.RequestDisposable; | import coil.request.Disposable; | ||||||
| import coil.target.Target; | import coil.target.Target; | ||||||
| import io.noties.markwon.AbstractMarkwonPlugin; | import io.noties.markwon.AbstractMarkwonPlugin; | ||||||
| import io.noties.markwon.MarkwonConfiguration; | import io.noties.markwon.MarkwonConfiguration; | ||||||
| @ -37,9 +37,9 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin { | |||||||
|     public interface CoilStore { |     public interface CoilStore { | ||||||
| 
 | 
 | ||||||
|         @NonNull |         @NonNull | ||||||
|         LoadRequest load(@NonNull AsyncDrawable drawable); |         ImageRequest load(@NonNull AsyncDrawable drawable); | ||||||
| 
 | 
 | ||||||
|         void cancel(@NonNull RequestDisposable disposable); |         void cancel(@NonNull Disposable disposable); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @NonNull |     @NonNull | ||||||
| @ -47,14 +47,14 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin { | |||||||
|         return create(new CoilStore() { |         return create(new CoilStore() { | ||||||
|             @NonNull |             @NonNull | ||||||
|             @Override |             @Override | ||||||
|             public LoadRequest load(@NonNull AsyncDrawable drawable) { |             public ImageRequest load(@NonNull AsyncDrawable drawable) { | ||||||
|                 return LoadRequest.builder(context) |                 return new ImageRequest.Builder(context) | ||||||
|                         .data(drawable.getDestination()) |                         .data(drawable.getDestination()) | ||||||
|                         .build(); |                         .build(); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             @Override |             @Override | ||||||
|             public void cancel(@NonNull RequestDisposable disposable) { |             public void cancel(@NonNull Disposable disposable) { | ||||||
|                 disposable.dispose(); |                 disposable.dispose(); | ||||||
|             } |             } | ||||||
|         }, Coil.imageLoader(context)); |         }, Coil.imageLoader(context)); | ||||||
| @ -66,14 +66,14 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin { | |||||||
|         return create(new CoilStore() { |         return create(new CoilStore() { | ||||||
|             @NonNull |             @NonNull | ||||||
|             @Override |             @Override | ||||||
|             public LoadRequest load(@NonNull AsyncDrawable drawable) { |             public ImageRequest load(@NonNull AsyncDrawable drawable) { | ||||||
|                 return LoadRequest.builder(context) |                 return new ImageRequest.Builder(context) | ||||||
|                         .data(drawable.getDestination()) |                         .data(drawable.getDestination()) | ||||||
|                         .build(); |                         .build(); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             @Override |             @Override | ||||||
|             public void cancel(@NonNull RequestDisposable disposable) { |             public void cancel(@NonNull Disposable disposable) { | ||||||
|                 disposable.dispose(); |                 disposable.dispose(); | ||||||
|             } |             } | ||||||
|         }, imageLoader); |         }, imageLoader); | ||||||
| @ -116,7 +116,7 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin { | |||||||
| 
 | 
 | ||||||
|         private final CoilStore coilStore; |         private final CoilStore coilStore; | ||||||
|         private final ImageLoader imageLoader; |         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) { |         CoilAsyncDrawableLoader(@NonNull CoilStore coilStore, @NonNull ImageLoader imageLoader) { | ||||||
|             this.coilStore = coilStore; |             this.coilStore = coilStore; | ||||||
| @ -127,13 +127,13 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin { | |||||||
|         public void load(@NonNull AsyncDrawable drawable) { |         public void load(@NonNull AsyncDrawable drawable) { | ||||||
|             final AtomicBoolean loaded = new AtomicBoolean(false); |             final AtomicBoolean loaded = new AtomicBoolean(false); | ||||||
|             final Target target = new AsyncDrawableTarget(drawable, loaded); |             final Target target = new AsyncDrawableTarget(drawable, loaded); | ||||||
|             final LoadRequest request = coilStore.load(drawable).newBuilder() |             final ImageRequest request = coilStore.load(drawable).newBuilder() | ||||||
|                     .target(target) |                     .target(target) | ||||||
|                     .build(); |                     .build(); | ||||||
|             // @since 4.5.1 execute can return result _before_ disposable is created, |             // @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 |             //  thus `execute` would finish before we put disposable in cache (and thus result is | ||||||
|             //  not delivered) |             //  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 flag was not set, then job is running (else - finished before we got here) | ||||||
|             if (!loaded.get()) { |             if (!loaded.get()) { | ||||||
|                 // mark flag |                 // mark flag | ||||||
| @ -144,7 +144,7 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin { | |||||||
| 
 | 
 | ||||||
|         @Override |         @Override | ||||||
|         public void cancel(@NonNull AsyncDrawable drawable) { |         public void cancel(@NonNull AsyncDrawable drawable) { | ||||||
|             final RequestDisposable disposable = cache.remove(drawable); |             final Disposable disposable = cache.remove(drawable); | ||||||
|             if (disposable != null) { |             if (disposable != null) { | ||||||
|                 coilStore.cancel(disposable); |                 coilStore.cancel(disposable); | ||||||
|             } |             } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dimitry Ivanov
						Dimitry Ivanov