From cb6cb5f637e12a0cb0f2a157983f4840d3465ca4 Mon Sep 17 00:00:00 2001 From: advplyr Date: Sun, 22 May 2022 15:31:25 -0500 Subject: [PATCH] Fix:M4B downloads on Android 9 & 10 not detected as audio files (mimeType is showing as application/octet-stream) #154 --- .../main/java/com/audiobookshelf/app/data/DeviceClasses.kt | 2 ++ .../main/java/com/audiobookshelf/app/device/FolderScanner.kt | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/android/app/src/main/java/com/audiobookshelf/app/data/DeviceClasses.kt b/android/app/src/main/java/com/audiobookshelf/app/data/DeviceClasses.kt index 2d93a2e1..1958382c 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/data/DeviceClasses.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/data/DeviceClasses.kt @@ -42,6 +42,8 @@ data class LocalFile( ) { @JsonIgnore fun isAudioFile():Boolean { + if (mimeType == "application/octet-stream") return true + if (mimeType == "video/mp4") return true return mimeType?.startsWith("audio") == true } } diff --git a/android/app/src/main/java/com/audiobookshelf/app/device/FolderScanner.kt b/android/app/src/main/java/com/audiobookshelf/app/device/FolderScanner.kt index 8e2e4321..3625c3cc 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/device/FolderScanner.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/device/FolderScanner.kt @@ -248,9 +248,10 @@ class FolderScanner(var ctx: Context) { val localLibraryItemId = getLocalLibraryItemId(itemFolderId) Log.d(tag, "scanDownloadItem starting for ${downloadItem.itemFolderPath} | ${df.uri} | Item Folder Id:$itemFolderId | LLI Id:$localLibraryItemId") - + // Search for files in media item folder - val filesFound = df.search(false, DocumentFileType.FILE, arrayOf("audio/*", "image/*", "video/mp4")) + // m4b files showing as mimeType application/octet-stream on Android 10 and earlier see #154 + val filesFound = df.search(false, DocumentFileType.FILE, arrayOf("audio/*", "image/*", "video/mp4", "application/octet-stream")) Log.d(tag, "scanDownloadItem ${filesFound.size} files found in ${downloadItem.itemFolderPath}") var localEpisodeId:String? = null