@100mslive/react-native-hms 1.6.1 → 1.7.0

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 (216) hide show
  1. package/android/build.gradle +15 -7
  2. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +14 -15
  3. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +248 -0
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +101 -0
  5. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +10 -5
  6. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +0 -14
  7. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +90 -106
  8. package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -1
  9. package/android/src/main/res/layout/player_view.xml +9 -0
  10. package/ios/HMSDecoder.swift +4 -4
  11. package/ios/HMSHLSPlayerManager.m +22 -0
  12. package/ios/HMSHLSPlayerManager.swift +368 -0
  13. package/ios/HMSManager.m +1 -2
  14. package/ios/HMSManager.swift +22 -16
  15. package/ios/HMSRNSDK.swift +34 -85
  16. package/lib/commonjs/classes/HMSEncoder.js +12 -4
  17. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  18. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  19. package/lib/commonjs/classes/HMSMessage.js +2 -1
  20. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  21. package/lib/commonjs/classes/HMSPeer.js +55 -20
  22. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  23. package/lib/commonjs/classes/HMSPeerUpdate.js +1 -1
  24. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  25. package/lib/commonjs/classes/HMSPeersCache.js +30 -38
  26. package/lib/commonjs/classes/HMSPeersCache.js.map +1 -1
  27. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
  28. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  29. package/lib/commonjs/classes/HMSSDK.js +36 -33
  30. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  31. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +147 -0
  32. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -0
  33. package/lib/commonjs/components/HMSHLSPlayer/RCTHMSHLSPlayer.js +12 -0
  34. package/lib/commonjs/components/HMSHLSPlayer/RCTHMSHLSPlayer.js.map +1 -0
  35. package/lib/commonjs/components/HMSHLSPlayer/hooks.js +71 -0
  36. package/lib/commonjs/components/HMSHLSPlayer/hooks.js.map +1 -0
  37. package/lib/commonjs/components/HMSHLSPlayer/index.js +63 -0
  38. package/lib/commonjs/components/HMSHLSPlayer/index.js.map +1 -0
  39. package/lib/commonjs/index.js +38 -0
  40. package/lib/commonjs/index.js.map +1 -1
  41. package/lib/commonjs/stores/hls-player-playback-slice.js +23 -0
  42. package/lib/commonjs/stores/hls-player-playback-slice.js.map +1 -0
  43. package/lib/commonjs/stores/hls-player-stats-store.js +36 -0
  44. package/lib/commonjs/stores/hls-player-stats-store.js.map +1 -0
  45. package/lib/commonjs/stores/hms-store.js +16 -0
  46. package/lib/commonjs/stores/hms-store.js.map +1 -0
  47. package/lib/commonjs/stores/types.js +6 -0
  48. package/lib/commonjs/stores/types.js.map +1 -0
  49. package/lib/commonjs/types.js +36 -0
  50. package/lib/commonjs/types.js.map +1 -0
  51. package/lib/module/classes/HMSEncoder.js +12 -4
  52. package/lib/module/classes/HMSEncoder.js.map +1 -1
  53. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  54. package/lib/module/classes/HMSMessage.js +2 -1
  55. package/lib/module/classes/HMSMessage.js.map +1 -1
  56. package/lib/module/classes/HMSPeer.js +55 -20
  57. package/lib/module/classes/HMSPeer.js.map +1 -1
  58. package/lib/module/classes/HMSPeerUpdate.js +1 -1
  59. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  60. package/lib/module/classes/HMSPeersCache.js +30 -38
  61. package/lib/module/classes/HMSPeersCache.js.map +1 -1
  62. package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
  63. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  64. package/lib/module/classes/HMSSDK.js +36 -33
  65. package/lib/module/classes/HMSSDK.js.map +1 -1
  66. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +138 -0
  67. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -0
  68. package/lib/module/components/HMSHLSPlayer/RCTHMSHLSPlayer.js +4 -0
  69. package/lib/module/components/HMSHLSPlayer/RCTHMSHLSPlayer.js.map +1 -0
  70. package/lib/module/components/HMSHLSPlayer/hooks.js +56 -0
  71. package/lib/module/components/HMSHLSPlayer/hooks.js.map +1 -0
  72. package/lib/module/components/HMSHLSPlayer/index.js +3 -0
  73. package/lib/module/components/HMSHLSPlayer/index.js.map +1 -0
  74. package/lib/module/index.js +7 -0
  75. package/lib/module/index.js.map +1 -1
  76. package/lib/module/stores/hls-player-playback-slice.js +16 -0
  77. package/lib/module/stores/hls-player-playback-slice.js.map +1 -0
  78. package/lib/module/stores/hls-player-stats-store.js +29 -0
  79. package/lib/module/stores/hls-player-stats-store.js.map +1 -0
  80. package/lib/module/stores/hms-store.js +9 -0
  81. package/lib/module/stores/hms-store.js.map +1 -0
  82. package/lib/module/stores/types.js +2 -0
  83. package/lib/module/stores/types.js.map +1 -0
  84. package/lib/module/types.js +32 -0
  85. package/lib/module/types.js.map +1 -0
  86. package/lib/typescript/classes/HMSEncoder.d.ts +1 -0
  87. package/lib/typescript/classes/HMSLocalPeer.d.ts +0 -1
  88. package/lib/typescript/classes/HMSMessage.d.ts +2 -0
  89. package/lib/typescript/classes/HMSPeer.d.ts +10 -5
  90. package/lib/typescript/classes/HMSPeersCache.d.ts +17 -2
  91. package/lib/typescript/classes/HMSRTMPConfig.d.ts +2 -2
  92. package/lib/typescript/classes/HMSRemotePeer.d.ts +0 -1
  93. package/lib/typescript/classes/HMSSDK.d.ts +12 -17
  94. package/lib/typescript/components/HMSHLSPlayer/HMSHLSPlayer.d.ts +21 -0
  95. package/lib/typescript/components/HMSHLSPlayer/RCTHMSHLSPlayer.d.ts +19 -0
  96. package/lib/typescript/components/HMSHLSPlayer/hooks.d.ts +17 -0
  97. package/lib/typescript/components/HMSHLSPlayer/index.d.ts +2 -0
  98. package/lib/typescript/index.d.ts +3 -0
  99. package/lib/typescript/stores/hls-player-playback-slice.d.ts +5 -0
  100. package/lib/typescript/stores/hls-player-stats-store.d.ts +9 -0
  101. package/lib/typescript/stores/hms-store.d.ts +9 -0
  102. package/lib/typescript/stores/types.d.ts +25 -0
  103. package/lib/typescript/types.d.ts +63 -0
  104. package/package.json +10 -5
  105. package/react-native-hms.podspec +1 -0
  106. package/sdk-versions.json +3 -2
  107. package/src/classes/HMSEncoder.ts +15 -3
  108. package/src/classes/HMSLocalPeer.ts +0 -1
  109. package/src/classes/HMSMessage.ts +3 -1
  110. package/src/classes/HMSPeer.ts +96 -48
  111. package/src/classes/HMSPeerUpdate.ts +4 -4
  112. package/src/classes/HMSPeersCache.ts +53 -40
  113. package/src/classes/HMSRTMPConfig.ts +2 -2
  114. package/src/classes/HMSRemotePeer.ts +0 -1
  115. package/src/classes/HMSSDK.tsx +59 -47
  116. package/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx +235 -0
  117. package/src/components/HMSHLSPlayer/RCTHMSHLSPlayer.ts +38 -0
  118. package/src/components/HMSHLSPlayer/hooks.ts +100 -0
  119. package/src/components/HMSHLSPlayer/index.ts +9 -0
  120. package/src/index.ts +8 -0
  121. package/src/stores/hls-player-playback-slice.ts +25 -0
  122. package/src/stores/hls-player-stats-store.ts +37 -0
  123. package/src/stores/hms-store.ts +11 -0
  124. package/src/stores/types.ts +49 -0
  125. package/src/types.ts +119 -0
  126. package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
  127. package/android/.gradle/6.9/fileChanges/last-build.bin +0 -0
  128. package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
  129. package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
  130. package/android/.gradle/6.9/gc.properties +0 -0
  131. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  132. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  133. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  134. package/android/.gradle/checksums/checksums.lock +0 -0
  135. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  136. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  137. package/android/.gradle/vcs-1/gc.properties +0 -0
  138. package/android/.idea/compiler.xml +0 -6
  139. package/android/.idea/gradle.xml +0 -18
  140. package/android/.idea/jarRepositories.xml +0 -50
  141. package/android/.idea/libraries/Gradle__androidx_activity_activity_1_2_4_aar.xml +0 -16
  142. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_3_0.xml +0 -11
  143. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml +0 -13
  144. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_4_1_aar.xml +0 -16
  145. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_4_1_aar.xml +0 -13
  146. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +0 -11
  147. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +0 -13
  148. package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +0 -16
  149. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +0 -11
  150. package/android/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_1_3_aar.xml +0 -13
  151. package/android/.idea/libraries/Gradle__androidx_core_core_1_7_0_aar.xml +0 -16
  152. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -13
  153. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -13
  154. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -16
  155. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_3_6_aar.xml +0 -16
  156. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -13
  157. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_4_0.xml +0 -11
  158. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +0 -13
  159. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml +0 -13
  160. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_4_0_aar.xml +0 -13
  161. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_3_1_aar.xml +0 -13
  162. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml +0 -13
  163. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -13
  164. package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml +0 -13
  165. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -16
  166. package/android/.idea/libraries/Gradle__androidx_tracing_tracing_1_1_0_aar.xml +0 -13
  167. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +0 -13
  168. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +0 -13
  169. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml +0 -13
  170. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -13
  171. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_0_3_0_aar.xml +0 -14
  172. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +0 -15
  173. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +0 -18
  174. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +0 -18
  175. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +0 -18
  176. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +0 -18
  177. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +0 -15
  178. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +0 -15
  179. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +0 -15
  180. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +0 -15
  181. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +0 -15
  182. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +0 -15
  183. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +0 -15
  184. package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +0 -15
  185. package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml +0 -13
  186. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_71_0_rc_0_debug_aar.xml +0 -14
  187. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_4.xml +0 -13
  188. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_4.xml +0 -13
  189. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_4_aar.xml +0 -14
  190. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +0 -13
  191. package/android/.idea/libraries/Gradle__com_github_100mslive_android_sdk_lib_2_5_1_aar.xml +0 -10
  192. package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m104_hms_1_3_aar.xml +0 -10
  193. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +0 -13
  194. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_2.xml +0 -13
  195. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_2.xml +0 -13
  196. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +0 -13
  197. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
  198. package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +0 -13
  199. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +0 -13
  200. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_6_10.xml +0 -13
  201. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_10.xml +0 -13
  202. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_10.xml +0 -13
  203. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_10.xml +0 -13
  204. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_6_0.xml +0 -13
  205. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_6_0.xml +0 -13
  206. package/android/.idea/misc.xml +0 -9
  207. package/android/.idea/modules/android.androidTest.iml +0 -203
  208. package/android/.idea/modules/android.iml +0 -40
  209. package/android/.idea/modules/android.main.iml +0 -199
  210. package/android/.idea/modules/android.unitTest.iml +0 -197
  211. package/android/.idea/modules.xml +0 -11
  212. package/android/.idea/sonarlint/issuestore/3/c/3c46088b6add3088181589d8ed726652742b6221 +0 -5
  213. package/android/.idea/sonarlint/issuestore/a/8/a8c9f5ddd88723818e51ae3cf8693d02355a8691 +0 -0
  214. package/android/.idea/sonarlint/issuestore/f/0/f07866736216be0ee2aba49e392191aeae700a35 +0 -0
  215. package/android/.idea/sonarlint/issuestore/index.pb +0 -7
  216. package/android/.idea/vcs.xml +0 -6
@@ -2,9 +2,9 @@ package com.reactnativehmssdk
2
2
 
3
3
  import android.content.Intent
4
4
  import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
5
- import android.util.Log
6
5
  import com.facebook.react.bridge.*
7
6
  import com.facebook.react.bridge.UiThreadUtil.runOnUiThread
7
+ import com.google.gson.JsonElement
8
8
  import kotlinx.coroutines.launch
9
9
  import live.hms.video.audio.HMSAudioManager
10
10
  import live.hms.video.connection.stats.*
@@ -150,6 +150,13 @@ class HMSRNSDK(
150
150
  return data
151
151
  }
152
152
 
153
+ fun emitHMSMessageSuccess(hmsMessage: HMSMessage): ReadableMap {
154
+ val data: WritableMap = Arguments.createMap()
155
+ data.putString("message", hmsMessage.message)
156
+ data.putString("messageId", hmsMessage.messageId)
157
+ return data
158
+ }
159
+
153
160
  fun preview(credentials: ReadableMap) {
154
161
  if (previewInProgress) {
155
162
  self.emitCustomError("PREVIEW_IS_IN_PROGRESS")
@@ -179,13 +186,8 @@ class HMSRNSDK(
179
186
  if (eventsEnableStatus["3"] != true) {
180
187
  return
181
188
  }
182
- if (type === HMSPeerUpdate.AUDIO_TOGGLED ||
183
- type === HMSPeerUpdate.VIDEO_TOGGLED ||
184
- type === HMSPeerUpdate.BECAME_DOMINANT_SPEAKER ||
185
- type === HMSPeerUpdate.NO_DOMINANT_SPEAKER ||
186
- type === HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER ||
187
- type === HMSPeerUpdate.STARTED_SPEAKING ||
188
- type === HMSPeerUpdate.STOPPED_SPEAKING
189
+ if (type === HMSPeerUpdate.BECAME_DOMINANT_SPEAKER ||
190
+ type === HMSPeerUpdate.NO_DOMINANT_SPEAKER
189
191
  ) {
190
192
  return
191
193
  }
@@ -314,13 +316,8 @@ class HMSRNSDK(
314
316
  if (eventsEnableStatus["3"] != true) {
315
317
  return
316
318
  }
317
- if (type === HMSPeerUpdate.AUDIO_TOGGLED ||
318
- type === HMSPeerUpdate.VIDEO_TOGGLED ||
319
- type === HMSPeerUpdate.BECAME_DOMINANT_SPEAKER ||
320
- type === HMSPeerUpdate.NO_DOMINANT_SPEAKER ||
321
- type === HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER ||
322
- type === HMSPeerUpdate.STARTED_SPEAKING ||
323
- type === HMSPeerUpdate.STOPPED_SPEAKING
319
+ if (type === HMSPeerUpdate.BECAME_DOMINANT_SPEAKER ||
320
+ type === HMSPeerUpdate.NO_DOMINANT_SPEAKER
324
321
  ) {
325
322
  return
326
323
  }
@@ -377,6 +374,7 @@ class HMSRNSDK(
377
374
 
378
375
  data.putMap("sender", HMSDecoder.getHmsPeerSubset(message.sender))
379
376
  data.putString("message", message.message)
377
+ data.putString("messageId", message.messageId)
380
378
  data.putString("type", message.type)
381
379
  data.putString("time", message.serverReceiveTime.toString())
382
380
  data.putString("id", id)
@@ -670,7 +668,7 @@ class HMSRNSDK(
670
668
  callback?.reject(error.code.toString(), error.message)
671
669
  }
672
670
  override fun onSuccess(hmsMessage: HMSMessage) {
673
- callback?.resolve(emitHMSSuccess(hmsMessage))
671
+ callback?.resolve(emitHMSMessageSuccess(hmsMessage))
674
672
  }
675
673
  },
676
674
  )
@@ -702,7 +700,7 @@ class HMSRNSDK(
702
700
  callback?.reject(error.code.toString(), error.message)
703
701
  }
704
702
  override fun onSuccess(hmsMessage: HMSMessage) {
705
- callback?.resolve(emitHMSSuccess(hmsMessage))
703
+ callback?.resolve(emitHMSMessageSuccess(hmsMessage))
706
704
  }
707
705
  },
708
706
  )
@@ -733,7 +731,7 @@ class HMSRNSDK(
733
731
  callback?.reject(error.code.toString(), error.message)
734
732
  }
735
733
  override fun onSuccess(hmsMessage: HMSMessage) {
736
- callback?.resolve(emitHMSSuccess(hmsMessage))
734
+ callback?.resolve(emitHMSMessageSuccess(hmsMessage))
737
735
  }
738
736
  },
739
737
  )
@@ -762,24 +760,30 @@ class HMSRNSDK(
762
760
 
763
761
  if (peerId !== null && role !== null) {
764
762
  val hmsPeer = HMSHelper.getPeerFromPeerId(peerId, hmsSDK?.getRoom())
763
+ if (hmsPeer == null) {
764
+ callback?.reject("4000", "PEER_NOT_FOUND")
765
+ return
766
+ }
765
767
  val hmsRole = HMSHelper.getRoleFromRoleName(role, hmsSDK?.getRoles())
766
-
767
- if (hmsRole != null && hmsPeer != null) {
768
- hmsSDK?.changeRole(
769
- hmsPeer,
770
- hmsRole,
771
- force,
772
- object : HMSActionResultListener {
773
- override fun onSuccess() {
774
- callback?.resolve(emitHMSSuccess())
775
- }
776
- override fun onError(error: HMSException) {
777
- self.emitHMSError(error)
778
- callback?.reject(error.code.toString(), error.message)
779
- }
780
- },
781
- )
768
+ if (hmsRole == null) {
769
+ callback?.reject("4000", "ROLE_NOT_FOUND")
770
+ return
782
771
  }
772
+
773
+ hmsSDK?.changeRole(
774
+ hmsPeer,
775
+ hmsRole,
776
+ force,
777
+ object : HMSActionResultListener {
778
+ override fun onSuccess() {
779
+ callback?.resolve(emitHMSSuccess())
780
+ }
781
+ override fun onError(error: HMSException) {
782
+ self.emitHMSError(error)
783
+ callback?.reject(error.code.toString(), error.message)
784
+ }
785
+ },
786
+ )
783
787
  }
784
788
  } else {
785
789
  val errorMessage = "changeRole: $requiredKeys"
@@ -801,24 +805,30 @@ class HMSRNSDK(
801
805
 
802
806
  if (peerId !== null && role !== null) {
803
807
  val hmsPeer = HMSHelper.getPeerFromPeerId(peerId, hmsSDK?.getRoom())
808
+ if (hmsPeer == null) {
809
+ promise?.reject("4000", "PEER_NOT_FOUND")
810
+ return
811
+ }
804
812
  val hmsRole = HMSHelper.getRoleFromRoleName(role, hmsSDK?.getRoles())
805
-
806
- if (hmsRole != null && hmsPeer != null) {
807
- hmsSDK?.changeRoleOfPeer(
808
- hmsPeer,
809
- hmsRole,
810
- force,
811
- object : HMSActionResultListener {
812
- override fun onSuccess() {
813
- promise?.resolve(emitHMSSuccess())
814
- }
815
- override fun onError(error: HMSException) {
816
- self.emitHMSError(error)
817
- promise?.reject(error.code.toString(), error.message)
818
- }
819
- },
820
- )
813
+ if (hmsRole == null) {
814
+ promise?.reject("4000", "ROLE_NOT_FOUND")
815
+ return
821
816
  }
817
+
818
+ hmsSDK?.changeRoleOfPeer(
819
+ hmsPeer,
820
+ hmsRole,
821
+ force,
822
+ object : HMSActionResultListener {
823
+ override fun onSuccess() {
824
+ promise?.resolve(emitHMSSuccess())
825
+ }
826
+ override fun onError(error: HMSException) {
827
+ self.emitHMSError(error)
828
+ promise?.reject(error.code.toString(), error.message)
829
+ }
830
+ },
831
+ )
822
832
  }
823
833
  } else {
824
834
  val errorMessage = "changeRoleOfPeer: $requiredKeys"
@@ -1258,7 +1268,7 @@ class HMSRNSDK(
1258
1268
  val requiredKeys =
1259
1269
  HMSHelper.getUnavailableRequiredKey(
1260
1270
  data,
1261
- arrayOf(Pair("record", "Boolean"), Pair("meetingURL", "String")),
1271
+ arrayOf(Pair("record", "Boolean")),
1262
1272
  )
1263
1273
  if (requiredKeys === null) {
1264
1274
  val config = HMSHelper.getRtmpConfig(data)
@@ -1533,50 +1543,6 @@ class HMSRNSDK(
1533
1543
  }
1534
1544
  }
1535
1545
 
1536
- @Deprecated("SessionMetaData APIs has been deprecated in favour of Session Store APIs", ReplaceWith("setSessionMetadataForKey"), DeprecationLevel.WARNING)
1537
- fun setSessionMetaData(data: ReadableMap, callback: Promise?) {
1538
- if (data.hasKey("sessionMetaData")) {
1539
- val sessionMetaData = data.getString("sessionMetaData")
1540
- hmsSDK?.setSessionMetaData(
1541
- sessionMetaData,
1542
- object : HMSActionResultListener {
1543
- override fun onSuccess() {
1544
- callback?.resolve(emitHMSSuccess())
1545
- }
1546
-
1547
- override fun onError(error: HMSException) {
1548
- callback?.reject(error.code.toString(), error.message)
1549
- self.emitHMSError(error)
1550
- }
1551
- },
1552
- )
1553
- } else {
1554
- val errorMessage = "setSessionMetaData: sessionMetaData_Is_Required"
1555
- self.emitRequiredKeysError(errorMessage)
1556
- rejectCallback(callback, errorMessage)
1557
- }
1558
- }
1559
-
1560
- @Deprecated("SessionMetaData APIs has been deprecated in favour of Session Store APIs", ReplaceWith("getSessionMetadataForKey"), DeprecationLevel.WARNING)
1561
- fun getSessionMetaData(callback: Promise?) {
1562
- hmsSDK?.getSessionMetaData(
1563
- object : HMSSessionMetadataListener {
1564
- override fun onSuccess(sessionMetadata: Any?) {
1565
- if (sessionMetadata is String?) {
1566
- callback?.resolve(sessionMetadata)
1567
- } else {
1568
- callback?.reject("6002", "Session Store: Unsupported type received, only String type is supported")
1569
- }
1570
- }
1571
-
1572
- override fun onError(error: HMSException) {
1573
- callback?.reject(error.code.toString(), error.message)
1574
- self.emitHMSError(error)
1575
- }
1576
- },
1577
- )
1578
- }
1579
-
1580
1546
  fun getPeerProperty(data: ReadableMap): WritableMap? {
1581
1547
  val requiredKeys =
1582
1548
  HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("peerId", "String"), Pair("property", "String")))
@@ -1985,11 +1951,20 @@ class HMSRNSDK(
1985
1951
  override fun onError(error: HMSException) {
1986
1952
  promise?.reject(error.code.toString(), error.message)
1987
1953
  }
1988
- override fun onSuccess(sessionMetadata: Any?) {
1989
- if (sessionMetadata is String?) {
1990
- promise?.resolve(sessionMetadata)
1991
- } else {
1992
- promise?.reject("6002", "Session Store: Unsupported type received for '$key' key, only String type is supported")
1954
+
1955
+ override fun onSuccess(sessionMetadata: JsonElement?) {
1956
+ sessionMetadata.let { sm ->
1957
+ if (sm == null) {
1958
+ promise?.resolve(null)
1959
+ } else {
1960
+ if (sm.isJsonPrimitive) {
1961
+ promise?.resolve(sm.asString)
1962
+ } else if (sm.isJsonNull) {
1963
+ promise?.resolve(null)
1964
+ } else {
1965
+ promise?.resolve(sm.toString())
1966
+ }
1967
+ }
1993
1968
  }
1994
1969
  }
1995
1970
  },
@@ -2015,16 +1990,25 @@ class HMSRNSDK(
2015
1990
  }
2016
1991
 
2017
1992
  val keyChangeListener = object : HMSKeyChangeListener {
2018
- override fun onKeyChanged(key: String, value: Any?) {
1993
+ override fun onKeyChanged(key: String, value: JsonElement?) {
2019
1994
  val map = Arguments.createMap()
2020
1995
  map.putString("id", id)
2021
1996
  map.putString("key", key)
2022
- if (value is String?) {
2023
- map.putString("value", value)
2024
- } else {
2025
- Log.e("HMSRNSDK", "Session Store: '$value' value received for '$key' key, expected only NullableString type for value")
2026
- map.putString("value", null) // resetting value to `null`, as the current type is not supported
1997
+
1998
+ value.let { sm ->
1999
+ if (sm == null) {
2000
+ map.putString("value", null)
2001
+ } else {
2002
+ if (sm.isJsonPrimitive) {
2003
+ map.putString("value", sm.asString)
2004
+ } else if (sm.isJsonNull) {
2005
+ map.putString("value", null)
2006
+ } else {
2007
+ map.putString("value", sm.toString())
2008
+ }
2009
+ }
2027
2010
  }
2011
+
2028
2012
  delegate.emitEvent("ON_SESSION_STORE_CHANGED", map)
2029
2013
  }
2030
2014
  }
@@ -11,6 +11,6 @@ class HmssdkPackage : ReactPackage {
11
11
  }
12
12
 
13
13
  override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
14
- return listOf<ViewManager<*, *>>(HMSSDKViewManager())
14
+ return listOf<ViewManager<*, *>>(HMSSDKViewManager(), HMSHLSPlayerManager())
15
15
  }
16
16
  }
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+
3
+ <androidx.media3.ui.PlayerView xmlns:android="http://schemas.android.com/apk/res/android"
4
+ xmlns:tools="http://schemas.android.com/tools"
5
+ android:id="@+id/hls_view"
6
+ android:layout_width="match_parent"
7
+ android:layout_height="wrap_content"
8
+ android:layout_gravity="center"
9
+ />
@@ -90,10 +90,10 @@ class HMSDecoder: NSObject {
90
90
  switch peerUpdateType {
91
91
  case .peerJoined: return "0"
92
92
  case .peerLeft: return "1"
93
- case .roleUpdated: return "9"
94
- case .nameUpdated: return "10"
95
- case .metadataUpdated: return "11"
96
- case .networkQualityUpdated: return "12"
93
+ case .roleUpdated: return "4"
94
+ case .nameUpdated: return "5"
95
+ case .metadataUpdated: return "6"
96
+ case .networkQualityUpdated: return "7"
97
97
  default: return nil
98
98
  }
99
99
  }
@@ -0,0 +1,22 @@
1
+
2
+ #import "React/RCTViewManager.h"
3
+ #import <Foundation/Foundation.h>
4
+
5
+ @interface RCT_EXTERN_MODULE(HMSHLSPlayerManager, RCTViewManager)
6
+
7
+ RCT_EXPORT_VIEW_PROPERTY(url, NSString);
8
+ RCT_EXPORT_VIEW_PROPERTY(enableStats, BOOL);
9
+ RCT_EXPORT_VIEW_PROPERTY(enableControls, BOOL);
10
+ RCT_EXPORT_VIEW_PROPERTY(onHmsHlsPlaybackEvent, RCTDirectEventBlock);
11
+ RCT_EXPORT_VIEW_PROPERTY(onHmsHlsStatsEvent, RCTDirectEventBlock);
12
+
13
+ RCT_EXTERN_METHOD(play:(nonnull NSNumber *)node url:(nullable NSString *)url)
14
+ RCT_EXTERN_METHOD(stop:(nonnull NSNumber *)node)
15
+ RCT_EXTERN_METHOD(pause:(nonnull NSNumber *)node)
16
+ RCT_EXTERN_METHOD(resume:(nonnull NSNumber *)node)
17
+ RCT_EXTERN_METHOD(seekToLivePosition:(nonnull NSNumber *)node)
18
+ RCT_EXTERN_METHOD(seekForward:(nonnull NSNumber *)node seconds:(nonnull NSNumber *)seconds)
19
+ RCT_EXTERN_METHOD(seekBackward:(nonnull NSNumber *)node seconds:(nonnull NSNumber *)seconds)
20
+ RCT_EXTERN_METHOD(setVolume:(nonnull NSNumber *)node level:(nonnull NSNumber *)level)
21
+
22
+ @end