Switch to "apks" apk cache dir, use internal cache when external is not available
This commit is contained in:
		
							parent
							
								
									8a90687867
								
							
						
					
					
						commit
						4d94295864
					
				@ -76,6 +76,9 @@ import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
 | 
				
			|||||||
import com.nostra13.universalimageloader.core.DisplayImageOptions;
 | 
					import com.nostra13.universalimageloader.core.DisplayImageOptions;
 | 
				
			||||||
import com.nostra13.universalimageloader.core.ImageLoader;
 | 
					import com.nostra13.universalimageloader.core.ImageLoader;
 | 
				
			||||||
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
 | 
					import com.nostra13.universalimageloader.core.assist.ImageScaleType;
 | 
				
			||||||
 | 
					import com.nostra13.universalimageloader.utils.StorageUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import android.os.Environment;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class AppDetails extends ListActivity {
 | 
					public class AppDetails extends ListActivity {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -841,8 +844,8 @@ public class AppDetails extends ListActivity {
 | 
				
			|||||||
                        public void onClick(DialogInterface dialog,
 | 
					                        public void onClick(DialogInterface dialog,
 | 
				
			||||||
                                int whichButton) {
 | 
					                                int whichButton) {
 | 
				
			||||||
                            downloadHandler = new DownloadHandler(app.curApk,
 | 
					                            downloadHandler = new DownloadHandler(app.curApk,
 | 
				
			||||||
                                    repoaddress, DB
 | 
					                                    repoaddress, Utils
 | 
				
			||||||
                                            .getDataPath(getBaseContext()));
 | 
					                                    .getApkCacheDir(getBaseContext()));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    });
 | 
					                    });
 | 
				
			||||||
            ask_alrt.setNegativeButton(getString(R.string.no),
 | 
					            ask_alrt.setNegativeButton(getString(R.string.no),
 | 
				
			||||||
@ -872,7 +875,7 @@ public class AppDetails extends ListActivity {
 | 
				
			|||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        downloadHandler = new DownloadHandler(app.curApk, repoaddress,
 | 
					        downloadHandler = new DownloadHandler(app.curApk, repoaddress,
 | 
				
			||||||
                DB.getDataPath(this));
 | 
					                Utils.getApkCacheDir(getBaseContext()));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void removeApk(String id) {
 | 
					    private void removeApk(String id) {
 | 
				
			||||||
 | 
				
			|||||||
@ -619,14 +619,6 @@ public class DB {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Get the local storage (cache) path. This will also create it if
 | 
					 | 
				
			||||||
     * it doesn't exist. It can return null if it's currently unavailable.
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static File getDataPath(Context ctx) {
 | 
					 | 
				
			||||||
        return ContextCompat.create(ctx).getExternalCacheDir();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private Context mContext;
 | 
					    private Context mContext;
 | 
				
			||||||
    private Apk.CompatibilityChecker compatChecker = null;
 | 
					    private Apk.CompatibilityChecker compatChecker = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -31,11 +31,13 @@ import android.util.Log;
 | 
				
			|||||||
import android.content.Context;
 | 
					import android.content.Context;
 | 
				
			||||||
import android.content.SharedPreferences;
 | 
					import android.content.SharedPreferences;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.nostra13.universalimageloader.utils.StorageUtils;
 | 
					import org.fdroid.fdroid.Utils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.nostra13.universalimageloader.cache.disc.impl.LimitedAgeDiscCache;
 | 
					import com.nostra13.universalimageloader.cache.disc.impl.LimitedAgeDiscCache;
 | 
				
			||||||
import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator;
 | 
					import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator;
 | 
				
			||||||
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.utils.StorageUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class FDroidApp extends Application {
 | 
					public class FDroidApp extends Application {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -78,14 +80,14 @@ public class FDroidApp extends Application {
 | 
				
			|||||||
        curTheme = Theme.valueOf(prefs.getString("theme", "dark"));
 | 
					        curTheme = Theme.valueOf(prefs.getString("theme", "dark"));
 | 
				
			||||||
        if (!prefs.getBoolean("cacheDownloaded", false)) {
 | 
					        if (!prefs.getBoolean("cacheDownloaded", false)) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            File local_path = DB.getDataPath(this);
 | 
					            File local_path = Utils.getApkCacheDir(this);
 | 
				
			||||||
            // Things can be null if the SD card is not ready - we'll just
 | 
					            // Things can be null if the SD card is not ready - we'll just
 | 
				
			||||||
            // ignore that and do it next time.
 | 
					            // ignore that and do it next time.
 | 
				
			||||||
            if(local_path != null) {
 | 
					            if (local_path != null) {
 | 
				
			||||||
                File[] files = local_path.listFiles();
 | 
					                File[] files = local_path.listFiles();
 | 
				
			||||||
                if(files != null) {
 | 
					                if (files != null) {
 | 
				
			||||||
                    for(File f : files) {
 | 
					                    for (File f : files) {
 | 
				
			||||||
                        if(f.getName().endsWith(".apk")) {
 | 
					                        if (f.getName().endsWith(".apk")) {
 | 
				
			||||||
                            f.delete();
 | 
					                            f.delete();
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
@ -101,7 +103,8 @@ public class FDroidApp extends Application {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(ctx)
 | 
					        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(ctx)
 | 
				
			||||||
            .discCache(new LimitedAgeDiscCache(
 | 
					            .discCache(new LimitedAgeDiscCache(
 | 
				
			||||||
                        new File(StorageUtils.getCacheDirectory(ctx), "icons"),
 | 
					                        new File(StorageUtils.getCacheDirectory(ctx, true),
 | 
				
			||||||
 | 
					                            "icons"),
 | 
				
			||||||
                        new FileNameGenerator() {
 | 
					                        new FileNameGenerator() {
 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public String generate(String imageUri) {
 | 
					                            public String generate(String imageUri) {
 | 
				
			||||||
 | 
				
			|||||||
@ -26,6 +26,10 @@ import java.io.InputStream;
 | 
				
			|||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.io.OutputStream;
 | 
					import java.io.OutputStream;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import android.content.Context;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.nostra13.universalimageloader.utils.StorageUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public final class Utils {
 | 
					public final class Utils {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static final int BUFFER_SIZE = 4096;
 | 
					    public static final int BUFFER_SIZE = 4096;
 | 
				
			||||||
@ -143,4 +147,13 @@ public final class Utils {
 | 
				
			|||||||
        return count;
 | 
					        return count;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static File getApkCacheDir(Context context) {
 | 
				
			||||||
 | 
					        File apkCacheDir = new File(
 | 
				
			||||||
 | 
					                StorageUtils.getCacheDirectory(context, true), "apks");
 | 
				
			||||||
 | 
					        if (!apkCacheDir.exists()) {
 | 
				
			||||||
 | 
					            apkCacheDir.mkdir();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return apkCacheDir;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -39,7 +39,7 @@ class OldContextCompatImpl extends ContextCompat {
 | 
				
			|||||||
    public File getExternalCacheDir() {
 | 
					    public File getExternalCacheDir() {
 | 
				
			||||||
        File file = new File(Environment.getExternalStorageDirectory(),
 | 
					        File file = new File(Environment.getExternalStorageDirectory(),
 | 
				
			||||||
                "Android/data/org.fdroid.fdroid/cache");
 | 
					                "Android/data/org.fdroid.fdroid/cache");
 | 
				
			||||||
        if(!file.exists())
 | 
					        if (!file.exists())
 | 
				
			||||||
            file.mkdirs();
 | 
					            file.mkdirs();
 | 
				
			||||||
        return file;
 | 
					        return file;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user