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