All Versions
45
Latest Version
Avg Release Cycle
23 days
Latest Release
246 days ago

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 # in FileUriMapper. #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 the input 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.
  • v2.2.0 Changes

    August 16, 2022
    • ๐Ÿ†• New: Add ImageRequest.videoFramePercent to coil-video to support specifying the video frame as a percent of the video's duration.
    • ๐Ÿ†• New: Add ExifOrientationPolicy to configure how BitmapFactoryDecoder 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.
  • v2.1.0 Changes

    May 17, 2022
    • ๐Ÿ†• New: Support loading ByteArrays. (#1202)
    • ๐Ÿ†• New: Support setting custom CSS rules for SVGs using ImageRequest.Builder.css. (#1210)
    • ๐Ÿ›  Fix: Convert GenericViewTarget's private methods to protected. (#1273)
    • โšก๏ธ Update compile SDK to 32. (#1268)
  • 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 in coil-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 and DiskCache.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 - except Vary 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.
    • ๐Ÿ‘ The minimum supported API is now 21.
    • 0๏ธโƒฃ ImageRequest's default Scale is now Scale.FIT.
      • This was changed to make ImageRequest.scale consistent with other classes that have a default Scale.
      • Requests with an ImageViewTarget still have their Scale auto-detected.
    • Rework the image pipeline classes:
      • Mapper, Fetcher, and Decoder have been refactored to be more flexible.
      • Fetcher.key has been replaced with a new Keyer interface. Keyer creates the cache key from the input data.
      • Add ImageSource, which allows Decoders to read Files directly using Okio's file system API.
    • Rework the Jetpack Compose integration:
      • rememberImagePainter and ImagePainter have been renamed to rememberAsyncImagePainter and AsyncImagePainter 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.
    • ๐Ÿ”จ Size is now composed of two Dimension values for its width and height. Dimension can either be a positive pixel value or Dimension.Undefined. See here for more info.
    • ๐Ÿšš BitmapPool and PoolableViewTarget have been removed from the library.
    • ๐Ÿšš VideoFrameFileFetcher and VideoFrameUriFetcher have been removed from the library. Use VideoFrameDecoder instead, which supports all data sources.
    • ๐Ÿšš BlurTransformation and GrayscaleTransformation 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-progress BitmapFactory operations. This value is 4 by default, which improves UI performance.
    • โž• Add support for interceptorDispatcher, fetcherDispatcher, decoderDispatcher, and transformationDispatcher.
    • โž• Add GenericViewTarget, which handles common ViewTarget logic.
    • โž• Add ByteBuffer to the default supported data types.
    • ๐Ÿ”จ Disposable has been refactored and exposes the underlying ImageRequest's job.
    • Rework the MemoryCache API.
    • ImageRequest.error is now set on the Target if ImageRequest.fallback is null.
    • Transformation.key is replaced with Transformation.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 be Dimension.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.
  • v2.0.0-rc03 Changes

    April 11, 2022
    • โœ‚ Remove the ScaleResolver interface.
    • Convert Size constructors to functions.
    • ๐Ÿ”„ Change Dimension.Pixels's toString to only be its pixel value.
    • Guard against a rare crash in SystemCallbacks.onTrimMemory.
    • โšก๏ธ Update Coroutines to 1.6.1.
  • v2.0.0-rc02 Changes

    March 20, 2022
    • โช Revert ImageRequest's default size to be the size of the current display instead of Size.ORIGINAL.
    • ๐Ÿ›  Fix DiskCache.Builder being marked as experimental. Only DiskCache's methods are experimental.
    • ๐Ÿ›  Fix case where loading an image into an ImageView with one dimension as WRAP_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, and Parameters.Entry.
  • v2.0.0-rc01 Changes

    March 02, 2022

    Significant changes since 1.4.0:

    • ๐Ÿ‘ The minimum supported API is now 21.
    • Rework the Jetpack Compose integration.
      • rememberImagePainter has been renamed to rememberAsyncImagePainter.
      • Add support for AsyncImage and SubcomposeAsyncImage. 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 and DiskCache.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 - except Vary 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.
    • 0๏ธโƒฃ ImageRequest's default Scale is now Scale.FIT.
      • This was changed to make ImageRequest.scale consistent with other classes that have a default Scale.
      • Requests with an ImageViewTarget still have their Scale auto-detected.
    • 0๏ธโƒฃ ImageRequest's default size is now Size.ORIGINAL.
    • Rework the image pipeline classes:
      • Mapper, Fetcher, and Decoder have been refactored to be more flexible.
      • Fetcher.key has been replaced with a new Keyer interface. Keyer creates the cache key from the input data.
      • Adds ImageSource, which allows Decoders to read Files 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.
    • Size is now composed of two Dimension values for its width and height. Dimension can either be a positive pixel value or Dimension.Original.
    • ๐Ÿšš BitmapPool and PoolableViewTarget have been removed from the library.
    • ๐Ÿšš VideoFrameFileFetcher and VideoFrameUriFetcher are removed from the library. Use VideoFrameDecoder instead, which supports all data sources.
    • ๐Ÿšš BlurTransformation and GrayscaleTransformation 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-progress BitmapFactory operations. This value is 4 by default, which improves UI performance.
    • โž• Add support for interceptorDispatcher, fetcherDispatcher, decoderDispatcher, and transformationDispatcher.
    • โž• Add GenericViewTarget, which handles common ViewTarget logic.
    • โž• Add ByteBuffer to the default supported data types.
    • ๐Ÿ”จ Disposable has been refactored and exposes the underlying ImageRequest's job.
    • Rework the MemoryCache API.
    • ImageRequest.error is now set on the Target if ImageRequest.fallback is null.
    • Transformation.key is replaced with Transformation.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 to AsyncImagePainter. (#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.
    • โž• Add ScaleResolver to support lazily resolving the Scale for an ImageRequest. (#1134)
      • ImageRequest.scale should be replaced by ImageRequest.scaleResolver.scale().
    • โšก๏ธ Update Compose to 1.1.0.
    • โšก๏ธ Update accompanist-drawablepainter to 0.23.0.
    • โšก๏ธ Update androidx.lifecycle to 2.4.1.
  • v2.0.0-alpha08 Changes

    February 07, 2022
    • โšก๏ธ Update DiskCache and ImageSource to use to Okio's FileSystem API. (#1115)