From 3a01d7de31580a2ad10027aaad3ce568c7f216d5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 2 Apr 2020 13:45:16 +0200 Subject: [PATCH] add handling for the case when the currently playing recording is deleted --- .../voicerecorder/adapters/RecordingsAdapter.kt | 6 ++++++ .../voicerecorder/fragments/PlayerFragment.kt | 2 +- .../voicerecorder/interfaces/RefreshRecordingsListener.kt | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/adapters/RecordingsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/adapters/RecordingsAdapter.kt index bf4e7b8..e486699 100644 --- a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/adapters/RecordingsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/adapters/RecordingsAdapter.kt @@ -118,6 +118,7 @@ class RecordingsAdapter( return } + val oldRecordingIndex = recordings.indexOfFirst { it.id == currRecordingId } val recordingsToRemove = recordings.filter { selectedKeys.contains(it.id) } as ArrayList val positions = getSelectedItemPositions() recordingsToRemove.forEach { @@ -134,6 +135,11 @@ class RecordingsAdapter( finishActMode() } else { removeSelectedItems(positions) + if (recordingsToRemove.map { it.id }.contains(currRecordingId)) { + val newRecordingIndex = Math.min(oldRecordingIndex, recordings.size - 1) + val newRecording = recordings[newRecordingIndex] + refreshListener.playRecording(newRecording) + } } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/fragments/PlayerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/fragments/PlayerFragment.kt index b71c76a..b0f091f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/fragments/PlayerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/fragments/PlayerFragment.kt @@ -182,7 +182,7 @@ class PlayerFragment(context: Context, attributeSet: AttributeSet) : MyViewPager } } - private fun playRecording(recording: Recording) { + override fun playRecording(recording: Recording) { val recordingUri = ContentUris.withAppendedId( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, recording.id.toLong() diff --git a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/interfaces/RefreshRecordingsListener.kt b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/interfaces/RefreshRecordingsListener.kt index 911b818..4b19ca1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/interfaces/RefreshRecordingsListener.kt +++ b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/interfaces/RefreshRecordingsListener.kt @@ -1,5 +1,9 @@ package com.simplemobiletools.voicerecorder.interfaces +import com.simplemobiletools.voicerecorder.models.Recording + interface RefreshRecordingsListener { fun refreshRecordings() + + fun playRecording(recording: Recording) }