no message

videocall_popup
Zohaib Iqbal Kambrani 5 years ago
parent 1a158f49bb
commit 42a4f9330a

@ -65,6 +65,7 @@ target 'Runner' do
pod 'Flutter', :path => 'Flutter'
pod 'OpenTok'
pod 'Alamofire', '~> 5.2'
pod 'AADraggableView'
# Plugin Pods
# Prepare symlinks folder. We use symlinks to avoid having Podfile.lock

@ -10,6 +10,7 @@
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
29211E4225C172B700DD740D /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 29211E4125C172B700DD740D /* GoogleService-Info.plist */; };
300790FA266FB14B0052174C /* VCEmbeder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 300790F9266FB14B0052174C /* VCEmbeder.swift */; };
300790FC26710CAB0052174C /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 300790FB26710CAB0052174C /* Extensions.swift */; };
30F70E6C266F56FD005D8F8E /* MainAppViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30F70E6B266F56FD005D8F8E /* MainAppViewController.swift */; };
30F70E6F266F6509005D8F8E /* VideoCallRequestParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30F70E6E266F6509005D8F8E /* VideoCallRequestParameters.swift */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
@ -41,6 +42,7 @@
29211CD725C165D600DD740D /* RunnerRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = RunnerRelease.entitlements; sourceTree = "<group>"; };
29211E4125C172B700DD740D /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
300790F9266FB14B0052174C /* VCEmbeder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VCEmbeder.swift; sourceTree = "<group>"; };
300790FB26710CAB0052174C /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = "<group>"; };
30F70E6B266F56FD005D8F8E /* MainAppViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainAppViewController.swift; sourceTree = "<group>"; };
30F70E6E266F6509005D8F8E /* VideoCallRequestParameters.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoCallRequestParameters.swift; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
@ -78,6 +80,7 @@
isa = PBXGroup;
children = (
300790F9266FB14B0052174C /* VCEmbeder.swift */,
300790FB26710CAB0052174C /* Extensions.swift */,
);
name = helpers;
sourceTree = "<group>";
@ -326,6 +329,7 @@
300790FA266FB14B0052174C /* VCEmbeder.swift in Sources */,
30F70E6F266F6509005D8F8E /* VideoCallRequestParameters.swift in Sources */,
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
300790FC26710CAB0052174C /* Extensions.swift in Sources */,
9CE61EBD24AB366E008D68DD /* VideoCallViewController.swift in Sources */,
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
9CE61ECD24ADBB4C008D68DD /* ICallProtocoll.swift in Sources */,

@ -48,7 +48,7 @@
<constraint firstAttribute="height" constant="100" id="iyK-hL-H3m"/>
</constraints>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XHG-Db-3Px">
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XHG-Db-3Px" customClass="AADraggableView" customModule="AADraggableView">
<rect key="frame" x="270" y="40" width="124" height="174"/>
<subviews>
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0ZP-s2-kM5" userLabel="localVideo">
@ -63,7 +63,7 @@
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6y1-an-W7F">
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6y1-an-W7F">
<rect key="frame" x="0.0" y="0.0" width="124" height="174"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="videoMutedIndicator" translatesAutoresizingMaskIntoConstraints="NO" id="FEH-bC-Hnh" userLabel="localVideoMutedIndicator">
@ -98,6 +98,11 @@
<constraint firstItem="0ZP-s2-kM5" firstAttribute="leading" secondItem="XHG-Db-3Px" secondAttribute="leading" id="k5R-AM-3J6"/>
<constraint firstAttribute="trailing" secondItem="0ZP-s2-kM5" secondAttribute="trailing" id="z8V-qh-Rzq"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="padding">
<integer key="value" value="20"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sK0-tB-H9u" userLabel="controlButtons">
<rect key="frame" x="0.0" y="791" width="414" height="105"/>
@ -237,7 +242,7 @@
<constraint firstAttribute="height" constant="100" id="nzD-kL-E5d"/>
</constraints>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MaW-YR-Grr">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MaW-YR-Grr" customClass="AADraggableView" customModule="AADraggableView">
<rect key="frame" x="270" y="40" width="124" height="174"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jm7-6R-ha0" userLabel="localVideo">
@ -282,6 +287,11 @@
<constraint firstAttribute="trailing" secondItem="G9u-v2-vFg" secondAttribute="trailing" id="gn3-8B-SEu"/>
<constraint firstAttribute="trailing" secondItem="jm7-6R-ha0" secondAttribute="trailing" id="i3f-z5-CnF"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="padding">
<integer key="value" value="20"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="SbF-is-irI" userLabel="videoMuteButton">
<rect key="frame" x="100" y="144" width="40" height="40"/>

@ -0,0 +1,20 @@
//
// Extensions.swift
// Runner
//
// Created by Zohaib Iqbal Kambrani on 09/06/2021.
// Copyright © 2021 The Chromium Authors. All rights reserved.
//
import AADraggableView
extension AADraggableView{
func enable(_ enable:Bool){
if enable == false{
gestureRecognizers?.forEach({ gest in
removeGestureRecognizer(gest)
})
}else{
isEnabled = true
}
}
}

@ -7,9 +7,10 @@
//
import Foundation
import AADraggableView
class MainAppViewController: FlutterViewController{
var videoCallContainer:UIView!
var videoCallContainer:AADraggableView!
var videoCallViewController:VideoCallViewController!
var videoCallFlutterResult:FlutterResult?
var vdoCallViewMinConstraint:[NSLayoutConstraint]!
@ -46,10 +47,13 @@ class MainAppViewController: FlutterViewController{
extension MainAppViewController : ICallProtocol{
func prepareVideoCallView(){
videoCallContainer = UIView(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height))
videoCallContainer = AADraggableView(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height))
videoCallContainer.backgroundColor = UIColor.black
videoCallContainer.isHidden = true
videoCallContainer.clipsToBounds = true
videoCallContainer.padding = 20
videoCallContainer.reposition = .edgesOnly
videoCallContainer.isEnabled = false
view.addSubview(videoCallContainer)
setVideoViewConstrints()
@ -83,6 +87,8 @@ extension MainAppViewController : ICallProtocol{
}
private func minimizeVideoCall(_ value:Bool){
videoCallContainer.enable(value)
UIView.animate(withDuration: 0.5) {
if(value){
NSLayoutConstraint.deactivate(self.vdoCallViewMaxConstraint)

@ -9,7 +9,7 @@
import UIKit
import OpenTok
import Alamofire
import AADraggableView
class VideoCallViewController: UIViewController {
@ -43,15 +43,22 @@ class VideoCallViewController: UIViewController {
@IBOutlet weak var micMuteBtn: UIButton!
@IBOutlet weak var localvideoTopMargin: NSLayoutConstraint!
@IBOutlet weak var localVideo: UIView!
@IBOutlet weak var remoteVideo: UIView!
var localVideoDraggable:AADraggableView?
@IBOutlet weak var controlButtons: UIView!
@IBOutlet weak var remoteVideoMutedIndicator: UIImageView!
@IBOutlet weak var localVideoMutedBg: UIView!
@IBOutlet weak var remoteVideo: UIView!
@IBOutlet weak var localVideo: UIView!{
didSet{
localVideo.layer.borderColor = UIColor.white.cgColor
localVideoDraggable = localVideo?.superview as? AADraggableView
localVideoDraggable?.reposition = .edgesOnly
}
}
override func viewDidLoad() {
super.viewDidLoad()
localVideo.layer.borderColor = UIColor.white.cgColor
}
@IBAction func didClickMuteButton(_ sender: UIButton) {
@ -98,8 +105,9 @@ class VideoCallViewController: UIViewController {
var minimized = false
@IBAction func onMinimize(_ sender: UIButton) {
minimized = !minimized
sender.isSelected = minimized
onMinimize?(minimized)
sender.isSelected = minimized
localVideoDraggable?.enable(!minimized)
let min_ = minimized
UIView.animate(withDuration: 0.5) {

Loading…
Cancel
Save