juggleim-rnsdk 0.0.8

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 (196) hide show
  1. package/README.md +521 -0
  2. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  3. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  4. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  5. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  6. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  7. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  8. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  9. package/android/.gradle/8.9/gc.properties +0 -0
  10. package/android/.gradle/9.0-milestone-1/checksums/checksums.lock +0 -0
  11. package/android/.gradle/9.0-milestone-1/fileChanges/last-build.bin +0 -0
  12. package/android/.gradle/9.0-milestone-1/fileHashes/fileHashes.lock +0 -0
  13. package/android/.gradle/9.0-milestone-1/gc.properties +0 -0
  14. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  15. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  16. package/android/.gradle/config.properties +2 -0
  17. package/android/.gradle/vcs-1/gc.properties +0 -0
  18. package/android/.idea/AndroidProjectSystem.xml +6 -0
  19. package/android/.idea/caches/deviceStreaming.xml +981 -0
  20. package/android/.idea/gradle.xml +12 -0
  21. package/android/.idea/migrations.xml +10 -0
  22. package/android/.idea/misc.xml +10 -0
  23. package/android/.idea/runConfigurations.xml +17 -0
  24. package/android/.idea/vcs.xml +6 -0
  25. package/android/.settings/org.eclipse.buildship.core.prefs +2 -0
  26. package/android/build/.transforms/32937366d2d155289e73cba3894468b5/results.bin +1 -0
  27. package/android/build/.transforms/32937366d2d155289e73cba3894468b5/transformed/classes/classes_dex/classes.dex +0 -0
  28. package/android/build/.transforms/3836873630d52928fb1c95f4a42a08c2/results.bin +1 -0
  29. package/android/build/.transforms/3836873630d52928fb1c95f4a42a08c2/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/BuildConfig.dex +0 -0
  30. package/android/build/.transforms/3836873630d52928fb1c95f4a42a08c2/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager.dex +0 -0
  31. package/android/build/.transforms/3836873630d52928fb1c95f4a42a08c2/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMPackage.dex +0 -0
  32. package/android/build/.transforms/3836873630d52928fb1c95f4a42a08c2/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  33. package/android/build/.transforms/4ae221a259570a6033b0069041b5796d/results.bin +1 -0
  34. package/android/build/.transforms/4ae221a259570a6033b0069041b5796d/transformed/classes/classes_dex/classes.dex +0 -0
  35. package/android/build/.transforms/85a2c003bf85108f4351f2cf87e94301/results.bin +1 -0
  36. package/android/build/.transforms/85a2c003bf85108f4351f2cf87e94301/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/BuildConfig.dex +0 -0
  37. package/android/build/.transforms/85a2c003bf85108f4351f2cf87e94301/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$1.dex +0 -0
  38. package/android/build/.transforms/85a2c003bf85108f4351f2cf87e94301/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$2.dex +0 -0
  39. package/android/build/.transforms/85a2c003bf85108f4351f2cf87e94301/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager.dex +0 -0
  40. package/android/build/.transforms/85a2c003bf85108f4351f2cf87e94301/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMPackage.dex +0 -0
  41. package/android/build/.transforms/85a2c003bf85108f4351f2cf87e94301/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  42. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/results.bin +1 -0
  43. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/BuildConfig.dex +0 -0
  44. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/FileUtils.dex +0 -0
  45. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$1.dex +0 -0
  46. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$10.dex +0 -0
  47. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$11.dex +0 -0
  48. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$12.dex +0 -0
  49. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$13.dex +0 -0
  50. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$14.dex +0 -0
  51. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$15.dex +0 -0
  52. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$16.dex +0 -0
  53. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$17.dex +0 -0
  54. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$18.dex +0 -0
  55. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$2.dex +0 -0
  56. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$3.dex +0 -0
  57. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$4.dex +0 -0
  58. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$5.dex +0 -0
  59. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$6.dex +0 -0
  60. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$7.dex +0 -0
  61. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$8.dex +0 -0
  62. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$9.dex +0 -0
  63. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager.dex +0 -0
  64. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMPackage.dex +0 -0
  65. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/RNTypeConverter$1.dex +0 -0
  66. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/RNTypeConverter.dex +0 -0
  67. package/android/build/.transforms/9a2afda83c396e5ec45393e60e403432/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  68. package/android/build/.transforms/c196b8eedd9d5b3ab65791cf668fe454/results.bin +1 -0
  69. package/android/build/.transforms/c196b8eedd9d5b3ab65791cf668fe454/transformed/classes/classes_dex/classes.dex +0 -0
  70. package/android/build/generated/source/buildConfig/debug/com/juggleim/BuildConfig.java +10 -0
  71. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +9 -0
  72. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +18 -0
  73. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
  74. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  75. package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +4 -0
  76. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  77. package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +1 -0
  78. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  79. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  80. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  81. package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  82. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  83. package/android/build/intermediates/compile_symbol_list/debug/R.txt +1958 -0
  84. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  85. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  86. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  87. package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +2 -0
  88. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  89. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  90. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  91. package/android/build/intermediates/javac/debug/classes/com/juggleim/BuildConfig.class +0 -0
  92. package/android/build/intermediates/javac/debug/classes/com/juggleim/FileUtils.class +0 -0
  93. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$1.class +0 -0
  94. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$10.class +0 -0
  95. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$11.class +0 -0
  96. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$12.class +0 -0
  97. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$13.class +0 -0
  98. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$14.class +0 -0
  99. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$15.class +0 -0
  100. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$16.class +0 -0
  101. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$17.class +0 -0
  102. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$18.class +0 -0
  103. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$2.class +0 -0
  104. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$3.class +0 -0
  105. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$4.class +0 -0
  106. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$5.class +0 -0
  107. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$6.class +0 -0
  108. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$7.class +0 -0
  109. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$8.class +0 -0
  110. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager$9.class +0 -0
  111. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMManager.class +0 -0
  112. package/android/build/intermediates/javac/debug/classes/com/juggleim/JuggleIMPackage.class +0 -0
  113. package/android/build/intermediates/javac/debug/classes/com/juggleim/RNTypeConverter$1.class +0 -0
  114. package/android/build/intermediates/javac/debug/classes/com/juggleim/RNTypeConverter.class +0 -0
  115. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/BuildConfig.class +0 -0
  116. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/FileUtils.class +0 -0
  117. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$1.class +0 -0
  118. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$10.class +0 -0
  119. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$11.class +0 -0
  120. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$12.class +0 -0
  121. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$13.class +0 -0
  122. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$14.class +0 -0
  123. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$15.class +0 -0
  124. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$16.class +0 -0
  125. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$17.class +0 -0
  126. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$18.class +0 -0
  127. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$2.class +0 -0
  128. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$3.class +0 -0
  129. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$4.class +0 -0
  130. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$5.class +0 -0
  131. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$6.class +0 -0
  132. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$7.class +0 -0
  133. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$8.class +0 -0
  134. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$9.class +0 -0
  135. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager.class +0 -0
  136. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMPackage.class +0 -0
  137. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/RNTypeConverter$1.class +0 -0
  138. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/RNTypeConverter.class +0 -0
  139. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +2 -0
  140. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
  141. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +11 -0
  142. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
  143. package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +9 -0
  144. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
  145. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  146. package/android/build/intermediates/navigation_json/debug/navigation.json +1 -0
  147. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  148. package/android/build/intermediates/packaged_manifests/debug/output-metadata.json +18 -0
  149. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/BuildConfig.class +0 -0
  150. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/FileUtils.class +0 -0
  151. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$1.class +0 -0
  152. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$10.class +0 -0
  153. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$11.class +0 -0
  154. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$12.class +0 -0
  155. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$13.class +0 -0
  156. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$14.class +0 -0
  157. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$15.class +0 -0
  158. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$16.class +0 -0
  159. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$17.class +0 -0
  160. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$18.class +0 -0
  161. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$2.class +0 -0
  162. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$3.class +0 -0
  163. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$4.class +0 -0
  164. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$5.class +0 -0
  165. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$6.class +0 -0
  166. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$7.class +0 -0
  167. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$8.class +0 -0
  168. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$9.class +0 -0
  169. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager.class +0 -0
  170. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMPackage.class +0 -0
  171. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/RNTypeConverter$1.class +0 -0
  172. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/RNTypeConverter.class +0 -0
  173. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  174. package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  175. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
  176. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +1450 -0
  177. package/android/build/outputs/logs/manifest-merger-debug-report.txt +17 -0
  178. package/android/build/reports/problems/problems-report.html +663 -0
  179. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$1.class.uniqueId3 +0 -0
  180. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$2.class.uniqueId0 +0 -0
  181. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager.class.uniqueId1 +0 -0
  182. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMPackage.class.uniqueId2 +0 -0
  183. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  184. package/android/build.gradle +48 -0
  185. package/android/local.properties +8 -0
  186. package/android/src/main/AndroidManifest.xml +3 -0
  187. package/android/src/main/java/com/juggleim/FileUtils.java +104 -0
  188. package/android/src/main/java/com/juggleim/JuggleIMManager.java +1220 -0
  189. package/android/src/main/java/com/juggleim/JuggleIMPackage.java +27 -0
  190. package/android/src/main/java/com/juggleim/RNTypeConverter.java +163 -0
  191. package/im-rn-sdk.podspec +20 -0
  192. package/ios/JuggleIMManager.h +9 -0
  193. package/ios/JuggleIMManager.m +1186 -0
  194. package/package.json +45 -0
  195. package/src/index.d.ts +691 -0
  196. package/src/index.js +854 -0
@@ -0,0 +1,1220 @@
1
+ package com.juggleim;
2
+
3
+ import android.util.Log;
4
+
5
+ import com.facebook.react.bridge.Promise;
6
+ import com.facebook.react.bridge.ReactApplicationContext;
7
+ import com.facebook.react.bridge.ReactContextBaseJavaModule;
8
+ import com.facebook.react.bridge.ReactMethod;
9
+ import com.facebook.react.bridge.ReadableArray;
10
+ import com.facebook.react.bridge.ReadableMap;
11
+ import com.facebook.react.bridge.ReadableMapKeySetIterator;
12
+ import com.facebook.react.bridge.WritableMap;
13
+ import com.facebook.react.bridge.WritableNativeMap;
14
+ import com.facebook.react.bridge.WritableArray;
15
+ import com.facebook.react.bridge.WritableNativeArray;
16
+ import com.facebook.react.modules.core.DeviceEventManagerModule;
17
+ import com.juggle.im.JIMConst;
18
+ import com.juggle.im.interfaces.IConnectionManager;
19
+ import com.juggle.im.interfaces.IMessageManager;
20
+ import com.juggle.im.interfaces.IConversationManager;
21
+ import com.juggle.im.model.ConversationMentionInfo;
22
+ import com.juggle.im.model.GetMessageOptions;
23
+ import com.juggle.im.model.Message;
24
+ import com.juggle.im.model.Conversation;
25
+ import com.juggle.im.model.ConversationInfo;
26
+ import com.juggle.im.model.MessageMentionInfo;
27
+ import com.juggle.im.model.MessageReaction;
28
+ import com.juggle.im.model.MessageReactionItem;
29
+ import com.juggle.im.model.UserInfo;
30
+ import com.juggle.im.model.GroupMessageReadInfo;
31
+ import com.juggle.im.model.MessageContent;
32
+ import com.juggle.im.model.messages.*;
33
+ import com.juggle.im.JIM;
34
+ import com.juggle.im.internal.logger.JLogConfig;
35
+ import com.juggle.im.internal.logger.JLogLevel;
36
+
37
+ import java.util.ArrayList;
38
+ import java.util.HashMap;
39
+ import java.util.List;
40
+ import java.util.Map;
41
+
42
+ import javax.annotation.Nonnull;
43
+
44
+ /**
45
+ * Juggle IM React Native Android 模块
46
+ */
47
+ public class JuggleIMManager extends ReactContextBaseJavaModule {
48
+ private static final String MODULE_NAME = "JuggleIM";
49
+ private Map<String, IConnectionManager.IConnectionStatusListener> connectionListeners = new HashMap<>();
50
+ private Map<String, IMessageManager.IMessageListener> messageListeners = new HashMap<>();
51
+ private Map<String, IMessageManager.IMessageReadReceiptListener> readReceiptListeners = new HashMap<>();
52
+ private Map<String, IConversationManager.IConversationListener> conversationListeners = new HashMap<>();
53
+
54
+ public JuggleIMManager(@Nonnull ReactApplicationContext reactContext) {
55
+ super(reactContext);
56
+ }
57
+
58
+ @Nonnull
59
+ @Override
60
+ public String getName() {
61
+ return MODULE_NAME;
62
+ }
63
+
64
+ // 添加这两个方法以解决React Native的警告
65
+ @ReactMethod
66
+ public void addListener(String eventName) {
67
+ // Keep: Required for RN built in Event Emitter Calls.
68
+ }
69
+
70
+ @ReactMethod
71
+ public void removeListeners(Integer count) {
72
+ // Keep: Required for RN built in Event Emitter Calls.
73
+ }
74
+
75
+ /**
76
+ * 设置服务器地址列表
77
+ *
78
+ * @param urls 服务器地址列表
79
+ */
80
+ @ReactMethod
81
+ public void setServerUrls(ReadableArray urls) {
82
+ List<String> serverList = new ArrayList<>();
83
+ for (int i = 0; i < urls.size(); i++) {
84
+ serverList.add(urls.getString(i));
85
+ }
86
+ com.juggle.im.JIM.getInstance().setServerUrls(serverList);
87
+ }
88
+
89
+ /**
90
+ * 初始化SDK
91
+ *
92
+ * @param appKey 应用唯一标识
93
+ */
94
+ @ReactMethod
95
+ public void init(String appKey) {
96
+ JIM.InitConfig.Builder builder = new JIM.InitConfig.Builder();
97
+ JLogConfig.Builder logBuilder = new JLogConfig.Builder(getReactApplicationContext());
98
+ logBuilder.setLogConsoleLevel(JLogLevel.JLogLevelVerbose);
99
+ builder.setJLogConfig(new JLogConfig(logBuilder));
100
+ JIM.getInstance().init(getCurrentActivity(), appKey, builder.build());
101
+ }
102
+
103
+ /**
104
+ * 连接到服务器
105
+ *
106
+ * @param token 用户token
107
+ */
108
+ @ReactMethod
109
+ public void connect(String token) {
110
+ com.juggle.im.JIM.getInstance().getConnectionManager().connect(token);
111
+ }
112
+
113
+ /**
114
+ * 添加连接状态监听器
115
+ *
116
+ * @param key 监听器标识
117
+ */
118
+ @ReactMethod
119
+ public void addConnectionStatusListener(String key) {
120
+ IConnectionManager.IConnectionStatusListener listener = new IConnectionManager.IConnectionStatusListener() {
121
+ @Override
122
+ public void onStatusChange(JIMConst.ConnectionStatus status, int code, String extra) {
123
+ WritableMap params = new WritableNativeMap();
124
+ params.putString("key", key);
125
+ params.putString("status", getStatusString(status));
126
+ params.putInt("code", code);
127
+ params.putString("extra", extra != null ? extra : "");
128
+
129
+ sendEvent("ConnectionStatusChanged", params);
130
+ }
131
+
132
+ @Override
133
+ public void onDbOpen() {
134
+ WritableMap params = new WritableNativeMap();
135
+ params.putString("key", key);
136
+ sendEvent("DbDidOpen", params);
137
+ }
138
+
139
+ @Override
140
+ public void onDbClose() {
141
+ WritableMap params = new WritableNativeMap();
142
+ params.putString("key", key);
143
+ sendEvent("DbDidClose", params);
144
+ }
145
+ };
146
+
147
+ com.juggle.im.JIM.getInstance().getConnectionManager().addConnectionStatusListener(key, listener);
148
+ }
149
+
150
+ /**
151
+ * 发送事件到React Native
152
+ */
153
+ private void sendEvent(String eventName, WritableMap params) {
154
+ getReactApplicationContext()
155
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
156
+ .emit(eventName, params);
157
+ }
158
+
159
+ /**
160
+ * 将连接状态转换为字符串
161
+ */
162
+ private String getStatusString(JIMConst.ConnectionStatus status) {
163
+ switch (status) {
164
+ case CONNECTED:
165
+ return "connected";
166
+ case CONNECTING:
167
+ return "connecting";
168
+ case DISCONNECTED:
169
+ return "disconnected";
170
+ case FAILURE:
171
+ return "failure";
172
+ default:
173
+ return "unknown";
174
+ }
175
+ }
176
+
177
+ /**
178
+ * 添加消息监听器
179
+ *
180
+ * @param key 监听器标识
181
+ */
182
+ @ReactMethod
183
+ public void addMessageListener(String key) {
184
+ IMessageManager.IMessageListener listener = new IMessageManager.IMessageListener() {
185
+ @Override
186
+ public void onMessageReceive(Message message) {
187
+ WritableMap params = new WritableNativeMap();
188
+ params.putString("key", key);
189
+ params.putMap("message", convertMessageToMap(message));
190
+ sendEvent("MessageReceived", params);
191
+ }
192
+
193
+ @Override
194
+ public void onMessageRecall(Message message) {
195
+ WritableMap params = new WritableNativeMap();
196
+ params.putString("key", key);
197
+ params.putMap("message", convertMessageToMap(message));
198
+ sendEvent("MessageRecalled", params);
199
+ }
200
+
201
+ @Override
202
+ public void onMessageUpdate(Message message) {
203
+ WritableMap params = new WritableNativeMap();
204
+ params.putString("key", key);
205
+ params.putMap("message", convertMessageToMap(message));
206
+ sendEvent("MessageUpdated", params);
207
+ }
208
+
209
+ @Override
210
+ public void onMessageDelete(Conversation conversation, List<Long> clientMsgNos) {
211
+ WritableMap params = new WritableNativeMap();
212
+ params.putString("key", key);
213
+ params.putMap("conversation", convertConversationToMap(conversation));
214
+ WritableArray msgNos = new WritableNativeArray();
215
+ for (Long msgNo : clientMsgNos) {
216
+ msgNos.pushDouble(msgNo.doubleValue());
217
+ }
218
+ params.putArray("clientMsgNos", msgNos);
219
+ sendEvent("MessageDeleted", params);
220
+ }
221
+
222
+ @Override
223
+ public void onMessageClear(Conversation conversation, long timestamp, String senderId) {
224
+ WritableMap params = new WritableNativeMap();
225
+ params.putString("key", key);
226
+ params.putMap("conversation", convertConversationToMap(conversation));
227
+ params.putDouble("timestamp", timestamp);
228
+ params.putString("senderId", senderId != null ? senderId : "");
229
+ sendEvent("MessageCleared", params);
230
+ }
231
+
232
+ @Override
233
+ public void onMessageReactionAdd(Conversation conversation, MessageReaction reaction) {
234
+ WritableMap params = new WritableNativeMap();
235
+ params.putString("key", key);
236
+ params.putMap("conversation", convertConversationToMap(conversation));
237
+ params.putMap("reaction", convertReactionToMap(reaction));
238
+ sendEvent("MessageReactionAdded", params);
239
+ }
240
+
241
+ @Override
242
+ public void onMessageReactionRemove(Conversation conversation, MessageReaction reaction) {
243
+ WritableMap params = new WritableNativeMap();
244
+ params.putString("key", key);
245
+ params.putMap("conversation", convertConversationToMap(conversation));
246
+ params.putMap("reaction", convertReactionToMap(reaction));
247
+ sendEvent("MessageReactionRemoved", params);
248
+ }
249
+
250
+ };
251
+
252
+ messageListeners.put(key, listener);
253
+ com.juggle.im.JIM.getInstance().getMessageManager().addListener(key, listener);
254
+ }
255
+
256
+ /**
257
+ * 添加消息阅读状态监听器
258
+ *
259
+ * @param key 监听器标识
260
+ */
261
+ @ReactMethod
262
+ public void addMessageReadReceiptListener(String key) {
263
+ IMessageManager.IMessageReadReceiptListener listener = new IMessageManager.IMessageReadReceiptListener() {
264
+ @Override
265
+ public void onMessagesRead(Conversation conversation, List<String> messageIds) {
266
+ WritableMap params = new WritableNativeMap();
267
+ params.putString("key", key);
268
+ params.putMap("conversation", convertConversationToMap(conversation));
269
+ WritableArray msgIds = new WritableNativeArray();
270
+ for (String msgId : messageIds) {
271
+ msgIds.pushString(msgId);
272
+ }
273
+ params.putArray("messageIds", msgIds);
274
+ sendEvent("MessagesRead", params);
275
+ }
276
+
277
+ @Override
278
+ public void onGroupMessagesRead(Conversation conversation, Map<String, GroupMessageReadInfo> messages) {
279
+ WritableMap params = new WritableNativeMap();
280
+ params.putString("key", key);
281
+ params.putMap("conversation", convertConversationToMap(conversation));
282
+ WritableMap messagesMap = new WritableNativeMap();
283
+ for (Map.Entry<String, GroupMessageReadInfo> entry : messages.entrySet()) {
284
+ messagesMap.putMap(entry.getKey(), convertGroupMessageReadInfoToMap(entry.getValue()));
285
+ }
286
+ params.putMap("messages", messagesMap);
287
+ sendEvent("GroupMessagesRead", params);
288
+ }
289
+ };
290
+
291
+ readReceiptListeners.put(key, listener);
292
+ com.juggle.im.JIM.getInstance().getMessageManager().addReadReceiptListener(key, listener);
293
+ }
294
+
295
+ /**
296
+ * 添加会话监听器
297
+ *
298
+ * @param key 监听器标识
299
+ */
300
+ @ReactMethod
301
+ public void addConversationListener(String key) {
302
+ IConversationManager.IConversationListener listener = new IConversationManager.IConversationListener() {
303
+ @Override
304
+ public void onConversationInfoAdd(List<ConversationInfo> conversationInfoList) {
305
+ WritableMap params = new WritableNativeMap();
306
+ params.putString("key", key);
307
+ WritableArray conversations = new WritableNativeArray();
308
+ for (ConversationInfo info : conversationInfoList) {
309
+ conversations.pushMap(convertConversationInfoToMap(info));
310
+ }
311
+ params.putArray("conversations", conversations);
312
+ sendEvent("ConversationInfoAdded", params);
313
+ }
314
+
315
+ @Override
316
+ public void onConversationInfoUpdate(List<ConversationInfo> conversationInfoList) {
317
+ WritableMap params = new WritableNativeMap();
318
+ params.putString("key", key);
319
+ WritableArray conversations = new WritableNativeArray();
320
+ for (ConversationInfo info : conversationInfoList) {
321
+ conversations.pushMap(convertConversationInfoToMap(info));
322
+ }
323
+ params.putArray("conversations", conversations);
324
+ sendEvent("ConversationInfoUpdated", params);
325
+ }
326
+
327
+ @Override
328
+ public void onConversationInfoDelete(List<ConversationInfo> conversationInfoList) {
329
+ WritableMap params = new WritableNativeMap();
330
+ params.putString("key", key);
331
+ WritableArray conversations = new WritableNativeArray();
332
+ for (ConversationInfo info : conversationInfoList) {
333
+ conversations.pushMap(convertConversationInfoToMap(info));
334
+ }
335
+ params.putArray("conversations", conversations);
336
+ sendEvent("ConversationInfoDeleted", params);
337
+ }
338
+
339
+ @Override
340
+ public void onTotalUnreadMessageCountUpdate(int count) {
341
+ WritableMap params = new WritableNativeMap();
342
+ params.putString("key", key);
343
+ params.putInt("count", count);
344
+ sendEvent("TotalUnreadMessageCountUpdated", params);
345
+ }
346
+ };
347
+
348
+ conversationListeners.put(key, listener);
349
+ com.juggle.im.JIM.getInstance().getConversationManager().addListener(key, listener);
350
+ }
351
+
352
+ /**
353
+ * 将消息对象转换为Map
354
+ */
355
+ private WritableMap convertMessageToMap(Message message) {
356
+ WritableMap map = new WritableNativeMap();
357
+ map.putString("messageId", message.getMessageId());
358
+ map.putDouble("clientMsgNo", message.getClientMsgNo());
359
+ map.putDouble("timestamp", message.getTimestamp());
360
+ map.putString("senderUserId", message.getSenderUserId());
361
+ map.putMap("conversation", convertConversationToMap(message.getConversation()));
362
+ map.putMap("content", convertMessageContentToMap(message.getContent()));
363
+
364
+ // 添加消息方向
365
+ if (message.getDirection() != null) {
366
+ map.putInt("direction", message.getDirection().getValue());
367
+ }
368
+
369
+ // 添加消息状态
370
+ if (message.getState() != null) {
371
+ map.putInt("state", message.getState().getValue());
372
+ }
373
+
374
+ // 添加是否已读
375
+ map.putBoolean("hasRead", message.isHasRead());
376
+
377
+ // 添加群消息阅读信息
378
+ if (message.getGroupMessageReadInfo() != null) {
379
+ map.putMap("groupMessageReadInfo", convertGroupMessageReadInfoToMap(message.getGroupMessageReadInfo()));
380
+ }
381
+
382
+ // 添加引用消息
383
+ if (message.getReferredMessage() != null) {
384
+ map.putMap("referredMessage", convertMessageToMap(message.getReferredMessage()));
385
+ }
386
+
387
+ // 添加@消息信息
388
+ if (message.getMentionInfo() != null) {
389
+ map.putMap("mentionInfo", convertMentionInfoToMap(message.getMentionInfo()));
390
+ }
391
+
392
+ // 添加本地属性
393
+ map.putString("localAttribute", message.getLocalAttribute());
394
+
395
+ // 添加是否删除
396
+ map.putBoolean("isDelete", message.isDelete());
397
+
398
+ // 添加是否编辑
399
+ map.putBoolean("isEdit", message.isEdit());
400
+
401
+ return map;
402
+ }
403
+
404
+ /**
405
+ * 将会话对象转换为Map
406
+ */
407
+ private WritableMap convertConversationToMap(Conversation conversation) {
408
+ WritableMap map = new WritableNativeMap();
409
+ map.putInt("conversationType", conversation.getConversationType().getValue());
410
+ map.putString("conversationId", conversation.getConversationId());
411
+ return map;
412
+ }
413
+
414
+ /**
415
+ * 将消息内容转换为Map
416
+ */
417
+ private WritableMap convertMessageContentToMap(MessageContent content) {
418
+ WritableMap map = new WritableNativeMap();
419
+ map.putString("contentType", content.getContentType());
420
+ if (content.getContentType().equals("jg:text")) {
421
+ map.putString("content", ((TextMessage) content).getContent());
422
+ } else if (content.getContentType().equals("jg:img")) {
423
+ ImageMessage img = (ImageMessage) content;
424
+ map.putString("url", img.getUrl());
425
+ map.putString("localPath", img.getLocalPath());
426
+ map.putString("thumbnailLocalPath", img.getThumbnailLocalPath());
427
+ map.putString("thumbnailUrl", img.getThumbnailUrl());
428
+ map.putInt("width", img.getWidth());
429
+ map.putInt("height", img.getHeight());
430
+ } else if (content.getContentType().equals("jg:file")) {
431
+ FileMessage file = (FileMessage) content;
432
+ map.putString("url", file.getUrl());
433
+ map.putString("type", file.getType());
434
+ map.putString("name", file.getName());
435
+ map.putDouble("size", file.getSize());
436
+ } else if (content.getContentType().equals("jg:voice")) {
437
+ VoiceMessage voice = (VoiceMessage) content;
438
+ map.putString("url", voice.getUrl());
439
+ map.putString("localPath", voice.getLocalPath());
440
+ map.putInt("duration", voice.getDuration());
441
+ } else {
442
+ Log.e("convertMessageContentToMap", "Unknown contentType: " + content.getContentType());
443
+ return RNTypeConverter.toWritableMap(content);
444
+ }
445
+
446
+ return map;
447
+ }
448
+
449
+ private MessageContent convertMapToMessageContent(ReadableMap map) {
450
+ String contentType = map.getString("contentType");
451
+ switch (contentType) {
452
+ case "jg:text":
453
+ TextMessage text = new TextMessage(map.getString("content"));
454
+ return text;
455
+ case "jg:img":
456
+ ImageMessage img = new ImageMessage();
457
+ img.setUrl(map.getString("url"));
458
+ img.setLocalPath(map.getString("localPath"));
459
+ img.setThumbnailLocalPath(map.getString("thumbnailLocalPath"));
460
+ img.setThumbnailUrl(map.getString("thumbnailUrl"));
461
+ img.setWidth(map.getInt("width"));
462
+ img.setHeight(map.getInt("height"));
463
+ return img;
464
+ case "jg:file":
465
+ FileMessage file = new FileMessage();
466
+ file.setUrl(map.getString("url"));
467
+ file.setType(map.getString("type"));
468
+ file.setName(map.getString("name"));
469
+ file.setSize(map.getInt("size"));
470
+ return file;
471
+ case "jg:voice":
472
+ VoiceMessage voice = new VoiceMessage();
473
+ voice.setUrl(map.getString("url"));
474
+ voice.setLocalPath(map.getString("localPath"));
475
+ voice.setDuration(map.getInt("duration"));
476
+ return voice;
477
+ default:
478
+ Log.e("convertMapToMessageContent", "contentType: " + contentType);
479
+ return RNTypeConverter.fromReadableMap(map, MessageContent.class);
480
+ }
481
+ }
482
+
483
+ /**
484
+ * 将消息回应转换为Map
485
+ */
486
+ private WritableMap convertReactionToMap(MessageReaction reaction) {
487
+ WritableMap map = new WritableNativeMap();
488
+ map.putString("messageId", reaction.getMessageId());
489
+ WritableArray itemList = new WritableNativeArray();
490
+ for (MessageReactionItem item : reaction.getItemList()) {
491
+ WritableMap mi = new WritableNativeMap();
492
+ mi.putString("reactionId", item.getReactionId());
493
+ WritableArray us = new WritableNativeArray();
494
+ for (UserInfo user : item.getUserInfoList()) {
495
+ us.pushMap(convertUserInfoToMap(user));
496
+ }
497
+ mi.putArray("userInfoList", us);
498
+ itemList.pushMap(mi);
499
+ }
500
+ map.putArray("itemList", itemList);
501
+ return map;
502
+ }
503
+
504
+ /**
505
+ * 将用户信息转换为Map
506
+ */
507
+ private WritableMap convertUserInfoToMap(UserInfo userInfo) {
508
+ WritableMap map = new WritableNativeMap();
509
+ map.putString("userId", userInfo.getUserId());
510
+ map.putString("nickname", userInfo.getUserName());
511
+ map.putString("avatar", userInfo.getPortrait());
512
+ return map;
513
+ }
514
+
515
+ /**
516
+ * 将群消息阅读信息转换为Map
517
+ */
518
+ private WritableMap convertGroupMessageReadInfoToMap(GroupMessageReadInfo info) {
519
+ WritableMap map = new WritableNativeMap();
520
+ map.putInt("readCount", info.getReadCount());
521
+ map.putInt("memberCount", info.getMemberCount());
522
+ return map;
523
+ }
524
+
525
+ private WritableMap convertConversationMentionInfoToMap(ConversationMentionInfo mentionInfo) {
526
+ WritableMap map = new WritableNativeMap();
527
+ if (mentionInfo.getMentionMsgList() != null) {
528
+ WritableArray mentionMsgArray = new WritableNativeArray();
529
+ for (ConversationMentionInfo.MentionMsg mentionMsg : mentionInfo.getMentionMsgList()) {
530
+ WritableMap msgMap = new WritableNativeMap();
531
+ msgMap.putString("senderId", mentionMsg.getSenderId());
532
+ msgMap.putString("msgId", mentionMsg.getMsgId());
533
+ msgMap.putDouble("msgTime", mentionMsg.getMsgTime());
534
+ msgMap.putInt("type", mentionMsg.getType().getValue());
535
+ mentionMsgArray.pushMap(msgMap);
536
+ }
537
+ map.putArray("mentionMsgList", mentionMsgArray);
538
+ }
539
+ return map;
540
+ }
541
+
542
+ //conversation
543
+
544
+ /**
545
+ * 获取会话信息列表
546
+ */
547
+ @ReactMethod
548
+ public void getConversationInfoList(int count, double ts, int pullDirection, Promise promise) {
549
+ try {
550
+ JIMConst.PullDirection direction = pullDirection == 0 ?
551
+ JIMConst.PullDirection.NEWER : JIMConst.PullDirection.OLDER;
552
+
553
+ List<ConversationInfo> conversationInfos = com.juggle.im.JIM.getInstance().getConversationManager().getConversationInfoList(count, (long)ts, direction);
554
+ Log.d("getConversationInfoList", "conversationInfos: " + conversationInfos.size());
555
+ WritableArray result = new WritableNativeArray();
556
+ for (ConversationInfo info : conversationInfos) {
557
+ result.pushMap(convertConversationInfoToMap(info));
558
+ }
559
+ promise.resolve(result);
560
+ } catch (Exception e) {
561
+ e.printStackTrace();
562
+ promise.reject(e);
563
+ }
564
+ }
565
+
566
+ /**
567
+ * 获取单个会话信息
568
+ */
569
+ @ReactMethod
570
+ public void getConversationInfo(ReadableMap conversationMap, Promise promise) {
571
+ Conversation conversation = convertMapToConversation(conversationMap);
572
+ ConversationInfo conversationInfo = com.juggle.im.JIM.getInstance().getConversationManager()
573
+ .getConversationInfo(conversation);
574
+ promise.resolve(convertConversationInfoToMap(conversationInfo));
575
+ }
576
+
577
+ /**
578
+ * 创建会话信息
579
+ */
580
+ @ReactMethod
581
+ public void createConversationInfo(ReadableMap conversationInfoMap, Promise promise) {
582
+ Conversation conversationInfo = convertMapToConversation(conversationInfoMap);
583
+
584
+ com.juggle.im.JIM.getInstance().getConversationManager()
585
+ .createConversationInfo(conversationInfo, new IConversationManager.ICreateConversationInfoCallback() {
586
+ @Override
587
+ public void onSuccess(ConversationInfo info) {
588
+ promise.resolve(convertConversationInfoToMap(info));
589
+ }
590
+
591
+ @Override
592
+ public void onError(int errorCode) {
593
+ promise.reject("error", "Error code: " + errorCode);
594
+ }
595
+ });
596
+ }
597
+
598
+ /**
599
+ * 删除会话信息
600
+ */
601
+ @ReactMethod
602
+ public void deleteConversationInfo(ReadableMap conversationMap, Promise promise) {
603
+ Conversation conversation = convertMapToConversation(conversationMap);
604
+
605
+ com.juggle.im.JIM.getInstance().getConversationManager()
606
+ .deleteConversationInfo(conversation, new IConversationManager.ISimpleCallback() {
607
+ @Override
608
+ public void onSuccess() {
609
+ promise.resolve(true);
610
+ }
611
+
612
+ @Override
613
+ public void onError(int errorCode) {
614
+ promise.reject("error", "Error code: " + errorCode);
615
+ }
616
+ });
617
+ }
618
+
619
+ /**
620
+ * 设置会话免打扰状态
621
+ */
622
+ @ReactMethod
623
+ public void setMute(ReadableMap conversationMap, boolean isMute, Promise promise) {
624
+ Conversation conversation = convertMapToConversation(conversationMap);
625
+
626
+ com.juggle.im.JIM.getInstance().getConversationManager()
627
+ .setMute(conversation, isMute, new IConversationManager.ISimpleCallback() {
628
+ @Override
629
+ public void onSuccess() {
630
+ promise.resolve(true);
631
+ }
632
+
633
+ @Override
634
+ public void onError(int errorCode) {
635
+ promise.reject("error", "Error code: " + errorCode);
636
+ }
637
+ });
638
+ }
639
+
640
+ /**
641
+ * 清除会话未读数
642
+ */
643
+ @ReactMethod
644
+ public void clearUnreadCount(ReadableMap conversationMap, Promise promise) {
645
+ Conversation conversation = convertMapToConversation(conversationMap);
646
+
647
+ com.juggle.im.JIM.getInstance().getConversationManager()
648
+ .clearUnreadCount(conversation, new IConversationManager.ISimpleCallback() {
649
+ @Override
650
+ public void onSuccess() {
651
+ promise.resolve(true);
652
+ }
653
+
654
+ @Override
655
+ public void onError(int errorCode) {
656
+ promise.reject("error", "Error code: " + errorCode);
657
+ }
658
+ });
659
+ }
660
+
661
+ /**
662
+ * 设置会话草稿
663
+ */
664
+ @ReactMethod
665
+ public void setDraft(ReadableMap conversationMap, String draft, Promise promise) {
666
+ Conversation conversation = convertMapToConversation(conversationMap);
667
+ com.juggle.im.JIM.getInstance().getConversationManager()
668
+ .setDraft(conversation, draft);
669
+ promise.resolve(true);
670
+ }
671
+
672
+ /**
673
+ * 获取总未读数
674
+ */
675
+ @ReactMethod
676
+ public void getTotalUnreadCount(Promise promise) {
677
+ int c = com.juggle.im.JIM.getInstance().getConversationManager()
678
+ .getTotalUnreadCount();
679
+ promise.resolve(c);
680
+ }
681
+
682
+ /**
683
+ * 设置会话置顶状态
684
+ */
685
+ @ReactMethod
686
+ public void setTop(ReadableMap conversationMap, boolean isTop, Promise promise) {
687
+ Conversation conversation = convertMapToConversation(conversationMap);
688
+ com.juggle.im.JIM.getInstance().getConversationManager()
689
+ .setTop(conversation, isTop, new IConversationManager.ISimpleCallback() {
690
+ @Override
691
+ public void onSuccess() {
692
+ promise.resolve(true);
693
+ }
694
+
695
+ @Override
696
+ public void onError(int errorCode) {
697
+ promise.reject("error", "Error code: " + errorCode);
698
+ }
699
+ });
700
+ }
701
+
702
+ /**
703
+ * 将 ReadableMap 转换为 Conversation 对象
704
+ */
705
+ private Conversation convertMapToConversation(ReadableMap map) {
706
+ Conversation.ConversationType type = Conversation.ConversationType.values()[map.getInt("conversationType")];
707
+ Conversation conversation = new Conversation(type, map.getString("conversationId"));
708
+ return conversation;
709
+ }
710
+
711
+ /**
712
+ * 将 ReadableMap 转换为 ConversationInfo 对象
713
+ */
714
+ private ConversationInfo convertMapToConversationInfo(ReadableMap map) {
715
+ ConversationInfo info = new ConversationInfo();
716
+ info.setConversation(convertMapToConversation(map.getMap("conversation")));
717
+ info.setUnreadCount(map.getInt("unreadMessageCount"));
718
+ info.setTop(map.getBoolean("isTop"));
719
+ info.setMute(map.getBoolean("isMute"));
720
+ info.setDraft(map.getString("draft"));
721
+ return info;
722
+ }
723
+
724
+ /**
725
+ * 将 ConversationInfo 转换为 WritableMap
726
+ */
727
+ private WritableMap convertConversationInfoToMap(ConversationInfo info) {
728
+ WritableMap map = new WritableNativeMap();
729
+ map.putMap("conversation", convertConversationToMap(info.getConversation()));
730
+ map.putInt("unreadCount", info.getUnreadCount());
731
+ map.putBoolean("isTop", info.isTop());
732
+ map.putBoolean("isMute", info.isMute());
733
+ map.putBoolean("hasUnread", info.hasUnread());
734
+ map.putString("draft", info.getDraft() != null ? info.getDraft() : "");
735
+ map.putDouble("topTime", info.getTopTime());
736
+ map.putDouble("sortTime", info.getSortTime());
737
+
738
+ if (info.getLastMessage() != null) {
739
+ map.putMap("lastMessage", convertMessageToMap(info.getLastMessage()));
740
+ }
741
+
742
+ if (info.getMentionInfo() != null) {
743
+ map.putMap("mentionInfo", convertConversationMentionInfoToMap(info.getMentionInfo()));
744
+ }
745
+
746
+ return map;
747
+ }
748
+
749
+ /**
750
+ * 将 MentionInfo 转换为 WritableMap
751
+ */
752
+ private WritableMap convertMentionInfoToMap(MessageMentionInfo mentionInfo) {
753
+ WritableMap map = new WritableNativeMap();
754
+ WritableArray userMap = new WritableNativeArray();
755
+ map.putInt("type", mentionInfo.getType().getValue());
756
+ for (UserInfo userInfo : mentionInfo.getTargetUsers()) {
757
+ userMap.pushMap(convertUserInfoToMap(userInfo));
758
+ }
759
+ map.putArray("targetUsers", userMap);
760
+ return map;
761
+ }
762
+
763
+ /**
764
+ * 发送消息
765
+ */
766
+ @ReactMethod
767
+ public void sendMessage(ReadableMap messageMap, String messageId, Promise promise) {
768
+ try {
769
+ Message message = convertMapToMessage(messageMap);
770
+ Log.d("sendMessage", message.toString());
771
+ Message sendMsg = JIM.getInstance().getMessageManager().sendMessage(
772
+ message.getContent(),
773
+ message.getConversation(),
774
+ new IMessageManager.ISendMessageCallback() {
775
+ @Override
776
+ public void onSuccess(Message sentMessage) {
777
+ WritableMap result = convertMessageToMap(sentMessage);
778
+ WritableMap event = new WritableNativeMap();
779
+ event.putString("messageId", messageId);
780
+ event.putMap("message", result);
781
+ sendEvent("onMessageSent", event);
782
+ }
783
+
784
+ @Override
785
+ public void onError(Message message, int errorCode) {
786
+ WritableMap errorResult = convertMessageToMap(message);
787
+ WritableMap event = new WritableNativeMap();
788
+ event.putString("messageId", messageId);
789
+ event.putMap("message", errorResult);
790
+ event.putInt("errorCode", errorCode);
791
+ sendEvent("onMessageSentError", event);
792
+ }
793
+ }
794
+ );
795
+ WritableMap result = convertMessageToMap(sendMsg);
796
+ result.putString("messageId", messageId);
797
+ promise.resolve(result);
798
+ } catch (Exception e) {
799
+ promise.reject("SEND_MESSAGE_ERROR", e.getMessage());
800
+ }
801
+ }
802
+
803
+ /**
804
+ * 获取历史消息
805
+ */
806
+ @ReactMethod
807
+ public void getMessages(ReadableMap conversationMap, int direction, ReadableMap options, Promise promise) {
808
+ try {
809
+ Conversation conversation = convertMapToConversation(conversationMap);
810
+ GetMessageOptions getOptions = new GetMessageOptions();
811
+
812
+ if (options.hasKey("count")) {
813
+ getOptions.setCount(options.getInt("count"));
814
+ }
815
+ if (options.hasKey("startTime")) {
816
+ getOptions.setStartTime((long) options.getDouble("startTime"));
817
+ }
818
+
819
+ JIMConst.PullDirection pullDirection = direction == 0 ?
820
+ JIMConst.PullDirection.OLDER : JIMConst.PullDirection.NEWER;
821
+
822
+ JIM.getInstance().getMessageManager().getMessages(
823
+ conversation,
824
+ pullDirection,
825
+ getOptions,
826
+ new IMessageManager.IGetMessagesCallbackV3() {
827
+ @Override
828
+ public void onGetMessages(List<Message> messages, long timestamp, boolean hasMore, int code) {
829
+ WritableMap result = new WritableNativeMap();
830
+ WritableArray messageArray = new WritableNativeArray();
831
+ for (Message msg : messages) {
832
+ messageArray.pushMap(convertMessageToMap(msg));
833
+ }
834
+ result.putArray("messages", messageArray);
835
+ result.putDouble("timestamp", timestamp);
836
+ result.putBoolean("hasMore", hasMore);
837
+ result.putInt("code", code);
838
+ promise.resolve(result);
839
+ }
840
+ }
841
+ );
842
+ } catch (Exception e) {
843
+ promise.reject("GET_MESSAGES_ERROR", e.getMessage());
844
+ }
845
+ }
846
+
847
+ /**
848
+ * 撤回消息
849
+ */
850
+ @ReactMethod
851
+ public void recallMessage(ReadableMap messageMap, ReadableMap extras, Promise promise) {
852
+ try {
853
+ String messageId = messageMap.getString("messageId");
854
+ Map<String, String> extrasMap = new HashMap<>();
855
+ if (extras != null) {
856
+ ReadableMapKeySetIterator it = extras.keySetIterator();
857
+ extrasMap = new HashMap<>();
858
+ while (it.hasNextKey()) {
859
+ extrasMap.put(it.nextKey(), extras.getString(it.nextKey()));
860
+ }
861
+ }
862
+ JIM.getInstance().getMessageManager().recallMessage(
863
+ messageId,
864
+ extrasMap,
865
+ new IMessageManager.IRecallMessageCallback() {
866
+ @Override
867
+ public void onSuccess(Message m) {
868
+ promise.resolve(true);
869
+ }
870
+
871
+ @Override
872
+ public void onError(int errorCode) {
873
+ promise.reject("RECALL_MESSAGE_ERROR", errorCode + "");
874
+ }
875
+ }
876
+ );
877
+ } catch (Exception e) {
878
+ promise.reject("RECALL_MESSAGE_ERROR", e.getMessage());
879
+ }
880
+ }
881
+
882
+ /**
883
+ * 添加消息反应
884
+ */
885
+ @ReactMethod
886
+ public void addMessageReaction(ReadableMap messageMap, String reactionId, Promise promise) {
887
+ try {
888
+ String messageId = messageMap.getString("messageId");
889
+ Conversation conversation = convertMapToConversation(messageMap);
890
+
891
+ JIM.getInstance().getMessageManager().addMessageReaction(
892
+ messageId,
893
+ conversation,
894
+ reactionId,
895
+ new IMessageManager.ISimpleCallback() {
896
+ @Override
897
+ public void onSuccess() {
898
+ promise.resolve(true);
899
+ }
900
+
901
+ @Override
902
+ public void onError(int errorCode) {
903
+ promise.reject("ADD_REACTION_ERROR", errorCode + "");
904
+ }
905
+ }
906
+ );
907
+ } catch (Exception e) {
908
+ promise.reject("ADD_REACTION_ERROR", e.getMessage());
909
+ }
910
+ }
911
+
912
+ /**
913
+ * 移除消息反应
914
+ */
915
+ @ReactMethod
916
+ public void removeMessageReaction(ReadableMap messageMap, String reactionId, Promise promise) {
917
+ try {
918
+ String messageId = messageMap.getString("messageId");
919
+ Conversation conversation = convertMapToConversation(messageMap);
920
+
921
+ JIM.getInstance().getMessageManager().removeMessageReaction(
922
+ messageId,
923
+ conversation,
924
+ reactionId,
925
+ new IMessageManager.ISimpleCallback() {
926
+ @Override
927
+ public void onSuccess() {
928
+ promise.resolve(true);
929
+ }
930
+
931
+ @Override
932
+ public void onError(int errorCode) {
933
+ promise.reject("REMOVE_REACTION_ERROR", errorCode + "");
934
+ }
935
+ }
936
+ );
937
+ } catch (Exception e) {
938
+ promise.reject("REMOVE_REACTION_ERROR", e.getMessage());
939
+ }
940
+ }
941
+
942
+ /**
943
+ * 发送图片消息
944
+ */
945
+ @ReactMethod
946
+ public void sendImageMessage(ReadableMap messageMap, String messageId, Promise promise) {
947
+ try {
948
+ Conversation conversation = convertMapToConversation(messageMap);
949
+ ImageMessage imageMessage = new ImageMessage();
950
+
951
+ ReadableMap contentMap = messageMap.getMap("content");
952
+ if (contentMap.hasKey("localPath")) {
953
+ String path = FileUtils.convertContentUriToFile(getReactApplicationContext(), contentMap.getString("localPath"));
954
+ imageMessage.setLocalPath(path);
955
+ }
956
+ if (contentMap.hasKey("thumbnailLocalPath")) {
957
+ String path = FileUtils.convertContentUriToFile(getReactApplicationContext(), contentMap.getString("localPath"));
958
+ imageMessage.setThumbnailLocalPath(path);
959
+ }
960
+ if (contentMap.hasKey("url")) {
961
+ imageMessage.setUrl(contentMap.getString("url"));
962
+ }
963
+ if (contentMap.hasKey("thumbnailUrl")) {
964
+ imageMessage.setThumbnailUrl(contentMap.getString("thumbnailUrl"));
965
+ }
966
+ if (contentMap.hasKey("width")) {
967
+ imageMessage.setWidth(contentMap.getInt("width"));
968
+ }
969
+ if (contentMap.hasKey("height")) {
970
+ imageMessage.setHeight(contentMap.getInt("height"));
971
+ }
972
+
973
+ Message message = JIM.getInstance().getMessageManager().sendMediaMessage(
974
+ imageMessage,
975
+ conversation,
976
+ new IMessageManager.ISendMediaMessageCallback() {
977
+ @Override
978
+ public void onProgress(int progress, Message message) {
979
+ WritableMap params = new WritableNativeMap();
980
+ params.putString("messageId", messageId);
981
+ params.putInt("progress", progress);
982
+ params.putMap("message", convertMessageToMap(message));
983
+ Log.d("JuggleIM", "onMediaMessageProgress: " + progress);
984
+ sendEvent("onMediaMessageProgress", params);
985
+ }
986
+
987
+ @Override
988
+ public void onSuccess(Message message) {
989
+ WritableMap params = new WritableNativeMap();
990
+ params.putString("messageId", messageId);
991
+ params.putMap("message", convertMessageToMap(message));
992
+ sendEvent("onMediaMessageSent", params);
993
+ }
994
+
995
+ @Override
996
+ public void onError(Message message, int errorCode) {
997
+ WritableMap params = new WritableNativeMap();
998
+ params.putString("messageId", messageId);
999
+ params.putMap("message", convertMessageToMap(message));
1000
+ params.putInt("errorCode", errorCode);
1001
+ sendEvent("onMediaMessageSentError", params);
1002
+ }
1003
+
1004
+ @Override
1005
+ public void onCancel(Message message) {
1006
+ WritableMap params = new WritableNativeMap();
1007
+ params.putString("messageId", messageId);
1008
+ params.putMap("message", convertMessageToMap(message));
1009
+ sendEvent("onMediaMessageCancelled", params);
1010
+ }
1011
+ }
1012
+ );
1013
+
1014
+ WritableMap result = convertMessageToMap(message);
1015
+ result.putString("messageId", messageId);
1016
+ promise.resolve(result);
1017
+ } catch (Exception e) {
1018
+ promise.reject("SEND_IMAGE_MESSAGE_ERROR", e.getMessage());
1019
+ }
1020
+ }
1021
+
1022
+ /**
1023
+ * 发送文件消息
1024
+ */
1025
+ @ReactMethod
1026
+ public void sendFileMessage(ReadableMap messageMap, String messageId, Promise promise) {
1027
+ try {
1028
+ Conversation conversation = convertMapToConversation(messageMap);
1029
+ FileMessage fileMessage = new FileMessage();
1030
+
1031
+ ReadableMap contentMap = messageMap.getMap("content");
1032
+ if (contentMap.hasKey("localPath")) {
1033
+ String path = FileUtils.convertContentUriToFile(getReactApplicationContext(), contentMap.getString("localPath"));
1034
+ fileMessage.setLocalPath(path);
1035
+ }
1036
+ if (contentMap.hasKey("url")) {
1037
+ fileMessage.setUrl(contentMap.getString("url"));
1038
+ }
1039
+ if (contentMap.hasKey("name")) {
1040
+ fileMessage.setName(contentMap.getString("name"));
1041
+ }
1042
+ if (contentMap.hasKey("size")) {
1043
+ fileMessage.setSize((long) contentMap.getDouble("size"));
1044
+ }
1045
+ if (contentMap.hasKey("type")) {
1046
+ fileMessage.setType(contentMap.getString("type"));
1047
+ }
1048
+
1049
+ Message message = JIM.getInstance().getMessageManager().sendMediaMessage(
1050
+ fileMessage,
1051
+ conversation,
1052
+ new IMessageManager.ISendMediaMessageCallback() {
1053
+ @Override
1054
+ public void onProgress(int progress, Message message) {
1055
+ WritableMap params = new WritableNativeMap();
1056
+ params.putString("messageId", messageId);
1057
+ params.putInt("progress", progress);
1058
+ params.putMap("message", convertMessageToMap(message));
1059
+ sendEvent("onMediaMessageProgress", params);
1060
+ }
1061
+
1062
+ @Override
1063
+ public void onSuccess(Message message) {
1064
+ WritableMap params = new WritableNativeMap();
1065
+ params.putString("messageId", messageId);
1066
+ params.putMap("message", convertMessageToMap(message));
1067
+ sendEvent("onMediaMessageSent", params);
1068
+ }
1069
+
1070
+ @Override
1071
+ public void onError(Message message, int errorCode) {
1072
+ WritableMap params = new WritableNativeMap();
1073
+ params.putString("messageId", messageId);
1074
+ params.putMap("message", convertMessageToMap(message));
1075
+ params.putInt("errorCode", errorCode);
1076
+ sendEvent("onMediaMessageSentError", params);
1077
+ }
1078
+
1079
+ @Override
1080
+ public void onCancel(Message message) {
1081
+ WritableMap params = new WritableNativeMap();
1082
+ params.putString("messageId", messageId);
1083
+ params.putMap("message", convertMessageToMap(message));
1084
+ sendEvent("onMediaMessageCancelled", params);
1085
+ }
1086
+ }
1087
+ );
1088
+
1089
+ WritableMap result = convertMessageToMap(message);
1090
+ result.putString("messageId", messageId);
1091
+ promise.resolve(result);
1092
+ } catch (Exception e) {
1093
+ promise.reject("SEND_FILE_MESSAGE_ERROR", e.getMessage());
1094
+ }
1095
+ }
1096
+
1097
+ /**
1098
+ * 发送语音消息
1099
+ */
1100
+ @ReactMethod
1101
+ public void sendVoiceMessage(ReadableMap messageMap, Promise promise) {
1102
+ try {
1103
+ Conversation conversation = convertMapToConversation(messageMap);
1104
+ VoiceMessage voiceMessage = new VoiceMessage();
1105
+
1106
+ ReadableMap contentMap = messageMap.getMap("content");
1107
+ if (contentMap.hasKey("localPath")) {
1108
+ String path = FileUtils.convertContentUriToFile(getReactApplicationContext(), contentMap.getString("localPath"));
1109
+ voiceMessage.setLocalPath(path);
1110
+ }
1111
+ if (contentMap.hasKey("url")) {
1112
+ voiceMessage.setUrl(contentMap.getString("url"));
1113
+ }
1114
+ if (contentMap.hasKey("duration")) {
1115
+ voiceMessage.setDuration(contentMap.getInt("duration"));
1116
+ }
1117
+
1118
+ Message message = JIM.getInstance().getMessageManager().sendMediaMessage(
1119
+ voiceMessage,
1120
+ conversation,
1121
+ new IMessageManager.ISendMediaMessageCallback() {
1122
+ @Override
1123
+ public void onProgress(int progress, Message message) {
1124
+ WritableMap params = new WritableNativeMap();
1125
+ params.putInt("progress", progress);
1126
+ params.putMap("message", convertMessageToMap(message));
1127
+ Log.d("JuggleIM", "onMediaMessageProgress: " + progress);
1128
+ sendEvent("onMediaMessageProgress", params);
1129
+ }
1130
+
1131
+ @Override
1132
+ public void onSuccess(Message message) {
1133
+ WritableMap result = convertMessageToMap(message);
1134
+ Log.d("JuggleIM", "onMediaMessageSent");
1135
+ sendEvent("onMediaMessageSent", result);
1136
+ }
1137
+
1138
+ @Override
1139
+ public void onError(Message message, int errorCode) {
1140
+ WritableMap params = new WritableNativeMap();
1141
+ params.putMap("message", convertMessageToMap(message));
1142
+ params.putInt("errorCode", errorCode);
1143
+ sendEvent("onMediaMessageSentError", params);
1144
+ }
1145
+
1146
+ @Override
1147
+ public void onCancel(Message message) {
1148
+ WritableMap result = convertMessageToMap(message);
1149
+ sendEvent("onMediaMessageCancelled", result);
1150
+ }
1151
+ }
1152
+ );
1153
+
1154
+ WritableMap result = convertMessageToMap(message);
1155
+ promise.resolve(result);
1156
+ } catch (Exception e) {
1157
+ promise.reject("SEND_VOICE_MESSAGE_ERROR", e.getMessage());
1158
+ }
1159
+ }
1160
+
1161
+ private Message convertMapToMessage(ReadableMap messageMap) {
1162
+ Message message = new Message();
1163
+ Conversation conversation = convertMapToConversation(messageMap);
1164
+ message.setConversation(conversation);
1165
+ if (messageMap.hasKey("messageId")) {
1166
+ message.setMessageId(messageMap.getString("messageId"));
1167
+ }
1168
+
1169
+ if (messageMap.hasKey("clientMsgNo")) {
1170
+ message.setClientMsgNo((long) messageMap.getDouble("clientMsgNo"));
1171
+ }
1172
+
1173
+ if (messageMap.hasKey("timestamp")) {
1174
+ message.setTimestamp((long) messageMap.getDouble("timestamp"));
1175
+ }
1176
+
1177
+ if (messageMap.hasKey("senderUserId")) {
1178
+ message.setSenderUserId(messageMap.getString("senderUserId"));
1179
+ }
1180
+ // 设置消息内容
1181
+ if (messageMap.hasKey("content")) {
1182
+ ReadableMap contentMap = messageMap.getMap("content");
1183
+ MessageContent content = convertMapToMessageContent(contentMap);
1184
+ message.setContent(content);
1185
+ }
1186
+
1187
+ // 设置消息方向
1188
+ if (messageMap.hasKey("direction")) {
1189
+ Message.MessageDirection direction = Message.MessageDirection.setValue(messageMap.getInt("direction"));
1190
+ message.setDirection(direction);
1191
+ }
1192
+
1193
+ // 设置消息状态
1194
+ if (messageMap.hasKey("state")) {
1195
+ Message.MessageState state = Message.MessageState.setValue(messageMap.getInt("state"));
1196
+ message.setState(state);
1197
+ }
1198
+
1199
+ // 设置是否已读
1200
+ if (messageMap.hasKey("hasRead")) {
1201
+ message.setHasRead(messageMap.getBoolean("hasRead"));
1202
+ }
1203
+
1204
+ // 设置本地属性
1205
+ if (messageMap.hasKey("localAttribute")) {
1206
+ message.setLocalAttribute(messageMap.getString("localAttribute"));
1207
+ }
1208
+
1209
+ // 设置是否删除
1210
+ if (messageMap.hasKey("isDelete")) {
1211
+ message.setDelete(messageMap.getBoolean("isDelete"));
1212
+ }
1213
+
1214
+ // 设置是否编辑
1215
+ if (messageMap.hasKey("isEdit")) {
1216
+ message.setEdit(messageMap.getBoolean("isEdit"));
1217
+ }
1218
+ return message;
1219
+ }
1220
+ }