diff --git a/CHANGES.rst b/CHANGES.rst index 289b7d36d..c74cea4d4 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -11,6 +11,9 @@ Changes to be released in next version * People Tab: Remove the local contacts section (#4523). * Contacts: Delay access to local contacts until they're needed for display (#4616). * RecentsDataSource: Factorize section reset in one place (target #4591). + * Voice Messages: Tap/hold to send voice messages isn't intuitive (#4601). + * Voice Messages: copy could be improved (#4604). + * Slide to lock should be more generous (#4602). 🐛 Bugfix * Room: Fixed mentioning users from room info member details (#4583) @@ -18,6 +21,7 @@ Changes to be released in next version * Room Notification Settings: Fix Crash when opening the new Room Notification Settings Screen (Not yet released) (#4599). * AuthenticationViewController: Fix crash on authentication if an intermediate view was presented (#4606). * Room: Fixed crash when opening a read-only room (#4620). + * Voice Messages: Tapping on waveform in composer glitches UI (#4603). ⚠️ API Changes * diff --git a/Riot/Assets/en.lproj/Vector.strings b/Riot/Assets/en.lproj/Vector.strings index 80c55d989..01a6f2ef1 100644 --- a/Riot/Assets/en.lproj/Vector.strings +++ b/Riot/Assets/en.lproj/Vector.strings @@ -1686,4 +1686,4 @@ Tap the + to start adding people."; "voice_message_release_to_send" = "Hold to record, release to send"; "voice_message_remaining_recording_time" = "%@s left"; -"voice_message_stop_locked_mode_recording" = "Tap on the wavelength to stop and playback"; +"voice_message_stop_locked_mode_recording" = "Tap on your recording to stop or listen"; diff --git a/Riot/Generated/Strings.swift b/Riot/Generated/Strings.swift index 3de870902..7f2cb1930 100644 --- a/Riot/Generated/Strings.swift +++ b/Riot/Generated/Strings.swift @@ -4890,7 +4890,7 @@ internal enum VectorL10n { internal static func voiceMessageRemainingRecordingTime(_ p1: String) -> String { return VectorL10n.tr("Vector", "voice_message_remaining_recording_time", p1) } - /// Tap on the wavelength to stop and playback + /// Tap on your recording to stop or listen internal static var voiceMessageStopLockedModeRecording: String { return VectorL10n.tr("Vector", "voice_message_stop_locked_mode_recording") } diff --git a/Riot/Modules/Room/VoiceMessages/VoiceMessageToolbarView.swift b/Riot/Modules/Room/VoiceMessages/VoiceMessageToolbarView.swift index 4650d6fae..f0b27fd46 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 = 1.0 + static let longPressMinimumDuration: TimeInterval = 0.0 static let animationDuration: TimeInterval = 0.25 static let lockModeTransitionAnimationDuration: TimeInterval = 0.5 static let panDirectionChangeThreshold: CGFloat = 20.0 @@ -145,7 +145,7 @@ class VoiceMessageToolbarView: PassthroughView, NibLoadable, Themable, UIGesture convertedFrame = self.convert(lockChevron.frame, from: lockContainerView) lockChevronToRecordButtonDistance = recordButtonsContainerView.frame.midY + convertedFrame.maxY - lockChevronToLockButtonDistance = lockChevron.frame.minY - lockButtonsContainerView.frame.midY + lockChevronToLockButtonDistance = (lockChevron.frame.minY - lockButtonsContainerView.frame.midY) / 2 startAnimatingRecordingIndicator() default: @@ -393,6 +393,10 @@ class VoiceMessageToolbarView: PassthroughView, NibLoadable, Themable, UIGesture } @objc private func handleWaveformTap(_ gestureRecognizer: UITapGestureRecognizer) { + guard self.lastUIState == .lockedModeRecord else { + return + } + delegate?.voiceMessageToolbarViewDidRequestRecordingFinish(self) } }