capacitor-plugin-vonage 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CapacitorPluginVonage.podspec +20 -0
  2. package/README.md +126 -0
  3. package/android/build.gradle +76 -0
  4. package/android/src/main/AndroidManifest.xml +6 -0
  5. package/android/src/main/java/com/managemyhealth/plugin/vonage/VideoCallActivity.java +434 -0
  6. package/android/src/main/java/com/managemyhealth/plugin/vonage/vonage.java +11 -0
  7. package/android/src/main/java/com/managemyhealth/plugin/vonage/vonagePlugin.java +125 -0
  8. package/android/src/main/res/.gitkeep +0 -0
  9. package/android/src/main/res/drawable/callend.png +0 -0
  10. package/android/src/main/res/drawable/callstart.png +0 -0
  11. package/android/src/main/res/drawable/cameraoff.png +0 -0
  12. package/android/src/main/res/drawable/cameraonwhite.png +0 -0
  13. package/android/src/main/res/drawable/cameraswitch.png +0 -0
  14. package/android/src/main/res/drawable/ic_launcher_background.xml +170 -0
  15. package/android/src/main/res/drawable/microphoneoff.png +0 -0
  16. package/android/src/main/res/drawable/microphoneonwhite.png +0 -0
  17. package/android/src/main/res/layout/activity_main.xml +36 -0
  18. package/android/src/main/res/layout/video_call_layout.xml +282 -0
  19. package/android/src/main/res.zip +0 -0
  20. package/dist/docs.json +370 -0
  21. package/dist/esm/definitions.d.ts +12 -0
  22. package/dist/esm/definitions.js +2 -0
  23. package/dist/esm/definitions.js.map +1 -0
  24. package/dist/esm/index.d.ts +4 -0
  25. package/dist/esm/index.js +7 -0
  26. package/dist/esm/index.js.map +1 -0
  27. package/dist/esm/web.d.ts +12 -0
  28. package/dist/esm/web.js +13 -0
  29. package/dist/esm/web.js.map +1 -0
  30. package/dist/plugin.cjs.js +29 -0
  31. package/dist/plugin.cjs.js.map +1 -0
  32. package/dist/plugin.js +32 -0
  33. package/dist/plugin.js.map +1 -0
  34. package/ios/Plugin/Info.plist +24 -0
  35. package/ios/Plugin/VideoChatViewController.swift +387 -0
  36. package/ios/Plugin/vonage.swift +8 -0
  37. package/ios/Plugin/vonagePlugin.h +10 -0
  38. package/ios/Plugin/vonagePlugin.m +9 -0
  39. package/ios/Plugin/vonagePlugin.swift +80 -0
  40. package/package.json +78 -0
@@ -0,0 +1,125 @@
1
+ package com.managemyhealth.plugin.vonage;
2
+ import com.getcapacitor.annotation.ActivityCallback;
3
+ import com.opentok.android.OpentokError;
4
+ import com.opentok.android.Session;
5
+ import com.opentok.android.Publisher;
6
+ import com.opentok.android.Stream;
7
+ import com.opentok.android.Subscriber;
8
+
9
+ import android.app.Activity;
10
+ import android.content.Intent;
11
+ import android.os.Handler;
12
+ import android.util.Log;
13
+
14
+ import com.getcapacitor.JSObject;
15
+ import com.getcapacitor.Plugin;
16
+ import com.getcapacitor.PluginCall;
17
+ import com.getcapacitor.PluginMethod;
18
+ import com.getcapacitor.annotation.CapacitorPlugin;
19
+
20
+
21
+ @CapacitorPlugin(name = "vonage",requestCodes = {999})
22
+ public class vonagePlugin extends Plugin {
23
+
24
+ private Session session;
25
+
26
+ private String TAG = "Capacitor_Vonage_plugin";
27
+ @PluginMethod()
28
+ public void openVideoCallWindow(PluginCall call) {
29
+
30
+ JSObject eventData = new JSObject();
31
+ eventData.put("key", "value test value");
32
+ final String API_KEY = call.getString("apiKey");
33
+ final String SESSION_ID = call.getString("sessionId");
34
+ final String TOKEN = call.getString("token");
35
+ final String PUBLISHERNAME = call.getString("publisherName");
36
+ final String SUBSCRIBERNAME = call.getString("subscriberName");
37
+ final Boolean ISPROVIDER = call.getBoolean("isProvider");
38
+ // initializeSession(API_KEY, SESSION_ID, TOKEN);
39
+ Intent intent = new Intent(getContext(), VideoCallActivity.class);
40
+ intent.putExtra("apiKey",API_KEY);
41
+ intent.putExtra("sessionId",SESSION_ID);
42
+ intent.putExtra("token",TOKEN);
43
+ intent.putExtra("subscriberName",SUBSCRIBERNAME);
44
+ intent.putExtra("publisherName",PUBLISHERNAME);
45
+ intent.putExtra("publisherName",PUBLISHERNAME);
46
+ intent.putExtra("isProvider",ISPROVIDER);
47
+ // intent.putExtra("callbackIdentifier", );
48
+ // notifyListeners("onDataReceived", );
49
+ // StartedCall();
50
+ Handler handler = new Handler();
51
+ int delayMillis = 5000;
52
+
53
+ handler.postDelayed(new Runnable() {
54
+ @Override
55
+ public void run() {
56
+
57
+ eventData.put("isProvider", ISPROVIDER);
58
+ notifyListeners("VideoCallStarted",eventData);
59
+ }
60
+ }, delayMillis);
61
+ startActivityForResult(call,intent,999);
62
+ call.resolve();
63
+
64
+ }
65
+
66
+
67
+
68
+ @Override
69
+ protected void handleOnActivityResult(int requestCode, int resultCode, Intent data) {
70
+ super.handleOnActivityResult(requestCode, resultCode, data);
71
+ JSObject eventData = new JSObject();
72
+ Log.d(TAG,"resultCode");
73
+ Log.d(TAG, String.valueOf(resultCode));
74
+ Log.d(TAG, String.valueOf(requestCode));
75
+ Log.d(TAG, String.valueOf(data));
76
+ String result = data.getStringExtra("result_key");
77
+ if(result == "999"){
78
+ eventData.put("isProvider", true);
79
+ notifyListeners("VideoCallEnded",eventData);
80
+
81
+
82
+ }else{
83
+ eventData.put("isProvider", false);
84
+ Log.d(TAG,"CODE 98 -----------" );
85
+ notifyListeners("VideoCallEnded",eventData);
86
+ }
87
+ }
88
+
89
+ // private Session.SessionListener sessionListener = new Session.SessionListener() {
90
+ // @Override
91
+ // public void onConnected(Session session) {
92
+ // Log.d(TAG, "onConnected: Connected to session: " + session.getSessionId());
93
+ // }
94
+ //
95
+ // @Override
96
+ // public void onDisconnected(Session session) {
97
+ // Log.d(TAG, "onDisconnected: Disconnected from session: " + session.getSessionId());
98
+ // }
99
+ //
100
+ // @Override
101
+ // public void onStreamReceived(Session session, Stream stream) {
102
+ // Log.d(TAG, "onStreamReceived: New Stream Received " + stream.getStreamId() + " in session: " + session.getSessionId());
103
+ // }
104
+ //
105
+ // @Override
106
+ // public void onStreamDropped(Session session, Stream stream) {
107
+ // Log.d(TAG, "onStreamDropped: Stream Dropped: " + stream.getStreamId() + " in session: " + session.getSessionId());
108
+ // }
109
+ //
110
+ // @Override
111
+ // public void onError(Session session, OpentokError opentokError) {
112
+ // Log.e(TAG, "Session error: " + opentokError.getMessage());
113
+ // }
114
+ // };
115
+
116
+ // private void initializeSession(String apiKey, String sessionId, String token) {
117
+ // Log.i(TAG, "apiKey: " + apiKey);
118
+ // Log.i(TAG, "sessionId: " + sessionId);
119
+ // Log.i(TAG, "token: " + token);
120
+ //
121
+ // session = new Session.Builder(getContext(), apiKey, sessionId).build();
122
+ // session.setSessionListener(sessionListener);
123
+ // session.connect(token);
124
+ // }
125
+ }
File without changes
@@ -0,0 +1,170 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:width="108dp"
4
+ android:height="108dp"
5
+ android:viewportWidth="108"
6
+ android:viewportHeight="108">
7
+ <path
8
+ android:fillColor="#3DDC84"
9
+ android:pathData="M0,0h108v108h-108z" />
10
+ <path
11
+ android:fillColor="#00000000"
12
+ android:pathData="M9,0L9,108"
13
+ android:strokeWidth="0.8"
14
+ android:strokeColor="#33FFFFFF" />
15
+ <path
16
+ android:fillColor="#00000000"
17
+ android:pathData="M19,0L19,108"
18
+ android:strokeWidth="0.8"
19
+ android:strokeColor="#33FFFFFF" />
20
+ <path
21
+ android:fillColor="#00000000"
22
+ android:pathData="M29,0L29,108"
23
+ android:strokeWidth="0.8"
24
+ android:strokeColor="#33FFFFFF" />
25
+ <path
26
+ android:fillColor="#00000000"
27
+ android:pathData="M39,0L39,108"
28
+ android:strokeWidth="0.8"
29
+ android:strokeColor="#33FFFFFF" />
30
+ <path
31
+ android:fillColor="#00000000"
32
+ android:pathData="M49,0L49,108"
33
+ android:strokeWidth="0.8"
34
+ android:strokeColor="#33FFFFFF" />
35
+ <path
36
+ android:fillColor="#00000000"
37
+ android:pathData="M59,0L59,108"
38
+ android:strokeWidth="0.8"
39
+ android:strokeColor="#33FFFFFF" />
40
+ <path
41
+ android:fillColor="#00000000"
42
+ android:pathData="M69,0L69,108"
43
+ android:strokeWidth="0.8"
44
+ android:strokeColor="#33FFFFFF" />
45
+ <path
46
+ android:fillColor="#00000000"
47
+ android:pathData="M79,0L79,108"
48
+ android:strokeWidth="0.8"
49
+ android:strokeColor="#33FFFFFF" />
50
+ <path
51
+ android:fillColor="#00000000"
52
+ android:pathData="M89,0L89,108"
53
+ android:strokeWidth="0.8"
54
+ android:strokeColor="#33FFFFFF" />
55
+ <path
56
+ android:fillColor="#00000000"
57
+ android:pathData="M99,0L99,108"
58
+ android:strokeWidth="0.8"
59
+ android:strokeColor="#33FFFFFF" />
60
+ <path
61
+ android:fillColor="#00000000"
62
+ android:pathData="M0,9L108,9"
63
+ android:strokeWidth="0.8"
64
+ android:strokeColor="#33FFFFFF" />
65
+ <path
66
+ android:fillColor="#00000000"
67
+ android:pathData="M0,19L108,19"
68
+ android:strokeWidth="0.8"
69
+ android:strokeColor="#33FFFFFF" />
70
+ <path
71
+ android:fillColor="#00000000"
72
+ android:pathData="M0,29L108,29"
73
+ android:strokeWidth="0.8"
74
+ android:strokeColor="#33FFFFFF" />
75
+ <path
76
+ android:fillColor="#00000000"
77
+ android:pathData="M0,39L108,39"
78
+ android:strokeWidth="0.8"
79
+ android:strokeColor="#33FFFFFF" />
80
+ <path
81
+ android:fillColor="#00000000"
82
+ android:pathData="M0,49L108,49"
83
+ android:strokeWidth="0.8"
84
+ android:strokeColor="#33FFFFFF" />
85
+ <path
86
+ android:fillColor="#00000000"
87
+ android:pathData="M0,59L108,59"
88
+ android:strokeWidth="0.8"
89
+ android:strokeColor="#33FFFFFF" />
90
+ <path
91
+ android:fillColor="#00000000"
92
+ android:pathData="M0,69L108,69"
93
+ android:strokeWidth="0.8"
94
+ android:strokeColor="#33FFFFFF" />
95
+ <path
96
+ android:fillColor="#00000000"
97
+ android:pathData="M0,79L108,79"
98
+ android:strokeWidth="0.8"
99
+ android:strokeColor="#33FFFFFF" />
100
+ <path
101
+ android:fillColor="#00000000"
102
+ android:pathData="M0,89L108,89"
103
+ android:strokeWidth="0.8"
104
+ android:strokeColor="#33FFFFFF" />
105
+ <path
106
+ android:fillColor="#00000000"
107
+ android:pathData="M0,99L108,99"
108
+ android:strokeWidth="0.8"
109
+ android:strokeColor="#33FFFFFF" />
110
+ <path
111
+ android:fillColor="#00000000"
112
+ android:pathData="M19,29L89,29"
113
+ android:strokeWidth="0.8"
114
+ android:strokeColor="#33FFFFFF" />
115
+ <path
116
+ android:fillColor="#00000000"
117
+ android:pathData="M19,39L89,39"
118
+ android:strokeWidth="0.8"
119
+ android:strokeColor="#33FFFFFF" />
120
+ <path
121
+ android:fillColor="#00000000"
122
+ android:pathData="M19,49L89,49"
123
+ android:strokeWidth="0.8"
124
+ android:strokeColor="#33FFFFFF" />
125
+ <path
126
+ android:fillColor="#00000000"
127
+ android:pathData="M19,59L89,59"
128
+ android:strokeWidth="0.8"
129
+ android:strokeColor="#33FFFFFF" />
130
+ <path
131
+ android:fillColor="#00000000"
132
+ android:pathData="M19,69L89,69"
133
+ android:strokeWidth="0.8"
134
+ android:strokeColor="#33FFFFFF" />
135
+ <path
136
+ android:fillColor="#00000000"
137
+ android:pathData="M19,79L89,79"
138
+ android:strokeWidth="0.8"
139
+ android:strokeColor="#33FFFFFF" />
140
+ <path
141
+ android:fillColor="#00000000"
142
+ android:pathData="M29,19L29,89"
143
+ android:strokeWidth="0.8"
144
+ android:strokeColor="#33FFFFFF" />
145
+ <path
146
+ android:fillColor="#00000000"
147
+ android:pathData="M39,19L39,89"
148
+ android:strokeWidth="0.8"
149
+ android:strokeColor="#33FFFFFF" />
150
+ <path
151
+ android:fillColor="#00000000"
152
+ android:pathData="M49,19L49,89"
153
+ android:strokeWidth="0.8"
154
+ android:strokeColor="#33FFFFFF" />
155
+ <path
156
+ android:fillColor="#00000000"
157
+ android:pathData="M59,19L59,89"
158
+ android:strokeWidth="0.8"
159
+ android:strokeColor="#33FFFFFF" />
160
+ <path
161
+ android:fillColor="#00000000"
162
+ android:pathData="M69,19L69,89"
163
+ android:strokeWidth="0.8"
164
+ android:strokeColor="#33FFFFFF" />
165
+ <path
166
+ android:fillColor="#00000000"
167
+ android:pathData="M79,19L79,89"
168
+ android:strokeWidth="0.8"
169
+ android:strokeColor="#33FFFFFF" />
170
+ </vector>
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+ xmlns:app="http://schemas.android.com/apk/res-auto"
4
+ xmlns:tools="http://schemas.android.com/tools"
5
+ android:layout_width="match_parent"
6
+ android:layout_height="match_parent"
7
+ tools:context=".VideoCallActivity">
8
+
9
+ <FrameLayout
10
+ android:layout_width="fill_parent"
11
+ android:layout_height="fill_parent"
12
+ app:layout_constraintBottom_toBottomOf="parent"
13
+ app:layout_constraintEnd_toEndOf="parent"
14
+ app:layout_constraintStart_toStartOf="parent"
15
+ android:background="#DDDDDD"
16
+ app:layout_constraintTop_toTopOf="parent">
17
+
18
+ <FrameLayout
19
+ android:id="@+id/subscriber_container"
20
+ android:layout_width="fill_parent"
21
+ android:layout_height="fill_parent" />
22
+
23
+ <FrameLayout
24
+ android:id="@+id/publisher_container"
25
+ android:layout_width="90dp"
26
+ android:layout_height="120dp"
27
+ android:layout_gravity="bottom|end"
28
+ android:layout_marginEnd="16dp"
29
+ android:layout_marginRight="16dp"
30
+ android:layout_marginBottom="16dp"
31
+ android:background="#FFFFFF"
32
+ android:padding="2dp" />
33
+
34
+ </FrameLayout>
35
+
36
+ </androidx.constraintlayout.widget.ConstraintLayout>
@@ -0,0 +1,282 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+
3
+ <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
4
+ xmlns:app="http://schemas.android.com/apk/res-auto"
5
+ xmlns:tools="http://schemas.android.com/tools"
6
+ android:layout_width="match_parent"
7
+ android:layout_height="match_parent"
8
+ android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
9
+ tools:context=".VideoCallActivity">
10
+
11
+ <androidx.constraintlayout.widget.ConstraintLayout
12
+ android:layout_width="match_parent"
13
+ android:layout_height="match_parent"
14
+ >
15
+
16
+
17
+ <LinearLayout
18
+ android:id="@+id/main"
19
+ android:layout_width="match_parent"
20
+ android:layout_height="match_parent"
21
+ >
22
+
23
+
24
+ <FrameLayout
25
+
26
+ android:layout_width="fill_parent"
27
+ android:layout_height="fill_parent"
28
+ android:background="#DDDDDD"
29
+ app:layout_constraintBottom_toBottomOf="parent"
30
+ app:layout_constraintEnd_toEndOf="parent"
31
+ app:layout_constraintStart_toStartOf="parent"
32
+ app:layout_constraintTop_toTopOf="parent">
33
+
34
+ <FrameLayout
35
+ android:id="@+id/subscriber_container"
36
+ android:layout_width="fill_parent"
37
+ android:layout_height="match_parent" />
38
+
39
+ <TextView
40
+ android:id="@+id/subscriberName"
41
+ android:layout_width="140dp"
42
+ android:layout_height="157dp"
43
+ android:layout_gravity="bottom|start"
44
+ android:paddingLeft="10dp"
45
+ android:paddingBottom="120dp"
46
+ android:text="Publisher Name"
47
+ android:textColor="@android:color/background_dark"
48
+ android:textSize="16sp"
49
+ android:visibility="visible" />
50
+ <TextView
51
+ android:id="@+id/timerTextView"
52
+ android:layout_width="140dp"
53
+ android:layout_height="wrap_content"
54
+ android:layout_gravity="bottom|start"
55
+ android:paddingBottom="100dp"
56
+ android:paddingLeft="10dp"
57
+ android:text="00:00:00"
58
+ android:visibility="visible"
59
+ android:textColor="@android:color/background_dark"
60
+ android:textSize="16sp" />
61
+
62
+ <FrameLayout
63
+ android:id="@+id/publisher_container"
64
+ android:layout_width="100dp"
65
+ android:layout_height="120dp"
66
+ android:layout_gravity="bottom|end"
67
+ android:layout_marginEnd="16dp"
68
+ android:layout_marginRight="16dp"
69
+ android:layout_marginBottom="80dp"
70
+ android:background="#FFFFFF"
71
+ android:padding="2dp" >
72
+ <TextView
73
+ android:id="@+id/publisherName"
74
+ android:layout_width="wrap_content"
75
+ android:layout_height="wrap_content"
76
+ android:layout_gravity="bottom|start"
77
+ android:textSize="12sp"
78
+ android:text="Subscriber Name"
79
+ android:paddingBottom="5dp"
80
+ android:visibility="visible"
81
+ android:textColor="@android:color/background_dark" />
82
+ </FrameLayout>
83
+
84
+ </FrameLayout>
85
+
86
+ </LinearLayout>
87
+ <androidx.constraintlayout.widget.Guideline
88
+ android:id="@+id/guidelineBottom"
89
+ android:layout_width="wrap_content"
90
+ android:layout_height="wrap_content"
91
+ app:layout_constraintGuide_percent="0.9" />
92
+
93
+ <LinearLayout
94
+ android:layout_width="fill_parent"
95
+ android:layout_height="49dp"
96
+ android:layout_alignParentBottom="false"
97
+ android:gravity="clip_horizontal"
98
+ android:orientation="horizontal"
99
+ app:layout_constraintBottom_toBottomOf="@+id/main"
100
+ app:layout_constraintStart_toStartOf="parent"
101
+ android:layout_marginBottom="16dp">
102
+
103
+ <!-- Image resource for the FAB -->
104
+
105
+ <!-- Set the background image using android:background -->
106
+ <ImageView
107
+ android:id="@+id/imageView1"
108
+ android:layout_width="0dp"
109
+ android:layout_height="50dp"
110
+ android:layout_weight="1"
111
+ android:src="@drawable/callend"
112
+ android:contentDescription="EndCall"
113
+ />
114
+ <ImageView
115
+ android:id="@+id/imageView4"
116
+ android:layout_width="0dp"
117
+ android:layout_height="50dp"
118
+ android:layout_weight="1"
119
+ android:contentDescription="Switch Camera"
120
+ android:src="@drawable/cameraswitch" />
121
+
122
+ <ImageView
123
+ android:id="@+id/imageView3"
124
+ android:layout_width="0dp"
125
+ android:layout_height="50dp"
126
+ android:layout_weight="1"
127
+ android:src="@drawable/cameraonwhite"
128
+ android:contentDescription="Camera On/Off"
129
+ />
130
+
131
+
132
+ <ImageView
133
+ android:id="@+id/imageView2"
134
+ android:layout_width="0dp"
135
+ android:layout_height="50dp"
136
+ android:layout_weight="1"
137
+ android:src="@drawable/microphoneonwhite"
138
+ android:contentDescription="Mute"
139
+ />
140
+
141
+ ////////////////////////////
142
+ </LinearLayout>
143
+ </androidx.constraintlayout.widget.ConstraintLayout>
144
+
145
+
146
+
147
+ </androidx.constraintlayout.widget.ConstraintLayout>
148
+
149
+ <!--</androidx.core.widget.NestedScrollView>-->
150
+ <!--<?xml version="1.0" encoding="utf-8"?>-->
151
+ <!--<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"-->
152
+ <!-- xmlns:app="http://schemas.android.com/apk/res-auto"-->
153
+ <!-- xmlns:tools="http://schemas.android.com/tools"-->
154
+ <!-- android:layout_width="match_parent"-->
155
+ <!-- android:layout_height="match_parent"-->
156
+ <!-- tools:context=".VideoCallActivity">-->
157
+
158
+
159
+ <!-- <LinearLayout-->
160
+ <!-- android:layout_width="match_parent"-->
161
+ <!-- android:layout_height="match_parent"-->
162
+ <!-- android:id="@+id/main"-->
163
+ <!-- android:orientation="vertical"-->
164
+ <!-- android:padding="16dp">-->
165
+
166
+
167
+ <!-- <FrameLayout-->
168
+ <!-- android:layout_width="fill_parent"-->
169
+ <!-- android:layout_height="fill_parent"-->
170
+ <!-- app:layout_constraintBottom_toBottomOf="parent"-->
171
+ <!-- app:layout_constraintEnd_toEndOf="parent"-->
172
+ <!-- app:layout_constraintStart_toStartOf="parent"-->
173
+ <!-- android:background="#DDDDDD"-->
174
+ <!-- app:layout_constraintTop_toTopOf="parent">-->
175
+
176
+ <!-- <FrameLayout-->
177
+ <!-- android:id="@+id/subscriber_container"-->
178
+ <!-- android:layout_width="fill_parent"-->
179
+ <!-- android:layout_height="match_parent" />-->
180
+
181
+ <!-- <FrameLayout-->
182
+ <!-- android:id="@+id/publisher_container"-->
183
+ <!-- android:layout_width="90dp"-->
184
+ <!-- android:layout_height="120dp"-->
185
+ <!-- android:layout_gravity="bottom|end"-->
186
+ <!-- android:layout_marginEnd="16dp"-->
187
+ <!-- android:layout_marginRight="16dp"-->
188
+ <!-- android:layout_marginBottom="80dp"-->
189
+ <!-- android:background="#FFFFFF"-->
190
+ <!-- android:padding="2dp" />-->
191
+
192
+ <!-- </FrameLayout>-->
193
+
194
+ <!-- </LinearLayout>-->
195
+ <!-- <LinearLayout-->
196
+ <!-- android:layout_width="match_parent"-->
197
+ <!-- android:layout_height="wrap_content"-->
198
+ <!-- android:layout_alignParentBottom="true"-->
199
+ <!-- android:orientation="horizontal"-->
200
+ <!-- app:layout_constraintBottom_toBottomOf ="@+id/main"-->
201
+ <!-- android:gravity="center_horizontal">-->
202
+ <!-- <com.google.android.material.floatingactionbutton.FloatingActionButton-->
203
+ <!-- android:id="@+id/fabEndCall"-->
204
+ <!-- android:layout_width="wrap_content"-->
205
+ <!-- android:layout_height="wrap_content"-->
206
+ <!-- android:layout_margin="16dp"-->
207
+ <!-- app:backgroundTint="@android:color/holo_red_dark"-->
208
+ <!-- app:elevation="6dp"-->
209
+ <!-- android:layout_alignParentBottom="true"-->
210
+ <!-- app:layout_constraintTop_toTopOf="parent"-->
211
+ <!-- app:srcCompat="@drawable/callend"-->
212
+ <!-- app:layout_constraintLeft_toLeftOf="parent"-->
213
+ <!-- android:contentDescription="End"-->
214
+ <!-- android:layout_centerHorizontal="true" />-->
215
+
216
+ <!-- &lt;!&ndash; FAB for mute audio &ndash;&gt;-->
217
+ <!-- <com.google.android.material.floatingactionbutton.FloatingActionButton-->
218
+ <!-- android:id="@+id/fabMuteAudio"-->
219
+ <!-- android:layout_width="wrap_content"-->
220
+ <!-- android:layout_height="wrap_content"-->
221
+ <!-- android:layout_margin="16dp"-->
222
+ <!-- app:backgroundTint="@android:color/black"-->
223
+ <!-- app:elevation="6dp"-->
224
+ <!-- app:srcCompat="@drawable/microphoneonwhite"-->
225
+ <!-- android:layout_above="@id/fabEndCall"-->
226
+ <!-- app:layout_constraintTop_toTopOf="parent"-->
227
+ <!-- android:contentDescription="Mute"-->
228
+ <!-- app:layout_constraintLeft_toLeftOf="parent"-->
229
+ <!-- android:layout_centerHorizontal="true" />-->
230
+
231
+ <!-- &lt;!&ndash; FAB for camera off &ndash;&gt;-->
232
+ <!-- <com.google.android.material.floatingactionbutton.FloatingActionButton-->
233
+ <!-- android:id="@+id/fabCameraOff"-->
234
+ <!-- android:layout_width="wrap_content"-->
235
+ <!-- android:layout_height="wrap_content"-->
236
+ <!-- android:contentDescription="Cam"-->
237
+ <!-- app:srcCompat="@drawable/cameraonwhite"-->
238
+ <!-- android:layout_margin="16dp"-->
239
+ <!-- app:backgroundTint="@android:color/black"-->
240
+ <!-- app:elevation="6dp"-->
241
+
242
+ <!-- android:layout_above="@id/fabMuteAudio"-->
243
+ <!-- app:layout_constraintTop_toTopOf="parent"-->
244
+ <!-- app:layout_constraintLeft_toLeftOf="parent"-->
245
+ <!-- android:layout_centerHorizontal="true" />-->
246
+ <!-- </LinearLayout>-->
247
+
248
+
249
+
250
+ <!--</androidx.constraintlayout.widget.ConstraintLayout>-->
251
+
252
+
253
+
254
+ <!-- &lt;!&ndash;<?xml version="1.0" encoding="utf-8"?>&ndash;&gt;-->
255
+ <!--&lt;!&ndash;<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"&ndash;&gt;-->
256
+ <!--&lt;!&ndash; android:layout_width="match_parent"&ndash;&gt;-->
257
+ <!--&lt;!&ndash; android:layout_height="match_parent"&ndash;&gt;-->
258
+ <!--&lt;!&ndash; xmlns:tools="http://schemas.android.com/tools"&ndash;&gt;-->
259
+ <!--&lt;!&ndash; tools:context=".VideoCallActivity">&ndash;&gt;-->
260
+
261
+ <!--&lt;!&ndash; &lt;!&ndash; Remote Video View &ndash;&gt;&ndash;&gt;-->
262
+ <!--&lt;!&ndash; <FrameLayout&ndash;&gt;-->
263
+ <!--&lt;!&ndash; android:id="@+id/remoteVideoContainer"&ndash;&gt;-->
264
+ <!--&lt;!&ndash; android:layout_width="match_parent"&ndash;&gt;-->
265
+ <!--&lt;!&ndash; android:layout_height="match_parent">&ndash;&gt;-->
266
+ <!--&lt;!&ndash; </FrameLayout>&ndash;&gt;-->
267
+
268
+ <!--&lt;!&ndash; &lt;!&ndash; Local Video View (Floating on top of Remote) with Margin &ndash;&gt;&ndash;&gt;-->
269
+ <!--&lt;!&ndash; <FrameLayout&ndash;&gt;-->
270
+ <!--&lt;!&ndash; android:id="@+id/localVideoContainer"&ndash;&gt;-->
271
+ <!--&lt;!&ndash; android:layout_width="120dp"&ndash;&gt;-->
272
+ <!--&lt;!&ndash; android:layout_height="160dp"&ndash;&gt;-->
273
+ <!--&lt;!&ndash; android:layout_marginEnd="35dp"&ndash;&gt;-->
274
+ <!--&lt;!&ndash; android:layout_marginBottom="80dp"&ndash;&gt;-->
275
+ <!--&lt;!&ndash; android:layout_alignParentEnd="true"&ndash;&gt;-->
276
+ <!--&lt;!&ndash; android:layout_alignParentBottom="true">&ndash;&gt;-->
277
+ <!--&lt;!&ndash; </FrameLayout>&ndash;&gt;-->
278
+
279
+ <!--&lt;!&ndash; &lt;!&ndash; Call Controls (e.g., buttons for ending the call, muting audio, etc.) &ndash;&gt;&ndash;&gt;-->
280
+ <!--&lt;!&ndash; &lt;!&ndash; Add your call control UI elements here &ndash;&gt;&ndash;&gt;-->
281
+
282
+ <!--&lt;!&ndash;</RelativeLayout>&ndash;&gt;-->
Binary file