[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