[Android] Make sure the current equalizer id is valid

Nicolas Pomepuy git at videolan.org
Fri Jul 25 11:46:43 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Fri Jun 20 12:49:41 2025 +0200| [655dbf4edf5665b2e1806312c3dd30be4cf0a093] | committer: Nicolas Pomepuy

Make sure the current equalizer id is valid

> https://code.videolan.org/videolan/vlc-android/commit/655dbf4edf5665b2e1806312c3dd30be4cf0a093
---

 .../mediadb/src/main/java/org/videolan/vlc/database/EqualizerDao.kt | 6 +++++-
 .../src/org/videolan/vlc/repository/EqualizerRepository.kt          | 5 ++++-
 .../src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt           | 6 ++++--
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/application/mediadb/src/main/java/org/videolan/vlc/database/EqualizerDao.kt b/application/mediadb/src/main/java/org/videolan/vlc/database/EqualizerDao.kt
index dfdb46cc9e..4ef70c583b 100644
--- a/application/mediadb/src/main/java/org/videolan/vlc/database/EqualizerDao.kt
+++ b/application/mediadb/src/main/java/org/videolan/vlc/database/EqualizerDao.kt
@@ -52,12 +52,16 @@ interface EqualizerDao {
     @Query("SELECT * FROM equalizer_entry ORDER BY preset_index ASC")
     fun getAllEqualizerEntries(): Flow<List<EqualizerWithBands>>
 
+    @Transaction
+    @Query("SELECT * FROM equalizer_entry WHERE is_disabled = 0 ORDER BY preset_index ASC LIMIT 1")
+    fun getFirstEqualizerEntry(): EqualizerWithBands
+
     @Transaction
     @Query("SELECT * FROM equalizer_entry WHERE is_disabled = 0 ORDER BY preset_index ASC")
     fun getEnabledEqualizerEntries(): Flow<List<EqualizerWithBands>>
 
     @Query("SELECT * FROM equalizer_entry WHERE id = :id")
-    fun getCurrentEqualizer(id: Long): EqualizerWithBands
+    fun getCurrentEqualizer(id: Long): EqualizerWithBands?
 
 
 }
diff --git a/application/vlc-android/src/org/videolan/vlc/repository/EqualizerRepository.kt b/application/vlc-android/src/org/videolan/vlc/repository/EqualizerRepository.kt
index c379d48f1d..cf8582cbc6 100644
--- a/application/vlc-android/src/org/videolan/vlc/repository/EqualizerRepository.kt
+++ b/application/vlc-android/src/org/videolan/vlc/repository/EqualizerRepository.kt
@@ -33,6 +33,7 @@ import org.videolan.vlc.database.EqualizerDao
 import org.videolan.vlc.database.MediaDatabase
 import org.videolan.vlc.mediadb.models.EqualizerEntry
 import org.videolan.vlc.mediadb.models.EqualizerWithBands
+import androidx.core.content.edit
 
 class EqualizerRepository(private val equalizerDao: EqualizerDao, private val coroutineContextProvider: CoroutineContextProvider = CoroutineContextProvider()) {
 
@@ -45,7 +46,9 @@ class EqualizerRepository(private val equalizerDao: EqualizerDao, private val co
             equalizerDao.getAllEqualizerEntries()
     }
 
-    fun getCurrentEqualizer(context: Context) = equalizerDao.getCurrentEqualizer(Settings.getInstance(context).getLong(KEY_CURRENT_EQUALIZER_ID, 1L))
+    fun getCurrentEqualizer(context: Context) = equalizerDao.getCurrentEqualizer(Settings.getInstance(context).getLong(KEY_CURRENT_EQUALIZER_ID, 1L)) ?: equalizerDao.getFirstEqualizerEntry().also {
+        Settings.getInstance(context).edit { putLong(KEY_CURRENT_EQUALIZER_ID, it.equalizerEntry.id) }
+    }
 
     /**
      * Add or update equalizer with bands
diff --git a/application/vlc-android/src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt b/application/vlc-android/src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt
index d2ca1f49ba..633de6b5ca 100644
--- a/application/vlc-android/src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt
+++ b/application/vlc-android/src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt
@@ -83,11 +83,13 @@ class EqualizerViewModel(context: Context, private val equalizerRepository: Equa
         if (!settings.getBoolean(KEY_EQUALIZER_ENABLED, false))
             PlaybackService.equalizer.value = MediaPlayer.Equalizer.create()
         else
-            PlaybackService.equalizer.value =getCurrentEqualizer().getEqualizer()
+            PlaybackService.equalizer.value = getCurrentEqualizer().getEqualizer()
     }
 
     init {
-        currentEqualizerId = settings.getLong(KEY_CURRENT_EQUALIZER_ID, 1L)
+        viewModelScope.launch(Dispatchers.IO) {
+            currentEqualizerId = equalizerRepository.getCurrentEqualizer(context).equalizerEntry.id
+        }
     }
 
     fun insert(context: Context, equalizerWithBands: EqualizerWithBands) = viewModelScope.launch(Dispatchers.IO) {



More information about the Android mailing list