when storage is low, make UIL limit cache based on available size
This commit is contained in:
parent
c1656f61a7
commit
4a0dd8abe7
@ -41,6 +41,10 @@ import android.util.Log;
|
||||
import android.view.Display;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Toast;
|
||||
import com.nostra13.universalimageloader.cache.disc.DiskCache;
|
||||
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
|
||||
import com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiskCache;
|
||||
import com.nostra13.universalimageloader.core.DefaultConfigurationFactory;
|
||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
||||
import com.nostra13.universalimageloader.core.process.BitmapProcessor;
|
||||
@ -399,9 +403,26 @@ public class FDroidApp extends Application {
|
||||
if (height > maxSize) {
|
||||
maxSize = height;
|
||||
}
|
||||
|
||||
DiskCache diskCache;
|
||||
long available = Utils.getImageCacheDirAvailableMemory(this);
|
||||
int percentageFree = Utils.getPercent(available, Utils.getImageCacheDirTotalMemory(this));
|
||||
if (percentageFree > 5) {
|
||||
diskCache = new UnlimitedDiskCache(Utils.getImageCacheDir(this));
|
||||
} else {
|
||||
Log.i(TAG, "Switching to LruDiskCache(" + available / 2L + ") to save disk space!");
|
||||
try {
|
||||
diskCache = new LruDiskCache(Utils.getImageCacheDir(this),
|
||||
DefaultConfigurationFactory.createFileNameGenerator(),
|
||||
available / 2L);
|
||||
} catch (IOException e) {
|
||||
diskCache = new UnlimitedDiskCache(Utils.getImageCacheDir(this));
|
||||
}
|
||||
}
|
||||
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
|
||||
.imageDownloader(new ImageLoaderForUIL(getApplicationContext()))
|
||||
.defaultDisplayImageOptions(Utils.getDefaultDisplayImageOptionsBuilder().build())
|
||||
.diskCache(diskCache)
|
||||
.diskCacheExtraOptions(maxSize, maxSize, new BitmapProcessor() {
|
||||
@Override
|
||||
public Bitmap process(Bitmap bitmap) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user