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.Display;
 | 
				
			||||||
import android.view.WindowManager;
 | 
					import android.view.WindowManager;
 | 
				
			||||||
import android.widget.Toast;
 | 
					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.ImageLoader;
 | 
				
			||||||
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
 | 
					import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
 | 
				
			||||||
import com.nostra13.universalimageloader.core.process.BitmapProcessor;
 | 
					import com.nostra13.universalimageloader.core.process.BitmapProcessor;
 | 
				
			||||||
@ -399,9 +403,26 @@ public class FDroidApp extends Application {
 | 
				
			|||||||
        if (height > maxSize) {
 | 
					        if (height > maxSize) {
 | 
				
			||||||
            maxSize = height;
 | 
					            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())
 | 
					        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
 | 
				
			||||||
                .imageDownloader(new ImageLoaderForUIL(getApplicationContext()))
 | 
					                .imageDownloader(new ImageLoaderForUIL(getApplicationContext()))
 | 
				
			||||||
                .defaultDisplayImageOptions(Utils.getDefaultDisplayImageOptionsBuilder().build())
 | 
					                .defaultDisplayImageOptions(Utils.getDefaultDisplayImageOptionsBuilder().build())
 | 
				
			||||||
 | 
					                .diskCache(diskCache)
 | 
				
			||||||
                .diskCacheExtraOptions(maxSize, maxSize, new BitmapProcessor() {
 | 
					                .diskCacheExtraOptions(maxSize, maxSize, new BitmapProcessor() {
 | 
				
			||||||
                    @Override
 | 
					                    @Override
 | 
				
			||||||
                    public Bitmap process(Bitmap bitmap) {
 | 
					                    public Bitmap process(Bitmap bitmap) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user