avoid using some player controls if no recording has been picked yet

This commit is contained in:
tibbi
2020-04-01 20:16:16 +02:00
parent d13d87eb18
commit 2cf2f92d60

View File

@ -27,6 +27,7 @@ class PlayerFragment(context: Context, attributeSet: AttributeSet) : MyViewPager
private var player: MediaPlayer? = null private var player: MediaPlayer? = null
private var progressTimer = Timer() private var progressTimer = Timer()
private var playedRecordingIDs = Stack<Int>()
override fun onResume() { override fun onResume() {
setupColors() setupColors()
@ -47,6 +48,9 @@ class PlayerFragment(context: Context, attributeSet: AttributeSet) : MyViewPager
val recordings = getRecordings() val recordings = getRecordings()
RecordingsAdapter(context as SimpleActivity, recordings, recordings_list, recordings_fastscroller) { RecordingsAdapter(context as SimpleActivity, recordings, recordings_list, recordings_fastscroller) {
playRecording(it as Recording) playRecording(it as Recording)
if (playedRecordingIDs.isEmpty() || playedRecordingIDs.peek() != it.id) {
playedRecordingIDs.push(it.id)
}
}.apply { }.apply {
recordings_list.adapter = this recordings_list.adapter = this
} }
@ -60,7 +64,9 @@ class PlayerFragment(context: Context, attributeSet: AttributeSet) : MyViewPager
initMediaPlayer() initMediaPlayer()
play_pause_btn.setOnClickListener { play_pause_btn.setOnClickListener {
togglePlayPause() if (!playedRecordingIDs.empty()) {
togglePlayPause()
}
} }
player_progress_current.setOnClickListener { player_progress_current.setOnClickListener {
@ -154,7 +160,7 @@ class PlayerFragment(context: Context, attributeSet: AttributeSet) : MyViewPager
player_progressbar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { player_progressbar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
if (fromUser) { if (fromUser && !playedRecordingIDs.isEmpty()) {
player?.seekTo(progress * 1000) player?.seekTo(progress * 1000)
player_progress_current.text = progress.getFormattedDuration() player_progress_current.text = progress.getFormattedDuration()
resumeSong() resumeSong()
@ -215,6 +221,10 @@ class PlayerFragment(context: Context, attributeSet: AttributeSet) : MyViewPager
} }
private fun skip(forward: Boolean) { private fun skip(forward: Boolean) {
if (playedRecordingIDs.empty()) {
return
}
val curr = player?.currentPosition ?: return val curr = player?.currentPosition ?: return
var newProgress = if (forward) curr + FAST_FORWARD_SKIP_MS else curr - FAST_FORWARD_SKIP_MS var newProgress = if (forward) curr + FAST_FORWARD_SKIP_MS else curr - FAST_FORWARD_SKIP_MS
if (newProgress > player!!.duration) { if (newProgress > player!!.duration) {