From 9fbf66fcb229e435d0e8cc740dbcf7327471272d Mon Sep 17 00:00:00 2001 From: Colin White Date: Mon, 25 Nov 2024 14:32:24 -0800 Subject: [PATCH] Prepare version 3.0.4. --- CHANGELOG.md | 13 ++++++ README-ja.md | 4 +- README-ko.md | 4 +- README-ru.md | 4 +- README-sv.md | 4 +- README-tr.md | 4 +- README-zh.md | 4 +- README.md | 4 +- .../src/androidMain/baseline-prof.txt | 46 ++++++++++--------- coil-compose/README.md | 2 +- coil-core/src/androidMain/baseline-prof.txt | 9 +++- coil-gif/README.md | 2 +- coil-network-core/README.md | 6 +-- coil-svg/README.md | 2 +- coil-test/README.md | 2 +- coil-video/README.md | 2 +- docs/getting_started.md | 8 ++-- gradle.properties | 2 +- 18 files changed, 71 insertions(+), 51 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f78d92956c..9d64070f2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [3.0.4] - November 25, 2024 + +- Fix vector drawables not rendering in the Android Studio preview. +- Fix potential memory cache miss for requests whose size exceeds `maxBitmapSize`. +- Fix `FakeImage` not rendering on Android. +- Fix not launching a new image request when the request's `Transformation`s change when used with `AsyncImage`/`rememberAsyncImagePainter`/`SubcomposeAsyncImage`. +- Fix `ScaleDrawable` and `CrossfadeDrawable` not respecting tint states. +- Allow `ImageDecoder` to decode partial image sources. This matches the behavior in `BitmapFactory`. +- Fix `Bitmap.prepareToDraw()` not being called after decoding. +- `SvgDecoder` should not return `isSampled = true` for non-rasterized images. +- Fall back to `Dispatchers.Unconfined` in Compose if an immediate main dispatcher is unavailable. This is only used in preview/test environments. +- Update Ktor 2 to `2.3.13`. + ## [3.0.3] - November 14, 2024 - Fix setting `ImageRequest.scale` based on an `ImageView`'s `ScaleType`. diff --git a/README-ja.md b/README-ja.md index 4d61d952a9..a0c8739721 100644 --- a/README-ja.md +++ b/README-ja.md @@ -14,8 +14,8 @@ Coil は、**Co**routine **I**mage **L**oader の頭字語です。 Compose ライブラリと [ネットワーク ライブラリ](https://coil-kt.github.io/coil/network/) をインポートします: ```kotlin -implementation("io.coil-kt.coil3:coil-compose:3.0.3") -implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.3") +implementation("io.coil-kt.coil3:coil-compose:3.0.4") +implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.4") ``` 画像を読み込むには、`AsyncImage` を使用しますcomposable: diff --git a/README-ko.md b/README-ko.md index 0ad270a394..faf866eff0 100644 --- a/README-ko.md +++ b/README-ko.md @@ -14,8 +14,8 @@ Compose 라이브러리와 [네트워킹 라이브러리](https://coil-kt.github.io/coil/network/)를 불러오세요. : ```kotlin -implementation("io.coil-kt.coil3:coil-compose:3.0.3") -implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.3") +implementation("io.coil-kt.coil3:coil-compose:3.0.4") +implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.4") ``` 이미지를 로드하려면 `AsyncImage` Composable을 사용하세요. : diff --git a/README-ru.md b/README-ru.md index 742d630a98..97eb60f65c 100644 --- a/README-ru.md +++ b/README-ru.md @@ -14,8 +14,8 @@ Coil — это аббревиатура от: **Co**routine **I**mage **L**load Импортируйте библиотеку Compose и [сетевую библиотеку](https://coil-kt.github.io/coil/network/): ```kotlin -implementation("io.coil-kt.coil3:coil-compose:3.0.3") -implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.3") +implementation("io.coil-kt.coil3:coil-compose:3.0.4") +implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.4") ``` Чтобы загрузите изображение, используйте `AsyncImage` composable: diff --git a/README-sv.md b/README-sv.md index af4dc5c78d..fba1e65ba5 100644 --- a/README-sv.md +++ b/README-sv.md @@ -14,8 +14,8 @@ Spole är en akronym för: **Co**rutin **I**bild **L**loader. Importera Compose-biblioteket och ett [nätverksbibliotek](https://coil-kt.github.io/coil/network/): ```kotlin -implementering("io.coil-kt.coil3:coil-compose:3.0.3") -implementering("io.coil-kt.coil3:coil-network-okhttp:3.0.3") +implementation("io.coil-kt.coil3:coil-compose:3.0.4") +implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.4") ``` För att ladda en bild, använd "AsyncImage" komponerbar: diff --git a/README-tr.md b/README-tr.md index 158aa192c7..069cce3829 100644 --- a/README-tr.md +++ b/README-tr.md @@ -14,8 +14,8 @@ Coil, **Co**routine **I**mage **L**oader'ın kısaltmasıdır. Compose kütüphanesini ve bir [ağ kütüphanesini](https://coil-kt.github.io/coil/network/) içe aktarın: ```kotlin -implementation("io.coil-kt.coil3:coil-compose:3.0.3") -implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.3") +implementation("io.coil-kt.coil3:coil-compose:3.0.4") +implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.4") ``` Bir görüntüyü yüklemek için, `AsyncImage` bileşenini kullanın: diff --git a/README-zh.md b/README-zh.md index 127034463a..e747302c50 100644 --- a/README-zh.md +++ b/README-zh.md @@ -14,8 +14,8 @@ Coil 是 Co**routine **I**mage **L**oader 的缩写。 导入 Compose 库和 [网络库](https://coil-kt.github.io/coil/network/): ```kotlin -implementation("io.coil-kt.coil3:coil-compose:3.0.3") -implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.3") +implementation("io.coil-kt.coil3:coil-compose:3.0.4") +implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.4") ``` 要加载图像,请使用 `AsyncImage`可组合: diff --git a/README.md b/README.md index b41e72f1e0..58179884d4 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ Translations: [日本語](README-ja.md), [한국어](README-ko.md), [Русск Import the Compose library and a [networking library](https://coil-kt.github.io/coil/network/): ```kotlin -implementation("io.coil-kt.coil3:coil-compose:3.0.3") -implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.3") +implementation("io.coil-kt.coil3:coil-compose:3.0.4") +implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.4") ``` To load an image, use the `AsyncImage` composable: diff --git a/coil-compose-core/src/androidMain/baseline-prof.txt b/coil-compose-core/src/androidMain/baseline-prof.txt index 357706a1e8..e7c8e43121 100644 --- a/coil-compose-core/src/androidMain/baseline-prof.txt +++ b/coil-compose-core/src/androidMain/baseline-prof.txt @@ -33,6 +33,7 @@ HSPLcoil3/compose/AsyncImagePainter;->getAlpha()F HSPLcoil3/compose/AsyncImagePainter;->getColorFilter()Landroidx/compose/ui/graphics/ColorFilter; HSPLcoil3/compose/AsyncImagePainter;->getIntrinsicSize-NH-jbRc()J HSPLcoil3/compose/AsyncImagePainter;->getPainter()Landroidx/compose/ui/graphics/painter/Painter; +HSPLcoil3/compose/AsyncImagePainter;->getPreviewHandler$coil_compose_core_release()Lcoil3/compose/AsyncImagePreviewHandler; HSPLcoil3/compose/AsyncImagePainter;->getScope$coil_compose_core_release()Lkotlinx/coroutines/CoroutineScope; HSPLcoil3/compose/AsyncImagePainter;->get_input$coil_compose_core_release()Lkotlinx/coroutines/flow/MutableStateFlow; HSPLcoil3/compose/AsyncImagePainter;->onDraw(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V @@ -78,27 +79,27 @@ HSPLcoil3/compose/AsyncImagePainter$State$Success;->()V HSPLcoil3/compose/AsyncImagePainter$State$Success;->(Landroidx/compose/ui/graphics/painter/Painter;Lcoil3/request/SuccessResult;)V HSPLcoil3/compose/AsyncImagePainter$State$Success;->getPainter()Landroidx/compose/ui/graphics/painter/Painter; HSPLcoil3/compose/AsyncImagePainter$State$Success;->getResult()Lcoil3/request/SuccessResult; -Lcoil3/compose/AsyncImagePainter$onRemembered$1$2; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2;->(Lcoil3/compose/AsyncImagePainter;Lkotlin/coroutines/Continuation;)V -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2;->access$invokeSuspend$updateState(Lcoil3/compose/AsyncImagePainter;Lcoil3/compose/AsyncImagePainter$State;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2;->invokeSuspend$updateState(Lcoil3/compose/AsyncImagePainter;Lcoil3/compose/AsyncImagePainter$State;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; -Lcoil3/compose/AsyncImagePainter$onRemembered$1$2$2; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$2;->(Lcoil3/compose/AsyncImagePainter;Lkotlin/coroutines/Continuation;)V -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$2;->invoke(Lcoil3/compose/AsyncImagePainter$Input;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; -Lcoil3/compose/AsyncImagePainter$onRemembered$1$2$3; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$3;->(Lcoil3/compose/AsyncImagePainter;)V -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$3;->emit(Lcoil3/compose/AsyncImagePainter$State;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$3;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -Lcoil3/compose/AsyncImagePainter$onRemembered$1$2$invokeSuspend$$inlined$flatMapLatest$1; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$invokeSuspend$$inlined$flatMapLatest$1;->(Lkotlin/coroutines/Continuation;Lcoil3/compose/AsyncImagePainter;)V -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$invokeSuspend$$inlined$flatMapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$invokeSuspend$$inlined$flatMapLatest$1;->invoke(Lkotlinx/coroutines/flow/FlowCollector;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$2$invokeSuspend$$inlined$flatMapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; +Lcoil3/compose/AsyncImagePainter$onRemembered$1$1; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1;->(Lcoil3/compose/AsyncImagePainter;Lkotlin/coroutines/Continuation;)V +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1;->access$invokeSuspend$updateState(Lcoil3/compose/AsyncImagePainter;Lcoil3/compose/AsyncImagePainter$State;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1;->invokeSuspend$updateState(Lcoil3/compose/AsyncImagePainter;Lcoil3/compose/AsyncImagePainter$State;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; +Lcoil3/compose/AsyncImagePainter$onRemembered$1$1$2; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$2;->(Lcoil3/compose/AsyncImagePainter;Lkotlin/coroutines/Continuation;)V +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$2;->invoke(Lcoil3/compose/AsyncImagePainter$Input;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; +Lcoil3/compose/AsyncImagePainter$onRemembered$1$1$3; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$3;->(Lcoil3/compose/AsyncImagePainter;)V +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$3;->emit(Lcoil3/compose/AsyncImagePainter$State;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$3;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +Lcoil3/compose/AsyncImagePainter$onRemembered$1$1$invokeSuspend$$inlined$flatMapLatest$1; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$invokeSuspend$$inlined$flatMapLatest$1;->(Lkotlin/coroutines/Continuation;Lcoil3/compose/AsyncImagePainter;)V +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$invokeSuspend$$inlined$flatMapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$invokeSuspend$$inlined$flatMapLatest$1;->invoke(Lkotlinx/coroutines/flow/FlowCollector;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +HSPLcoil3/compose/AsyncImagePainter$onRemembered$1$1$invokeSuspend$$inlined$flatMapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; Lcoil3/compose/AsyncImagePainter$updateRequest$$inlined$target$default$1; HSPLcoil3/compose/AsyncImagePainter$updateRequest$$inlined$target$default$1;->(Lcoil3/request/ImageRequest;Lcoil3/compose/AsyncImagePainter;)V HSPLcoil3/compose/AsyncImagePainter$updateRequest$$inlined$target$default$1;->onStart(Lcoil3/Image;)V @@ -207,11 +208,12 @@ HSPLcoil3/compose/internal/UtilsKt;->$r8$lambda$prVs3UqyA7j9isF0ZE9zr6jrCrs(Lkot HSPLcoil3/compose/internal/UtilsKt;->()V HSPLcoil3/compose/internal/UtilsKt;->AsyncImageState(Ljava/lang/Object;Lcoil3/ImageLoader;Landroidx/compose/runtime/Composer;I)Lcoil3/compose/internal/AsyncImageState; HSPLcoil3/compose/internal/UtilsKt;->contentDescription(Landroidx/compose/ui/Modifier;Ljava/lang/String;)Landroidx/compose/ui/Modifier; -HSPLcoil3/compose/internal/UtilsKt;->getSafeImmediateMainDispatcher()Lkotlin/coroutines/CoroutineContext; HSPLcoil3/compose/internal/UtilsKt;->onStateOf$lambda$4(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lcoil3/compose/AsyncImagePainter$State;)Lkotlin/Unit; HSPLcoil3/compose/internal/UtilsKt;->onStateOf(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lkotlin/jvm/functions/Function1; +HSPLcoil3/compose/internal/UtilsKt;->rememberImmediateCoroutineScope(Landroidx/compose/runtime/Composer;I)Lkotlinx/coroutines/CoroutineScope; HSPLcoil3/compose/internal/UtilsKt;->requestOf(Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)Lcoil3/request/ImageRequest; HSPLcoil3/compose/internal/UtilsKt;->requestOfWithSizeResolver(Ljava/lang/Object;Landroidx/compose/ui/layout/ContentScale;Landroidx/compose/runtime/Composer;I)Lcoil3/request/ImageRequest; +HSPLcoil3/compose/internal/UtilsKt;->resolveImmediateDispatcher(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/CoroutineDispatcher; HSPLcoil3/compose/internal/UtilsKt;->toDimension(I)Lcoil3/size/Dimension; HSPLcoil3/compose/internal/UtilsKt;->toIntSize-uvyYCjk(J)J HSPLcoil3/compose/internal/UtilsKt;->toScale(Landroidx/compose/ui/layout/ContentScale;)Lcoil3/size/Scale; diff --git a/coil-compose/README.md b/coil-compose/README.md index f1649af596..2ac6864127 100644 --- a/coil-compose/README.md +++ b/coil-compose/README.md @@ -3,7 +3,7 @@ To add support for [Compose UI](https://www.jetbrains.com/compose-multiplatform/), import the extension library: ```kotlin -implementation("io.coil-kt.coil3:coil-compose:3.0.3") +implementation("io.coil-kt.coil3:coil-compose:3.0.4") ``` Then use the `AsyncImage` composable to load and display an image: diff --git a/coil-core/src/androidMain/baseline-prof.txt b/coil-core/src/androidMain/baseline-prof.txt index c0abf56ccf..fd790f56df 100644 --- a/coil-core/src/androidMain/baseline-prof.txt +++ b/coil-core/src/androidMain/baseline-prof.txt @@ -264,6 +264,8 @@ HSPLcoil3/decode/StaticImageDecoder;->access$configureImageDecoderProperties(Lco HSPLcoil3/decode/StaticImageDecoder;->access$getOptions$p(Lcoil3/decode/StaticImageDecoder;)Lcoil3/request/Options; HSPLcoil3/decode/StaticImageDecoder;->configureImageDecoderProperties(Landroid/graphics/ImageDecoder;)V HSPLcoil3/decode/StaticImageDecoder;->decode(Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +Lcoil3/decode/StaticImageDecoder$$ExternalSyntheticLambda7; +HSPLcoil3/decode/StaticImageDecoder$$ExternalSyntheticLambda7;->()V Lcoil3/decode/StaticImageDecoder$Factory; HSPLcoil3/decode/StaticImageDecoder$Factory;->(Lkotlinx/coroutines/sync/Semaphore;)V HSPLcoil3/decode/StaticImageDecoder$Factory;->create(Lcoil3/fetch/SourceFetchResult;Lcoil3/request/Options;Lcoil3/ImageLoader;)Lcoil3/decode/Decoder; @@ -508,7 +510,7 @@ Lcoil3/memory/MemoryCacheService$Companion; HSPLcoil3/memory/MemoryCacheService$Companion;->()V HSPLcoil3/memory/MemoryCacheService$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V Lcoil3/memory/MemoryCacheServiceKt; -HSPLcoil3/memory/MemoryCacheServiceKt;->createComplexMemoryCacheKeyExtras(Lcoil3/request/ImageRequest;Lcoil3/request/Options;)Ljava/util/Map; +HSPLcoil3/memory/MemoryCacheServiceKt;->needsSizeInCacheKey(Lcoil3/request/ImageRequest;)Z Lcoil3/memory/RealMemoryCache; HSPLcoil3/memory/RealMemoryCache;->(Lcoil3/memory/StrongMemoryCache;Lcoil3/memory/WeakMemoryCache;)V HSPLcoil3/memory/RealMemoryCache;->get(Lcoil3/memory/MemoryCache$Key;)Lcoil3/memory/MemoryCache$Value; @@ -716,6 +718,7 @@ HSPLcoil3/size/ScaleDrawable$$ExternalSyntheticApiModelOutline0;->m(Landroid/gra HSPLcoil3/size/ScaleDrawable$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/Bitmap; HSPLcoil3/size/ScaleDrawable$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/ImageDecoder;I)V HSPLcoil3/size/ScaleDrawable$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/ImageDecoder;II)V +HSPLcoil3/size/ScaleDrawable$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$OnPartialImageListener;)V HSPLcoil3/size/ScaleDrawable$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/ImageDecoder;Z)V HSPLcoil3/size/ScaleDrawable$$ExternalSyntheticApiModelOutline0;->m(Landroid/net/ConnectivityManager;)Landroid/net/Network; HSPLcoil3/size/ScaleDrawable$$ExternalSyntheticApiModelOutline0;->m(Ljava/io/File;)Landroid/graphics/ImageDecoder$Source; @@ -740,6 +743,7 @@ HSPLcoil3/size/SizeResolver$Companion;->()V HSPLcoil3/size/SizeResolver$Companion;->()V Lcoil3/size/SizeResolverKt; HSPLcoil3/size/SizeResolverKt;->SizeResolver(Lcoil3/size/Size;)Lcoil3/size/SizeResolver; +Lcoil3/size/ViewSizeResolver; Lcoil3/target/Target; Lcoil3/target/ViewTarget; Lcoil3/transition/CrossfadeTransition; @@ -847,4 +851,5 @@ HSPLcoil3/util/UtilsKt$EMPTY_IMAGE_FACTORY$1;->invoke(Ljava/lang/Object;)Ljava/l Lcoil3/util/Utils_androidKt; HSPLcoil3/util/Utils_androidKt;->()V HSPLcoil3/util/Utils_androidKt;->getDEFAULT_BITMAP_CONFIG()Landroid/graphics/Bitmap$Config; -HSPLcoil3/util/Utils_androidKt;->getNULL_COLOR_SPACE()Landroid/graphics/ColorSpace; \ No newline at end of file +HSPLcoil3/util/Utils_androidKt;->getNULL_COLOR_SPACE()Landroid/graphics/ColorSpace; +HSPLcoil3/util/Utils_androidKt;->prepareToDraw(Lcoil3/Image;)V \ No newline at end of file diff --git a/coil-gif/README.md b/coil-gif/README.md index 22f83dc513..1a8a25c38a 100644 --- a/coil-gif/README.md +++ b/coil-gif/README.md @@ -7,7 +7,7 @@ Unlike Glide, GIFs are not supported by default. However, Coil has an extension To add GIF support, import the extension library: ```kotlin -implementation("io.coil-kt.coil3:coil-gif:3.0.3") +implementation("io.coil-kt.coil3:coil-gif:3.0.4") ``` And that's it! The `ImageLoader` will automatically detect any GIFs using their file headers and decode them correctly. diff --git a/coil-network-core/README.md b/coil-network-core/README.md index 459c7fbf36..8e8fe6d2be 100644 --- a/coil-network-core/README.md +++ b/coil-network-core/README.md @@ -5,9 +5,9 @@ By default, Coil 3.x does not include support for loading images from the networ To add support for fetching images from the network import **only one of the following**: ```kotlin -implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.3") // Only available on Android/JVM. -implementation("io.coil-kt.coil3:coil-network-ktor2:3.0.3") -implementation("io.coil-kt.coil3:coil-network-ktor3:3.0.3") +implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.4") // Only available on Android/JVM. +implementation("io.coil-kt.coil3:coil-network-ktor2:3.0.4") +implementation("io.coil-kt.coil3:coil-network-ktor3:3.0.4") ``` If you use OkHttp, that's it. Once imported, network URLs like `https://example.com/image.jpg` will automatically be supported. If you use Ktor, you need to add supported engines for each platform (see below). diff --git a/coil-svg/README.md b/coil-svg/README.md index 13b965abd8..26e81bca36 100644 --- a/coil-svg/README.md +++ b/coil-svg/README.md @@ -3,7 +3,7 @@ To add SVG support, import the extension library: ```kotlin -implementation("io.coil-kt.coil3:coil-svg:3.0.3") +implementation("io.coil-kt.coil3:coil-svg:3.0.4") ``` And that's it! The `ImageLoader` will automatically detect and decode any SVGs. Coil detects SVGs by looking for the `