Ver código fonte

always go back to attachment button after sending a voice message, also if message was cencelled

cyberta 3 anos atrás
pai
commit
4bdf12f210

+ 4 - 1
deltachat-ios/Chat/ChatViewController.swift

@@ -1832,13 +1832,16 @@ extension ChatViewController: MediaPickerDelegate {
     }
 
     func onVoiceMessageRecorded(url: NSURL) {
+        sendVoiceMessage(url: url)
+    }
+
+    func onVoiceMessageRecorderClosed() {
         if UIAccessibility.isVoiceOverRunning {
             DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
                 //return to attach button
                 UIAccessibility.post(notification: .screenChanged, argument: self?.messageInputBar.leftStackView.subviews.first)
             }
         }
-        sendVoiceMessage(url: url)
     }
 
     func onDocumentSelected(url: NSURL) {

+ 6 - 0
deltachat-ios/Controller/AudioRecorderController.swift

@@ -4,6 +4,7 @@ import AVKit
 
 protocol AudioRecorderControllerDelegate: class {
     func didFinishAudioAtPath(path: String)
+    func didClose()
 }
 
 class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
@@ -168,6 +169,11 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
         UIApplication.shared.isIdleTimerDisabled = wasIdleTimerDisabled
     }
 
+    override func viewDidDisappear(_ animated: Bool) {
+        super.viewDidDisappear(animated)
+        delegate?.didClose()
+    }
+
     func startUpdatingMeter() {
         meterUpdateDisplayLink?.invalidate()
         meterUpdateDisplayLink = CADisplayLink.init(target: self, selector: #selector(updateMeters))

+ 10 - 1
deltachat-ios/Helper/MediaPicker.swift

@@ -7,6 +7,7 @@ protocol MediaPickerDelegate: class {
     func onImageSelected(url: NSURL)
     func onVideoSelected(url: NSURL)
     func onVoiceMessageRecorded(url: NSURL)
+    func onVoiceMessageRecorderClosed()
     func onDocumentSelected(url: NSURL)
 }
 
@@ -20,12 +21,15 @@ extension MediaPickerDelegate {
     func onVoiceMessageRecorded(url: NSURL) {
         logger.debug("voice message recorded: \(url)")
     }
+    func onVoiceMessageRecorderClosed() {
+        logger.debug("Voice Message recorder closed.")
+    }
     func onDocumentSelected(url: NSURL) {
         logger.debug("document selected: \(url)")
     }
 }
 
-class MediaPicker: NSObject, UINavigationControllerDelegate, AudioRecorderControllerDelegate {
+class MediaPicker: NSObject, UINavigationControllerDelegate {
 
     enum CameraMediaTypes {
         case photo
@@ -183,12 +187,17 @@ extension MediaPicker: UIImagePickerControllerDelegate {
             }
         })
     }
+}
 
+extension MediaPicker: AudioRecorderControllerDelegate {
     func didFinishAudioAtPath(path: String) {
         let url = NSURL(fileURLWithPath: path)
         self.delegate?.onVoiceMessageRecorded(url: url)
     }
 
+    func didClose() {
+        self.delegate?.onVoiceMessageRecorderClosed()
+    }
 }
 
 extension MediaPicker: UIDocumentPickerDelegate {