Skip to content

Commit

Permalink
Target Android 13 (#6409)
Browse files Browse the repository at this point in the history
  • Loading branch information
ByteHamster committed Apr 3, 2023
1 parent 3e101cc commit 9b989fe
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 40 deletions.
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Expand Up @@ -10,6 +10,7 @@
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

<supports-screens
android:anyDensity="true"
Expand Down
4 changes: 2 additions & 2 deletions common.gradle
@@ -1,9 +1,9 @@
android {
compileSdk 31
compileSdk 33

defaultConfig {
minSdk 21
targetSdk 31
targetSdk 33

multiDexEnabled true
vectorDrawables.useSupportLibrary true
Expand Down
Expand Up @@ -199,48 +199,48 @@ private static FeedItem createFeedItem(Feed feed, FastDocumentFile file, Context
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());
}
}
}
}
Expand Down
Expand Up @@ -62,9 +62,8 @@ public void run() {
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));
Expand All @@ -73,8 +72,6 @@ public void run() {
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();
Expand Down

0 comments on commit 9b989fe

Please sign in to comment.