Merge branch 'fix-feature-image' into 'master'
Fix feature images from only displaying the first one loaded. See merge request !510
This commit is contained in:
commit
6c9d4f899e
@ -136,7 +136,7 @@ public class CleanCacheService extends IntentService {
|
||||
* Delete cached icons that have not been accessed in over a year.
|
||||
*/
|
||||
private void deleteOldIcons() {
|
||||
clearOldFiles(Utils.getIconsCacheDir(this), TimeUnit.DAYS.toMillis(365));
|
||||
clearOldFiles(Utils.getImageCacheDir(this), TimeUnit.DAYS.toMillis(365));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -54,6 +54,7 @@ import org.fdroid.fdroid.compat.PRNGFixes;
|
||||
import org.fdroid.fdroid.data.AppProvider;
|
||||
import org.fdroid.fdroid.data.InstalledAppProviderService;
|
||||
import org.fdroid.fdroid.data.Repo;
|
||||
import org.fdroid.fdroid.data.SanitizedFile;
|
||||
import org.fdroid.fdroid.installer.InstallHistoryService;
|
||||
import org.fdroid.fdroid.net.ImageLoaderForUIL;
|
||||
import org.fdroid.fdroid.net.WifiStateChangeService;
|
||||
@ -274,7 +275,7 @@ public class FDroidApp extends Application {
|
||||
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
|
||||
.imageDownloader(new ImageLoaderForUIL(getApplicationContext()))
|
||||
.diskCache(new LimitedAgeDiskCache(
|
||||
Utils.getIconsCacheDir(this),
|
||||
Utils.getImageCacheDir(this),
|
||||
null,
|
||||
new FileNameGenerator() {
|
||||
@Override
|
||||
@ -282,7 +283,7 @@ public class FDroidApp extends Application {
|
||||
if (TextUtils.isEmpty(imageUri)) {
|
||||
return "null";
|
||||
} else {
|
||||
return imageUri.substring(imageUri.lastIndexOf('/') + 1);
|
||||
return SanitizedFile.sanitizeFileName(Uri.parse(imageUri).getPath().replaceAll("/", "-"));
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -124,9 +124,9 @@ public final class Utils {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the directory where cached icons are stored
|
||||
* @return the directory where cached icons/feature graphics/screenshots are stored
|
||||
*/
|
||||
public static File getIconsCacheDir(Context context) {
|
||||
public static File getImageCacheDir(Context context) {
|
||||
File cacheDir = StorageUtils.getCacheDirectory(context.getApplicationContext(), true);
|
||||
return new File(cacheDir, "icons");
|
||||
}
|
||||
|
@ -11,13 +11,20 @@ import java.io.File;
|
||||
@SuppressWarnings("serial")
|
||||
public class SanitizedFile extends File {
|
||||
|
||||
/**
|
||||
* Removes anything that is not an alpha numeric character, or one of "-", ".", or "_".
|
||||
*/
|
||||
public static String sanitizeFileName(String name) {
|
||||
return name.replaceAll("[^A-Za-z0-9-._]", "");
|
||||
}
|
||||
|
||||
/**
|
||||
* The "name" argument is assumed to be a file name, _not including any path separators_.
|
||||
* If it is a relative path to be appended to "parent", such as "/blah/sneh.txt", then
|
||||
* the forward slashes will be removed and it will be assumed you meant "blahsneh.txt".
|
||||
*/
|
||||
public SanitizedFile(File parent, String name) {
|
||||
super(parent, name.replaceAll("[^A-Za-z0-9-._]", ""));
|
||||
super(parent, sanitizeFileName(name));
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user