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 4ef70c583..56499deea 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 @@ -56,12 +56,7 @@ interface EqualizerDao { @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> - @Query("SELECT * FROM equalizer_entry WHERE id = :id") fun getCurrentEqualizer(id: Long): EqualizerWithBands? - } diff --git a/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt b/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt index 06e43d6b2..0c836ec7e 100644 --- a/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt +++ b/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt @@ -84,9 +84,8 @@ class PlayerController(val context: Context) : IVLCVout.Callback, MediaPlayer.Ev withContext(Dispatchers.IO) { if (!mediaplayer.isReleased) mediaplayer.media = media.apply { if (hasRenderer) parse() } } mediaplayer.setEventListener(this@PlayerController) if (!mediaplayer.isReleased) { - val repository = EqualizerRepository.getInstance(context) - repository.equalizerEntries if (Settings.getInstance(context).getBoolean(KEY_EQUALIZER_ENABLED, false)) withContext(Dispatchers.IO) { + val repository = EqualizerRepository.getInstance(context) mediaplayer.setEqualizer(repository.getCurrentEqualizer(context).getEqualizer()) } mediaplayer.setVideoTitleDisplay(MediaPlayer.Position.Disable, 0) 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 cf8582cbc..6665b1caf 100644 --- a/application/vlc-android/src/org/videolan/vlc/repository/EqualizerRepository.kt +++ b/application/vlc-android/src/org/videolan/vlc/repository/EqualizerRepository.kt @@ -37,11 +37,6 @@ import androidx.core.content.edit class EqualizerRepository(private val equalizerDao: EqualizerDao, private val coroutineContextProvider: CoroutineContextProvider = CoroutineContextProvider()) { - - val equalizerEntries by lazy { - equalizerDao.getEnabledEqualizerEntries() - } - val equalizerEntriesUnfiltered by lazy { equalizerDao.getAllEqualizerEntries() } 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 bbcbb45e5..c4df32a23 100644 --- a/application/vlc-android/src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt +++ b/application/vlc-android/src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt @@ -28,6 +28,7 @@ import android.content.Context import android.net.Uri import androidx.core.content.edit import androidx.fragment.app.FragmentActivity +import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider @@ -64,8 +65,12 @@ class EqualizerViewModel(context: Context, private val equalizerRepository: Equa var presetToDelete:EqualizerWithBands? = null private var oldEqualizer: EqualizerWithBands? = null - val equalizerEntries = equalizerRepository.equalizerEntries.asLiveData() val equalizerUnfilteredEntries = equalizerRepository.equalizerEntriesUnfiltered.asLiveData() + val equalizerEntries = MediatorLiveData>().apply { + addSource(equalizerUnfilteredEntries) { + value = it.filter { !it.equalizerEntry.isDisabled }.sortedBy { it.equalizerEntry.presetIndex } + } + } var currentEqualizerId = 1L set(value) {