@Override
  public int hashCode() {
    final boolean cacheHashcode = sCacheHashcode;
    int result = 0;
    if (cacheHashcode) {
      result = mHashcode;
    }
    if (result == 0) {
      final CacheKey postprocessorCacheKey =
          mPostprocessor != null ? mPostprocessor.getPostprocessorCacheKey() : null;
      result = HashCode.extend(0, mCacheChoice);
      result = HashCode.extend(result, mSourceUri);
      result = HashCode.extend(result, mLocalThumbnailPreviewsEnabled);
      result = HashCode.extend(result, mBytesRange);
      result = HashCode.extend(result, mRequestPriority);
      result = HashCode.extend(result, mLowestPermittedRequestLevel);
      result = HashCode.extend(result, mCachesDisabled);
      result = HashCode.extend(result, mIsDiskCacheEnabled);
      result = HashCode.extend(result, mIsMemoryCacheEnabled);
      result = HashCode.extend(result, mImageDecodeOptions);
      result = HashCode.extend(result, mDecodePrefetches);
      result = HashCode.extend(result, mResizeOptions);
      result = HashCode.extend(result, mRotationOptions);
      result = HashCode.extend(result, postprocessorCacheKey);
      result = HashCode.extend(result, mResizingAllowedOverride);
      result = HashCode.extend(result, mDownsampleOverride);
      result = HashCode.extend(result, mDelayMs);
      result = HashCode.extend(result, mLoadThumbnailOnly);
      // ^ I *think* this is safe despite autoboxing...?
      if (cacheHashcode) {
        mHashcode = result;
      }
    }
    return result;
  }
Returns whether the use of the cache is enabled for read or write according to given mask.
imagepipeline/src/main/java/com/facebook/imagepipeline/request/ImageRequest.java