mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
4.0 KiB
Swift
134 lines
4.0 KiB
Swift
5 years ago
|
////
|
||
|
//// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
|
||
|
////
|
||
8 years ago
|
//
|
||
5 years ago
|
//import UIKit
|
||
|
//import CallKit
|
||
5 years ago
|
//import SignalUtilitiesKit
|
||
5 years ago
|
//
|
||
|
///**
|
||
|
// * Requests actions from CallKit
|
||
|
// *
|
||
|
// * @Discussion:
|
||
|
// * Based on SpeakerboxCallManager, from the Apple CallKit Example app. Though, it's responsibilities are mostly
|
||
|
// * mirrored (and delegated from) CallKitCallUIAdaptee.
|
||
|
// * TODO: Would it simplify things to merge this into CallKitCallUIAdaptee?
|
||
|
// */
|
||
|
//@available(iOS 10.0, *)
|
||
|
//final class CallKitCallManager: NSObject {
|
||
|
//
|
||
|
// let callController = CXCallController()
|
||
|
// let showNamesOnCallScreen: Bool
|
||
|
//
|
||
|
// @objc
|
||
|
// static let kAnonymousCallHandlePrefix = "Signal:"
|
||
|
//
|
||
|
// required init(showNamesOnCallScreen: Bool) {
|
||
|
// AssertIsOnMainThread()
|
||
|
//
|
||
|
// self.showNamesOnCallScreen = showNamesOnCallScreen
|
||
|
// super.init()
|
||
|
//
|
||
|
// // We cannot assert singleton here, because this class gets rebuilt when the user changes relevant call settings
|
||
|
// }
|
||
|
//
|
||
|
// // MARK: Actions
|
||
|
//
|
||
|
// func startCall(_ call: SignalCall) {
|
||
|
// var handle: CXHandle
|
||
|
//
|
||
|
// if showNamesOnCallScreen {
|
||
|
// handle = CXHandle(type: .phoneNumber, value: call.remotePhoneNumber)
|
||
|
// } else {
|
||
|
// let callKitId = CallKitCallManager.kAnonymousCallHandlePrefix + call.localId.uuidString
|
||
|
// handle = CXHandle(type: .generic, value: callKitId)
|
||
|
// OWSPrimaryStorage.shared().setPhoneNumber(call.remotePhoneNumber, forCallKitId: callKitId)
|
||
|
// }
|
||
|
//
|
||
|
// let startCallAction = CXStartCallAction(call: call.localId, handle: handle)
|
||
|
//
|
||
|
// startCallAction.isVideo = call.hasLocalVideo
|
||
|
//
|
||
|
// let transaction = CXTransaction()
|
||
|
// transaction.addAction(startCallAction)
|
||
|
//
|
||
|
// requestTransaction(transaction)
|
||
|
// }
|
||
|
//
|
||
|
// func localHangup(call: SignalCall) {
|
||
|
// let endCallAction = CXEndCallAction(call: call.localId)
|
||
|
// let transaction = CXTransaction()
|
||
|
// transaction.addAction(endCallAction)
|
||
|
//
|
||
|
// requestTransaction(transaction)
|
||
|
// }
|
||
|
//
|
||
|
// func setHeld(call: SignalCall, onHold: Bool) {
|
||
|
// let setHeldCallAction = CXSetHeldCallAction(call: call.localId, onHold: onHold)
|
||
|
// let transaction = CXTransaction()
|
||
|
// transaction.addAction(setHeldCallAction)
|
||
|
//
|
||
|
// requestTransaction(transaction)
|
||
|
// }
|
||
|
//
|
||
|
// func setIsMuted(call: SignalCall, isMuted: Bool) {
|
||
|
// let muteCallAction = CXSetMutedCallAction(call: call.localId, muted: isMuted)
|
||
|
// let transaction = CXTransaction()
|
||
|
// transaction.addAction(muteCallAction)
|
||
|
//
|
||
|
// requestTransaction(transaction)
|
||
|
// }
|
||
|
//
|
||
|
// func answer(call: SignalCall) {
|
||
|
// let answerCallAction = CXAnswerCallAction(call: call.localId)
|
||
|
// let transaction = CXTransaction()
|
||
|
// transaction.addAction(answerCallAction)
|
||
|
//
|
||
|
// requestTransaction(transaction)
|
||
|
// }
|
||
|
//
|
||
|
// private func requestTransaction(_ transaction: CXTransaction) {
|
||
|
// callController.request(transaction) { error in
|
||
|
// if let error = error {
|
||
|
// Logger.error("Error requesting transaction: \(error)")
|
||
|
// } else {
|
||
|
// Logger.debug("Requested transaction successfully")
|
||
|
// }
|
||
|
// }
|
||
|
// }
|
||
|
//
|
||
|
// // MARK: Call Management
|
||
|
//
|
||
|
// private(set) var calls = [SignalCall]()
|
||
|
//
|
||
|
// func callWithLocalId(_ localId: UUID) -> SignalCall? {
|
||
|
// guard let index = calls.firstIndex(where: { $0.localId == localId }) else {
|
||
|
// return nil
|
||
|
// }
|
||
|
// return calls[index]
|
||
|
// }
|
||
|
//
|
||
|
// func addCall(_ call: SignalCall) {
|
||
|
// calls.append(call)
|
||
|
// }
|
||
|
//
|
||
|
// func removeCall(_ call: SignalCall) {
|
||
|
// calls.removeFirst(where: { $0 === call })
|
||
|
// }
|
||
|
//
|
||
|
// func removeAllCalls() {
|
||
|
// calls.removeAll()
|
||
|
// }
|
||
|
//}
|
||
|
//
|
||
|
//fileprivate extension Array {
|
||
|
//
|
||
|
// mutating func removeFirst(where predicate: (Element) throws -> Bool) rethrows {
|
||
|
// guard let index = try firstIndex(where: predicate) else {
|
||
|
// return
|
||
|
// }
|
||
|
//
|
||
|
// remove(at: index)
|
||
|
// }
|
||
|
//}
|