提交
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
//
|
||||
// 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)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user