All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bumptech.glide.load.engine.cache.ExternalPreferredCacheDiskCacheFactory Maven / Gradle / Ivy

Go to download

A fast and efficient image loading library for Android focused on smooth scrolling.

There is a newer version: 5.0.0-rc01
Show newest version
package com.bumptech.glide.load.engine.cache;

import android.content.Context;
import android.support.annotation.Nullable;
import java.io.File;

/**
 * Creates an {@link com.bumptech.glide.disklrucache.DiskLruCache} based disk cache in the external
 * disk cache directory, which falls back to the internal disk cache if no external storage is
 * available. If ever fell back to the internal disk cache, will use that one from that moment on.
 *
 * 

Images can be read by everyone when using external disk cache. */ // Public API. @SuppressWarnings({"unused", "WeakerAccess"}) public final class ExternalPreferredCacheDiskCacheFactory extends DiskLruCacheFactory { public ExternalPreferredCacheDiskCacheFactory(Context context) { this(context, DiskCache.Factory.DEFAULT_DISK_CACHE_DIR, DiskCache.Factory.DEFAULT_DISK_CACHE_SIZE); } public ExternalPreferredCacheDiskCacheFactory(Context context, long diskCacheSize) { this(context, DiskCache.Factory.DEFAULT_DISK_CACHE_DIR, diskCacheSize); } public ExternalPreferredCacheDiskCacheFactory(final Context context, final String diskCacheName, final long diskCacheSize) { super(new CacheDirectoryGetter() { @Nullable private File getInternalCacheDirectory() { File cacheDirectory = context.getCacheDir(); if (cacheDirectory == null) { return null; } if (diskCacheName != null) { return new File(cacheDirectory, diskCacheName); } return cacheDirectory; } @Override public File getCacheDirectory() { File internalCacheDirectory = getInternalCacheDirectory(); // Already used internal cache, so keep using that one, // thus avoiding using both external and internal with transient errors. if ((null != internalCacheDirectory) && internalCacheDirectory.exists()) { return internalCacheDirectory; } File cacheDirectory = context.getExternalCacheDir(); // Shared storage is not available. if ((cacheDirectory == null) || (!cacheDirectory.canWrite())) { return internalCacheDirectory; } if (diskCacheName != null) { return new File(cacheDirectory, diskCacheName); } return cacheDirectory; } }, diskCacheSize); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy