gitextract_dq5d7atw/ ├── .github/ │ ├── ISSUE_TEMPLATE.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── stale.yml │ └── workflows/ │ ├── build.yml │ ├── gradle-wrapper-validation.yml │ └── release.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── animated-base/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ ├── fresco/ │ │ │ └── animation/ │ │ │ ├── bitmap/ │ │ │ │ ├── cache/ │ │ │ │ │ ├── AnimationFrameCacheKey.kt │ │ │ │ │ └── FrescoFrameCache.kt │ │ │ │ └── wrapper/ │ │ │ │ ├── AnimatedDrawableBackendAnimationInformation.kt │ │ │ │ └── AnimatedDrawableBackendFrameRenderer.kt │ │ │ ├── drawable/ │ │ │ │ └── animator/ │ │ │ │ └── AnimatedDrawableValueAnimatorHelper.kt │ │ │ └── factory/ │ │ │ ├── AnimatedFactoryV2Impl.kt │ │ │ └── DefaultBitmapAnimationDrawableFactory.kt │ │ └── imagepipeline/ │ │ ├── animated/ │ │ │ ├── base/ │ │ │ │ ├── AnimatedDrawableBackend.java │ │ │ │ ├── AnimatedDrawableFrameInfo.java │ │ │ │ ├── AnimatedDrawableOptions.java │ │ │ │ ├── AnimatedDrawableOptionsBuilder.java │ │ │ │ ├── AnimatedImage.java │ │ │ │ ├── AnimatedImageFrame.java │ │ │ │ ├── AnimatedImageResult.java │ │ │ │ ├── AnimatedImageResultBuilder.java │ │ │ │ ├── AnimatedImageValidator.kt │ │ │ │ └── package-info.java │ │ │ ├── factory/ │ │ │ │ ├── AnimatedImageDecoder.kt │ │ │ │ ├── AnimatedImageDecoderBase.kt │ │ │ │ └── AnimatedImageFactory.kt │ │ │ ├── impl/ │ │ │ │ ├── AnimatedDrawableBackendImpl.java │ │ │ │ ├── AnimatedDrawableBackendProvider.java │ │ │ │ ├── AnimatedFrameCache.java │ │ │ │ ├── AnimatedImageCompositor.java │ │ │ │ └── package-info.java │ │ │ └── util/ │ │ │ ├── AnimatedDrawableUtil.kt │ │ │ └── package-info.kt │ │ └── image/ │ │ ├── CloseableAnimatedImage.java │ │ └── package-info.java │ └── test/ │ └── java/ │ ├── android/ │ │ └── net/ │ │ └── http/ │ │ └── AndroidHttpClient.java │ └── com/ │ └── facebook/ │ ├── fresco/ │ │ └── animation/ │ │ └── bitmap/ │ │ ├── cache/ │ │ │ └── FrescoFrameCacheTest.kt │ │ └── wrapper/ │ │ ├── AnimatedDrawableBackendAnimationInformationTest.kt │ │ └── AnimatedDrawableBackendFrameRendererTest.kt │ └── imagepipeline/ │ ├── animated/ │ │ ├── impl/ │ │ │ ├── AnimatedDrawableBackendImplTest.kt │ │ │ └── AnimatedFrameCacheTest.kt │ │ ├── testing/ │ │ │ └── TestAnimatedDrawableBackend.java │ │ └── util/ │ │ └── AnimatedDrawableUtilTest.kt │ └── producers/ │ ├── AnimatedRepeatedPostprocessorProducerTest.kt │ └── AnimatedSingleUsePostprocessorProducerTest.kt ├── animated-drawable/ │ ├── .gitignore │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── fresco/ │ │ └── animation/ │ │ ├── backend/ │ │ │ ├── AnimationBackend.java │ │ │ ├── AnimationBackendDelegate.kt │ │ │ ├── AnimationBackendDelegateWithInactivityCheck.java │ │ │ └── AnimationInformation.java │ │ ├── bitmap/ │ │ │ ├── BitmapAnimationBackend.kt │ │ │ ├── BitmapFrameCache.kt │ │ │ ├── BitmapFrameRenderer.kt │ │ │ ├── cache/ │ │ │ │ ├── KeepLastFrameCache.kt │ │ │ │ └── NoOpCache.kt │ │ │ └── preparation/ │ │ │ ├── BitmapFramePreparationStrategy.kt │ │ │ ├── BitmapFramePreparer.kt │ │ │ ├── DefaultBitmapFramePreparer.kt │ │ │ ├── FixedNumberBitmapFramePreparationStrategy.kt │ │ │ ├── FrameLoaderStrategy.kt │ │ │ ├── loadframe/ │ │ │ │ ├── AnimationLoaderExecutor.kt │ │ │ │ └── FpsCompressorInfo.kt │ │ │ └── ondemandanimation/ │ │ │ ├── AnimationBitmapFrame.kt │ │ │ ├── AnimationCoordinator.kt │ │ │ ├── AnimationLoaderFactory.kt │ │ │ ├── BufferFrameLoader.kt │ │ │ ├── CircularList.kt │ │ │ └── FrameLoader.kt │ │ ├── drawable/ │ │ │ ├── AnimatedDrawable2.kt │ │ │ ├── AnimatedDrawable2DebugDrawListener.kt │ │ │ ├── AnimationFrameScheduler.kt │ │ │ ├── AnimationListener.kt │ │ │ ├── BaseAnimationListener.kt │ │ │ ├── KAnimatedDrawable2.kt │ │ │ └── animator/ │ │ │ └── AnimatedDrawable2ValueAnimatorHelper.kt │ │ └── frame/ │ │ ├── DropFramesFrameScheduler.kt │ │ └── FrameScheduler.java │ └── test/ │ └── java/ │ ├── com/ │ │ └── facebook/ │ │ └── fresco/ │ │ └── animation/ │ │ ├── backend/ │ │ │ ├── AnimationBackendDelegateTest.kt │ │ │ └── AnimationBackendDelegateWithInactivityCheckTest.kt │ │ ├── bitmap/ │ │ │ ├── BitmapAnimationBackendTest.kt │ │ │ └── preparation/ │ │ │ ├── DefaultBitmapFramePreparerTest.kt │ │ │ └── FixedNumberBitmapFramePreparationStrategyTest.kt │ │ └── frame/ │ │ └── DropFramesFrameSchedulerTest.kt │ └── javax/ │ └── microedition/ │ └── khronos/ │ └── opengles/ │ └── GL.java ├── animated-gif/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── animated/ │ │ │ └── gif/ │ │ │ ├── AnimatedImageGifValidator.kt │ │ │ ├── GifFrame.java │ │ │ ├── GifImage.java │ │ │ └── GifImageDecoder.kt │ │ └── jni/ │ │ ├── Application.mk │ │ ├── gifimage/ │ │ │ ├── Android.mk │ │ │ ├── OnLoad.cpp │ │ │ ├── gif.cpp │ │ │ ├── jni_helpers.cpp │ │ │ ├── jni_helpers.h │ │ │ ├── locks.h │ │ │ └── secure_memcpy.h │ │ └── third-party/ │ │ └── giflib/ │ │ └── Android.mk │ └── test/ │ └── java/ │ └── com/ │ └── facebook/ │ └── animated/ │ └── gif/ │ └── GifImageDecoderTest.kt ├── animated-gif-lite/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── animated/ │ └── giflite/ │ ├── GifDecoder.java │ ├── decoder/ │ │ └── GifMetadataDecoder.java │ ├── draw/ │ │ ├── MovieAnimatedImage.kt │ │ ├── MovieDrawer.kt │ │ ├── MovieFrame.kt │ │ └── MovieScaleHolder.kt │ └── drawable/ │ └── GifAnimationBackend.kt ├── animated-webp/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── animated/ │ │ ├── webp/ │ │ │ ├── WebPFrame.java │ │ │ ├── WebPImage.java │ │ │ └── WebPImageDecoder.kt │ │ └── webpdrawable/ │ │ └── WebpAnimationBackend.kt │ └── test/ │ └── java/ │ └── com/ │ └── facebook/ │ └── animated/ │ └── webp/ │ └── WebPImageDecoderTest.kt ├── bots/ │ └── IssueCommands.txt ├── build.gradle ├── buildSrc/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── buildsrc/ │ ├── FrescoConfig.kt │ ├── GradleDeps.kt │ ├── TestDeps.kt │ ├── dependencies-samples.kt │ └── dependencies.kt ├── ci/ │ ├── build-and-test.sh │ └── print-debug-info.sh ├── docs/ │ ├── .gitignore │ ├── CNAME │ ├── Gemfile │ ├── NOGREP │ ├── README.md │ ├── _config.yml │ ├── _data/ │ │ ├── authors.yml │ │ ├── nav.yml │ │ ├── nav_docs.yml │ │ ├── powered_by.yml │ │ ├── powered_by_highlight.yml │ │ └── promo.yml │ ├── _docs/ │ │ ├── 03-customizing-image-formats.md │ │ ├── animations.md │ │ ├── building-from-source.md │ │ ├── caching.md │ │ ├── closeable-references.md │ │ ├── concepts.md │ │ ├── configure-image-pipeline.md │ │ ├── datasources-datasubscribers.md │ │ ├── drawee-branches.md │ │ ├── faq.md │ │ ├── gotchas.md │ │ ├── image-requests.md │ │ ├── images-in-notifications.md │ │ ├── index.md │ │ ├── intro-image-pipeline.md │ │ ├── listening-to-events.md │ │ ├── media-variations.md │ │ ├── placeholder-failure-retry.md │ │ ├── post-processor.md │ │ ├── prefetching.md │ │ ├── progress-bars.md │ │ ├── progressive-jpegs.md │ │ ├── proguard.md │ │ ├── requesting-multiple-images.md │ │ ├── resizing.md │ │ ├── rotation.md │ │ ├── rounded-corners-and-circles.md │ │ ├── sample-apps.md │ │ ├── scaletypes.md │ │ ├── shared-transitions.md │ │ ├── supported-uris.md │ │ ├── troubleshooting.md │ │ ├── using-controllerbuilder.md │ │ ├── using-image-pipeline.md │ │ ├── using-other-network-layers.md │ │ ├── using-simpledraweeview.md │ │ ├── webp-support.md │ │ └── writing-custom-views.md │ ├── _includes/ │ │ ├── blog_pagination.html │ │ ├── content/ │ │ │ ├── gridblocks.html │ │ │ └── items/ │ │ │ └── gridblock.html │ │ ├── doc.html │ │ ├── doc_paging.html │ │ ├── footer.html │ │ ├── head.html │ │ ├── hero.html │ │ ├── home_header.html │ │ ├── nav.html │ │ ├── nav_search.html │ │ ├── plugins/ │ │ │ ├── all_share.html │ │ │ ├── button.html │ │ │ ├── fb_pagelike.html │ │ │ ├── github_star.html │ │ │ ├── github_watch.html │ │ │ ├── google_share.html │ │ │ ├── group_join.html │ │ │ ├── like_button.html │ │ │ ├── plugin_row.html │ │ │ ├── post_social_plugins.html │ │ │ ├── slideshow.html │ │ │ └── twitter_share.html │ │ ├── post.html │ │ ├── powered_by.html │ │ ├── react/ │ │ │ ├── collection_nav.html │ │ │ ├── header_nav.html │ │ │ ├── nav_blog.html │ │ │ └── nav_docs.html │ │ ├── social_plugins.html │ │ └── ui/ │ │ └── button.html │ ├── _layouts/ │ │ ├── basic.html │ │ ├── blog.html │ │ ├── blog_default.html │ │ ├── default.html │ │ ├── doc_default.html │ │ ├── doc_page.html │ │ ├── docs.html │ │ ├── home.html │ │ ├── page.html │ │ ├── plain.html │ │ ├── post.html │ │ └── redirect.html │ ├── _sass/ │ │ ├── _base.scss │ │ ├── _blog.scss │ │ ├── _buttons.scss │ │ ├── _footer.scss │ │ ├── _gridBlock.scss │ │ ├── _header.scss │ │ ├── _poweredby.scss │ │ ├── _promo.scss │ │ ├── _react_docs_nav.scss │ │ ├── _react_header_nav.scss │ │ ├── _reset.scss │ │ ├── _search.scss │ │ ├── _slideshow.scss │ │ ├── _syntax-highlighting.scss │ │ └── _tables.scss │ ├── css/ │ │ └── main.scss │ ├── docs/ │ │ └── index.html │ ├── index.md │ ├── javadoc/ │ │ ├── assets/ │ │ │ ├── customizations.css │ │ │ ├── customizations.js │ │ │ ├── doclava-developer-core.css │ │ │ ├── doclava-developer-docs.css │ │ │ ├── doclava-developer-docs.js │ │ │ ├── doclava-developer-reference.js │ │ │ ├── jquery-history.js │ │ │ ├── navtree_data.js │ │ │ ├── prettify.js │ │ │ ├── search_autocomplete.js │ │ │ └── style.css │ │ ├── index.html │ │ └── reference/ │ │ ├── classes.html │ │ ├── com/ │ │ │ └── facebook/ │ │ │ ├── animated/ │ │ │ │ ├── gif/ │ │ │ │ │ ├── GifFrame.html │ │ │ │ │ ├── GifImage.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── giflite/ │ │ │ │ │ ├── GifDecoder.html │ │ │ │ │ ├── decoder/ │ │ │ │ │ │ ├── GifMetadataDecoder.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ ├── draw/ │ │ │ │ │ │ ├── MovieAnimatedImage.html │ │ │ │ │ │ ├── MovieDrawer.html │ │ │ │ │ │ ├── MovieFrame.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ ├── drawable/ │ │ │ │ │ │ ├── GifAnimationBackend.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── webp/ │ │ │ │ │ ├── WebPFrame.html │ │ │ │ │ ├── WebPImage.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ └── webpdrawable/ │ │ │ │ ├── WebpAnimationBackend.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── binaryresource/ │ │ │ │ ├── BinaryResource.html │ │ │ │ ├── ByteArrayBinaryResource.html │ │ │ │ ├── FileBinaryResource.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── cache/ │ │ │ │ ├── common/ │ │ │ │ │ ├── BaseCacheEventListener.html │ │ │ │ │ ├── CacheErrorLogger.CacheErrorCategory.html │ │ │ │ │ ├── CacheErrorLogger.html │ │ │ │ │ ├── CacheEvent.html │ │ │ │ │ ├── CacheEventListener.EvictionReason.html │ │ │ │ │ ├── CacheEventListener.html │ │ │ │ │ ├── CacheKey.html │ │ │ │ │ ├── CacheKeyUtil.html │ │ │ │ │ ├── DebuggingCacheKey.html │ │ │ │ │ ├── HasDebugData.html │ │ │ │ │ ├── MultiCacheKey.html │ │ │ │ │ ├── NoOpCacheErrorLogger.html │ │ │ │ │ ├── NoOpCacheEventListener.html │ │ │ │ │ ├── SimpleCacheKey.html │ │ │ │ │ ├── WriterCallback.html │ │ │ │ │ ├── WriterCallbacks.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ └── disk/ │ │ │ │ ├── DefaultDiskStorage.FileType.html │ │ │ │ ├── DefaultDiskStorage.html │ │ │ │ ├── DefaultEntryEvictionComparatorSupplier.html │ │ │ │ ├── DiskCacheConfig.Builder.html │ │ │ │ ├── DiskCacheConfig.html │ │ │ │ ├── DiskStorage.DiskDumpInfo.html │ │ │ │ ├── DiskStorage.DiskDumpInfoEntry.html │ │ │ │ ├── DiskStorage.Entry.html │ │ │ │ ├── DiskStorage.Inserter.html │ │ │ │ ├── DiskStorage.html │ │ │ │ ├── DiskStorageCache.Params.html │ │ │ │ ├── DiskStorageCache.html │ │ │ │ ├── DynamicDefaultDiskStorage.html │ │ │ │ ├── EntryEvictionComparator.html │ │ │ │ ├── EntryEvictionComparatorSupplier.html │ │ │ │ ├── FileCache.html │ │ │ │ ├── ScoreBasedEvictionComparatorSupplier.html │ │ │ │ ├── SettableCacheEvent.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── callercontext/ │ │ │ │ ├── CallerContextVerifier.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── common/ │ │ │ │ ├── activitylistener/ │ │ │ │ │ ├── ActivityListener.html │ │ │ │ │ ├── ActivityListenerManager.html │ │ │ │ │ ├── BaseActivityListener.html │ │ │ │ │ ├── ListenableActivity.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── disk/ │ │ │ │ │ ├── DiskTrimmable.html │ │ │ │ │ ├── DiskTrimmableRegistry.html │ │ │ │ │ ├── NoOpDiskTrimmableRegistry.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── executors/ │ │ │ │ │ ├── CallerThreadExecutor.html │ │ │ │ │ ├── ConstrainedExecutorService.html │ │ │ │ │ ├── DefaultSerialExecutorService.html │ │ │ │ │ ├── HandlerExecutorService.html │ │ │ │ │ ├── HandlerExecutorServiceImpl.html │ │ │ │ │ ├── ScheduledFutureImpl.html │ │ │ │ │ ├── SerialExecutorService.html │ │ │ │ │ ├── StatefulRunnable.html │ │ │ │ │ ├── UiThreadImmediateExecutorService.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── file/ │ │ │ │ │ ├── FileTree.html │ │ │ │ │ ├── FileTreeVisitor.html │ │ │ │ │ ├── FileUtils.CreateDirectoryException.html │ │ │ │ │ ├── FileUtils.FileDeleteException.html │ │ │ │ │ ├── FileUtils.ParentDirNotFoundException.html │ │ │ │ │ ├── FileUtils.RenameException.html │ │ │ │ │ ├── FileUtils.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── internal/ │ │ │ │ │ ├── AndroidPredicates.html │ │ │ │ │ ├── ByteStreams.html │ │ │ │ │ ├── Closeables.html │ │ │ │ │ ├── CountingOutputStream.html │ │ │ │ │ ├── DoNotStrip.html │ │ │ │ │ ├── Files.html │ │ │ │ │ ├── Fn.html │ │ │ │ │ ├── ImmutableList.html │ │ │ │ │ ├── ImmutableMap.html │ │ │ │ │ ├── ImmutableSet.html │ │ │ │ │ ├── Ints.html │ │ │ │ │ ├── Objects.ToStringHelper.html │ │ │ │ │ ├── Objects.html │ │ │ │ │ ├── Preconditions.html │ │ │ │ │ ├── Predicate.html │ │ │ │ │ ├── Sets.html │ │ │ │ │ ├── Supplier.html │ │ │ │ │ ├── Suppliers.html │ │ │ │ │ ├── Throwables.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── lifecycle/ │ │ │ │ │ ├── AttachDetachListener.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── logging/ │ │ │ │ │ ├── FLog.html │ │ │ │ │ ├── FLogDefaultLoggingDelegate.html │ │ │ │ │ ├── LoggingDelegate.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── media/ │ │ │ │ │ ├── MediaUtils.html │ │ │ │ │ ├── MimeTypeMapWrapper.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── memory/ │ │ │ │ │ ├── ByteArrayPool.html │ │ │ │ │ ├── MemoryTrimType.html │ │ │ │ │ ├── MemoryTrimmable.html │ │ │ │ │ ├── MemoryTrimmableRegistry.html │ │ │ │ │ ├── NoOpMemoryTrimmableRegistry.html │ │ │ │ │ ├── Pool.html │ │ │ │ │ ├── PooledByteArrayBufferedInputStream.html │ │ │ │ │ ├── PooledByteBuffer.ClosedException.html │ │ │ │ │ ├── PooledByteBuffer.html │ │ │ │ │ ├── PooledByteBufferFactory.html │ │ │ │ │ ├── PooledByteBufferInputStream.html │ │ │ │ │ ├── PooledByteBufferOutputStream.html │ │ │ │ │ ├── PooledByteStreams.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── references/ │ │ │ │ │ ├── CloseableReference.CloseableRefType.html │ │ │ │ │ ├── CloseableReference.LeakHandler.html │ │ │ │ │ ├── CloseableReference.html │ │ │ │ │ ├── DefaultCloseableReference.html │ │ │ │ │ ├── FinalizerCloseableReference.html │ │ │ │ │ ├── HasBitmap.html │ │ │ │ │ ├── NoOpCloseableReference.html │ │ │ │ │ ├── OOMSoftReference.html │ │ │ │ │ ├── RefCountCloseableReference.html │ │ │ │ │ ├── ResourceReleaser.html │ │ │ │ │ ├── SharedReference.NullReferenceException.html │ │ │ │ │ ├── SharedReference.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── statfs/ │ │ │ │ │ ├── StatFsHelper.StorageType.html │ │ │ │ │ ├── StatFsHelper.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── streams/ │ │ │ │ │ ├── LimitedInputStream.html │ │ │ │ │ ├── TailAppendingInputStream.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── time/ │ │ │ │ │ ├── AwakeTimeSinceBootClock.html │ │ │ │ │ ├── Clock.html │ │ │ │ │ ├── CurrentThreadTimeClock.html │ │ │ │ │ ├── MonotonicClock.html │ │ │ │ │ ├── MonotonicNanoClock.html │ │ │ │ │ ├── RealtimeSinceBootClock.html │ │ │ │ │ ├── SystemClock.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── util/ │ │ │ │ │ ├── ByteConstants.html │ │ │ │ │ ├── ExceptionWithNoStacktrace.html │ │ │ │ │ ├── HashCodeUtil.html │ │ │ │ │ ├── Hex.html │ │ │ │ │ ├── SecureHashUtil.html │ │ │ │ │ ├── StreamUtil.html │ │ │ │ │ ├── TriState.html │ │ │ │ │ ├── UriUtil.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ └── webp/ │ │ │ │ ├── BitmapCreator.html │ │ │ │ ├── WebpBitmapFactory.WebpErrorLogger.html │ │ │ │ ├── WebpBitmapFactory.html │ │ │ │ ├── WebpSupportStatus.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── datasource/ │ │ │ │ ├── AbstractDataSource.DataSourceInstrumenter.html │ │ │ │ ├── AbstractDataSource.html │ │ │ │ ├── BaseBooleanSubscriber.html │ │ │ │ ├── BaseDataSubscriber.html │ │ │ │ ├── DataSource.html │ │ │ │ ├── DataSources.html │ │ │ │ ├── DataSubscriber.html │ │ │ │ ├── FirstAvailableDataSourceSupplier.html │ │ │ │ ├── IncreasingQualityDataSourceSupplier.html │ │ │ │ ├── RetainingDataSourceSupplier.html │ │ │ │ ├── SimpleDataSource.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── drawable/ │ │ │ │ └── base/ │ │ │ │ ├── DrawableWithCaches.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── drawee/ │ │ │ │ ├── backends/ │ │ │ │ │ └── pipeline/ │ │ │ │ │ ├── DefaultDrawableFactory.html │ │ │ │ │ ├── DraweeConfig.Builder.html │ │ │ │ │ ├── DraweeConfig.html │ │ │ │ │ ├── Fresco.html │ │ │ │ │ ├── PipelineDraweeController.html │ │ │ │ │ ├── PipelineDraweeControllerBuilder.html │ │ │ │ │ ├── PipelineDraweeControllerBuilderSupplier.html │ │ │ │ │ ├── PipelineDraweeControllerFactory.html │ │ │ │ │ ├── debug/ │ │ │ │ │ │ ├── DebugOverlayImageOriginColor.html │ │ │ │ │ │ ├── DebugOverlayImageOriginListener.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ ├── info/ │ │ │ │ │ │ ├── ForwardingImageOriginListener.html │ │ │ │ │ │ ├── ForwardingImagePerfDataListener.html │ │ │ │ │ │ ├── ImageLoadStatus.html │ │ │ │ │ │ ├── ImageOrigin.html │ │ │ │ │ │ ├── ImageOriginListener.html │ │ │ │ │ │ ├── ImageOriginRequestListener.html │ │ │ │ │ │ ├── ImageOriginUtils.html │ │ │ │ │ │ ├── ImagePerfData.html │ │ │ │ │ │ ├── ImagePerfDataListener.html │ │ │ │ │ │ ├── ImagePerfMonitor.html │ │ │ │ │ │ ├── ImagePerfNotifier.html │ │ │ │ │ │ ├── ImagePerfState.html │ │ │ │ │ │ ├── ImagePerfUtils.html │ │ │ │ │ │ ├── VisibilityState.html │ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ │ ├── ImagePerfControllerListener.html │ │ │ │ │ │ │ ├── ImagePerfControllerListener2.html │ │ │ │ │ │ │ ├── ImagePerfImageOriginListener.html │ │ │ │ │ │ │ ├── ImagePerfRequestListener.html │ │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── components/ │ │ │ │ │ ├── DeferredReleaser.Releasable.html │ │ │ │ │ ├── DeferredReleaser.html │ │ │ │ │ ├── DraweeEventTracker.Event.html │ │ │ │ │ ├── DraweeEventTracker.html │ │ │ │ │ ├── RetryManager.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── controller/ │ │ │ │ │ ├── AbstractDraweeController.html │ │ │ │ │ ├── AbstractDraweeControllerBuilder.CacheLevel.html │ │ │ │ │ ├── AbstractDraweeControllerBuilder.html │ │ │ │ │ ├── BaseControllerListener.html │ │ │ │ │ ├── ControllerListener.html │ │ │ │ │ ├── ControllerViewportVisibilityListener.html │ │ │ │ │ ├── ForwardingControllerListener.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── debug/ │ │ │ │ │ ├── DebugControllerOverlayDrawable.html │ │ │ │ │ ├── listener/ │ │ │ │ │ │ ├── ImageLoadingTimeControllerListener.html │ │ │ │ │ │ ├── ImageLoadingTimeListener.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── drawable/ │ │ │ │ │ ├── ArrayDrawable.html │ │ │ │ │ ├── AutoRotateDrawable.html │ │ │ │ │ ├── CloneableDrawable.html │ │ │ │ │ ├── DrawableParent.html │ │ │ │ │ ├── DrawableProperties.html │ │ │ │ │ ├── DrawableUtils.html │ │ │ │ │ ├── FadeDrawable.OnFadeListener.html │ │ │ │ │ ├── FadeDrawable.html │ │ │ │ │ ├── ForwardingDrawable.html │ │ │ │ │ ├── InstrumentedDrawable.Listener.html │ │ │ │ │ ├── InstrumentedDrawable.html │ │ │ │ │ ├── MatrixDrawable.html │ │ │ │ │ ├── OrientedDrawable.html │ │ │ │ │ ├── ProgressBarDrawable.html │ │ │ │ │ ├── Rounded.html │ │ │ │ │ ├── RoundedBitmapDrawable.html │ │ │ │ │ ├── RoundedColorDrawable.html │ │ │ │ │ ├── RoundedCornersDrawable.Type.html │ │ │ │ │ ├── RoundedCornersDrawable.html │ │ │ │ │ ├── RoundedDrawable.html │ │ │ │ │ ├── RoundedNinePatchDrawable.html │ │ │ │ │ ├── ScaleTypeDrawable.html │ │ │ │ │ ├── ScalingUtils.AbstractScaleType.html │ │ │ │ │ ├── ScalingUtils.InterpolatingScaleType.html │ │ │ │ │ ├── ScalingUtils.ScaleType.html │ │ │ │ │ ├── ScalingUtils.StatefulScaleType.html │ │ │ │ │ ├── ScalingUtils.html │ │ │ │ │ ├── TransformAwareDrawable.html │ │ │ │ │ ├── TransformCallback.html │ │ │ │ │ ├── VisibilityAwareDrawable.html │ │ │ │ │ ├── VisibilityCallback.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── generic/ │ │ │ │ │ ├── GenericDraweeHierarchy.html │ │ │ │ │ ├── GenericDraweeHierarchyBuilder.html │ │ │ │ │ ├── GenericDraweeHierarchyInflater.html │ │ │ │ │ ├── RootDrawable.html │ │ │ │ │ ├── RoundingParams.RoundingMethod.html │ │ │ │ │ ├── RoundingParams.html │ │ │ │ │ ├── WrappingUtils.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── gestures/ │ │ │ │ │ ├── GestureDetector.ClickListener.html │ │ │ │ │ ├── GestureDetector.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── interfaces/ │ │ │ │ │ ├── DraweeController.html │ │ │ │ │ ├── DraweeHierarchy.html │ │ │ │ │ ├── SettableDraweeHierarchy.html │ │ │ │ │ ├── SimpleDraweeControllerBuilder.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── span/ │ │ │ │ │ ├── DraweeSpan.html │ │ │ │ │ ├── DraweeSpanStringBuilder.DraweeSpanChangedListener.html │ │ │ │ │ ├── DraweeSpanStringBuilder.html │ │ │ │ │ ├── SimpleDraweeSpanTextView.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ └── view/ │ │ │ │ ├── AspectRatioMeasure.Spec.html │ │ │ │ ├── AspectRatioMeasure.html │ │ │ │ ├── DraweeHolder.html │ │ │ │ ├── DraweeTransition.html │ │ │ │ ├── DraweeView.html │ │ │ │ ├── GenericDraweeView.html │ │ │ │ ├── MultiDraweeHolder.html │ │ │ │ ├── SimpleDraweeView.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── fresco/ │ │ │ │ ├── animation/ │ │ │ │ │ ├── backend/ │ │ │ │ │ │ ├── AnimationBackend.html │ │ │ │ │ │ ├── AnimationBackendDelegate.html │ │ │ │ │ │ ├── AnimationBackendDelegateWithInactivityCheck.InactivityListener.html │ │ │ │ │ │ ├── AnimationBackendDelegateWithInactivityCheck.html │ │ │ │ │ │ ├── AnimationInformation.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ ├── bitmap/ │ │ │ │ │ │ ├── BitmapAnimationBackend.FrameListener.html │ │ │ │ │ │ ├── BitmapAnimationBackend.FrameType.html │ │ │ │ │ │ ├── BitmapAnimationBackend.html │ │ │ │ │ │ ├── BitmapFrameCache.FrameCacheListener.html │ │ │ │ │ │ ├── BitmapFrameCache.html │ │ │ │ │ │ ├── BitmapFrameRenderer.html │ │ │ │ │ │ ├── cache/ │ │ │ │ │ │ │ ├── AnimationFrameCacheKey.html │ │ │ │ │ │ │ ├── FrescoFrameCache.html │ │ │ │ │ │ │ ├── KeepLastFrameCache.html │ │ │ │ │ │ │ ├── NoOpCache.html │ │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── preparation/ │ │ │ │ │ │ │ ├── BitmapFramePreparationStrategy.html │ │ │ │ │ │ │ ├── BitmapFramePreparer.html │ │ │ │ │ │ │ ├── DefaultBitmapFramePreparer.html │ │ │ │ │ │ │ ├── FixedNumberBitmapFramePreparationStrategy.html │ │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ │ └── wrapper/ │ │ │ │ │ │ ├── AnimatedDrawableBackendAnimationInformation.html │ │ │ │ │ │ ├── AnimatedDrawableBackendFrameRenderer.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ ├── drawable/ │ │ │ │ │ │ ├── AnimatedDrawable2.DrawListener.html │ │ │ │ │ │ ├── AnimatedDrawable2.html │ │ │ │ │ │ ├── AnimatedDrawable2DebugDrawListener.html │ │ │ │ │ │ ├── AnimationListener.html │ │ │ │ │ │ ├── BaseAnimationListener.html │ │ │ │ │ │ ├── animator/ │ │ │ │ │ │ │ ├── AnimatedDrawable2ValueAnimatorHelper.html │ │ │ │ │ │ │ ├── AnimatedDrawableValueAnimatorHelper.html │ │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ ├── factory/ │ │ │ │ │ │ ├── AnimatedFactoryV2Impl.html │ │ │ │ │ │ ├── ExperimentalBitmapAnimationDrawableFactory.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ └── frame/ │ │ │ │ │ ├── DropFramesFrameScheduler.html │ │ │ │ │ ├── FrameScheduler.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── middleware/ │ │ │ │ │ ├── MiddlewareUtils.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ └── ui/ │ │ │ │ └── common/ │ │ │ │ ├── BaseControllerListener2.html │ │ │ │ ├── ControllerListener2.Extras.html │ │ │ │ ├── ControllerListener2.html │ │ │ │ ├── DimensionsInfo.html │ │ │ │ ├── ForwardingControllerListener2.html │ │ │ │ ├── LoggingListener.html │ │ │ │ ├── MultiUriHelper.html │ │ │ │ ├── OnDrawControllerListener.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── imageformat/ │ │ │ │ ├── DefaultImageFormatChecker.html │ │ │ │ ├── DefaultImageFormats.html │ │ │ │ ├── ImageFormat.FormatChecker.html │ │ │ │ ├── ImageFormat.html │ │ │ │ ├── ImageFormatChecker.html │ │ │ │ ├── ImageFormatCheckerUtils.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── imagepipeline/ │ │ │ │ ├── animated/ │ │ │ │ │ ├── base/ │ │ │ │ │ │ ├── AnimatedDrawableBackend.html │ │ │ │ │ │ ├── AnimatedDrawableFrameInfo.BlendOperation.html │ │ │ │ │ │ ├── AnimatedDrawableFrameInfo.DisposalMethod.html │ │ │ │ │ │ ├── AnimatedDrawableFrameInfo.html │ │ │ │ │ │ ├── AnimatedDrawableOptions.html │ │ │ │ │ │ ├── AnimatedDrawableOptionsBuilder.html │ │ │ │ │ │ ├── AnimatedImage.html │ │ │ │ │ │ ├── AnimatedImageFrame.html │ │ │ │ │ │ ├── AnimatedImageResult.html │ │ │ │ │ │ ├── AnimatedImageResultBuilder.html │ │ │ │ │ │ ├── DelegatingAnimatedDrawableBackend.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ ├── factory/ │ │ │ │ │ │ ├── AnimatedFactory.html │ │ │ │ │ │ ├── AnimatedFactoryProvider.html │ │ │ │ │ │ ├── AnimatedImageDecoder.html │ │ │ │ │ │ ├── AnimatedImageFactory.html │ │ │ │ │ │ ├── AnimatedImageFactoryImpl.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ ├── impl/ │ │ │ │ │ │ ├── AnimatedDrawableBackendImpl.html │ │ │ │ │ │ ├── AnimatedDrawableBackendProvider.html │ │ │ │ │ │ ├── AnimatedFrameCache.html │ │ │ │ │ │ ├── AnimatedImageCompositor.Callback.html │ │ │ │ │ │ ├── AnimatedImageCompositor.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ └── util/ │ │ │ │ │ ├── AnimatedDrawableUtil.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── backends/ │ │ │ │ │ ├── okhttp3/ │ │ │ │ │ │ ├── OkHttpImagePipelineConfigFactory.html │ │ │ │ │ │ ├── OkHttpNetworkFetcher.OkHttpNetworkFetchState.html │ │ │ │ │ │ ├── OkHttpNetworkFetcher.html │ │ │ │ │ │ ├── package-descr.html │ │ │ │ │ │ └── package-summary.html │ │ │ │ │ └── volley/ │ │ │ │ │ ├── RawRequest.html │ │ │ │ │ ├── VolleyImagePipelineConfigFactory.html │ │ │ │ │ ├── VolleyNetworkFetcher.VolleyNetworkFetchState.html │ │ │ │ │ ├── VolleyNetworkFetcher.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── bitmaps/ │ │ │ │ │ ├── ArtBitmapFactory.html │ │ │ │ │ ├── EmptyJpegGenerator.html │ │ │ │ │ ├── GingerbreadBitmapFactory.html │ │ │ │ │ ├── HoneycombBitmapCreator.html │ │ │ │ │ ├── HoneycombBitmapFactory.html │ │ │ │ │ ├── PlatformBitmapFactory.html │ │ │ │ │ ├── PlatformBitmapFactoryProvider.html │ │ │ │ │ ├── SimpleBitmapReleaser.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── cache/ │ │ │ │ │ ├── AbstractAdaptiveCountingMemoryCache.html │ │ │ │ │ ├── BitmapMemoryCacheFactory.html │ │ │ │ │ ├── BitmapMemoryCacheKey.html │ │ │ │ │ ├── BitmapMemoryCacheTrimStrategy.html │ │ │ │ │ ├── BoundedLinkedHashSet.html │ │ │ │ │ ├── BufferedDiskCache.html │ │ │ │ │ ├── CacheKeyFactory.html │ │ │ │ │ ├── CountingLruBitmapMemoryCacheFactory.html │ │ │ │ │ ├── CountingLruMap.html │ │ │ │ │ ├── CountingMemoryCache.Entry.html │ │ │ │ │ ├── CountingMemoryCache.EntryStateObserver.html │ │ │ │ │ ├── CountingMemoryCache.html │ │ │ │ │ ├── CountingMemoryCacheInspector.DumpInfo.html │ │ │ │ │ ├── CountingMemoryCacheInspector.DumpInfoEntry.html │ │ │ │ │ ├── CountingMemoryCacheInspector.html │ │ │ │ │ ├── DefaultBitmapMemoryCacheParamsSupplier.html │ │ │ │ │ ├── DefaultCacheKeyFactory.html │ │ │ │ │ ├── DefaultEncodedMemoryCacheParamsSupplier.html │ │ │ │ │ ├── EncodedCountingMemoryCacheFactory.html │ │ │ │ │ ├── EncodedMemoryCacheFactory.html │ │ │ │ │ ├── ImageCacheStatsTracker.html │ │ │ │ │ ├── InstrumentedMemoryCache.html │ │ │ │ │ ├── InstrumentedMemoryCacheBitmapMemoryCacheFactory.html │ │ │ │ │ ├── LruCountingMemoryCache.html │ │ │ │ │ ├── MemoryCache.CacheTrimStrategy.html │ │ │ │ │ ├── MemoryCache.html │ │ │ │ │ ├── MemoryCacheParams.html │ │ │ │ │ ├── MemoryCacheTracker.html │ │ │ │ │ ├── NativeMemoryCacheTrimStrategy.html │ │ │ │ │ ├── NoOpImageCacheStatsTracker.html │ │ │ │ │ ├── StagingArea.html │ │ │ │ │ ├── ValueDescriptor.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── common/ │ │ │ │ │ ├── BytesRange.html │ │ │ │ │ ├── ImageDecodeOptions.html │ │ │ │ │ ├── ImageDecodeOptionsBuilder.html │ │ │ │ │ ├── Priority.html │ │ │ │ │ ├── ResizeOptions.html │ │ │ │ │ ├── RotationOptions.RotationAngle.html │ │ │ │ │ ├── RotationOptions.html │ │ │ │ │ ├── SourceUriType.html │ │ │ │ │ ├── TooManyBitmapsException.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── core/ │ │ │ │ │ ├── CloseableReferenceFactory.html │ │ │ │ │ ├── DefaultExecutorSupplier.html │ │ │ │ │ ├── DiskStorageCacheFactory.html │ │ │ │ │ ├── DiskStorageFactory.html │ │ │ │ │ ├── DynamicDefaultDiskStorageFactory.html │ │ │ │ │ ├── ExecutorSupplier.html │ │ │ │ │ ├── FileCacheFactory.html │ │ │ │ │ ├── ImagePipeline.html │ │ │ │ │ ├── ImagePipelineConfig.Builder.html │ │ │ │ │ ├── ImagePipelineConfig.DefaultImageRequestConfig.html │ │ │ │ │ ├── ImagePipelineConfig.html │ │ │ │ │ ├── ImagePipelineExperiments.Builder.html │ │ │ │ │ ├── ImagePipelineExperiments.DefaultProducerFactoryMethod.html │ │ │ │ │ ├── ImagePipelineExperiments.ProducerFactoryMethod.html │ │ │ │ │ ├── ImagePipelineExperiments.html │ │ │ │ │ ├── ImagePipelineFactory.html │ │ │ │ │ ├── ImageTranscoderType.html │ │ │ │ │ ├── MemoryChunkType.html │ │ │ │ │ ├── NativeCodeSetup.html │ │ │ │ │ ├── PriorityThreadFactory.html │ │ │ │ │ ├── ProducerFactory.html │ │ │ │ │ ├── ProducerSequenceFactory.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── datasource/ │ │ │ │ │ ├── AbstractProducerToDataSourceAdapter.html │ │ │ │ │ ├── BaseBitmapDataSubscriber.html │ │ │ │ │ ├── BaseBitmapReferenceDataSubscriber.html │ │ │ │ │ ├── BaseListBitmapDataSubscriber.html │ │ │ │ │ ├── CloseableProducerToDataSourceAdapter.html │ │ │ │ │ ├── ListDataSource.html │ │ │ │ │ ├── ProducerToDataSourceAdapter.html │ │ │ │ │ ├── SettableDataSource.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── debug/ │ │ │ │ │ ├── CloseableReferenceLeakTracker.Listener.html │ │ │ │ │ ├── CloseableReferenceLeakTracker.html │ │ │ │ │ ├── DebugImageTracker.html │ │ │ │ │ ├── FlipperCacheKeyFactory.html │ │ │ │ │ ├── FlipperCloseableReferenceLeakTracker.html │ │ │ │ │ ├── FlipperImageTracker.ImageDebugData.html │ │ │ │ │ ├── FlipperImageTracker.html │ │ │ │ │ ├── LruMap.html │ │ │ │ │ ├── NoOpCloseableReferenceLeakTracker.html │ │ │ │ │ ├── NoOpDebugImageTracker.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── decoder/ │ │ │ │ │ ├── DecodeException.html │ │ │ │ │ ├── DefaultImageDecoder.html │ │ │ │ │ ├── ImageDecoder.html │ │ │ │ │ ├── ImageDecoderConfig.Builder.html │ │ │ │ │ ├── ImageDecoderConfig.html │ │ │ │ │ ├── ProgressiveJpegConfig.html │ │ │ │ │ ├── ProgressiveJpegParser.html │ │ │ │ │ ├── SimpleProgressiveJpegConfig.DynamicValueConfig.html │ │ │ │ │ ├── SimpleProgressiveJpegConfig.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── drawable/ │ │ │ │ │ ├── DrawableFactory.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── filter/ │ │ │ │ │ ├── InPlaceRoundFilter.html │ │ │ │ │ ├── IterativeBoxBlurFilter.html │ │ │ │ │ ├── RenderScriptBlurFilter.html │ │ │ │ │ ├── XferRoundFilter.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── image/ │ │ │ │ │ ├── CloseableAnimatedImage.html │ │ │ │ │ ├── CloseableBitmap.html │ │ │ │ │ ├── CloseableImage.html │ │ │ │ │ ├── CloseableStaticBitmap.html │ │ │ │ │ ├── EncodedImage.html │ │ │ │ │ ├── EncodedImageOrigin.html │ │ │ │ │ ├── HasImageMetadata.html │ │ │ │ │ ├── ImageInfo.html │ │ │ │ │ ├── ImmutableQualityInfo.html │ │ │ │ │ ├── OriginalEncodedImageInfo.html │ │ │ │ │ ├── QualityInfo.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── instrumentation/ │ │ │ │ │ ├── FrescoInstrumenter.Instrumenter.html │ │ │ │ │ ├── FrescoInstrumenter.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── listener/ │ │ │ │ │ ├── BaseRequestListener.html │ │ │ │ │ ├── BaseRequestListener2.html │ │ │ │ │ ├── ForwardingRequestListener.html │ │ │ │ │ ├── ForwardingRequestListener2.html │ │ │ │ │ ├── RequestListener.html │ │ │ │ │ ├── RequestListener2.html │ │ │ │ │ ├── RequestLoggingListener.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── memory/ │ │ │ │ │ ├── AshmemMemoryChunk.html │ │ │ │ │ ├── AshmemMemoryChunkPool.html │ │ │ │ │ ├── BasePool.InvalidSizeException.html │ │ │ │ │ ├── BasePool.InvalidValueException.html │ │ │ │ │ ├── BasePool.PoolSizeViolationException.html │ │ │ │ │ ├── BasePool.SizeTooLargeException.html │ │ │ │ │ ├── BasePool.html │ │ │ │ │ ├── BitmapCounter.html │ │ │ │ │ ├── BitmapCounterConfig.Builder.html │ │ │ │ │ ├── BitmapCounterConfig.html │ │ │ │ │ ├── BitmapCounterProvider.html │ │ │ │ │ ├── BitmapPool.html │ │ │ │ │ ├── BitmapPoolBackend.html │ │ │ │ │ ├── BitmapPoolType.html │ │ │ │ │ ├── BucketMap.html │ │ │ │ │ ├── BucketsBitmapPool.html │ │ │ │ │ ├── BufferMemoryChunk.html │ │ │ │ │ ├── BufferMemoryChunkPool.html │ │ │ │ │ ├── DefaultBitmapPoolParams.html │ │ │ │ │ ├── DefaultByteArrayPoolParams.html │ │ │ │ │ ├── DefaultFlexByteArrayPoolParams.html │ │ │ │ │ ├── DefaultNativeMemoryChunkPoolParams.html │ │ │ │ │ ├── DummyBitmapPool.html │ │ │ │ │ ├── DummyTrackingInUseBitmapPool.html │ │ │ │ │ ├── FlexByteArrayPool.html │ │ │ │ │ ├── GenericByteArrayPool.html │ │ │ │ │ ├── LruBitmapPool.html │ │ │ │ │ ├── LruBucketsPoolBackend.html │ │ │ │ │ ├── MemoryChunk.html │ │ │ │ │ ├── MemoryChunkPool.html │ │ │ │ │ ├── MemoryChunkUtil.html │ │ │ │ │ ├── MemoryPooledByteBuffer.html │ │ │ │ │ ├── MemoryPooledByteBufferFactory.html │ │ │ │ │ ├── MemoryPooledByteBufferOutputStream.InvalidStreamException.html │ │ │ │ │ ├── MemoryPooledByteBufferOutputStream.html │ │ │ │ │ ├── NativeMemoryChunk.html │ │ │ │ │ ├── NativeMemoryChunkPool.html │ │ │ │ │ ├── NoOpPoolStatsTracker.html │ │ │ │ │ ├── PoolConfig.Builder.html │ │ │ │ │ ├── PoolConfig.html │ │ │ │ │ ├── PoolFactory.html │ │ │ │ │ ├── PoolParams.html │ │ │ │ │ ├── PoolStatsTracker.html │ │ │ │ │ ├── SharedByteArray.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── multiuri/ │ │ │ │ │ ├── MultiUri.Builder.html │ │ │ │ │ ├── MultiUri.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── nativecode/ │ │ │ │ │ ├── Bitmaps.html │ │ │ │ │ ├── DalvikPurgeableDecoder.html │ │ │ │ │ ├── ImagePipelineNativeLoader.html │ │ │ │ │ ├── NativeBlurFilter.html │ │ │ │ │ ├── NativeCodeInitializer.html │ │ │ │ │ ├── NativeFiltersLoader.html │ │ │ │ │ ├── NativeImageTranscoderFactory.html │ │ │ │ │ ├── NativeJpegTranscoder.html │ │ │ │ │ ├── NativeJpegTranscoderFactory.html │ │ │ │ │ ├── NativeJpegTranscoderSoLoader.html │ │ │ │ │ ├── NativeRoundingFilter.html │ │ │ │ │ ├── StaticWebpNativeLoader.html │ │ │ │ │ ├── WebpTranscoder.html │ │ │ │ │ ├── WebpTranscoderFactory.html │ │ │ │ │ ├── WebpTranscoderImpl.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── platform/ │ │ │ │ │ ├── ArtDecoder.html │ │ │ │ │ ├── DefaultDecoder.html │ │ │ │ │ ├── GingerbreadPurgeableDecoder.html │ │ │ │ │ ├── KitKatPurgeableDecoder.html │ │ │ │ │ ├── OreoDecoder.html │ │ │ │ │ ├── PlatformDecoder.html │ │ │ │ │ ├── PlatformDecoderFactory.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── postprocessors/ │ │ │ │ │ ├── BlurPostProcessor.html │ │ │ │ │ ├── IterativeBoxBlurPostProcessor.html │ │ │ │ │ ├── RoundAsCirclePostprocessor.html │ │ │ │ │ ├── RoundPostprocessor.html │ │ │ │ │ ├── RoundedCornersPostprocessor.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── producers/ │ │ │ │ │ ├── AddImageTransformMetaDataProducer.html │ │ │ │ │ ├── BaseConsumer.html │ │ │ │ │ ├── BaseNetworkFetcher.html │ │ │ │ │ ├── BaseProducerContext.html │ │ │ │ │ ├── BaseProducerContextCallbacks.html │ │ │ │ │ ├── BitmapMemoryCacheGetProducer.html │ │ │ │ │ ├── BitmapMemoryCacheKeyMultiplexProducer.html │ │ │ │ │ ├── BitmapMemoryCacheProducer.html │ │ │ │ │ ├── BitmapPrepareProducer.html │ │ │ │ │ ├── BitmapProbeProducer.html │ │ │ │ │ ├── BranchOnSeparateImagesProducer.html │ │ │ │ │ ├── Consumer.Status.html │ │ │ │ │ ├── Consumer.html │ │ │ │ │ ├── DataFetchProducer.html │ │ │ │ │ ├── DecodeProducer.html │ │ │ │ │ ├── DelayProducer.html │ │ │ │ │ ├── DelegatingConsumer.html │ │ │ │ │ ├── DiskCacheReadProducer.html │ │ │ │ │ ├── DiskCacheWriteProducer.html │ │ │ │ │ ├── EncodedCacheKeyMultiplexProducer.html │ │ │ │ │ ├── EncodedMemoryCacheProducer.html │ │ │ │ │ ├── EncodedProbeProducer.html │ │ │ │ │ ├── ExperimentalThreadHandoffProducerQueueImpl.html │ │ │ │ │ ├── FetchState.html │ │ │ │ │ ├── HttpUrlConnectionNetworkFetcher.HttpUrlConnectionNetworkFetchState.html │ │ │ │ │ ├── HttpUrlConnectionNetworkFetcher.html │ │ │ │ │ ├── InternalProducerListener.html │ │ │ │ │ ├── InternalRequestListener.html │ │ │ │ │ ├── JobScheduler.JobRunnable.html │ │ │ │ │ ├── JobScheduler.html │ │ │ │ │ ├── LocalAssetFetchProducer.html │ │ │ │ │ ├── LocalContentUriFetchProducer.html │ │ │ │ │ ├── LocalContentUriThumbnailFetchProducer.html │ │ │ │ │ ├── LocalExifThumbnailProducer.html │ │ │ │ │ ├── LocalFetchProducer.html │ │ │ │ │ ├── LocalFileFetchProducer.html │ │ │ │ │ ├── LocalResourceFetchProducer.html │ │ │ │ │ ├── LocalVideoThumbnailProducer.html │ │ │ │ │ ├── MultiplexProducer.html │ │ │ │ │ ├── NetworkFetchProducer.html │ │ │ │ │ ├── NetworkFetcher.Callback.html │ │ │ │ │ ├── NetworkFetcher.html │ │ │ │ │ ├── NullProducer.html │ │ │ │ │ ├── PartialDiskCacheProducer.html │ │ │ │ │ ├── PostprocessedBitmapMemoryCacheProducer.CachedPostprocessorConsumer.html │ │ │ │ │ ├── PostprocessedBitmapMemoryCacheProducer.html │ │ │ │ │ ├── PostprocessorProducer.html │ │ │ │ │ ├── PriorityNetworkFetcher.NonrecoverableException.html │ │ │ │ │ ├── PriorityNetworkFetcher.PriorityFetchState.html │ │ │ │ │ ├── PriorityNetworkFetcher.html │ │ │ │ │ ├── PriorityStarvingThrottlingProducer.html │ │ │ │ │ ├── Producer.html │ │ │ │ │ ├── ProducerContext.ExtraKeys.html │ │ │ │ │ ├── ProducerContext.html │ │ │ │ │ ├── ProducerContextCallbacks.html │ │ │ │ │ ├── ProducerListener.html │ │ │ │ │ ├── ProducerListener2.html │ │ │ │ │ ├── QualifiedResourceFetchProducer.html │ │ │ │ │ ├── RemoveImageTransformMetaDataProducer.html │ │ │ │ │ ├── ResizeAndRotateProducer.html │ │ │ │ │ ├── SettableProducerContext.html │ │ │ │ │ ├── StatefulProducerRunnable.html │ │ │ │ │ ├── SwallowResultProducer.html │ │ │ │ │ ├── ThreadHandoffProducer.html │ │ │ │ │ ├── ThreadHandoffProducerQueue.html │ │ │ │ │ ├── ThreadHandoffProducerQueueImpl.html │ │ │ │ │ ├── ThrottlingProducer.html │ │ │ │ │ ├── ThumbnailBranchProducer.html │ │ │ │ │ ├── ThumbnailProducer.html │ │ │ │ │ ├── ThumbnailSizeChecker.html │ │ │ │ │ ├── WebpTranscodeProducer.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── request/ │ │ │ │ │ ├── BasePostprocessor.html │ │ │ │ │ ├── BaseRepeatedPostProcessor.html │ │ │ │ │ ├── HasImageRequest.html │ │ │ │ │ ├── ImageRequest.CacheChoice.html │ │ │ │ │ ├── ImageRequest.RequestLevel.html │ │ │ │ │ ├── ImageRequest.html │ │ │ │ │ ├── ImageRequestBuilder.BuilderException.html │ │ │ │ │ ├── ImageRequestBuilder.html │ │ │ │ │ ├── Postprocessor.html │ │ │ │ │ ├── RepeatedPostprocessor.html │ │ │ │ │ ├── RepeatedPostprocessorRunner.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── systrace/ │ │ │ │ │ ├── DefaultFrescoSystrace.html │ │ │ │ │ ├── FrescoSystrace.ArgsBuilder.html │ │ │ │ │ ├── FrescoSystrace.Systrace.html │ │ │ │ │ ├── FrescoSystrace.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ ├── transcoder/ │ │ │ │ │ ├── DownsampleUtil.html │ │ │ │ │ ├── ImageTranscodeResult.html │ │ │ │ │ ├── ImageTranscoder.html │ │ │ │ │ ├── ImageTranscoderFactory.html │ │ │ │ │ ├── JpegTranscoderUtils.html │ │ │ │ │ ├── MultiImageTranscoderFactory.html │ │ │ │ │ ├── SimpleImageTranscoder.html │ │ │ │ │ ├── SimpleImageTranscoderFactory.html │ │ │ │ │ ├── TranscodeStatus.html │ │ │ │ │ ├── package-descr.html │ │ │ │ │ └── package-summary.html │ │ │ │ └── transformation/ │ │ │ │ ├── BitmapTransformation.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── imageutils/ │ │ │ │ ├── BitmapUtil.html │ │ │ │ ├── HeifExifUtil.html │ │ │ │ ├── ImageMetaData.html │ │ │ │ ├── JfifUtil.html │ │ │ │ ├── WebpUtil.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ ├── webpsupport/ │ │ │ │ ├── WebpBitmapFactoryImpl.html │ │ │ │ ├── package-descr.html │ │ │ │ └── package-summary.html │ │ │ └── widget/ │ │ │ └── text/ │ │ │ └── span/ │ │ │ ├── BetterImageSpan.BetterImageSpanAlignment.html │ │ │ ├── BetterImageSpan.html │ │ │ ├── package-descr.html │ │ │ └── package-summary.html │ │ ├── current.xml │ │ ├── hierarchy.html │ │ ├── index.html │ │ ├── lists.js │ │ ├── package-list │ │ └── packages.html │ ├── sample-license.md │ ├── static/ │ │ ├── JSXTransformer.js │ │ ├── js/ │ │ │ └── docsearch.js │ │ ├── linkify.js │ │ ├── pygments.css │ │ ├── sample-images/ │ │ │ └── animation.keyframes │ │ ├── site.css │ │ └── transformer.js │ └── support.md ├── drawee/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── drawee/ │ │ │ ├── components/ │ │ │ │ ├── DeferredReleaser.java │ │ │ │ ├── DeferredReleaserConcurrentImpl.java │ │ │ │ ├── DraweeEventTracker.java │ │ │ │ └── RetryManager.java │ │ │ ├── controller/ │ │ │ │ ├── AbstractDraweeController.java │ │ │ │ ├── AbstractDraweeControllerBuilder.java │ │ │ │ ├── BaseControllerListener.java │ │ │ │ ├── ControllerListener.java │ │ │ │ ├── ControllerViewportVisibilityListener.java │ │ │ │ ├── ForwardingControllerListener.java │ │ │ │ └── package-info.java │ │ │ ├── debug/ │ │ │ │ ├── DebugControllerOverlayDrawable.java │ │ │ │ └── listener/ │ │ │ │ ├── ImageLoadingTimeControllerListener.kt │ │ │ │ └── ImageLoadingTimeListener.kt │ │ │ ├── drawable/ │ │ │ │ ├── ArrayDrawable.java │ │ │ │ ├── AutoRotateDrawable.java │ │ │ │ ├── CloneableDrawable.kt │ │ │ │ ├── DrawableParent.kt │ │ │ │ ├── DrawableProperties.kt │ │ │ │ ├── DrawableUtils.kt │ │ │ │ ├── FadeDrawable.java │ │ │ │ ├── ForwardingDrawable.java │ │ │ │ ├── InstrumentedDrawable.kt │ │ │ │ ├── MatrixDrawable.java │ │ │ │ ├── OrientedDrawable.kt │ │ │ │ ├── ProgressBarDrawable.kt │ │ │ │ ├── Rounded.kt │ │ │ │ ├── RoundedBitmapDrawable.java │ │ │ │ ├── RoundedColorDrawable.java │ │ │ │ ├── RoundedCornersDrawable.java │ │ │ │ ├── RoundedDrawable.java │ │ │ │ ├── RoundedNinePatchDrawable.kt │ │ │ │ ├── ScaleTypeDrawable.kt │ │ │ │ ├── TransformAwareDrawable.kt │ │ │ │ ├── TransformCallback.kt │ │ │ │ ├── VisibilityAwareDrawable.kt │ │ │ │ ├── VisibilityCallback.kt │ │ │ │ └── package-info.kt │ │ │ ├── generic/ │ │ │ │ ├── GenericDraweeHierarchy.java │ │ │ │ ├── GenericDraweeHierarchyBuilder.java │ │ │ │ ├── GenericDraweeHierarchyInflater.java │ │ │ │ ├── RootDrawable.java │ │ │ │ ├── RoundingParams.java │ │ │ │ ├── WrappingUtils.java │ │ │ │ └── package-info.java │ │ │ ├── gestures/ │ │ │ │ └── GestureDetector.java │ │ │ ├── interfaces/ │ │ │ │ ├── DraweeController.java │ │ │ │ ├── DraweeHierarchy.java │ │ │ │ ├── SettableDraweeHierarchy.java │ │ │ │ ├── SimpleDraweeControllerBuilder.java │ │ │ │ └── package-info.java │ │ │ └── view/ │ │ │ ├── AspectRatioMeasure.java │ │ │ ├── DraweeHolder.java │ │ │ ├── DraweeTransition.java │ │ │ ├── DraweeView.java │ │ │ ├── GenericDraweeView.java │ │ │ ├── MultiDraweeHolder.java │ │ │ ├── SimpleDraweeView.java │ │ │ └── package-info.java │ │ └── res/ │ │ └── values/ │ │ └── attrs.xml │ └── test/ │ ├── java/ │ │ ├── com/ │ │ │ └── facebook/ │ │ │ └── drawee/ │ │ │ ├── components/ │ │ │ │ └── DeferredReleaserStressTest.java │ │ │ ├── controller/ │ │ │ │ └── AbstractDraweeControllerTest.java │ │ │ ├── debug/ │ │ │ │ ├── DebugControllerOverlayDrawableInternalTest.java │ │ │ │ ├── DebugControllerOverlayDrawableTest.java │ │ │ │ └── DebugControllerOverlayDrawableTestHelper.java │ │ │ ├── drawable/ │ │ │ │ ├── AndroidGraphicsTestUtils.java │ │ │ │ ├── ArrayDrawableTest.java │ │ │ │ ├── DrawableTestUtils.java │ │ │ │ ├── DrawableUtilsTest.java │ │ │ │ ├── FadeDrawableAllOnTest.java │ │ │ │ ├── FadeDrawableOnFadeListenerTest.java │ │ │ │ ├── FadeDrawableTest.java │ │ │ │ ├── ForwardingDrawableTest.java │ │ │ │ ├── MatrixDrawableTest.java │ │ │ │ ├── OrientedDrawableTest.java │ │ │ │ ├── RoundedBitmapDrawableTest.java │ │ │ │ ├── RoundedColorDrawableTest.java │ │ │ │ ├── RoundedCornersDrawableTest.java │ │ │ │ ├── ScaleTypeDrawableTest.java │ │ │ │ ├── ScalingUtilsTest.java │ │ │ │ └── SettableDrawableTest.java │ │ │ ├── generic/ │ │ │ │ ├── GenericDraweeHierarchyBuilderTest.java │ │ │ │ └── RoundingParamsTest.java │ │ │ ├── testing/ │ │ │ │ ├── DraweeMocks.java │ │ │ │ └── DraweeMocksTest.java │ │ │ └── view/ │ │ │ ├── AspectRatioMeasureTest.java │ │ │ ├── DraweeHolderTest.java │ │ │ ├── DraweeViewTest.java │ │ │ └── MultiDraweeHolderTest.java │ │ └── javax/ │ │ └── microedition/ │ │ └── khronos/ │ │ └── opengles/ │ │ └── GL.java │ └── resources/ │ └── org.robolectric.Config.properties ├── drawee-backends/ │ └── drawee-pipeline/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── drawee/ │ │ └── backends/ │ │ └── pipeline/ │ │ ├── DefaultDrawableFactory.java │ │ ├── DraweeConfig.java │ │ ├── Fresco.java │ │ ├── PipelineDraweeController.java │ │ ├── PipelineDraweeControllerBuilder.java │ │ ├── PipelineDraweeControllerBuilderSupplier.java │ │ ├── PipelineDraweeControllerFactory.java │ │ ├── info/ │ │ │ ├── ForwardingImageOriginListener.java │ │ │ ├── ForwardingImagePerfDataListener.java │ │ │ ├── ImageOrigin.kt │ │ │ ├── ImageOriginListener.java │ │ │ ├── ImageOriginRequestListener.java │ │ │ ├── ImageOriginUtils.java │ │ │ ├── ImagePerfExtra.kt │ │ │ ├── ImagePerfMonitor.java │ │ │ └── internal/ │ │ │ ├── ImagePerfRequestListener.java │ │ │ └── ImagePerfStateManager.java │ │ └── package-info.java │ └── test/ │ └── java/ │ └── com/ │ └── facebook/ │ └── drawee/ │ └── backends/ │ └── pipeline/ │ └── info/ │ └── ImagePerfMonitorTest.java ├── drawee-span/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── drawee/ │ │ └── span/ │ │ ├── DraweeSpan.java │ │ ├── DraweeSpanStringBuilder.java │ │ └── SimpleDraweeSpanTextView.java │ └── test/ │ └── java/ │ └── com/ │ └── facebook/ │ └── drawee/ │ └── span/ │ ├── DraweeSpanStringBuilderTest.java │ └── DraweeSpanTest.java ├── fbcore/ │ ├── AndroidManifest.xml │ ├── build.gradle │ ├── gradle.properties │ ├── proguard-fresco.pro │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ ├── com/ │ │ │ └── facebook/ │ │ │ ├── common/ │ │ │ │ ├── activitylistener/ │ │ │ │ │ ├── ActivityListener.java │ │ │ │ │ ├── ActivityListenerManager.java │ │ │ │ │ ├── BaseActivityListener.java │ │ │ │ │ └── ListenableActivity.java │ │ │ │ ├── callercontext/ │ │ │ │ │ ├── ContextChain.java │ │ │ │ │ └── ImageAttribution.java │ │ │ │ ├── closeables/ │ │ │ │ │ └── AutoCleanupDelegate.kt │ │ │ │ ├── disk/ │ │ │ │ │ ├── DiskTrimmable.kt │ │ │ │ │ ├── DiskTrimmableRegistry.kt │ │ │ │ │ ├── NoOpDiskTrimmableRegistry.kt │ │ │ │ │ └── package-info.kt │ │ │ │ ├── executors/ │ │ │ │ │ ├── CallerThreadExecutor.java │ │ │ │ │ ├── ConstrainedExecutorService.java │ │ │ │ │ ├── DefaultSerialExecutorService.java │ │ │ │ │ ├── HandlerExecutorService.java │ │ │ │ │ ├── HandlerExecutorServiceImpl.java │ │ │ │ │ ├── ScheduledFutureImpl.java │ │ │ │ │ ├── SerialExecutorService.java │ │ │ │ │ ├── StatefulRunnable.java │ │ │ │ │ └── UiThreadImmediateExecutorService.java │ │ │ │ ├── file/ │ │ │ │ │ ├── FileTree.java │ │ │ │ │ ├── FileTreeVisitor.java │ │ │ │ │ └── FileUtils.java │ │ │ │ ├── internal/ │ │ │ │ │ ├── AndroidPredicates.java │ │ │ │ │ ├── ByteStreams.java │ │ │ │ │ ├── Closeables.java │ │ │ │ │ ├── CountingOutputStream.java │ │ │ │ │ ├── DoNotStrip.java │ │ │ │ │ ├── Files.java │ │ │ │ │ ├── Fn.java │ │ │ │ │ ├── ImmutableList.java │ │ │ │ │ ├── ImmutableMap.java │ │ │ │ │ ├── ImmutableSet.java │ │ │ │ │ ├── Objects.java │ │ │ │ │ ├── Preconditions.java │ │ │ │ │ ├── Predicate.java │ │ │ │ │ ├── Sets.java │ │ │ │ │ ├── Supplier.java │ │ │ │ │ ├── Suppliers.java │ │ │ │ │ ├── Throwables.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ └── proguard_annotations.pro │ │ │ │ ├── lifecycle/ │ │ │ │ │ └── AttachDetachListener.kt │ │ │ │ ├── logging/ │ │ │ │ │ ├── FLog.kt │ │ │ │ │ ├── FLogDefaultLoggingDelegate.java │ │ │ │ │ ├── LoggingDelegate.java │ │ │ │ │ ├── logging.pro │ │ │ │ │ └── package-info.java │ │ │ │ ├── media/ │ │ │ │ │ ├── MediaUtils.kt │ │ │ │ │ └── MimeTypeMapWrapper.kt │ │ │ │ ├── memory/ │ │ │ │ │ ├── ByteArrayPool.java │ │ │ │ │ ├── DecodeBufferHelper.java │ │ │ │ │ ├── MemoryTrimType.java │ │ │ │ │ ├── MemoryTrimmable.java │ │ │ │ │ ├── MemoryTrimmableRegistry.java │ │ │ │ │ ├── NoOpMemoryTrimmableRegistry.java │ │ │ │ │ ├── Pool.java │ │ │ │ │ ├── PooledByteArrayBufferedInputStream.java │ │ │ │ │ ├── PooledByteBuffer.kt │ │ │ │ │ ├── PooledByteBufferFactory.java │ │ │ │ │ ├── PooledByteBufferInputStream.java │ │ │ │ │ ├── PooledByteBufferOutputStream.java │ │ │ │ │ ├── PooledByteStreams.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── references/ │ │ │ │ │ ├── CloseableReference.java │ │ │ │ │ ├── DefaultCloseableReference.java │ │ │ │ │ ├── FinalizerCloseableReference.java │ │ │ │ │ ├── HasBitmap.java │ │ │ │ │ ├── NoOpCloseableReference.java │ │ │ │ │ ├── OOMSoftReference.java │ │ │ │ │ ├── RefCountCloseableReference.java │ │ │ │ │ ├── ResourceReleaser.java │ │ │ │ │ ├── SharedReference.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── statfs/ │ │ │ │ │ └── StatFsHelper.java │ │ │ │ ├── streams/ │ │ │ │ │ ├── LimitedInputStream.kt │ │ │ │ │ └── TailAppendingInputStream.kt │ │ │ │ ├── time/ │ │ │ │ │ ├── AwakeTimeSinceBootClock.java │ │ │ │ │ ├── Clock.java │ │ │ │ │ ├── CurrentThreadTimeClock.java │ │ │ │ │ ├── MonotonicClock.java │ │ │ │ │ ├── MonotonicNanoClock.java │ │ │ │ │ ├── RealtimeSinceBootClock.java │ │ │ │ │ └── SystemClock.java │ │ │ │ ├── util/ │ │ │ │ │ ├── ByteConstants.java │ │ │ │ │ ├── ExceptionWithNoStacktrace.java │ │ │ │ │ ├── HashCodeUtil.kt │ │ │ │ │ ├── Hex.kt │ │ │ │ │ ├── SecureHashUtil.kt │ │ │ │ │ ├── StreamUtil.java │ │ │ │ │ ├── TriState.java │ │ │ │ │ └── UriUtil.java │ │ │ │ └── webp/ │ │ │ │ ├── BitmapCreator.java │ │ │ │ ├── WebpBitmapFactory.java │ │ │ │ └── WebpSupportStatus.java │ │ │ ├── datasource/ │ │ │ │ ├── AbstractDataSource.java │ │ │ │ ├── BaseBooleanSubscriber.java │ │ │ │ ├── BaseDataSubscriber.java │ │ │ │ ├── DataSource.java │ │ │ │ ├── DataSources.java │ │ │ │ ├── DataSubscriber.java │ │ │ │ ├── FirstAvailableDataSourceSupplier.java │ │ │ │ ├── IncreasingQualityDataSourceSupplier.java │ │ │ │ ├── RetainingDataSourceSupplier.java │ │ │ │ ├── SimpleDataSource.kt │ │ │ │ ├── SuccessfulVoidDataSource.kt │ │ │ │ └── package-info.java │ │ │ ├── memory/ │ │ │ │ └── helper/ │ │ │ │ └── HashCode.kt │ │ │ └── widget/ │ │ │ └── text/ │ │ │ └── span/ │ │ │ └── BetterImageSpan.java │ │ └── pom.xml │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── facebook/ │ │ ├── common/ │ │ │ ├── callercontext/ │ │ │ │ └── ContextChainTest.kt │ │ │ ├── executors/ │ │ │ │ ├── HandlerExecutorServiceImplTest.java │ │ │ │ └── StatefulRunnableTest.java │ │ │ ├── file/ │ │ │ │ └── FileUtilsTest.java │ │ │ ├── media/ │ │ │ │ └── MediaUtilsTest.java │ │ │ ├── references/ │ │ │ │ ├── CloseableReferenceTest.java │ │ │ │ └── SharedReferenceTest.java │ │ │ ├── streams/ │ │ │ │ ├── LimitedInputStreamTest.java │ │ │ │ └── TailAppendingInputStreamTest.java │ │ │ └── util/ │ │ │ ├── HashCodeUtilTest.java │ │ │ ├── StreamUtilTest.java │ │ │ ├── TriStateTest.java │ │ │ └── UriUtilTest.java │ │ ├── datasource/ │ │ │ ├── AbstractDataSourceTest.java │ │ │ ├── DataSourceTestUtils.java │ │ │ ├── DataSourcesTest.java │ │ │ ├── FirstAvailableDataSourceSupplierTest.java │ │ │ └── IncreasingQualityDataSourceSupplierTest.java │ │ └── widget/ │ │ └── text/ │ │ └── span/ │ │ ├── BetterImageSpanMarginTest.java │ │ └── BetterImageSpanTest.java │ └── resources/ │ └── robolectric.properties ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── imagepipeline/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── imagepipeline/ │ │ ├── bitmaps/ │ │ │ ├── Api31BitmapFactory.kt │ │ │ ├── ArtBitmapFactory.kt │ │ │ ├── EmptyJpegGenerator.kt │ │ │ ├── HoneycombBitmapCreator.kt │ │ │ └── PlatformBitmapFactoryProvider.kt │ │ ├── cache/ │ │ │ ├── BitmapMemoryCacheKey.kt │ │ │ ├── BufferedDiskCache.kt │ │ │ ├── CacheKeyFactory.kt │ │ │ ├── CacheMissException.kt │ │ │ ├── DefaultBitmapMemoryCacheParamsSupplier.java │ │ │ ├── DefaultCacheKeyFactory.java │ │ │ ├── DefaultEncodedMemoryCacheParamsSupplier.java │ │ │ ├── EncodedCountingMemoryCacheFactory.java │ │ │ ├── EncodedMemoryCacheFactory.java │ │ │ ├── ImageCacheStatsTracker.kt │ │ │ ├── InstrumentedMemoryCache.java │ │ │ ├── InstrumentedMemoryCacheBitmapMemoryCacheFactory.java │ │ │ ├── MemoryCacheTracker.kt │ │ │ ├── NativeMemoryCacheTrimStrategy.java │ │ │ ├── NoOpImageCacheStatsTracker.java │ │ │ ├── StagingArea.java │ │ │ └── package-info.kt │ │ ├── core/ │ │ │ ├── CloseableReferenceFactory.java │ │ │ ├── DiskCachesStore.kt │ │ │ ├── DiskCachesStoreFactory.kt │ │ │ ├── DiskStorageCacheFactory.java │ │ │ ├── DiskStorageFactory.kt │ │ │ ├── DownsampleMode.kt │ │ │ ├── DynamicDefaultDiskStorageFactory.java │ │ │ ├── FileCacheFactory.kt │ │ │ ├── ImagePipeline.kt │ │ │ ├── ImagePipelineConfig.kt │ │ │ ├── ImagePipelineConfigInterface.kt │ │ │ ├── ImagePipelineExperiments.kt │ │ │ ├── ImagePipelineFactory.java │ │ │ ├── ImageTranscoderType.java │ │ │ ├── MemoryChunkType.java │ │ │ ├── NativeCodeSetup.java │ │ │ ├── ProducerFactory.kt │ │ │ ├── ProducerSequenceFactory.kt │ │ │ └── package-info.kt │ │ ├── datasource/ │ │ │ ├── AbstractProducerToDataSourceAdapter.kt │ │ │ ├── BaseBitmapDataSubscriber.kt │ │ │ ├── BaseBitmapReferenceDataSubscriber.kt │ │ │ ├── BaseListBitmapDataSubscriber.kt │ │ │ ├── CloseableProducerToDataSourceAdapter.java │ │ │ ├── ListDataSource.java │ │ │ ├── ProducerToDataSourceAdapter.kt │ │ │ ├── SettableDataSource.kt │ │ │ └── package-info.kt │ │ ├── debug/ │ │ │ ├── CloseableReferenceLeakTracker.kt │ │ │ └── NoOpCloseableReferenceLeakTracker.kt │ │ ├── decoder/ │ │ │ ├── DecodeException.kt │ │ │ ├── DefaultImageDecoder.java │ │ │ ├── ImageDecoderConfig.java │ │ │ ├── ProgressiveJpegConfig.java │ │ │ ├── ProgressiveJpegParser.java │ │ │ ├── SimpleProgressiveJpegConfig.java │ │ │ └── package-info.kt │ │ ├── filter/ │ │ │ ├── InPlaceRoundFilter.kt │ │ │ ├── IterativeBoxBlurFilter.kt │ │ │ ├── NTSCDampeningFilterUtil.kt │ │ │ ├── RenderScriptBlurFilter.kt │ │ │ └── XferRoundFilter.kt │ │ ├── listener/ │ │ │ ├── BaseRequestListener.kt │ │ │ ├── BaseRequestListener2.kt │ │ │ ├── ForwardingRequestListener.java │ │ │ ├── ForwardingRequestListener2.kt │ │ │ ├── RequestListener.java │ │ │ ├── RequestListener2.java │ │ │ ├── RequestLoggingListener.kt │ │ │ └── package-info.kt │ │ ├── memory/ │ │ │ ├── BasePool.kt │ │ │ ├── BitmapCounter.java │ │ │ ├── BitmapCounterConfig.kt │ │ │ ├── BitmapCounterProvider.kt │ │ │ ├── BitmapPool.kt │ │ │ ├── BitmapPoolBackend.kt │ │ │ ├── BitmapPoolType.kt │ │ │ ├── Bucket.java │ │ │ ├── BucketMap.java │ │ │ ├── BucketsBitmapPool.kt │ │ │ ├── DefaultBitmapPoolParams.kt │ │ │ ├── DefaultByteArrayPoolParams.kt │ │ │ ├── DefaultFlexByteArrayPoolParams.kt │ │ │ ├── DefaultNativeMemoryChunkPoolParams.kt │ │ │ ├── DummyBitmapPool.kt │ │ │ ├── DummyTrackingInUseBitmapPool.kt │ │ │ ├── FlexByteArrayPool.kt │ │ │ ├── GenericByteArrayPool.kt │ │ │ ├── LruBitmapPool.java │ │ │ ├── LruBucketsPoolBackend.java │ │ │ ├── MemoryChunk.kt │ │ │ ├── MemoryChunkPool.java │ │ │ ├── MemoryChunkUtil.kt │ │ │ ├── MemoryPooledByteBuffer.kt │ │ │ ├── MemoryPooledByteBufferFactory.kt │ │ │ ├── MemoryPooledByteBufferOutputStream.kt │ │ │ ├── NoOpPoolStatsTracker.java │ │ │ ├── OOMSoftReferenceBucket.java │ │ │ ├── PoolBackend.kt │ │ │ ├── PoolConfig.kt │ │ │ ├── PoolFactory.kt │ │ │ ├── PoolParams.java │ │ │ ├── PoolStatsTracker.kt │ │ │ ├── SharedByteArray.java │ │ │ └── package-info.kt │ │ ├── multiuri/ │ │ │ └── MultiUri.java │ │ ├── platform/ │ │ │ ├── ArtDecoder.kt │ │ │ ├── DefaultDecoder.java │ │ │ ├── OreoDecoder.kt │ │ │ ├── PlatformDecoder.kt │ │ │ ├── PlatformDecoderFactory.kt │ │ │ ├── PlatformDecoderOptions.kt │ │ │ └── PreverificationHelper.kt │ │ ├── postprocessors/ │ │ │ ├── BlurPostProcessor.kt │ │ │ ├── DownScaleBlurPostProcessor.kt │ │ │ ├── RoundPostprocessor.kt │ │ │ └── TintPostProcessor.kt │ │ ├── producers/ │ │ │ ├── AddImageTransformMetaDataProducer.java │ │ │ ├── BaseConsumer.kt │ │ │ ├── BaseNetworkFetcher.kt │ │ │ ├── BaseProducerContext.java │ │ │ ├── BaseProducerContextCallbacks.kt │ │ │ ├── BitmapMemoryCacheGetProducer.kt │ │ │ ├── BitmapMemoryCacheKeyMultiplexProducer.java │ │ │ ├── BitmapMemoryCacheProducer.java │ │ │ ├── BitmapPrepareProducer.java │ │ │ ├── BitmapProbeProducer.java │ │ │ ├── BranchOnSeparateImagesProducer.java │ │ │ ├── Consumer.kt │ │ │ ├── CustomProducerSequenceFactory.java │ │ │ ├── DataFetchProducer.java │ │ │ ├── DecodeProducer.kt │ │ │ ├── DelayProducer.kt │ │ │ ├── DelegatingConsumer.kt │ │ │ ├── DiskCacheDecision.kt │ │ │ ├── DiskCacheReadProducer.java │ │ │ ├── DiskCacheWriteProducer.kt │ │ │ ├── EncodedCacheKeyMultiplexProducer.java │ │ │ ├── EncodedMemoryCacheProducer.java │ │ │ ├── EncodedProbeProducer.java │ │ │ ├── ExperimentalThreadHandoffProducerQueueImpl.kt │ │ │ ├── FetchState.kt │ │ │ ├── HttpUrlConnectionNetworkFetcher.java │ │ │ ├── InternalProducerListener.kt │ │ │ ├── InternalRequestListener.kt │ │ │ ├── JobScheduler.java │ │ │ ├── LocalAssetFetchProducer.kt │ │ │ ├── LocalContentUriFetchProducer.kt │ │ │ ├── LocalContentUriThumbnailFetchProducer.java │ │ │ ├── LocalExifThumbnailProducer.java │ │ │ ├── LocalFetchProducer.java │ │ │ ├── LocalFileFetchProducer.kt │ │ │ ├── LocalResourceFetchProducer.kt │ │ │ ├── LocalThumbnailBitmapSdk29Producer.java │ │ │ ├── LocalVideoThumbnailProducer.java │ │ │ ├── MultiplexProducer.java │ │ │ ├── NetworkFetchProducer.java │ │ │ ├── NetworkFetcher.java │ │ │ ├── PartialDiskCacheProducer.java │ │ │ ├── PostprocessedBitmapMemoryCacheProducer.java │ │ │ ├── PostprocessorProducer.kt │ │ │ ├── PriorityStarvingThrottlingProducer.java │ │ │ ├── Producer.kt │ │ │ ├── ProducerConstants.kt │ │ │ ├── ProducerContext.kt │ │ │ ├── ProducerContextCallbacks.kt │ │ │ ├── ProducerListener.java │ │ │ ├── ProducerListener2.java │ │ │ ├── QualifiedResourceFetchProducer.kt │ │ │ ├── RemoveImageTransformMetaDataProducer.kt │ │ │ ├── ResizeAndRotateProducer.java │ │ │ ├── SettableProducerContext.java │ │ │ ├── StatefulProducerRunnable.kt │ │ │ ├── SwallowResultProducer.java │ │ │ ├── ThreadHandoffProducer.kt │ │ │ ├── ThreadHandoffProducerQueue.java │ │ │ ├── ThreadHandoffProducerQueueImpl.kt │ │ │ ├── ThrottlingProducer.java │ │ │ ├── ThumbnailBranchProducer.java │ │ │ ├── ThumbnailProducer.kt │ │ │ ├── ThumbnailSizeChecker.kt │ │ │ └── package-info.kt │ │ ├── request/ │ │ │ ├── BasePostprocessor.java │ │ │ ├── BaseRepeatedPostProcessor.kt │ │ │ ├── HasImageRequest.kt │ │ │ ├── ImageRequest.java │ │ │ ├── ImageRequestBuilder.java │ │ │ ├── Postprocessor.java │ │ │ ├── RepeatedPostprocessor.kt │ │ │ ├── RepeatedPostprocessorRunner.kt │ │ │ └── package-info.kt │ │ ├── transcoder/ │ │ │ ├── MultiImageTranscoderFactory.kt │ │ │ ├── SimpleImageTranscoder.kt │ │ │ └── SimpleImageTranscoderFactory.kt │ │ └── xml/ │ │ ├── XmlDrawableFactory.kt │ │ └── XmlFormatDecoder.kt │ └── test/ │ ├── java/ │ │ ├── com/ │ │ │ └── facebook/ │ │ │ ├── common/ │ │ │ │ └── memory/ │ │ │ │ ├── PooledByteArrayBufferedInputStreamTest.kt │ │ │ │ ├── PooledByteBufferInputStreamTest.kt │ │ │ │ └── PooledByteStreamsTest.kt │ │ │ └── imagepipeline/ │ │ │ ├── cache/ │ │ │ │ ├── BufferedDiskCacheTest.kt │ │ │ │ └── StagingAreaTest.kt │ │ │ ├── core/ │ │ │ │ ├── ImagePipelineConfigTest.kt │ │ │ │ ├── ImagePipelineTest.java │ │ │ │ └── ProducerSequenceFactoryTest.java │ │ │ ├── datasource/ │ │ │ │ ├── CloseableProducerToDataSourceAdapterTest.kt │ │ │ │ ├── ListDataSourceTest.kt │ │ │ │ └── ProducerToDataSourceAdapterTest.kt │ │ │ ├── decoder/ │ │ │ │ └── ProgressiveJpegParserTest.kt │ │ │ ├── filter/ │ │ │ │ ├── InPlaceRoundFilterTest.kt │ │ │ │ ├── IterativeBoxBlurFilterTest.kt │ │ │ │ ├── RenderScriptBlurFilterTest.kt │ │ │ │ └── XferRoundFilterTest.kt │ │ │ ├── memory/ │ │ │ │ ├── BasePoolTest.kt │ │ │ │ ├── BitmapCounterTest.kt │ │ │ │ ├── BitmapPoolTest.java │ │ │ │ ├── BucketMapTest.kt │ │ │ │ ├── CloseableReferences.java │ │ │ │ ├── FlexByteArrayPoolTest.java │ │ │ │ ├── GenericByteArrayPoolTest.java │ │ │ │ ├── LruBitmapPoolTest.kt │ │ │ │ └── SharedByteArrayTest.java │ │ │ ├── platform/ │ │ │ │ └── ArtDecoderTest.kt │ │ │ ├── prioritization/ │ │ │ │ └── PriorityTest.kt │ │ │ ├── producers/ │ │ │ │ ├── AddImageTransformMetaDataProducerTest.java │ │ │ │ ├── BaseConsumerTest.kt │ │ │ │ ├── BitmapMemoryCacheGetProducerTest.java │ │ │ │ ├── BitmapMemoryCacheProducerTest.java │ │ │ │ ├── BitmapPrepareProducerTest.java │ │ │ │ ├── BranchOnSeparateImagesProducerTest.java │ │ │ │ ├── DataFetchProducerTest.kt │ │ │ │ ├── DecodeProducerTest.java │ │ │ │ ├── DiskCacheReadProducerTest.java │ │ │ │ ├── DiskCacheWriteProducerTest.java │ │ │ │ ├── DownsampleUtilTest.kt │ │ │ │ ├── EncodedMemoryCacheProducerTest.java │ │ │ │ ├── HttpUrlConnectionNetworkFetcherTest.kt │ │ │ │ ├── JobSchedulerTest.kt │ │ │ │ ├── LocalAssetFetchProducerTest.kt │ │ │ │ ├── LocalContentUriFetchProducerTest.kt │ │ │ │ ├── LocalContentUriThumbnailFetchProducerTest.kt │ │ │ │ ├── LocalExifThumbnailProducerTest.kt │ │ │ │ ├── LocalFileFetchProducerTest.kt │ │ │ │ ├── LocalResourceFetchProducerTest.kt │ │ │ │ ├── LocalVideoThumbnailProducerTest.kt │ │ │ │ ├── MultiplexProducerTest.java │ │ │ │ ├── NetworkFetchProducerTest.java │ │ │ │ ├── NetworkFetcherCallbackTest.java │ │ │ │ ├── PartialDiskCacheProducerTest.java │ │ │ │ ├── PostprocessedBitmapMemoryCacheProducerTest.java │ │ │ │ ├── PriorityStarvingThrottlingProducerTest.java │ │ │ │ ├── QualifiedResourceFetchProducerTest.kt │ │ │ │ ├── RemoveImageTransformMetaDataProducerTest.java │ │ │ │ ├── RepeatedPostprocessorProducerTest.java │ │ │ │ ├── ResizeAndRotateProducerTest.kt │ │ │ │ ├── SettableProducerContextTest.kt │ │ │ │ ├── SingleUsePostprocessorProducerTest.java │ │ │ │ ├── StatefulProducerRunnableTest.kt │ │ │ │ ├── SwallowResultProducerTest.java │ │ │ │ ├── ThreadHandoffProducerTest.kt │ │ │ │ ├── ThrottlingProducerTest.java │ │ │ │ ├── ThumbnailBranchProducerTest.java │ │ │ │ └── ThumbnailSizeCheckerTest.kt │ │ │ └── request/ │ │ │ ├── ForwardingRequestListenerTest.kt │ │ │ ├── ImageRequestBuilderCacheEnabledTest.kt │ │ │ └── ImageRequestTest.kt │ │ └── org/ │ │ └── mockito/ │ │ └── configuration/ │ │ └── MockitoConfiguration.java │ └── resources/ │ ├── org/ │ │ └── powermock/ │ │ └── extensions/ │ │ └── configuration.properties │ └── org.robolectric.Config.properties ├── imagepipeline-backends/ │ ├── imagepipeline-okhttp3/ │ │ ├── build.gradle │ │ ├── gradle.properties │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── imagepipeline/ │ │ └── backends/ │ │ └── okhttp3/ │ │ ├── OkHttpImagePipelineConfigFactory.kt │ │ ├── OkHttpNetworkFetcher.kt │ │ ├── OkHttpNetworkFetcherException.kt │ │ └── package-info.kt │ └── imagepipeline-volley/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── imagepipeline/ │ └── backends/ │ └── volley/ │ ├── RawRequest.java │ ├── VolleyImagePipelineConfigFactory.java │ └── VolleyNetworkFetcher.java ├── imagepipeline-base/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ ├── binaryresource/ │ │ │ ├── BinaryResource.kt │ │ │ ├── ByteArrayBinaryResource.kt │ │ │ └── FileBinaryResource.kt │ │ ├── cache/ │ │ │ ├── common/ │ │ │ │ ├── BaseCacheEventListener.java │ │ │ │ ├── CacheErrorLogger.java │ │ │ │ ├── CacheEvent.java │ │ │ │ ├── CacheEventListener.java │ │ │ │ ├── CacheKey.java │ │ │ │ ├── CacheKeyUtil.kt │ │ │ │ ├── DebuggingCacheKey.java │ │ │ │ ├── HasDebugData.kt │ │ │ │ ├── MultiCacheKey.java │ │ │ │ ├── NoOpCacheErrorLogger.java │ │ │ │ ├── NoOpCacheEventListener.java │ │ │ │ ├── SimpleCacheKey.java │ │ │ │ ├── WriterCallback.java │ │ │ │ ├── WriterCallbacks.java │ │ │ │ └── package-info.java │ │ │ └── disk/ │ │ │ ├── DefaultDiskStorage.kt │ │ │ ├── DefaultEntryEvictionComparatorSupplier.java │ │ │ ├── DiskCacheConfig.java │ │ │ ├── DiskStorage.java │ │ │ ├── DiskStorageCache.kt │ │ │ ├── DynamicDefaultDiskStorage.java │ │ │ ├── EntryEvictionComparator.java │ │ │ ├── EntryEvictionComparatorSupplier.java │ │ │ ├── FileCache.kt │ │ │ ├── ScoreBasedEvictionComparatorSupplier.java │ │ │ ├── SettableCacheEvent.java │ │ │ └── package-info.java │ │ ├── callercontext/ │ │ │ └── CallerContextVerifier.kt │ │ ├── drawable/ │ │ │ └── base/ │ │ │ └── DrawableWithCaches.kt │ │ ├── imageformat/ │ │ │ ├── DefaultImageFormatChecker.kt │ │ │ ├── DefaultImageFormats.kt │ │ │ ├── ImageFormat.kt │ │ │ ├── ImageFormatChecker.kt │ │ │ └── ImageFormatCheckerUtils.kt │ │ ├── imagepipeline/ │ │ │ ├── animated/ │ │ │ │ └── factory/ │ │ │ │ ├── AnimatedFactory.kt │ │ │ │ ├── AnimatedFactoryProvider.kt │ │ │ │ └── package-info.kt │ │ │ ├── bitmaps/ │ │ │ │ ├── PlatformBitmapFactory.java │ │ │ │ ├── SimpleBitmapReleaser.java │ │ │ │ └── package-info.kt │ │ │ ├── cache/ │ │ │ │ ├── AbstractAdaptiveCountingMemoryCache.java │ │ │ │ ├── BitmapMemoryCacheFactory.kt │ │ │ │ ├── BitmapMemoryCacheTrimStrategy.kt │ │ │ │ ├── BoundedLinkedHashSet.kt │ │ │ │ ├── CountingLruBitmapMemoryCacheFactory.java │ │ │ │ ├── CountingLruMap.java │ │ │ │ ├── CountingMemoryCache.java │ │ │ │ ├── CountingMemoryCacheInspector.kt │ │ │ │ ├── LruCountingMemoryCache.java │ │ │ │ ├── MemoryCache.kt │ │ │ │ ├── MemoryCacheParams.kt │ │ │ │ ├── ValueDescriptor.kt │ │ │ │ └── package-info.kt │ │ │ ├── common/ │ │ │ │ ├── BytesRange.kt │ │ │ │ ├── ImageDecodeOptions.java │ │ │ │ ├── ImageDecodeOptionsBuilder.java │ │ │ │ ├── Priority.kt │ │ │ │ ├── ResizeOptions.kt │ │ │ │ ├── RotationOptions.kt │ │ │ │ ├── SourceUriType.kt │ │ │ │ ├── TooManyBitmapsException.kt │ │ │ │ └── package-info.kt │ │ │ ├── core/ │ │ │ │ ├── DefaultExecutorSupplier.kt │ │ │ │ ├── ExecutorSupplier.kt │ │ │ │ ├── PriorityThreadFactory.kt │ │ │ │ └── package-info.kt │ │ │ ├── decoder/ │ │ │ │ ├── ImageDecoder.kt │ │ │ │ └── package-info.kt │ │ │ ├── drawable/ │ │ │ │ ├── DrawableFactory.kt │ │ │ │ └── package-info.kt │ │ │ ├── image/ │ │ │ │ ├── BaseCloseableImage.java │ │ │ │ ├── BaseCloseableStaticBitmap.java │ │ │ │ ├── CloseableBitmap.java │ │ │ │ ├── CloseableImage.java │ │ │ │ ├── CloseableStaticBitmap.java │ │ │ │ ├── CloseableXml.kt │ │ │ │ ├── DefaultCloseableImage.java │ │ │ │ ├── DefaultCloseableStaticBitmap.java │ │ │ │ ├── DefaultCloseableXml.kt │ │ │ │ ├── EncodedImage.java │ │ │ │ ├── HasImageMetadata.java │ │ │ │ ├── ImageInfo.java │ │ │ │ ├── ImageInfoImpl.java │ │ │ │ ├── ImmutableQualityInfo.java │ │ │ │ ├── QualityInfo.java │ │ │ │ └── package-info.kt │ │ │ ├── instrumentation/ │ │ │ │ └── FrescoInstrumenter.kt │ │ │ ├── nativecode/ │ │ │ │ └── NativeImageTranscoderFactory.kt │ │ │ ├── network/ │ │ │ │ └── NetworkResponseData.kt │ │ │ ├── systrace/ │ │ │ │ ├── DefaultFrescoSystrace.kt │ │ │ │ └── FrescoSystrace.kt │ │ │ ├── transcoder/ │ │ │ │ ├── DownsampleUtil.kt │ │ │ │ ├── ImageTranscodeResult.kt │ │ │ │ ├── ImageTranscoder.kt │ │ │ │ ├── ImageTranscoderFactory.kt │ │ │ │ ├── JpegTranscoderUtils.kt │ │ │ │ └── TranscodeStatus.kt │ │ │ └── transformation/ │ │ │ ├── BitmapTransformation.kt │ │ │ ├── CircularTransformation.kt │ │ │ └── TransformationUtils.kt │ │ └── imageutils/ │ │ ├── BitmapUtil.kt │ │ ├── HeifExifUtil.kt │ │ ├── ImageMetaData.kt │ │ ├── JfifUtil.kt │ │ ├── StreamProcessor.kt │ │ ├── TiffUtil.kt │ │ └── WebpUtil.kt │ └── test/ │ ├── java/ │ │ ├── com/ │ │ │ └── facebook/ │ │ │ ├── cache/ │ │ │ │ ├── common/ │ │ │ │ │ └── CacheEventAssert.kt │ │ │ │ └── disk/ │ │ │ │ ├── DefaultDiskStorageTest.kt │ │ │ │ ├── DefaultEntryEvictionComparatorSupplierTest.kt │ │ │ │ ├── DiskStorageCacheTest.kt │ │ │ │ ├── DynamicDefaultDiskStorageTest.kt │ │ │ │ ├── ScoreBasedEvictionComparatorSupplierTest.kt │ │ │ │ └── SettableCacheEventTest.kt │ │ │ ├── imageformat/ │ │ │ │ └── ImageFormatCheckerTest.kt │ │ │ ├── imagepipeline/ │ │ │ │ ├── cache/ │ │ │ │ │ ├── AbstractAdaptiveCountingMemoryCacheTest.kt │ │ │ │ │ ├── BoundedLinkedHashSetTest.kt │ │ │ │ │ ├── CountingLruMapTest.kt │ │ │ │ │ └── LruCountingMemoryCacheTest.kt │ │ │ │ ├── common/ │ │ │ │ │ ├── BytesRangeTest.kt │ │ │ │ │ ├── ImageDecodeOptionsTest.kt │ │ │ │ │ └── ResizeOptionsTest.kt │ │ │ │ └── image/ │ │ │ │ ├── CloseableBitmapTest.kt │ │ │ │ ├── CloseableStaticBitmapTest.kt │ │ │ │ └── EncodedImageTest.kt │ │ │ └── imageutils/ │ │ │ ├── BitmapUtilTest.kt │ │ │ ├── JfifTestUtils.kt │ │ │ ├── JfifTestUtilsTest.kt │ │ │ ├── JfifUtilTest.kt │ │ │ └── WebPUtilTest.kt │ │ └── org/ │ │ └── mockito/ │ │ └── configuration/ │ │ └── MockitoConfiguration.java │ └── resources/ │ ├── com/ │ │ └── facebook/ │ │ └── imageformat/ │ │ ├── heifs/ │ │ │ └── 1.heif │ │ └── xmls/ │ │ ├── AndroidManifest.xml │ │ ├── README.md │ │ ├── compiled/ │ │ │ ├── layer_list.xml │ │ │ ├── level_list.xml │ │ │ ├── state_list.xml │ │ │ └── vector_drawable.xml │ │ ├── convert.sh │ │ └── raw/ │ │ └── drawable/ │ │ ├── layer_list.xml │ │ ├── level_list.xml │ │ ├── state_list.xml │ │ └── vector_drawable.xml │ └── org.robolectric.Config.properties ├── imagepipeline-base-test/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── imagepipeline/ │ └── testing/ │ ├── DeltaQueue.java │ ├── FakeClock.java │ ├── ScheduledQueue.java │ ├── TestExecutorService.java │ ├── TestNativeLoader.kt │ ├── TestScheduledExecutorService.java │ ├── TestScheduledFuture.java │ ├── TrivialBufferPooledByteBuffer.java │ └── TrivialPooledByteBuffer.java ├── imagepipeline-native/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── imagepipeline/ │ │ └── nativecode/ │ │ ├── Bitmaps.kt │ │ ├── DalvikPurgeableDecoder.kt │ │ └── ImagePipelineNativeLoader.kt │ └── jni/ │ ├── Application.mk │ ├── bitmaps/ │ │ ├── Android.mk │ │ ├── Bitmaps.c │ │ └── Bitmaps.h │ ├── imagepipeline/ │ │ ├── Android.mk │ │ ├── exceptions.cpp │ │ ├── exceptions.h │ │ ├── init.cpp │ │ └── logging.h │ └── memchunk/ │ ├── Android.mk │ ├── NativeMemoryChunk.c │ └── NativeMemoryChunk.h ├── imagepipeline-test/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── imagepipeline/ │ ├── memory/ │ │ ├── IntPair.java │ │ └── PoolStats.java │ └── testing/ │ └── MockBitmapFactory.kt ├── memory-types/ │ ├── ashmem/ │ │ ├── build.gradle │ │ ├── gradle.properties │ │ └── src/ │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── imagepipeline/ │ │ │ └── memory/ │ │ │ ├── AshmemMemoryChunk.java │ │ │ └── AshmemMemoryChunkPool.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── imagepipeline/ │ │ ├── memory/ │ │ │ ├── AshmemMemoryChunkPoolTest.kt │ │ │ ├── MemoryPooledByteBufferFactoryTest.java │ │ │ ├── MemoryPooledByteBufferOutputStreamTest.java │ │ │ └── MemoryPooledByteBufferTest.java │ │ └── testing/ │ │ ├── FakeAshmemMemoryChunk.java │ │ └── FakeAshmemMemoryChunkPool.java │ ├── nativememory/ │ │ ├── build.gradle │ │ ├── gradle.properties │ │ └── src/ │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── imagepipeline/ │ │ │ └── memory/ │ │ │ ├── NativeMemoryChunk.java │ │ │ └── NativeMemoryChunkPool.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── imagepipeline/ │ │ ├── memory/ │ │ │ ├── MemoryPooledByteBufferFactoryTest.java │ │ │ ├── MemoryPooledByteBufferOutputStreamTest.java │ │ │ ├── MemoryPooledByteBufferTest.java │ │ │ ├── NativeMemoryChunkPoolTest.java │ │ │ └── TestUsingNativeMemoryChunk.java │ │ └── testing/ │ │ ├── FakeNativeMemoryChunk.java │ │ └── FakeNativeMemoryChunkPool.java │ └── simple/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── imagepipeline/ │ │ └── memory/ │ │ ├── BufferMemoryChunk.kt │ │ └── BufferMemoryChunkPool.kt │ └── test/ │ └── java/ │ └── com/ │ └── facebook/ │ └── imagepipeline/ │ ├── memory/ │ │ ├── BufferMemoryChunkPoolTest.java │ │ ├── MemoryPooledByteBufferFactoryTest.java │ │ ├── MemoryPooledByteBufferOutputStreamTest.java │ │ └── MemoryPooledByteBufferTest.java │ └── testing/ │ └── FakeBufferMemoryChunkPool.kt ├── middleware/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── middleware/ │ ├── HasExtraData.kt │ └── MiddlewareUtils.kt ├── mockito-config/ │ ├── build.gradle │ └── src/ │ └── main/ │ └── java/ │ └── org/ │ └── mockito/ │ └── configuration/ │ └── MockitoConfiguration.java ├── native-filters/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── imagepipeline/ │ │ ├── nativecode/ │ │ │ ├── NativeBlurFilter.kt │ │ │ ├── NativeFiltersLoader.kt │ │ │ └── NativeRoundingFilter.kt │ │ └── postprocessors/ │ │ ├── IterativeBoxBlurPostProcessor.kt │ │ ├── RoundAsCirclePostprocessor.kt │ │ └── RoundedCornersPostprocessor.kt │ └── jni/ │ ├── Application.mk │ ├── filters/ │ │ ├── Android.mk │ │ ├── blur_filter.c │ │ ├── blur_filter.h │ │ ├── rounding_filter.c │ │ └── rounding_filter.h │ └── native-filters/ │ ├── Android.mk │ ├── exceptions_handling.cpp │ ├── exceptions_handling.h │ ├── init.cpp │ ├── java_globals.h │ └── logging.h ├── native-imagetranscoder/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── imagepipeline/ │ │ └── nativecode/ │ │ ├── NativeJpegTranscoder.java │ │ ├── NativeJpegTranscoderFactory.java │ │ └── NativeJpegTranscoderSoLoader.java │ └── jni/ │ ├── Application.mk │ ├── native-imagetranscoder/ │ │ ├── Android.mk │ │ ├── JpegTranscoder.cpp │ │ ├── JpegTranscoder.h │ │ ├── decoded_image.cpp │ │ ├── decoded_image.h │ │ ├── exceptions_handler.cpp │ │ ├── exceptions_handler.h │ │ ├── init.cpp │ │ ├── java_globals.h │ │ ├── jpeg/ │ │ │ ├── jpeg_codec.cpp │ │ │ ├── jpeg_codec.h │ │ │ ├── jpeg_error_handler.cpp │ │ │ ├── jpeg_error_handler.h │ │ │ ├── jpeg_memory_io.cpp │ │ │ ├── jpeg_memory_io.h │ │ │ ├── jpeg_stream_wrappers.cpp │ │ │ └── jpeg_stream_wrappers.h │ │ ├── logging.h │ │ ├── transformations.cpp │ │ └── transformations.h │ └── third-party/ │ └── libjpeg-turbo-2.1.5.1/ │ ├── Android.mk │ ├── config.h │ ├── jconfig.h │ ├── jconfigint.h │ ├── jversion.h │ └── neon-compat.h ├── run_comparison.py ├── samples/ │ ├── README.md │ ├── animation2/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── samples/ │ │ │ └── animation2/ │ │ │ ├── AnimationApplication.java │ │ │ ├── MediaControlFragment.java │ │ │ ├── SampleData.java │ │ │ ├── StandaloneActivity.java │ │ │ ├── bitmap/ │ │ │ │ ├── BitmapAnimationCacheSelectorConfigurator.java │ │ │ │ ├── BitmapAnimationDebugFragment.java │ │ │ │ ├── BitmapAnimationFragment.java │ │ │ │ ├── DebugBitmapAnimationFrameListener.java │ │ │ │ ├── ExampleBitmapAnimationFactory.java │ │ │ │ └── NaiveCacheAllFramesCachingBackend.java │ │ │ ├── color/ │ │ │ │ ├── ExampleColorBackend.java │ │ │ │ └── SimpleColorFragment.java │ │ │ ├── local/ │ │ │ │ └── LocalDrawableAnimationBackend.java │ │ │ └── utils/ │ │ │ ├── AnimationBackendUtils.java │ │ │ ├── AnimationControlsManager.java │ │ │ └── SampleAnimationBackendConfigurator.java │ │ └── res/ │ │ ├── drawable/ │ │ │ └── ic_play_pause_24dp.xml │ │ ├── layout/ │ │ │ ├── activity_standalone.xml │ │ │ ├── backends.xml │ │ │ ├── cache_selector.xml │ │ │ ├── controls.xml │ │ │ ├── fragment_debug_bitmap.xml │ │ │ ├── fragment_media_controls.xml │ │ │ ├── fragment_simple_container.xml │ │ │ └── frame_info.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── values-w820dp/ │ │ └── dimens.xml │ ├── comparison/ │ │ ├── build.gradle │ │ ├── proguard.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── samples/ │ │ │ └── comparison/ │ │ │ ├── ComparisonApp.java │ │ │ ├── Drawables.java │ │ │ ├── MainActivity.kt │ │ │ ├── adapters/ │ │ │ │ ├── AQueryAdapter.java │ │ │ │ ├── FrescoAdapter.java │ │ │ │ ├── GlideAdapter.java │ │ │ │ ├── ImageListAdapter.java │ │ │ │ ├── PicassoAdapter.java │ │ │ │ ├── UilAdapter.java │ │ │ │ └── VolleyAdapter.java │ │ │ ├── configs/ │ │ │ │ ├── ConfigConstants.java │ │ │ │ ├── glide/ │ │ │ │ │ └── SampleGlideModule.java │ │ │ │ ├── imagepipeline/ │ │ │ │ │ └── ImagePipelineConfigFactory.java │ │ │ │ ├── picasso/ │ │ │ │ │ └── SamplePicassoFactory.java │ │ │ │ ├── uil/ │ │ │ │ │ └── SampleUilFactory.java │ │ │ │ └── volley/ │ │ │ │ ├── SampleVolleyFactory.java │ │ │ │ └── VolleyMemoryCache.java │ │ │ ├── holders/ │ │ │ │ ├── AQueryHolder.java │ │ │ │ ├── BaseViewHolder.java │ │ │ │ ├── FrescoHolder.java │ │ │ │ ├── GlideHolder.java │ │ │ │ ├── PicassoHolder.java │ │ │ │ ├── UilHolder.java │ │ │ │ ├── VolleyDraweeHolder.java │ │ │ │ └── VolleyHolder.java │ │ │ ├── instrumentation/ │ │ │ │ ├── Instrumentation.java │ │ │ │ ├── Instrumented.java │ │ │ │ ├── InstrumentedDraweeView.java │ │ │ │ ├── InstrumentedImageView.java │ │ │ │ ├── InstrumentedNetworkImageView.java │ │ │ │ └── PerfListener.java │ │ │ └── urlsfetcher/ │ │ │ ├── ImageFormat.java │ │ │ ├── ImageSize.java │ │ │ ├── ImageUrlsFetcher.java │ │ │ ├── ImageUrlsRequest.java │ │ │ └── ImageUrlsRequestBuilder.java │ │ └── res/ │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ ├── menu/ │ │ │ └── menu_main.xml │ │ └── values/ │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── contrib/ │ │ └── com/ │ │ └── facebook/ │ │ └── drawee/ │ │ └── drawable/ │ │ └── CircleProgressBarDrawable.java │ ├── gestures/ │ │ ├── build.gradle │ │ └── src/ │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── samples/ │ │ │ └── gestures/ │ │ │ ├── MultiPointerGestureDetector.java │ │ │ └── TransformGestureDetector.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── samples/ │ │ │ └── gestures/ │ │ │ ├── MotionEventTestUtils.java │ │ │ ├── MultiPointerGestureDetectorTest.java │ │ │ └── TransformGestureDetectorTest.java │ │ └── resources/ │ │ └── org.robolectric.Config.properties │ ├── scrollperf/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-scrollperf.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── facebook/ │ │ │ │ └── samples/ │ │ │ │ └── scrollperf/ │ │ │ │ └── data/ │ │ │ │ └── impl/ │ │ │ │ ├── InfiniteSimpleAdapterTest.java │ │ │ │ └── LocalResourceSimpleAdapterTest.java │ │ │ └── res/ │ │ │ └── values/ │ │ │ ├── colors.xml │ │ │ └── strings_untranslated.xml │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── facebook/ │ │ │ │ └── samples/ │ │ │ │ └── scrollperf/ │ │ │ │ ├── MainActivity.java │ │ │ │ ├── ScrollPerfApplication.java │ │ │ │ ├── conf/ │ │ │ │ │ ├── Config.java │ │ │ │ │ └── Const.java │ │ │ │ ├── data/ │ │ │ │ │ ├── Decorator.java │ │ │ │ │ ├── SimpleAdapter.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── ContentProviderSimpleAdapter.java │ │ │ │ │ ├── DistinctUriDecorator.java │ │ │ │ │ └── LocalResourceSimpleAdapter.java │ │ │ │ ├── fragments/ │ │ │ │ │ ├── MainFragment.java │ │ │ │ │ ├── SettingsFragment.java │ │ │ │ │ └── recycler/ │ │ │ │ │ ├── VitoViewAdapter.java │ │ │ │ │ ├── VitoViewHolder.java │ │ │ │ │ └── VitoViewListAdapter.java │ │ │ │ ├── instrumentation/ │ │ │ │ │ ├── Instrumentation.java │ │ │ │ │ ├── Instrumented.java │ │ │ │ │ ├── InstrumentedVitoView.java │ │ │ │ │ └── PerfListener.java │ │ │ │ ├── internal/ │ │ │ │ │ └── ScrollPerfExecutorSupplier.java │ │ │ │ ├── postprocessor/ │ │ │ │ │ └── DelayPostprocessor.java │ │ │ │ ├── preferences/ │ │ │ │ │ └── SizePreferences.java │ │ │ │ └── util/ │ │ │ │ ├── PipelineUtil.java │ │ │ │ ├── SizeUtil.java │ │ │ │ ├── TimeWaster.java │ │ │ │ ├── UI.java │ │ │ │ └── VitoUtil.java │ │ │ └── res/ │ │ │ ├── layout/ │ │ │ │ ├── activity_main.xml │ │ │ │ ├── content_listview.xml │ │ │ │ ├── content_recyclerview.xml │ │ │ │ ├── fragment_main.xml │ │ │ │ └── size_preference.xml │ │ │ ├── menu/ │ │ │ │ └── menu.xml │ │ │ ├── values/ │ │ │ │ ├── array.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ ├── strings_untranslated.xml │ │ │ │ └── styles.xml │ │ │ └── xml/ │ │ │ └── preferences.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── samples/ │ │ └── scrollperf/ │ │ └── util/ │ │ └── TimeWasterTest.java │ ├── showcase/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-showcase.pro │ │ ├── proguard-test.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── fresco/ │ │ │ └── samples/ │ │ │ └── showcase/ │ │ │ └── ShowcaseRunTest.java │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── fresco/ │ │ │ └── samples/ │ │ │ └── showcase/ │ │ │ ├── BaseShowcaseFragment.java │ │ │ ├── BaseShowcaseKotlinFragment.kt │ │ │ ├── CustomImageFormatConfigurator.java │ │ │ ├── ExampleCategory.kt │ │ │ ├── ExampleDatabase.kt │ │ │ ├── ExampleItem.kt │ │ │ ├── ImageOptionsBottomSheet.kt │ │ │ ├── LithoSample.kt │ │ │ ├── LithoSampleHostFragment.kt │ │ │ ├── MainActivity.kt │ │ │ ├── ShowcaseApplication.kt │ │ │ ├── common/ │ │ │ │ ├── CustomScaleTypes.java │ │ │ │ ├── DimensionUtils.kt │ │ │ │ ├── SimpleScaleTypeAdapter.java │ │ │ │ └── SpinnerUtils.kt │ │ │ ├── imageformat/ │ │ │ │ ├── color/ │ │ │ │ │ ├── ColorImageExample.java │ │ │ │ │ └── ImageFormatColorFragment.java │ │ │ │ ├── datauri/ │ │ │ │ │ └── ImageFormatDataUriFragment.java │ │ │ │ ├── gif/ │ │ │ │ │ └── ImageFormatGifFragment.java │ │ │ │ ├── keyframes/ │ │ │ │ │ ├── AnimatableKeyframesDrawable.java │ │ │ │ │ ├── ImageFormatKeyframesFragment.java │ │ │ │ │ └── KeyframesDecoderExample.java │ │ │ │ ├── override/ │ │ │ │ │ └── ImageFormatOverrideExample.java │ │ │ │ ├── pjpeg/ │ │ │ │ │ └── ImageFormatProgressiveJpegFragment.java │ │ │ │ ├── svg/ │ │ │ │ │ ├── ImageFormatSvgFragment.java │ │ │ │ │ └── SvgDecoderExample.java │ │ │ │ ├── webp/ │ │ │ │ │ └── ImageFormatWebpFragment.java │ │ │ │ └── xml/ │ │ │ │ └── ImageFormatXmlFragment.java │ │ │ ├── imagepipeline/ │ │ │ │ ├── DurationCallback.java │ │ │ │ ├── ImagePipelineBitmapFactoryFragment.java │ │ │ │ ├── ImagePipelineDownsampleFragment.java │ │ │ │ ├── ImagePipelineNotificationFragment.java │ │ │ │ ├── ImagePipelinePostProcessorFragment.java │ │ │ │ ├── ImagePipelinePrefetchFragment.java │ │ │ │ ├── ImagePipelineQualifiedResourceFragment.java │ │ │ │ ├── ImagePipelineRegionDecodingFragment.java │ │ │ │ ├── ImagePipelineResizingFragment.java │ │ │ │ ├── PartialRequestFragment.java │ │ │ │ └── widget/ │ │ │ │ └── ResizableFrameLayout.java │ │ │ ├── misc/ │ │ │ │ ├── CheckerBoardDrawable.java │ │ │ │ ├── DebugImageListener.kt │ │ │ │ ├── DebugOverlaySupplierSingleton.java │ │ │ │ ├── ImageSourceSpinner.kt │ │ │ │ ├── ImageUriProvider.kt │ │ │ │ ├── LogcatImagePerfDataListener.java │ │ │ │ ├── LogcatRequestListener2.kt │ │ │ │ └── WelcomeFragment.java │ │ │ ├── permissions/ │ │ │ │ └── StoragePermissionHelper.kt │ │ │ ├── postprocessor/ │ │ │ │ ├── BasePostprocessorWithDurationCallback.java │ │ │ │ ├── BenchmarkPostprocessorForDuplicatedBitmap.java │ │ │ │ ├── BenchmarkPostprocessorForDuplicatedBitmapInPlace.java │ │ │ │ ├── BenchmarkPostprocessorForManualBitmapHandling.java │ │ │ │ ├── CachedWatermarkPostprocessor.java │ │ │ │ ├── FasterGreyScalePostprocessor.java │ │ │ │ ├── ScalingBlurPostprocessor.java │ │ │ │ ├── SlowGreyScalePostprocessor.java │ │ │ │ └── WatermarkPostprocessor.java │ │ │ ├── settings/ │ │ │ │ └── SettingsFragment.java │ │ │ └── vito/ │ │ │ ├── FrescoVitoImageDecodeOptions.java │ │ │ ├── FrescoVitoImageDecodeOptionsBuilder.java │ │ │ ├── FrescoVitoLithoDrawableImageSourceExample.kt │ │ │ ├── FrescoVitoLithoGalleryFragment.java │ │ │ ├── FrescoVitoLithoImageOptionsConfigFragment.kt │ │ │ ├── FrescoVitoLithoListenerExample.kt │ │ │ ├── FrescoVitoLithoRegionDecodeFragment.java │ │ │ ├── FrescoVitoLithoSectionsFragment.java │ │ │ ├── FrescoVitoLithoSimpleExample.kt │ │ │ ├── FrescoVitoRegionDecoder.java │ │ │ ├── ImageLayersFragment.java │ │ │ ├── ImageSourceConfigurator.kt │ │ │ ├── LithoSlideshowSample.kt │ │ │ ├── MultiUriFragment.kt │ │ │ ├── RetainingDataSourceSupplierFragment.java │ │ │ ├── SimpleGallerySectionSpec.java │ │ │ ├── SimpleListItemSpec.java │ │ │ ├── SimpleListSectionSpec.java │ │ │ ├── VitoMediaPickerFragment.kt │ │ │ ├── VitoRotationFragment.java │ │ │ ├── VitoRoundedCornersFragment.java │ │ │ ├── VitoScaleTypeFragment.java │ │ │ ├── VitoSimpleFragment.java │ │ │ ├── VitoSpanFragment.kt │ │ │ ├── VitoSpinners.kt │ │ │ ├── VitoViewKtxFragment.kt │ │ │ ├── VitoViewPrefetchFragment.kt │ │ │ ├── VitoViewRecyclerFragment.java │ │ │ ├── VitoViewSimpleFragment.java │ │ │ ├── ninepatch/ │ │ │ │ ├── LithoNinePatchSample.kt │ │ │ │ └── NinePatchExample.java │ │ │ ├── renderer/ │ │ │ │ ├── RendererColorFilterExampleFragment.kt │ │ │ │ ├── RendererExampleDrawable.kt │ │ │ │ ├── RendererExampleUtils.kt │ │ │ │ ├── RendererFadeExampleFragment.kt │ │ │ │ ├── RendererShapeExampleFragment.kt │ │ │ │ └── VitoLayerExample.kt │ │ │ ├── source/ │ │ │ │ └── ImageRequestImageSource.kt │ │ │ └── transition/ │ │ │ ├── ImageDetailsActivity.java │ │ │ └── VitoTransitionFragment.java │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_error_black_96dp.xml │ │ │ ├── ic_retry_black_48dp.xml │ │ │ ├── ic_settings_black_24dp.xml │ │ │ ├── resize_outline.xml │ │ │ ├── side_nav_bar.xml │ │ │ ├── xml_bitmap.xml │ │ │ ├── xml_layer_list.xml │ │ │ ├── xml_level_list.xml │ │ │ ├── xml_nine_patch.xml │ │ │ ├── xml_state_list.xml │ │ │ └── xml_vector.xml │ │ ├── drawable-anydpi/ │ │ │ ├── ic_arrow_left.xml │ │ │ ├── ic_arrow_right.xml │ │ │ └── ic_edit.xml │ │ ├── layout/ │ │ │ ├── activity_main.xml │ │ │ ├── activity_vito_transition_detail.xml │ │ │ ├── app_bar_main.xml │ │ │ ├── content_main.xml │ │ │ ├── dialog_fragment_uri_override.xml │ │ │ ├── fragment_format_color.xml │ │ │ ├── fragment_format_datauri.xml │ │ │ ├── fragment_format_gif.xml │ │ │ ├── fragment_format_keyframes.xml │ │ │ ├── fragment_format_override.xml │ │ │ ├── fragment_format_progressive_jpeg.xml │ │ │ ├── fragment_format_svg.xml │ │ │ ├── fragment_format_webp.xml │ │ │ ├── fragment_format_xml.xml │ │ │ ├── fragment_image_layers.xml │ │ │ ├── fragment_imagepipeline_bitmap_factory.xml │ │ │ ├── fragment_imagepipeline_downsample.xml │ │ │ ├── fragment_imagepipeline_notification.xml │ │ │ ├── fragment_imagepipeline_postprocessor.xml │ │ │ ├── fragment_imagepipeline_prefetch.xml │ │ │ ├── fragment_imagepipeline_qualified_resource.xml │ │ │ ├── fragment_imagepipeline_region_decoding.xml │ │ │ ├── fragment_imagepipeline_resizing.xml │ │ │ ├── fragment_litho_host.xml │ │ │ ├── fragment_partial_request.xml │ │ │ ├── fragment_recycler.xml │ │ │ ├── fragment_scrolling_linear_layout.xml │ │ │ ├── fragment_vito_image_options_config.xml │ │ │ ├── fragment_vito_litho_region_decoding.xml │ │ │ ├── fragment_vito_media_picker.xml │ │ │ ├── fragment_vito_multi_uri.xml │ │ │ ├── fragment_vito_retaining_supplier.xml │ │ │ ├── fragment_vito_rotation.xml │ │ │ ├── fragment_vito_rounded_corners.xml │ │ │ ├── fragment_vito_scale_type.xml │ │ │ ├── fragment_vito_simple.xml │ │ │ ├── fragment_vito_text_span.xml │ │ │ ├── fragment_vito_transition.xml │ │ │ ├── fragment_vito_view_ktx.xml │ │ │ ├── fragment_vito_view_prefetch.xml │ │ │ ├── fragment_vito_view_simple.xml │ │ │ ├── fragment_welcome.xml │ │ │ ├── nav_header_main.xml │ │ │ └── vito_recycler_item.xml │ │ ├── menu/ │ │ │ └── main.xml │ │ ├── raw/ │ │ │ ├── custom_color1.color │ │ │ └── custom_color2.color │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-v21/ │ │ │ └── styles.xml │ │ ├── values-w820dp/ │ │ │ └── dimens.xml │ │ └── xml/ │ │ └── preferences.xml │ ├── zoomable/ │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── samples/ │ │ └── zoomable/ │ │ ├── AbstractAnimatedZoomableController.java │ │ ├── AnimatedZoomableController.java │ │ ├── DefaultZoomableController.java │ │ ├── DoubleTapGestureListener.java │ │ ├── GestureListenerWrapper.java │ │ ├── MultiGestureListener.java │ │ ├── MultiZoomableControllerListener.java │ │ ├── ZoomableController.java │ │ ├── ZoomableDraweeView.java │ │ └── ZoomableVitoView.java │ └── zoomableapp/ │ ├── .gitignore │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── samples/ │ │ └── zoomableapp/ │ │ ├── MainActivity.java │ │ ├── MyPagerAdapter.java │ │ └── ZoomableApplication.java │ └── res/ │ ├── layout/ │ │ ├── activity_main.xml │ │ └── zoomable_image.xml │ ├── menu/ │ │ └── menu.xml │ └── values/ │ ├── colors.xml │ ├── strings.xml │ └── styles.xml ├── settings.gradle ├── soloader/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── imagepipeline/ │ └── nativecode/ │ └── NativeCodeInitializer.kt ├── static-webp/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── webpsupport/ │ │ ├── AndroidManifest.xml │ │ ├── WebpBitmapFactoryTest.java │ │ └── WebpDecodingTest.java │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── facebook/ │ │ ├── imagepipeline/ │ │ │ └── nativecode/ │ │ │ └── StaticWebpNativeLoader.kt │ │ └── webpsupport/ │ │ ├── WebPImageDecoder.java │ │ └── WebpBitmapFactoryImpl.java │ └── jni/ │ ├── Application.mk │ ├── static-webp/ │ │ ├── Android.mk │ │ ├── decoded_image.cpp │ │ ├── decoded_image.h │ │ ├── exceptions.cpp │ │ ├── exceptions.h │ │ ├── java_globals.h │ │ ├── jni_helpers.cpp │ │ ├── jni_helpers.h │ │ ├── logging.h │ │ ├── streams.cpp │ │ ├── streams.h │ │ ├── transformations.cpp │ │ ├── transformations.h │ │ ├── webp.cpp │ │ ├── webp.h │ │ └── webp_bitmapfactory.cpp │ └── third-party/ │ ├── libjpeg-turbo-2.1.5.1/ │ │ ├── Android.mk │ │ ├── config.h │ │ ├── jconfig.h │ │ ├── jconfigint.h │ │ ├── jversion.h │ │ └── neon-compat.h │ ├── libpng-1.6.37/ │ │ ├── Android.mk │ │ └── pnglibconf.h │ └── libwebp-1.3.2/ │ └── Android.mk ├── tools/ │ ├── flipper/ │ │ ├── build.gradle │ │ ├── gradle.properties │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── imagepipeline/ │ │ └── debug/ │ │ ├── DebugImageTracker.kt │ │ ├── FlipperCacheKeyFactory.kt │ │ ├── FlipperCloseableReferenceLeakTracker.kt │ │ ├── FlipperImageTracker.kt │ │ ├── LruMap.kt │ │ └── NoOpDebugImageTracker.kt │ ├── flipper-fresco-plugin/ │ │ ├── build.gradle │ │ ├── gradle.properties │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── flipper/ │ │ └── plugins/ │ │ └── fresco/ │ │ ├── FrescoFlipperDebugPrefHelper.java │ │ ├── FrescoFlipperPlugin.java │ │ ├── FrescoFlipperRequestListener.java │ │ └── objecthelper/ │ │ └── FlipperObjectHelper.java │ └── stetho/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── imagepipeline/ │ └── stetho/ │ ├── BaseFrescoStethoPlugin.kt │ └── FrescoStethoPlugin.kt ├── ui-common/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── ui/ │ └── common/ │ ├── BaseControllerListener2.kt │ ├── ControllerListener2.kt │ ├── DimensionsInfo.kt │ ├── ForwardingControllerListener2.kt │ ├── ImageLoadStatus.kt │ ├── ImagePerfData.kt │ ├── ImagePerfDataListener.kt │ ├── ImagePerfDataNotifier.kt │ ├── ImagePerfLoggingState.kt │ ├── ImagePerfNotifier.kt │ ├── ImagePerfNotifierHolder.kt │ ├── ImagePerfState.kt │ ├── ImageRenderingInfra.kt │ ├── LegacyOnFadeListener.kt │ ├── MultiUriHelper.kt │ ├── NoOpImagePerfNotifier.kt │ ├── OnDrawControllerListener.kt │ ├── OnFadeListener.kt │ ├── SimpleImagePerfNotifier.kt │ ├── VisibilityAware.kt │ ├── VisibilityState.kt │ └── VitoUtils.kt ├── ui-core/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ └── java/ │ ├── AndroidManifest.xml │ └── com/ │ └── facebook/ │ └── drawee/ │ └── drawable/ │ ├── ScalingUtils.java │ ├── SizingHint.kt │ └── Viewport.kt ├── urimod/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── urimod/ │ ├── Dimensions.kt │ ├── FetchStrategy.kt │ ├── NopUriModifier.kt │ ├── UriModifier.kt │ └── UriModifierInterface.kt ├── viewport/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── viewport/ │ ├── HasTransform.kt │ └── ViewportData.kt └── vito/ ├── compose/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── compose/ │ └── VitoImage.kt ├── core/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── fresco/ │ │ └── vito/ │ │ ├── core/ │ │ │ ├── AnimatedImagePerfLoggingListener.kt │ │ │ ├── BaseVitoImageRequestListener.kt │ │ │ ├── CombinedImageListener.kt │ │ │ ├── ComposedImagePerfLoggingListener.kt │ │ │ ├── DefaultFrescoVitoConfig.kt │ │ │ ├── FrescoController2.kt │ │ │ ├── FrescoDrawableInterface.kt │ │ │ ├── FrescoVitoConfig.kt │ │ │ ├── FrescoVitoPrefetcher.kt │ │ │ ├── ImagePerfLoggingListener.kt │ │ │ ├── ImagePipelineUtils.kt │ │ │ ├── ListVitoImagePerfListener.kt │ │ │ ├── NopDrawable.kt │ │ │ ├── PrefetchConfig.kt │ │ │ ├── PrefetchReason.kt │ │ │ ├── PrefetchTarget.kt │ │ │ ├── ReleaseStrategy.kt │ │ │ ├── VitoImagePerfListener.kt │ │ │ ├── VitoImagePipeline.kt │ │ │ ├── VitoImageRequest.kt │ │ │ └── VitoImageRequestListener.kt │ │ ├── drawable/ │ │ │ ├── ArrayVitoDrawableFactory.kt │ │ │ ├── BitmapDrawableFactory.kt │ │ │ ├── CircularBorderBitmapDrawable.kt │ │ │ └── RoundingUtils.kt │ │ └── listener/ │ │ ├── BaseImageListener.kt │ │ ├── ForwardingImageListener.kt │ │ └── ImageListener.kt │ └── test/ │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ ├── core/ │ │ └── VitoImageRequestTest.kt │ └── drawable/ │ ├── BitmapDrawableFactoryTest.kt │ └── RoundingUtilsTest.kt ├── core-common-impl/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── core/ │ └── impl/ │ ├── BaseVitoImagePerfListener.kt │ ├── CombinedImageListenerImpl.kt │ └── debug/ │ ├── DebugDataProvider.kt │ ├── DebugOverlayDrawable.kt │ ├── DebugOverlayImageOriginColor.kt │ └── LightweightDebugOverlayDrawable.kt ├── core-impl/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── core/ │ └── impl/ │ ├── ActualImageHandler.kt │ ├── BackgroundLayerHandler.kt │ ├── BorderRenderer.kt │ ├── DebugDataProvider.kt │ ├── DebugOverlayHandler.kt │ ├── DrawableExtensions.kt │ ├── ExtrasUtils.kt │ ├── ImageFetchSubscriber.kt │ ├── ImageLayerDataModel.kt │ ├── ImageLayerDataModelExtensions.kt │ ├── ImageReleaseScheduler.kt │ ├── ImageWithTransformationAndBorderRenderer.kt │ ├── KFrescoController.kt │ ├── KFrescoVitoDrawable.kt │ ├── KImageOptions.kt │ ├── NopImagePerfListener.kt │ ├── ProgressLayerHandler.kt │ ├── PropertyDelegates.kt │ └── ShapeCalculator.kt ├── core-java-impl/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── fresco/ │ │ └── vito/ │ │ └── core/ │ │ └── impl/ │ │ ├── DefaultImageDecodeOptionsProviderImpl.kt │ │ ├── DrawableDataSubscriber.kt │ │ ├── FrescoController2Impl.kt │ │ ├── FrescoDrawable2.kt │ │ ├── FrescoDrawable2Impl.kt │ │ ├── FrescoVitoPrefetcherImpl.kt │ │ ├── Hierarcher.kt │ │ ├── HierarcherImpl.kt │ │ ├── ImagePipelineUtilsImpl.kt │ │ ├── ImageSourceToImagePipelineAdapter.kt │ │ ├── NoOpFrescoVitoPrefetcher.kt │ │ ├── VitoImagePipelineImpl.kt │ │ ├── debug/ │ │ │ ├── BaseDebugOverlayFactory2.kt │ │ │ ├── DebugOverlayFactory2.kt │ │ │ ├── DefaultDebugOverlayFactory2.kt │ │ │ ├── FrescoDrawable2DebugDataProviders.kt │ │ │ ├── LightweightDebugOverlayFactory2.kt │ │ │ └── NoOpDebugOverlayFactory2.kt │ │ └── source/ │ │ ├── DataSourceImageSource.kt │ │ ├── ImagePipelineImageSource.kt │ │ └── RetainingImageSource.kt │ └── test/ │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── core/ │ └── impl/ │ ├── FrescoDrawable2ImplTest.kt │ ├── HierarcherImplTest.kt │ ├── ImagePipelineUtilsImplTest.kt │ └── VitoImagePipelineImplTest.kt ├── drawable-holder/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ └── java/ │ ├── AndroidManifest.xml │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── drawableholder/ │ └── MultiVitoDrawableHolder.kt ├── drawee-support/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── fresco/ │ │ └── vito/ │ │ └── draweesupport/ │ │ ├── ControllerListenerWrapper.kt │ │ ├── DrawableFactoryWrapper.kt │ │ ├── RoundingParamsWrapper.kt │ │ └── VitoViewInflater.kt │ └── test/ │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── draweesupport/ │ └── ControllerListenerWrapperTest.kt ├── init/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── init/ │ └── FrescoVito.kt ├── ktx/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── ktx/ │ ├── ImageSourceExtensions.kt │ └── ViewExtensions.kt ├── litho/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── litho/ │ ├── FrescoVitoImage2Spec.kt │ └── FrescoVitoTapToRetryImageSpec.kt ├── litho-slideshow/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── litho/ │ └── slideshow/ │ ├── FrescoVitoSlideshowComponentSpec.kt │ └── FrescoVitoSlideshowDrawable.kt ├── nativecode/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── nativecode/ │ ├── CircularBitmapTransformation.kt │ └── NativeCircularBitmapRounding.kt ├── options/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── facebook/ │ │ └── fresco/ │ │ └── vito/ │ │ └── options/ │ │ ├── AnimatedOptions.kt │ │ ├── BitmapConfig.kt │ │ ├── BorderOptions.kt │ │ ├── DecodedImageOptions.kt │ │ ├── EncodedImageOptions.kt │ │ ├── ImageOptions.kt │ │ ├── ImageOptionsDrawableFactory.kt │ │ └── RoundingOptions.kt │ └── test/ │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── options/ │ └── RoundingOptionsTest.kt ├── provider/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── provider/ │ ├── FrescoVitoProvider.kt │ ├── components/ │ │ └── FrescoVitoComponents.kt │ ├── impl/ │ │ ├── DefaultFrescoVitoProvider.kt │ │ ├── NoOpCallerContextVerifier.kt │ │ └── kotlin/ │ │ └── KFrescoVitoProvider.kt │ └── setup/ │ └── FrescoVitoSetup.kt ├── renderer/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── renderer/ │ ├── CanvasTransformation.kt │ ├── CanvasTransformationHandler.kt │ ├── ImageDataModel.kt │ ├── ImageRenderer.kt │ ├── Shape.kt │ └── util/ │ └── ColorUtils.kt ├── source/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── source/ │ ├── BitmapImageSource.kt │ ├── ColorImageSource.kt │ ├── DrawableImageSource.kt │ ├── DrawableResImageSource.kt │ ├── EmptyImageSource.kt │ ├── FirstAvailableImageSource.kt │ ├── ImageSource.kt │ ├── ImageSourceExtras.kt │ ├── ImageSourceProvider.kt │ ├── IncreasingQualityImageSource.kt │ ├── SingleImageSource.kt │ ├── SingleImageSourceImpl.kt │ ├── SmartFetchOptIn.kt │ ├── SmartImageSource.kt │ └── UriImageSource.kt ├── textspan/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── textspan/ │ ├── VitoSpan.kt │ └── VitoSpanLoader.kt ├── tools/ │ └── liveeditor/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── facebook/ │ └── fresco/ │ └── vito/ │ └── tools/ │ └── liveeditor/ │ ├── ImageLiveEditor.kt │ ├── ImageOptionsSampleValues.kt │ ├── ImageSelector.kt │ ├── ImageSourceParser.kt │ ├── ImageSourceSampleValues.kt │ ├── ImageSourceSyntaxException.kt │ ├── ImageSourceUiUtil.kt │ ├── ImageTracker.kt │ ├── LiveEditorOnScreenButtonController.kt │ └── LiveEditorUiUtils.kt └── view/ ├── build.gradle ├── gradle.properties └── src/ └── main/ ├── AndroidManifest.xml └── java/ └── com/ └── facebook/ └── fresco/ └── vito/ └── view/ ├── ImageViewWithAspectRatio.kt ├── VitoView.kt ├── impl/ │ └── VitoViewImpl2.kt └── transition/ └── VitoTransition.kt