77 lines
2.2 KiB
Swift
77 lines
2.2 KiB
Swift
//
|
|
// CallKitViewController.swift
|
|
// TUICallKit
|
|
//
|
|
// Created by vincepzhang on 2022/12/30.
|
|
//
|
|
|
|
import Foundation
|
|
import UIKit
|
|
import TUICore
|
|
|
|
class CallKitViewController: UIViewController, SingleCallViewDelegate {
|
|
|
|
let callEventObserver = Observer()
|
|
var isStatusBarHidden = false
|
|
|
|
deinit {
|
|
TUICallState.instance.event.removeObserver(callEventObserver)
|
|
}
|
|
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
super.viewWillAppear(animated)
|
|
self.setNeedsStatusBarAppearanceUpdate()
|
|
}
|
|
|
|
override func viewDidLoad(){
|
|
super.viewDidLoad()
|
|
view.backgroundColor = .black
|
|
if TUICallState.instance.scene.value == .single {
|
|
let callView: SingleCallView? = SingleCallView(frame: CGRect.zero)
|
|
callView?.delegate = self
|
|
view.addSubview(callView ?? UIView())
|
|
} else if TUICallState.instance.scene.value == .group {
|
|
let groupCallView = GroupCallView()
|
|
view.addSubview(groupCallView)
|
|
}
|
|
|
|
registerObserver()
|
|
}
|
|
|
|
func registerObserver() {
|
|
TUICallState.instance.event.addObserver(callEventObserver) { newValue, _ in
|
|
if newValue.eventType == .ERROR {
|
|
guard let errorCode = newValue.param[EVENT_KEY_CODE] as? Int32 else { return }
|
|
guard let errorMessage = newValue.param[EVENT_KEY_MESSAGE] as? String else { return }
|
|
TUITool.makeToast("error:\(errorCode):\(errorMessage)")
|
|
}
|
|
}
|
|
}
|
|
|
|
override var preferredStatusBarStyle: UIStatusBarStyle {
|
|
return .lightContent
|
|
}
|
|
|
|
override var prefersStatusBarHidden: Bool {
|
|
return self.isStatusBarHidden
|
|
}
|
|
|
|
// MARK: SingleCallViewDelegate
|
|
func handleStatusBarHidden(isHidden: Bool) {
|
|
self.isStatusBarHidden = isHidden
|
|
self.setNeedsStatusBarAppearanceUpdate()
|
|
}
|
|
|
|
}
|
|
|
|
class CallKitNavigationController: UINavigationController {
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
self.setNavigationBarHidden(true, animated: false)
|
|
}
|
|
|
|
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
|
|
return .portrait
|
|
}
|
|
}
|