summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2023-04-03 21:51:54 +0200
committerGitHub <noreply@github.com>2023-04-03 21:51:54 +0200
commit9b989fed432b1c9b82d7a30429f12523e3f6b145 (patch)
tree0bbd1a10a41b9fda63766947200a183b1c26806e /core
parent3e101cca2a8c2373a41f17c0baf5ffd58beb7a7a (diff)
downloadAntennaPod-9b989fed432b1c9b82d7a30429f12523e3f6b145.zip
Target Android 13 (#6409)
Diffstat (limited to 'core')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java68
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/handler/MediaDownloadedHandler.java5
2 files changed, 35 insertions, 38 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 3db4bf2ab..d2a5b70fe 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
@@ -199,48 +199,48 @@ public class LocalFeedUpdater {
return item;
}
- private static void loadMetadata(FeedItem item, FastDocumentFile file, Context context) {
- MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();
- mediaMetadataRetriever.setDataSource(context, file.getUri());
-
- String dateStr = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DATE);
- if (!TextUtils.isEmpty(dateStr)) {
- try {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmss", Locale.getDefault());
- item.setPubDate(simpleDateFormat.parse(dateStr));
- } catch (ParseException parseException) {
- Date date = DateUtils.parse(dateStr);
- if (date != null) {
- item.setPubDate(date);
+ private static void loadMetadata(FeedItem item, FastDocumentFile file, Context context) throws IOException {
+ try (MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever()) {
+ mediaMetadataRetriever.setDataSource(context, file.getUri());
+
+ String dateStr = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DATE);
+ if (!TextUtils.isEmpty(dateStr)) {
+ try {
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmss", Locale.getDefault());
+ item.setPubDate(simpleDateFormat.parse(dateStr));
+ } catch (ParseException parseException) {
+ Date date = DateUtils.parse(dateStr);
+ if (date != null) {
+ item.setPubDate(date);
+ }
}
}
- }
-
- String title = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
- if (!TextUtils.isEmpty(title)) {
- item.setTitle(title);
- }
- String durationStr = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
- item.getMedia().setDuration((int) Long.parseLong(durationStr));
+ String title = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
+ if (!TextUtils.isEmpty(title)) {
+ item.setTitle(title);
+ }
- item.getMedia().setHasEmbeddedPicture(mediaMetadataRetriever.getEmbeddedPicture() != null);
- mediaMetadataRetriever.close();
+ String durationStr = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
+ item.getMedia().setDuration((int) Long.parseLong(durationStr));
- try (InputStream inputStream = context.getContentResolver().openInputStream(file.getUri())) {
- Id3MetadataReader reader = new Id3MetadataReader(
- new CountingInputStream(new BufferedInputStream(inputStream)));
- reader.readInputStream();
- item.setDescriptionIfLonger(reader.getComment());
- } catch (IOException | ID3ReaderException e) {
- Log.d(TAG, "Unable to parse ID3 of " + file.getUri() + ": " + e.getMessage());
+ item.getMedia().setHasEmbeddedPicture(mediaMetadataRetriever.getEmbeddedPicture() != null);
try (InputStream inputStream = context.getContentResolver().openInputStream(file.getUri())) {
- VorbisCommentMetadataReader reader = new VorbisCommentMetadataReader(inputStream);
+ Id3MetadataReader reader = new Id3MetadataReader(
+ new CountingInputStream(new BufferedInputStream(inputStream)));
reader.readInputStream();
- item.setDescriptionIfLonger(reader.getDescription());
- } catch (IOException | VorbisCommentReaderException e2) {
- Log.d(TAG, "Unable to parse vorbis comments of " + file.getUri() + ": " + e2.getMessage());
+ item.setDescriptionIfLonger(reader.getComment());
+ } catch (IOException | ID3ReaderException e) {
+ Log.d(TAG, "Unable to parse ID3 of " + file.getUri() + ": " + e.getMessage());
+
+ try (InputStream inputStream = context.getContentResolver().openInputStream(file.getUri())) {
+ VorbisCommentMetadataReader reader = new VorbisCommentMetadataReader(inputStream);
+ reader.readInputStream();
+ item.setDescriptionIfLonger(reader.getDescription());
+ } catch (IOException | VorbisCommentReaderException e2) {
+ Log.d(TAG, "Unable to parse vorbis comments of " + file.getUri() + ": " + e2.getMessage());
+ }
}
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/MediaDownloadedHandler.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/MediaDownloadedHandler.java
index 897300ca8..c632bf1e0 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/MediaDownloadedHandler.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/MediaDownloadedHandler.java
@@ -62,9 +62,8 @@ public class MediaDownloadedHandler implements Runnable {
ChapterUtils.loadChaptersFromUrl(media.getItem().getPodcastIndexChapterUrl(), false);
}
// Get duration
- MediaMetadataRetriever mmr = new MediaMetadataRetriever();
String durationStr = null;
- try {
+ try (MediaMetadataRetriever mmr = new MediaMetadataRetriever()) {
mmr.setDataSource(media.getFile_url());
durationStr = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
media.setDuration(Integer.parseInt(durationStr));
@@ -73,8 +72,6 @@ public class MediaDownloadedHandler implements Runnable {
Log.d(TAG, "Invalid file duration: " + durationStr);
} catch (Exception e) {
Log.e(TAG, "Get duration failed", e);
- } finally {
- mmr.release();
}
final FeedItem item = media.getItem();