Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2b03f2b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "LiveData#getValue can return null" into rvc-dev am: 2f601f4d am: c85ff58f am: 235e116f

Change-Id: I0dc60090ad3e980df7a43fffc49db402fce71d7d
parents 7c2dba69 235e116f
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -34,8 +34,13 @@ private const val POSITION_UPDATE_INTERVAL_MILLIS = 100L
/** ViewModel for seek bar in QS media player. */
class SeekBarViewModel(val bgExecutor: DelayableExecutor) {

    private var _data = Progress(false, false, null, null, null)
        set(value) {
            field = value
            _progress.postValue(value)
        }
    private val _progress = MutableLiveData<Progress>().apply {
        postValue(Progress(false, false, null, null, null))
        postValue(_data)
    }
    val progress: LiveData<Progress>
        get() = _progress
@@ -73,7 +78,7 @@ class SeekBarViewModel(val bgExecutor: DelayableExecutor) {
        val position = playbackState?.position?.toInt()
        val duration = mediaMetadata?.getLong(MediaMetadata.METADATA_KEY_DURATION)?.toInt()
        val enabled = if (duration != null && duration <= 0) false else true
        _progress.postValue(Progress(enabled, seekAvailable, position, duration, color))
        _data = Progress(enabled, seekAvailable, position, duration, color)
        if (shouldPollPlaybackPosition()) {
            checkPlaybackPosition()
        }
@@ -82,8 +87,8 @@ class SeekBarViewModel(val bgExecutor: DelayableExecutor) {
    @AnyThread
    private fun checkPlaybackPosition(): Runnable = bgExecutor.executeDelayed({
        val currentPosition = controller?.playbackState?.position?.toInt()
        if (currentPosition != null && _progress.value!!.elapsedTime != currentPosition) {
            _progress.postValue(_progress.value!!.copy(elapsedTime = currentPosition))
        if (currentPosition != null && _data.elapsedTime != currentPosition) {
            _data = _data.copy(elapsedTime = currentPosition)
        }
        if (shouldPollPlaybackPosition()) {
            checkPlaybackPosition()