From 364a08b3bc010f507cf0cf67fc33c189639dc754 Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Tue, 3 Jan 2017 21:22:11 +0100 Subject: [PATCH] set disc_num to 1 if unset --- .../android/medialibrary/MediaLibraryBackend.java | 2 +- .../android/medialibrary/MediaScanner.java | 11 +++++++---- .../android/medialibrary/MediaSchema.java | 4 ++++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/ch/blinkenlights/android/medialibrary/MediaLibraryBackend.java b/src/ch/blinkenlights/android/medialibrary/MediaLibraryBackend.java index a464075f..03fe022c 100644 --- a/src/ch/blinkenlights/android/medialibrary/MediaLibraryBackend.java +++ b/src/ch/blinkenlights/android/medialibrary/MediaLibraryBackend.java @@ -35,7 +35,7 @@ public class MediaLibraryBackend extends SQLiteOpenHelper { /** * The database version we are using */ - private static final int DATABASE_VERSION = 20170101; + private static final int DATABASE_VERSION = 20170102; /** * on-disk file to store the database */ diff --git a/src/ch/blinkenlights/android/medialibrary/MediaScanner.java b/src/ch/blinkenlights/android/medialibrary/MediaScanner.java index 9688c66f..f8a97528 100644 --- a/src/ch/blinkenlights/android/medialibrary/MediaScanner.java +++ b/src/ch/blinkenlights/android/medialibrary/MediaScanner.java @@ -362,16 +362,19 @@ public class MediaScanner implements Handler.Callback { // Get tags which always must be set String title = tags.getFirst(MediaMetadataExtractor.TITLE); if (title == null) - title = "Untitled"; + title = "<"+file.getName()+">"; String album = tags.getFirst(MediaMetadataExtractor.ALBUM); if (album == null) - album = "No Album"; + album = ""; String artist = tags.getFirst(MediaMetadataExtractor.ARTIST); if (artist == null) - artist = "No Artist"; + artist = ""; + String discNumber = tags.getFirst(MediaMetadataExtractor.DISC_NUMBER); + if (discNumber == null) + discNumber = "1"; // untagged, but most likely '1' - this prevents annoying sorting issues with partially tagged files long albumId = MediaLibrary.hash63(album); long artistId = MediaLibrary.hash63(artist); @@ -383,7 +386,7 @@ public class MediaScanner implements Handler.Callback { v.put(MediaLibrary.SongColumns.ALBUM_ID, albumId); v.put(MediaLibrary.SongColumns.DURATION, tags.getFirst(MediaMetadataExtractor.DURATION)); v.put(MediaLibrary.SongColumns.SONG_NUMBER, tags.getFirst(MediaMetadataExtractor.TRACK_NUMBER)); - v.put(MediaLibrary.SongColumns.DISC_NUMBER, tags.getFirst(MediaMetadataExtractor.DISC_NUMBER)); + v.put(MediaLibrary.SongColumns.DISC_NUMBER, discNumber); v.put(MediaLibrary.SongColumns.YEAR, tags.getFirst(MediaMetadataExtractor.YEAR)); v.put(MediaLibrary.SongColumns.PATH, path); mBackend.insert(MediaLibrary.TABLE_SONGS, null, v); diff --git a/src/ch/blinkenlights/android/medialibrary/MediaSchema.java b/src/ch/blinkenlights/android/medialibrary/MediaSchema.java index 7cdde44b..9489de72 100644 --- a/src/ch/blinkenlights/android/medialibrary/MediaSchema.java +++ b/src/ch/blinkenlights/android/medialibrary/MediaSchema.java @@ -217,6 +217,10 @@ public class MediaSchema { dbh.execSQL(DATABASE_CREATE_SONGS); dbh.execSQL(DATABASE_CREATE_ALBUMS); } + + if (oldVersion < 20170102) { + dbh.execSQL("UPDATE songs SET disc_num=1 WHERE disc_num IS null"); + } } }