@100mslive/react-native-hms 1.10.4 → 1.10.5
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.
- package/android/build.gradle +9 -2
- package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +8 -0
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +38 -0
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +6 -4
- package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSInteractivityDecoder.kt +50 -25
- package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSRNInteractivityCenter.kt +69 -1
- package/ios/HMSConstants.swift +1 -0
- package/ios/HMSDecoder.swift +10 -2
- package/ios/HMSHLSPlayerManager.swift +4 -1
- package/ios/HMSInteractivityDecoder.swift +41 -0
- package/ios/HMSManager.m +12 -0
- package/ios/HMSManager.swift +20 -1
- package/ios/HMSRNInteractivityCenter.swift +41 -0
- package/lib/commonjs/classes/HMSInteractivityCenter.js +58 -4
- package/lib/commonjs/classes/HMSInteractivityCenter.js.map +1 -1
- package/lib/commonjs/classes/HMSInteractivityEncoder.js +6 -0
- package/lib/commonjs/classes/HMSInteractivityEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSPermissions.js +2 -0
- package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
- package/lib/commonjs/classes/whiteboard/HMSWhiteboard.js +6 -0
- package/lib/commonjs/classes/whiteboard/HMSWhiteboard.js.map +1 -0
- package/lib/commonjs/classes/whiteboard/HMSWhiteboardListenerActions.js +11 -0
- package/lib/commonjs/classes/whiteboard/HMSWhiteboardListenerActions.js.map +1 -0
- package/lib/commonjs/classes/whiteboard/HMSWhiteboardState.js +12 -0
- package/lib/commonjs/classes/whiteboard/HMSWhiteboardState.js.map +1 -0
- package/lib/commonjs/classes/whiteboard/HMSWhiteboardUpdateType.js +12 -0
- package/lib/commonjs/classes/whiteboard/HMSWhiteboardUpdateType.js.map +1 -0
- package/lib/commonjs/classes/whiteboard/index.js +39 -0
- package/lib/commonjs/classes/whiteboard/index.js.map +1 -0
- package/lib/commonjs/classes/whiteboard/registerCallbacks.js +26 -0
- package/lib/commonjs/classes/whiteboard/registerCallbacks.js.map +1 -0
- package/lib/commonjs/index.js +12 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSInteractivityCenter.js +58 -4
- package/lib/module/classes/HMSInteractivityCenter.js.map +1 -1
- package/lib/module/classes/HMSInteractivityEncoder.js +6 -0
- package/lib/module/classes/HMSInteractivityEncoder.js.map +1 -1
- package/lib/module/classes/HMSPermissions.js +2 -0
- package/lib/module/classes/HMSPermissions.js.map +1 -1
- package/lib/module/classes/whiteboard/HMSWhiteboard.js +2 -0
- package/lib/module/classes/whiteboard/HMSWhiteboard.js.map +1 -0
- package/lib/module/classes/whiteboard/HMSWhiteboardListenerActions.js +5 -0
- package/lib/module/classes/whiteboard/HMSWhiteboardListenerActions.js.map +1 -0
- package/lib/module/classes/whiteboard/HMSWhiteboardState.js +6 -0
- package/lib/module/classes/whiteboard/HMSWhiteboardState.js.map +1 -0
- package/lib/module/classes/whiteboard/HMSWhiteboardUpdateType.js +6 -0
- package/lib/module/classes/whiteboard/HMSWhiteboardUpdateType.js.map +1 -0
- package/lib/module/classes/whiteboard/index.js +4 -0
- package/lib/module/classes/whiteboard/index.js.map +1 -0
- package/lib/module/classes/whiteboard/registerCallbacks.js +18 -0
- package/lib/module/classes/whiteboard/registerCallbacks.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSInteractivityCenter.d.ts +19 -2
- package/lib/typescript/classes/HMSInteractivityEncoder.d.ts +2 -0
- package/lib/typescript/classes/HMSPermissions.d.ts +7 -0
- package/lib/typescript/classes/whiteboard/HMSWhiteboard.d.ts +10 -0
- package/lib/typescript/classes/whiteboard/HMSWhiteboardListenerActions.d.ts +3 -0
- package/lib/typescript/classes/whiteboard/HMSWhiteboardState.d.ts +4 -0
- package/lib/typescript/classes/whiteboard/HMSWhiteboardUpdateType.d.ts +4 -0
- package/lib/typescript/classes/whiteboard/index.d.ts +3 -0
- package/lib/typescript/classes/whiteboard/registerCallbacks.d.ts +8 -0
- package/lib/typescript/index.d.ts +1 -0
- package/package.json +1 -1
- package/sdk-versions.json +2 -2
- package/src/classes/HMSInteractivityCenter.ts +89 -10
- package/src/classes/HMSInteractivityEncoder.ts +8 -0
- package/src/classes/HMSPermissions.ts +9 -0
- package/src/classes/whiteboard/HMSWhiteboard.tsx +16 -0
- package/src/classes/whiteboard/HMSWhiteboardListenerActions.ts +3 -0
- package/src/classes/whiteboard/HMSWhiteboardState.tsx +4 -0
- package/src/classes/whiteboard/HMSWhiteboardUpdateType.tsx +4 -0
- package/src/classes/whiteboard/index.ts +3 -0
- package/src/classes/whiteboard/registerCallbacks.ts +34 -0
- package/src/index.ts +1 -0
package/android/build.gradle
CHANGED
|
@@ -12,7 +12,14 @@ buildscript {
|
|
|
12
12
|
if (ext.has("kotlinVersion")) {
|
|
13
13
|
ext.kotlinVersion()
|
|
14
14
|
} else {
|
|
15
|
-
ext.safeExtGet("kotlinVersion", "1.
|
|
15
|
+
ext.safeExtGet("kotlinVersion", "1.7.20")
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
ext.getKotlinGradlePluginVersion = {
|
|
19
|
+
if (ext.has("kotlinGradlePluginVersion")) {
|
|
20
|
+
ext.kotlinGradlePluginVersion()
|
|
21
|
+
} else {
|
|
22
|
+
ext.safeExtGet("kotlinGradlePluginVersion", "1.8.0")
|
|
16
23
|
}
|
|
17
24
|
}
|
|
18
25
|
if (project == rootProject) {
|
|
@@ -30,7 +37,7 @@ buildscript {
|
|
|
30
37
|
mavenCentral()
|
|
31
38
|
}
|
|
32
39
|
dependencies {
|
|
33
|
-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${
|
|
40
|
+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getKotlinGradlePluginVersion()}"
|
|
34
41
|
}
|
|
35
42
|
}
|
|
36
43
|
|
|
@@ -344,6 +344,14 @@ object HMSDecoder {
|
|
|
344
344
|
permissions.putBoolean("changeRole", hmsPermissions.changeRole)
|
|
345
345
|
permissions.putBoolean("pollRead", hmsPermissions.pollRead)
|
|
346
346
|
permissions.putBoolean("pollWrite", hmsPermissions.pollWrite)
|
|
347
|
+
|
|
348
|
+
val whiteboardPermissionMap: WritableMap = Arguments.createMap()
|
|
349
|
+
hmsPermissions.whiteboard.let { whiteBoardPermission ->
|
|
350
|
+
whiteboardPermissionMap.putBoolean("admin", whiteBoardPermission.admin)
|
|
351
|
+
whiteboardPermissionMap.putBoolean("read", whiteBoardPermission.read)
|
|
352
|
+
whiteboardPermissionMap.putBoolean("write", whiteBoardPermission.write)
|
|
353
|
+
}
|
|
354
|
+
permissions.putMap("whiteboard", whiteboardPermissionMap)
|
|
347
355
|
}
|
|
348
356
|
return permissions
|
|
349
357
|
}
|
|
@@ -1458,6 +1458,44 @@ class HMSManager(reactContext: ReactApplicationContext) :
|
|
|
1458
1458
|
}
|
|
1459
1459
|
// endregion
|
|
1460
1460
|
|
|
1461
|
+
//region Whiteboard
|
|
1462
|
+
@ReactMethod
|
|
1463
|
+
fun startWhiteboard(
|
|
1464
|
+
data: ReadableMap,
|
|
1465
|
+
promise: Promise?,
|
|
1466
|
+
) {
|
|
1467
|
+
val rnSDK = HMSHelper.getHms(data, hmsCollection)
|
|
1468
|
+
rnSDK?.let { sdk ->
|
|
1469
|
+
sdk.interactivityCenter?.let { center ->
|
|
1470
|
+
center.startWhiteboard(data, promise)
|
|
1471
|
+
return
|
|
1472
|
+
}
|
|
1473
|
+
}
|
|
1474
|
+
promise?.reject(
|
|
1475
|
+
"6004",
|
|
1476
|
+
"HMS SDK not initialized",
|
|
1477
|
+
)
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
@ReactMethod
|
|
1481
|
+
fun stopWhiteboard(
|
|
1482
|
+
data: ReadableMap,
|
|
1483
|
+
promise: Promise?,
|
|
1484
|
+
) {
|
|
1485
|
+
val rnSDK = HMSHelper.getHms(data, hmsCollection)
|
|
1486
|
+
rnSDK?.let { sdk ->
|
|
1487
|
+
sdk.interactivityCenter?.let { center ->
|
|
1488
|
+
center.stopWhiteboard(promise)
|
|
1489
|
+
return
|
|
1490
|
+
}
|
|
1491
|
+
}
|
|
1492
|
+
promise?.reject(
|
|
1493
|
+
"6004",
|
|
1494
|
+
"HMS SDK not initialized",
|
|
1495
|
+
)
|
|
1496
|
+
}
|
|
1497
|
+
//endregion
|
|
1498
|
+
|
|
1461
1499
|
// region Noise Cancellation Plugin
|
|
1462
1500
|
@ReactMethod
|
|
1463
1501
|
fun enableNoiseCancellationPlugin(
|
|
@@ -256,9 +256,11 @@ class HMSRNSDK(
|
|
|
256
256
|
delegate.emitEvent("ON_PREVIEW", data)
|
|
257
257
|
}
|
|
258
258
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
259
|
+
override fun peerListUpdated(
|
|
260
|
+
addedPeers: ArrayList<HMSPeer>?,
|
|
261
|
+
removedPeers: ArrayList<HMSPeer>?,
|
|
262
|
+
) {
|
|
263
|
+
super.peerListUpdated(addedPeers, removedPeers)
|
|
262
264
|
if (eventsEnableStatus["ON_PEER_LIST_UPDATED"] != true) {
|
|
263
265
|
return
|
|
264
266
|
}
|
|
@@ -278,11 +280,11 @@ class HMSRNSDK(
|
|
|
278
280
|
}
|
|
279
281
|
}
|
|
280
282
|
|
|
283
|
+
data.putString("id", id)
|
|
281
284
|
data.putArray("addedPeers", addedPeersArray)
|
|
282
285
|
data.putArray("removedPeers", removedPeersArray)
|
|
283
286
|
delegate.emitEvent("ON_PEER_LIST_UPDATED", data)
|
|
284
287
|
}
|
|
285
|
-
*/
|
|
286
288
|
},
|
|
287
289
|
)
|
|
288
290
|
} else {
|
package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSInteractivityDecoder.kt
CHANGED
|
@@ -17,8 +17,12 @@ import live.hms.video.polls.network.HMSPollLeaderboardEntry
|
|
|
17
17
|
import live.hms.video.polls.network.HMSPollLeaderboardSummary
|
|
18
18
|
import live.hms.video.polls.network.PollLeaderboardResponse
|
|
19
19
|
import live.hms.video.polls.network.PollResultsDisplay
|
|
20
|
+
import live.hms.video.whiteboard.HMSWhiteboard
|
|
21
|
+
import live.hms.video.whiteboard.HMSWhiteboardUpdate
|
|
22
|
+
import live.hms.video.whiteboard.State
|
|
20
23
|
|
|
21
24
|
object HMSInteractivityDecoder {
|
|
25
|
+
//region poll methods
|
|
22
26
|
fun getPollUpdateType(hmsPollUpdateType: HMSPollUpdateType): Int {
|
|
23
27
|
return when (hmsPollUpdateType) {
|
|
24
28
|
HMSPollUpdateType.started -> 0
|
|
@@ -280,31 +284,6 @@ object HMSInteractivityDecoder {
|
|
|
280
284
|
return readableArray
|
|
281
285
|
}
|
|
282
286
|
|
|
283
|
-
/*
|
|
284
|
-
|
|
285
|
-
static func getHMSPollQuestionResponseResults(_ hmsPollQuestionResponseResults: [HMSPollQuestionResponseResult]) -> [[String: AnyHashable]] {
|
|
286
|
-
var results = [[String: AnyHashable]]()
|
|
287
|
-
|
|
288
|
-
hmsPollQuestionResponseResults.forEach { result in
|
|
289
|
-
results.append(getHMSPollQuestionResponseResult(result))
|
|
290
|
-
}
|
|
291
|
-
return results
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
static func getHMSPollQuestionResponseResult(_ hmsPollQuestionResponseResult: HMSPollQuestionResponseResult) -> [String: AnyHashable] {
|
|
295
|
-
var result: [String: AnyHashable] = [
|
|
296
|
-
"question": hmsPollQuestionResponseResult.question
|
|
297
|
-
]
|
|
298
|
-
if let correct = hmsPollQuestionResponseResult.correct {
|
|
299
|
-
result["correct"] = correct
|
|
300
|
-
}
|
|
301
|
-
if let error = hmsPollQuestionResponseResult.error {
|
|
302
|
-
result["error"] = error.localizedDescription
|
|
303
|
-
}
|
|
304
|
-
return result
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
*/
|
|
308
287
|
fun getHMSPollQuestionResponseResults(hmsPollQuestionResponseResults: PollAnswerResponse): WritableArray {
|
|
309
288
|
val results = Arguments.createArray()
|
|
310
289
|
|
|
@@ -410,4 +389,50 @@ object HMSInteractivityDecoder {
|
|
|
410
389
|
|
|
411
390
|
return result
|
|
412
391
|
}
|
|
392
|
+
//endregion
|
|
393
|
+
|
|
394
|
+
//region whiteboard methods
|
|
395
|
+
fun getHMSWhiteboard(hmsWhiteboard: HMSWhiteboard): WritableMap {
|
|
396
|
+
val data: WritableMap = Arguments.createMap()
|
|
397
|
+
|
|
398
|
+
data.putString("id", hmsWhiteboard.id)
|
|
399
|
+
data.putBoolean("isOwner", hmsWhiteboard.isOwner)
|
|
400
|
+
data.putString("state", getWhiteboardState(hmsWhiteboard.state))
|
|
401
|
+
hmsWhiteboard.title?.let { title ->
|
|
402
|
+
data.putString("title", title)
|
|
403
|
+
}
|
|
404
|
+
hmsWhiteboard.owner?.let { owner ->
|
|
405
|
+
data.putMap("owner", HMSDecoder.getHmsPeerSubset(owner))
|
|
406
|
+
}
|
|
407
|
+
data.putString("url", hmsWhiteboard.url)
|
|
408
|
+
return data
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
enum class JSWhiteboardState(val label: String) {
|
|
412
|
+
Start("STARTED"),
|
|
413
|
+
Stop("STOPPED"),
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
private fun getWhiteboardState(hmsWhiteboardState: State): String {
|
|
417
|
+
return when (hmsWhiteboardState) {
|
|
418
|
+
State.Started -> {
|
|
419
|
+
JSWhiteboardState.Start.label
|
|
420
|
+
}
|
|
421
|
+
State.Stopped -> {
|
|
422
|
+
JSWhiteboardState.Stop.label
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
fun getWhiteboardUpdateType(hmsWhiteboardUpdate: HMSWhiteboardUpdate): String {
|
|
428
|
+
return when (hmsWhiteboardUpdate) {
|
|
429
|
+
is HMSWhiteboardUpdate.Start -> {
|
|
430
|
+
JSWhiteboardState.Start.label
|
|
431
|
+
}
|
|
432
|
+
is HMSWhiteboardUpdate.Stop -> {
|
|
433
|
+
JSWhiteboardState.Stop.label
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
//endregion
|
|
413
438
|
}
|
package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSRNInteractivityCenter.kt
CHANGED
|
@@ -13,10 +13,12 @@ import live.hms.video.polls.network.PollLeaderboardResponse
|
|
|
13
13
|
import live.hms.video.sdk.HMSActionResultListener
|
|
14
14
|
import live.hms.video.sdk.HMSSDK
|
|
15
15
|
import live.hms.video.sdk.HmsTypedActionResultListener
|
|
16
|
+
import live.hms.video.whiteboard.HMSWhiteboardUpdate
|
|
17
|
+
import live.hms.video.whiteboard.HMSWhiteboardUpdateListener
|
|
16
18
|
|
|
17
19
|
class HMSRNInteractivityCenter(private val sdk: HMSSDK, private val rnSDK: HMSRNSDK) {
|
|
18
20
|
init {
|
|
19
|
-
// Listen for poll updates
|
|
21
|
+
//region Listen for poll updates
|
|
20
22
|
this.sdk.getHmsInteractivityCenter().pollUpdateListener =
|
|
21
23
|
object : HmsPollUpdateListener {
|
|
22
24
|
override fun onPollUpdate(
|
|
@@ -35,8 +37,34 @@ class HMSRNInteractivityCenter(private val sdk: HMSSDK, private val rnSDK: HMSRN
|
|
|
35
37
|
rnSDK.delegate.emitEvent("ON_POLL_UPDATE", data)
|
|
36
38
|
}
|
|
37
39
|
}
|
|
40
|
+
//endregion
|
|
41
|
+
|
|
42
|
+
//region Listen for whiteboard updates
|
|
43
|
+
this.sdk.getHmsInteractivityCenter().setWhiteboardUpdateListener(
|
|
44
|
+
object : HMSWhiteboardUpdateListener {
|
|
45
|
+
override fun onUpdate(hmsWhiteboardUpdate: HMSWhiteboardUpdate) {
|
|
46
|
+
if (rnSDK.eventsEnableStatus["ON_WHITEBOARD_UPDATE"] != true) {
|
|
47
|
+
return
|
|
48
|
+
}
|
|
49
|
+
val data: WritableMap = Arguments.createMap()
|
|
50
|
+
when (hmsWhiteboardUpdate) {
|
|
51
|
+
is HMSWhiteboardUpdate.Start -> {
|
|
52
|
+
data.putMap("hmsWhiteboard", HMSInteractivityDecoder.getHMSWhiteboard(hmsWhiteboardUpdate.hmsWhiteboard))
|
|
53
|
+
data.putString("updateType", HMSInteractivityDecoder.getWhiteboardUpdateType(hmsWhiteboardUpdate))
|
|
54
|
+
}
|
|
55
|
+
is HMSWhiteboardUpdate.Stop -> {
|
|
56
|
+
data.putMap("hmsWhiteboard", HMSInteractivityDecoder.getHMSWhiteboard(hmsWhiteboardUpdate.hmsWhiteboard))
|
|
57
|
+
data.putString("updateType", HMSInteractivityDecoder.getWhiteboardUpdateType(hmsWhiteboardUpdate))
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
rnSDK.delegate.emitEvent("ON_WHITEBOARD_UPDATE", data)
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
)
|
|
64
|
+
//endregion
|
|
38
65
|
}
|
|
39
66
|
|
|
67
|
+
//region poll methods
|
|
40
68
|
fun quickStartPoll(
|
|
41
69
|
data: ReadableMap,
|
|
42
70
|
promise: Promise?,
|
|
@@ -159,4 +187,44 @@ class HMSRNInteractivityCenter(private val sdk: HMSSDK, private val rnSDK: HMSRN
|
|
|
159
187
|
},
|
|
160
188
|
)
|
|
161
189
|
}
|
|
190
|
+
//endregion
|
|
191
|
+
|
|
192
|
+
//region whiteboard methods
|
|
193
|
+
fun startWhiteboard(
|
|
194
|
+
data: ReadableMap,
|
|
195
|
+
promise: Promise?,
|
|
196
|
+
) {
|
|
197
|
+
val whiteboardTitle = data.getString("title")
|
|
198
|
+
if (whiteboardTitle == null) {
|
|
199
|
+
promise?.reject("6004", "whiteboard title is required")
|
|
200
|
+
return
|
|
201
|
+
}
|
|
202
|
+
sdk.getHmsInteractivityCenter().startWhiteboard(
|
|
203
|
+
whiteboardTitle,
|
|
204
|
+
object : HMSActionResultListener {
|
|
205
|
+
override fun onSuccess() {
|
|
206
|
+
promise?.resolve(true)
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
override fun onError(error: HMSException) {
|
|
210
|
+
promise?.reject(error.code.toString(), error.description)
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
)
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
fun stopWhiteboard(promise: Promise?) {
|
|
217
|
+
sdk.getHmsInteractivityCenter().stopWhiteboard(
|
|
218
|
+
object : HMSActionResultListener {
|
|
219
|
+
override fun onSuccess() {
|
|
220
|
+
promise?.resolve(true)
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
override fun onError(error: HMSException) {
|
|
224
|
+
promise?.reject(error.code.toString(), error.description)
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
)
|
|
228
|
+
}
|
|
229
|
+
//endregion
|
|
162
230
|
}
|
package/ios/HMSConstants.swift
CHANGED
|
@@ -32,4 +32,5 @@ struct HMSConstants {
|
|
|
32
32
|
static let ON_SESSION_STORE_AVAILABLE = "ON_SESSION_STORE_AVAILABLE"
|
|
33
33
|
static let ON_SESSION_STORE_CHANGED = "ON_SESSION_STORE_CHANGED"
|
|
34
34
|
static let ON_POLL_UPDATE = "ON_POLL_UPDATE"
|
|
35
|
+
static let ON_WHITEBOARD_UPDATE = "ON_WHITEBOARD_UPDATE"
|
|
35
36
|
}
|
package/ios/HMSDecoder.swift
CHANGED
|
@@ -451,7 +451,7 @@ class HMSDecoder: NSObject {
|
|
|
451
451
|
}
|
|
452
452
|
|
|
453
453
|
static private func getPermissions (_ permissions: HMSPermissions) -> [String: Any] {
|
|
454
|
-
[
|
|
454
|
+
var permissionsDict: [String: Any] = [
|
|
455
455
|
"endRoom": permissions.endRoom ?? false,
|
|
456
456
|
"removeOthers": permissions.removeOthers ?? false,
|
|
457
457
|
"browserRecording": permissions.browserRecording ?? false,
|
|
@@ -461,8 +461,16 @@ class HMSDecoder: NSObject {
|
|
|
461
461
|
"unmute": permissions.unmute ?? false,
|
|
462
462
|
"changeRole": permissions.changeRole ?? false,
|
|
463
463
|
"pollRead": permissions.pollRead ?? false,
|
|
464
|
-
"pollWrite": permissions.pollWrite ?? false
|
|
464
|
+
"pollWrite": permissions.pollWrite ?? false,
|
|
465
465
|
]
|
|
466
|
+
if let whiteboardPermissions = permissions.whiteboard {
|
|
467
|
+
permissionsDict["whiteboard"] = [
|
|
468
|
+
"admin": whiteboardPermissions.admin,
|
|
469
|
+
"read": whiteboardPermissions.read,
|
|
470
|
+
"write": whiteboardPermissions.write
|
|
471
|
+
]
|
|
472
|
+
}
|
|
473
|
+
return permissionsDict
|
|
466
474
|
}
|
|
467
475
|
|
|
468
476
|
// MARK: - HMSRole Publish Settings and Utility functions
|
|
@@ -339,7 +339,10 @@ class HMSHLSPlayer: UIView {
|
|
|
339
339
|
attachPlayerPlaybackListeners()
|
|
340
340
|
|
|
341
341
|
hmsHLSPlayerViewController?.showsPlaybackControls = false
|
|
342
|
-
hmsHLSPlayerViewController?.allowsPictureInPicturePlayback =
|
|
342
|
+
hmsHLSPlayerViewController?.allowsPictureInPicturePlayback = true
|
|
343
|
+
if #available(iOS 14.2, *) {
|
|
344
|
+
hmsHLSPlayerViewController?.canStartPictureInPictureAutomaticallyFromInline = true
|
|
345
|
+
}
|
|
343
346
|
}
|
|
344
347
|
|
|
345
348
|
required init?(coder: NSCoder) {
|
|
@@ -270,4 +270,45 @@ class HMSInteractivityDecoder {
|
|
|
270
270
|
|
|
271
271
|
return result
|
|
272
272
|
}
|
|
273
|
+
|
|
274
|
+
static func getHMSWhiteboard(_ hmsWhiteboard: HMSWhiteboard) -> [String: Any] {
|
|
275
|
+
var result: [String: Any] = [
|
|
276
|
+
"id": hmsWhiteboard.id,
|
|
277
|
+
"state": getWhiteboardState(hmsWhiteboard.state)
|
|
278
|
+
]
|
|
279
|
+
if let owner = hmsWhiteboard.owner {
|
|
280
|
+
result["owner"] = HMSDecoder.getHmsPeerSubset(owner)
|
|
281
|
+
}
|
|
282
|
+
if let title = hmsWhiteboard.title {
|
|
283
|
+
result["title"] = title
|
|
284
|
+
}
|
|
285
|
+
if let urlString = hmsWhiteboard.url?.absoluteString {
|
|
286
|
+
result["url"] = urlString
|
|
287
|
+
}
|
|
288
|
+
return result
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
static func getWhiteboardState(_ state: HMSWhiteboard.WhiteboardState) -> String {
|
|
292
|
+
switch state {
|
|
293
|
+
case .started:
|
|
294
|
+
return "STARTED"
|
|
295
|
+
case .stopped:
|
|
296
|
+
return "STOPPED"
|
|
297
|
+
@unknown default:
|
|
298
|
+
print("@unknown default case: Invalid HMSWhiteboardUpdateType")
|
|
299
|
+
return "STOPPED"
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
static func getWhiteboardUpdateType(_ type: HMSWhiteboardUpdateType) -> String {
|
|
304
|
+
switch type {
|
|
305
|
+
case .started:
|
|
306
|
+
return "STARTED"
|
|
307
|
+
case .stopped:
|
|
308
|
+
return "STOPPED"
|
|
309
|
+
@unknown default:
|
|
310
|
+
print("@unknown default case: Invalid HMSWhiteboardUpdateType")
|
|
311
|
+
return "STOPPED"
|
|
312
|
+
}
|
|
313
|
+
}
|
|
273
314
|
}
|
package/ios/HMSManager.m
CHANGED
|
@@ -353,4 +353,16 @@ RCT_EXTERN_METHOD(isNoiseCancellationPluginAvailable
|
|
|
353
353
|
: (RCTPromiseResolveBlock)resolve
|
|
354
354
|
: (RCTPromiseRejectBlock)reject)
|
|
355
355
|
|
|
356
|
+
#pragma mark - Interactivity Center - Whiteboard
|
|
357
|
+
|
|
358
|
+
RCT_EXTERN_METHOD(startWhiteboard
|
|
359
|
+
: (NSDictionary)data
|
|
360
|
+
: (RCTPromiseResolveBlock)resolve
|
|
361
|
+
: (RCTPromiseRejectBlock)reject)
|
|
362
|
+
|
|
363
|
+
RCT_EXTERN_METHOD(stopWhiteboard
|
|
364
|
+
: (NSDictionary)data
|
|
365
|
+
: (RCTPromiseResolveBlock)resolve
|
|
366
|
+
: (RCTPromiseRejectBlock)reject)
|
|
367
|
+
|
|
356
368
|
@end
|
package/ios/HMSManager.swift
CHANGED
|
@@ -37,7 +37,7 @@ class HMSManager: RCTEventEmitter {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
override func supportedEvents() -> [String]! {
|
|
40
|
-
return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM, ON_RTC_STATS, ON_LOCAL_AUDIO_STATS, ON_LOCAL_VIDEO_STATS, ON_REMOTE_AUDIO_STATS, ON_REMOTE_VIDEO_STATS, ON_AUDIO_DEVICE_CHANGED, HMSConstants.ON_SESSION_STORE_AVAILABLE, HMSConstants.ON_SESSION_STORE_CHANGED, HMSConstants.ON_PEER_LIST_UPDATED, HMSConstants.ON_POLL_UPDATE]
|
|
40
|
+
return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM, ON_RTC_STATS, ON_LOCAL_AUDIO_STATS, ON_LOCAL_VIDEO_STATS, ON_REMOTE_AUDIO_STATS, ON_REMOTE_VIDEO_STATS, ON_AUDIO_DEVICE_CHANGED, HMSConstants.ON_SESSION_STORE_AVAILABLE, HMSConstants.ON_SESSION_STORE_CHANGED, HMSConstants.ON_PEER_LIST_UPDATED, HMSConstants.ON_POLL_UPDATE, HMSConstants.ON_WHITEBOARD_UPDATE]
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
// MARK: - HMS SDK Delegate Callbacks
|
|
@@ -762,4 +762,23 @@ class HMSManager: RCTEventEmitter {
|
|
|
762
762
|
}
|
|
763
763
|
rnsdk.isNoiseCancellationPluginAvailable(data, resolve, reject)
|
|
764
764
|
}
|
|
765
|
+
|
|
766
|
+
// MARK: - Interactivity Center - Whiteboard
|
|
767
|
+
@objc
|
|
768
|
+
func startWhiteboard(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
769
|
+
guard let rnsdk = HMSHelper.getHms(data, hmsCollection), let interactivity = rnsdk.interactivity else {
|
|
770
|
+
reject?("6004", "HMSRNSDK instance not found!", nil)
|
|
771
|
+
return
|
|
772
|
+
}
|
|
773
|
+
interactivity.startWhiteboard(resolve, reject)
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
@objc
|
|
777
|
+
func stopWhiteboard(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
778
|
+
guard let rnsdk = HMSHelper.getHms(data, hmsCollection), let interactivity = rnsdk.interactivity else {
|
|
779
|
+
reject?("6004", "HMSRNSDK instance not found!", nil)
|
|
780
|
+
return
|
|
781
|
+
}
|
|
782
|
+
interactivity.stopWhiteboard(resolve, reject)
|
|
783
|
+
}
|
|
765
784
|
}
|
|
@@ -27,8 +27,27 @@ class HMSRNInteractivityCenter {
|
|
|
27
27
|
["update": update.rawValue, "updatedPoll": HMSInteractivityDecoder.getHMSPoll(updatedPoll)]
|
|
28
28
|
)
|
|
29
29
|
}
|
|
30
|
+
|
|
31
|
+
hmssdk.interactivityCenter.addWhiteboardUpdateListener { [weak self] hmsWhiteboard, hmsWhiteboardUpdateType in
|
|
32
|
+
guard let self = self else { return }
|
|
33
|
+
guard let enabledEvents = self.hmsrnsdk?.eventsEnableStatus, enabledEvents[HMSConstants.ON_WHITEBOARD_UPDATE] == true else {
|
|
34
|
+
print("HMSConstants.ON_WHITEBOARD_UPDATE event is not enabled")
|
|
35
|
+
return
|
|
36
|
+
}
|
|
37
|
+
var hmsWhiteboardDict = HMSInteractivityDecoder.getHMSWhiteboard(hmsWhiteboard)
|
|
38
|
+
hmsWhiteboardDict["isOwner"] = hmsWhiteboard.owner?.peerID == self.hmssdk?.localPeer?.peerID
|
|
39
|
+
|
|
40
|
+
self.hmsrnsdk?.delegate?.emitEvent(
|
|
41
|
+
HMSConstants.ON_WHITEBOARD_UPDATE,
|
|
42
|
+
[
|
|
43
|
+
"hmsWhiteboard": hmsWhiteboardDict,
|
|
44
|
+
"updateType": HMSInteractivityDecoder.getWhiteboardUpdateType(hmsWhiteboardUpdateType)
|
|
45
|
+
]
|
|
46
|
+
)
|
|
47
|
+
}
|
|
30
48
|
}
|
|
31
49
|
|
|
50
|
+
// MARK: Poll Methods
|
|
32
51
|
func quickStartPoll(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
33
52
|
let pollBuilder = HMSInteractivityHelper.getPollBuilderFromDict(data, sdkRoles: hmssdk?.roles)
|
|
34
53
|
|
|
@@ -117,4 +136,26 @@ class HMSRNInteractivityCenter {
|
|
|
117
136
|
}
|
|
118
137
|
}
|
|
119
138
|
}
|
|
139
|
+
|
|
140
|
+
// MARK: - Whiteboard Methods
|
|
141
|
+
|
|
142
|
+
func startWhiteboard(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
143
|
+
self.hmssdk?.interactivityCenter.startWhiteboard { success, error in
|
|
144
|
+
if let error = error {
|
|
145
|
+
reject?("6004", error.localizedDescription, nil)
|
|
146
|
+
return
|
|
147
|
+
}
|
|
148
|
+
resolve?(success)
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
func stopWhiteboard(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
153
|
+
self.hmssdk?.interactivityCenter.stopWhiteboard { success, error in
|
|
154
|
+
if let error = error {
|
|
155
|
+
reject?("6004", error.localizedDescription, nil)
|
|
156
|
+
return
|
|
157
|
+
}
|
|
158
|
+
resolve?(success)
|
|
159
|
+
}
|
|
160
|
+
}
|
|
120
161
|
}
|
|
@@ -12,6 +12,8 @@ var _HMSPollsListenerActions = require("./HMSPollsListenerActions");
|
|
|
12
12
|
var _HMSNativeEventListener = _interopRequireDefault(require("./HMSNativeEventListener"));
|
|
13
13
|
var _HMSInteractivityEncoder = require("./HMSInteractivityEncoder");
|
|
14
14
|
var _HMSHelper = require("./HMSHelper");
|
|
15
|
+
var _HMSWhiteboardListenerActions = require("./whiteboard/HMSWhiteboardListenerActions");
|
|
16
|
+
var _registerCallbacks = require("./whiteboard/registerCallbacks");
|
|
15
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
18
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
19
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
@@ -31,8 +33,18 @@ function unregisterPollUpdateListener() {
|
|
|
31
33
|
pollUpdateSubscription = null;
|
|
32
34
|
}
|
|
33
35
|
class HMSInteractivityCenter {
|
|
36
|
+
onUpdateListenerRemoved(eventType) {
|
|
37
|
+
if (eventType === _HMSPollsListenerActions.HMSPollsListenerActions.ON_POLL_UPDATE) {
|
|
38
|
+
unregisterPollUpdateListener();
|
|
39
|
+
} else if (eventType === _HMSWhiteboardListenerActions.HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE) {
|
|
40
|
+
(0, _registerCallbacks.unregisterWhiteboardUpdateListener)();
|
|
41
|
+
} else {
|
|
42
|
+
console.warn('Unknown update listener removed: ', eventType);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
34
45
|
constructor() {
|
|
35
46
|
_defineProperty(this, "_eventEmitter", new _utils.EventEmitter());
|
|
47
|
+
//#region Poll Methods & Listeners
|
|
36
48
|
_defineProperty(this, "_pollUpdateListener", (...args) => {
|
|
37
49
|
const {
|
|
38
50
|
updatedPoll,
|
|
@@ -44,12 +56,21 @@ class HMSInteractivityCenter {
|
|
|
44
56
|
});
|
|
45
57
|
this._eventEmitter.emit(_HMSPollsListenerActions.HMSPollsListenerActions.ON_POLL_UPDATE, _HMSInteractivityEncoder.HMSInteractivityEncoder.transformPoll(updatedPoll), update);
|
|
46
58
|
});
|
|
47
|
-
|
|
48
|
-
|
|
59
|
+
//#endregion Poll Methods & Listeners
|
|
60
|
+
//#region Whiteboard Methods & Listeners
|
|
61
|
+
_defineProperty(this, "_whiteboardUpdateListener", (...args) => {
|
|
62
|
+
const {
|
|
63
|
+
hmsWhiteboard,
|
|
64
|
+
updateType
|
|
65
|
+
} = args[0];
|
|
66
|
+
_HMSLogger.logger === null || _HMSLogger.logger === void 0 || _HMSLogger.logger.verbose('#Listener ON_WHITEBOARD_UPDATE', {
|
|
67
|
+
updateType,
|
|
68
|
+
hmsWhiteboard
|
|
69
|
+
});
|
|
70
|
+
this._eventEmitter.emit(_HMSWhiteboardListenerActions.HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE, _HMSInteractivityEncoder.HMSInteractivityEncoder.transformHMSWhiteboard(hmsWhiteboard), updateType);
|
|
49
71
|
});
|
|
50
|
-
this._eventEmitter.registerOnAllListenersRemoved(this.
|
|
72
|
+
this._eventEmitter.registerOnAllListenersRemoved(this.onUpdateListenerRemoved);
|
|
51
73
|
}
|
|
52
|
-
|
|
53
74
|
/**
|
|
54
75
|
* Adds a listener for poll updates
|
|
55
76
|
* @param listener - Callback to be called when a poll is updated
|
|
@@ -115,6 +136,39 @@ class HMSInteractivityCenter {
|
|
|
115
136
|
const response = await _HMSManagerModule.default.fetchLeaderboard(data);
|
|
116
137
|
return _HMSInteractivityEncoder.HMSInteractivityEncoder.transformPollLeaderboardResponse(response);
|
|
117
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Adds a listener for Whiteboard updates
|
|
141
|
+
* @param listener - Callback to be called when whiteboard is updated
|
|
142
|
+
* @returns HMSEventSubscription
|
|
143
|
+
*/
|
|
144
|
+
addWhiteboardUpdateListener(listener) {
|
|
145
|
+
(0, _registerCallbacks.registerWhiteboardUpdateListener)(this._whiteboardUpdateListener);
|
|
146
|
+
return this._eventEmitter.addListener(_HMSWhiteboardListenerActions.HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE, listener, null);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Starts Whiteboard
|
|
151
|
+
*/
|
|
152
|
+
async startWhiteboard(title) {
|
|
153
|
+
const data = {
|
|
154
|
+
id: _HMSConstants.HMSConstants.DEFAULT_SDK_ID,
|
|
155
|
+
title
|
|
156
|
+
};
|
|
157
|
+
_HMSLogger.logger === null || _HMSLogger.logger === void 0 || _HMSLogger.logger.verbose('#Function startWhiteboard', data);
|
|
158
|
+
return _HMSManagerModule.default.startWhiteboard(data);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Stops Whiteboard
|
|
163
|
+
*/
|
|
164
|
+
async stopWhiteboard() {
|
|
165
|
+
const data = {
|
|
166
|
+
id: _HMSConstants.HMSConstants.DEFAULT_SDK_ID
|
|
167
|
+
};
|
|
168
|
+
_HMSLogger.logger === null || _HMSLogger.logger === void 0 || _HMSLogger.logger.verbose('#Function stopWhiteboard', data);
|
|
169
|
+
return _HMSManagerModule.default.stopWhiteboard(data);
|
|
170
|
+
}
|
|
171
|
+
//#endregion Whiteboard Methods & Listeners
|
|
118
172
|
}
|
|
119
173
|
exports.HMSInteractivityCenter = HMSInteractivityCenter;
|
|
120
174
|
//# sourceMappingURL=HMSInteractivityCenter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_utils","require","_HMSManagerModule","_interopRequireDefault","_HMSConstants","_HMSLogger","_HMSPollsListenerActions","_HMSNativeEventListener","_HMSInteractivityEncoder","_HMSHelper","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","pollUpdateSubscription","registerPollUpdateListener","listener","HMSNativeEventListener","addListener","HMSConstants","DEFAULT_SDK_ID","HMSPollsListenerActions","ON_POLL_UPDATE","unregisterPollUpdateListener","remove","HMSInteractivityCenter","constructor","EventEmitter","args","updatedPoll","update","logger","verbose","_eventEmitter","emit","HMSInteractivityEncoder","transformPoll","registerOnAllListenersRemoved","_onAllPollUpdateListenerRemoved","addPollUpdateListener","_pollUpdateListener","startPoll","pollParams","transformedPollParams","rolesThatCanVote","HMSHelper","getRoleNames","undefined","rolesThatCanViewResponses","data","id","JSON","stringify","HMSManager","quickStartPoll","add","pollQuestionResponseParams","addResponseOnPollQuestion","stop","pollId","stopPoll","fetchLeaderboard","count","startIndex","includeCurrentPeer","response","transformPollLeaderboardResponse","exports"],"sources":["HMSInteractivityCenter.ts"],"sourcesContent":["import { EventEmitter } from '../utils';\nimport HMSManager from '../modules/HMSManagerModule';\nimport { HMSConstants } from './HMSConstants';\nimport { logger } from './HMSLogger';\nimport type { HMSPoll } from './polls/HMSPoll';\nimport type { HMSPollCreateParams } from './polls/HMSPollCreateParams';\nimport type { HMSPollUpdateType } from './polls/HMSPollUpdateType';\nimport { HMSPollsListenerActions } from './HMSPollsListenerActions';\nimport HMSNativeEventListener from './HMSNativeEventListener';\nimport type { HMSEventSubscription } from './HMSNativeEventEmitter';\nimport { HMSInteractivityEncoder } from './HMSInteractivityEncoder';\nimport { HMSHelper } from './HMSHelper';\nimport type { PollLeaderboardResponse } from './polls/PollLeaderboardResponse';\nimport type { DecodedPollLeaderboardResponse } from './polls/DecodedPollLeaderboardResponse';\n\ntype PollUpdateListener = (data: {\n updatedPoll: HMSPoll;\n update: HMSPollUpdateType;\n}) => void;\n\ntype PollQuestionResponseCreateParams = {\n pollId: string;\n pollQuestionIndex: number;\n responses:\n | {\n text: string;\n duration?: number;\n }\n | {\n options: number[];\n duration?: number;\n };\n};\n\nlet pollUpdateSubscription: null | HMSEventSubscription = null;\n\nfunction registerPollUpdateListener(listener: PollUpdateListener) {\n if (pollUpdateSubscription !== null) {\n return;\n }\n pollUpdateSubscription = HMSNativeEventListener.addListener(\n HMSConstants.DEFAULT_SDK_ID,\n HMSPollsListenerActions.ON_POLL_UPDATE,\n listener\n );\n}\n\nfunction unregisterPollUpdateListener() {\n if (pollUpdateSubscription === null) {\n return;\n }\n pollUpdateSubscription.remove();\n pollUpdateSubscription = null;\n}\n\nexport class HMSInteractivityCenter {\n private _eventEmitter = new EventEmitter();\n\n private _pollUpdateListener = (...args: Parameters<PollUpdateListener>) => {\n const { updatedPoll, update } = args[0];\n logger?.verbose('#Listener ON_POLL_UPDATE', {\n update,\n updatedPoll,\n });\n this._eventEmitter.emit(\n HMSPollsListenerActions.ON_POLL_UPDATE,\n HMSInteractivityEncoder.transformPoll(updatedPoll),\n update\n );\n };\n\n private _onAllPollUpdateListenerRemoved = () => {\n unregisterPollUpdateListener();\n };\n\n constructor() {\n this._eventEmitter.registerOnAllListenersRemoved(\n this._onAllPollUpdateListenerRemoved\n );\n }\n\n /**\n * Adds a listener for poll updates\n * @param listener - Callback to be called when a poll is updated\n * @returns HMSEventSubscription\n */\n addPollUpdateListener(\n listener: (updatedPoll: HMSPoll, update: HMSPollUpdateType) => void\n ) {\n registerPollUpdateListener(this._pollUpdateListener);\n return this._eventEmitter.addListener(\n HMSPollsListenerActions.ON_POLL_UPDATE,\n listener,\n null\n );\n }\n\n /**\n * Starts a poll\n *\n * @param pollParams\n */\n async startPoll(pollParams: HMSPollCreateParams) {\n const transformedPollParams = {\n ...pollParams,\n rolesThatCanVote: pollParams.rolesThatCanVote\n ? HMSHelper.getRoleNames(pollParams.rolesThatCanVote)\n : undefined,\n rolesThatCanViewResponses: pollParams.rolesThatCanViewResponses\n ? HMSHelper.getRoleNames(pollParams.rolesThatCanViewResponses)\n : undefined,\n };\n\n const data = {\n ...transformedPollParams,\n id: HMSConstants.DEFAULT_SDK_ID,\n };\n logger?.verbose('#Function startPoll', JSON.stringify(data));\n return HMSManager.quickStartPoll(data);\n }\n\n async add(pollQuestionResponseParams: PollQuestionResponseCreateParams) {\n const data = {\n ...pollQuestionResponseParams,\n id: HMSConstants.DEFAULT_SDK_ID,\n };\n logger?.verbose('#Function add', JSON.stringify(data));\n return HMSManager.addResponseOnPollQuestion(data);\n }\n\n async stop(pollId: string) {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n pollId,\n };\n logger?.verbose('#Function stop', JSON.stringify(data));\n return HMSManager.stopPoll(data);\n }\n\n /**\n * Fetches the leaderboard for a poll\n * @param pollId - The id of the poll\n * @param count - The number of entries to fetch\n * @param startIndex - The index to start fetching from\n * @param includeCurrentPeer - Whether to include the current peer in the fetched leaderboard entries\n * @returns Promise<PollLeaderboardResponse>\n */\n async fetchLeaderboard(\n pollId: string,\n count: number,\n startIndex: number,\n includeCurrentPeer: boolean\n ): Promise<PollLeaderboardResponse> {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n pollId,\n count,\n startIndex,\n includeCurrentPeer,\n };\n logger?.verbose('#Function fetchLeaderboard', data);\n\n const response: DecodedPollLeaderboardResponse =\n await HMSManager.fetchLeaderboard(data);\n return HMSInteractivityEncoder.transformPollLeaderboardResponse(response);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_utils","require","_HMSManagerModule","_interopRequireDefault","_HMSConstants","_HMSLogger","_HMSPollsListenerActions","_HMSNativeEventListener","_HMSInteractivityEncoder","_HMSHelper","_HMSWhiteboardListenerActions","_registerCallbacks","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","pollUpdateSubscription","registerPollUpdateListener","listener","HMSNativeEventListener","addListener","HMSConstants","DEFAULT_SDK_ID","HMSPollsListenerActions","ON_POLL_UPDATE","unregisterPollUpdateListener","remove","HMSInteractivityCenter","onUpdateListenerRemoved","eventType","HMSWhiteboardListenerActions","ON_WHITEBOARD_UPDATE","unregisterWhiteboardUpdateListener","console","warn","constructor","EventEmitter","args","updatedPoll","update","logger","verbose","_eventEmitter","emit","HMSInteractivityEncoder","transformPoll","hmsWhiteboard","updateType","transformHMSWhiteboard","registerOnAllListenersRemoved","addPollUpdateListener","_pollUpdateListener","startPoll","pollParams","transformedPollParams","rolesThatCanVote","HMSHelper","getRoleNames","undefined","rolesThatCanViewResponses","data","id","JSON","stringify","HMSManager","quickStartPoll","add","pollQuestionResponseParams","addResponseOnPollQuestion","stop","pollId","stopPoll","fetchLeaderboard","count","startIndex","includeCurrentPeer","response","transformPollLeaderboardResponse","addWhiteboardUpdateListener","registerWhiteboardUpdateListener","_whiteboardUpdateListener","startWhiteboard","title","stopWhiteboard","exports"],"sources":["HMSInteractivityCenter.ts"],"sourcesContent":["import { EventEmitter } from '../utils';\nimport HMSManager from '../modules/HMSManagerModule';\nimport { HMSConstants } from './HMSConstants';\nimport { logger } from './HMSLogger';\nimport type { HMSPoll } from './polls/HMSPoll';\nimport type { HMSPollCreateParams } from './polls/HMSPollCreateParams';\nimport type { HMSPollUpdateType } from './polls/HMSPollUpdateType';\nimport { HMSPollsListenerActions } from './HMSPollsListenerActions';\nimport HMSNativeEventListener from './HMSNativeEventListener';\nimport type { HMSEventSubscription } from './HMSNativeEventEmitter';\nimport { HMSInteractivityEncoder } from './HMSInteractivityEncoder';\nimport { HMSHelper } from './HMSHelper';\nimport type { PollLeaderboardResponse } from './polls/PollLeaderboardResponse';\nimport type { DecodedPollLeaderboardResponse } from './polls/DecodedPollLeaderboardResponse';\nimport type { HMSWhiteboardUpdateType } from './whiteboard/HMSWhiteboardUpdateType';\nimport type { HMSWhiteboard } from './whiteboard/HMSWhiteboard';\nimport { HMSWhiteboardListenerActions } from './whiteboard/HMSWhiteboardListenerActions';\nimport {\n WhiteboardUpdateListener,\n registerWhiteboardUpdateListener,\n unregisterWhiteboardUpdateListener,\n} from './whiteboard/registerCallbacks';\n\ntype PollUpdateListener = (data: {\n updatedPoll: HMSPoll;\n update: HMSPollUpdateType;\n}) => void;\n\ntype PollQuestionResponseCreateParams = {\n pollId: string;\n pollQuestionIndex: number;\n responses:\n | {\n text: string;\n duration?: number;\n }\n | {\n options: number[];\n duration?: number;\n };\n};\n\nlet pollUpdateSubscription: null | HMSEventSubscription = null;\n\nfunction registerPollUpdateListener(listener: PollUpdateListener) {\n if (pollUpdateSubscription !== null) {\n return;\n }\n pollUpdateSubscription = HMSNativeEventListener.addListener(\n HMSConstants.DEFAULT_SDK_ID,\n HMSPollsListenerActions.ON_POLL_UPDATE,\n listener\n );\n}\n\nfunction unregisterPollUpdateListener() {\n if (pollUpdateSubscription === null) {\n return;\n }\n pollUpdateSubscription.remove();\n pollUpdateSubscription = null;\n}\n\nexport class HMSInteractivityCenter {\n private _eventEmitter = new EventEmitter();\n\n private onUpdateListenerRemoved(eventType: string) {\n if (eventType === HMSPollsListenerActions.ON_POLL_UPDATE) {\n unregisterPollUpdateListener();\n } else if (\n eventType === HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE\n ) {\n unregisterWhiteboardUpdateListener();\n } else {\n console.warn('Unknown update listener removed: ', eventType);\n }\n }\n\n constructor() {\n this._eventEmitter.registerOnAllListenersRemoved(\n this.onUpdateListenerRemoved\n );\n }\n\n //#region Poll Methods & Listeners\n\n private _pollUpdateListener = (...args: Parameters<PollUpdateListener>) => {\n const { updatedPoll, update } = args[0];\n logger?.verbose('#Listener ON_POLL_UPDATE', {\n update,\n updatedPoll,\n });\n this._eventEmitter.emit(\n HMSPollsListenerActions.ON_POLL_UPDATE,\n HMSInteractivityEncoder.transformPoll(updatedPoll),\n update\n );\n };\n\n /**\n * Adds a listener for poll updates\n * @param listener - Callback to be called when a poll is updated\n * @returns HMSEventSubscription\n */\n addPollUpdateListener(\n listener: (updatedPoll: HMSPoll, update: HMSPollUpdateType) => void\n ) {\n registerPollUpdateListener(this._pollUpdateListener);\n return this._eventEmitter.addListener(\n HMSPollsListenerActions.ON_POLL_UPDATE,\n listener,\n null\n );\n }\n\n /**\n * Starts a poll\n *\n * @param pollParams\n */\n async startPoll(pollParams: HMSPollCreateParams) {\n const transformedPollParams = {\n ...pollParams,\n rolesThatCanVote: pollParams.rolesThatCanVote\n ? HMSHelper.getRoleNames(pollParams.rolesThatCanVote)\n : undefined,\n rolesThatCanViewResponses: pollParams.rolesThatCanViewResponses\n ? HMSHelper.getRoleNames(pollParams.rolesThatCanViewResponses)\n : undefined,\n };\n\n const data = {\n ...transformedPollParams,\n id: HMSConstants.DEFAULT_SDK_ID,\n };\n logger?.verbose('#Function startPoll', JSON.stringify(data));\n return HMSManager.quickStartPoll(data);\n }\n\n async add(pollQuestionResponseParams: PollQuestionResponseCreateParams) {\n const data = {\n ...pollQuestionResponseParams,\n id: HMSConstants.DEFAULT_SDK_ID,\n };\n logger?.verbose('#Function add', JSON.stringify(data));\n return HMSManager.addResponseOnPollQuestion(data);\n }\n\n async stop(pollId: string) {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n pollId,\n };\n logger?.verbose('#Function stop', JSON.stringify(data));\n return HMSManager.stopPoll(data);\n }\n\n /**\n * Fetches the leaderboard for a poll\n * @param pollId - The id of the poll\n * @param count - The number of entries to fetch\n * @param startIndex - The index to start fetching from\n * @param includeCurrentPeer - Whether to include the current peer in the fetched leaderboard entries\n * @returns Promise<PollLeaderboardResponse>\n */\n async fetchLeaderboard(\n pollId: string,\n count: number,\n startIndex: number,\n includeCurrentPeer: boolean\n ): Promise<PollLeaderboardResponse> {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n pollId,\n count,\n startIndex,\n includeCurrentPeer,\n };\n logger?.verbose('#Function fetchLeaderboard', data);\n\n const response: DecodedPollLeaderboardResponse =\n await HMSManager.fetchLeaderboard(data);\n return HMSInteractivityEncoder.transformPollLeaderboardResponse(response);\n }\n //#endregion Poll Methods & Listeners\n\n //#region Whiteboard Methods & Listeners\n\n private _whiteboardUpdateListener = (\n ...args: Parameters<WhiteboardUpdateListener>\n ) => {\n const { hmsWhiteboard, updateType } = args[0];\n logger?.verbose('#Listener ON_WHITEBOARD_UPDATE', {\n updateType,\n hmsWhiteboard,\n });\n this._eventEmitter.emit(\n HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE,\n HMSInteractivityEncoder.transformHMSWhiteboard(hmsWhiteboard),\n updateType\n );\n };\n\n /**\n * Adds a listener for Whiteboard updates\n * @param listener - Callback to be called when whiteboard is updated\n * @returns HMSEventSubscription\n */\n addWhiteboardUpdateListener(\n listener: (\n hmsWhiteboard: HMSWhiteboard,\n updateType: HMSWhiteboardUpdateType\n ) => void\n ) {\n registerWhiteboardUpdateListener(this._whiteboardUpdateListener);\n return this._eventEmitter.addListener(\n HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE,\n listener,\n null\n );\n }\n\n /**\n * Starts Whiteboard\n */\n async startWhiteboard(title: string) {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n title,\n };\n logger?.verbose('#Function startWhiteboard', data);\n return HMSManager.startWhiteboard(data);\n }\n\n /**\n * Stops Whiteboard\n */\n async stopWhiteboard() {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n };\n logger?.verbose('#Function stopWhiteboard', data);\n return HMSManager.stopWhiteboard(data);\n }\n //#endregion Whiteboard Methods & Listeners\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAIA,IAAAK,wBAAA,GAAAL,OAAA;AACA,IAAAM,uBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AAEA,IAAAO,wBAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AAKA,IAAAS,6BAAA,GAAAT,OAAA;AACA,IAAAU,kBAAA,GAAAV,OAAA;AAIwC,SAAAE,uBAAAS,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAG,CAAA,2BAAAH,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAI,CAAA,GAAAJ,CAAA,CAAAK,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAH,CAAA,GAAAG,CAAA,CAAAG,IAAA,CAAAP,CAAA,EAAAG,CAAA,uCAAAF,CAAA,SAAAA,CAAA,YAAAO,SAAA,yEAAAL,CAAA,GAAAM,MAAA,GAAAC,MAAA,EAAAV,CAAA;AAqBxC,IAAIW,sBAAmD,GAAG,IAAI;AAE9D,SAASC,0BAA0BA,CAACC,QAA4B,EAAE;EAChE,IAAIF,sBAAsB,KAAK,IAAI,EAAE;IACnC;EACF;EACAA,sBAAsB,GAAGG,+BAAsB,CAACC,WAAW,CACzDC,0BAAY,CAACC,cAAc,EAC3BC,gDAAuB,CAACC,cAAc,EACtCN,QACF,CAAC;AACH;AAEA,SAASO,4BAA4BA,CAAA,EAAG;EACtC,IAAIT,sBAAsB,KAAK,IAAI,EAAE;IACnC;EACF;EACAA,sBAAsB,CAACU,MAAM,CAAC,CAAC;EAC/BV,sBAAsB,GAAG,IAAI;AAC/B;AAEO,MAAMW,sBAAsB,CAAC;EAG1BC,uBAAuBA,CAACC,SAAiB,EAAE;IACjD,IAAIA,SAAS,KAAKN,gDAAuB,CAACC,cAAc,EAAE;MACxDC,4BAA4B,CAAC,CAAC;IAChC,CAAC,MAAM,IACLI,SAAS,KAAKC,0DAA4B,CAACC,oBAAoB,EAC/D;MACA,IAAAC,qDAAkC,EAAC,CAAC;IACtC,CAAC,MAAM;MACLC,OAAO,CAACC,IAAI,CAAC,mCAAmC,EAAEL,SAAS,CAAC;IAC9D;EACF;EAEAM,WAAWA,CAAA,EAAG;IAAAvC,eAAA,wBAdU,IAAIwC,mBAAY,CAAC,CAAC;IAoB1C;IAAAxC,eAAA,8BAE8B,CAAC,GAAGyC,IAAoC,KAAK;MACzE,MAAM;QAAEC,WAAW;QAAEC;MAAO,CAAC,GAAGF,IAAI,CAAC,CAAC,CAAC;MACvCG,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,0BAA0B,EAAE;QAC1CF,MAAM;QACND;MACF,CAAC,CAAC;MACF,IAAI,CAACI,aAAa,CAACC,IAAI,CACrBpB,gDAAuB,CAACC,cAAc,EACtCoB,gDAAuB,CAACC,aAAa,CAACP,WAAW,CAAC,EAClDC,MACF,CAAC;IACH,CAAC;IAuFD;IAEA;IAAA3C,eAAA,oCAEoC,CAClC,GAAGyC,IAA0C,KAC1C;MACH,MAAM;QAAES,aAAa;QAAEC;MAAW,CAAC,GAAGV,IAAI,CAAC,CAAC,CAAC;MAC7CG,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,gCAAgC,EAAE;QAChDM,UAAU;QACVD;MACF,CAAC,CAAC;MACF,IAAI,CAACJ,aAAa,CAACC,IAAI,CACrBb,0DAA4B,CAACC,oBAAoB,EACjDa,gDAAuB,CAACI,sBAAsB,CAACF,aAAa,CAAC,EAC7DC,UACF,CAAC;IACH,CAAC;IA1HC,IAAI,CAACL,aAAa,CAACO,6BAA6B,CAC9C,IAAI,CAACrB,uBACP,CAAC;EACH;EAiBA;AACF;AACA;AACA;AACA;EACEsB,qBAAqBA,CACnBhC,QAAmE,EACnE;IACAD,0BAA0B,CAAC,IAAI,CAACkC,mBAAmB,CAAC;IACpD,OAAO,IAAI,CAACT,aAAa,CAACtB,WAAW,CACnCG,gDAAuB,CAACC,cAAc,EACtCN,QAAQ,EACR,IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMkC,SAASA,CAACC,UAA+B,EAAE;IAC/C,MAAMC,qBAAqB,GAAG;MAC5B,GAAGD,UAAU;MACbE,gBAAgB,EAAEF,UAAU,CAACE,gBAAgB,GACzCC,oBAAS,CAACC,YAAY,CAACJ,UAAU,CAACE,gBAAgB,CAAC,GACnDG,SAAS;MACbC,yBAAyB,EAAEN,UAAU,CAACM,yBAAyB,GAC3DH,oBAAS,CAACC,YAAY,CAACJ,UAAU,CAACM,yBAAyB,CAAC,GAC5DD;IACN,CAAC;IAED,MAAME,IAAI,GAAG;MACX,GAAGN,qBAAqB;MACxBO,EAAE,EAAExC,0BAAY,CAACC;IACnB,CAAC;IACDkB,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,qBAAqB,EAAEqB,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CAAC;IAC5D,OAAOI,yBAAU,CAACC,cAAc,CAACL,IAAI,CAAC;EACxC;EAEA,MAAMM,GAAGA,CAACC,0BAA4D,EAAE;IACtE,MAAMP,IAAI,GAAG;MACX,GAAGO,0BAA0B;MAC7BN,EAAE,EAAExC,0BAAY,CAACC;IACnB,CAAC;IACDkB,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,eAAe,EAAEqB,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CAAC;IACtD,OAAOI,yBAAU,CAACI,yBAAyB,CAACR,IAAI,CAAC;EACnD;EAEA,MAAMS,IAAIA,CAACC,MAAc,EAAE;IACzB,MAAMV,IAAI,GAAG;MACXC,EAAE,EAAExC,0BAAY,CAACC,cAAc;MAC/BgD;IACF,CAAC;IACD9B,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,gBAAgB,EAAEqB,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CAAC;IACvD,OAAOI,yBAAU,CAACO,QAAQ,CAACX,IAAI,CAAC;EAClC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMY,gBAAgBA,CACpBF,MAAc,EACdG,KAAa,EACbC,UAAkB,EAClBC,kBAA2B,EACO;IAClC,MAAMf,IAAI,GAAG;MACXC,EAAE,EAAExC,0BAAY,CAACC,cAAc;MAC/BgD,MAAM;MACNG,KAAK;MACLC,UAAU;MACVC;IACF,CAAC;IACDnC,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,4BAA4B,EAAEmB,IAAI,CAAC;IAEnD,MAAMgB,QAAwC,GAC5C,MAAMZ,yBAAU,CAACQ,gBAAgB,CAACZ,IAAI,CAAC;IACzC,OAAOhB,gDAAuB,CAACiC,gCAAgC,CAACD,QAAQ,CAAC;EAC3E;EAoBA;AACF;AACA;AACA;AACA;EACEE,2BAA2BA,CACzB5D,QAGS,EACT;IACA,IAAA6D,mDAAgC,EAAC,IAAI,CAACC,yBAAyB,CAAC;IAChE,OAAO,IAAI,CAACtC,aAAa,CAACtB,WAAW,CACnCU,0DAA4B,CAACC,oBAAoB,EACjDb,QAAQ,EACR,IACF,CAAC;EACH;;EAEA;AACF;AACA;EACE,MAAM+D,eAAeA,CAACC,KAAa,EAAE;IACnC,MAAMtB,IAAI,GAAG;MACXC,EAAE,EAAExC,0BAAY,CAACC,cAAc;MAC/B4D;IACF,CAAC;IACD1C,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,2BAA2B,EAAEmB,IAAI,CAAC;IAClD,OAAOI,yBAAU,CAACiB,eAAe,CAACrB,IAAI,CAAC;EACzC;;EAEA;AACF;AACA;EACE,MAAMuB,cAAcA,CAAA,EAAG;IACrB,MAAMvB,IAAI,GAAG;MACXC,EAAE,EAAExC,0BAAY,CAACC;IACnB,CAAC;IACDkB,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,0BAA0B,EAAEmB,IAAI,CAAC;IACjD,OAAOI,yBAAU,CAACmB,cAAc,CAACvB,IAAI,CAAC;EACxC;EACA;AACF;AAACwB,OAAA,CAAAzD,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|