소스 검색

Merge pull request #429 from deltachat/voice_ui_init_fix

UI improvements for voice recording
björn petersen 5 년 전
부모
커밋
4389aa0e0a
1개의 변경된 파일18개의 추가작업 그리고 13개의 파일을 삭제
  1. 18 13
      deltachat-ios/Controller/AudioRecorderController.swift

+ 18 - 13
deltachat-ios/Controller/AudioRecorderController.swift

@@ -31,7 +31,8 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
 
 
     lazy var waveFormView: SCSiriWaveformView = {
     lazy var waveFormView: SCSiriWaveformView = {
         let view = SCSiriWaveformView()
         let view = SCSiriWaveformView()
-        view.alpha = 1.0
+        view.alpha = 0.0
+        view.waveColor = .clear
         view.backgroundColor = .clear
         view.backgroundColor = .clear
         view.translatesAutoresizingMaskIntoConstraints = false
         view.translatesAutoresizingMaskIntoConstraints = false
         view.primaryWaveLineWidth = 3.0
         view.primaryWaveLineWidth = 3.0
@@ -57,17 +58,18 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
     }()
     }()
 
 
     lazy var doneButton: UIBarButtonItem = {
     lazy var doneButton: UIBarButtonItem = {
-        let button = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonItem.SystemItem.done,
+        let button = UIBarButtonItem.init(title: String.localized("menu_send"),
+                                          style: UIBarButtonItem.Style.done,
                                           target: self,
                                           target: self,
                                           action: #selector(doneAction))
                                           action: #selector(doneAction))
         return button
         return button
     }()
     }()
 
 
     lazy var cancelRecordingButton: UIBarButtonItem = {
     lazy var cancelRecordingButton: UIBarButtonItem = {
-        let button = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonItem.SystemItem.cancel,
+        let button = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonItem.SystemItem.trash,
                                                  target: self,
                                                  target: self,
                                                  action: #selector(cancelRecordingAction))
                                                  action: #selector(cancelRecordingAction))
-        button.tintColor = highlightedTintColor
+        button.tintColor = UIColor.themeColor(light: .darkGray, dark: .lightGray)
         return button
         return button
     }()
     }()
 
 
@@ -75,7 +77,7 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
         let button = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonItem.SystemItem.pause,
         let button = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonItem.SystemItem.pause,
                                           target: self,
                                           target: self,
                                           action: #selector(pauseRecordingButtonAction))
                                           action: #selector(pauseRecordingButtonAction))
-        button.tintColor = highlightedTintColor
+        button.tintColor = UIColor.themeColor(light: .darkGray, dark: .lightGray)
         return button
         return button
     }()
     }()
 
 
@@ -84,7 +86,7 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
                                            style: UIBarButtonItem.Style.plain,
                                            style: UIBarButtonItem.Style.plain,
                                            target: self,
                                            target: self,
                                            action: #selector(recordingButtonAction))
                                            action: #selector(recordingButtonAction))
-        button.tintColor = normalTintColor
+        button.tintColor = UIColor.themeColor(light: .darkGray, dark: .lightGray)
         return button
         return button
     }()
     }()
 
 
@@ -93,7 +95,7 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
                                           style: UIBarButtonItem.Style.plain,
                                           style: UIBarButtonItem.Style.plain,
                                           target: self,
                                           target: self,
                                           action: #selector(continueRecordingButtonAction))
                                           action: #selector(continueRecordingButtonAction))
-        button.tintColor = highlightedTintColor
+        button.tintColor = UIColor.themeColor(light: .darkGray, dark: .lightGray)
         return button
         return button
     }()
     }()
 
 
@@ -187,8 +189,9 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
 
 
     @objc func recordingButtonAction() {
     @objc func recordingButtonAction() {
         logger.debug("start recording")
         logger.debug("start recording")
-        self.setToolbarItems([flexItem, pauseButton, flexItem], animated: true)
-        self.navigationItem.setLeftBarButton(cancelRecordingButton, animated: true)
+        self.setToolbarItems([flexItem, cancelRecordingButton, flexItem, pauseButton, flexItem], animated: true)
+        cancelRecordingButton.isEnabled = true
+        doneButton.isEnabled = true
         if FileManager.default.fileExists(atPath: recordingFilePath) {
         if FileManager.default.fileExists(atPath: recordingFilePath) {
             _ = try? FileManager.default.removeItem(atPath: recordingFilePath)
             _ = try? FileManager.default.removeItem(atPath: recordingFilePath)
         }
         }
@@ -208,7 +211,7 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
 
 
     @objc func continueRecordingButtonAction() {
     @objc func continueRecordingButtonAction() {
         logger.debug("continue recording")
         logger.debug("continue recording")
-        self.setToolbarItems([flexItem, pauseButton, flexItem], animated: true)
+        self.setToolbarItems([flexItem, cancelRecordingButton, flexItem, pauseButton, flexItem], animated: true)
         isRecordingPaused = false
         isRecordingPaused = false
         audioRecorder?.record()
         audioRecorder?.record()
     }
     }
@@ -217,12 +220,14 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
         logger.debug("pause")
         logger.debug("pause")
         isRecordingPaused = true
         isRecordingPaused = true
         audioRecorder?.pause()
         audioRecorder?.pause()
-        self.setToolbarItems([flexItem, continueRecordingButton, flexItem], animated: true)
+        self.setToolbarItems([flexItem, cancelRecordingButton, flexItem, continueRecordingButton, flexItem], animated: true)
     }
     }
 
 
     @objc func cancelRecordingAction() {
     @objc func cancelRecordingAction() {
         logger.debug("cancel recording")
         logger.debug("cancel recording")
         isRecordingPaused = false
         isRecordingPaused = false
+        cancelRecordingButton.isEnabled = false
+        doneButton.isEnabled = false
         audioRecorder?.stop()
         audioRecorder?.stop()
         _ = try? FileManager.default.removeItem(atPath: recordingFilePath)
         _ = try? FileManager.default.removeItem(atPath: recordingFilePath)
         self.navigationItem.title = String.localized("voice_message")
         self.navigationItem.title = String.localized("voice_message")
@@ -230,6 +235,7 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
 
 
     @objc func cancelAction() {
     @objc func cancelAction() {
         logger.debug("cancel Action")
         logger.debug("cancel Action")
+        cancelRecordingAction()
         dismiss(animated: true, completion: nil)
         dismiss(animated: true, completion: nil)
     }
     }
 
 
@@ -249,7 +255,7 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
 
 
     func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder, successfully flag: Bool) {
     func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder, successfully flag: Bool) {
         if flag {
         if flag {
-            self.setToolbarItems([flexItem, startRecordingButton, flexItem], animated: true)
+            self.setToolbarItems([flexItem, cancelRecordingButton, flexItem, startRecordingButton, flexItem], animated: true)
             if let oldSessionCategory = oldSessionCategory {
             if let oldSessionCategory = oldSessionCategory {
                _ = try? AVAudioSession.sharedInstance().setCategory(oldSessionCategory)
                _ = try? AVAudioSession.sharedInstance().setCategory(oldSessionCategory)
                UIApplication.shared.isIdleTimerDisabled = wasIdleTimerDisabled
                UIApplication.shared.isIdleTimerDisabled = wasIdleTimerDisabled
@@ -257,7 +263,6 @@ class AudioRecorderController: UIViewController, AVAudioRecorderDelegate {
         } else {
         } else {
             try? FileManager.default.removeItem(at: URL(fileURLWithPath: recordingFilePath))
             try? FileManager.default.removeItem(at: URL(fileURLWithPath: recordingFilePath))
         }
         }
-         self.navigationItem.setLeftBarButton(cancelButton, animated: true)
     }
     }
 
 
     func audioRecorderEncodeErrorDidOccur(_ recorder: AVAudioRecorder, error: Error?) {
     func audioRecorderEncodeErrorDidOccur(_ recorder: AVAudioRecorder, error: Error?) {