From 629f0e0b8d5a8e2848dd332761ebb2fb230b8746 Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Fri, 6 Jul 2018 22:18:39 +0200 Subject: [PATCH] Add LibraryObserver.Values.* --- .../android/medialibrary/LibraryObserver.java | 11 +++++++++-- .../android/medialibrary/MediaLibrary.java | 2 +- .../android/medialibrary/MediaScanner.java | 8 ++++---- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/ch/blinkenlights/android/medialibrary/LibraryObserver.java b/app/src/main/java/ch/blinkenlights/android/medialibrary/LibraryObserver.java index e612c24c..7ab16e6a 100644 --- a/app/src/main/java/ch/blinkenlights/android/medialibrary/LibraryObserver.java +++ b/app/src/main/java/ch/blinkenlights/android/medialibrary/LibraryObserver.java @@ -26,8 +26,15 @@ public class LibraryObserver { * by the receiver */ public enum Type { - SONG, // Change affected song entries - PLAYLIST, // Change affected playlists + SONG, // Change affected song items. + PLAYLIST, // Change affected playlists. + } + /** + * Special hint values + */ + public class Value { + public static final int UNKNOWN = -1; // The exact id of the changed object is not know, may have affected all items. + public static final int OUTDATED = -2; // Everything you know is wrong: Cached data must not be used nor trusted. } /** diff --git a/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaLibrary.java b/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaLibrary.java index 8ee4a763..03446a6f 100644 --- a/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaLibrary.java +++ b/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaLibrary.java @@ -362,7 +362,7 @@ public class MediaLibrary { if (rows > 0) { getBackend(context).cleanOrphanedEntries(true); notifyObserver(LibraryObserver.Type.SONG, id, false); - notifyObserver(LibraryObserver.Type.PLAYLIST, -1, false); + notifyObserver(LibraryObserver.Type.PLAYLIST, LibraryObserver.Value.UNKNOWN, false); } return rows; } 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 4ed8bba7..0ba862ee 100644 --- a/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaScanner.java +++ b/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaScanner.java @@ -205,19 +205,19 @@ public class MediaScanner implements Handler.Callback { switch (rpc) { case MSG_NOTIFY_CHANGE: { - MediaLibrary.notifyObserver(LibraryObserver.Type.SONG, -1, true); + MediaLibrary.notifyObserver(LibraryObserver.Type.SONG, LibraryObserver.Value.UNKNOWN, true); break; } case MSG_SCAN_FINISHED: { if (mIsInitialScan) { mIsInitialScan = false; - PlaylistBridge.importAndroidPlaylists(mContext); + MediaLibrary.notifyObserver(LibraryObserver.Type.PLAYLIST, LibraryObserver.Value.OUTDATED, false); } if (mPendingCleanup) { mPendingCleanup = false; mBackend.cleanOrphanedEntries(true); // scan run possibly deleted file which may affect playlists: - MediaLibrary.notifyObserver(LibraryObserver.Type.PLAYLIST, -1, false); + MediaLibrary.notifyObserver(LibraryObserver.Type.PLAYLIST, LibraryObserver.Value.UNKNOWN, false); } // Send a last change notification to all observers. @@ -226,7 +226,7 @@ public class MediaScanner implements Handler.Callback { // also signals that this will be our last update // for this scan. mHandler.removeMessages(MSG_NOTIFY_CHANGE); - MediaLibrary.notifyObserver(LibraryObserver.Type.SONG, -1, false); + MediaLibrary.notifyObserver(LibraryObserver.Type.SONG, LibraryObserver.Value.UNKNOWN, false); updateNotification(false); break;