docs: private void maybeEvictFilesInCacheDir() throws IOException {
      synchronized (mLock) {
        boolean calculatedRightNow = maybeUpdateFileCacheSize();
  
        // Update the size limit (mCacheSizeLimit)
        updateFileCacheSizeLimit();
  
        long cacheSize = mCacheStats.getSize();
        // If we are going to evict force a recalculation of the size
        // (except if it was already calculated!)
        if (cacheSize > mCacheSizeLimit && !calculatedRightNow) {
          mCacheStats.reset();
          maybeUpdateFileCacheSize();
        }
  
        // If size has exceeded the size limit, evict some files
        if (cacheSize > mCacheSizeLimit) {
        evictAboveSize(
            mCacheSizeLimit * 9 / 10,
            CacheEventListener.EvictionReason.CACHE_FULL); // 90%
        }
      }
    }