NowPlayingViewModel.kt 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package fr.riff_app.riff.ui.nowplaying
  2. import android.widget.SeekBar
  3. import androidx.core.content.edit
  4. import androidx.lifecycle.MutableLiveData
  5. import androidx.lifecycle.ViewModel
  6. import fr.riff_app.riff.playerstore.PlayerStore
  7. import fr.riff_app.riff.preferenceStore
  8. class NowPlayingViewModel: ViewModel() {
  9. /* Note : ViewModels do not have any kind of data persistence, which is a bit of a shame.
  10. Data persistence is currently in beta, and poorly documented (some pages don't even match!)
  11. For the moment, we will store data related to playback state in PlayerStore.
  12. */
  13. var screenRatio: Int = 100
  14. var seekBarChangeListener: SeekBar.OnSeekBarChangeListener =
  15. object : SeekBar.OnSeekBarChangeListener {
  16. override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
  17. // updated continuously as the user slides the thumb
  18. PlayerStore.instance.volume.value = progress
  19. preferenceStore.edit {
  20. putInt("volume", progress)
  21. commit()
  22. }
  23. }
  24. override fun onStartTrackingTouch(seekBar: SeekBar) {
  25. // called when the user first touches the SeekBar
  26. }
  27. override fun onStopTrackingTouch(seekBar: SeekBar) {
  28. // called after the user finishes moving the SeekBar
  29. }
  30. }
  31. }