Upgrading com.github.bumptech.glide:glide 4 to 5
Breaking4.16.0 → 5.0.9Breaking2New1Changed13Fixed10Other6
BreakingUpgrade verdict
2 breaking changes.
In plain terms
- 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.
Must act 2 items need code or config changes
What you must change
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@NonNullAPI changes
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