84 lines
2.6 KiB
Swift
84 lines
2.6 KiB
Swift
//
|
|
// FloatWindowViewController.swift
|
|
// TUICallKit
|
|
//
|
|
// Created by vincepzhang on 2023/3/2.
|
|
//
|
|
|
|
import Foundation
|
|
import TUICore
|
|
|
|
protocol FloatingWindowViewDelegate: NSObject {
|
|
func tapGestureAction(tapGesture: UITapGestureRecognizer)
|
|
func panGestureAction(panGesture: UIPanGestureRecognizer)
|
|
}
|
|
|
|
class FloatWindowViewController: UIViewController, FloatingWindowViewDelegate {
|
|
|
|
let callEventObserver = Observer()
|
|
weak var delegate: FloatingWindowViewDelegate?
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
if TUICallState.instance.scene.value == .group {
|
|
addFloatingWindowGroupView()
|
|
} else if TUICallState.instance.scene.value == .single {
|
|
addFloatingWindowSignalView()
|
|
}
|
|
|
|
registerObserver()
|
|
}
|
|
|
|
deinit {
|
|
TUICallState.instance.event.removeObserver(callEventObserver)
|
|
for view in view.subviews {
|
|
view.removeFromSuperview()
|
|
}
|
|
}
|
|
|
|
func addFloatingWindowGroupView() {
|
|
let floatView = FloatingWindowGroupView(frame: CGRect.zero)
|
|
view.addSubview(floatView)
|
|
floatView.snp.makeConstraints { make in
|
|
make.center.equalTo(self.view)
|
|
make.size.equalTo(self.view)
|
|
}
|
|
floatView.delegate = self
|
|
}
|
|
|
|
func addFloatingWindowSignalView() {
|
|
let floatView = FloatingWindowSignalView(frame: CGRect.zero)
|
|
view.addSubview(floatView)
|
|
floatView.snp.makeConstraints { make in
|
|
make.center.equalTo(self.view)
|
|
make.size.equalTo(self.view)
|
|
}
|
|
floatView.delegate = self
|
|
}
|
|
|
|
// MARK: FloatingWindowViewDelegate
|
|
func tapGestureAction(tapGesture: UITapGestureRecognizer) {
|
|
if self.delegate != nil && ((self.delegate?.responds(to: Selector(("tapGestureAction")))) != nil) {
|
|
self.delegate?.tapGestureAction(tapGesture: tapGesture)
|
|
}
|
|
}
|
|
|
|
func panGestureAction(panGesture: UIPanGestureRecognizer) {
|
|
if self.delegate != nil && ((self.delegate?.responds(to: Selector(("panGestureAction")))) != nil) {
|
|
self.delegate?.panGestureAction(panGesture: panGesture)
|
|
}
|
|
}
|
|
|
|
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)")
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|