Skip to content

Commit

Permalink
Got it working, sending, and deleting. Should have ironed out the bugs.
Browse files Browse the repository at this point in the history
Signed-off-by: rapterjet2004 <[email protected]>
  • Loading branch information
rapterjet2004 committed Sep 6, 2024
1 parent 863ec95 commit 0619a5c
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 20 deletions.
44 changes: 36 additions & 8 deletions NextcloudTalk/BaseChatViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1543,20 +1543,44 @@ import SwiftUI

}

// TODO maintain recording using state changes

func handleDelete() {
print("Delete Handled")
self.recordCancelled = true
self.stopRecordingVoiceMessage()
handleCollapseVoiceRecording()
}

func handleSend() {
print("Send Handled")
if let recorder = self.recorder, recorder.isRecording {
self.recordCancelled = false
self.stopRecordingVoiceMessage()
} else {
self.hideVoiceMessageRecordingView()
self.shareVoiceMessage()
}
handleCollapseVoiceRecording()
}

func handleRecord(isRecording: Bool) {
print("Record Handled with", isRecording)
if (!isRecording) {
recordCancelled = true
if let recorder = self.recorder, recorder.isRecording {
recorder.stop()
let session = AVAudioSession.sharedInstance()
try? session.setActive(false)
print("Recording Stopped")
}
} else {
if let recorder = self.recorder, !recorder.isRecording {
let session = AVAudioSession.sharedInstance()
try? session.setActive(true)
recorder.record()
print("Recording Restarted")
}

}
}

func handleCollapseVoiceRecording() {
Expand Down Expand Up @@ -1616,6 +1640,7 @@ import SwiftUI
let session = AVAudioSession.sharedInstance()
try? session.setActive(true)
recorder.record()
print("Recording started")
}
}

Expand All @@ -1625,6 +1650,7 @@ import SwiftUI
recorder.stop()
let session = AVAudioSession.sharedInstance()
try? session.setActive(false)
print("Recording Stopped")
}
}

Expand Down Expand Up @@ -1864,15 +1890,17 @@ import SwiftUI
self.cancelHintLabelInitialPositionX = voiceMessageRecordingView?.slideToCancelHintLabel?.frame.origin.x
self.voiceRecordingLockButton.alpha = 1
} else if gestureRecognizer.state == .ended {
print("Stop recording audio message")
self.shouldLockInterfaceOrientation(lock: false)
self.resetVoiceRecordingLockButton()

if let recordingTime = self.recorder?.currentTime {
// Mark record as cancelled if audio message is no longer than one second
self.recordCancelled = recordingTime < 1
if (!isVoiceRecordingLocked) {
if let recordingTime = self.recorder?.currentTime {
// Mark record as cancelled if audio message is no longer than one second
self.recordCancelled = recordingTime < 1
}
self.stopRecordingVoiceMessage()
print("Stop recording audio message")
}
self.stopRecordingVoiceMessage()
} else if gestureRecognizer.state == .changed {
guard let longPressStartingPoint,
let cancelHintLabelInitialPositionX,
Expand All @@ -1893,7 +1921,7 @@ import SwiftUI
slideToCancelHintLabel.alpha = (maxSlideX - slideX) / 100

// Cancel recording if slided more than maxSlideX
if slideX > maxSlideX, !self.recordCancelled {
if slideX > maxSlideX, !self.recordCancelled, !isVoiceRecordingLocked {
print("Cancel recording audio message")

// 'Cancelled' feedback (three sequential weak booms)
Expand Down
24 changes: 12 additions & 12 deletions NextcloudTalk/ExpandedVoiceMessageRecordingView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ struct ExpandedVoiceMessageRecordingView: View {
.font(.largeTitle)
.bold()
.padding(.trailing, 10)
.frame(alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
.frame(alignment: .center)
.border(.clear)
.onReceive(timer) { _ in
if (isRecording) {
Expand Down Expand Up @@ -68,13 +68,13 @@ struct ExpandedVoiceMessageRecordingView: View {
Label("", systemImage: "paperplane").font(.title2)
})
}
.frame(maxWidth: /*@START_MENU_TOKEN@*/.infinity/*@END_MENU_TOKEN@*/, alignment: .center)
.frame(maxWidth: .infinity, alignment: .center)
.padding(.horizontal, buttonPadding)
.padding(.bottom, 10)
.border(.clear)

}
.frame(maxWidth: /*@START_MENU_TOKEN@*/.infinity/*@END_MENU_TOKEN@*/)
.frame(maxWidth: .infinity)
.border(.clear)
.background(Color(NCAppBranding.backgroundColor()))
.onAppear {
Expand All @@ -83,12 +83,12 @@ struct ExpandedVoiceMessageRecordingView: View {
}
}

#Preview {
ExpandedVoiceMessageRecordingView(deleteFunc: {
// unused atm
}, sendFunc: {
// unused atm
}, recordFunc: { _ in
// unused atm
}, timeElapsed: 0)
}
//#Preview {
// ExpandedVoiceMessageRecordingView(deleteFunc: {
// // unused atm
// }, sendFunc: {
// // unused atm
// }, recordFunc: { _ in
// // unused atm
// }, timeElapsed: 0)
//}

0 comments on commit 0619a5c

Please sign in to comment.