From 60da6093f323cef57425b38e4068ed3bbf3719ca Mon Sep 17 00:00:00 2001 From: advplyr Date: Tue, 12 Sep 2023 17:14:28 -0500 Subject: [PATCH] Update:Android auto include explicit indicator #611 --- .../java/com/audiobookshelf/app/data/DataClasses.kt | 13 +++++++------ .../java/com/audiobookshelf/app/data/LibraryItem.kt | 4 ++++ .../com/audiobookshelf/app/data/LocalLibraryItem.kt | 4 ++++ .../com/audiobookshelf/app/data/LocalMediaItem.kt | 2 +- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/android/app/src/main/java/com/audiobookshelf/app/data/DataClasses.kt b/android/app/src/main/java/com/audiobookshelf/app/data/DataClasses.kt index f0ed55b4..7b4f1426 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/data/DataClasses.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/data/DataClasses.kt @@ -24,7 +24,7 @@ open class MediaType(var metadata:MediaTypeMetadata, var coverPath:String?) { @JsonIgnore open fun removeAudioTrack(localFileId:String) { } @JsonIgnore - open fun getLocalCopy():MediaType { return MediaType(MediaTypeMetadata(""),null) } + open fun getLocalCopy():MediaType { return MediaType(MediaTypeMetadata("", false),null) } } @@ -190,7 +190,7 @@ class Book( JsonSubTypes.Type(BookMetadata::class), JsonSubTypes.Type(PodcastMetadata::class) ) -open class MediaTypeMetadata(var title:String) { +open class MediaTypeMetadata(var title:String, var explicit:Boolean) { @JsonIgnore open fun getAuthorDisplayName():String { return "Unknown" } } @@ -209,13 +209,13 @@ class BookMetadata( var isbn:String?, var asin:String?, var language:String?, - var explicit:Boolean, + explicit:Boolean, // In toJSONExpanded var authorName:String?, var authorNameLF:String?, var narratorName:String?, var seriesName:String? -) : MediaTypeMetadata(title) { +) : MediaTypeMetadata(title, explicit) { @JsonIgnore override fun getAuthorDisplayName():String { return authorName ?: "Unknown" } } @@ -225,8 +225,9 @@ class PodcastMetadata( title:String, var author:String?, var feedUrl:String?, - var genres:MutableList -) : MediaTypeMetadata(title) { + var genres:MutableList, + explicit:Boolean +) : MediaTypeMetadata(title, explicit) { @JsonIgnore override fun getAuthorDisplayName():String { return author ?: "Unknown" } } diff --git a/android/app/src/main/java/com/audiobookshelf/app/data/LibraryItem.kt b/android/app/src/main/java/com/audiobookshelf/app/data/LibraryItem.kt index 9411b62b..491320ab 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/data/LibraryItem.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/data/LibraryItem.kt @@ -90,6 +90,10 @@ class LibraryItem( ) } + if (media.metadata.explicit) { + extras.putLong(MediaConstants.METADATA_KEY_IS_EXPLICIT, MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT) + } + val mediaId = localLibraryItemId ?: id return MediaDescriptionCompat.Builder() .setMediaId(mediaId) diff --git a/android/app/src/main/java/com/audiobookshelf/app/data/LocalLibraryItem.kt b/android/app/src/main/java/com/audiobookshelf/app/data/LocalLibraryItem.kt index ff13fe7b..b2bc2423 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/data/LocalLibraryItem.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/data/LocalLibraryItem.kt @@ -152,6 +152,10 @@ class LocalLibraryItem( ) } + if (media.metadata.explicit) { + extras.putLong(MediaConstants.METADATA_KEY_IS_EXPLICIT, MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT) + } + val mediaDescriptionBuilder = MediaDescriptionCompat.Builder() .setMediaId(id) .setTitle(title) diff --git a/android/app/src/main/java/com/audiobookshelf/app/data/LocalMediaItem.kt b/android/app/src/main/java/com/audiobookshelf/app/data/LocalMediaItem.kt index c502a1eb..ef1c7994 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/data/LocalMediaItem.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/data/LocalMediaItem.kt @@ -43,7 +43,7 @@ data class LocalMediaItem( return if (mediaType == "book") { BookMetadata(name,null, mutableListOf(), mutableListOf(), mutableListOf(),null,null,null,null,null,null,null,false,null,null,null,null) } else { - PodcastMetadata(name,null,null, mutableListOf()) + PodcastMetadata(name,null,null, mutableListOf(), false) } }