From e6df2ed2ba11c79dafab9f9fe08156e156eec8de Mon Sep 17 00:00:00 2001 From: Jitnaught Date: Fri, 28 Dec 2018 02:14:55 -0700 Subject: [PATCH] Fix MediaScanner incorrectly handling empty/whitespace title/album/artist/disc number (#886) * Fixed media scanner not correctly handling empty or whitespace title/album/artist/disc number. * Moved string unset check to function. --- .../android/medialibrary/MediaScanner.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaScanner.java b/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaScanner.java index dee0cd5a..e589fba0 100644 --- a/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaScanner.java +++ b/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaScanner.java @@ -448,6 +448,17 @@ public class MediaScanner implements Handler.Callback { } } + /** + * Checks if a string is null, empty or whitespace. + * + * @param s the string to check + * @return true if null, empty or whitespace + */ + private static boolean isUnset(String s) { + return s == null || s.trim().isEmpty(); + } + + /** * Inspects a single file and adds it to the database or removes it. maybe. * @@ -500,19 +511,19 @@ public class MediaScanner implements Handler.Callback { // Get tags which always must be set String title = tags.getFirst(MediaMetadataExtractor.TITLE); - if (title == null) + if (isUnset(title)) title = file.getName(); String album = tags.getFirst(MediaMetadataExtractor.ALBUM); - if (album == null) + if (isUnset(album)) album = ""; String artist = tags.getFirst(MediaMetadataExtractor.ARTIST); - if (artist == null) + if (isUnset(artist)) artist = ""; String discNumber = tags.getFirst(MediaMetadataExtractor.DISC_NUMBER); - if (discNumber == null) + if (isUnset(discNumber)) discNumber = "1"; // untagged, but most likely '1' - this prevents annoying sorting issues with partially tagged files long artistId = MediaLibrary.hash63(artist);