diff --git a/changelog.d/8339.misc b/changelog.d/8339.misc new file mode 100644 index 0000000000..2fed9c438b --- /dev/null +++ b/changelog.d/8339.misc @@ -0,0 +1 @@ +Add an audio alert when the voice broadcast recording is automatically paused diff --git a/vector/src/main/java/im/vector/app/features/voice/AbstractVoiceRecorderQ.kt b/vector/src/main/java/im/vector/app/features/voice/AbstractVoiceRecorderQ.kt index 0d8373870f..dec99df6b7 100644 --- a/vector/src/main/java/im/vector/app/features/voice/AbstractVoiceRecorderQ.kt +++ b/vector/src/main/java/im/vector/app/features/voice/AbstractVoiceRecorderQ.kt @@ -28,7 +28,7 @@ import java.io.File * VoiceRecorder abstraction to be used on Android versions >= [Build.VERSION_CODES.Q]. */ @RequiresApi(Build.VERSION_CODES.Q) -abstract class AbstractVoiceRecorderQ(private val context: Context) : AbstractVoiceRecorder(context) { +abstract class AbstractVoiceRecorderQ(protected val context: Context) : AbstractVoiceRecorder(context) { var mediaRecorder: MediaRecorder? = null protected var nextOutputFile: File? = null diff --git a/vector/src/main/java/im/vector/app/features/voicebroadcast/recording/VoiceBroadcastRecorderQ.kt b/vector/src/main/java/im/vector/app/features/voicebroadcast/recording/VoiceBroadcastRecorderQ.kt index b400bb5871..bf800fb173 100644 --- a/vector/src/main/java/im/vector/app/features/voicebroadcast/recording/VoiceBroadcastRecorderQ.kt +++ b/vector/src/main/java/im/vector/app/features/voicebroadcast/recording/VoiceBroadcastRecorderQ.kt @@ -18,8 +18,11 @@ package im.vector.app.features.voicebroadcast.recording import android.content.Context import android.media.MediaRecorder +import android.media.RingtoneManager +import android.net.Uri import android.os.Build import androidx.annotation.RequiresApi +import im.vector.app.R import im.vector.app.core.di.ActiveSessionHolder import im.vector.app.features.session.coroutineScope import im.vector.app.features.voice.AbstractVoiceRecorderQ @@ -112,6 +115,7 @@ class VoiceBroadcastRecorderQ( pauseRecorder() stopObservingConnectionState() recordingState = VoiceBroadcastRecorder.State.Error + notifyError() } override fun pauseRecord() { @@ -209,6 +213,12 @@ class VoiceBroadcastRecorderQ( } } + private fun notifyError() { + val ringtoneUri = Uri.parse("android.resource://${context.packageName}/${R.raw.vberror}") + val ringtone = RingtoneManager.getRingtone(context, ringtoneUri) + ringtone?.play() + } + private fun onElapsedTimeUpdated(elapsedTimeMillis: Long) { currentRemainingTime = if (currentMaxLength > 0 && recordingState != VoiceBroadcastRecorder.State.Idle) { val currentMaxLengthMillis = TimeUnit.SECONDS.toMillis(currentMaxLength.toLong()) diff --git a/vector/src/main/res/raw/vberror.ogg b/vector/src/main/res/raw/vberror.ogg new file mode 100644 index 0000000000..52f9fbaef1 Binary files /dev/null and b/vector/src/main/res/raw/vberror.ogg differ