@Nullable
  @VisibleForTesting
  static Map<String, String> getExtraMap(
      final ProducerListener2 listener,
      final ProducerContext producerContext,
      final boolean valueFound,
      final int sizeInBytes) {
    if (!listener.requiresExtraMap(producerContext, PRODUCER_NAME)) {
      return null;
    }
    if (valueFound) {
      return ImmutableMap.of(
          EXTRA_CACHED_VALUE_FOUND,
          String.valueOf(valueFound),
          ENCODED_IMAGE_SIZE,
          String.valueOf(sizeInBytes));
    } else {
      return ImmutableMap.of(EXTRA_CACHED_VALUE_FOUND, String.valueOf(valueFound));
    }
  }
Partial disk cache producer.

<p>This producer looks in the disk cache to see if it holds part of the requested image. If the
image is found, then it is passed to the consumer as a non-final result, but an adjusted request
is still sent further along to request the remainder of the image.

<p>When the final result comes from the input producer, the two parts are stitched back together
and returned as a whole.
imagepipeline/src/main/java/com/facebook/imagepipeline/producers/PartialDiskCacheProducer.java