From a3e8a9c114bbc836ea335f6c20586ca4e4c036c9 Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Fri, 25 Jun 2021 16:51:45 +0300 Subject: [PATCH] #4094 - Increased minimum long press duration to 1 second, reversed audio recorder waveform direction, added a minimum recording duration of 5 seconds for hold&send. --- .../Room/VoiceMessages/VoiceMessageController.swift | 9 ++++++--- .../Room/VoiceMessages/VoiceMessageToolbarView.swift | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Riot/Modules/Room/VoiceMessages/VoiceMessageController.swift b/Riot/Modules/Room/VoiceMessages/VoiceMessageController.swift index 3f8a61a12..9c2d500e5 100644 --- a/Riot/Modules/Room/VoiceMessages/VoiceMessageController.swift +++ b/Riot/Modules/Room/VoiceMessages/VoiceMessageController.swift @@ -29,6 +29,7 @@ public class VoiceMessageController: NSObject, VoiceMessageToolbarViewDelegate, static let maximumAudioRecordingDuration: TimeInterval = 120.0 static let maximumAudioRecordingLengthReachedThreshold: TimeInterval = 10.0 static let elapsedTimeFormat = "m:ss" + static let minimumRecordingDuration = 5.0 } private static let timeFormatter: DateFormatter = { @@ -186,7 +187,9 @@ public class VoiceMessageController: NSObject, VoiceMessageToolbarViewDelegate, } guard isInLockedMode else { - sendRecordingAtURL(url) + if audioRecorder?.currentTime ?? 0 >= Constants.minimumRecordingDuration { + sendRecordingAtURL(url) + } return } @@ -261,8 +264,8 @@ public class VoiceMessageController: NSObject, VoiceMessageToolbarViewDelegate, } let sample = audioRecorder?.averagePowerForChannelNumber(0) ?? 0.0 - audioSamples.append(sample) - audioSamples.remove(at: 0) + audioSamples.insert(sample, at: 0) + audioSamples.removeLast() let currentTime = audioRecorder?.currentTime ?? 0.0 diff --git a/Riot/Modules/Room/VoiceMessages/VoiceMessageToolbarView.swift b/Riot/Modules/Room/VoiceMessages/VoiceMessageToolbarView.swift index b373aaccb..9a37e9917 100644 --- a/Riot/Modules/Room/VoiceMessages/VoiceMessageToolbarView.swift +++ b/Riot/Modules/Room/VoiceMessages/VoiceMessageToolbarView.swift @@ -45,7 +45,7 @@ struct VoiceMessageToolbarViewDetails { class VoiceMessageToolbarView: PassthroughView, NibLoadable, Themable, UIGestureRecognizerDelegate, VoiceMessagePlaybackViewDelegate { private enum Constants { - static let longPressMinimumDuration: TimeInterval = 0.1 + static let longPressMinimumDuration: TimeInterval = 1.0 static let animationDuration: TimeInterval = 0.25 static let lockModeTransitionAnimationDuration: TimeInterval = 0.5 static let panDirectionChangeThreshold: CGFloat = 20.0