@patra-cid/akaim-sdk-rn 0.4.16-denymsg.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/AkaimSdkRn.podspec +96 -0
  2. package/LICENSE +20 -0
  3. package/README.md +109 -0
  4. package/android/build.gradle +86 -0
  5. package/android/gradle.properties +8 -0
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/java/com/akaimsdkrn/AkaimSdkRnModule.kt +1327 -0
  8. package/android/src/main/java/com/akaimsdkrn/AkaimSdkRnPackage.kt +33 -0
  9. package/android/src/main/java/com/akaimsdkrn/CallbackPromise.kt +27 -0
  10. package/android/src/main/java/com/akaimsdkrn/SendMsgCallBack.kt +32 -0
  11. package/android/src/main/java/com/akaimsdkrn/listener/AdvancedMsgListener.kt +36 -0
  12. package/android/src/main/java/com/akaimsdkrn/listener/BatchMsgListener.kt +16 -0
  13. package/android/src/main/java/com/akaimsdkrn/listener/InitSDKListener.kt +39 -0
  14. package/android/src/main/java/com/akaimsdkrn/listener/OnConversationListener.kt +40 -0
  15. package/android/src/main/java/com/akaimsdkrn/listener/OnFriendshipListener.kt +53 -0
  16. package/android/src/main/java/com/akaimsdkrn/listener/OnGroupListener.kt +52 -0
  17. package/android/src/main/java/com/akaimsdkrn/listener/SetCustomBusinessListener.kt +12 -0
  18. package/android/src/main/java/com/akaimsdkrn/listener/UploadFileCallbackListener.kt +52 -0
  19. package/android/src/main/java/com/akaimsdkrn/listener/UploadLogProgressListener.kt +20 -0
  20. package/android/src/main/java/com/akaimsdkrn/listener/UserListener.kt +28 -0
  21. package/android/src/main/java/com/akaimsdkrn/utils/Emitter.kt +78 -0
  22. package/ios/AkaimSdkRn.h +17 -0
  23. package/ios/AkaimSdkRn.mm +1622 -0
  24. package/ios/CallbackPromise.h +19 -0
  25. package/ios/CallbackPromise.mm +58 -0
  26. package/ios/CodeGenStructHelper.h +17 -0
  27. package/ios/ReactLazyVectorConverter.h +22 -0
  28. package/ios/SendMessageCallback.h +22 -0
  29. package/ios/SendMessageCallback.mm +67 -0
  30. package/ios/UploadFileCallback.h +21 -0
  31. package/ios/UploadFileCallback.mm +80 -0
  32. package/ios/UploadLogCallback.h +22 -0
  33. package/ios/UploadLogCallback.mm +44 -0
  34. package/lib/module/NativeAkaimSdkRn.js +153 -0
  35. package/lib/module/NativeAkaimSdkRn.js.map +1 -0
  36. package/lib/module/index.js +361 -0
  37. package/lib/module/index.js.map +1 -0
  38. package/lib/module/package.json +1 -0
  39. package/lib/typescript/package.json +1 -0
  40. package/lib/typescript/src/NativeAkaimSdkRn.d.ts +947 -0
  41. package/lib/typescript/src/NativeAkaimSdkRn.d.ts.map +1 -0
  42. package/lib/typescript/src/index.d.ts +118 -0
  43. package/lib/typescript/src/index.d.ts.map +1 -0
  44. package/package.json +171 -0
  45. package/src/NativeAkaimSdkRn.ts +1177 -0
  46. package/src/index.tsx +758 -0
@@ -0,0 +1,1327 @@
1
+ package com.akaimsdkrn
2
+
3
+ import aka_im_core.Aka_im_core
4
+ import com.akaimsdkrn.listener.*
5
+ import com.akaimsdkrn.utils.Emitter
6
+ import com.alibaba.fastjson.JSON
7
+ import com.alibaba.fastjson.JSONObject
8
+ import com.facebook.react.bridge.Arguments
9
+ import com.facebook.react.bridge.Promise
10
+ import com.facebook.react.bridge.ReactApplicationContext
11
+ import com.facebook.react.bridge.ReadableArray
12
+ import com.facebook.react.bridge.ReadableMap
13
+ import com.facebook.react.bridge.WritableMap
14
+ import com.facebook.react.module.annotations.ReactModule
15
+ import java.util.Objects
16
+
17
+ @ReactModule(name = AkaimSdkRnModule.NAME)
18
+ class AkaimSdkRnModule(private val reactContext: ReactApplicationContext) :
19
+ NativeAkaimSdkRnSpec(reactContext) {
20
+
21
+ private var emitter = Emitter()
22
+
23
+ override fun getSelfUserInfo(operationID: String, promise: Promise) {
24
+ Aka_im_core.getSelfUserInfo(CallbackPromise(promise), operationID)
25
+ }
26
+
27
+ // override fun getUserStatus(userIDList: ReadableArray, operationID: String, promise: Promise) {
28
+ // Aka_im_core.getUserStatus( CallbackPromise(promise), operationID, userIDList.toString());
29
+ // }
30
+
31
+ override fun subscribeUsersStatus(
32
+ userIDList: ReadableArray,
33
+ operationID: String,
34
+ promise: Promise
35
+ ) {
36
+ Aka_im_core.subscribeUsersStatus(CallbackPromise(promise), operationID, userIDList.toString())
37
+ }
38
+
39
+ override fun unsubscribeUsersStatus(
40
+ userIDList: ReadableArray,
41
+ operationID: String,
42
+ promise: Promise
43
+ ) {
44
+ Aka_im_core.unsubscribeUsersStatus(CallbackPromise(promise), operationID, userIDList.toString())
45
+ }
46
+
47
+ override fun getSubscribeUsersStatus(operationID: String, promise: Promise) {
48
+ Aka_im_core.getSubscribeUsersStatus(CallbackPromise(promise), operationID)
49
+ }
50
+
51
+ override fun getAllConversationList(operationID: String, promise: Promise) {
52
+ Aka_im_core.getAllConversationList(CallbackPromise(promise), operationID)
53
+ }
54
+
55
+ override fun getConversationListSplit(
56
+ options: ReadableMap,
57
+ operationID: String,
58
+ promise: Promise
59
+ ) {
60
+ Aka_im_core.getConversationListSplit(
61
+ CallbackPromise(promise),
62
+ operationID,
63
+ options.getDouble("offset").toLong(),
64
+ options.getDouble("count").toLong()
65
+ )
66
+ }
67
+
68
+ override fun getOneConversation(options: ReadableMap, operationID: String, promise: Promise) {
69
+ Aka_im_core.getOneConversation(
70
+ CallbackPromise(promise),
71
+ operationID,
72
+ options.getDouble("sessionType").toInt(),
73
+ options.getString("sourceID")
74
+ )
75
+ }
76
+
77
+ override fun getMultipleConversation(
78
+ conversationIDList: ReadableArray,
79
+ operationID: String,
80
+ promise: Promise
81
+ ) {
82
+ Aka_im_core.getMultipleConversation(
83
+ CallbackPromise(promise),
84
+ operationID,
85
+ conversationIDList.toString()
86
+ )
87
+ }
88
+
89
+ override fun setGlobalRecvMessageOpt(opt: Double, operationID: String, promise: Promise) {
90
+ val params = JSONObject()
91
+ params.put("globalRecvMsgOpt", opt.toInt())
92
+ Aka_im_core.setGroupInfo(CallbackPromise(promise), operationID, params.toString())
93
+ }
94
+
95
+ // override fun hideAllConversations(operationID: String, promise: Promise) {
96
+ // Aka_im_core.hideAllConversations(CallbackPromise(promise), operationID)
97
+ // }
98
+
99
+ override fun hideConversation(conversationID: String, operationID: String, promise: Promise) {
100
+ Aka_im_core.hideConversation(CallbackPromise(promise), operationID, conversationID)
101
+ }
102
+
103
+ override fun setConversation(options: ReadableMap, operationID: String, promise: Promise) {
104
+ val conversationID = options.getString("conversationID")
105
+ val conversation = map2string(options)
106
+ Aka_im_core.setConversation(CallbackPromise(promise), operationID, conversationID, conversation)
107
+ }
108
+
109
+ override fun setConversationDraft(options: ReadableMap, operationID: String, promise: Promise) {
110
+ val conversationID = options.getString("conversationID")
111
+ val draftText = options.getString("draftText")
112
+ Aka_im_core.setConversationDraft(
113
+ CallbackPromise(promise),
114
+ operationID,
115
+ conversationID,
116
+ draftText
117
+ )
118
+ }
119
+
120
+ override fun resetConversationGroupAtType(
121
+ conversationID: String,
122
+ operationID: String,
123
+ promise: Promise
124
+ ) {
125
+ val params = JSONObject()
126
+ params.put("groupAtType", 0)
127
+ Aka_im_core.setConversation(
128
+ CallbackPromise(promise),
129
+ operationID,
130
+ conversationID,
131
+ params.toString()
132
+ )
133
+ }
134
+
135
+ override fun pinConversation(options: ReadableMap, operationID: String, promise: Promise) {
136
+ val conversationID = options.getString("conversationID")
137
+ val params = JSONObject()
138
+ params.put("isPinned", options.getBoolean("isPinned"))
139
+ Aka_im_core.setConversation(
140
+ CallbackPromise(promise),
141
+ operationID,
142
+ conversationID,
143
+ params.toString()
144
+ )
145
+ }
146
+
147
+ override fun setConversationPrivateChat(
148
+ options: ReadableMap,
149
+ operationID: String,
150
+ promise: Promise
151
+ ) {
152
+ val conversationID = options.getString("conversationID")
153
+ val params = JSONObject()
154
+ params.put("isPrivateChat", options.getBoolean("isPrivate"))
155
+ Aka_im_core.setConversation(
156
+ CallbackPromise(promise),
157
+ operationID,
158
+ conversationID,
159
+ params.toString()
160
+ )
161
+ }
162
+
163
+ override fun setConversationBurnDuration(
164
+ options: ReadableMap,
165
+ operationID: String,
166
+ promise: Promise
167
+ ) {
168
+ val conversationID = options.getString("conversationID")
169
+ val params = JSONObject()
170
+ params.put("burnDuration", options.getDouble("burnDuration").toInt())
171
+ Aka_im_core.setConversation(
172
+ CallbackPromise(promise),
173
+ operationID,
174
+ conversationID,
175
+ params.toString()
176
+ )
177
+ }
178
+
179
+ override fun setConversationRecvMessageOpt(
180
+ options: ReadableMap,
181
+ operationID: String,
182
+ promise: Promise
183
+ ) {
184
+ val conversationID = options.getString("conversationID")
185
+ val params = JSONObject()
186
+ params.put("recvMsgOpt", options.getDouble("opt").toInt())
187
+ Aka_im_core.setConversation(
188
+ CallbackPromise(promise),
189
+ operationID,
190
+ conversationID,
191
+ params.toString()
192
+ )
193
+ }
194
+
195
+ override fun getTotalUnreadMsgCount(operationID: String, promise: Promise) {
196
+ Aka_im_core.getTotalUnreadMsgCount(CallbackPromise(promise), operationID)
197
+ }
198
+
199
+ // override fun getAtAllTag(operationID: String): String {
200
+ // return Aka_im_core.getAtAllTag(operationID)
201
+ // }
202
+
203
+ // override fun createAdvancedTextMessage(options: ReadableMap, operationID: String, promise:
204
+ // Promise) {
205
+ // val messageEntityList = options.getArray("messageEntityList")?.toString() ?: throw
206
+ // NullPointerException("messageEntityList is null")
207
+ // val text = options.getString("text")
208
+
209
+ // val message = Aka_im_core.createAdvancedTextMessage(operationID, text, messageEntityList)
210
+ // try {
211
+ // val obj = JSON.parseObject(message)
212
+ // promise.resolve(emitter.convertJsonToMap(obj))
213
+ // } catch (e: Exception) {
214
+ // promise.resolve(message)
215
+ // }
216
+ // }
217
+
218
+ override fun createTextAtMessage(options: ReadableMap, operationID: String, promise: Promise) {
219
+ val text = options.getString("text")
220
+ val atUserIDList = Objects.requireNonNull(options.getArray("atUserIDList")).toString()
221
+
222
+ val atUsersInfoMap =
223
+ if (options.hasKey("atUsersInfo")) options.getArray("atUsersInfo") else null
224
+ val atUsersInfo = atUsersInfoMap?.toString()
225
+
226
+ val messageMap = if (options.hasKey("message")) options.getMap("message") else null
227
+ val quoteMessage = messageMap?.let { map2string(it) }
228
+
229
+ val message =
230
+ Aka_im_core.createTextAtMessage(
231
+ operationID,
232
+ text,
233
+ atUserIDList,
234
+ atUsersInfo,
235
+ quoteMessage
236
+ )
237
+ try {
238
+ val obj = JSON.parseObject(message)
239
+ promise.resolve(emitter.convertJsonToMap(obj))
240
+ } catch (e: Exception) {
241
+ promise.resolve(message)
242
+ }
243
+ }
244
+
245
+ override fun createTextMessage(textMsg: String, operationID: String, promise: Promise) {
246
+ val message = Aka_im_core.createTextMessage(operationID, textMsg)
247
+ try {
248
+ val obj = JSON.parseObject(message)
249
+ promise.resolve(emitter.convertJsonToMap(obj))
250
+ } catch (e: Exception) {
251
+ promise.resolve(message)
252
+ }
253
+ }
254
+
255
+ override fun createLocationMessage(options: ReadableMap, operationID: String, promise: Promise) {
256
+ val description = options.getString("description")
257
+ val longitude = options.getDouble("longitude")
258
+ val latitude = options.getDouble("latitude")
259
+
260
+ val message = Aka_im_core.createLocationMessage(operationID, description, longitude, latitude)
261
+ try {
262
+ val obj = JSON.parseObject(message)
263
+ promise.resolve(emitter.convertJsonToMap(obj))
264
+ } catch (e: Exception) {
265
+ promise.resolve(message)
266
+ }
267
+ }
268
+
269
+ override fun createCustomMessage(options: ReadableMap, operationID: String, promise: Promise) {
270
+ val data = options.getString("data")
271
+ val extension = options.getString("extension")
272
+ val description = options.getString("description")
273
+
274
+ val message = Aka_im_core.createCustomMessage(operationID, data, extension, description)
275
+ try {
276
+ val obj = JSON.parseObject(message)
277
+ promise.resolve(emitter.convertJsonToMap(obj))
278
+ } catch (e: Exception) {
279
+ promise.resolve(message)
280
+ }
281
+ }
282
+
283
+ override fun createQuoteMessage(options: ReadableMap, operationID: String, promise: Promise) {
284
+ val text = options.getString("text")
285
+ val quoteMessage =
286
+ map2string(options.getMap("message") ?: throw NullPointerException("message is null"))
287
+
288
+ val message = Aka_im_core.createQuoteMessage(operationID, text, quoteMessage)
289
+ try {
290
+ val obj = JSON.parseObject(message)
291
+ promise.resolve(emitter.convertJsonToMap(obj))
292
+ } catch (e: Exception) {
293
+ promise.resolve(message)
294
+ }
295
+ }
296
+
297
+ // override fun createAdvancedQuoteMessage(options: ReadableMap, operationID: String, promise:
298
+ // Promise) {
299
+ // val text = options.getString("text")
300
+ // val quoteMessage = map2string(options.getMap("message") ?: throw
301
+ // NullPointerException("message is null"))
302
+ // val messageEntityList =
303
+ // Objects.requireNonNull(options.getArray("messageEntityList")).toString()
304
+
305
+ // val message = Aka_im_core.createAdvancedQuoteMessage(operationID, text, quoteMessage,
306
+ // messageEntityList)
307
+ // try {
308
+ // val obj = JSON.parseObject(message)
309
+ // promise.resolve(emitter.convertJsonToMap(obj))
310
+ // } catch (e: Exception) {
311
+ // promise.resolve(message)
312
+ // }
313
+ // }
314
+
315
+ override fun createCardMessage(cardElem: ReadableMap, operationID: String, promise: Promise) {
316
+ val card = map2string(cardElem)
317
+
318
+ val message = Aka_im_core.createCardMessage(operationID, card)
319
+ try {
320
+ val obj = JSON.parseObject(message)
321
+ promise.resolve(emitter.convertJsonToMap(obj))
322
+ } catch (e: Exception) {
323
+ promise.resolve(message)
324
+ }
325
+ }
326
+
327
+ // override fun createImageMessage(imagePath: String, operationID: String, promise: Promise) {
328
+ // val message = Aka_im_core.createImageMessage(operationID, imagePath)
329
+ // try {
330
+ // JSONObject obj = JSON.parseObject(message);
331
+ // promise.resolve(emitter.convertJsonToMap(obj));
332
+ // } catch (Exception e) {
333
+ // promise.resolve(message);
334
+ // }
335
+ // }
336
+
337
+ override fun createImageMessageFromFullPath(
338
+ imagePath: String,
339
+ operationID: String,
340
+ promise: Promise
341
+ ) {
342
+ val message = Aka_im_core.createImageMessageFromFullPath(operationID, imagePath)
343
+ try {
344
+ val obj = JSON.parseObject(message)
345
+ promise.resolve(emitter.convertJsonToMap(obj))
346
+ } catch (e: Exception) {
347
+ promise.resolve(message)
348
+ }
349
+ }
350
+
351
+ override fun createImageMessageByURL(
352
+ options: ReadableMap,
353
+ operationID: String,
354
+ promise: Promise
355
+ ) {
356
+ val sourcePicture = map2string(options.getMap("sourcePicture")!!)
357
+ val bigPicture = map2string(options.getMap("bigPicture")!!)
358
+ val snapshotPicture = map2string(options.getMap("snapshotPicture")!!)
359
+ val sourcePath = options.getString("sourcePath")
360
+
361
+ val message =
362
+ Aka_im_core.createImageMessageByURL(
363
+ operationID,
364
+ sourcePath,
365
+ sourcePicture,
366
+ bigPicture,
367
+ snapshotPicture
368
+ )
369
+ try {
370
+ val obj = JSON.parseObject(message)
371
+ promise.resolve(emitter.convertJsonToMap(obj))
372
+ } catch (e: Exception) {
373
+ promise.resolve(message)
374
+ }
375
+ }
376
+
377
+ // override fun createSoundMessage(options: ReadableMap, operationID: String, promise: Promise) {
378
+ // val soundPath = options.getString("soundPath")
379
+ // val duration = options.getInt("duration")
380
+
381
+ // val message = Aka_im_core.createSoundMessage(operationID, soundPath, duration)
382
+ // try {
383
+ // val obj = JSON.parseObject(message)
384
+ // promise.resolve(emitter.convertJsonToMap(obj))
385
+ // } catch (e: Exception) {
386
+ // promise.resolve(message)
387
+ // }
388
+ // }
389
+
390
+ override fun createSoundMessageFromFullPath(
391
+ options: ReadableMap,
392
+ operationID: String,
393
+ promise: Promise
394
+ ) {
395
+ val soundPath = options.getString("soundPath")
396
+ val duration = options.getDouble("duration").toLong()
397
+
398
+ val message = Aka_im_core.createSoundMessageFromFullPath(operationID, soundPath, duration)
399
+ try {
400
+ val obj = JSON.parseObject(message)
401
+ promise.resolve(emitter.convertJsonToMap(obj))
402
+ } catch (e: Exception) {
403
+ promise.resolve(message)
404
+ }
405
+ }
406
+
407
+ override fun createSoundMessageByURL(
408
+ soundInfo: ReadableMap,
409
+ operationID: String,
410
+ promise: Promise
411
+ ) {
412
+ val sound = map2string(soundInfo)
413
+
414
+ val message = Aka_im_core.createSoundMessageByURL(operationID, sound)
415
+ try {
416
+ val obj = JSON.parseObject(message)
417
+ promise.resolve(emitter.convertJsonToMap(obj))
418
+ } catch (e: Exception) {
419
+ promise.resolve(message)
420
+ }
421
+ }
422
+
423
+ // override fun createVideoMessage(options: ReadableMap, operationID: String, promise: Promise) {
424
+ // val videoPath = options.getString("videoPath")
425
+ // val videoType = options.getString("videoType")
426
+ // val duration = options.getInt("duration")
427
+ // val snapshotPath = options.getString("snapshotPath")
428
+
429
+ // val message = Aka_im_core.createVideoMessage(operationID, videoPath, videoType, duration,
430
+ // snapshotPath)
431
+ // try {
432
+ // val obj = JSON.parseObject(message)
433
+ // promise.resolve(emitter.convertJsonToMap(obj))
434
+ // } catch (e: Exception) {
435
+ // promise.resolve(message)
436
+ // }
437
+ // }
438
+
439
+ override fun createVideoMessageFromFullPath(
440
+ options: ReadableMap,
441
+ operationID: String,
442
+ promise: Promise
443
+ ) {
444
+ val videoPath = options.getString("videoPath")
445
+ val videoType = options.getString("videoType")
446
+ val duration = options.getDouble("duration").toLong()
447
+ val snapshotPath = options.getString("snapshotPath")
448
+
449
+ val message =
450
+ Aka_im_core.createVideoMessageFromFullPath(
451
+ operationID,
452
+ videoPath,
453
+ videoType,
454
+ duration,
455
+ snapshotPath
456
+ )
457
+ try {
458
+ val obj = JSON.parseObject(message)
459
+ promise.resolve(emitter.convertJsonToMap(obj))
460
+ } catch (e: Exception) {
461
+ promise.resolve(message)
462
+ }
463
+ }
464
+
465
+ override fun createVideoMessageByURL(
466
+ videoInfo: ReadableMap,
467
+ operationID: String,
468
+ promise: Promise
469
+ ) {
470
+ val video = map2string(videoInfo)
471
+
472
+ val message = Aka_im_core.createVideoMessageByURL(operationID, video)
473
+ try {
474
+ val obj = JSON.parseObject(message)
475
+ promise.resolve(emitter.convertJsonToMap(obj))
476
+ } catch (e: Exception) {
477
+ promise.resolve(message)
478
+ }
479
+ }
480
+
481
+ override fun createFileMessage(options: ReadableMap, operationID: String, promise: Promise) {
482
+ val filePath = options.getString("filePath")
483
+ val fileName = options.getString("fileName")
484
+
485
+ val message = Aka_im_core.createFileMessage(operationID, filePath, fileName)
486
+ try {
487
+ val obj = JSON.parseObject(message)
488
+ promise.resolve(emitter.convertJsonToMap(obj))
489
+ } catch (e: Exception) {
490
+ promise.resolve(message)
491
+ }
492
+ }
493
+
494
+ override fun createFileMessageFromFullPath(
495
+ options: ReadableMap,
496
+ operationID: String,
497
+ promise: Promise
498
+ ) {
499
+ val filePath = options.getString("filePath")
500
+ val fileName = options.getString("fileName")
501
+
502
+ val message = Aka_im_core.createFileMessage(operationID, filePath, fileName)
503
+ try {
504
+ val obj = JSON.parseObject(message)
505
+ promise.resolve(emitter.convertJsonToMap(obj))
506
+ } catch (e: Exception) {
507
+ promise.resolve(message)
508
+ }
509
+ }
510
+
511
+ override fun createFileMessageByURL(
512
+ fileInfo: ReadableMap,
513
+ operationID: String,
514
+ promise: Promise
515
+ ) {
516
+ val file = map2string(fileInfo)
517
+
518
+ val message = Aka_im_core.createFileMessageByURL(operationID, file)
519
+ try {
520
+ val obj = JSON.parseObject(message)
521
+ promise.resolve(emitter.convertJsonToMap(obj))
522
+ } catch (e: Exception) {
523
+ promise.resolve(message)
524
+ }
525
+ }
526
+
527
+ override fun createMergerMessage(options: ReadableMap, operationID: String, promise: Promise) {
528
+ val messageList = options.getArray("messageList").toString()
529
+ val title = options.getString("title")
530
+ val summaryList = options.getArray("summaryList").toString()
531
+
532
+ val message = Aka_im_core.createMergerMessage(operationID, messageList, title, summaryList)
533
+ try {
534
+ val obj = JSON.parseObject(message)
535
+ promise.resolve(emitter.convertJsonToMap(obj))
536
+ } catch (e: Exception) {
537
+ promise.resolve(message)
538
+ }
539
+ }
540
+
541
+ override fun createFaceMessage(options: ReadableMap, operationID: String, promise: Promise) {
542
+ val index = options.getDouble("index").toLong()
543
+ val dataStr = options.getString("dataStr")
544
+
545
+ val message = Aka_im_core.createFaceMessage(operationID, index, dataStr)
546
+ try {
547
+ val obj = JSON.parseObject(message)
548
+ promise.resolve(emitter.convertJsonToMap(obj))
549
+ } catch (e: Exception) {
550
+ promise.resolve(message)
551
+ }
552
+ }
553
+
554
+ override fun createForwardMessage(
555
+ messageList: ReadableMap,
556
+ operationID: String,
557
+ promise: Promise
558
+ ) {
559
+ val forward = map2string(messageList)
560
+
561
+ val message = Aka_im_core.createForwardMessage(operationID, forward)
562
+ try {
563
+ val obj = JSON.parseObject(message)
564
+ promise.resolve(emitter.convertJsonToMap(obj))
565
+ } catch (e: Exception) {
566
+ promise.resolve(message)
567
+ }
568
+ }
569
+
570
+ override fun getConversationIDBySessionType(
571
+ options: ReadableMap,
572
+ operationID: String,
573
+ promise: Promise
574
+ ) {
575
+ val result =
576
+ Aka_im_core.getConversationIDBySessionType(
577
+ operationID,
578
+ options.getString("sourceID"),
579
+ options.getDouble("sessionType").toLong()
580
+ )
581
+ promise.resolve(result)
582
+ }
583
+
584
+ override fun findMessageList(findOptions: ReadableArray, operationID: String, promise: Promise) {
585
+ Aka_im_core.findMessageList(CallbackPromise(promise), operationID, findOptions.toString())
586
+ }
587
+
588
+ override fun getAdvancedHistoryMessageList(
589
+ findOptions: ReadableMap,
590
+ operationID: String,
591
+ promise: Promise
592
+ ) {
593
+ Aka_im_core.getAdvancedHistoryMessageList(
594
+ CallbackPromise(promise),
595
+ operationID,
596
+ map2string(findOptions)
597
+ )
598
+ }
599
+
600
+ override fun getAdvancedHistoryMessageListReverse(
601
+ options: ReadableMap,
602
+ operationID: String,
603
+ promise: Promise
604
+ ) {
605
+ Aka_im_core.getAdvancedHistoryMessageListReverse(
606
+ CallbackPromise(promise),
607
+ operationID,
608
+ map2string(options)
609
+ )
610
+ }
611
+
612
+ override fun revokeMessage(options: ReadableMap, operationID: String, promise: Promise) {
613
+ Aka_im_core.revokeMessage(
614
+ CallbackPromise(promise),
615
+ operationID,
616
+ options.getString("conversationID"),
617
+ options.getString("clientMsgID")
618
+ )
619
+ }
620
+
621
+ // override fun searchConversation(searchParams: String, operationID: String, promise: Promise) {
622
+ // Aka_im_core.searchConversation(CallbackPromise(promise), operationID, searchParams)
623
+ // }
624
+
625
+ override fun typingStatusUpdate(options: ReadableMap, operationID: String, promise: Promise) {
626
+ Aka_im_core.typingStatusUpdate(
627
+ CallbackPromise(promise),
628
+ operationID,
629
+ options.getString("recvID"),
630
+ options.getString("msgTip")
631
+ )
632
+ }
633
+
634
+ override fun changeInputStates(options: ReadableMap, operationID: String, promise: Promise) {
635
+ val conversationID = options.getString("conversationID")
636
+ val focus = options.getBoolean("focus")
637
+ Aka_im_core.changeInputStates(CallbackPromise(promise), operationID, conversationID, focus)
638
+ }
639
+
640
+ override fun getInputStates(options: ReadableMap, operationID: String, promise: Promise) {
641
+ val conversationID = options.getString("conversationID")
642
+ val userID = options.getString("userID")
643
+ Aka_im_core.getInputStates(CallbackPromise(promise), operationID, conversationID, userID)
644
+ }
645
+
646
+ override fun markConversationMessageAsRead(
647
+ conversationID: String,
648
+ operationID: String,
649
+ promise: Promise
650
+ ) {
651
+ Aka_im_core.markConversationMessageAsRead(CallbackPromise(promise), operationID, conversationID)
652
+ }
653
+
654
+ override fun deleteMessage(options: ReadableMap, operationID: String, promise: Promise) {
655
+ val conversationID = options.getString("conversationID")
656
+ val clientMsgID = options.getString("clientMsgID")
657
+
658
+ Aka_im_core.deleteMessage(CallbackPromise(promise), operationID, conversationID, clientMsgID)
659
+ }
660
+
661
+ override fun deleteMessageFromLocalStorage(
662
+ options: ReadableMap,
663
+ operationID: String,
664
+ promise: Promise
665
+ ) {
666
+ val conversationID = options.getString("conversationID")
667
+ val clientMsgID = options.getString("clientMsgID")
668
+ Aka_im_core.deleteMessageFromLocalStorage(
669
+ CallbackPromise(promise),
670
+ operationID,
671
+ conversationID,
672
+ clientMsgID
673
+ )
674
+ }
675
+
676
+ override fun deleteAllMsgFromLocalAndSvr(operationID: String, promise: Promise) {
677
+ Aka_im_core.deleteAllMsgFromLocalAndSvr(CallbackPromise(promise), operationID)
678
+ }
679
+
680
+ override fun deleteAllMsgFromLocal(operationID: String, promise: Promise) {
681
+ Aka_im_core.deleteAllMsgFromLocal(CallbackPromise(promise), operationID)
682
+ }
683
+
684
+ override fun clearConversationAndDeleteAllMsg(
685
+ conversationID: String,
686
+ operationID: String,
687
+ promise: Promise
688
+ ) {
689
+ Aka_im_core.clearConversationAndDeleteAllMsg(
690
+ CallbackPromise(promise),
691
+ operationID,
692
+ conversationID
693
+ )
694
+ }
695
+
696
+ override fun deleteConversationAndDeleteAllMsg(
697
+ conversationID: String,
698
+ operationID: String,
699
+ promise: Promise
700
+ ) {
701
+ Aka_im_core.deleteConversationAndDeleteAllMsg(
702
+ CallbackPromise(promise),
703
+ operationID,
704
+ conversationID
705
+ )
706
+ }
707
+
708
+ override fun insertSingleMessageToLocalStorage(
709
+ options: ReadableMap,
710
+ operationID: String,
711
+ promise: Promise
712
+ ) {
713
+ Aka_im_core.insertSingleMessageToLocalStorage(
714
+ CallbackPromise(promise),
715
+ operationID,
716
+ map2string(options.getMap("message")!!),
717
+ options.getString("recvID"),
718
+ options.getString("sendID")
719
+ )
720
+ }
721
+
722
+ override fun insertGroupMessageToLocalStorage(
723
+ options: ReadableMap,
724
+ operationID: String,
725
+ promise: Promise
726
+ ) {
727
+ Aka_im_core.insertGroupMessageToLocalStorage(
728
+ CallbackPromise(promise),
729
+ operationID,
730
+ map2string(options.getMap("message")!!),
731
+ options.getString("groupID"),
732
+ options.getString("sendID")
733
+ )
734
+ }
735
+
736
+ override fun searchLocalMessages(
737
+ searchParam: ReadableMap,
738
+ operationID: String,
739
+ promise: Promise
740
+ ) {
741
+ Aka_im_core.searchLocalMessages(CallbackPromise(promise), operationID, map2string(searchParam))
742
+ }
743
+
744
+ override fun setMessageLocalEx(options: ReadableMap, operationID: String, promise: Promise) {
745
+ Aka_im_core.setMessageLocalEx(
746
+ CallbackPromise(promise),
747
+ operationID,
748
+ options.getString("conversationID"),
749
+ options.getString("clientMsgID"),
750
+ options.getString("localEx")
751
+ )
752
+ }
753
+
754
+ override fun getSpecifiedFriendsInfo(
755
+ options: ReadableMap,
756
+ operationID: String,
757
+ promise: Promise
758
+ ) {
759
+ val userIDList = options.getArray("userIDList")
760
+ var filterBlack = false
761
+ if (options.hasKey("filterBlack")) {
762
+ filterBlack = options.getBoolean("filterBlack")
763
+ }
764
+ Aka_im_core.getSpecifiedFriendsInfo(
765
+ CallbackPromise(promise),
766
+ operationID,
767
+ userIDList.toString(),
768
+ filterBlack
769
+ )
770
+ }
771
+
772
+ override fun getFriendList(filterBlack: Boolean, operationID: String, promise: Promise) {
773
+ Aka_im_core.getFriendList(CallbackPromise(promise), operationID, filterBlack)
774
+ }
775
+
776
+ override fun getFriendListPage(options: ReadableMap, operationID: String, promise: Promise) {
777
+ val offset = options.getDouble("offset").toInt()
778
+ val count = options.getDouble("count").toInt()
779
+ var filterBlack = false
780
+ if (options.hasKey("filterBlack")) {
781
+ filterBlack = options.getBoolean("filterBlack")
782
+ }
783
+ Aka_im_core.getFriendListPage(CallbackPromise(promise), operationID, offset, count, filterBlack)
784
+ }
785
+
786
+ override fun searchFriends(options: ReadableMap, operationID: String, promise: Promise) {
787
+ Aka_im_core.searchFriends(CallbackPromise(promise), operationID, map2string(options))
788
+ }
789
+
790
+ override fun checkFriend(userIDList: ReadableArray, operationID: String, promise: Promise) {
791
+ Aka_im_core.checkFriend(CallbackPromise(promise), operationID, userIDList.toString())
792
+ }
793
+
794
+ override fun addFriend(params: ReadableMap, operationID: String, promise: Promise) {
795
+ Aka_im_core.addFriend(CallbackPromise(promise), operationID, map2string(params))
796
+ }
797
+
798
+ // public fun updateFriends(params: ReadableMap, operationID: String, promise: Promise) {
799
+ // Aka_im_core.updateFriends(CallbackPromise(promise), operationID, map2string(params))
800
+ // }
801
+
802
+ override fun setFriendRemark(options: ReadableMap, operationID: String, promise: Promise) {
803
+ val toUserIDList = ArrayList<String>()
804
+ options.getString("friendUserIDs")?.let { toUserIDList.add(it) }
805
+
806
+ val params = JSONObject()
807
+ params.put("friendUserIDs", toUserIDList)
808
+ params.put("remark", options.getString("remark"))
809
+
810
+ Aka_im_core.updateFriends(CallbackPromise(promise), operationID, params.toString())
811
+ }
812
+
813
+ override fun deleteFriend(friendUserID: String, operationID: String, promise: Promise) {
814
+ Aka_im_core.deleteFriend(CallbackPromise(promise), operationID, friendUserID)
815
+ }
816
+
817
+ override fun getFriendApplicationListAsRecipient(operationID: String, promise: Promise) {
818
+ Aka_im_core.getFriendApplicationListAsRecipient(CallbackPromise(promise), operationID)
819
+ }
820
+
821
+ override fun getFriendApplicationListAsApplicant(operationID: String, promise: Promise) {
822
+ Aka_im_core.getFriendApplicationListAsApplicant(CallbackPromise(promise), operationID)
823
+ }
824
+
825
+ override fun acceptFriendApplication(
826
+ userIDHandleMsg: ReadableMap,
827
+ operationID: String,
828
+ promise: Promise
829
+ ) {
830
+ Aka_im_core.acceptFriendApplication(
831
+ CallbackPromise(promise),
832
+ operationID,
833
+ map2string(userIDHandleMsg)
834
+ )
835
+ }
836
+
837
+ override fun refuseFriendApplication(
838
+ userIDHandleMsg: ReadableMap,
839
+ operationID: String,
840
+ promise: Promise
841
+ ) {
842
+ Aka_im_core.refuseFriendApplication(
843
+ CallbackPromise(promise),
844
+ operationID,
845
+ map2string(userIDHandleMsg)
846
+ )
847
+ }
848
+
849
+ override fun addBlack(options: ReadableMap, operationID: String, promise: Promise) {
850
+ Aka_im_core.addBlack(
851
+ CallbackPromise(promise),
852
+ operationID,
853
+ options.getString("toUserID"),
854
+ options.getString("ex")
855
+ )
856
+ }
857
+
858
+ override fun getBlackList(operationID: String, promise: Promise) {
859
+ Aka_im_core.getBlackList(CallbackPromise(promise), operationID)
860
+ }
861
+
862
+ override fun removeBlack(removeUserID: String, operationID: String, promise: Promise) {
863
+ Aka_im_core.removeBlack(CallbackPromise(promise), operationID, removeUserID)
864
+ }
865
+
866
+ override fun createGroup(gInfo: ReadableMap, operationID: String, promise: Promise) {
867
+ Aka_im_core.createGroup(CallbackPromise(promise), operationID, map2string(gInfo))
868
+ }
869
+
870
+ override fun joinGroup(options: ReadableMap, operationID: String, promise: Promise) {
871
+ Aka_im_core.joinGroup(
872
+ CallbackPromise(promise),
873
+ operationID,
874
+ options.getString("groupID"),
875
+ options.getString("reqMsg"),
876
+ options.getDouble("joinSource").toInt(),
877
+ options.getString("ex")
878
+ )
879
+ }
880
+
881
+ override fun quitGroup(groupID: String, operationID: String, promise: Promise) {
882
+ Aka_im_core.quitGroup(CallbackPromise(promise), operationID, groupID)
883
+ }
884
+
885
+ override fun dismissGroup(groupID: String, operationID: String, promise: Promise) {
886
+ Aka_im_core.dismissGroup(CallbackPromise(promise), operationID, groupID)
887
+ }
888
+
889
+ override fun changeGroupMute(options: ReadableMap, operationID: String, promise: Promise) {
890
+ Aka_im_core.changeGroupMute(
891
+ CallbackPromise(promise),
892
+ operationID,
893
+ options.getString("groupID"),
894
+ options.getBoolean("isMute")
895
+ )
896
+ }
897
+
898
+ override fun changeGroupMemberMute(options: ReadableMap, operationID: String, promise: Promise)
899
+ {
900
+ Aka_im_core.changeGroupMemberMute(CallbackPromise(promise), operationID,
901
+ options.getString("groupID"),
902
+ options.getString("userID"), options.getInt("mutedSeconds").toLong())
903
+ }
904
+
905
+ // override fun setGroupMemberRoleLevel(options: ReadableMap, operationID: String, promise:
906
+ // Promise) {
907
+ // Aka_im_core.setGroupMemberInfo(CallbackPromise(promise), operationID, map2string(options))
908
+ // }
909
+
910
+ override fun setGroupMemberInfo(options: ReadableMap, operationID: String, promise: Promise) {
911
+ Aka_im_core.setGroupMemberInfo(CallbackPromise(promise), operationID, map2string(options))
912
+ }
913
+
914
+ override fun getJoinedGroupList(operationID: String, promise: Promise) {
915
+ Aka_im_core.getJoinedGroupList(CallbackPromise(promise), operationID)
916
+ }
917
+
918
+ override fun getJoinedGroupListPage(options: ReadableMap, operationID: String, promise: Promise) {
919
+ Aka_im_core.getJoinedGroupListPage(
920
+ CallbackPromise(promise),
921
+ operationID,
922
+ options.getDouble("offset").toInt(),
923
+ options.getDouble("count").toInt()
924
+ )
925
+ }
926
+
927
+ override fun getSpecifiedGroupsInfo(
928
+ groupIDList: ReadableArray,
929
+ operationID: String,
930
+ promise: Promise
931
+ ) {
932
+ Aka_im_core.getSpecifiedGroupsInfo(
933
+ CallbackPromise(promise),
934
+ operationID,
935
+ groupIDList.toString()
936
+ )
937
+ }
938
+
939
+ override fun searchGroups(options: ReadableMap, operationID: String, promise: Promise) {
940
+ Aka_im_core.searchGroups(CallbackPromise(promise), operationID, map2string(options))
941
+ }
942
+
943
+ override fun setGroupInfo(jsonGroupInfo: ReadableMap, operationID: String, promise: Promise) {
944
+ Aka_im_core.setGroupInfo(CallbackPromise(promise), operationID, map2string(jsonGroupInfo))
945
+ }
946
+
947
+ // override fun setGroupVerification(options: ReadableMap, operationID: String, promise: Promise)
948
+ // {
949
+ // val params = JSONObject()
950
+ // params.put("groupID", options.getString("groupID"))
951
+ // params.put("needVerification", options.getString("verification"))
952
+ // Aka_im_core.setGroupInfo(CallbackPromise(promise), operationID, params.toString())
953
+ // }
954
+
955
+ // override fun setGroupLookMemberInfo(options: ReadableMap, operationID: String, promise:
956
+ // Promise) {
957
+ // val params = JSONObject()
958
+ // params.put("groupID", options.getString("groupID"))
959
+ // params.put("lookMemberInfo", options.getString("rule"))
960
+ // Aka_im_core.setGroupInfo(CallbackPromise(promise), operationID, params.toString())
961
+ // }
962
+
963
+ // override fun setGroupApplyMemberFriend(options: ReadableMap, operationID: String, promise:
964
+ // Promise) {
965
+ // val params = JSONObject()
966
+ // params.put("groupID", options.getString("groupID"))
967
+ // params.put("applyMemberFriend", options.getString("rule"))
968
+ // Aka_im_core.setGroupInfo(CallbackPromise(promise), operationID, params.toString())
969
+ // }
970
+
971
+ override fun getGroupMemberList(options: ReadableMap, operationID: String, promise: Promise) {
972
+ Aka_im_core.getGroupMemberList(
973
+ CallbackPromise(promise),
974
+ operationID,
975
+ options.getString("groupID"),
976
+ options.getDouble("filter").toInt(),
977
+ options.getDouble("offset").toInt(),
978
+ options.getDouble("count").toInt()
979
+ )
980
+ }
981
+
982
+ override fun getGroupMemberOwnerAndAdmin(groupID: String, operationID: String, promise: Promise) {
983
+ Aka_im_core.getGroupMemberOwnerAndAdmin(CallbackPromise(promise), operationID, groupID)
984
+ }
985
+
986
+ override fun getGroupMemberListByJoinTimeFilter(
987
+ options: ReadableMap,
988
+ operationID: String,
989
+ promise: Promise
990
+ ) {
991
+ Aka_im_core.getGroupMemberListByJoinTimeFilter(
992
+ CallbackPromise(promise),
993
+ operationID,
994
+ options.getString("groupID"),
995
+ options.getDouble("offset").toInt(),
996
+ options.getDouble("count").toInt(),
997
+ options.getDouble("joinTimeBegin").toLong(),
998
+ options.getDouble("joinTimeEnd").toLong(),
999
+ Objects.requireNonNull(options.getArray("filterUserIDList")).toString()
1000
+ )
1001
+ }
1002
+
1003
+ override fun getSpecifiedGroupMembersInfo(
1004
+ options: ReadableMap,
1005
+ operationID: String,
1006
+ promise: Promise
1007
+ ) {
1008
+ Aka_im_core.getSpecifiedGroupMembersInfo(
1009
+ CallbackPromise(promise),
1010
+ operationID,
1011
+ options.getString("groupID"),
1012
+ Objects.requireNonNull(options.getArray("userIDList")).toString()
1013
+ )
1014
+ }
1015
+
1016
+ override fun getUsersInGroup(options: ReadableMap, operationID: String, promise: Promise) {
1017
+ Aka_im_core.getUsersInGroup(
1018
+ CallbackPromise(promise),
1019
+ operationID,
1020
+ options.getString("groupID"),
1021
+ Objects.requireNonNull(options.getArray("userIDList")).toString()
1022
+ )
1023
+ }
1024
+
1025
+ override fun kickGroupMember(options: ReadableMap, operationID: String, promise: Promise) {
1026
+ Aka_im_core.kickGroupMember(
1027
+ CallbackPromise(promise),
1028
+ operationID,
1029
+ options.getString("groupID"),
1030
+ options.getString("reason"),
1031
+ Objects.requireNonNull(options.getArray("userIDList")).toString()
1032
+ )
1033
+ }
1034
+
1035
+ override fun transferGroupOwner(options: ReadableMap, operationID: String, promise: Promise) {
1036
+ Aka_im_core.transferGroupOwner(
1037
+ CallbackPromise(promise),
1038
+ operationID,
1039
+ options.getString("groupID"),
1040
+ options.getString("newOwnerUserID")
1041
+ )
1042
+ }
1043
+
1044
+ override fun inviteUserToGroup(options: ReadableMap, operationID: String, promise: Promise) {
1045
+ Aka_im_core.inviteUserToGroup(
1046
+ CallbackPromise(promise),
1047
+ operationID,
1048
+ options.getString("groupID"),
1049
+ options.getString("reason"),
1050
+ Objects.requireNonNull(options.getArray("userIDList")).toString()
1051
+ )
1052
+ }
1053
+
1054
+ override fun getGroupApplicationListAsRecipient(operationID: String, promise: Promise) {
1055
+ Aka_im_core.getGroupApplicationListAsRecipient(CallbackPromise(promise), operationID)
1056
+ }
1057
+
1058
+ override fun getGroupApplicationListAsApplicant(operationID: String, promise: Promise) {
1059
+ Aka_im_core.getGroupApplicationListAsApplicant(CallbackPromise(promise), operationID)
1060
+ }
1061
+
1062
+ override fun acceptGroupApplication(options: ReadableMap, operationID: String, promise: Promise) {
1063
+ Aka_im_core.acceptGroupApplication(
1064
+ CallbackPromise(promise),
1065
+ operationID,
1066
+ options.getString("groupID"),
1067
+ options.getString("fromUserID"),
1068
+ options.getString("handleMsg")
1069
+ )
1070
+ }
1071
+
1072
+ override fun refuseGroupApplication(options: ReadableMap, operationID: String, promise: Promise) {
1073
+ Aka_im_core.refuseGroupApplication(
1074
+ CallbackPromise(promise),
1075
+ operationID,
1076
+ options.getString("groupID"),
1077
+ options.getString("fromUserID"),
1078
+ options.getString("handleMsg")
1079
+ )
1080
+ }
1081
+
1082
+ // override fun setGroupMemberNickname(options: ReadableMap, operationID: String, promise:
1083
+ // Promise) {
1084
+ // val params = JSONObject()
1085
+ // params.put("groupID", options.getString("groupID"))
1086
+ // params.put("userID", options.getString("userID"))
1087
+ // params.put("nickname", options.getString("groupMemberNickname"))
1088
+ // Aka_im_core.setGroupMemberInfo(CallbackPromise(promise), operationID, params.toString())
1089
+ // }
1090
+
1091
+ override fun searchGroupMembers(
1092
+ searchOptions: ReadableMap,
1093
+ operationID: String,
1094
+ promise: Promise
1095
+ ) {
1096
+ Aka_im_core.searchGroupMembers(CallbackPromise(promise), operationID, map2string(searchOptions))
1097
+ }
1098
+
1099
+ override fun isJoinGroup(groupID: String, operationID: String, promise: Promise) {
1100
+ Aka_im_core.isJoinGroup(CallbackPromise(promise), operationID, groupID)
1101
+ }
1102
+
1103
+ // override fun updateFcmToken(options: ReadableMap, operationID: String, promise: Promise) {
1104
+ // Aka_im_core.updateFcmToken(CallbackPromise(promise), operationID,
1105
+ // options.getString("fcmToken"), options.getInt("expireTime"))
1106
+ // }
1107
+
1108
+ override fun sendMessage(options: ReadableMap, operationID: String, promise: Promise) {
1109
+ val message = options.getMap("message")
1110
+ val receiver = options.getString("recvID")
1111
+ val groupID = options.getString("groupID")
1112
+ var offlinePushInfo = options.getMap("offlinePushInfo")
1113
+
1114
+ var isOnlineOnly = false
1115
+ if (options.hasKey("isOnlineOnly")) {
1116
+ isOnlineOnly = options.getBoolean("isOnlineOnly")
1117
+ }
1118
+
1119
+ if (offlinePushInfo == null) {
1120
+ val defaultOfflinePushInfo = Arguments.createMap()
1121
+ defaultOfflinePushInfo.putString("title", "you have a new message")
1122
+ defaultOfflinePushInfo.putString("desc", "new message")
1123
+ defaultOfflinePushInfo.putString("ex", "")
1124
+ defaultOfflinePushInfo.putString("iOSPushSound", "+1")
1125
+ defaultOfflinePushInfo.putBoolean("iOSBadgeCount", true)
1126
+ offlinePushInfo = defaultOfflinePushInfo
1127
+ }
1128
+
1129
+ requireNotNull(message)
1130
+ Aka_im_core.sendMessage(
1131
+ SendMsgCallBack(reactContext, promise, message),
1132
+ operationID,
1133
+ map2string(message),
1134
+ receiver,
1135
+ groupID,
1136
+ map2string(offlinePushInfo),
1137
+ isOnlineOnly
1138
+ )
1139
+ }
1140
+
1141
+ override fun sendMessageNotOss(options: ReadableMap, operationID: String, promise: Promise) {
1142
+ val message = options.getMap("message")
1143
+ val receiver = options.getString("recvID")
1144
+ val groupID = options.getString("groupID")
1145
+ var offlinePushInfo = options.getMap("offlinePushInfo")
1146
+
1147
+ var isOnlineOnly = false
1148
+ if (options.hasKey("isOnlineOnly")) {
1149
+ isOnlineOnly = options.getBoolean("isOnlineOnly")
1150
+ }
1151
+
1152
+ if (offlinePushInfo == null) {
1153
+ val defaultOfflinePushInfo = Arguments.createMap()
1154
+ defaultOfflinePushInfo.putString("title", "you have a new message")
1155
+ defaultOfflinePushInfo.putString("desc", "new message")
1156
+ defaultOfflinePushInfo.putString("ex", "")
1157
+ defaultOfflinePushInfo.putString("iOSPushSound", "+1")
1158
+ defaultOfflinePushInfo.putBoolean("iOSBadgeCount", true)
1159
+ offlinePushInfo = defaultOfflinePushInfo
1160
+ }
1161
+
1162
+ assert(message != null)
1163
+ Aka_im_core.sendMessageNotOss(
1164
+ SendMsgCallBack(reactContext, promise, message!!),
1165
+ operationID,
1166
+ map2string(message),
1167
+ receiver,
1168
+ groupID,
1169
+ map2string(offlinePushInfo),
1170
+ isOnlineOnly
1171
+ )
1172
+ }
1173
+
1174
+ // override fun setAppBadge(appUnreadCount: Int, operationID: String, promise: Promise) {
1175
+ // Aka_im_core.setAppBadge(CallbackPromise(promise), operationID, appUnreadCount)
1176
+ // }
1177
+
1178
+ override fun uploadLogs(options: ReadableMap, opid: String?, promise: Promise) {
1179
+ Aka_im_core.uploadLogs(
1180
+ CallbackPromise(promise),
1181
+ opid,
1182
+ options.getDouble("line").toLong(),
1183
+ options.getString("ex") ?: "",
1184
+ UploadLogProgressListener(reactContext, opid ?: "")
1185
+ )
1186
+ }
1187
+
1188
+ override fun logs(options: ReadableMap, opid: String?, promise: Promise) {
1189
+ val logLevel = options.getDouble("logLevel")
1190
+ val file = options.getString("file")
1191
+ val line = options.getDouble("line")
1192
+ val msg = options.getString("msgs")
1193
+ val err = options.getString("err")
1194
+ val keyAndValue = options.getString("keyAndValue")
1195
+ Aka_im_core.logs(
1196
+ CallbackPromise(promise),
1197
+ opid,
1198
+ logLevel.toLong(),
1199
+ file,
1200
+ line.toLong(),
1201
+ msg,
1202
+ err,
1203
+ keyAndValue
1204
+ )
1205
+ }
1206
+
1207
+ fun getSdkVersion(): String {
1208
+ return Aka_im_core.getSdkVersion()
1209
+ }
1210
+
1211
+ override fun uploadFile(reqData: ReadableMap, operationID: String, promise: Promise) {
1212
+ Aka_im_core.uploadFile(
1213
+ CallbackPromise(promise),
1214
+ operationID,
1215
+ map2string(reqData),
1216
+ UploadFileCallbackListener(reactContext, operationID)
1217
+ )
1218
+ }
1219
+
1220
+ override fun unInitSDK(operationID: String?, promise: Promise) {
1221
+ Aka_im_core.unInitSDK(operationID)
1222
+ }
1223
+ // ============
1224
+ override fun setSelfInfo(userInfo: ReadableMap, operationID: String, promise: Promise) {
1225
+ Aka_im_core.setSelfInfo(CallbackPromise(promise), operationID, map2string(userInfo))
1226
+ }
1227
+ override fun getUsersInfo(userIDList: ReadableArray, operationID: String, promise: Promise) {
1228
+ Aka_im_core.getUsersInfo(CallbackPromise(promise), operationID, userIDList.toString())
1229
+ }
1230
+ override fun getLoginUserID(promise: Promise) {
1231
+ val userID = Aka_im_core.getLoginUserID()
1232
+ promise.resolve(userID)
1233
+ }
1234
+ override fun getLoginStatus(operationID: String, promise: Promise) {
1235
+ val status = Aka_im_core.getLoginStatus(operationID)
1236
+ promise.resolve(status.toString())
1237
+ }
1238
+ override fun networkStatusChange(operationID: String, promise: Promise) {
1239
+ Aka_im_core.networkStatusChanged(CallbackPromise(promise), operationID)
1240
+ }
1241
+ override fun setAppBackgroundStatus(
1242
+ isBackground: Boolean,
1243
+ operationID: String,
1244
+ promise: Promise
1245
+ ) {
1246
+ Aka_im_core.setAppBackgroundStatus(CallbackPromise(promise), operationID, isBackground)
1247
+ }
1248
+ override fun logout(operationID: String, promise: Promise) {
1249
+ Aka_im_core.logout(CallbackPromise(promise), operationID)
1250
+ }
1251
+ override fun login(options: ReadableMap, operationID: String, promise: Promise) {
1252
+ Aka_im_core.login(
1253
+ CallbackPromise(promise),
1254
+ operationID,
1255
+ options.getString("userID"),
1256
+ options.getString("token")
1257
+ )
1258
+ }
1259
+
1260
+ override fun initSDK(options: ReadableMap, operationID: String, promise: Promise) {
1261
+ val config: WritableMap = Arguments.createMap()
1262
+ config.merge(options)
1263
+
1264
+ config.putInt("platformID", 2)
1265
+
1266
+ val initialized =
1267
+ Aka_im_core.initSDK(InitSDKListener(reactContext), operationID, map2string(config))
1268
+ setUserListener()
1269
+ setConversationListener()
1270
+ setFriendListener()
1271
+ setGroupListener()
1272
+ setAdvancedMsgListener()
1273
+ setBatchMsgListener()
1274
+
1275
+ if (initialized) {
1276
+ promise.resolve("init success")
1277
+ } else {
1278
+ promise.reject("-1", "please check params and dir")
1279
+ }
1280
+ }
1281
+ private fun setBatchMsgListener() {
1282
+ Aka_im_core.setBatchMsgListener(BatchMsgListener(reactContext))
1283
+ }
1284
+ private fun setAdvancedMsgListener() {
1285
+ Aka_im_core.setAdvancedMsgListener(AdvancedMsgListener(reactContext))
1286
+ }
1287
+ private fun setGroupListener() {
1288
+ Aka_im_core.setGroupListener(OnGroupListener(reactContext))
1289
+ }
1290
+ private fun setFriendListener() {
1291
+ Aka_im_core.setFriendListener(OnFriendshipListener(reactContext))
1292
+ }
1293
+ private fun setConversationListener() {
1294
+ Aka_im_core.setConversationListener(OnConversationListener(reactContext))
1295
+ }
1296
+ private fun setUserListener() {
1297
+ Aka_im_core.setUserListener(UserListener(reactContext))
1298
+ }
1299
+
1300
+ private var listenerCount = 0
1301
+ override fun addListener(eventName: String?) {
1302
+ listenerCount += 1
1303
+ }
1304
+ override fun removeListeners(count: Double) {
1305
+ listenerCount -= count.toInt()
1306
+ }
1307
+
1308
+ private fun map2string(map: ReadableMap): String {
1309
+ return map.toString()
1310
+ }
1311
+ private fun array2string(array: ReadableArray): String {
1312
+ return array.toString()
1313
+ }
1314
+ override fun getName(): String {
1315
+ return NAME
1316
+ }
1317
+
1318
+ // Example method
1319
+ // See https://reactnative.dev/docs/native-modules-android
1320
+ override fun multiply(a: Double, b: Double): Double {
1321
+ return a * b
1322
+ }
1323
+
1324
+ companion object {
1325
+ const val NAME = "AkaimSdkRn"
1326
+ }
1327
+ }