juggleim-rnsdk 0.0.23 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -17
- package/android/build/.transforms/42b8ab7e96b9440b0e91d2ecba5f579c/results.bin +1 -0
- package/android/build/.transforms/42b8ab7e96b9440b0e91d2ecba5f579c/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/results.bin +1 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/BuildConfig.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/FileUtils.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/GenericCustomMessage.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$1.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$10.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$11.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$12.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$13.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$14.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$15.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$16.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$17.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$18.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$19.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$2.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$20.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$21.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$22.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$3.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$4.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$5.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$6.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$7.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$8.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$9.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMPackage.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/RNTypeConverter$1.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/RNTypeConverter.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
- package/android/build/.transforms/b0801d69fde866e333b2668f7818fd8c/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/GenericCustomMessage.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$1.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$10.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$11.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$12.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$13.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$14.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$15.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$16.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$17.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$18.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$19.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$2.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$20.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$21.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$22.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$3.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$4.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$5.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$6.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$7.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$8.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$9.dex +0 -0
- package/android/build/.transforms/b4ca33bd6785fb4810b9572ca7ad5980/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager.dex +0 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -1
- package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +1 -1
- package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +1 -1
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +1 -1
- package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +1 -1
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/GenericCustomMessage.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$1.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$10.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$11.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$12.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$13.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$14.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$15.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$16.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$17.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$18.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$19.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$2.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$20.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$21.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$22.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$3.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$4.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$5.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$6.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$7.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$8.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$9.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/GenericCustomMessage.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$10.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$11.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$12.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$13.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$14.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$15.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$16.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$17.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$18.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$19.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$20.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$21.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$22.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$3.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$4.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$5.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$6.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$7.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$8.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$9.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager.class +0 -0
- package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +10 -10
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$1.class.uniqueId17 → JuggleIMManager$1.class.uniqueId23} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$10.class.uniqueId10 → JuggleIMManager$10.class.uniqueId0} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$11.class.uniqueId6 → JuggleIMManager$11.class.uniqueId4} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$12.class.uniqueId1 → JuggleIMManager$12.class.uniqueId20} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$13.class.uniqueId21 → JuggleIMManager$13.class.uniqueId16} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$14.class.uniqueId14 → JuggleIMManager$14.class.uniqueId7} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$15.class.uniqueId15 → JuggleIMManager$15.class.uniqueId13} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$16.class.uniqueId19 → JuggleIMManager$16.class.uniqueId1} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$17.class.uniqueId23 → JuggleIMManager$17.class.uniqueId22} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$18.class.uniqueId0 → JuggleIMManager$18.class.uniqueId19} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$19.class.uniqueId11 → JuggleIMManager$19.class.uniqueId17} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$2.class.uniqueId13 → JuggleIMManager$2.class.uniqueId8} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$20.class.uniqueId9 → JuggleIMManager$20.class.uniqueId12} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$21.class.uniqueId4 → JuggleIMManager$21.class.uniqueId3} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$22.class.uniqueId14 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$3.class.uniqueId3 → JuggleIMManager$3.class.uniqueId10} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$4.class.uniqueId20 → JuggleIMManager$4.class.uniqueId18} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$5.class.uniqueId18 → JuggleIMManager$5.class.uniqueId21} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$6.class.uniqueId16 → JuggleIMManager$6.class.uniqueId2} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$7.class.uniqueId12 → JuggleIMManager$7.class.uniqueId11} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$8.class.uniqueId5 → JuggleIMManager$8.class.uniqueId9} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMManager$9.class.uniqueId2 → JuggleIMManager$9.class.uniqueId15} +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager.class.uniqueId5 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/src/main/java/com/juggleim/GenericCustomMessage.java +45 -0
- package/android/src/main/java/com/juggleim/JuggleIMManager.java +241 -9
- package/ios/GenericCustomMessage.h +24 -0
- package/ios/GenericCustomMessage.m +29 -0
- package/ios/JuggleIMManager.m +102 -1
- package/package.json +1 -1
- package/src/index.d.ts +79 -7
- package/src/index.js +52 -37
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$22.class.uniqueId22 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager.class.uniqueId7 +0 -0
- /package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{JuggleIMPackage.class.uniqueId8 → JuggleIMPackage.class.uniqueId6} +0 -0
|
@@ -36,8 +36,14 @@ import com.juggle.im.internal.logger.JLogLevel;
|
|
|
36
36
|
|
|
37
37
|
import java.util.ArrayList;
|
|
38
38
|
import java.util.HashMap;
|
|
39
|
+
import java.util.Iterator;
|
|
39
40
|
import java.util.List;
|
|
40
41
|
import java.util.Map;
|
|
42
|
+
import java.nio.charset.StandardCharsets;
|
|
43
|
+
|
|
44
|
+
import org.json.JSONObject;
|
|
45
|
+
import org.json.JSONArray;
|
|
46
|
+
import org.json.JSONException;
|
|
41
47
|
|
|
42
48
|
import javax.annotation.Nonnull;
|
|
43
49
|
|
|
@@ -50,6 +56,9 @@ public class JuggleIMManager extends ReactContextBaseJavaModule {
|
|
|
50
56
|
private Map<String, IMessageManager.IMessageListener> messageListeners = new HashMap<>();
|
|
51
57
|
private Map<String, IMessageManager.IMessageReadReceiptListener> readReceiptListeners = new HashMap<>();
|
|
52
58
|
private Map<String, IConversationManager.IConversationListener> conversationListeners = new HashMap<>();
|
|
59
|
+
|
|
60
|
+
// 自定义消息类型注册表
|
|
61
|
+
private Map<String, String> customMessageTypes = new HashMap<>();
|
|
53
62
|
|
|
54
63
|
public JuggleIMManager(@Nonnull ReactApplicationContext reactContext) {
|
|
55
64
|
super(reactContext);
|
|
@@ -98,6 +107,22 @@ public class JuggleIMManager extends ReactContextBaseJavaModule {
|
|
|
98
107
|
logBuilder.setLogConsoleLevel(JLogLevel.JLogLevelVerbose);
|
|
99
108
|
builder.setJLogConfig(new JLogConfig(logBuilder));
|
|
100
109
|
JIM.getInstance().init(getCurrentActivity(), appKey, builder.build());
|
|
110
|
+
JIM.getInstance().getMessageManager().registerContentType(GenericCustomMessage.class);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* 注册自定义消息类型
|
|
115
|
+
*
|
|
116
|
+
* @param contentType 消息类型标识符
|
|
117
|
+
*/
|
|
118
|
+
@ReactMethod
|
|
119
|
+
public void registerCustomMessageType(String contentType) {
|
|
120
|
+
if (contentType == null || contentType.isEmpty() || contentType.startsWith("jg:")) {
|
|
121
|
+
Log.e("JuggleIM", "contentType 不能以 'jg:' 开头");
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
customMessageTypes.put(contentType, contentType);
|
|
125
|
+
Log.d("JuggleIM", "注册自定义消息类型: " + contentType);
|
|
101
126
|
}
|
|
102
127
|
|
|
103
128
|
/**
|
|
@@ -416,6 +441,8 @@ public class JuggleIMManager extends ReactContextBaseJavaModule {
|
|
|
416
441
|
|
|
417
442
|
// 添加是否已读
|
|
418
443
|
map.putBoolean("hasRead", message.isHasRead());
|
|
444
|
+
map.putBoolean("isEdit", message.isEdit());
|
|
445
|
+
map.putBoolean("isDeleted", message.isDeleted());
|
|
419
446
|
|
|
420
447
|
// 添加群消息阅读信息
|
|
421
448
|
if (message.getGroupMessageReadInfo() != null) {
|
|
@@ -459,10 +486,13 @@ public class JuggleIMManager extends ReactContextBaseJavaModule {
|
|
|
459
486
|
*/
|
|
460
487
|
private WritableMap convertMessageContentToMap(MessageContent content) {
|
|
461
488
|
WritableMap map = new WritableNativeMap();
|
|
462
|
-
|
|
463
|
-
|
|
489
|
+
String contentType = content.getContentType();
|
|
490
|
+
Log.d("JuggleIM", "contentType: " + contentType);
|
|
491
|
+
map.putString("contentType", contentType);
|
|
492
|
+
|
|
493
|
+
if (contentType.equals("jg:text")) {
|
|
464
494
|
map.putString("content", ((TextMessage) content).getContent());
|
|
465
|
-
} else if (
|
|
495
|
+
} else if (contentType.equals("jg:img")) {
|
|
466
496
|
ImageMessage img = (ImageMessage) content;
|
|
467
497
|
map.putString("url", img.getUrl());
|
|
468
498
|
map.putString("localPath", img.getLocalPath());
|
|
@@ -470,21 +500,36 @@ public class JuggleIMManager extends ReactContextBaseJavaModule {
|
|
|
470
500
|
map.putString("thumbnailUrl", img.getThumbnailUrl());
|
|
471
501
|
map.putInt("width", img.getWidth());
|
|
472
502
|
map.putInt("height", img.getHeight());
|
|
473
|
-
} else if (
|
|
503
|
+
} else if (contentType.equals("jg:file")) {
|
|
474
504
|
FileMessage file = (FileMessage) content;
|
|
475
505
|
map.putString("url", file.getUrl());
|
|
476
506
|
map.putString("type", file.getType());
|
|
477
507
|
map.putString("name", file.getName());
|
|
478
508
|
map.putDouble("size", file.getSize());
|
|
479
|
-
} else if (
|
|
509
|
+
} else if (contentType.equals("jg:voice")) {
|
|
480
510
|
VoiceMessage voice = (VoiceMessage) content;
|
|
481
511
|
map.putString("url", voice.getUrl());
|
|
482
512
|
map.putString("localPath", voice.getLocalPath());
|
|
483
513
|
map.putInt("duration", voice.getDuration());
|
|
514
|
+
} else if (contentType.equals("jgrn:custom")) {
|
|
515
|
+
GenericCustomMessage genericCustomMessage = (GenericCustomMessage) content;
|
|
516
|
+
byte[] data = genericCustomMessage.encode();
|
|
517
|
+
if (data != null) {
|
|
518
|
+
try {
|
|
519
|
+
String jsonStr = new String(data, StandardCharsets.UTF_8);
|
|
520
|
+
JSONObject jsonObject = new JSONObject(jsonStr);
|
|
521
|
+
map = convertJSONToWritableMap(jsonObject);
|
|
522
|
+
} catch (JSONException e) {
|
|
523
|
+
Log.e("JuggleIM", "解析自定义消息失败: " + e.getMessage());
|
|
524
|
+
}
|
|
525
|
+
} else {
|
|
526
|
+
Log.e("JuggleIM", "No data for contentType: " + contentType);
|
|
527
|
+
}
|
|
484
528
|
} else {
|
|
485
|
-
Log.e("JuggleIM", "Unknown contentType: " +
|
|
529
|
+
Log.e("JuggleIM", "Unknown contentType: " + contentType);
|
|
486
530
|
return RNTypeConverter.toWritableMap(content);
|
|
487
531
|
}
|
|
532
|
+
Log.d("JuggleIM", "convertMessageContentToMap: " + map.getString("contentType"));
|
|
488
533
|
|
|
489
534
|
return map;
|
|
490
535
|
}
|
|
@@ -518,11 +563,160 @@ public class JuggleIMManager extends ReactContextBaseJavaModule {
|
|
|
518
563
|
voice.setDuration(map.getInt("duration"));
|
|
519
564
|
return voice;
|
|
520
565
|
default:
|
|
566
|
+
// 检查是否是自定义消息
|
|
567
|
+
if (customMessageTypes.containsKey(contentType)) {
|
|
568
|
+
return createCustomMessage(map);
|
|
569
|
+
}
|
|
521
570
|
Log.e("JuggleIM", "contentType: " + contentType);
|
|
522
571
|
return RNTypeConverter.fromReadableMap(map, MessageContent.class);
|
|
523
572
|
}
|
|
524
573
|
}
|
|
525
574
|
|
|
575
|
+
/**
|
|
576
|
+
* 创建自定义消息对象
|
|
577
|
+
*/
|
|
578
|
+
private MessageContent createCustomMessage(ReadableMap map) {
|
|
579
|
+
try {
|
|
580
|
+
// 将 ReadableMap 转换为 JSON
|
|
581
|
+
JSONObject jsonObject = convertReadableMapToJSON(map);
|
|
582
|
+
String jsonStr = jsonObject.toString();
|
|
583
|
+
|
|
584
|
+
// 创建通用自定义消息对象
|
|
585
|
+
GenericCustomMessage customMsg = new GenericCustomMessage();
|
|
586
|
+
customMsg.setData(jsonStr.getBytes(StandardCharsets.UTF_8));
|
|
587
|
+
|
|
588
|
+
return customMsg;
|
|
589
|
+
} catch (JSONException e) {
|
|
590
|
+
Log.e("JuggleIM", "创建自定义消息失败: " + e.getMessage());
|
|
591
|
+
return null;
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
/**
|
|
596
|
+
* 将 ReadableMap 转换为 JSONObject
|
|
597
|
+
*/
|
|
598
|
+
private JSONObject convertReadableMapToJSON(ReadableMap map) throws JSONException {
|
|
599
|
+
JSONObject jsonObject = new JSONObject();
|
|
600
|
+
ReadableMapKeySetIterator iterator = map.keySetIterator();
|
|
601
|
+
|
|
602
|
+
while (iterator.hasNextKey()) {
|
|
603
|
+
String key = iterator.nextKey();
|
|
604
|
+
switch (map.getType(key)) {
|
|
605
|
+
case Null:
|
|
606
|
+
jsonObject.put(key, JSONObject.NULL);
|
|
607
|
+
break;
|
|
608
|
+
case Boolean:
|
|
609
|
+
jsonObject.put(key, map.getBoolean(key));
|
|
610
|
+
break;
|
|
611
|
+
case Number:
|
|
612
|
+
jsonObject.put(key, map.getDouble(key));
|
|
613
|
+
break;
|
|
614
|
+
case String:
|
|
615
|
+
jsonObject.put(key, map.getString(key));
|
|
616
|
+
break;
|
|
617
|
+
case Map:
|
|
618
|
+
jsonObject.put(key, convertReadableMapToJSON(map.getMap(key)));
|
|
619
|
+
break;
|
|
620
|
+
case Array:
|
|
621
|
+
jsonObject.put(key, convertReadableArrayToJSONArray(map.getArray(key)));
|
|
622
|
+
break;
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
return jsonObject;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
/**
|
|
630
|
+
* 将 ReadableArray 转换为 JSONArray
|
|
631
|
+
*/
|
|
632
|
+
private JSONArray convertReadableArrayToJSONArray(ReadableArray array) throws JSONException {
|
|
633
|
+
JSONArray jsonArray = new JSONArray();
|
|
634
|
+
|
|
635
|
+
for (int i = 0; i < array.size(); i++) {
|
|
636
|
+
switch (array.getType(i)) {
|
|
637
|
+
case Null:
|
|
638
|
+
jsonArray.put(JSONObject.NULL);
|
|
639
|
+
break;
|
|
640
|
+
case Boolean:
|
|
641
|
+
jsonArray.put(array.getBoolean(i));
|
|
642
|
+
break;
|
|
643
|
+
case Number:
|
|
644
|
+
jsonArray.put(array.getDouble(i));
|
|
645
|
+
break;
|
|
646
|
+
case String:
|
|
647
|
+
jsonArray.put(array.getString(i));
|
|
648
|
+
break;
|
|
649
|
+
case Map:
|
|
650
|
+
jsonArray.put(convertReadableMapToJSON(array.getMap(i)));
|
|
651
|
+
break;
|
|
652
|
+
case Array:
|
|
653
|
+
jsonArray.put(convertReadableArrayToJSONArray(array.getArray(i)));
|
|
654
|
+
break;
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
return jsonArray;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* 将 JSONObject 转换为 WritableMap
|
|
663
|
+
*/
|
|
664
|
+
private WritableMap convertJSONToWritableMap(JSONObject jsonObject) throws JSONException {
|
|
665
|
+
WritableMap map = new WritableNativeMap();
|
|
666
|
+
|
|
667
|
+
Iterator<String> iterator = jsonObject.keys();
|
|
668
|
+
while (iterator.hasNext()) {
|
|
669
|
+
String key = iterator.next();
|
|
670
|
+
Object value = jsonObject.get(key);
|
|
671
|
+
if (value instanceof JSONObject) {
|
|
672
|
+
map.putMap(key, convertJSONToWritableMap((JSONObject) value));
|
|
673
|
+
} else if (value instanceof JSONArray) {
|
|
674
|
+
map.putArray(key, convertJSONArrayToWritableArray((JSONArray) value));
|
|
675
|
+
} else if (value instanceof Boolean) {
|
|
676
|
+
map.putBoolean(key, (Boolean) value);
|
|
677
|
+
} else if (value instanceof Integer) {
|
|
678
|
+
map.putInt(key, (Integer) value);
|
|
679
|
+
} else if (value instanceof Double) {
|
|
680
|
+
map.putDouble(key, (Double) value);
|
|
681
|
+
} else if (value instanceof String) {
|
|
682
|
+
map.putString(key, (String) value);
|
|
683
|
+
} else if (value == JSONObject.NULL) {
|
|
684
|
+
map.putNull(key);
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
return map;
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
/**
|
|
692
|
+
* 将 JSONArray 转换为 WritableArray
|
|
693
|
+
*/
|
|
694
|
+
private WritableArray convertJSONArrayToWritableArray(JSONArray jsonArray) throws JSONException {
|
|
695
|
+
WritableArray array = new WritableNativeArray();
|
|
696
|
+
|
|
697
|
+
for (int i = 0; i < jsonArray.length(); i++) {
|
|
698
|
+
Object value = jsonArray.get(i);
|
|
699
|
+
|
|
700
|
+
if (value instanceof JSONObject) {
|
|
701
|
+
array.pushMap(convertJSONToWritableMap((JSONObject) value));
|
|
702
|
+
} else if (value instanceof JSONArray) {
|
|
703
|
+
array.pushArray(convertJSONArrayToWritableArray((JSONArray) value));
|
|
704
|
+
} else if (value instanceof Boolean) {
|
|
705
|
+
array.pushBoolean((Boolean) value);
|
|
706
|
+
} else if (value instanceof Integer) {
|
|
707
|
+
array.pushInt((Integer) value);
|
|
708
|
+
} else if (value instanceof Double) {
|
|
709
|
+
array.pushDouble((Double) value);
|
|
710
|
+
} else if (value instanceof String) {
|
|
711
|
+
array.pushString((String) value);
|
|
712
|
+
} else if (value == JSONObject.NULL) {
|
|
713
|
+
array.pushNull();
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
return array;
|
|
718
|
+
}
|
|
719
|
+
|
|
526
720
|
/**
|
|
527
721
|
* 将消息回应转换为Map
|
|
528
722
|
*/
|
|
@@ -768,6 +962,9 @@ public class JuggleIMManager extends ReactContextBaseJavaModule {
|
|
|
768
962
|
* 将 ConversationInfo 转换为 WritableMap
|
|
769
963
|
*/
|
|
770
964
|
private WritableMap convertConversationInfoToMap(ConversationInfo info) {
|
|
965
|
+
if (info == null) {
|
|
966
|
+
return null;
|
|
967
|
+
}
|
|
771
968
|
WritableMap map = new WritableNativeMap();
|
|
772
969
|
map.putMap("conversation", convertConversationToMap(info.getConversation()));
|
|
773
970
|
map.putInt("unreadCount", info.getUnreadCount());
|
|
@@ -793,13 +990,18 @@ public class JuggleIMManager extends ReactContextBaseJavaModule {
|
|
|
793
990
|
* 将 MentionInfo 转换为 WritableMap
|
|
794
991
|
*/
|
|
795
992
|
private WritableMap convertMentionInfoToMap(MessageMentionInfo mentionInfo) {
|
|
993
|
+
if (mentionInfo == null) {
|
|
994
|
+
return null;
|
|
995
|
+
}
|
|
796
996
|
WritableMap map = new WritableNativeMap();
|
|
797
997
|
WritableArray userMap = new WritableNativeArray();
|
|
798
998
|
map.putInt("type", mentionInfo.getType().getValue());
|
|
799
|
-
|
|
800
|
-
|
|
999
|
+
if (mentionInfo.getTargetUsers() != null) {
|
|
1000
|
+
for (UserInfo userInfo : mentionInfo.getTargetUsers()) {
|
|
1001
|
+
userMap.pushMap(convertUserInfoToMap(userInfo));
|
|
1002
|
+
}
|
|
1003
|
+
map.putArray("targetUsers", userMap);
|
|
801
1004
|
}
|
|
802
|
-
map.putArray("targetUsers", userMap);
|
|
803
1005
|
return map;
|
|
804
1006
|
}
|
|
805
1007
|
|
|
@@ -1352,6 +1554,36 @@ public class JuggleIMManager extends ReactContextBaseJavaModule {
|
|
|
1352
1554
|
}
|
|
1353
1555
|
}
|
|
1354
1556
|
|
|
1557
|
+
/**
|
|
1558
|
+
* 更新消息
|
|
1559
|
+
* @param messageId 消息ID
|
|
1560
|
+
* @param contentMap 新的消息内容
|
|
1561
|
+
* @param conversationMap 会话对象
|
|
1562
|
+
* @param promise Promise对象
|
|
1563
|
+
*/
|
|
1564
|
+
@ReactMethod
|
|
1565
|
+
public void updateMessage(String messageId, ReadableMap contentMap, ReadableMap conversationMap, Promise promise) {
|
|
1566
|
+
try {
|
|
1567
|
+
MessageContent content = convertMapToMessageContent(contentMap);
|
|
1568
|
+
Conversation conversation = convertMapToConversation(conversationMap);
|
|
1569
|
+
|
|
1570
|
+
JIM.getInstance().getMessageManager().updateMessage(messageId, content, conversation, new IMessageManager.IMessageCallback() {
|
|
1571
|
+
@Override
|
|
1572
|
+
public void onSuccess(Message message) {
|
|
1573
|
+
promise.resolve(convertMessageToMap(message));
|
|
1574
|
+
}
|
|
1575
|
+
|
|
1576
|
+
@Override
|
|
1577
|
+
public void onError(int errorCode) {
|
|
1578
|
+
promise.reject("error", "Error code: " + errorCode);
|
|
1579
|
+
}
|
|
1580
|
+
});
|
|
1581
|
+
} catch (Exception e) {
|
|
1582
|
+
e.printStackTrace();
|
|
1583
|
+
promise.reject(e);
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1355
1587
|
/**
|
|
1356
1588
|
* 设置消息置顶
|
|
1357
1589
|
* @param messageId 消息ID
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#import <JuggleIM/JuggleIM.h>
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 通用自定义消息类
|
|
5
|
+
* 用于承载 RN 层自定义消息的 JSON 数据
|
|
6
|
+
*/
|
|
7
|
+
@interface GenericCustomMessage : JMessageContent
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* 消息数据
|
|
11
|
+
*/
|
|
12
|
+
@property(nonatomic, strong) NSData *data;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* 设置消息数据
|
|
16
|
+
*/
|
|
17
|
+
- (void)setData:(NSData *)data;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 获取消息数据
|
|
21
|
+
*/
|
|
22
|
+
- (NSData *)getData;
|
|
23
|
+
|
|
24
|
+
@end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#import "GenericCustomMessage.h"
|
|
2
|
+
|
|
3
|
+
@implementation GenericCustomMessage
|
|
4
|
+
|
|
5
|
+
+ (NSString *)contentType {
|
|
6
|
+
return @"jgrn:custom";
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
- (NSData *)encode {
|
|
10
|
+
return self.data;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
- (void)decode:(NSData *)data {
|
|
14
|
+
self.data = data;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
- (void)setData:(NSData *)data {
|
|
18
|
+
_data = data;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
- (NSData *)getData {
|
|
22
|
+
return _data;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
- (NSString *)conversationDigest {
|
|
26
|
+
return @"[自定义消息]";
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@end
|
package/ios/JuggleIMManager.m
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#import "JuggleIMManager.h"
|
|
2
|
+
#import "GenericCustomMessage.h"
|
|
2
3
|
#import <JuggleIM/JuggleIM.h>
|
|
3
4
|
#import <React/RCTEventEmitter.h>
|
|
4
5
|
|
|
@@ -9,10 +10,20 @@
|
|
|
9
10
|
JMessageReadReceiptDelegate,
|
|
10
11
|
JMessageDestroyDelegate, JConversationDelegate>
|
|
11
12
|
|
|
13
|
+
// 自定义消息类型注册表
|
|
14
|
+
@property(nonatomic, strong) NSMutableDictionary *customMessageTypes;
|
|
15
|
+
|
|
12
16
|
@end
|
|
13
17
|
|
|
14
18
|
@implementation JuggleIMManager
|
|
15
19
|
|
|
20
|
+
- (instancetype)init {
|
|
21
|
+
if (self = [super init]) {
|
|
22
|
+
_customMessageTypes = [NSMutableDictionary dictionary];
|
|
23
|
+
}
|
|
24
|
+
return self;
|
|
25
|
+
}
|
|
26
|
+
|
|
16
27
|
RCT_EXPORT_MODULE(JuggleIM);
|
|
17
28
|
|
|
18
29
|
RCT_EXPORT_METHOD(setServerUrls : (NSArray *)urls) {
|
|
@@ -22,6 +33,19 @@ RCT_EXPORT_METHOD(setServerUrls : (NSArray *)urls) {
|
|
|
22
33
|
RCT_EXPORT_METHOD(initWithAppKey : (NSString *)appKey) {
|
|
23
34
|
[[JIM shared] initWithAppKey:appKey];
|
|
24
35
|
[JIM.shared setConsoleLogLevel:JLogLevelVerbose];
|
|
36
|
+
[JIM.shared.messageManager registerContentType:[GenericCustomMessage class]];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 注册自定义消息类型
|
|
41
|
+
*/
|
|
42
|
+
RCT_EXPORT_METHOD(registerCustomMessageType : (NSString *)contentType) {
|
|
43
|
+
if ([contentType hasPrefix:@"jg:"]) {
|
|
44
|
+
NSLog(@"contentType 不能以 'jg:' 开头");
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
self.customMessageTypes[contentType] = contentType;
|
|
48
|
+
NSLog(@"注册自定义消息类型: %@", contentType);
|
|
25
49
|
}
|
|
26
50
|
|
|
27
51
|
RCT_EXPORT_METHOD(connectWithToken : (NSString *)token) {
|
|
@@ -372,6 +396,8 @@ RCT_EXPORT_METHOD(addConversationDelegate) {
|
|
|
372
396
|
|
|
373
397
|
// 添加是否已读
|
|
374
398
|
dict[@"hasRead"] = @(message.hasRead);
|
|
399
|
+
dict[@"isEdit"] = @(message.isEdit);
|
|
400
|
+
dict[@"isDeleted"] = @(message.isDeleted);
|
|
375
401
|
|
|
376
402
|
// 添加群消息阅读信息
|
|
377
403
|
if (message.groupReadInfo) {
|
|
@@ -419,7 +445,8 @@ RCT_EXPORT_METHOD(addConversationDelegate) {
|
|
|
419
445
|
*/
|
|
420
446
|
- (NSDictionary *)convertMessageContentToDictionary:(JMessageContent *)content {
|
|
421
447
|
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
|
|
422
|
-
|
|
448
|
+
NSString *contentType = [[content class] contentType];
|
|
449
|
+
dict[@"contentType"] = contentType ?: @"";
|
|
423
450
|
|
|
424
451
|
if ([content isKindOfClass:[JTextMessage class]]) {
|
|
425
452
|
JTextMessage *textMsg = (JTextMessage *)content;
|
|
@@ -447,6 +474,23 @@ RCT_EXPORT_METHOD(addConversationDelegate) {
|
|
|
447
474
|
dict[@"localPath"] = voiceMsg.localPath ?: @"";
|
|
448
475
|
dict[@"duration"] = @(voiceMsg.duration);
|
|
449
476
|
dict[@"extra"] = voiceMsg.extra ?: @"";
|
|
477
|
+
} else if ([contentType isEqualToString:@"jgrn:custom"]) {
|
|
478
|
+
// 处理自定义消息:解析 JSON 数据
|
|
479
|
+
GenericCustomMessage *customMsg = (GenericCustomMessage *)content;
|
|
480
|
+
NSData *data = [customMsg encode];
|
|
481
|
+
if (data) {
|
|
482
|
+
NSError *error = nil;
|
|
483
|
+
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data
|
|
484
|
+
options:0
|
|
485
|
+
error:&error];
|
|
486
|
+
if (!error && jsonDict) {
|
|
487
|
+
dict = [jsonDict mutableCopy];
|
|
488
|
+
} else {
|
|
489
|
+
NSLog(@"解析自定义消息失败: %@", error.localizedDescription);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
} else {
|
|
493
|
+
NSLog(@"Unknown contentType: %@", contentType);
|
|
450
494
|
}
|
|
451
495
|
|
|
452
496
|
return dict;
|
|
@@ -1291,6 +1335,9 @@ RCT_EXPORT_METHOD(removeMessageReaction : (
|
|
|
1291
1335
|
voice.localPath = messageDict[@"localPath"];
|
|
1292
1336
|
voice.duration = [messageDict[@"duration"] integerValue];
|
|
1293
1337
|
return voice;
|
|
1338
|
+
} else if (self.customMessageTypes[contentType]) {
|
|
1339
|
+
// 处理自定义消息:将字典转换为 JSON 数据
|
|
1340
|
+
return [self createCustomMessageFromDict:messageDict];
|
|
1294
1341
|
}
|
|
1295
1342
|
|
|
1296
1343
|
return nil;
|
|
@@ -1406,6 +1453,32 @@ RCT_EXPORT_METHOD(removeMessageReaction : (
|
|
|
1406
1453
|
return userInfo;
|
|
1407
1454
|
}
|
|
1408
1455
|
|
|
1456
|
+
/**
|
|
1457
|
+
* 创建自定义消息对象
|
|
1458
|
+
*/
|
|
1459
|
+
- (JMessageContent *)createCustomMessageFromDict:(NSDictionary *)dict {
|
|
1460
|
+
@try {
|
|
1461
|
+
// 将字典转换为 JSON 数据
|
|
1462
|
+
NSError *error = nil;
|
|
1463
|
+
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict
|
|
1464
|
+
options:0
|
|
1465
|
+
error:&error];
|
|
1466
|
+
if (error || !jsonData) {
|
|
1467
|
+
NSLog(@"创建自定义消息失败: %@", error.localizedDescription);
|
|
1468
|
+
return nil;
|
|
1469
|
+
}
|
|
1470
|
+
|
|
1471
|
+
// 创建通用自定义消息对象
|
|
1472
|
+
GenericCustomMessage *customMsg = [[GenericCustomMessage alloc] init];
|
|
1473
|
+
[customMsg setData:jsonData];
|
|
1474
|
+
|
|
1475
|
+
return customMsg;
|
|
1476
|
+
} @catch (NSException *exception) {
|
|
1477
|
+
NSLog(@"创建自定义消息异常: %@", exception.reason);
|
|
1478
|
+
return nil;
|
|
1479
|
+
}
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1409
1482
|
/**
|
|
1410
1483
|
* 发送消息已读回执
|
|
1411
1484
|
*/
|
|
@@ -1427,6 +1500,34 @@ RCT_EXPORT_METHOD(
|
|
|
1427
1500
|
}];
|
|
1428
1501
|
}
|
|
1429
1502
|
|
|
1503
|
+
/**
|
|
1504
|
+
* 更新消息
|
|
1505
|
+
*/
|
|
1506
|
+
RCT_EXPORT_METHOD(updateMessage : (NSString *)messageId content : (
|
|
1507
|
+
NSDictionary *)contentMap conversation : (NSDictionary *)
|
|
1508
|
+
conversationMap resolver : (RCTPromiseResolveBlock)
|
|
1509
|
+
resolve rejecter : (RCTPromiseRejectBlock)reject) {
|
|
1510
|
+
@try {
|
|
1511
|
+
JMessageContent *content = [self convertDictToMessageContent:contentMap];
|
|
1512
|
+
JConversation *conversation =
|
|
1513
|
+
[self convertDictionaryToConversation:conversationMap];
|
|
1514
|
+
|
|
1515
|
+
[JIM.shared.messageManager updateMessage:content
|
|
1516
|
+
messageId:messageId
|
|
1517
|
+
inConversation:conversation
|
|
1518
|
+
success:^(JMessage *message) {
|
|
1519
|
+
resolve([self convertMessageToDictionary:message]);
|
|
1520
|
+
}
|
|
1521
|
+
error:^(JErrorCode code) {
|
|
1522
|
+
reject(@"error",
|
|
1523
|
+
[NSString stringWithFormat:@"Error code: %ld", (long)code],
|
|
1524
|
+
nil);
|
|
1525
|
+
}];
|
|
1526
|
+
} @catch (NSException *exception) {
|
|
1527
|
+
reject(@"UPDATE_MESSAGE_ERROR", exception.reason, nil);
|
|
1528
|
+
}
|
|
1529
|
+
}
|
|
1530
|
+
|
|
1430
1531
|
/**
|
|
1431
1532
|
* 设置消息置顶
|
|
1432
1533
|
*/
|