From c3c08ba5d67d836274fabdf4c1bff6f1053d95a3 Mon Sep 17 00:00:00 2001 From: Marco Nelissen Date: Fri, 31 Jul 2009 15:02:25 -0700 Subject: [PATCH] Name unknown albums after the folder they're in, similar to how songs with no title metadata are named after the file. Only files that are in the root of the card will still belong to the "Unknown Album" --- media/java/android/media/MediaScanner.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java index 95f36809bdf1b..8db874a70757e 100644 --- a/media/java/android/media/MediaScanner.java +++ b/media/java/android/media/MediaScanner.java @@ -674,6 +674,26 @@ public class MediaScanner } values.put(MediaStore.MediaColumns.TITLE, title); } + String album = values.getAsString(Audio.Media.ALBUM); + if (MediaFile.UNKNOWN_STRING.equals(album)) { + album = values.getAsString(MediaStore.MediaColumns.DATA); + // extract last path segment before file name + int lastSlash = album.lastIndexOf('/'); + if (lastSlash >= 0) { + int previousSlash = 0; + while (true) { + int idx = album.indexOf('/', previousSlash + 1); + if (idx < 0 || idx >= lastSlash) { + break; + } + previousSlash = idx; + } + if (previousSlash != 0) { + album = album.substring(previousSlash + 1, lastSlash); + values.put(Audio.Media.ALBUM, album); + } + } + } if (isAudio) { values.put(Audio.Media.IS_RINGTONE, ringtones); values.put(Audio.Media.IS_NOTIFICATION, notifications);