Build media file name based on item title
Use the media item title as a filename base if exist, fallback on the url name otherwise.
This commit is contained in:
parent
4707139def
commit
92a0b322da
|
@ -5,6 +5,7 @@ import java.util.Map;
|
|||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.commons.lang3.text.ExtendedMessageFormat;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
@ -61,7 +62,7 @@ public class DownloadRequester {
|
|||
.getName())
|
||||
+ "-"
|
||||
+ i
|
||||
+ "."
|
||||
+ FilenameUtils.EXTENSION_SEPARATOR
|
||||
+ FilenameUtils.getExtension(dest.getName());
|
||||
if (AppConfig.DEBUG)
|
||||
Log.d(TAG, "Testing filename " + newName);
|
||||
|
@ -289,8 +290,29 @@ public class DownloadRequester {
|
|||
}
|
||||
|
||||
public String getMediafilename(FeedMedia media) {
|
||||
return URLUtil.guessFileName(media.getDownload_url(), null,
|
||||
media.getMime_type());
|
||||
String filename;
|
||||
String titleBaseFilename = "";
|
||||
|
||||
// Try to generate the filename by the item title
|
||||
if (media.getItem() != null && media.getItem().getTitle() != null) {
|
||||
String title = media.getItem().getTitle();
|
||||
// Delete reserved characters
|
||||
titleBaseFilename = title.replaceAll("[\\\\/%\\?\\*:|<>\"\\p{Cntrl}]", "");
|
||||
titleBaseFilename = titleBaseFilename.trim();
|
||||
}
|
||||
|
||||
String URLBaseFilename = URLUtil.guessFileName(media.getDownload_url(),
|
||||
null, media.getMime_type());;
|
||||
|
||||
if (titleBaseFilename != "") {
|
||||
// Append extension
|
||||
filename = titleBaseFilename + FilenameUtils.EXTENSION_SEPARATOR +
|
||||
FilenameUtils.getExtension(URLBaseFilename);
|
||||
} else {
|
||||
// Fall back on URL file name
|
||||
filename = URLBaseFilename;
|
||||
}
|
||||
return filename;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue