diff --git a/nirvana-ios/Views/Convos/ConvoFooterView.swift b/nirvana-ios/Views/Convos/ConvoFooterView.swift index cc1b0b6..e025a95 100644 --- a/nirvana-ios/Views/Convos/ConvoFooterView.swift +++ b/nirvana-ios/Views/Convos/ConvoFooterView.swift @@ -10,6 +10,7 @@ import SwiftUI struct ConvoFooterView: View { @EnvironmentObject var convoVM: ConvoViewModel @EnvironmentObject var authSessionStore: AuthSessionStore + @EnvironmentObject var innerCircleVM: InnerCircleViewModel @State private var convoRelativeTime = "" @State private var selectedConvo: Convo? = nil @@ -94,8 +95,11 @@ struct ConvoFooterView: View { Button { print("disconnecting user now ") + self.innerCircleVM.setupMessagingAudioSession() + self.convoVM.leaveConvo() - + + // show success or failure toast } label: { Label("Call", systemImage: "powerplug.fill") diff --git a/nirvana-ios/Views/InnerCircle/CircleGridView.swift b/nirvana-ios/Views/InnerCircle/CircleGridView.swift index cee0a68..1e5cf8c 100644 --- a/nirvana-ios/Views/InnerCircle/CircleGridView.swift +++ b/nirvana-ios/Views/InnerCircle/CircleGridView.swift @@ -121,7 +121,7 @@ struct CircleGridView: View { x: honeycombOffSetX(value), y: 0 ) - .id("\(value)") // id for scrollviewreader +// .id("\(value)") // id for scrollviewreader .frame(height: Self.size) .onTapGesture { // if not in a call already diff --git a/nirvana-ios/Views/InnerCircle/InnerCircleView.swift b/nirvana-ios/Views/InnerCircle/InnerCircleView.swift index a8d8939..b8cb158 100644 --- a/nirvana-ios/Views/InnerCircle/InnerCircleView.swift +++ b/nirvana-ios/Views/InnerCircle/InnerCircleView.swift @@ -105,6 +105,7 @@ struct InnerCircleView: View { ConvoFooterView() .environmentObject(self.convoViewModel) + .environmentObject(self.innerCircleVM) } .alert(self.alertText, isPresented: self.$alertActive) { diff --git a/nirvana-ios/Views/InnerCircle/InnerCircleViewModel.swift b/nirvana-ios/Views/InnerCircle/InnerCircleViewModel.swift index a116be2..1a85213 100644 --- a/nirvana-ios/Views/InnerCircle/InnerCircleViewModel.swift +++ b/nirvana-ios/Views/InnerCircle/InnerCircleViewModel.swift @@ -97,6 +97,13 @@ class InnerCircleViewModel: NSObject, ObservableObject { override init() { super.init() + self.setupMessagingAudioSession() + } +} + +// audio stuff +extension InnerCircleViewModel { + func setupMessagingAudioSession() { // separate set up for listening vs recording do { try audioSession.setCategory(.playAndRecord, mode: .default, options: [.duckOthers, .allowBluetooth, .allowBluetoothA2DP]) @@ -108,10 +115,7 @@ class InnerCircleViewModel: NSObject, ObservableObject { print("Can not setup the Recording") } } -} - -// audio stuff -extension InnerCircleViewModel { + func startRecording() { let filePath = getTemporaryDirectory().appendingPathComponent("\(UUID().uuidString).m4a")