agora-appbuilder-core 3.0.10 → 3.0.12

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 (249) hide show
  1. package/Readme.md +0 -6
  2. package/package.json +2 -2
  3. package/template/_package-lock.json +4979 -7086
  4. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +0 -4
  5. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +0 -18
  6. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +0 -2
  7. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +26 -30
  8. package/template/agora-rn-uikit/src/Controls/Icons.ts +83 -30
  9. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +6 -6
  10. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +0 -1
  11. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +0 -1
  12. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +0 -1
  13. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +0 -1
  14. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +0 -1
  15. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +0 -2
  16. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +0 -1
  17. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +0 -1
  18. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +0 -1
  19. package/template/agora-rn-uikit/src/Reducer/index.ts +0 -3
  20. package/template/agora-rn-uikit/src/Rtc/Create.tsx +1 -89
  21. package/template/agora-rn-uikit/src/RtcConfigure.tsx +2 -39
  22. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +5 -15
  23. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +9 -15
  24. package/template/agora-rn-uikit/src/index.ts +1 -3
  25. package/template/android/app/build.gradle +0 -1
  26. package/template/android/app/src/main/AndroidManifest.xml +15 -22
  27. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +0 -50
  28. package/template/android/build.gradle +3 -3
  29. package/template/babel.config.js +0 -1
  30. package/template/bridge/rtc/webNg/RtcEngine.ts +17 -110
  31. package/template/customization-api/sub-components.ts +1 -1
  32. package/template/customization-api/typeDefinition.ts +1 -2
  33. package/template/electron/index.html +27 -27
  34. package/template/electron/renderer/index.js +0 -1
  35. package/template/global.d.ts +4 -26
  36. package/template/index.js +0 -4
  37. package/template/index.rsdk.tsx +0 -1
  38. package/template/index.web.js +1 -7
  39. package/template/index.wsdk.tsx +1 -1
  40. package/template/ios/HelloWorld/Info.plist +1 -14
  41. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -17
  42. package/template/metro.config.js +1 -1
  43. package/template/package.json +7 -21
  44. package/template/react-native-toast-message/index.d.ts +43 -43
  45. package/template/react-native-toast-message/src/colors/index.js +2 -3
  46. package/template/react-native-toast-message/src/components/base/index.js +59 -46
  47. package/template/react-native-toast-message/src/components/base/styles.js +32 -16
  48. package/template/react-native-toast-message/src/components/error.js +2 -3
  49. package/template/react-native-toast-message/src/components/info.js +2 -3
  50. package/template/react-native-toast-message/src/components/success.js +2 -3
  51. package/template/react-native-toast-message/src/index.js +31 -122
  52. package/template/react-native-toast-message/src/index.sdk.tsx +35 -125
  53. package/template/react-native-toast-message/src/styles.js +4 -3
  54. package/template/react-native-toast-message/src/styles.sdk.ts +4 -3
  55. package/template/src/App.tsx +0 -6
  56. package/template/src/AppWrapper.tsx +28 -63
  57. package/template/src/assets/icons.ts +102 -0
  58. package/template/src/atoms/HorizontalRule.tsx +1 -3
  59. package/template/src/atoms/PrimaryButton.tsx +26 -51
  60. package/template/src/atoms/SecondaryButton.tsx +5 -8
  61. package/template/src/atoms/TextInput.tsx +14 -12
  62. package/template/src/components/Chat.tsx +214 -86
  63. package/template/src/components/ChatContext.ts +1 -8
  64. package/template/src/components/ColorConfigure.tsx +1 -1
  65. package/template/src/components/ColorContext.ts +1 -1
  66. package/template/src/components/{Controls1.native.tsx → Controls.native.tsx} +4 -6
  67. package/template/src/components/Controls.tsx +42 -342
  68. package/template/src/components/DeviceConfigure.tsx +101 -461
  69. package/template/src/components/DeviceContext.tsx +4 -8
  70. package/template/src/components/EventsConfigure.tsx +7 -144
  71. package/template/src/components/GraphQLProvider.tsx +1 -1
  72. package/template/src/components/GridVideo.tsx +44 -59
  73. package/template/src/components/HostControlView.tsx +35 -114
  74. package/template/src/components/Navbar.tsx +398 -216
  75. package/template/src/components/NetworkQualityContext.tsx +20 -20
  76. package/template/src/components/ParticipantsView.tsx +154 -177
  77. package/template/src/components/PinnedVideo.tsx +120 -207
  78. package/template/src/components/Precall.native.tsx +119 -358
  79. package/template/src/components/Precall.tsx +135 -269
  80. package/template/src/components/RTMConfigure.tsx +4 -27
  81. package/template/src/components/Router.electron.ts +0 -1
  82. package/template/src/components/Router.native.ts +0 -1
  83. package/template/src/components/Router.sdk.ts +0 -1
  84. package/template/src/components/Router.ts +0 -1
  85. package/template/src/components/Settings.tsx +95 -26
  86. package/template/src/components/SettingsView.tsx +56 -251
  87. package/template/src/components/Share.tsx +273 -302
  88. package/template/src/components/StorageContext.tsx +3 -30
  89. package/template/src/components/chat-messages/useChatMessages.tsx +23 -69
  90. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -7
  91. package/template/src/components/common/Error.tsx +6 -20
  92. package/template/src/components/common/Logo.tsx +15 -16
  93. package/template/src/components/contexts/LiveStreamDataContext.tsx +5 -10
  94. package/template/src/components/contexts/VideoMeetingDataContext.tsx +7 -37
  95. package/template/src/components/livestream/LiveStreamContext.tsx +36 -270
  96. package/template/src/components/livestream/Types.ts +14 -39
  97. package/template/src/components/livestream/index.ts +0 -1
  98. package/template/src/components/livestream/views/LiveStreamControls.tsx +4 -12
  99. package/template/src/components/participants/AllAudienceParticipants.tsx +30 -101
  100. package/template/src/components/participants/AllHostParticipants.tsx +34 -103
  101. package/template/src/components/participants/MeParticipant.tsx +38 -0
  102. package/template/src/components/participants/ParticipantName.tsx +7 -13
  103. package/template/src/components/participants/ParticipantSectionTitle.tsx +10 -35
  104. package/template/src/components/participants/RemoteParticipants.tsx +71 -0
  105. package/template/src/components/participants/ScreenshareParticipants.tsx +12 -144
  106. package/template/src/components/precall/{LocalMute1.native.tsx → LocalMute.native.tsx} +5 -21
  107. package/template/src/components/precall/LocalMute.tsx +14 -84
  108. package/template/src/components/precall/VideoPreview.native.tsx +3 -48
  109. package/template/src/components/precall/VideoPreview.tsx +7 -163
  110. package/template/src/components/precall/joinCallBtn.tsx +2 -15
  111. package/template/src/components/precall/meetingTitle.tsx +12 -15
  112. package/template/src/components/precall/selectDevice.tsx +21 -1
  113. package/template/src/components/precall/textInput.tsx +4 -32
  114. package/template/src/components/precall/usePreCall.tsx +0 -16
  115. package/template/src/components/styles.ts +21 -42
  116. package/template/src/components/useShareLink.tsx +14 -12
  117. package/template/src/language/default-labels/precallScreenLabels.ts +3 -3
  118. package/template/src/pages/Authenticate.tsx +15 -5
  119. package/template/src/pages/Create.tsx +165 -293
  120. package/template/src/pages/Join.tsx +67 -93
  121. package/template/src/pages/VideoCall.tsx +64 -89
  122. package/template/src/pages/video-call/DefaultLayouts.ts +4 -4
  123. package/template/src/pages/video-call/NameWithMicIcon.tsx +44 -120
  124. package/template/src/pages/video-call/RenderComponent.tsx +2 -3
  125. package/template/src/pages/video-call/VideoCallScreen.tsx +9 -45
  126. package/template/src/pages/video-call/VideoComponent.tsx +3 -18
  127. package/template/src/pages/video-call/VideoRenderer.tsx +60 -218
  128. package/template/src/rtm-events/constants.ts +0 -2
  129. package/template/src/subComponents/ChatBubble.tsx +83 -123
  130. package/template/src/subComponents/ChatContainer.tsx +84 -257
  131. package/template/src/subComponents/ChatInput.tsx +46 -61
  132. package/template/src/subComponents/Checkbox.native.tsx +5 -16
  133. package/template/src/subComponents/Checkbox.tsx +2 -2
  134. package/template/src/subComponents/CopyJoinInfo.tsx +58 -36
  135. package/template/src/subComponents/FallbackLogo.tsx +40 -122
  136. package/template/src/subComponents/LanguageSelector.tsx +1 -1
  137. package/template/src/subComponents/{LayoutIconDropdown1.native.tsx → LayoutIconDropdown.native.tsx} +18 -4
  138. package/template/src/subComponents/LayoutIconDropdown.tsx +134 -131
  139. package/template/src/subComponents/LocalAudioMute.tsx +27 -119
  140. package/template/src/subComponents/LocalEndCall.tsx +33 -71
  141. package/template/src/subComponents/LocalSwitchCamera.tsx +30 -17
  142. package/template/src/subComponents/LocalVideoMute.tsx +27 -117
  143. package/template/src/subComponents/Logo.tsx +4 -3
  144. package/template/src/subComponents/LogoutButton.tsx +1 -1
  145. package/template/src/subComponents/NetworkQualityPill.tsx +63 -60
  146. package/template/src/subComponents/OpenInNativeButton.tsx +3 -3
  147. package/template/src/subComponents/Recording.tsx +29 -28
  148. package/template/src/subComponents/RemoteAudioMute.tsx +29 -83
  149. package/template/src/subComponents/RemoteEndCall.tsx +5 -8
  150. package/template/src/subComponents/RemoteVideoMute.tsx +21 -74
  151. package/template/src/subComponents/ScreenShareNotice.tsx +8 -83
  152. package/template/src/subComponents/SelectDevice.tsx +61 -404
  153. package/template/src/subComponents/SelectOAuth.tsx +8 -9
  154. package/template/src/subComponents/ToastConfig.tsx +10 -150
  155. package/template/src/subComponents/chat/ChatParticipants.tsx +78 -187
  156. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -95
  157. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +33 -29
  158. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +6 -6
  159. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +11 -24
  160. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +10 -17
  161. package/template/src/subComponents/recording/useRecording.tsx +27 -79
  162. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +70 -52
  163. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +2 -11
  164. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +4 -26
  165. package/template/src/utils/common.tsx +1 -155
  166. package/template/src/utils/index.tsx +0 -19
  167. package/template/src/utils/isMobileOrTablet.ts +2 -7
  168. package/template/src/utils/useButtonTemplate.tsx +0 -1
  169. package/template/src/utils/useMuteToggleLocal.ts +3 -54
  170. package/template/web/index.html +0 -5
  171. package/template/webpack.commons.js +8 -13
  172. package/template/webpack.web.config.js +0 -1
  173. package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
  174. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +0 -24
  175. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +0 -11
  176. package/template/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  177. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  178. package/template/android/app/src/main/res/values/colors.xml +0 -7
  179. package/template/react-native-toast-message/src/components/checkbox.js +0 -178
  180. package/template/react-native.config.js +0 -7
  181. package/template/src/assets/font-styles.css +0 -329
  182. package/template/src/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  183. package/template/src/assets/fonts/icomoon.ttf +0 -0
  184. package/template/src/assets/permission.png +0 -0
  185. package/template/src/assets/selection.json +0 -1
  186. package/template/src/atoms/ActionMenu.tsx +0 -236
  187. package/template/src/atoms/AnimatedActiveSpeaker.native.tsx +0 -71
  188. package/template/src/atoms/AnimatedActiveSpeaker.tsx +0 -84
  189. package/template/src/atoms/AnimatedRings.native.tsx +0 -68
  190. package/template/src/atoms/AnimatedRings.tsx +0 -70
  191. package/template/src/atoms/Card.tsx +0 -61
  192. package/template/src/atoms/CircularProgress.native.tsx +0 -121
  193. package/template/src/atoms/CircularProgress.tsx +0 -102
  194. package/template/src/atoms/CustomIcon.tsx +0 -88
  195. package/template/src/atoms/CustomSwitch.tsx +0 -287
  196. package/template/src/atoms/Dropdown.tsx +0 -306
  197. package/template/src/atoms/IconButton.tsx +0 -162
  198. package/template/src/atoms/ImageIcon.tsx +0 -98
  199. package/template/src/atoms/InfoBubble.tsx +0 -291
  200. package/template/src/atoms/Input.tsx +0 -87
  201. package/template/src/atoms/InviteInfo.tsx +0 -166
  202. package/template/src/atoms/LinkButton.tsx +0 -28
  203. package/template/src/atoms/OutlineButton.tsx +0 -61
  204. package/template/src/atoms/ParticipantsCount.tsx +0 -73
  205. package/template/src/atoms/Popup.tsx +0 -147
  206. package/template/src/atoms/RecordingInfo.tsx +0 -49
  207. package/template/src/atoms/Spacer.tsx +0 -22
  208. package/template/src/atoms/TertiaryButton.tsx +0 -78
  209. package/template/src/atoms/Toggle.tsx +0 -47
  210. package/template/src/atoms/Tooltip.native.tsx +0 -65
  211. package/template/src/atoms/Tooltip.tsx +0 -94
  212. package/template/src/atoms/UserAvatar.tsx +0 -60
  213. package/template/src/components/CommonStyles.ts +0 -44
  214. package/template/src/components/ToastComponent.tsx +0 -8
  215. package/template/src/components/participants/Participant.tsx +0 -302
  216. package/template/src/components/participants/UserActionMenuOptions.tsx +0 -398
  217. package/template/src/components/popups/InvitePopup.tsx +0 -115
  218. package/template/src/components/popups/StopRecordingPopup.tsx +0 -114
  219. package/template/src/components/precall/PermissionHelper.native.tsx +0 -5
  220. package/template/src/components/precall/PermissionHelper.tsx +0 -126
  221. package/template/src/components/precall/PreCallSettings.tsx +0 -52
  222. package/template/src/components/useToast.tsx +0 -41
  223. package/template/src/components/useVideoCall.tsx +0 -65
  224. package/template/src/pages/Endcall.tsx +0 -148
  225. package/template/src/pages/video-call/ActionSheet.native.tsx +0 -215
  226. package/template/src/pages/video-call/ActionSheet.tsx +0 -226
  227. package/template/src/pages/video-call/ActionSheetContent.tsx +0 -479
  228. package/template/src/pages/video-call/ActionSheetHandle.tsx +0 -38
  229. package/template/src/pages/video-call/ActionSheetStyles.css +0 -138
  230. package/template/src/pages/video-call/SidePanelHeader.tsx +0 -190
  231. package/template/src/pages/video-call/VideoCallMobileView.tsx +0 -139
  232. package/template/src/pages/video-call/VideoCallScreen.native.tsx +0 -37
  233. package/template/src/subComponents/ChatInput.ios.tsx +0 -237
  234. package/template/src/subComponents/EndcallPopup.tsx +0 -107
  235. package/template/src/subComponents/LayoutIconButton.tsx +0 -201
  236. package/template/src/subComponents/RemoteMutePopup.tsx +0 -193
  237. package/template/src/subComponents/RemoveMeetingPopup.tsx +0 -109
  238. package/template/src/subComponents/RemoveScreensharePopup.tsx +0 -109
  239. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +0 -207
  240. package/template/src/subComponents/SidePanelHeader.tsx +0 -112
  241. package/template/src/theme/index.ts +0 -46
  242. package/template/src/utils/PlatformWrapper.tsx +0 -21
  243. package/template/src/utils/hexadecimalTransparency.ts +0 -108
  244. package/template/src/utils/pendingStateUpdateHelper.ts +0 -19
  245. package/template/src/utils/useFocus.tsx +0 -46
  246. package/template/src/utils/useIsActiveSpeaker.ts +0 -27
  247. package/template/src/utils/useIsHandRaised.ts +0 -13
  248. package/template/src/utils/useRemoteEndScreenshare.ts +0 -26
  249. package/template/src/utils/useRemoteRequest.ts +0 -84
@@ -23,8 +23,6 @@ import AgoraRTC, {
23
23
  EncryptionMode,
24
24
  ILocalTrack,
25
25
  ClientRoleOptions,
26
- CameraVideoTrackInitConfig,
27
- MicrophoneAudioTrackInitConfig,
28
26
  } from 'agora-rtc-sdk-ng';
29
27
  import type {
30
28
  RtcEngineEvents,
@@ -48,12 +46,9 @@ type callbackType = (uid?: UID) => void;
48
46
  declare global {
49
47
  interface Window {
50
48
  engine: RtcEngine;
51
- AgoraRTC: typeof AgoraRTC;
52
49
  }
53
50
  }
54
51
 
55
- window.AgoraRTC = AgoraRTC;
56
-
57
52
  export enum AREAS {
58
53
  /**
59
54
  * China.
@@ -171,7 +166,6 @@ if ($config.LOG_ENABLED) {
171
166
  }
172
167
 
173
168
  export default class RtcEngine {
174
- private activeSpeakerUid: number;
175
169
  public appId: string;
176
170
  // public AgoraRTC: any;
177
171
  public client: any | IAgoraRTCClient;
@@ -184,7 +178,6 @@ export default class RtcEngine {
184
178
  ['RemoteAudioStateChanged', () => null],
185
179
  ['RemoteVideoStateChanged', () => null],
186
180
  ['NetworkQuality', () => null],
187
- ['ActiveSpeaker', () => null],
188
181
  ]);
189
182
  public localStream: LocalStream = {};
190
183
  public screenStream: ScreenStream = {};
@@ -192,16 +185,15 @@ export default class RtcEngine {
192
185
  private inScreenshare: Boolean = false;
193
186
  private videoProfile: VideoProfile = '480p_9';
194
187
  private isPublished = false;
195
- private isAudioEnabled = false;
196
- private isVideoEnabled = false;
188
+ private isAudioEnabled = true;
189
+ private isVideoEnabled = true;
197
190
  private isAudioPublished = false;
198
191
  private isVideoPublished = false;
199
192
  private isJoined = false;
200
- private videoDeviceId = undefined;
201
- private audioDeviceId = undefined;
193
+ private deviceId = '';
202
194
  private muteLocalVideoMutex = false;
203
195
  private muteLocalAudioMutex = false;
204
- private speakerDeviceId = '';
196
+
205
197
  // Create channel profile and set it here
206
198
 
207
199
  // Create channel profile and set it here
@@ -222,17 +214,9 @@ export default class RtcEngine {
222
214
  }
223
215
 
224
216
  async enableAudio(): Promise<void> {
225
- const audioConfig: MicrophoneAudioTrackInitConfig = {
226
- bypassWebAudio: Platform.OS == 'web' && isMobileOrTablet(),
227
- // microphoneId: this.audioDeviceId,
228
- };
229
217
  try {
230
- let localAudio = await AgoraRTC.createMicrophoneAudioTrack(audioConfig);
218
+ let localAudio = await AgoraRTC.createMicrophoneAudioTrack({});
231
219
  this.localStream.audio = localAudio;
232
- this.audioDeviceId = localAudio
233
- ?.getMediaStreamTrack()
234
- .getSettings().deviceId;
235
- this.isAudioEnabled = true;
236
220
  } catch (e) {
237
221
  let audioError = e;
238
222
  e.status = {audioError};
@@ -250,30 +234,15 @@ export default class RtcEngine {
250
234
  * The Web SDK directly publishes the local audio stream without processing it through WebAudio.
251
235
  */
252
236
 
253
- const audioConfig: MicrophoneAudioTrackInitConfig = {
254
- bypassWebAudio: Platform.OS == 'web' && isMobileOrTablet(),
255
- // microphoneId: this.audioDeviceId,
256
- };
257
- const videoConfig: CameraVideoTrackInitConfig = {
258
- encoderConfig: this.videoProfile,
259
- // cameraId: this.videoDeviceId,
260
- };
237
+ const audioConfig =
238
+ Platform.OS == 'web' && isMobileOrTablet() ? {bypassWebAudio: true} : {};
261
239
  try {
262
240
  let [localAudio, localVideo] =
263
- await AgoraRTC.createMicrophoneAndCameraTracks(
264
- audioConfig,
265
- videoConfig,
266
- );
241
+ await AgoraRTC.createMicrophoneAndCameraTracks(audioConfig, {
242
+ encoderConfig: this.videoProfile,
243
+ });
267
244
  this.localStream.audio = localAudio;
268
245
  this.localStream.video = localVideo;
269
- this.audioDeviceId = localAudio
270
- ?.getMediaStreamTrack()
271
- .getSettings().deviceId;
272
- this.videoDeviceId = localVideo
273
- ?.getMediaStreamTrack()
274
- .getSettings().deviceId;
275
- this.isVideoEnabled = true;
276
- this.isAudioEnabled = true;
277
246
  } catch (e) {
278
247
  let audioError = false;
279
248
  let videoError = false;
@@ -281,20 +250,14 @@ export default class RtcEngine {
281
250
  let localAudio = await AgoraRTC.createMicrophoneAudioTrack(audioConfig);
282
251
 
283
252
  this.localStream.audio = localAudio;
284
- this.audioDeviceId = localAudio
285
- ?.getMediaStreamTrack()
286
- .getSettings().deviceId;
287
- this.isAudioEnabled = true;
288
253
  } catch (error) {
289
254
  audioError = error;
290
255
  }
291
256
  try {
292
- let localVideo = await AgoraRTC.createCameraVideoTrack(videoConfig);
257
+ let localVideo = await AgoraRTC.createCameraVideoTrack({
258
+ encoderConfig: this.videoProfile,
259
+ });
293
260
  this.localStream.video = localVideo;
294
- this.videoDeviceId = localVideo
295
- ?.getMediaStreamTrack()
296
- .getSettings().deviceId;
297
- this.isVideoEnabled = true;
298
261
  } catch (error) {
299
262
  videoError = error;
300
263
  }
@@ -308,11 +271,6 @@ export default class RtcEngine {
308
271
  }
309
272
  }
310
273
 
311
- async enableAudioVolumeIndication(interval, smooth, isLocal) {
312
- AgoraRTC.setParameter('AUDIO_VOLUME_INDICATION_INTERVAL', interval);
313
- this.client.enableAudioVolumeIndicator();
314
- }
315
-
316
274
  async publish() {
317
275
  if (this.localStream.audio || this.localStream.video) {
318
276
  try {
@@ -402,12 +360,6 @@ export default class RtcEngine {
402
360
  ...this.remoteStreams.get(user.uid),
403
361
  audio: audioTrack,
404
362
  });
405
- if (this.speakerDeviceId) {
406
- // setting sepeaker for all remote stream (newly joining user)
407
- this.remoteStreams
408
- .get(user.uid)
409
- ?.audio?.setPlaybackDevice(this.speakerDeviceId);
410
- }
411
363
  (this.eventsMap.get('RemoteAudioStateChanged') as callbackType)(
412
364
  user.uid,
413
365
  2,
@@ -452,36 +404,6 @@ export default class RtcEngine {
452
404
  }
453
405
  });
454
406
 
455
- this.client.on('volume-indicator', (volumes) => {
456
- const highestvolumeObj = volumes.reduce(
457
- (highestVolume, volume, index) => {
458
- if (highestVolume === null) {
459
- return volume;
460
- } else {
461
- if (volume.level > highestVolume.level) {
462
- return volume;
463
- }
464
- return highestVolume;
465
- }
466
- // console.log(`${index} UID ${volume.uid} Level ${volume.level}`);
467
- },
468
- null,
469
- );
470
- const activeSpeakerUid =
471
- highestvolumeObj && highestvolumeObj?.level > 0 && highestvolumeObj?.uid
472
- ? highestvolumeObj.uid
473
- : undefined;
474
-
475
- //To avoid infinite calling dispatch checking if condition.
476
- if (this.activeSpeakerUid !== activeSpeakerUid) {
477
- const activeSpeakerCallBack = this.eventsMap.get(
478
- 'ActiveSpeaker',
479
- ) as callbackType;
480
- activeSpeakerCallBack(activeSpeakerUid);
481
- this.activeSpeakerUid = activeSpeakerUid;
482
- }
483
- });
484
-
485
407
  // this.client.on('stream-fallback', (evt))
486
408
  this.client.on('stream-type-changed', function (uid, streamType) {
487
409
  console.log('[fallback]: ', uid, streamType);
@@ -546,8 +468,7 @@ export default class RtcEngine {
546
468
  event === 'ScreenshareStopped' ||
547
469
  event === 'RemoteAudioStateChanged' ||
548
470
  event === 'RemoteVideoStateChanged' ||
549
- event === 'NetworkQuality' ||
550
- event === 'ActiveSpeaker'
471
+ event === 'NetworkQuality'
551
472
  ) {
552
473
  this.eventsMap.set(event, listener as callbackType);
553
474
  }
@@ -695,7 +616,7 @@ export default class RtcEngine {
695
616
  async changeCamera(cameraId, callback, error): Promise<void> {
696
617
  try {
697
618
  await this.localStream.video?.setDevice(cameraId);
698
- this.videoDeviceId = cameraId;
619
+ this.deviceId = cameraId;
699
620
  callback(cameraId);
700
621
  } catch (e) {
701
622
  error(e);
@@ -707,9 +628,9 @@ export default class RtcEngine {
707
628
  const devices = await AgoraRTC.getDevices(true);
708
629
  for (let i = 0; i < devices.length; i++) {
709
630
  let d = devices[i];
710
- if (d.kind === 'videoinput' && d.deviceId !== this.videoDeviceId) {
631
+ if (d.kind === 'videoinput' && d.deviceId !== this.deviceId) {
711
632
  await this.localStream.video?.setDevice(d.deviceId);
712
- this.videoDeviceId = d.deviceId;
633
+ this.deviceId = d.deviceId;
713
634
  break;
714
635
  }
715
636
  }
@@ -721,26 +642,12 @@ export default class RtcEngine {
721
642
  async changeMic(micId, callback, error) {
722
643
  try {
723
644
  await this.localStream.audio?.setDevice(micId);
724
- this.audioDeviceId = micId;
725
645
  callback(micId);
726
646
  } catch (e) {
727
647
  error(e);
728
648
  }
729
649
  }
730
650
 
731
- async changeSpeaker(speakerId, callback, error) {
732
- try {
733
- this.speakerDeviceId = speakerId;
734
- // setting sepeaker for all remote stream (previously joined users)
735
- this.remoteStreams?.forEach((stream, uid, map) => {
736
- stream?.audio?.setPlaybackDevice(speakerId);
737
- });
738
- callback(speakerId);
739
- } catch (e) {
740
- error(e);
741
- }
742
- }
743
-
744
651
  async enableDualStreamMode(enable: boolean) {
745
652
  return this.client[enable ? 'enableDualStream' : 'disableDualStream']();
746
653
  // enable
@@ -4,7 +4,7 @@ export {default as PrimaryButton} from '../src/atoms/PrimaryButton';
4
4
  export {default as SecondaryButton} from '../src/atoms/SecondaryButton';
5
5
  export {default as TextInput} from '../src/atoms/TextInput';
6
6
  //Icons
7
- export {Icons} from '../agora-rn-uikit';
7
+ export {default as icons} from '../src/assets/icons';
8
8
 
9
9
  // commented for v1 release
10
10
  //create screen
@@ -18,7 +18,7 @@ import {
18
18
  UidType,
19
19
  } from '../agora-rn-uikit';
20
20
  import {I18nInterface} from '../src/language/i18nTypes';
21
- import {IconsInterface} from '../src/atoms/CustomIcon';
21
+ import {IconsInterface} from '../agora-rn-uikit/src/Controls/Icons';
22
22
  export type {RenderInterface, RenderStateInterface, UidType};
23
23
  export type {
24
24
  ChatTextInputProps,
@@ -56,7 +56,6 @@ export interface ChatCmpInterface {
56
56
 
57
57
  export interface renderComponentInterface {
58
58
  user: RenderInterface;
59
- isMax?: boolean;
60
59
  }
61
60
 
62
61
  export interface renderComponentObjectInterface {
@@ -1,29 +1,29 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <link rel="preconnect" href="https://fonts.googleapis.com" />
7
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
8
- <link
9
- href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap"
10
- rel="stylesheet"
11
- />
12
- <base href="./" />
13
- <title><%= htmlWebpackPlugin.options.title %></title>
14
- </head>
15
- <body>
16
- <style>
17
- .video-container > * {
18
- background-color: #000 !important;
19
- }
20
- .video-container video {
21
- background-color: #000;
22
- }
23
- .video-container {
24
- background-color: #000;
25
- }
26
- </style>
27
- <div id="react-app" style="height: 100vh; display: flex"></div>
28
- </body>
29
- </html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+
7
+ <base href="./">
8
+ <title><%= htmlWebpackPlugin.options.title %></title>
9
+ </head>
10
+ <body>
11
+ <style>
12
+ .video-container > *{
13
+ background-color: #000 !important;
14
+
15
+ }
16
+ .video-container video{
17
+ background-color: #000;
18
+ }
19
+ .video-container{
20
+ background-color: #000;
21
+ }
22
+ </style>
23
+ <div id="react-app" style="
24
+ height: 100vh;
25
+ display: flex;
26
+ ">
27
+ </div>
28
+ </body>
29
+ </html>
@@ -1,6 +1,5 @@
1
1
  import Video from '../../src/App';
2
2
  import {AppRegistry} from 'react-native';
3
- import '../../src/assets/font-styles.css';
4
3
  // import React from 'react';
5
4
 
6
5
  // const Video = () => <div>Hello </div>;
@@ -47,6 +47,7 @@ interface ConfigInterface {
47
47
  APP_NAME: string;
48
48
  LOGO: string;
49
49
  APP_ID: string;
50
+ PRIMARY_COLOR: string;
50
51
  FRONTEND_ENDPOINT: string;
51
52
  BACKEND_ENDPOINT: string;
52
53
  PSTN: boolean;
@@ -56,9 +57,11 @@ interface ConfigInterface {
56
57
  SCREEN_SHARING: boolean;
57
58
  CLIENT_ID: string;
58
59
  LANDING_SUB_HEADING: string;
60
+ BG: string;
59
61
  ENCRYPTION_ENABLED: boolean;
60
62
  PROFILE: VideoProfile;
61
- SENTRY_DSN: string;
63
+ PRIMARY_FONT_COLOR: string;
64
+ SECONDARY_FONT_COLOR: string;
62
65
  ENABLE_GOOGLE_OAUTH: boolean;
63
66
  ENABLE_SLACK_OAUTH: boolean;
64
67
  ENABLE_MICROSOFT_OAUTH: boolean;
@@ -72,31 +75,6 @@ interface ConfigInterface {
72
75
  GEO_FENCING: boolean;
73
76
  LOG_ENABLED: boolean;
74
77
  AUDIO_ROOM: boolean;
75
- PRIMARY_ACTION_BRAND_COLOR: string;
76
- PRIMARY_ACTION_TEXT_COLOR: string;
77
- SECONDARY_ACTION_COLOR: string;
78
- FONT_COLOR: string;
79
- BG: string;
80
- BACKGROUND_COLOR: string;
81
- VIDEO_AUDIO_TILE_COLOR: string;
82
- VIDEO_AUDIO_TILE_OVERLAY_COLOR: string;
83
- VIDEO_AUDIO_TILE_TEXT_COLOR: string;
84
- VIDEO_AUDIO_TILE_AVATAR_COLOR: string;
85
- SEMANTIC_ERROR: string;
86
- SEMANTIC_SUCCESS: string;
87
- SEMANTIC_WARNING: string;
88
- SEMANTIC_NEUTRAL: string;
89
- INPUT_FIELD_BACKGROUND_COLOR: string;
90
- INPUT_FIELD_BORDER_COLOR: string;
91
- CARD_LAYER_1_COLOR: string;
92
- CARD_LAYER_2_COLOR: string;
93
- CARD_LAYER_3_COLOR: string;
94
- CARD_LAYER_4_COLOR: string;
95
- CARD_LAYER_5_COLOR: string;
96
- HARD_CODED_BLACK_COLOR: string;
97
- ICON_TEXT: boolean;
98
- ICON_BG_COLOR: string;
99
- TOOLBAR_COLOR: string;
100
78
  }
101
79
  declare var $config: ConfigInterface;
102
80
  declare module 'customization' {
package/template/index.js CHANGED
@@ -14,11 +14,7 @@
14
14
  */
15
15
 
16
16
  import {AppRegistry} from 'react-native';
17
- import * as Sentry from '@sentry/react-native';
18
17
  import App from './src/App';
19
18
  import {name as appName} from './app.json';
20
19
 
21
- Sentry.init({
22
- dsn: 'https://b5df0450fe284baa8376e62ace331580@o615358.ingest.sentry.io/5749898',
23
- });
24
20
  AppRegistry.registerComponent(appName, () => App);
@@ -18,7 +18,6 @@ import SDKAppWrapper, {
18
18
  } from './src/SDKAppWrapper';
19
19
  import React from 'react';
20
20
  import * as RN from 'react-native-web';
21
- import './src/assets/font-styles.css';
22
21
 
23
22
  export * from 'customization-api';
24
23
  export * from 'customization-implementation';
@@ -9,14 +9,8 @@
9
9
  information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
- import { AppRegistry } from 'react-native';
13
- import * as Sentry from '@sentry/browser';
12
+ import {AppRegistry} from 'react-native';
14
13
  import Video from './src/App';
15
- import './src/assets/font-styles.css'
16
-
17
- Sentry.init({
18
- dsn: 'https://b5df0450fe284baa8376e62ace331580@o615358.ingest.sentry.io/5749898',
19
- });
20
14
 
21
15
  AppRegistry.registerComponent('App', () => Video);
22
16
 
@@ -6,7 +6,7 @@ import SDKAppWrapper, {
6
6
  import SDKEvents from './src/utils/SdkEvents';
7
7
  import React from 'react';
8
8
  import * as RN from 'react-native-web';
9
- import './src/assets/font-styles.css';
9
+
10
10
  export * from 'customization-api';
11
11
  export * from 'customization-implementation';
12
12
 
@@ -53,18 +53,9 @@
53
53
  <key>NSCameraUsageDescription</key>
54
54
  <string>Camera access</string>
55
55
  <key>NSLocationWhenInUseUsageDescription</key>
56
- <string/>
56
+ <string></string>
57
57
  <key>NSMicrophoneUsageDescription</key>
58
58
  <string>Mic access</string>
59
- <key>UIAppFonts</key>
60
- <array>
61
- <string>SourceSansPro-Regular.ttf</string>
62
- <string>icomoon.ttf</string>
63
- </array>
64
- <key>UIBackgroundModes</key>
65
- <array>
66
- <string>audio</string>
67
- </array>
68
59
  <key>UILaunchStoryboardName</key>
69
60
  <string>LaunchScreen</string>
70
61
  <key>UIRequiredDeviceCapabilities</key>
@@ -74,12 +65,8 @@
74
65
  <key>UISupportedInterfaceOrientations</key>
75
66
  <array>
76
67
  <string>UIInterfaceOrientationPortrait</string>
77
- </array>
78
- <key>UISupportedInterfaceOrientations~ipad</key>
79
- <array>
80
68
  <string>UIInterfaceOrientationLandscapeLeft</string>
81
69
  <string>UIInterfaceOrientationLandscapeRight</string>
82
- <string>UIInterfaceOrientationPortrait</string>
83
70
  </array>
84
71
  <key>UIViewControllerBasedStatusBarAppearance</key>
85
72
  <false/>
@@ -18,8 +18,6 @@
18
18
  65580BB1266EDC8000B310B6 /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65580BB0266EDC8000B310B6 /* File.swift */; };
19
19
  65580BB3266EDD6300B310B6 /* HelloWorld.entitlements in Resources */ = {isa = PBXBuildFile; fileRef = 65580BB2266EDCA400B310B6 /* HelloWorld.entitlements */; };
20
20
  81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
21
- 49B7B61E43464F098E87335F /* icomoon.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FF34150ABA37458FB48221FB /* icomoon.ttf */; };
22
- 76624C45E19C435BACC727C7 /* SourceSansPro-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = E72FF36D2A984B10BA9C6F91 /* SourceSansPro-Regular.ttf */; };
23
21
  /* End PBXBuildFile section */
24
22
 
25
23
  /* Begin PBXContainerItemProxy section */
@@ -58,8 +56,6 @@
58
56
  81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = HelloWorld/LaunchScreen.storyboard; sourceTree = "<group>"; };
59
57
  ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
60
58
  ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
61
- FF34150ABA37458FB48221FB /* icomoon.ttf */ = {isa = PBXFileReference; name = "icomoon.ttf"; path = "../src/assets/fonts/icomoon.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
62
- E72FF36D2A984B10BA9C6F91 /* SourceSansPro-Regular.ttf */ = {isa = PBXFileReference; name = "SourceSansPro-Regular.ttf"; path = "../src/assets/fonts/SourceSansPro-Regular.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
63
59
  /* End PBXFileReference section */
64
60
 
65
61
  /* Begin PBXFrameworksBuildPhase section */
@@ -152,7 +148,6 @@
152
148
  00E356EF1AD99517003FC87E /* HelloWorldTests */,
153
149
  83CBBA001A601CBA00E9B192 /* Products */,
154
150
  2D16E6871FA4F8E400B85C8A /* Frameworks */,
155
- A87D6475B3A64BB58397D417 /* Resources */,
156
151
  );
157
152
  indentWidth = 2;
158
153
  sourceTree = "<group>";
@@ -170,16 +165,6 @@
170
165
  name = Products;
171
166
  sourceTree = "<group>";
172
167
  };
173
- A87D6475B3A64BB58397D417 /* Resources */ = {
174
- isa = "PBXGroup";
175
- children = (
176
- FF34150ABA37458FB48221FB /* icomoon.ttf */,
177
- E72FF36D2A984B10BA9C6F91 /* SourceSansPro-Regular.ttf */,
178
- );
179
- name = Resources;
180
- sourceTree = "<group>";
181
- path = "";
182
- };
183
168
  /* End PBXGroup section */
184
169
 
185
170
  /* Begin PBXNativeTarget section */
@@ -319,8 +304,6 @@
319
304
  65580BB3266EDD6300B310B6 /* HelloWorld.entitlements in Resources */,
320
305
  81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
321
306
  13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
322
- 49B7B61E43464F098E87335F /* icomoon.ttf in Resources */,
323
- 76624C45E19C435BACC727C7 /* SourceSansPro-Regular.ttf in Resources */,
324
307
  );
325
308
  runOnlyForDeploymentPostprocessing = 0;
326
309
  };
@@ -16,7 +16,7 @@
16
16
  * @format
17
17
  */
18
18
 
19
- const blacklist = require('metro-config/src/defaults/exclusionList');
19
+ const blacklist = require('metro-config/src/defaults/blacklist');
20
20
 
21
21
  // blacklist is a function that takes an array of regexes and combines
22
22
  // them with the default blacklist to return a single regex.
@@ -49,15 +49,10 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "@apollo/client": "3.3.20",
52
- "@gorhom/bottom-sheet": "4.4.5",
53
- "@react-native-async-storage/async-storage": "1.17.11",
52
+ "@react-native-community/async-storage": "1.12.1",
54
53
  "@react-native-community/checkbox": "0.4.2",
55
54
  "@react-native-community/clipboard": "1.5.1",
56
- "@sentry/react": "6.5.1",
57
- "@sentry/react-native": "2.4.3",
58
- "@sentry/tracing": "6.2.1",
59
- "@supersami/rn-foreground-service": "^1.1.1",
60
- "agora-react-native-rtm": "1.5.1",
55
+ "agora-react-native-rtm": "1.5.0",
61
56
  "agora-rtc-sdk-ng": "4.14.0",
62
57
  "agora-rtm-sdk": "1.4.3-203",
63
58
  "electron-log": "4.3.5",
@@ -68,26 +63,19 @@
68
63
  "nanoevents": "7.0.1",
69
64
  "nanoid": "4.0.0",
70
65
  "nosleep.js": "0.12.0",
71
- "react": "17.0.1",
72
- "react-dom": "17.0.1",
66
+ "react": "16.13.1",
67
+ "react-dom": "16.13.1",
73
68
  "react-is": "18.0.0",
74
- "react-native": "0.64",
69
+ "react-native": "0.63.5",
75
70
  "react-native-agora": "3.7.1",
76
- "react-native-gesture-handler": "2.8.0",
77
71
  "react-native-hyperlink": "0.0.19",
78
72
  "react-native-inappbrowser-reborn": "3.5.1",
79
73
  "react-native-keep-awake": "4.0.0",
80
74
  "react-native-keyboard-manager": "6.5.4-1",
81
- "react-native-reanimated": "2.12.0",
82
75
  "react-native-responsive-fontsize": "0.5.1",
83
- "react-native-svg": "13.6.0",
84
- "react-native-vector-icons": "9.2.0",
85
- "react-native-walkthrough-tooltip": "1.4.0",
86
76
  "react-native-web": "0.14.13",
87
77
  "react-router-dom": "5.2.0",
88
- "react-router-native": "5.2.0",
89
- "react-spring-bottom-sheet": "3.4.1",
90
- "react-tooltip": "4.5.1"
78
+ "react-router-native": "5.2.0"
91
79
  },
92
80
  "devDependencies": {
93
81
  "@babel/core": "7.14.3",
@@ -116,7 +104,6 @@
116
104
  "babel-plugin-module-resolver": "4.1.0",
117
105
  "babel-plugin-transform-define": "2.0.1",
118
106
  "cross-env": "7.0.3",
119
- "css-loader": "6.7.2",
120
107
  "del": "5.1.0",
121
108
  "electron": "16.0.1",
122
109
  "electron-builder": "23.6.0",
@@ -134,8 +121,7 @@
134
121
  "prettier": "2.3.1",
135
122
  "react-devtools-electron": "4.7.0",
136
123
  "react-refresh": "0.12.0",
137
- "react-test-renderer": "17.0.1",
138
- "style-loader": "3.3.1",
124
+ "react-test-renderer": "16.13.1",
139
125
  "ts-loader": "^8.3.0",
140
126
  "typescript": "3.9.9",
141
127
  "webpack": "5.72.0",