All Versions
45
Latest Version
Avg Release Cycle
23 days
Latest Release
246 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v2.2.2 Changes
October 01, 2022- Ensure an image loader is fully initialized before registering its system callbacks. #1465
- Set the preferred bitmap config in
VideoFrameDecoder
on API 30+ to avoid banding. #1487 - ๐ Fix parsing paths containing
#
inFileUriMapper
. #1466 - ๐ Fix reading responses with non-ascii headers from the disk cache. #1468
- ๐ Fix decoding videos inside asset subfolders. #1489
- โก๏ธ Update
androidx.annotation
to 1.5.0.
-
v2.2.1 Changes
September 08, 2022- ๐ Fix:
RoundedCornersTransformation
now properly scales theinput
bitmap. - โ Remove dependency on the
kotlin-parcelize
plugin. - โก๏ธ Update compile SDK to 33.
- โฌ๏ธ Downgrade
androidx.appcompat:appcompat-resources
to 1.4.2 to work around #1423.
- ๐ Fix:
-
v2.2.0 Changes
August 16, 2022- ๐ New: Add
ImageRequest.videoFramePercent
tocoil-video
to support specifying the video frame as a percent of the video's duration. - ๐ New: Add
ExifOrientationPolicy
to configure howBitmapFactoryDecoder
treats EXIF orientation data. - ๐ Fix: Don't throw an exception in
RoundedCornersTransformation
if passed a size with an undefined dimension. - ๐ Fix: Read a GIF's frame delay as two unsigned bytes instead of one signed byte.
- โก๏ธ Update Kotlin to 1.7.10.
- โก๏ธ Update Coroutines to 1.6.4.
- โก๏ธ Update Compose to 1.2.1.
- โก๏ธ Update OkHttp to 4.10.0.
- โก๏ธ Update Okio to 3.2.0.
- โก๏ธ Update
accompanist-drawablepainter
to 0.25.1. - โก๏ธ Update
androidx.annotation
to 1.4.0. - โก๏ธ Update
androidx.appcompat:appcompat-resources
to 1.5.0. - โก๏ธ Update
androidx.core
to 1.8.0.
- ๐ New: Add
-
v2.1.0 Changes
May 17, 2022 -
v2.0.0 Changes
May 10, 2022โฌ๏ธ Coil 2.0.0 is a major iteration of the library and includes breaking changes. Check out the upgrade guide for how to upgrade.
- ๐ New: Introduce
AsyncImage
incoil-compose
. Check out the documentation for more info.
// Display an image from the network. AsyncImage( model = "https://example.com/image.jpg", contentDescription = null ) // Display an image from the network with a placeholder, circle crop, and crossfade animation. AsyncImage( model = ImageRequest.Builder(LocalContext.current) .data("https://example.com/image.jpg") .crossfade(true) .build(), placeholder = painterResource(R.drawable.placeholder), contentDescription = stringResource(R.string.description), contentScale = ContentScale.Crop, modifier = Modifier.clip(CircleShape) )
- ๐ New: Introduce a public
DiskCache
API.- Use
ImageLoader.Builder.diskCache
andDiskCache.Builder
to configure the disk cache. - You should not use OkHttp's
Cache
with Coil 2.0. See here for more info. Cache-Control
and other cache headers are still supported - exceptVary
headers, as the cache only checks that the URLs match. Additionally, only responses with a response code in the range [200..300) are cached.- Existing disk caches will be cleared when upgrading to 2.0.
- Use
- ๐ The minimum supported API is now 21.
- 0๏ธโฃ
ImageRequest
's defaultScale
is nowScale.FIT
.- This was changed to make
ImageRequest.scale
consistent with other classes that have a defaultScale
. - Requests with an
ImageViewTarget
still have theirScale
auto-detected.
- This was changed to make
- Rework the image pipeline classes:
Mapper
,Fetcher
, andDecoder
have been refactored to be more flexible.Fetcher.key
has been replaced with a newKeyer
interface.Keyer
creates the cache key from the input data.- Add
ImageSource
, which allowsDecoder
s to readFile
s directly using Okio's file system API.
- Rework the Jetpack Compose integration:
rememberImagePainter
andImagePainter
have been renamed torememberAsyncImagePainter
andAsyncImagePainter
respectively.- Deprecate
LocalImageLoader
. Check out the deprecation message for more info.
- Disable generating runtime not-null assertions.
- If you use Java, passing null as a not-null annotated argument to a function will no longer throw a
NullPointerException
immediately. Kotlin's compile-time null safety guards against this happening. - This change allows the library's size to be smaller.
- If you use Java, passing null as a not-null annotated argument to a function will no longer throw a
- ๐จ
Size
is now composed of twoDimension
values for its width and height.Dimension
can either be a positive pixel value orDimension.Undefined
. See here for more info. - ๐
BitmapPool
andPoolableViewTarget
have been removed from the library. - ๐
VideoFrameFileFetcher
andVideoFrameUriFetcher
have been removed from the library. UseVideoFrameDecoder
instead, which supports all data sources. - ๐
BlurTransformation
andGrayscaleTransformation
are removed from the library. If you use them, you can copy their code into your project. - ๐ Change
Transition.transition
to be a non-suspending function as it's no longer needed to suspend the transition until it completes. - โ Add support for
bitmapFactoryMaxParallelism
, which restricts the maximum number of in-progressBitmapFactory
operations. This value is 4 by default, which improves UI performance. - โ Add support for
interceptorDispatcher
,fetcherDispatcher
,decoderDispatcher
, andtransformationDispatcher
. - โ Add
GenericViewTarget
, which handles commonViewTarget
logic. - โ Add
ByteBuffer
to the default supported data types. - ๐จ
Disposable
has been refactored and exposes the underlyingImageRequest
's job. - Rework the
MemoryCache
API. ImageRequest.error
is now set on theTarget
ifImageRequest.fallback
is null.Transformation.key
is replaced withTransformation.cacheKey
.- โก๏ธ Update Kotlin to 1.6.10.
- โก๏ธ Update Compose to 1.1.1.
- โก๏ธ Update OkHttp to 4.9.3.
- โก๏ธ Update Okio to 3.0.0.
๐ Changes from
2.0.0-rc03
:- Convert
Dimension.Original
to beDimension.Undefined
.- This changes the semantics of the non-pixel dimension slightly to fix some edge cases (example) in the size system.
- Load images with
Size.ORIGINAL
if ContentScale is None. - ๐ Fix applying
ImageView.load
builder argument first instead of last. - ๐ Fix not combining HTTP headers if response is not modified.
- ๐ New: Introduce
-
v2.0.0-rc03 Changes
April 11, 2022- โ Remove the
ScaleResolver
interface. - Convert
Size
constructors to functions. - ๐ Change
Dimension.Pixels
'stoString
to only be its pixel value. - Guard against a rare crash in
SystemCallbacks.onTrimMemory
. - โก๏ธ Update Coroutines to 1.6.1.
- โ Remove the
-
v2.0.0-rc02 Changes
March 20, 2022- โช Revert
ImageRequest
's default size to be the size of the current display instead ofSize.ORIGINAL
. - ๐ Fix
DiskCache.Builder
being marked as experimental. OnlyDiskCache
's methods are experimental. - ๐ Fix case where loading an image into an
ImageView
with one dimension asWRAP_CONTENT
would load the image at its original size instead of fitting it into the bounded dimension. - โ Remove component functions from
MemoryCache.Key
,MemoryCache.Value
, andParameters.Entry
.
- โช Revert
-
v2.0.0-rc01 Changes
March 02, 2022Significant changes since
1.4.0
:- ๐ The minimum supported API is now 21.
- Rework the Jetpack Compose integration.
rememberImagePainter
has been renamed torememberAsyncImagePainter
.- Add support for
AsyncImage
andSubcomposeAsyncImage
. Check out the documentation for more info. - Deprecate
LocalImageLoader
. Check out the deprecation message for more info.
- Coil 2.0 has its own disk cache implementation and no longer relies on OkHttp for disk caching.
- Use
ImageLoader.Builder.diskCache
andDiskCache.Builder
to configure the disk cache. - You should not use OkHttp's
Cache
with Coil 2.0 as the cache can be corrupted if a thread is interrupted while writing to it. Cache-Control
and other cache headers are still supported - exceptVary
headers, as the cache only checks that the URLs match. Additionally, only responses with a response code in the range [200..300) are cached.- Existing disk caches will be cleared when upgrading to 2.0.
- Use
- 0๏ธโฃ
ImageRequest
's defaultScale
is nowScale.FIT
.- This was changed to make
ImageRequest.scale
consistent with other classes that have a defaultScale
. - Requests with an
ImageViewTarget
still have theirScale
auto-detected.
- This was changed to make
- 0๏ธโฃ
ImageRequest
's default size is nowSize.ORIGINAL
. - Rework the image pipeline classes:
Mapper
,Fetcher
, andDecoder
have been refactored to be more flexible.Fetcher.key
has been replaced with a newKeyer
interface.Keyer
creates the cache key from the input data.- Adds
ImageSource
, which allowsDecoder
s to readFile
s directly using Okio's file system API.
- Disable generating runtime not-null assertions.
- If you use Java, passing null as a not-null annotated parameter to a function will no longer throw a
NullPointerException
immediately. Kotlin's compile-time null safety guards against this happening. - This change allows the library's size to be smaller.
- If you use Java, passing null as a not-null annotated parameter to a function will no longer throw a
Size
is now composed of twoDimension
values for its width and height.Dimension
can either be a positive pixel value orDimension.Original
.- ๐
BitmapPool
andPoolableViewTarget
have been removed from the library. - ๐
VideoFrameFileFetcher
andVideoFrameUriFetcher
are removed from the library. UseVideoFrameDecoder
instead, which supports all data sources. - ๐
BlurTransformation
andGrayscaleTransformation
are removed from the library. If you use them, you can copy their code into your project. - ๐ Change
Transition.transition
to be a non-suspending function as it's no longer needed to suspend the transition until it completes. - โ Add support for
bitmapFactoryMaxParallelism
, which restricts the maximum number of in-progressBitmapFactory
operations. This value is 4 by default, which improves UI performance. - โ Add support for
interceptorDispatcher
,fetcherDispatcher
,decoderDispatcher
, andtransformationDispatcher
. - โ Add
GenericViewTarget
, which handles commonViewTarget
logic. - โ Add
ByteBuffer
to the default supported data types. - ๐จ
Disposable
has been refactored and exposes the underlyingImageRequest
's job. - Rework the
MemoryCache
API. ImageRequest.error
is now set on theTarget
ifImageRequest.fallback
is null.Transformation.key
is replaced withTransformation.cacheKey
.- โก๏ธ Update Kotlin to 1.6.10.
- โก๏ธ Update Compose to 1.1.1.
- โก๏ธ Update OkHttp to 4.9.3.
- โก๏ธ Update Okio to 3.0.0.
๐ Changes since
2.0.0-alpha09
:- โ Remove the
-Xjvm-default=all
compiler flag. - ๐ Fix failing to load image if multiple requests with must-revalidate/e-tag are executed concurrently.
- ๐ Fix
DecodeUtils.isSvg
returning false if there is a new line character after the<svg
tag. - ๐ Make
LocalImageLoader.provides
deprecation message clearer. - โก๏ธ Update Compose to 1.1.1.
- โก๏ธ Update
accompanist-drawablepainter
to 0.23.1.
-
v2.0.0-alpha09 Changes
February 16, 2022- ๐ Fix
AsyncImage
creating invalid constraints. (#1134) - โ Add
ContentScale
argument toAsyncImagePainter
. (#1144)- This should be set to the same value that's set on
Image
to ensure that the image is loaded at the correct size.
- This should be set to the same value that's set on
- โ Add
ScaleResolver
to support lazily resolving theScale
for anImageRequest
. (#1134)ImageRequest.scale
should be replaced byImageRequest.scaleResolver.scale()
.
- โก๏ธ Update Compose to 1.1.0.
- โก๏ธ Update
accompanist-drawablepainter
to 0.23.0. - โก๏ธ Update
androidx.lifecycle
to 2.4.1.
- ๐ Fix
-
v2.0.0-alpha08 Changes
February 07, 2022- โก๏ธ Update
DiskCache
andImageSource
to use to Okio'sFileSystem
API. (#1115)
- โก๏ธ Update