From ce9ccd9bd48919f51bb20ff6758089e6085826e3 Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Sun, 14 Oct 2018 19:43:26 +0200 Subject: [PATCH] Unregister sharedpreferences listener on destroy. If the playback service is stopped before the main activity gets killed, this would have caused the old class to still get updates. Sending preference updates to such an orphaned PlaybackService would trigger crashes in some cases (especially when MediaLibrary detects suspicious unregisters). --- .../ch/blinkenlights/android/vanilla/PlaybackService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/PlaybackService.java b/app/src/main/java/ch/blinkenlights/android/vanilla/PlaybackService.java index 2833a19b..b784d109 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/PlaybackService.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/PlaybackService.java @@ -624,6 +624,10 @@ public final class PlaybackService extends Service // defer wakelock and close audioFX enterSleepState(); + // stop getting preference changes. + getSettings(this).unregisterOnSharedPreferenceChangeListener(this); + + // shutdown all observers. MediaLibrary.unregisterLibraryObserver(mObserver); mPlaylistObserver.unregister();