Glide Versions Save

An image loading and caching library for Android focused on smooth scrolling

v5.0.0-rc01

7 months ago

Glide 5.0 contains no major changes from Glide 4.16 except that we now compile against Java 8 and Kotlin 1.8.

Compose

Build Changes

Breaking Changes

  • Updated Glide to build against Java 8 and Kotlin 1.8. We may update to compile against Kotlin 1.9 before releasing 5.0 / Compose 1.0
  • 4.16 added @Nullable and @NonNull annotations to RequestListener via 60b567e5feec70ba810a663e56a10d837f26c56c. This was not mentioned in the 4.16 release notes, but it will break Kotlin implementations that make different assumptions about nullability.

Full Changelog: https://github.com/bumptech/glide/compare/v4.16.0...v5.0.0-rc01

compose-alpha6

8 months ago

We're trying something new - releasing just a dot release of the compose integration library without any changes to the rest of Glide. The new version of the compose library should continue to depend on Glide 4.16.0.

Bugs

  • Fix Drawables not animated in GlideImage (59c2d9b00510f6c66100bbe4e637b0bd3627d930, #5273, thanks @ag2s20150909 )
  • Fix issues with duplicate padding, draw order due to duplicate Modifier nodes (830fd11cc66be6849f7f86d3f3f04558e1d54b74, #5272, thanks @lyh8577)

Full Changelog: https://github.com/bumptech/glide/compare/v4.16.0...compose-alpha6

v4.16.0

8 months ago

This release focuses on some build improvements and Compose. The two major Compose improvements are adding support for Compose specific transitions (e.g. cross fade) and supporting recomposition based on request state using GlideSubcomposition. There's also been a bunch of internal refactoring to move away from Painters to Modifier nodes based on feedback from the Compose team. This is still an alpha release of Compose, but barring unexpectedly negative feedback, the next release should be beta.

This should be the last release of Glide that targets Java 7. That probably means our next release will be a major version change.

Features

Compose

Bugs

Deprecations

  • placeholderOf(@Composable) in GlideImage is deprecated, use GlideSubcomposition instead. Keep in mind that using either forces a recomposition each time the state of the image load changes. Recomposition will have a significant performance penalty in scrolling lists and should be avoided.

Behavior Changes

Breaking Changes

  • [Late edit, sorry!]: Added @Nullable and @NonNull annotations to RequestListener via 60b567e5feec70ba810a663e56a10d837f26c56c. This will break Kotlin implementations that make different assumptions about nullability.

Build Changes

New Contributors

Full Changelog: https://github.com/bumptech/glide/compare/v4.15.0...v4.16.0

Note - there's been a change in the gpg key used to sign these releases. The new public key is attached

v4.15.1

1 year ago

Features

Compose

Bugs

  • Fix a bug in the KSP processor preventing it from recognizing or including any of Glide's library modules, or any other library module compiled with Glide's java annotation processor (com.github.bumptech.glide:compiler:X.XX.X). (#5043, 16306e89dece9908e9ada2382f4b94b591120ea5)

Deprecations

Behavior Changes

Breaking Changes

Build Changes

v4.15.0

1 year ago

Features

  • Improved support for dark mode, RTL and other theme attributes on resources loaded with Glide (eab4c3742d02ad9f173773007ffc0077b8ace98d, 04f198eb186bf7bc800f056a5fc104eff88b59f1, e6f5eec4ff0d70be28e17c040ee0177edafd8da7, a912e0fba1142da4f939c12852d79bdf6192666e, 966815704feedc6d524a9724c74b88a28ba8b40e, 31821f5ee0556560f5ee85552f6bfe92e52a178d, f73f00344b31bdad87ea90c722174895389904e5)
  • Robolectric shadow and legacy cleanup (4298bb7609eb97094406919189c5b147ab6af822, 26a393bb3745977ea4e75fde7dbf06d2b7fbb5b4, 330b9a888e762dac3b2a0d7ec321a088fa90be8b, e247bb7f486a9c36a0f8dec2e3441195b26be727, c283043e722466142d026609ab2599ece6eac247, thanks @hoisie)
  • Add support for okhttp4 (464002b62496fc7b4c913563ae9496ee2f7764c1)
  • Add support for animated AVIF (895e2f7bb2b060cb88d460d0660a68ca0d9dec6c, d704c8954ae667483afa9a8efdb8b0059e1e979e, 62654be8ba337afa24e235d23902129f787e87d8, e58802e60b36ba76ece309a2c00fb66226498655, thanks @vigneshvg)
  • Add support for RGB_565 in Avif (098c1a40d9e85398f9a16d4683c510c665664d4b, thanks @vigneshvg)

Compose

  • Add loading and failure composable parameters so you can set a custom composable while Glide is loading or after an image load fails (d5fc241c21bfbf5c162e5109e48a4af113aa39cb)
  • Make automatic transformations based on ContentScale optional (89472a35df81ca8924ad31870ccd17a5a800674e, #4943)
  • Avoid throwing exceptions when Composables have unexpected sizes (6cb9486abc77d2fd37eda7de3f5a01c88725682d)
  • Simplify the preloading API by providing a data wrapper that triggers preloading based on access (e63c5d216520baecaaad9273699765b8c02b28be)
  • Show placeholder resources in Compose previews (01ed966e24ae26fac1dff9ef46b509e6d607b621, 0f9aea2979fbb5ea2cf763182fe13c9785a227d7)

Bugs

  • Workaround VP8 decoding issues on ARC devices (4bfda588b628389134c7a1269cc8202bb69510bf)
  • Improve error messages when Glide is recursively initialized or application code throws during Glide's initialization (00e8c233a1ddf65092d840e96e94a11ff9d8b26f)
  • Fix a race that can result in RequestManagers leaking (4affb8d2d9f4ca15c7953ca7322c52fb1e2dab1b)

Deprecations

Behavior Changes

  • Use Android's Lifecycle for androidx Fragments / Activities instead of adding a hidden Fragment (18bba927a5e5fe7d07ada9667e9e503b9f0596a2)

Breaking Changes

Build Changes

v4.14.2

1 year ago

Bugs

  • Allow LibraryGlideModules to be processed in separate code modules when using KSP (#4911, 5245e821e0b61a99685dc129ac83e1bb044275d2)
  • Fix recomposition when properties of RequestBuilder change (#4916, f3d6ff7603e4759a89ba7bd9a8b1a77281e3a4b0)

Behavior Changes

  • Proper implementation of equals/hashcode for BaseRequestOptions and TransitionOptions subclasses. Previously comparing these objects was either not symmetric or certain properties were not included in equals() and hashCode(). Code that relied on the equals/hashcode methods may break if it accidentally relies on the old bad behavior. (f3d6ff7603e4759a89ba7bd9a8b1a77281e3a4b0)

v4.14.1

1 year ago

Bugs

v4.14.0

1 year ago

Features

  • Add support for KSP (See Download and Setup and Generated API Deprecation for details on how to use the KSP processor and the features it does and does not support, 2a787b9ba4287dd1f1efd19b1139794ee8b530b6, 8bef56e2588a371363079a9e33053a9f1f663849, 272c6c390938189972767168a754c01d909810bc, 9f04fd005925ffc39c3e103e9e88a1a85977bee0, 4016448fc56179ac5fa6eaf352113617f04847a5, c35ad1351ee47314f69ad5ecc405a28fbf919298).
  • Add an alpha version of a Compose integration (Docs)
  • To support the Compose integration, add an alpha version of general Kotlin support, starting with utilities to convert a Glide request into a Flow (Docs, 7d9e1a3659a23c58457338ce449a37cdcddc62fb)
  • Enable animated WebP Decoding on P+ using framework APIs (ad35f5e4fcd2e34750289fa1f9820579b2661f0c)
  • Allow Drawables to be loaded with specific themes (17cae33fd8a966f741495e5c8604661629821006)

Bugs

  • Register connectivity listeners on API < 24 on background threads (96596ae9269e85f31d5c6a158c2ab92c16677703)
  • Disable ParcelFileDescriptor rewinding in Robolectric (9840c91e1b2d358d9c9367654eacd4b4719ed849)
  • Rewind ByteBuffers in between each image header parser to avoid spurious failures when multiple parsers read data (4f29adab64f6b43a10652f4d26ba3ecdaf0b5e47)
  • Avoid duplicate notifications of Targets when an error request builder is set (5c232dd12b5710c9bb8d940313e77351a39bc6a6)
  • Use the correct run reason in DecodeJob (1a2cfe36bf32a8b3d8f155cf8e66e145fcfc3ba7)

Deprecations

  • Deprecate Glide's Extensions, GlideApp, GlideRequest and GlideRequests. Extensions seem to be rarely used and add a lot of complexity to the otherwise fairly simple annotation processor. They're also trivially replicated with Kotlin's extension functions for people who're already using Kotlin. Without Extensions, GlideApp, GlideRequest and GlideRequests serve no additional purpose. Prior to Glide 4.9.0 they were used to merge RequestBuilder and RequestOptions, but now that's done in the library without codegen. See Generated API Deprecation for details.
  • Deprecate Android framework Fragment support. Applications should use androidx Fragments instead, which we'll continue to support (e802964ddc838b4db776d45689e9dfd6f46a5b2c)

Behavior Changes

  • Initialize Glide's registry on a background thread to avoid some work on the main thread (6ba4b548cae12f3aa53634a59025069834c0ea14)
  • Update the state of a Request before calling Targets or RequestListeners. Request is generally treated as an internal API but it's possible this could result in some changes to the behavior of custom Targets or RequestListeners that try to use Request to introspect state (c38ce36cd6827251fbc5e49b79d4e83dec8d71be)

Breaking Changes

Build Changes

  • Removed Spotless (edf9d32aa4ea7c9ff7a9ddd346b6609ef9423deb)
  • gradle.properties versioning cleanup (3633e95064405744485ce469870bdfdb9428fbd9, 8875d30ee10d5432d8c872d45792678da01781eb, fd5e7df9fc8d43522a32b3be966f5895e78a8d15, b8fb588c2dcba0792747ccc1374b923bd9e1926a, thanks @TacoTheDank)
  • Update to Gradle 7+ (fdbb694e68d117553cdc89f32932e0a129c2c75f)
  • Fix some deprecation warnings in Gradle (31e7ce34ebad92ecebb7ec9d6288be30c748b830, 2895b351fa6dde68ab5dc85c591f47bd4a395475, thanks @TacoTheDank)
  • Use a version of jarjar from maven rather than embedding a jar (faf85ec4351893eef81b52e982fa1067af1e8fdd)
  • Removed the exif orientation example dependency in favor of our own custom images (66403763e8235dd2f45d1e6007cd25c62f43843f)
  • Target API 32 and make Glide's tests target Java 11 (839899dd252c58045b992181791d2aa9412bfdc0)
  • Build both the release and debug flavors again since they're each required by different gradle plugins we use (f86db6fb3003b88a405ffa437b510414a1df2af1)
  • CI optimization (c30aee9f01fd10d60e4da8e36812595d30cf8abe, thanks @Goooler)
  • Integrate Dokka to build Glide's javadocs for our documentation page (e5a29beb96d9fc8a31e9f0adc650f6b2bd09c4ec)

v4.13.2

2 years ago

Bugs

v4.13.1

2 years ago

Bugs

  • Fix a missing dependency in the AVIF integration library (#4751, thanks @vigneshvg, @msisuzney, @wangxuyang518)