Skip to content

v3.7.0

Choose a tag to compare

@Abbondanzo Abbondanzo released this 12 Jun 19:57
· 0 commits to c54fc84a538da1c182d83733463b26102f6b8f90 since this release

Highlights

  • Adds client-side AVIF transcoding (a19f4cd)
  • Adds intermediateImageBitmapTransformation API to Fresco (ad877d5)
  • Adds a quality-aware BitmapTransformation API and default transformation for intermediate images
    (de4f23c)
  • Adds SimilarImageLookup interface and wires it into ImagePipelineConfig (d04a77d)
  • Adds UnifiedCacheKeyFactory with a pluggable UriNormalizer (55ad40a)
  • Adds EfficientPlatformDecoder and a RawBitmapDecoder interface for unified byte-array-to-Bitmap decoding
    (cd773ee)
  • Adds ZoomableVitoView to the zoomable library (e6ce122)
  • Adds DrawableResImageSource, RetainingImageSource, and ColorImageSource image sources
    (0b41741)
  • Adds ScaleType.DISABLED and a new MatrixScaleType (8cf2538)
  • Adds loop-count control and static-thumbnail fallback for animated images (8cbe470)
  • Adds an API to delete all files from a disk cache (209d705)
  • Adds the ability to specify a custom cache key on ImageRequest/ImageRequestBuilder
    (2da616f)
  • Adds a circuit breaker for consecutive frame-drop failures in animations (1d3adb6)
  • Replaces deprecated setDownsampleEnabled() with setDownsampleMode() (fd2b684)
  • Bumps Kotlin to 2.2.0 (6a14e11)
  • Hardens native decoding against OOB reads, use-after-free, integer overflow, and a GIF-parsing memory leak in
    webp_bitmapfactory (6328781)
  • Removes CallerContext from cache keys to prevent caller-context leaks (d14c122)
  • Fixes an ANR by preventing synchronous network fetches on Litho layout threads (45a60ce)
  • Fixes recycled-bitmap crashes via an isRecycled() check in DefaultDrawableFactory (a122b06)
  • Fixes a postprocessor not being applied during decoded-image prefetch (6544cc6)
  • Fixes image info being fetched after drawable creation to avoid IllegalStateException (#2839)
    (64f3ca9)
  • Fixes the loop variable in DropFramesFrameScheduler (#2850) (4ed6d91)

Breaking

Nullability changes:

  • Marks getUnderlyingBitmap on CloseableImage and cloneUnderlyingBitmapReference on CloseableStaticBitmap nullable (ad1dab9)

Removed classes:

  • Removes the unused MultiUri class (0eb4503)
  • Removes the legacy GingerbreadPurgeableDecoder (1d801a7), HoneycombBitmapFactory (9b971a433af0a7024a94d26c97ef5f1fbc3b4af2), and KitKatPurgeableDecoder (removed as part of minSdk raise sweep)
  • Removes PoolSizeViolationException and ignoreHardCap (537cd77)
  • Removes LegacyOnFadeListener and related setLoggingListener/getLoggingListener on AbstractDraweeController and AbstractDraweeControllerBuilder (6653bfead9de8d1dcdb01aa13dfb1fe5daa7be41, dd81c0c)
  • Removes AnimationBackendDelegateWithInactivityCheck inactivity API (91702f7)
  • Removes AnimatedImageFactoryImpl (d291ae3)

Removed methods:

  • Removes PipelineDraweeControllerBuilder.setImageOriginListener (3998f18)
  • Removes PipelineDraweeController.removeImageOriginListener (made private) (a925053)
  • Removes DraweeSpanStringBuilder.setImageSpan, hasDraweeSpans, getDraweeSpans (dd99560)
  • Removes AnimationListener.onAnimationReset(Drawable) (eeae326)
  • Removes KAnimatedDrawable2.DrawListener.onDraw (f0dc700)
  • Removes ImagePipelineExperiments.setWebpSupportEnabled/isWebpSupportEnabled (b0ebc93)
  • Removes DefaultImageDecoder.decodeGif/decodeAnimatedWebp (4a5a554)
  • Removes AbstractAdaptiveCountingMemoryCache.reportData() (94346a6)
  • Removes DefaultCacheKeyFactory.setShouldRemoveCallerContextFromCacheKey (21a3f60)
  • Removes ImageRequest.recordHashCode (30e7642)
  • Removes RenderScriptBlurFilter.canUseRenderScript() (099f21c)
  • Removes PoolStatsTracker.onSoftCapReached/onHardCapReached (d5c9d20)

Enum changes:

  • Removes ImageRenderingInfra.VITO_V1 enum value (1a8b9e6)

Behavioral changes:

  • Bitmap pool ignoreHardCap now defaults to true (b196965)

Full Changelog: v3.6.0...v3.7.0