Added option to take different filename if a file with that name exists
This commit is contained in:
parent
fe6460dde5
commit
0f857e6a3b
|
@ -4,6 +4,8 @@ import java.io.File;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
import org.apache.commons.io.FilenameUtils;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
@ -44,12 +46,40 @@ public class DownloadRequester {
|
||||||
return downloader;
|
return downloader;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void download(Context context, FeedFile item, File dest) {
|
private void download(Context context, FeedFile item, File dest,
|
||||||
|
boolean overwriteIfExists) {
|
||||||
if (!isDownloadingFile(item)) {
|
if (!isDownloadingFile(item)) {
|
||||||
if (dest.exists()) {
|
if (dest.exists()) {
|
||||||
if (AppConfig.DEBUG)
|
if (AppConfig.DEBUG)
|
||||||
Log.d(TAG, "File already exists. Deleting !");
|
Log.d(TAG, "File already exists.");
|
||||||
dest.delete();
|
if (overwriteIfExists) {
|
||||||
|
boolean result = dest.delete();
|
||||||
|
if (AppConfig.DEBUG)
|
||||||
|
Log.d(TAG, "Deleting file. Result: " + result);
|
||||||
|
} else {
|
||||||
|
// find different name
|
||||||
|
File newDest = null;
|
||||||
|
for (int i = 1; i < Integer.MAX_VALUE; i++) {
|
||||||
|
String newName = FilenameUtils.getBaseName(dest
|
||||||
|
.getName())
|
||||||
|
+ "-"
|
||||||
|
+ i
|
||||||
|
+ "."
|
||||||
|
+ FilenameUtils.getExtension(dest.getName());
|
||||||
|
if (AppConfig.DEBUG)
|
||||||
|
Log.d(TAG, "Testing filename " + newName);
|
||||||
|
newDest = new File(dest.getParent(), newName);
|
||||||
|
if (!newDest.exists()) {
|
||||||
|
if (AppConfig.DEBUG)
|
||||||
|
Log.d(TAG, "File doesn't exist yet. Using "
|
||||||
|
+ newName);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (newDest != null) {
|
||||||
|
dest = newDest;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (AppConfig.DEBUG)
|
if (AppConfig.DEBUG)
|
||||||
Log.d(TAG,
|
Log.d(TAG,
|
||||||
|
@ -82,7 +112,7 @@ public class DownloadRequester {
|
||||||
throws DownloadRequestException {
|
throws DownloadRequestException {
|
||||||
if (feedFileValid(feed)) {
|
if (feedFileValid(feed)) {
|
||||||
download(context, feed, new File(getFeedfilePath(context),
|
download(context, feed, new File(getFeedfilePath(context),
|
||||||
getFeedfileName(feed)));
|
getFeedfileName(feed)), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,7 +120,7 @@ public class DownloadRequester {
|
||||||
throws DownloadRequestException {
|
throws DownloadRequestException {
|
||||||
if (feedFileValid(image)) {
|
if (feedFileValid(image)) {
|
||||||
download(context, image, new File(getImagefilePath(context),
|
download(context, image, new File(getImagefilePath(context),
|
||||||
getImagefileName(image)));
|
getImagefileName(image)), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,7 +129,7 @@ public class DownloadRequester {
|
||||||
if (feedFileValid(feedmedia)) {
|
if (feedFileValid(feedmedia)) {
|
||||||
download(context, feedmedia,
|
download(context, feedmedia,
|
||||||
new File(getMediafilePath(context, feedmedia),
|
new File(getMediafilePath(context, feedmedia),
|
||||||
getMediafilename(feedmedia)));
|
getMediafilename(feedmedia)), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,8 +234,7 @@ public class DownloadRequester {
|
||||||
if (feed.getTitle() != null && !feed.getTitle().isEmpty()) {
|
if (feed.getTitle() != null && !feed.getTitle().isEmpty()) {
|
||||||
filename = feed.getTitle();
|
filename = feed.getTitle();
|
||||||
}
|
}
|
||||||
return "feed-"
|
return "feed-" + FileNameGenerator.generateFileName(filename);
|
||||||
+ FileNameGenerator.generateFileName(filename);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getImagefilePath(Context context)
|
public String getImagefilePath(Context context)
|
||||||
|
@ -219,8 +248,7 @@ public class DownloadRequester {
|
||||||
if (image.getFeed() != null && image.getFeed().getTitle() != null) {
|
if (image.getFeed() != null && image.getFeed().getTitle() != null) {
|
||||||
filename = image.getFeed().getTitle();
|
filename = image.getFeed().getTitle();
|
||||||
}
|
}
|
||||||
return "image-"
|
return "image-" + FileNameGenerator.generateFileName(filename);
|
||||||
+ FileNameGenerator.generateFileName(filename);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getMediafilePath(Context context, FeedMedia media)
|
public String getMediafilePath(Context context, FeedMedia media)
|
||||||
|
|
Loading…
Reference in New Issue