@zelloptt/react-native-zello-sdk 0.4.0 → 1.0.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.
- package/README.md +9 -4
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/zellosdk/ZelloAndroidSdkModule.kt +72 -7
- package/android/src/main/java/com/zellosdk/ZelloAndroidSdkModuleHelper.kt +53 -8
- package/ios/Extensions/ZelloConsoleSettings+Extension.swift +6 -1
- package/ios/Extensions/ZelloContact+Extension.swift +49 -0
- package/ios/Extensions/ZelloIOSSdkModule+Extension.swift +44 -7
- package/ios/ZelloIOSSdkModule.swift +45 -4
- package/ios/ZelloIOSSdkModuleBridge.m +11 -0
- package/lib/commonjs/docs/assets/navigation.js +1 -1
- package/lib/commonjs/docs/assets/navigation.js.map +1 -1
- package/lib/commonjs/docs/assets/search.js +1 -1
- package/lib/commonjs/docs/assets/search.js.map +1 -1
- package/lib/commonjs/docs/classes/sdk.Zello.html +67 -43
- package/lib/commonjs/docs/classes/types.ZelloAlertMessage.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloChannel.html +8 -8
- package/lib/commonjs/docs/classes/types.ZelloChannelUser.html +5 -4
- package/lib/commonjs/docs/classes/types.ZelloDispatchCall.html +4 -4
- package/lib/commonjs/docs/classes/types.ZelloDispatchChannel.html +9 -9
- package/lib/commonjs/docs/classes/types.ZelloGroupConversation.html +24 -0
- package/lib/commonjs/docs/classes/types.ZelloHistoryAlertMessage.html +8 -8
- package/lib/commonjs/docs/classes/types.ZelloHistoryImageMessage.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloHistoryLocationMessage.html +11 -11
- package/lib/commonjs/docs/classes/types.ZelloHistoryTextMessage.html +8 -8
- package/lib/commonjs/docs/classes/types.ZelloHistoryVoiceMessage.html +8 -8
- package/lib/commonjs/docs/classes/types.ZelloImageMessage.html +8 -8
- package/lib/commonjs/docs/classes/types.ZelloIncomingEmergency.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloIncomingVoiceMessage.html +6 -6
- package/lib/commonjs/docs/classes/types.ZelloLocationMessage.html +10 -10
- package/lib/commonjs/docs/classes/types.ZelloOutgoingEmergency.html +5 -5
- package/lib/commonjs/docs/classes/types.ZelloOutgoingVoiceMessage.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloRecentEntry.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloTextMessage.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloUser.html +10 -8
- package/lib/commonjs/docs/classes/types.ZelloUserSupportedFeatures.html +5 -0
- package/lib/commonjs/docs/enums/events.ZelloEvent.html +99 -74
- package/lib/commonjs/docs/enums/types.ZelloAccountStatus.html +3 -3
- package/lib/commonjs/docs/enums/types.ZelloChannelAlertLevel.html +3 -3
- package/lib/commonjs/docs/enums/types.ZelloChannelConnectionStatus.html +2 -2
- package/lib/commonjs/docs/enums/types.ZelloConnectionError.html +2 -2
- package/lib/commonjs/docs/enums/types.ZelloConnectionState.html +2 -2
- package/lib/commonjs/docs/enums/types.ZelloContactType.html +4 -2
- package/lib/commonjs/docs/enums/types.ZelloDispatchCallStatus.html +2 -2
- package/lib/commonjs/docs/enums/types.ZelloOutgoingVoiceMessageError.html +2 -2
- package/lib/commonjs/docs/enums/types.ZelloOutgoingVoiceMessageState.html +2 -2
- package/lib/commonjs/docs/enums/types.ZelloRecentEntryType.html +2 -2
- package/lib/commonjs/docs/enums/types.ZelloUserStatus.html +5 -5
- package/lib/commonjs/docs/index.html +7 -4
- package/lib/commonjs/docs/modules/events.html +1 -1
- package/lib/commonjs/docs/modules/index.html +4 -2
- package/lib/commonjs/docs/modules/sdk.html +1 -1
- package/lib/commonjs/docs/modules/types.html +4 -2
- package/lib/commonjs/docs/types/types.ZelloChannelOptions.html +4 -4
- package/lib/commonjs/docs/types/types.ZelloConfig.html +1 -1
- package/lib/commonjs/docs/types/types.ZelloConsoleSettings.html +8 -0
- package/lib/commonjs/docs/types/types.ZelloContact.html +1 -1
- package/lib/commonjs/docs/types/types.ZelloCredentials.html +1 -1
- package/lib/commonjs/docs/types/types.ZelloHistoryMessage.html +1 -1
- package/lib/commonjs/docs/types/types.ZelloMessage.html +1 -1
- package/lib/commonjs/events/index.js +6 -0
- package/lib/commonjs/events/index.js.map +1 -1
- package/lib/commonjs/sdk/index.js +173 -14
- package/lib/commonjs/sdk/index.js.map +1 -1
- package/lib/commonjs/types/index.js +56 -12
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/commonjs/utils/index.js +41 -10
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/docs/assets/navigation.js +1 -1
- package/lib/module/docs/assets/navigation.js.map +1 -1
- package/lib/module/docs/assets/search.js +1 -1
- package/lib/module/docs/assets/search.js.map +1 -1
- package/lib/module/docs/classes/sdk.Zello.html +67 -43
- package/lib/module/docs/classes/types.ZelloAlertMessage.html +7 -7
- package/lib/module/docs/classes/types.ZelloChannel.html +8 -8
- package/lib/module/docs/classes/types.ZelloChannelUser.html +5 -4
- package/lib/module/docs/classes/types.ZelloDispatchCall.html +4 -4
- package/lib/module/docs/classes/types.ZelloDispatchChannel.html +9 -9
- package/lib/module/docs/classes/types.ZelloGroupConversation.html +24 -0
- package/lib/module/docs/classes/types.ZelloHistoryAlertMessage.html +8 -8
- package/lib/module/docs/classes/types.ZelloHistoryImageMessage.html +7 -7
- package/lib/module/docs/classes/types.ZelloHistoryLocationMessage.html +11 -11
- package/lib/module/docs/classes/types.ZelloHistoryTextMessage.html +8 -8
- package/lib/module/docs/classes/types.ZelloHistoryVoiceMessage.html +8 -8
- package/lib/module/docs/classes/types.ZelloImageMessage.html +8 -8
- package/lib/module/docs/classes/types.ZelloIncomingEmergency.html +7 -7
- package/lib/module/docs/classes/types.ZelloIncomingVoiceMessage.html +6 -6
- package/lib/module/docs/classes/types.ZelloLocationMessage.html +10 -10
- package/lib/module/docs/classes/types.ZelloOutgoingEmergency.html +5 -5
- package/lib/module/docs/classes/types.ZelloOutgoingVoiceMessage.html +7 -7
- package/lib/module/docs/classes/types.ZelloRecentEntry.html +7 -7
- package/lib/module/docs/classes/types.ZelloTextMessage.html +7 -7
- package/lib/module/docs/classes/types.ZelloUser.html +10 -8
- package/lib/module/docs/classes/types.ZelloUserSupportedFeatures.html +5 -0
- package/lib/module/docs/enums/events.ZelloEvent.html +99 -74
- package/lib/module/docs/enums/types.ZelloAccountStatus.html +3 -3
- package/lib/module/docs/enums/types.ZelloChannelAlertLevel.html +3 -3
- package/lib/module/docs/enums/types.ZelloChannelConnectionStatus.html +2 -2
- package/lib/module/docs/enums/types.ZelloConnectionError.html +2 -2
- package/lib/module/docs/enums/types.ZelloConnectionState.html +2 -2
- package/lib/module/docs/enums/types.ZelloContactType.html +4 -2
- package/lib/module/docs/enums/types.ZelloDispatchCallStatus.html +2 -2
- package/lib/module/docs/enums/types.ZelloOutgoingVoiceMessageError.html +2 -2
- package/lib/module/docs/enums/types.ZelloOutgoingVoiceMessageState.html +2 -2
- package/lib/module/docs/enums/types.ZelloRecentEntryType.html +2 -2
- package/lib/module/docs/enums/types.ZelloUserStatus.html +5 -5
- package/lib/module/docs/index.html +7 -4
- package/lib/module/docs/modules/events.html +1 -1
- package/lib/module/docs/modules/index.html +4 -2
- package/lib/module/docs/modules/sdk.html +1 -1
- package/lib/module/docs/modules/types.html +4 -2
- package/lib/module/docs/types/types.ZelloChannelOptions.html +4 -4
- package/lib/module/docs/types/types.ZelloConfig.html +1 -1
- package/lib/module/docs/types/types.ZelloConsoleSettings.html +8 -0
- package/lib/module/docs/types/types.ZelloContact.html +1 -1
- package/lib/module/docs/types/types.ZelloCredentials.html +1 -1
- package/lib/module/docs/types/types.ZelloHistoryMessage.html +1 -1
- package/lib/module/docs/types/types.ZelloMessage.html +1 -1
- package/lib/module/events/index.js +6 -0
- package/lib/module/events/index.js.map +1 -1
- package/lib/module/sdk/index.js +175 -16
- package/lib/module/sdk/index.js.map +1 -1
- package/lib/module/types/index.js +57 -11
- package/lib/module/types/index.js.map +1 -1
- package/lib/module/utils/index.js +41 -11
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/commonjs/src/events/index.d.ts +38 -1
- package/lib/typescript/commonjs/src/events/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/sdk/index.d.ts +38 -4
- package/lib/typescript/commonjs/src/sdk/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/index.d.ts +66 -10
- package/lib/typescript/commonjs/src/types/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/utils/index.d.ts +2 -1
- package/lib/typescript/commonjs/src/utils/index.d.ts.map +1 -1
- package/lib/typescript/module/src/events/index.d.ts +38 -1
- package/lib/typescript/module/src/events/index.d.ts.map +1 -1
- package/lib/typescript/module/src/sdk/index.d.ts +38 -4
- package/lib/typescript/module/src/sdk/index.d.ts.map +1 -1
- package/lib/typescript/module/src/types/index.d.ts +66 -10
- package/lib/typescript/module/src/types/index.d.ts.map +1 -1
- package/lib/typescript/module/src/utils/index.d.ts +2 -1
- package/lib/typescript/module/src/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-zello-sdk.podspec +1 -1
- package/src/events/index.ts +37 -0
- package/src/sdk/index.ts +215 -17
- package/src/types/index.ts +90 -12
- package/src/utils/index.ts +65 -20
- package/lib/commonjs/docs/classes/types.ZelloConsoleSettings.html +0 -5
- package/lib/module/docs/classes/types.ZelloConsoleSettings.html +0 -5
package/README.md
CHANGED
|
@@ -8,11 +8,13 @@ This repository contains both the React Native Bridge, as well as an example app
|
|
|
8
8
|
|
|
9
9
|
To see an example of the React Native SDK, check out [the example folder](https://github.com/zelloptt/react-native-zello-sdk/tree/master/example).
|
|
10
10
|
|
|
11
|
-
The following instructions are for the SDK
|
|
11
|
+
The following instructions are for the installation of the SDK into your application - **not** for the example app.
|
|
12
12
|
|
|
13
13
|
## Prerequisites
|
|
14
14
|
A React Native application and environment.
|
|
15
15
|
|
|
16
|
+
A thorough understanding of Zello. The best place to get started is our [documentation](https://sdk.zello.com/).
|
|
17
|
+
|
|
16
18
|
|
|
17
19
|
## Installation
|
|
18
20
|
|
|
@@ -23,7 +25,9 @@ npm install @zelloptt/react-native-zello-sdk
|
|
|
23
25
|
|
|
24
26
|
### iOS
|
|
25
27
|
|
|
26
|
-
Before getting started, please reference the iOS Installation Guide.
|
|
28
|
+
Before getting started, please reference the [iOS Installation Guide](https://sdk.zello.com/installation-guides/ios-installation-guide).
|
|
29
|
+
|
|
30
|
+
The main amendment to the guide is that there is no need to add the `ZelloSDK` as a pod directly to your project.
|
|
27
31
|
|
|
28
32
|
#### Troubleshooting
|
|
29
33
|
|
|
@@ -40,11 +44,11 @@ If you receive the above error, you should move the `Build Phases` phase named `
|
|
|
40
44
|
|
|
41
45
|
### Android
|
|
42
46
|
|
|
43
|
-
Before getting started, please reference the Android Installation Guide.
|
|
47
|
+
Before getting started, please reference the [Android Installation Guide](https://sdk.zello.com/installation-guides/android-installation-guide).
|
|
44
48
|
|
|
45
49
|
#### Dependencies
|
|
46
50
|
|
|
47
|
-
|
|
51
|
+
You may or may not need to add the repositories to your app's `build.gradle`:
|
|
48
52
|
|
|
49
53
|
```
|
|
50
54
|
repositories {
|
|
@@ -113,6 +117,7 @@ class MainApplication : Application(), ReactApplication {
|
|
|
113
117
|
|
|
114
118
|
override fun onCreate() {
|
|
115
119
|
super.onCreate()
|
|
120
|
+
// Don't forget to start the SDK!
|
|
116
121
|
zello.start()
|
|
117
122
|
}
|
|
118
123
|
}
|
package/android/build.gradle
CHANGED
|
@@ -14,6 +14,7 @@ import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
|
14
14
|
import com.zello.sdk.Zello
|
|
15
15
|
import com.zello.sdk.ZelloAccountStatus
|
|
16
16
|
import com.zello.sdk.ZelloAlertMessage
|
|
17
|
+
import com.zello.sdk.ZelloChannel
|
|
17
18
|
import com.zello.sdk.ZelloConnectionError
|
|
18
19
|
import com.zello.sdk.ZelloContact
|
|
19
20
|
import com.zello.sdk.ZelloCredentials
|
|
@@ -28,6 +29,7 @@ import com.zello.sdk.ZelloOutgoingEmergency
|
|
|
28
29
|
import com.zello.sdk.ZelloOutgoingVoiceMessage
|
|
29
30
|
import com.zello.sdk.ZelloRecentEntry
|
|
30
31
|
import com.zello.sdk.ZelloConsoleSettings
|
|
32
|
+
import com.zello.sdk.ZelloGroupConversation
|
|
31
33
|
import com.zello.sdk.ZelloState
|
|
32
34
|
import com.zello.sdk.ZelloTextMessage
|
|
33
35
|
import javax.inject.Inject
|
|
@@ -187,6 +189,31 @@ class ZelloAndroidSdkModule @Inject constructor(
|
|
|
187
189
|
zello.endDispatchCall(call, dispatchChannel)
|
|
188
190
|
}
|
|
189
191
|
|
|
192
|
+
@ReactMethod
|
|
193
|
+
fun createGroupConversation(usernames: ReadableArray, displayName: String?) {
|
|
194
|
+
val users = usernames.toArrayList().mapNotNull { zello.getUser(it as String) }
|
|
195
|
+
zello.createGroupConversation(users, displayName)
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
@ReactMethod
|
|
199
|
+
fun addUsersToGroupConversation(conversationName: String, usernames: ReadableArray) {
|
|
200
|
+
val conversation = zello.getGroupConversation(conversationName) ?: return
|
|
201
|
+
val users = usernames.toArrayList().mapNotNull { zello.getUser(it as String) }
|
|
202
|
+
zello.addUsersToGroupConversation(conversation, users)
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@ReactMethod
|
|
206
|
+
fun leaveGroupConversation(conversationName: String) {
|
|
207
|
+
val conversation = zello.getGroupConversation(conversationName) ?: return
|
|
208
|
+
zello.leaveGroupConversation(conversation)
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
@ReactMethod
|
|
212
|
+
fun renameGroupConversation(conversationName: String, newName: String) {
|
|
213
|
+
val conversation = zello.getGroupConversation(conversationName) ?: return
|
|
214
|
+
zello.renameGroupConversation(conversation, newName)
|
|
215
|
+
}
|
|
216
|
+
|
|
190
217
|
override fun onStateChanged(sdk: Zello, state: ZelloState) {
|
|
191
218
|
}
|
|
192
219
|
|
|
@@ -205,7 +232,7 @@ class ZelloAndroidSdkModule @Inject constructor(
|
|
|
205
232
|
}
|
|
206
233
|
|
|
207
234
|
override fun onContactListUpdated(zello: Zello) {
|
|
208
|
-
val map = ZelloAndroidSdkModuleHelper.contactListToWritableMap(this.zello.users, this.zello.channels)
|
|
235
|
+
val map = ZelloAndroidSdkModuleHelper.contactListToWritableMap(this.zello.users, this.zello.channels, this.zello.groupConversations)
|
|
209
236
|
this.zello.emergencyChannel?.let {
|
|
210
237
|
map.putMap("emergencyChannel", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(it))
|
|
211
238
|
}
|
|
@@ -239,7 +266,7 @@ class ZelloAndroidSdkModule @Inject constructor(
|
|
|
239
266
|
override fun onIncomingAlertMessage(zello: Zello, message: ZelloAlertMessage) {
|
|
240
267
|
sendEvent(reactApplicationContext, "onIncomingAlertMessage", Arguments.createMap().apply {
|
|
241
268
|
putMap("contact", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(contact = message.contact))
|
|
242
|
-
|
|
269
|
+
putMap("channelUser", ZelloAndroidSdkModuleHelper.channelUserToWritableMap(message.channelUser))
|
|
243
270
|
putString("timestamp", message.timestamp.toString())
|
|
244
271
|
putString("text", message.text)
|
|
245
272
|
})
|
|
@@ -264,7 +291,7 @@ class ZelloAndroidSdkModule @Inject constructor(
|
|
|
264
291
|
override fun onIncomingImageMessage(message: ZelloImageMessage) {
|
|
265
292
|
sendEvent(reactApplicationContext, "onIncomingImageMessage", Arguments.createMap().apply {
|
|
266
293
|
putMap("contact", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(contact = message.contact))
|
|
267
|
-
|
|
294
|
+
putMap("channelUser", ZelloAndroidSdkModuleHelper.channelUserToWritableMap(message.channelUser))
|
|
268
295
|
putString("timestamp", message.timestamp.toString())
|
|
269
296
|
putString("thumbnail", ZelloAndroidSdkModuleHelper.bitmapToBase64String(message.thumbnail))
|
|
270
297
|
putString("image", ZelloAndroidSdkModuleHelper.bitmapToBase64String(message.image))
|
|
@@ -274,7 +301,7 @@ class ZelloAndroidSdkModule @Inject constructor(
|
|
|
274
301
|
override fun onIncomingLocationMessage(zello: Zello, message: ZelloLocationMessage) {
|
|
275
302
|
sendEvent(reactApplicationContext, "onIncomingLocationMessage", Arguments.createMap().apply {
|
|
276
303
|
putMap("contact", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(contact = message.contact))
|
|
277
|
-
|
|
304
|
+
putMap("channelUser", ZelloAndroidSdkModuleHelper.channelUserToWritableMap(message.channelUser))
|
|
278
305
|
putString("timestamp", message.timestamp.toString())
|
|
279
306
|
putString("address", message.address)
|
|
280
307
|
putDouble("latitude", message.latitude)
|
|
@@ -324,7 +351,7 @@ class ZelloAndroidSdkModule @Inject constructor(
|
|
|
324
351
|
override fun onIncomingTextMessage(message: ZelloTextMessage) {
|
|
325
352
|
sendEvent(reactApplicationContext, "onIncomingTextMessage", Arguments.createMap().apply {
|
|
326
353
|
putMap("contact", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(contact = message.contact))
|
|
327
|
-
|
|
354
|
+
putMap("channelUser", ZelloAndroidSdkModuleHelper.channelUserToWritableMap(message.channelUser))
|
|
328
355
|
putString("timestamp", message.timestamp.toString())
|
|
329
356
|
putString("text", message.text)
|
|
330
357
|
})
|
|
@@ -333,7 +360,7 @@ class ZelloAndroidSdkModule @Inject constructor(
|
|
|
333
360
|
override fun onIncomingVoiceMessageStarted(zello: Zello, message: ZelloIncomingVoiceMessage) {
|
|
334
361
|
sendEvent(reactApplicationContext, "onIncomingVoiceMessageStarted", Arguments.createMap().apply {
|
|
335
362
|
putMap("contact", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(contact = message.contact))
|
|
336
|
-
|
|
363
|
+
putMap("channelUser", ZelloAndroidSdkModuleHelper.channelUserToWritableMap(message.channelUser))
|
|
337
364
|
putString("timestamp", message.timestamp.toString())
|
|
338
365
|
})
|
|
339
366
|
}
|
|
@@ -341,7 +368,7 @@ class ZelloAndroidSdkModule @Inject constructor(
|
|
|
341
368
|
override fun onIncomingVoiceMessageStopped(zello: Zello, message: ZelloIncomingVoiceMessage) {
|
|
342
369
|
sendEvent(reactApplicationContext, "onIncomingVoiceMessageStopped", Arguments.createMap().apply {
|
|
343
370
|
putMap("contact", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(contact = message.contact))
|
|
344
|
-
|
|
371
|
+
putMap("channelUser", ZelloAndroidSdkModuleHelper.channelUserToWritableMap(message.channelUser))
|
|
345
372
|
putString("timestamp", message.timestamp.toString())
|
|
346
373
|
})
|
|
347
374
|
}
|
|
@@ -474,6 +501,44 @@ class ZelloAndroidSdkModule @Inject constructor(
|
|
|
474
501
|
})
|
|
475
502
|
}
|
|
476
503
|
|
|
504
|
+
override fun onGroupConversationLeft(sdk: Zello, conversation: ZelloGroupConversation) {
|
|
505
|
+
sendEvent(reactApplicationContext, "onGroupConversationLeft", Arguments.createMap().apply {
|
|
506
|
+
putMap("conversation", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(conversation))
|
|
507
|
+
})
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
override fun onGroupConversationInvite(sdk: Zello, conversation: ZelloGroupConversation) {
|
|
511
|
+
sendEvent(reactApplicationContext, "onGroupConversationInvite", Arguments.createMap().apply {
|
|
512
|
+
putMap("conversation", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(conversation))
|
|
513
|
+
})
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
override fun onGroupConversationCreated(sdk: Zello, conversation: ZelloGroupConversation) {
|
|
517
|
+
sendEvent(reactApplicationContext, "onGroupConversationCreated", Arguments.createMap().apply {
|
|
518
|
+
putMap("conversation", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(conversation))
|
|
519
|
+
})
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
override fun onGroupConversationRenamed(sdk: Zello, conversation: ZelloGroupConversation) {
|
|
523
|
+
sendEvent(reactApplicationContext, "onGroupConversationRenamed", Arguments.createMap().apply {
|
|
524
|
+
putMap("conversation", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(conversation))
|
|
525
|
+
})
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
override fun onGroupConversationUsersAdded(sdk: Zello, conversation: ZelloGroupConversation, users: List<ZelloChannel.User>) {
|
|
529
|
+
sendEvent(reactApplicationContext, "onGroupConversationUsersAdded", Arguments.createMap().apply {
|
|
530
|
+
putMap("conversation", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(conversation))
|
|
531
|
+
putArray("users", ZelloAndroidSdkModuleHelper.channelUsersToWritableArray(users))
|
|
532
|
+
})
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
override fun onGroupConversationUsersLeft(sdk: Zello, conversation: ZelloGroupConversation, users: List<ZelloChannel.User>) {
|
|
536
|
+
sendEvent(reactApplicationContext, "onGroupConversationUsersLeft", Arguments.createMap().apply {
|
|
537
|
+
putMap("conversation", ZelloAndroidSdkModuleHelper.sdkContactToWritableMap(conversation))
|
|
538
|
+
putArray("users", ZelloAndroidSdkModuleHelper.channelUsersToWritableArray(users))
|
|
539
|
+
})
|
|
540
|
+
}
|
|
541
|
+
|
|
477
542
|
private fun sendEvent(reactContext: ReactContext, name: String, params: WritableMap?) {
|
|
478
543
|
reactContext
|
|
479
544
|
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
@@ -10,6 +10,7 @@ import com.zello.sdk.ZelloChannel
|
|
|
10
10
|
import com.zello.sdk.ZelloConsoleSettings
|
|
11
11
|
import com.zello.sdk.ZelloContact
|
|
12
12
|
import com.zello.sdk.ZelloDispatchChannel
|
|
13
|
+
import com.zello.sdk.ZelloGroupConversation
|
|
13
14
|
import com.zello.sdk.ZelloHistoryAlertMessage
|
|
14
15
|
import com.zello.sdk.ZelloHistoryImageMessage
|
|
15
16
|
import com.zello.sdk.ZelloHistoryLocationMessage
|
|
@@ -22,7 +23,7 @@ import com.zello.sdk.ZelloUser
|
|
|
22
23
|
import java.io.ByteArrayOutputStream
|
|
23
24
|
|
|
24
25
|
object ZelloAndroidSdkModuleHelper {
|
|
25
|
-
fun contactListToWritableMap(users: List<ZelloUser>, channels: List<ZelloChannel>): WritableMap {
|
|
26
|
+
fun contactListToWritableMap(users: List<ZelloUser>, channels: List<ZelloChannel>, groupConversation: List<ZelloGroupConversation>): WritableMap {
|
|
26
27
|
return Arguments.createMap().apply {
|
|
27
28
|
putArray("users", WritableNativeArray().apply {
|
|
28
29
|
users.forEach { user ->
|
|
@@ -34,6 +35,11 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
34
35
|
pushMap(sdkContactToWritableMap(channel))
|
|
35
36
|
}
|
|
36
37
|
})
|
|
38
|
+
putArray("groupConversations", WritableNativeArray().apply {
|
|
39
|
+
groupConversation.forEach { conversation ->
|
|
40
|
+
pushMap(sdkContactToWritableMap(conversation))
|
|
41
|
+
}
|
|
42
|
+
})
|
|
37
43
|
}
|
|
38
44
|
}
|
|
39
45
|
|
|
@@ -48,6 +54,9 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
48
54
|
putString("customStatusText", contact.customStatusText)
|
|
49
55
|
putString("profilePictureUrl", contact.profilePictureUrl)
|
|
50
56
|
putString("profilePictureThumbnailUrl", contact.profilePictureThumbnailUrl)
|
|
57
|
+
putMap("supportedFeatures", WritableNativeMap().apply {
|
|
58
|
+
putBoolean("groupConversations", contact.supportedFeatures.groupConversations)
|
|
59
|
+
})
|
|
51
60
|
}
|
|
52
61
|
|
|
53
62
|
is ZelloChannel -> WritableNativeMap().apply {
|
|
@@ -71,6 +80,19 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
71
80
|
contact.currentCall?.let { call ->
|
|
72
81
|
putMap("currentCall", callToWritableMap(call))
|
|
73
82
|
}
|
|
83
|
+
} else if (contact is ZelloGroupConversation) {
|
|
84
|
+
putBoolean("isGroupConversation", true)
|
|
85
|
+
putString("displayName", contact.displayName)
|
|
86
|
+
putArray("users", WritableNativeArray().apply {
|
|
87
|
+
contact.users.forEach { user ->
|
|
88
|
+
pushMap(channelUserToWritableMap(user))
|
|
89
|
+
}
|
|
90
|
+
})
|
|
91
|
+
putArray("onlineUsers", WritableNativeArray().apply {
|
|
92
|
+
contact.onlineUsers.forEach { user ->
|
|
93
|
+
pushMap(channelUserToWritableMap(user))
|
|
94
|
+
}
|
|
95
|
+
})
|
|
74
96
|
}
|
|
75
97
|
}
|
|
76
98
|
|
|
@@ -89,7 +111,7 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
89
111
|
fun incomingEmergencyToWritableMap(incomingEmergency: ZelloIncomingEmergency): WritableMap {
|
|
90
112
|
return Arguments.createMap().apply {
|
|
91
113
|
putMap("channel", sdkContactToWritableMap(contact = incomingEmergency.channel))
|
|
92
|
-
|
|
114
|
+
putMap("channelUser", channelUserToWritableMap(incomingEmergency.channelUser))
|
|
93
115
|
putString("emergencyId", incomingEmergency.emergencyId)
|
|
94
116
|
putString("startTimestamp", incomingEmergency.startTimestamp.toString())
|
|
95
117
|
incomingEmergency.endTimestamp?.let {
|
|
@@ -114,7 +136,7 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
114
136
|
recents.forEach {
|
|
115
137
|
pushMap(WritableNativeMap().apply {
|
|
116
138
|
putMap("contact", sdkContactToWritableMap(it.contact))
|
|
117
|
-
|
|
139
|
+
putMap("channelUser", channelUserToWritableMap(it.channelUser))
|
|
118
140
|
putString("type", it.type.toString())
|
|
119
141
|
putString("timestamp", it.timestamp.toString())
|
|
120
142
|
putBoolean("incoming", it.incoming)
|
|
@@ -146,7 +168,7 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
146
168
|
return Arguments.createMap().apply {
|
|
147
169
|
putMap("contact", sdkContactToWritableMap(contact = message.contact))
|
|
148
170
|
putString("type", "voice")
|
|
149
|
-
|
|
171
|
+
putMap("channelUser", channelUserToWritableMap(message.channelUser))
|
|
150
172
|
putString("timestamp", message.timestamp.toString())
|
|
151
173
|
putString("historyId", message.historyId)
|
|
152
174
|
putBoolean("incoming", message.incoming)
|
|
@@ -158,7 +180,7 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
158
180
|
return Arguments.createMap().apply {
|
|
159
181
|
putMap("contact", sdkContactToWritableMap(contact = message.contact))
|
|
160
182
|
putString("type", "image")
|
|
161
|
-
|
|
183
|
+
putMap("channelUser", channelUserToWritableMap(message.channelUser))
|
|
162
184
|
putString("timestamp", message.timestamp.toString())
|
|
163
185
|
putString("historyId", message.historyId)
|
|
164
186
|
putBoolean("incoming", message.incoming)
|
|
@@ -169,7 +191,7 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
169
191
|
return Arguments.createMap().apply {
|
|
170
192
|
putMap("contact", sdkContactToWritableMap(contact = message.contact))
|
|
171
193
|
putString("type", "text")
|
|
172
|
-
|
|
194
|
+
putMap("channelUser", channelUserToWritableMap(message.channelUser))
|
|
173
195
|
putString("timestamp", message.timestamp.toString())
|
|
174
196
|
putString("historyId", message.historyId)
|
|
175
197
|
putBoolean("incoming", message.incoming)
|
|
@@ -181,7 +203,7 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
181
203
|
return Arguments.createMap().apply {
|
|
182
204
|
putMap("contact", sdkContactToWritableMap(contact = message.contact))
|
|
183
205
|
putString("type", "alert")
|
|
184
|
-
|
|
206
|
+
putMap("channelUser", channelUserToWritableMap(message.channelUser))
|
|
185
207
|
putString("timestamp", message.timestamp.toString())
|
|
186
208
|
putString("historyId", message.historyId)
|
|
187
209
|
putBoolean("incoming", message.incoming)
|
|
@@ -193,7 +215,7 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
193
215
|
return Arguments.createMap().apply {
|
|
194
216
|
putMap("contact", sdkContactToWritableMap(contact = message.contact))
|
|
195
217
|
putString("type", "location")
|
|
196
|
-
|
|
218
|
+
putMap("channelUser", channelUserToWritableMap(message.channelUser))
|
|
197
219
|
putString("timestamp", message.timestamp.toString())
|
|
198
220
|
putString("historyId", message.historyId)
|
|
199
221
|
putBoolean("incoming", message.incoming)
|
|
@@ -207,6 +229,11 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
207
229
|
fun consoleSettingsToWritableMap(settings: ZelloConsoleSettings): WritableMap {
|
|
208
230
|
return Arguments.createMap().apply {
|
|
209
231
|
putBoolean("allowNonDispatchersToEndCalls", settings.allowNonDispatchersToEndCalls)
|
|
232
|
+
putBoolean("allowTextMessages", settings.allowTextMessages)
|
|
233
|
+
putBoolean("allowImageMessages", settings.allowImageMessages)
|
|
234
|
+
putBoolean("allowLocationMessages", settings.allowLocationMessages)
|
|
235
|
+
putBoolean("allowAlertMessages", settings.allowAlertMessages)
|
|
236
|
+
putBoolean("allowGroupConversations", settings.allowGroupConversations)
|
|
210
237
|
}
|
|
211
238
|
}
|
|
212
239
|
|
|
@@ -218,4 +245,22 @@ object ZelloAndroidSdkModuleHelper {
|
|
|
218
245
|
putString("timestamp", call.timestamp.toString())
|
|
219
246
|
}
|
|
220
247
|
}
|
|
248
|
+
|
|
249
|
+
fun channelUserToWritableMap(channelUser: ZelloChannel.User?): WritableMap? {
|
|
250
|
+
if (channelUser == null) {
|
|
251
|
+
return null
|
|
252
|
+
}
|
|
253
|
+
return Arguments.createMap().apply {
|
|
254
|
+
putString("name", channelUser.name)
|
|
255
|
+
putString("displayName", channelUser.displayName)
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
fun channelUsersToWritableArray(channelUsers: List<ZelloChannel.User>): WritableNativeArray {
|
|
260
|
+
return WritableNativeArray().apply {
|
|
261
|
+
channelUsers.forEach {
|
|
262
|
+
pushMap(channelUserToWritableMap(it))
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
221
266
|
}
|
|
@@ -3,7 +3,12 @@ import ZelloSDK
|
|
|
3
3
|
extension ZelloConsoleSettings {
|
|
4
4
|
var jsonDictionary: [AnyHashable: Any] {
|
|
5
5
|
return [
|
|
6
|
-
"allowNonDispatchersToEndCalls": allowsNonDispatchersToEndCalls
|
|
6
|
+
"allowNonDispatchersToEndCalls": allowsNonDispatchersToEndCalls,
|
|
7
|
+
"allowImageMessages": allowsImageMessages,
|
|
8
|
+
"allowLocationMessages": allowsLocationMessages,
|
|
9
|
+
"allowTextMessages": allowsTextMessages,
|
|
10
|
+
"allowAlertMessages": allowsAlertMessages,
|
|
11
|
+
"allowGroupConversations": allowsGroupConversations
|
|
7
12
|
]
|
|
8
13
|
}
|
|
9
14
|
}
|
|
@@ -52,6 +52,55 @@ extension ZelloUser {
|
|
|
52
52
|
if let url = profilePictureThumbnailURL?.absoluteString {
|
|
53
53
|
body["profilePictureThumbnailUrl"] = url
|
|
54
54
|
}
|
|
55
|
+
body["supportedFeatures"] = [
|
|
56
|
+
"groupConversations": supportedFeatures.groupConversations
|
|
57
|
+
]
|
|
58
|
+
return body
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
extension ZelloGroupConversation {
|
|
63
|
+
var jsonDictionary: [AnyHashable: Any] {
|
|
64
|
+
let body: [AnyHashable: Any] = [
|
|
65
|
+
"name": name,
|
|
66
|
+
"isChannel": true,
|
|
67
|
+
"isMuted": isMuted,
|
|
68
|
+
"isConnected": status == .connected,
|
|
69
|
+
"isConnecting": status == .connecting,
|
|
70
|
+
"usersOnline": onlineUsers.count,
|
|
71
|
+
"options": [
|
|
72
|
+
"noDisconnect": false,
|
|
73
|
+
"hidePowerButton": false,
|
|
74
|
+
"listenOnly": false,
|
|
75
|
+
"allowAlerts": true,
|
|
76
|
+
"allowTextMessages": true,
|
|
77
|
+
"allowLocations": true
|
|
78
|
+
],
|
|
79
|
+
"isGroupConversation": true,
|
|
80
|
+
"displayName": displayName,
|
|
81
|
+
"users": users.map { user in user.jsonDictionary },
|
|
82
|
+
"onlineUsers": onlineUsers.map { user in user.jsonDictionary }
|
|
83
|
+
]
|
|
84
|
+
return body
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
extension ZelloGroupConversationUser {
|
|
89
|
+
var jsonDictionary: [AnyHashable: Any] {
|
|
90
|
+
let body: [AnyHashable: Any] = [
|
|
91
|
+
"name": name,
|
|
92
|
+
"displayName": displayName
|
|
93
|
+
]
|
|
94
|
+
return body
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
extension ZelloChannel.User {
|
|
99
|
+
var jsonDictionary: [AnyHashable: Any] {
|
|
100
|
+
let body: [AnyHashable: Any] = [
|
|
101
|
+
"name": name,
|
|
102
|
+
"displayName": displayName
|
|
103
|
+
]
|
|
55
104
|
return body
|
|
56
105
|
}
|
|
57
106
|
}
|
|
@@ -20,9 +20,14 @@ extension ZelloIOSSdkModule: Zello.Delegate {
|
|
|
20
20
|
func zelloDidUpdateContactList(_ zello: Zello) {
|
|
21
21
|
let users = zello.users.map { ZelloContact.user($0).jsonDictionary }
|
|
22
22
|
let channels = zello.channels.map { ZelloContact.channel($0).jsonDictionary }
|
|
23
|
+
// TODO It's not clear the asZelloGroupConversation is necessary - without it, the ZelloContact.jsonDictionary impl is used
|
|
24
|
+
let groupConversations = zello.groupConversations.compactMap {
|
|
25
|
+
ZelloContact.conversation($0).asZelloGroupConversation()?.jsonDictionary
|
|
26
|
+
}
|
|
23
27
|
var body: [AnyHashable: Any] = [
|
|
24
28
|
"users": users,
|
|
25
|
-
"channels": channels
|
|
29
|
+
"channels": channels,
|
|
30
|
+
"groupConversations": groupConversations
|
|
26
31
|
]
|
|
27
32
|
if let emergencyChannel = zello.emergencyChannel {
|
|
28
33
|
body["emergencyChannel"] = emergencyChannel.jsonDictionary
|
|
@@ -80,7 +85,7 @@ extension ZelloIOSSdkModule: Zello.Delegate {
|
|
|
80
85
|
"timestamp": incomingVoiceMessage.timestamp.bridgeTimestamp
|
|
81
86
|
]
|
|
82
87
|
if let channelUser = incomingVoiceMessage.channelUser {
|
|
83
|
-
body["
|
|
88
|
+
body["channelUser"] = channelUser.jsonDictionary
|
|
84
89
|
}
|
|
85
90
|
sendSdkEvent(withName: "onIncomingVoiceMessageStarted", body: body)
|
|
86
91
|
}
|
|
@@ -91,7 +96,7 @@ extension ZelloIOSSdkModule: Zello.Delegate {
|
|
|
91
96
|
"timestamp": incomingVoiceMessage.timestamp.bridgeTimestamp
|
|
92
97
|
]
|
|
93
98
|
if let channelUser = incomingVoiceMessage.channelUser {
|
|
94
|
-
body["
|
|
99
|
+
body["channelUser"] = channelUser.jsonDictionary
|
|
95
100
|
}
|
|
96
101
|
sendSdkEvent(withName: "onIncomingVoiceMessageStopped", body: body)
|
|
97
102
|
}
|
|
@@ -103,7 +108,7 @@ extension ZelloIOSSdkModule: Zello.Delegate {
|
|
|
103
108
|
"timestamp": textMessage.timestamp.bridgeTimestamp
|
|
104
109
|
]
|
|
105
110
|
if let channelUser = textMessage.channelUser {
|
|
106
|
-
body["
|
|
111
|
+
body["channelUser"] = channelUser.jsonDictionary
|
|
107
112
|
}
|
|
108
113
|
sendSdkEvent(withName: "onIncomingTextMessage", body: body)
|
|
109
114
|
}
|
|
@@ -133,7 +138,7 @@ extension ZelloIOSSdkModule: Zello.Delegate {
|
|
|
133
138
|
]
|
|
134
139
|
|
|
135
140
|
if let channelUser = imageMessage.channelUser {
|
|
136
|
-
body["
|
|
141
|
+
body["channelUser"] = channelUser.jsonDictionary
|
|
137
142
|
}
|
|
138
143
|
|
|
139
144
|
body["image"] = imageMessage.image.base64String
|
|
@@ -171,7 +176,7 @@ extension ZelloIOSSdkModule: Zello.Delegate {
|
|
|
171
176
|
"accuracy": locationMessage.location.horizontalAccuracy,
|
|
172
177
|
]
|
|
173
178
|
if let channelUser = locationMessage.channelUser {
|
|
174
|
-
body["
|
|
179
|
+
body["channelUser"] = channelUser.jsonDictionary
|
|
175
180
|
}
|
|
176
181
|
if let address = locationMessage.address {
|
|
177
182
|
body["address"] = address
|
|
@@ -186,7 +191,7 @@ extension ZelloIOSSdkModule: Zello.Delegate {
|
|
|
186
191
|
"timestamp": alertMessage.timestamp.bridgeTimestamp
|
|
187
192
|
]
|
|
188
193
|
if let channelUser = alertMessage.channelUser {
|
|
189
|
-
body["
|
|
194
|
+
body["channelUser"] = channelUser.jsonDictionary
|
|
190
195
|
}
|
|
191
196
|
sendSdkEvent(withName: "onIncomingAlertMessage", body: body)
|
|
192
197
|
}
|
|
@@ -318,4 +323,36 @@ extension ZelloIOSSdkModule: Zello.Delegate {
|
|
|
318
323
|
func zello(_ zello: Zello, didUpdate consoleSettings: ZelloConsoleSettings) {
|
|
319
324
|
sendSdkEvent(withName: "onConsoleSettingsChanged", body: consoleSettings.jsonDictionary)
|
|
320
325
|
}
|
|
326
|
+
|
|
327
|
+
func zello(_ zello: Zello, didJoin conversation: ZelloGroupConversation) {
|
|
328
|
+
sendSdkEvent(withName: "onGroupConversationInvite", body: ["conversation": conversation.jsonDictionary])
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
func zello(_ zello: Zello, didLeave conversation: ZelloGroupConversation) {
|
|
332
|
+
sendSdkEvent(withName: "onGroupConversationLeft", body: ["conversation": conversation.jsonDictionary])
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
func zello(_ zello: Zello, didCreate conversation: ZelloGroupConversation) {
|
|
336
|
+
sendSdkEvent(withName: "onGroupConversationCreated", body: ["conversation": conversation.jsonDictionary])
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
func zello(_ zello: Zello, didRename conversation: ZelloGroupConversation) {
|
|
340
|
+
sendSdkEvent(withName: "onGroupConversationRenamed", body: ["conversation": conversation.jsonDictionary])
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
func zello(_ zello: Zello, didAdd users: [ZelloGroupConversationUser], to conversation: ZelloGroupConversation) {
|
|
344
|
+
let body: [AnyHashable: Any] = [
|
|
345
|
+
"conversation": conversation.jsonDictionary,
|
|
346
|
+
"users": users.map { user in user.jsonDictionary }
|
|
347
|
+
]
|
|
348
|
+
sendSdkEvent(withName: "onGroupConversationUsersAdded", body: body)
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
func zello(_ zello: Zello, didRemove users: [ZelloGroupConversationUser], from conversation: ZelloGroupConversation) {
|
|
352
|
+
let body: [AnyHashable: Any] = [
|
|
353
|
+
"conversation": conversation.jsonDictionary,
|
|
354
|
+
"users": users.map { user in user.jsonDictionary }
|
|
355
|
+
]
|
|
356
|
+
sendSdkEvent(withName: "onGroupConversationUsersLeft", body: body)
|
|
357
|
+
}
|
|
321
358
|
}
|
|
@@ -108,14 +108,28 @@ import ZelloSDK
|
|
|
108
108
|
guard let channel = zello.channel(named: name) else {
|
|
109
109
|
return
|
|
110
110
|
}
|
|
111
|
-
zello.
|
|
111
|
+
zello.connect(to: channel)
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
@objc func disconnectChannel(_ name: String) {
|
|
115
115
|
guard let channel = zello.channel(named: name) else {
|
|
116
116
|
return
|
|
117
117
|
}
|
|
118
|
-
zello.
|
|
118
|
+
zello.disconnect(from: channel)
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@objc func connectGroupConversation(_ name: String) {
|
|
122
|
+
guard let conversation = zello.conversation(named: name) else {
|
|
123
|
+
return
|
|
124
|
+
}
|
|
125
|
+
zello.connect(to: conversation)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@objc func disconnectGroupConversation(_ name: String) {
|
|
129
|
+
guard let conversation = zello.conversation(named: name) else {
|
|
130
|
+
return
|
|
131
|
+
}
|
|
132
|
+
zello.disconnect(from: conversation)
|
|
119
133
|
}
|
|
120
134
|
|
|
121
135
|
@objc func submitProblemReport() {
|
|
@@ -169,7 +183,7 @@ import ZelloSDK
|
|
|
169
183
|
}
|
|
170
184
|
|
|
171
185
|
@objc func playHistoryMessage(_ historyId: String, contactName: String, isChannel: Bool) {
|
|
172
|
-
guard
|
|
186
|
+
guard
|
|
173
187
|
let contact = isChannel ? zello.channel(named: contactName).map(ZelloContact.channel) : zello.user(named: contactName).map(ZelloContact.user),
|
|
174
188
|
let message = zello.getHistoryMessage(historyId, contact: contact) as? ZelloHistoryVoiceMessage
|
|
175
189
|
else {
|
|
@@ -196,7 +210,7 @@ import ZelloSDK
|
|
|
196
210
|
}
|
|
197
211
|
|
|
198
212
|
@objc func endDispatchCall(_ channelName: String) {
|
|
199
|
-
guard
|
|
213
|
+
guard
|
|
200
214
|
let dispatchChannel = zello.channel(named: channelName),
|
|
201
215
|
let call = dispatchChannel.dispatchInfo?.currentCall
|
|
202
216
|
else {
|
|
@@ -204,6 +218,33 @@ import ZelloSDK
|
|
|
204
218
|
}
|
|
205
219
|
zello.end(call, on: dispatchChannel)
|
|
206
220
|
}
|
|
221
|
+
|
|
222
|
+
@objc func createGroupConversation(_ usernames: [Any], displayName: String?) {
|
|
223
|
+
let users = usernames.compactMap { username in zello.user(named: username as? String ?? "") }
|
|
224
|
+
zello.createGroupConversation(users: users, displayName: displayName)
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
@objc func addUsersToGroupConversation(_ conversationName: String, usernames: [Any]) {
|
|
228
|
+
guard let conversation = zello.conversation(named: conversationName) else {
|
|
229
|
+
return
|
|
230
|
+
}
|
|
231
|
+
let users = usernames.compactMap { username in zello.user(named: username as? String ?? "") }
|
|
232
|
+
zello.add(users, to: conversation)
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
@objc func leaveGroupConversation(_ conversationName: String) {
|
|
236
|
+
guard let conversation = zello.conversation(named: conversationName) else {
|
|
237
|
+
return
|
|
238
|
+
}
|
|
239
|
+
zello.leave(conversation)
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
@objc func renameGroupConversation(_ conversationName: String, newName: String) {
|
|
243
|
+
guard let conversation = zello.conversation(named: conversationName) else {
|
|
244
|
+
return
|
|
245
|
+
}
|
|
246
|
+
zello.rename(conversation, to: newName)
|
|
247
|
+
}
|
|
207
248
|
}
|
|
208
249
|
|
|
209
250
|
extension ZelloIOSSdkModule {
|
|
@@ -25,6 +25,9 @@ RCT_EXTERN_METHOD(sendAlert:(NSString *)name isChannel:(BOOL)isChannel text:(NSS
|
|
|
25
25
|
RCT_EXTERN_METHOD(connectChannel:(NSString *)name)
|
|
26
26
|
RCT_EXTERN_METHOD(disconnectChannel:(NSString *)name)
|
|
27
27
|
|
|
28
|
+
RCT_EXTERN_METHOD(connectGroupConversation:(NSString *)name)
|
|
29
|
+
RCT_EXTERN_METHOD(disconnectGroupConversation:(NSString *)name)
|
|
30
|
+
|
|
28
31
|
RCT_EXTERN_METHOD(submitProblemReport)
|
|
29
32
|
|
|
30
33
|
RCT_EXTERN_METHOD(muteContact:(NSString *)name isChannel:(BOOL)isChannel)
|
|
@@ -43,4 +46,12 @@ RCT_EXTERN_METHOD(getHistoryImageData:(NSString *)historyId contactName:(NSStrin
|
|
|
43
46
|
|
|
44
47
|
RCT_EXTERN_METHOD(endDispatchCall:(NSString *)channelName)
|
|
45
48
|
|
|
49
|
+
RCT_EXTERN_METHOD(createGroupConversation:(NSArray *)usernames displayName:(NSString *)displayName)
|
|
50
|
+
|
|
51
|
+
RCT_EXTERN_METHOD(addUsersToGroupConversation:(NSString *)conversationName usernames:(NSArray *)usernames)
|
|
52
|
+
|
|
53
|
+
RCT_EXTERN_METHOD(leaveGroupConversation:(NSString *)conversationName)
|
|
54
|
+
|
|
55
|
+
RCT_EXTERN_METHOD(renameGroupConversation:(NSString *)conversationName newName:(NSString *)newName)
|
|
56
|
+
|
|
46
57
|
@end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
window.navigationData = "data:application/octet-stream;base64,
|
|
3
|
+
window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE52ZX2/TMBTFv0t4rWAbQ7C+oVJg0tAkNnhg2oOV3KXRUjtynGkV2ndHSdsljq/tY17bc37HseM/17n7mxl6NtkyoyeSps0WWSPMJltmW1V0NbXv9r+/3ZhtnS2yx0oW2fJskeWbqi40yWx594r4Q3Wt1r1+xJDstq+QUWDzPr3cvyxeMZUs6NltyPAz1I6CHkRXmxDizajZo85PL87fn5xPmjE09nOeq06aGyNMx3TOBMjKw+yatPlBbStKAtC2OkhebYSUVMehoxDhDU24oqcEsmVBMlZKSspNpSTa534jknfd9BY8ZtQj9F8taRh9EIe5Sj5UJYA86mK0Q5+ttVZISx0DyO/HBHjJXUOM36qabsiYSpbIIDqGGN+IPLyQzIQI73bXYH0xEYe5mgqSphI10geWOMj9UrWNMPlmJWpgys/UMBmd6KwHS0HXQ9cQ5M/2Oh/1KAuyvmnVNSsln0i3op8BcS5nCWZ8r1qj9C5t4+FNSM7lVpSUmjMzITlXKh8ePzXK9SFpqSlp9Ft6Th4a24Ok/FZVnjwyM1MwJ23oU8b8UuZqW8lyvSVdksx3AJ6xQBlp3eRxBZOSX93EdxbmgrzrzpQqrfc5C5SR1vseV3ISeBIKWZMzwdNRyBrM/Ek5SbOWRgPjZYtRLnamcQ1BftJimLAKYsdy5Dzea9Dzi6WNU7umUdpQ8ZWE6TShAYzNzpqW2m3x6GLb4hEv90d7Xou2PdiHv2zI6Zld5Ztdwz3T8DMe76nP97cOe5arm18+4NWuw3W0GNtf5foS5o5Yjq+yc/m2EubO1qwAd1DGuW5lxDGPqggvVF84WFccoQP7hhPi9fxHVqzvvZ5Ilnc9dxJmygiXWyUd5CiK0Pjy5bj8TCf9ROguRrE7MwZ40KAse5vx83pdlMnX4gx0KsSpwNPPtFF2oKJl6I46yg9Ws0wCo0cz+HLGnzHVoxneUsAfM7OgSeyxyp8ykaMJ/NHdHzHVRzPgwUgahUBdyaHnapgPdw1niKakvESpb0+g9mPojhrmwz3EGaIpbC3EwCe6KBOdUCkzKbp5QLtGpJLwYB0HuuM5X1MGMLPlHYSzg/7JxcfTD2exbx4ucxCgLP6LAQedKlG6/b2Ao/YKjMbd6rvEUQVRfbeYDtgWQuw4NEi7f7n/BzfZ2mCQHgAA";
|
|
4
4
|
//# sourceMappingURL=navigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["window","navigationData"],"sourceRoot":"../../../../src","sources":["docs/assets/navigation.js"],"mappings":";;AAAAA,MAAM,CAACC,cAAc,GAAG,
|
|
1
|
+
{"version":3,"names":["window","navigationData"],"sourceRoot":"../../../../src","sources":["docs/assets/navigation.js"],"mappings":";;AAAAA,MAAM,CAACC,cAAc,GAAG,usCAAusC","ignoreList":[]}
|