diff --git a/app/src/main/java/org/linphone/activities/main/recordings/adapters/RecordingsListAdapter.kt b/app/src/main/java/org/linphone/activities/main/recordings/adapters/RecordingsListAdapter.kt index 13c7e1946..9bd2ffe22 100644 --- a/app/src/main/java/org/linphone/activities/main/recordings/adapters/RecordingsListAdapter.kt +++ b/app/src/main/java/org/linphone/activities/main/recordings/adapters/RecordingsListAdapter.kt @@ -20,7 +20,6 @@ package org.linphone.activities.main.recordings.adapters import android.content.Context -import android.os.SystemClock import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -73,23 +72,6 @@ class RecordingsListAdapter(val selectionViewModel: ListTopBarViewModel) : Lifec } } - recording.playStartedEvent.observe(this@ViewHolder, Observer { - it.consume { playing -> - recordCurrentTime.base = SystemClock.elapsedRealtime() - - if (playing) { - recordCurrentTime.start() - } else { - recordCurrentTime.stop() - recordProgressionBar.progress = 0 - } - } - }) - - recordCurrentTime.setOnChronometerTickListener { - recordProgressionBar.progress = (SystemClock.elapsedRealtime() - it.base).toInt() - } - executePendingBindings() } } diff --git a/app/src/main/java/org/linphone/activities/main/recordings/viewmodels/RecordingViewModel.kt b/app/src/main/java/org/linphone/activities/main/recordings/viewmodels/RecordingViewModel.kt index f115d556d..c98fd1b94 100644 --- a/app/src/main/java/org/linphone/activities/main/recordings/viewmodels/RecordingViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/recordings/viewmodels/RecordingViewModel.kt @@ -21,16 +21,20 @@ package org.linphone.activities.main.recordings.viewmodels import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope import java.text.DateFormat import java.text.SimpleDateFormat import java.util.* import java.util.regex.Pattern +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.channels.ticker +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.core.AudioDevice import org.linphone.core.Player import org.linphone.core.PlayerListener import org.linphone.core.tools.Log -import org.linphone.utils.Event import org.linphone.utils.LinphoneUtils class RecordingViewModel(val path: String) : ViewModel(), Comparable { @@ -54,14 +58,17 @@ class RecordingViewModel(val path: String) : ViewModel(), Comparable>() + val position = MutableLiveData() + val formattedPosition = MutableLiveData() val isPlaying = MutableLiveData() + private val tickerChannel = ticker(1000, 1000) + private var player: Player private val listener = PlayerListener { Log.i("[Recording] End of file reached") - pause() + stop() } init { @@ -72,6 +79,9 @@ class RecordingViewModel(val path: String) : ViewModel(), Comparable Unit) { + view.setOnSeekBarChangeListener(object : OnSeekBarChangeListener { + override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { + if (fromUser) lambda(progress) + } + + override fun onStartTrackingTouch(seekBar: SeekBar?) { } + + override fun onStopTrackingTouch(seekBar: SeekBar?) { } + }) +} + @BindingAdapter("entries") fun setEntries( viewGroup: ViewGroup, diff --git a/app/src/main/res/layout/recording_list_cell.xml b/app/src/main/res/layout/recording_list_cell.xml index d8dd5ebc5..a31c0e9ac 100644 --- a/app/src/main/res/layout/recording_list_cell.xml +++ b/app/src/main/res/layout/recording_list_cell.xml @@ -88,8 +88,8 @@ android:layout_alignParentRight="true" android:orientation="horizontal"> - @@ -108,8 +108,9 @@