Skip to content

Upgrading com.github.bumptech.glide:glide 4 to 5

Breaking4.16.0 → 5.0.9Breaking2New1Changed13Fixed10Other6

BreakingUpgrade verdict

2 breaking changes.

  • The library now targets newer Java and Kotlin versions, which may require upgrading your build tools.
  • Kotlin code that implements RequestListener may no longer compile because the interface now declares nullability annotations.
2 items need code or config changes
Breaking2
Glide builds against Java 8 and Kotlin 1.8, with a possible move to Kotlin 1.9 before 5.0.
4.16 added @Nullable and @NonNull annotations to RequestListener, breaking Kotlin implementations with different nullability assumptions.
RequestListener@Nullable@NonNull

Generated by DepDelta from published JVM bytecode. Not mixed with prose notes.

  • added: ctor GlideBuilder.EnableDirectByteBufferDecoding()
  • added: ctor GlideBuilder.OverrideGlideThreadPriority()
  • added: ctor GlideBuilder.UseArrayPoolForImageDecoderByteBufferAllocation()
  • added: ctor GlideBuilder.UseHeapBufferForImageDecoderWithInputStream()
  • added: ctor GlideBuilder.UseMediaStoreOpenFileApisIfPossible()
  • added: method GlideBuilder.MemoryCategoryInBackground.value(): MemoryCategory
  • added: method GlideBuilder.setEnableDirectByteBufferDecoding(boolean): GlideBuilder
  • added: method GlideBuilder.setEnableHardwareGainmapFixOnU(boolean): GlideBuilder
  • added: method GlideBuilder.setMemoryCategoryInBackground(MemoryCategory): GlideBuilder
  • added: method GlideBuilder.setOverrideGlideThreadPriority(boolean): GlideBuilder
  • added: method GlideBuilder.setPreserveGainmapAndColorSpaceForTransformations(boolean): GlideBuilder
  • added: method GlideBuilder.setUriImageDecoderEnabled(boolean): GlideBuilder
  • added: method GlideBuilder.setUseArrayPoolForImageDecoderByteBufferAllocation(boolean): GlideBuilder
  • added: method GlideBuilder.setUseHeapBufferForImageDecoderWithInputStream(boolean): GlideBuilder
  • added: method GlideBuilder.setUseMediaStoreOpenFileApisIfPossible(boolean): GlideBuilder
  • added: method RequestBuilder.experimentalIntoFront(ImageView): ViewTarget
  • added: method RequestBuilder.experimentalIntoFront(Target): Target
  • added: method RequestBuilder.experimentalPreloadFront(int, int): Target
  • added: method RequestBuilder.into(Target, RequestListener, Executor): Target
  • added: static field MemoryCategory.ZERO: MemoryCategory
  • added: static final class GlideBuilder.EnableDirectByteBufferDecoding implements GlideExperiments.Experiment
  • added: static final class GlideBuilder.MemoryCategoryInBackground implements GlideExperiments.Experiment
  • added: static final class GlideBuilder.OverrideGlideThreadPriority implements GlideExperiments.Experiment
  • added: static final class GlideBuilder.UseArrayPoolForImageDecoderByteBufferAllocation implements GlideExperiments.Experiment
  • added: static final class GlideBuilder.UseHeapBufferForImageDecoderWithInputStream implements GlideExperiments.Experiment
  • added: static final class GlideBuilder.UseMediaStoreOpenFileApisIfPossible implements GlideExperiments.Experiment
  • added: method ImageHeaderParser.hasJpegMpf(ByteBuffer, ArrayPool): boolean
  • added: method ImageHeaderParser.hasJpegMpf(InputStream, ArrayPool): boolean
  • added: static field ImageHeaderParser.ImageType.ANIMATED_HEIF: ImageHeaderParser.ImageType
  • added: static field ImageHeaderParser.ImageType.HEIF: ImageHeaderParser.ImageType
  • added: static method ImageHeaderParserUtils.hasJpegMpf(List, ByteBuffer, ArrayPool): boolean
  • added: static method ImageHeaderParserUtils.hasJpegMpf(List, InputStream, ArrayPool): boolean
  • added: static method ImageHeaderParserUtils.hasJpegMpf(List, ParcelFileDescriptorRewinder, ArrayPool): boolean
  • added: ctor AssetFileDescriptorLocalUriFetcher(ContentResolver, Uri, boolean)
  • added: ctor FileDescriptorLocalUriFetcher(ContentResolver, Uri, boolean)
  • added: ctor StreamLocalUriFetcher(ContentResolver, Uri, boolean)
  • added: field LocalUriFetcher.useMediaStoreApisIfAvailable: boolean
  • added: method LocalUriFetcher.openAssetFileDescriptor(Uri): AssetFileDescriptor
  • added: static field MediaStoreUtil.MIN_EXTENSION_VERSION_FOR_OPEN_FILE_APIS: int
  • added: static method MediaStoreUtil.isMediaStoreOpenFileApisAvailable(): boolean
  • added: static method MediaStoreUtil.openAssetFileDescriptor(Uri, ContentResolver): AssetFileDescriptor
  • changed: class Engine implements EngineJobListener, MemoryCache.ResourceRemovedListener, EngineResource.ResourceListener → final class Engine implements EngineJobListener, MemoryCache.ResourceRemovedListener, EngineResource.ResourceListener
  • added: static field Engine.GLIDE_MEMORY_TRACKING_TAG: String
  • added: ctor DiskLruCacheWrapper(File, long, boolean)
  • added: static method DiskLruCacheWrapper.create(File, long, boolean): DiskCache
  • added: method GlideExecutor.Builder.experimentalSetOnExecuteDecorator(Function): GlideExecutor.Builder
  • added: static field GlideExecutor.DEFAULT_PRIORITY: int
  • added: ctor UriLoader.AssetFileDescriptorFactory(ContentResolver, boolean)
  • added: ctor UriLoader.FileDescriptorFactory(ContentResolver, boolean)
  • added: ctor UriLoader.StreamFactory(ContentResolver, boolean)
  • changed: ctor InputStreamBitmapImageDecoderResourceDecoder() → ctor InputStreamBitmapImageDecoderResourceDecoder(List, boolean, ArrayPool, boolean)
  • added: ctor UriBitmapImageDecoderResourceDecoder(Context)
  • added: final class UriBitmapImageDecoderResourceDecoder implements ResourceDecoder
  • added: method DefaultImageHeaderParser.hasJpegMpf(ByteBuffer, ArrayPool): boolean
  • added: method DefaultImageHeaderParser.hasJpegMpf(InputStream, ArrayPool): boolean
  • added: method ExifInterfaceImageHeaderParser.hasJpegMpf(ByteBuffer, ArrayPool): boolean
  • added: method ExifInterfaceImageHeaderParser.hasJpegMpf(InputStream, ArrayPool): boolean
  • added: method UriBitmapImageDecoderResourceDecoder.decode(Uri, int, int, Options): Resource
  • added: method UriBitmapImageDecoderResourceDecoder.handles(Uri, Options): boolean
  • changed: class MultiClassKey → final class MultiClassKey
  • changed: class ViewPreloadSizeProvider implements ListPreloader.PreloadSizeProvider, SizeReadyCallback → final class ViewPreloadSizeProvider implements ListPreloader.PreloadSizeProvider, SizeReadyCallback
  • added: static method ByteBufferUtil.fromStream(InputStream, boolean): ByteBuffer
  • added: static method ByteBufferUtil.fromStream(InputStream, boolean, ArrayPool): ByteBuffer
  • added: static method Executors.mainThreadExecutorFront(): Executor
  • added: static method Util.logMemoryTracking(String, String, String, Bitmap, int, int): void
  • added: static method Util.postAtFrontOfQueueOnUiThread(Runnable): void