mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
54 lines
2.0 KiB
Swift
54 lines
2.0 KiB
Swift
import Foundation
|
|
import UIKit
|
|
import MetalEngine
|
|
import Display
|
|
import CallScreen
|
|
import ComponentFlow
|
|
|
|
public final class ViewController: UIViewController {
|
|
private var callScreenView: PrivateCallScreen?
|
|
private var callState: PrivateCallScreen.State = PrivateCallScreen.State(
|
|
lifecycleState: .connecting,
|
|
name: "Emma Walters",
|
|
avatarImage: UIImage(named: "test")
|
|
)
|
|
|
|
override public func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
self.view.layer.addSublayer(MetalEngine.shared.rootLayer)
|
|
MetalEngine.shared.rootLayer.frame = CGRect(origin: CGPoint(x: 0.0, y: -101.0), size: CGSize(width: 100.0, height: 100.0))
|
|
|
|
self.view.backgroundColor = .black
|
|
|
|
SharedDisplayLinkDriver.shared.updateForegroundState(true)
|
|
|
|
let callScreenView = PrivateCallScreen(frame: self.view.bounds)
|
|
self.callScreenView = callScreenView
|
|
self.view.addSubview(callScreenView)
|
|
|
|
self.update(size: self.view.bounds.size, transition: .immediate)
|
|
}
|
|
|
|
private func update(size: CGSize, transition: Transition) {
|
|
guard let callScreenView = self.callScreenView else {
|
|
return
|
|
}
|
|
|
|
transition.setFrame(view: callScreenView, frame: CGRect(origin: CGPoint(), size: size))
|
|
let insets: UIEdgeInsets
|
|
if size.width < size.height {
|
|
insets = UIEdgeInsets(top: 44.0, left: 0.0, bottom: 0.0, right: 0.0)
|
|
} else {
|
|
insets = UIEdgeInsets(top: 0.0, left: 44.0, bottom: 0.0, right: 44.0)
|
|
}
|
|
callScreenView.update(size: size, insets: insets, screenCornerRadius: 55.0, state: self.callState, transition: transition)
|
|
}
|
|
|
|
override public func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
|
|
super.viewWillTransition(to: size, with: coordinator)
|
|
|
|
self.update(size: size, transition: .easeInOut(duration: 0.3))
|
|
}
|
|
}
|