summaryrefslogtreecommitdiff
path: root/core/src/main/java
diff options
context:
space:
mode:
authormoralesg <moralesg@rocketmail.com>2020-10-28 12:07:17 -0300
committerGitHub <noreply@github.com>2020-10-28 16:07:17 +0100
commit370df3a26c9990a1b484b4e30145fa9a38f2b403 (patch)
treeff1adbb79c24e84e5efff6c10e94040250b4b15b /core/src/main/java
parent8ad4682aa4cfc58065f02e12b5072b6ee966fafd (diff)
downloadAntennaPod-370df3a26c9990a1b484b4e30145fa9a38f2b403.zip
Local feeds: honor file creation date (#4607)
Diffstat (limited to 'core/src/main/java')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java28
1 files changed, 25 insertions, 3 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java b/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
index 2791be08c..f74ff290c 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
@@ -10,12 +10,15 @@ import androidx.documentfile.provider.DocumentFile;
import org.apache.commons.lang3.StringUtils;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Locale;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
@@ -24,6 +27,7 @@ import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.service.download.DownloadStatus;
import de.danoeh.antennapod.core.storage.DBTasks;
import de.danoeh.antennapod.core.storage.DBWriter;
+import de.danoeh.antennapod.core.util.DateUtils;
import de.danoeh.antennapod.core.util.DownloadError;
public class LocalFeedUpdater {
@@ -130,12 +134,30 @@ public class LocalFeedUpdater {
private static FeedItem createFeedItem(Feed feed, DocumentFile file, Context context) {
String uuid = UUID.randomUUID().toString();
- FeedItem item = new FeedItem(0, file.getName(), uuid, file.getName(), new Date(),
- FeedItem.UNPLAYED, feed);
- item.setAutoDownload(false);
MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();
mediaMetadataRetriever.setDataSource(context, file.getUri());
+ String dateStr = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DATE);
+
+ Date date = null;
+ if (!TextUtils.isEmpty(dateStr)) {
+ try {
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmss", Locale.getDefault());
+ date = simpleDateFormat.parse(dateStr);
+ } catch (ParseException parseException) {
+ date = DateUtils.parse(dateStr);
+ if (date == null) {
+ date = new Date(file.lastModified());
+ }
+ }
+ } else {
+ date = new Date(file.lastModified());
+ }
+
+ FeedItem item = new FeedItem(0, file.getName(), uuid, file.getName(), date,
+ FeedItem.UNPLAYED, feed);
+ item.setAutoDownload(false);
+
String durationStr = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
String title = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
if (!TextUtils.isEmpty(title)) {