mirror of
https://github.com/vector-im/riotX-android
synced 2025-10-06 00:02:48 +02:00
Compare commits
8 Commits
feature/ad
...
feature/vo
Author | SHA1 | Date | |
---|---|---|---|
|
fced3de8ef | ||
|
14d85519c9 | ||
|
3085afed8c | ||
|
fc79fa72f3 | ||
|
7df8e911c1 | ||
|
ad29f81d54 | ||
|
fd24813b0b | ||
|
39b6ab7a6c |
1
changelog.d/6738.misc
Normal file
1
changelog.d/6738.misc
Normal file
@@ -0,0 +1 @@
|
||||
Increase max length of voice messages to 15m (PSG-663)
|
@@ -16,6 +16,8 @@
|
||||
|
||||
package im.vector.app.config
|
||||
|
||||
import kotlin.time.Duration.Companion.minutes
|
||||
|
||||
/**
|
||||
* Set of flags to configure the application.
|
||||
*/
|
||||
@@ -43,7 +45,7 @@ object Config {
|
||||
/**
|
||||
* The maximum length of voice messages in milliseconds.
|
||||
*/
|
||||
const val VOICE_MESSAGE_LIMIT_MS = 120_000L
|
||||
val VOICE_MESSAGE_LIMIT_MS = 15.minutes.inWholeMilliseconds
|
||||
|
||||
/**
|
||||
* The strategy for sharing device keys.
|
||||
|
@@ -79,6 +79,7 @@ class AudioMessageHelper @Inject constructor(
|
||||
}
|
||||
|
||||
fun stopRecording(): MultiPickerAudioType? {
|
||||
playbackTracker.stopRecording(AudioMessagePlaybackTracker.RECORDING_ID)
|
||||
tryOrNull("Cannot stop media recording amplitude") {
|
||||
stopRecordingAmplitudes()
|
||||
}
|
||||
@@ -110,11 +111,13 @@ class AudioMessageHelper @Inject constructor(
|
||||
* When entering in playback mode actually.
|
||||
*/
|
||||
fun pauseRecording() {
|
||||
playbackTracker.stopRecording(AudioMessagePlaybackTracker.RECORDING_ID)
|
||||
voiceRecorder.stopRecord()
|
||||
stopRecordingAmplitudes()
|
||||
}
|
||||
|
||||
fun deleteRecording() {
|
||||
playbackTracker.stopRecording(AudioMessagePlaybackTracker.RECORDING_ID)
|
||||
tryOrNull("Cannot stop media recording amplitude") {
|
||||
stopRecordingAmplitudes()
|
||||
}
|
||||
|
@@ -348,8 +348,10 @@ class VoiceMessageViews(
|
||||
fun renderRecordingWaveform(amplitudeList: List<Int>) {
|
||||
views.voicePlaybackWaveform.doOnLayout { waveFormView ->
|
||||
val waveformColor = ThemeUtils.getColor(waveFormView.context, R.attr.vctr_content_quaternary)
|
||||
val view = waveFormView as AudioWaveformView
|
||||
view.clear()
|
||||
amplitudeList.forEach {
|
||||
(waveFormView as AudioWaveformView).add(AudioWaveformView.FFT(it.toFloat(), waveformColor))
|
||||
view.add(AudioWaveformView.FFT(it.toFloat(), waveformColor))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -116,6 +116,10 @@ class AudioMessagePlaybackTracker @Inject constructor() {
|
||||
setState(id, Listener.State.Recording(amplitudeList))
|
||||
}
|
||||
|
||||
fun stopRecording(id: String) {
|
||||
setState(id, Listener.State.Idle)
|
||||
}
|
||||
|
||||
fun getPlaybackState(id: String) = states[id]
|
||||
|
||||
fun getPlaybackTime(id: String): Int {
|
||||
|
@@ -161,10 +161,11 @@ abstract class MessageVoiceItem : AbsMessageItem<MessageVoiceItem.Holder>() {
|
||||
private fun formatPlaybackTime(time: Int) = DateUtils.formatElapsedTime((time / 1000).toLong())
|
||||
|
||||
override fun unbind(holder: Holder) {
|
||||
super.unbind(holder)
|
||||
holder.voicePlaybackWaveform.clear()
|
||||
contentUploadStateTrackerBinder.unbind(attributes.informationData.eventId)
|
||||
contentDownloadStateTrackerBinder.unbind(mxcUrl)
|
||||
audioMessagePlaybackTracker.untrack(attributes.informationData.eventId)
|
||||
super.unbind(holder)
|
||||
}
|
||||
|
||||
override fun getViewStubId() = STUB_ID
|
||||
|
Reference in New Issue
Block a user