From 436ef8de916d69eb7c517316741543705a230bc4 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Sat, 15 Mar 2025 17:36:34 -0600 Subject: [PATCH] music: force listener trigger on location change Otherwise it just won't actually update normally. Only for this setting though. The others work just fine for some reason. --- app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt | 5 ++++- app/src/main/java/org/oxycblt/auxio/settings/Settings.kt | 6 +----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt index 8ae954e5a..193d1e827 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt @@ -85,7 +85,10 @@ class MusicSettingsImpl @Inject constructor(@ApplicationContext private val cont sharedPreferences.edit { putString( getString(R.string.set_key_music_locations), MusicLocation.toString(value)) - this@edit.apply() + commit() + // Sometimes changing this setting just won't actually trigger the listener. + // Only this one. No idea why. + listener?.onMusicLocationsChanged() } } diff --git a/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt b/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt index 9f77a3c8f..2128d6db4 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt @@ -62,17 +62,13 @@ interface Settings { */ abstract class Impl(private val context: Context) : Settings, SharedPreferences.OnSharedPreferenceChangeListener { - init { - L.d(this::class.simpleName) - } - protected val sharedPreferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.applicationContext) /** @see [Context.getString] */ protected fun getString(@StringRes stringRes: Int) = context.getString(stringRes) - private var listener: Listener? = null + protected var listener: Listener? = null override fun registerListener(listener: Listener) { if (this.listener == null) {