juggleim-rnsdk 0.1.6 → 0.1.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.
- package/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.settings/org.eclipse.buildship.core.prefs +12 -1
- package/android/build/.transforms/42b8ab7e96b9440b0e91d2ecba5f579c/transformed/classes/classes_dex/classes.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$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$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/call/JuggleIMCallModule$1.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/call/JuggleIMCallModule$2.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/call/JuggleIMCallModule$3.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/call/JuggleIMCallModule.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/call/view/RCTZegoSurfaceViewManager.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/call/view/ZegoSurfaceView.dex +0 -0
- package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +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/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$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$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/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMPackage.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/JuggleIMCallModule$1.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/JuggleIMCallModule$2.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/JuggleIMCallModule$3.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/JuggleIMCallModule.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/view/RCTZegoSurfaceViewManager.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/view/ZegoSurfaceView.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$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$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_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMPackage.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/JuggleIMCallModule$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/JuggleIMCallModule$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/JuggleIMCallModule$3.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/JuggleIMCallModule.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/view/RCTZegoSurfaceViewManager.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/view/ZegoSurfaceView.class +0 -0
- package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$1.class.uniqueId24 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$10.class.uniqueId0 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$11.class.uniqueId14 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$12.class.uniqueId22 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$13.class.uniqueId7 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$14.class.uniqueId15 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$15.class.uniqueId6 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$16.class.uniqueId11 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$17.class.uniqueId23 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$18.class.uniqueId8 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$19.class.uniqueId20 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$2.class.uniqueId3 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$20.class.uniqueId5 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$21.class.uniqueId13 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$22.class.uniqueId18 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$23.class.uniqueId10 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$3.class.uniqueId17 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$4.class.uniqueId21 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$5.class.uniqueId9 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$6.class.uniqueId12 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$7.class.uniqueId4 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$8.class.uniqueId16 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$9.class.uniqueId19 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager.class.uniqueId1 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMPackage.class.uniqueId2 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build.gradle +2 -0
- package/android/src/main/java/com/juggleim/JuggleIMManager.java +24 -3
- package/android/src/main/java/com/juggleim/JuggleIMPackage.java +4 -1
- package/android/src/main/java/com/juggleim/call/JuggleIMCallModule.java +507 -0
- package/android/src/main/java/com/juggleim/call/view/RCTZegoSurfaceViewManager.java +32 -0
- package/android/src/main/java/com/juggleim/call/view/ZegoSurfaceView.java +43 -0
- package/ios/JModelFactory.m +12 -3
- package/ios/JuggleIMManager.m +6 -7
- package/ios/call/JuggleIMCallModule.h +10 -0
- package/ios/call/JuggleIMCallModule.m +520 -0
- package/ios/call/README.md +51 -0
- package/ios/call/view/ZegoSurfaceView.h +7 -0
- package/ios/call/view/ZegoSurfaceView.m +45 -0
- package/ios/call/view/ZegoSurfaceViewManager.h +5 -0
- package/ios/call/view/ZegoSurfaceViewManager.m +12 -0
- package/juggleim-rnsdk.podspec +2 -0
- package/package.json +1 -1
- package/src/call/CallConst.ts +43 -0
- package/src/call/CallInfo.ts +13 -0
- package/src/call/CallMember.ts +12 -0
- package/src/call/CallSession.ts +186 -0
- package/src/call/JuggleIMCall.ts +79 -0
- package/src/call/ZegoSurfaceView.tsx +24 -0
- package/src/call/index.ts +8 -0
- package/src/index.d.ts +422 -864
- package/src/index.js +1 -0
- package/src/types.d.ts +453 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/GenericCustomMessage.class.uniqueId0 +0 -0
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
|
|
2
|
+
package com.juggleim.call;
|
|
3
|
+
|
|
4
|
+
import com.facebook.react.bridge.Arguments;
|
|
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.WritableArray;
|
|
12
|
+
import com.facebook.react.bridge.WritableMap;
|
|
13
|
+
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
14
|
+
import com.juggle.im.JIM;
|
|
15
|
+
import com.juggle.im.call.CallConst;
|
|
16
|
+
import com.juggle.im.call.ICallManager;
|
|
17
|
+
import com.juggle.im.call.ICallSession;
|
|
18
|
+
import com.juggle.im.call.internal.CallManager;
|
|
19
|
+
import com.juggle.im.call.model.CallInfo;
|
|
20
|
+
import com.juggle.im.call.model.CallMember;
|
|
21
|
+
import com.juggle.im.call.model.CallVideoDenoiseParams;
|
|
22
|
+
import com.juggle.im.model.Conversation;
|
|
23
|
+
import com.juggle.im.model.UserInfo;
|
|
24
|
+
import com.juggleim.RNTypeConverter;
|
|
25
|
+
import com.facebook.react.bridge.UIManager;
|
|
26
|
+
import com.facebook.react.uimanager.UIManagerHelper;
|
|
27
|
+
import com.facebook.react.uimanager.common.ViewUtil;
|
|
28
|
+
import java.util.ArrayList;
|
|
29
|
+
import java.util.HashMap;
|
|
30
|
+
import java.util.List;
|
|
31
|
+
import java.util.Map;
|
|
32
|
+
import android.util.Log;
|
|
33
|
+
|
|
34
|
+
public class JuggleIMCallModule extends ReactContextBaseJavaModule {
|
|
35
|
+
private static final String MODULE_NAME = "JuggleIMCallModule";
|
|
36
|
+
private final ReactApplicationContext mReactContext;
|
|
37
|
+
private final Map<String, ICallManager.ICallReceiveListener> mReceiveListeners = new HashMap<>();
|
|
38
|
+
private final Map<String, ICallManager.IConversationCallListener> mConversationCallListeners = new HashMap<>();
|
|
39
|
+
private final Map<String, ICallSession.ICallSessionListener> mSessionListeners = new HashMap<>();
|
|
40
|
+
// Store session listeners by callId + key
|
|
41
|
+
private final Map<String, Map<String, ICallSession.ICallSessionListener>> mCallSessionListeners = new HashMap<>();
|
|
42
|
+
|
|
43
|
+
public JuggleIMCallModule(ReactApplicationContext reactContext) {
|
|
44
|
+
super(reactContext);
|
|
45
|
+
mReactContext = reactContext;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@Override
|
|
49
|
+
public String getName() {
|
|
50
|
+
return MODULE_NAME;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@ReactMethod
|
|
54
|
+
public void addListener(String eventName) {
|
|
55
|
+
// Required for RN built-in Event Emitter Calls.
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@ReactMethod
|
|
59
|
+
public void removeListeners(Integer count) {
|
|
60
|
+
// Required for RN built-in Event Emitter Calls.
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
private ICallManager getCallManager() {
|
|
64
|
+
return JIM.getInstance().getCallManager();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@ReactMethod
|
|
68
|
+
public void initZegoEngine(int appId) {
|
|
69
|
+
getCallManager().initZegoEngine(appId, mReactContext);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@ReactMethod
|
|
73
|
+
public void initLiveKitEngine() {
|
|
74
|
+
getCallManager().initLiveKitEngine(mReactContext);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@ReactMethod
|
|
78
|
+
public void initAgoraEngine(String appId) {
|
|
79
|
+
getCallManager().initAgoraEngine(appId, mReactContext);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@ReactMethod
|
|
83
|
+
public void startSingleCall(String userId, int mediaType, String extra, Promise promise) {
|
|
84
|
+
try {
|
|
85
|
+
ICallSession session = getCallManager().startSingleCall(userId, CallConst.CallMediaType.setValue(mediaType),
|
|
86
|
+
extra, null);
|
|
87
|
+
promise.resolve(convertCallSessionToMap(session));
|
|
88
|
+
} catch (Exception e) {
|
|
89
|
+
promise.reject(e);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@ReactMethod
|
|
94
|
+
public void startMultiCall(ReadableArray userIdList, int mediaType, String extra, ReadableMap conversationMap,
|
|
95
|
+
Promise promise) {
|
|
96
|
+
try {
|
|
97
|
+
List<String> userIds = new ArrayList<>();
|
|
98
|
+
for (int i = 0; i < userIdList.size(); i++) {
|
|
99
|
+
userIds.add(userIdList.getString(i));
|
|
100
|
+
}
|
|
101
|
+
Conversation conversation = null;
|
|
102
|
+
if (conversationMap != null) {
|
|
103
|
+
conversation = RNTypeConverter.fromReadableMap(conversationMap, Conversation.class);
|
|
104
|
+
}
|
|
105
|
+
ICallSession session = getCallManager().startMultiCall(userIds, CallConst.CallMediaType.setValue(mediaType),
|
|
106
|
+
conversation, extra, null);
|
|
107
|
+
promise.resolve(convertCallSessionToMap(session));
|
|
108
|
+
} catch (Exception e) {
|
|
109
|
+
promise.reject(e);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@ReactMethod
|
|
114
|
+
public void joinCall(String callId, Promise promise) {
|
|
115
|
+
try {
|
|
116
|
+
ICallSession session = getCallManager().joinCall(callId, null);
|
|
117
|
+
promise.resolve(convertCallSessionToMap(session));
|
|
118
|
+
} catch (Exception e) {
|
|
119
|
+
promise.reject(e);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@ReactMethod
|
|
124
|
+
public void getCallSession(String callId, Promise promise) {
|
|
125
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
126
|
+
if (session != null) {
|
|
127
|
+
promise.resolve(convertCallSessionToMap(session));
|
|
128
|
+
} else {
|
|
129
|
+
promise.resolve(null);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@ReactMethod
|
|
134
|
+
public void addReceiveListener(String key) {
|
|
135
|
+
ICallManager.ICallReceiveListener listener = new ICallManager.ICallReceiveListener() {
|
|
136
|
+
@Override
|
|
137
|
+
public void onCallReceive(ICallSession callSession) {
|
|
138
|
+
WritableMap params = Arguments.createMap();
|
|
139
|
+
params.putString("key", key);
|
|
140
|
+
params.putMap("callSession", convertCallSessionToMap(callSession));
|
|
141
|
+
sendEvent("CallManager_onCallReceive", params);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
mReceiveListeners.put(key, listener);
|
|
145
|
+
getCallManager().addReceiveListener(key, listener);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
@ReactMethod
|
|
149
|
+
public void removeReceiveListener(String key) {
|
|
150
|
+
ICallManager.ICallReceiveListener listener = mReceiveListeners.remove(key);
|
|
151
|
+
if (listener != null) {
|
|
152
|
+
getCallManager().removeReceiveListener(key);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
@ReactMethod
|
|
157
|
+
public void addConversationCallListener(String key) {
|
|
158
|
+
ICallManager.IConversationCallListener listener = new ICallManager.IConversationCallListener() {
|
|
159
|
+
@Override
|
|
160
|
+
public void onCallInfoUpdate(CallInfo callInfo, Conversation conversation, boolean isFinished) {
|
|
161
|
+
WritableMap params = Arguments.createMap();
|
|
162
|
+
params.putString("key", key);
|
|
163
|
+
params.putMap("callInfo", convertCallInfoToMap(callInfo));
|
|
164
|
+
// params.putMap("conversation", RNTypeConverter.toWritableMap(conversation));
|
|
165
|
+
// // Use RNTypeConverter for Conversation
|
|
166
|
+
// Since I can't access RNTypeConverter.toWritableMap easily if it's protected
|
|
167
|
+
// or I need to handle Enums manually for Conversation if needed.
|
|
168
|
+
// Assuming RNTypeConverter works fine for POJO Conversation.
|
|
169
|
+
// But RNTypeConverter.toWritableMap(obj) is public.
|
|
170
|
+
params.putMap("conversation", RNTypeConverter.toWritableMap(conversation));
|
|
171
|
+
params.putBoolean("isFinished", isFinished);
|
|
172
|
+
sendEvent("CallManager_onCallInfoUpdate", params);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
mConversationCallListeners.put(key, listener);
|
|
176
|
+
getCallManager().addConversationCallListener(key, listener);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
@ReactMethod
|
|
180
|
+
public void removeConversationCallListener(String key) {
|
|
181
|
+
ICallManager.IConversationCallListener listener = mConversationCallListeners.remove(key);
|
|
182
|
+
if (listener != null) {
|
|
183
|
+
getCallManager().removeConversationCallListener(key);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// Session Methods
|
|
188
|
+
|
|
189
|
+
@ReactMethod
|
|
190
|
+
public void accept(String callId) {
|
|
191
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
192
|
+
if (session != null)
|
|
193
|
+
session.accept();
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
@ReactMethod
|
|
197
|
+
public void hangup(String callId) {
|
|
198
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
199
|
+
if (session != null)
|
|
200
|
+
session.hangup();
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
@ReactMethod
|
|
204
|
+
public void enableCamera(String callId, boolean enable) {
|
|
205
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
206
|
+
if (session != null)
|
|
207
|
+
session.enableCamera(enable);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
@ReactMethod
|
|
211
|
+
public void muteMicrophone(String callId, boolean mute) {
|
|
212
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
213
|
+
if (session != null)
|
|
214
|
+
session.muteMicrophone(mute);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
@ReactMethod
|
|
218
|
+
public void muteSpeaker(String callId, boolean mute) {
|
|
219
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
220
|
+
if (session != null)
|
|
221
|
+
session.muteSpeaker(mute);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
@ReactMethod
|
|
225
|
+
public void setSpeakerEnable(String callId, boolean enable) {
|
|
226
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
227
|
+
if (session != null)
|
|
228
|
+
session.setSpeakerEnable(enable);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
@ReactMethod
|
|
232
|
+
public void useFrontCamera(String callId, boolean enable) {
|
|
233
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
234
|
+
if (session != null)
|
|
235
|
+
session.useFrontCamera(enable);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
@ReactMethod
|
|
239
|
+
public void inviteUsers(String callId, ReadableArray userIdList) {
|
|
240
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
241
|
+
if (session != null) {
|
|
242
|
+
List<String> list = new ArrayList<>();
|
|
243
|
+
for (int i = 0; i < userIdList.size(); i++) {
|
|
244
|
+
list.add(userIdList.getString(i));
|
|
245
|
+
}
|
|
246
|
+
session.inviteUsers(list);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
@ReactMethod
|
|
251
|
+
public void enableAEC(String callId, boolean enable) {
|
|
252
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
253
|
+
if (session != null)
|
|
254
|
+
session.enableAEC(enable);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
@ReactMethod
|
|
258
|
+
public void setVideoDenoiseParams(String callId, ReadableMap params) {
|
|
259
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
260
|
+
if (session != null) {
|
|
261
|
+
CallVideoDenoiseParams p = new CallVideoDenoiseParams();
|
|
262
|
+
// TODO: Populate 'p' from 'params'
|
|
263
|
+
session.setVideoDenoiseParams(p);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
@ReactMethod
|
|
268
|
+
public void setVideoView(String callId, String userId, int viewTag, Promise promise) {
|
|
269
|
+
mReactContext.runOnUiQueueThread(() -> {
|
|
270
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
271
|
+
if (session == null)
|
|
272
|
+
return;
|
|
273
|
+
|
|
274
|
+
try {
|
|
275
|
+
int uiManagerType = ViewUtil.getUIManagerType(viewTag);
|
|
276
|
+
UIManager uiManager = UIManagerHelper.getUIManager(mReactContext, uiManagerType);
|
|
277
|
+
android.view.View view = uiManager.resolveView(viewTag);
|
|
278
|
+
session.setVideoView(userId, ((com.juggleim.call.view.ZegoSurfaceView) view).getView());
|
|
279
|
+
} catch (Exception e) {
|
|
280
|
+
e.printStackTrace();
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
promise.resolve(null);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
@ReactMethod
|
|
287
|
+
public void startPreview(String callId, int viewTag, Promise promise) {
|
|
288
|
+
mReactContext.runOnUiQueueThread(() -> {
|
|
289
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
290
|
+
if (session == null)
|
|
291
|
+
return;
|
|
292
|
+
|
|
293
|
+
try {
|
|
294
|
+
int uiManagerType = ViewUtil.getUIManagerType(viewTag);
|
|
295
|
+
UIManager uiManager = UIManagerHelper.getUIManager(mReactContext, uiManagerType);
|
|
296
|
+
android.view.View view = uiManager.resolveView(viewTag);
|
|
297
|
+
Log.d("JuggleIMCall",
|
|
298
|
+
"viewTag: " + viewTag + ", uiManagerType: " + uiManagerType + ", uiManager: " + uiManager
|
|
299
|
+
+ ", view: " + view);
|
|
300
|
+
if (view == null) {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
session.startPreview(((com.juggleim.call.view.ZegoSurfaceView) view).getView());
|
|
304
|
+
} catch (Exception e) {
|
|
305
|
+
e.printStackTrace();
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
promise.resolve(null);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
@ReactMethod
|
|
312
|
+
public void addSessionListener(String callId, String key) {
|
|
313
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
314
|
+
if (session == null) {
|
|
315
|
+
Log.d("JuggleIMCall", "addSessionListener: session is null");
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
ICallSession.ICallSessionListener listener = new ICallSession.ICallSessionListener() {
|
|
320
|
+
@Override
|
|
321
|
+
public void onCallConnect() {
|
|
322
|
+
WritableMap params = Arguments.createMap();
|
|
323
|
+
params.putString("callId", callId);
|
|
324
|
+
sendEvent("CallSession_onCallConnect", params);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
@Override
|
|
328
|
+
public void onCallFinish(CallConst.CallFinishReason finishReason) {
|
|
329
|
+
WritableMap params = Arguments.createMap();
|
|
330
|
+
params.putString("callId", callId);
|
|
331
|
+
params.putInt("finishReason", finishReason.getValue());
|
|
332
|
+
sendEvent("CallSession_onCallFinish", params);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
@Override
|
|
336
|
+
public void onErrorOccur(CallConst.CallErrorCode errorCode) {
|
|
337
|
+
WritableMap params = Arguments.createMap();
|
|
338
|
+
params.putString("callId", callId);
|
|
339
|
+
params.putInt("errorCode", errorCode.getValue());
|
|
340
|
+
sendEvent("CallSession_onErrorOccur", params);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
@Override
|
|
344
|
+
public void onUsersInvite(String inviterId, List<String> userIdList) {
|
|
345
|
+
WritableMap params = Arguments.createMap();
|
|
346
|
+
params.putString("callId", callId);
|
|
347
|
+
params.putString("inviterId", inviterId);
|
|
348
|
+
params.putArray("userIdList", convertListToWritableArray(userIdList));
|
|
349
|
+
sendEvent("CallSession_onUsersInvite", params);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
@Override
|
|
353
|
+
public void onUsersConnect(List<String> userIdList) {
|
|
354
|
+
WritableMap params = Arguments.createMap();
|
|
355
|
+
params.putString("callId", callId);
|
|
356
|
+
params.putArray("userIdList", convertListToWritableArray(userIdList));
|
|
357
|
+
sendEvent("CallSession_onUsersConnect", params);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
@Override
|
|
361
|
+
public void onUsersLeave(List<String> userIdList) {
|
|
362
|
+
WritableMap params = Arguments.createMap();
|
|
363
|
+
params.putString("callId", callId);
|
|
364
|
+
params.putArray("userIdList", convertListToWritableArray(userIdList));
|
|
365
|
+
sendEvent("CallSession_onUsersLeave", params);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
@Override
|
|
369
|
+
public void onUserCameraEnable(String userId, boolean enable) {
|
|
370
|
+
WritableMap params = Arguments.createMap();
|
|
371
|
+
params.putString("callId", callId);
|
|
372
|
+
params.putString("userId", userId);
|
|
373
|
+
params.putBoolean("enable", enable);
|
|
374
|
+
sendEvent("CallSession_onUserCameraEnable", params);
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
@Override
|
|
378
|
+
public void onUserMicrophoneEnable(String userId, boolean enable) {
|
|
379
|
+
WritableMap params = Arguments.createMap();
|
|
380
|
+
params.putString("callId", callId);
|
|
381
|
+
params.putString("userId", userId);
|
|
382
|
+
params.putBoolean("enable", enable);
|
|
383
|
+
sendEvent("CallSession_onUserMicrophoneEnable", params);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
@Override
|
|
387
|
+
public void onSoundLevelUpdate(HashMap<String, Float> soundLevels) {
|
|
388
|
+
WritableMap params = Arguments.createMap();
|
|
389
|
+
params.putString("callId", callId);
|
|
390
|
+
WritableMap levels = Arguments.createMap();
|
|
391
|
+
for (Map.Entry<String, Float> entry : soundLevels.entrySet()) {
|
|
392
|
+
levels.putDouble(entry.getKey(), entry.getValue().doubleValue());
|
|
393
|
+
}
|
|
394
|
+
params.putMap("soundLevels", levels);
|
|
395
|
+
sendEvent("CallSession_onSoundLevelUpdate", params);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
@Override
|
|
399
|
+
public void onVideoFirstFrameRender(String userId) {
|
|
400
|
+
WritableMap params = Arguments.createMap();
|
|
401
|
+
params.putString("callId", callId);
|
|
402
|
+
params.putString("userId", userId);
|
|
403
|
+
sendEvent("CallSession_onVideoFirstFrameRender", params);
|
|
404
|
+
}
|
|
405
|
+
};
|
|
406
|
+
|
|
407
|
+
// Store listener
|
|
408
|
+
if (!mCallSessionListeners.containsKey(callId)) {
|
|
409
|
+
mCallSessionListeners.put(callId, new HashMap<>());
|
|
410
|
+
}
|
|
411
|
+
mCallSessionListeners.get(callId).put(key, listener);
|
|
412
|
+
|
|
413
|
+
session.addListener(key, listener);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
@ReactMethod
|
|
417
|
+
public void removeSessionListener(String callId, String key) {
|
|
418
|
+
ICallSession session = getCallManager().getCallSession(callId);
|
|
419
|
+
if (session != null) {
|
|
420
|
+
session.removeListener(key);
|
|
421
|
+
}
|
|
422
|
+
if (mCallSessionListeners.containsKey(callId)) {
|
|
423
|
+
mCallSessionListeners.get(callId).remove(key);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
private void sendEvent(String eventName, WritableMap params) {
|
|
428
|
+
mReactContext
|
|
429
|
+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
430
|
+
.emit(eventName, params);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
private WritableMap convertCallSessionToMap(ICallSession session) {
|
|
434
|
+
WritableMap map = Arguments.createMap();
|
|
435
|
+
map.putString("callId", session.getCallId());
|
|
436
|
+
map.putBoolean("isMultiCall", session.isMultiCall());
|
|
437
|
+
map.putInt("mediaType", session.getMediaType().getValue());
|
|
438
|
+
map.putInt("callStatus", session.getCallStatus().getStatus());
|
|
439
|
+
map.putDouble("startTime", session.getStartTime());
|
|
440
|
+
map.putDouble("connectTime", session.getConnectTime());
|
|
441
|
+
map.putDouble("finishTime", session.getFinishTime());
|
|
442
|
+
map.putString("owner", session.getOwner());
|
|
443
|
+
map.putString("inviter", session.getInviter());
|
|
444
|
+
map.putInt("finishReason", session.getFinishReason() == null ? 0 : session.getFinishReason().getValue());
|
|
445
|
+
map.putString("extra", session.getExtra());
|
|
446
|
+
|
|
447
|
+
WritableArray members = Arguments.createArray();
|
|
448
|
+
for (CallMember member : session.getMembers()) {
|
|
449
|
+
members.pushMap(convertCallMemberToMap(member));
|
|
450
|
+
}
|
|
451
|
+
map.putArray("members", members);
|
|
452
|
+
|
|
453
|
+
if (session.getCurrentCallMember() != null) {
|
|
454
|
+
map.putMap("currentMember", convertCallMemberToMap(session.getCurrentCallMember()));
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
return map;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
private WritableMap convertCallMemberToMap(CallMember member) {
|
|
461
|
+
WritableMap map = Arguments.createMap();
|
|
462
|
+
map.putMap("userInfo", convertUserInfoToMap(member.getUserInfo()));
|
|
463
|
+
map.putInt("callStatus", member.getCallStatus().getStatus());
|
|
464
|
+
map.putDouble("startTime", member.getStartTime());
|
|
465
|
+
map.putDouble("connectTime", member.getConnectTime());
|
|
466
|
+
map.putDouble("finishTime", member.getFinishTime());
|
|
467
|
+
map.putMap("inviter", convertUserInfoToMap(member.getInviter()));
|
|
468
|
+
return map;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
private WritableMap convertUserInfoToMap(UserInfo userInfo) {
|
|
472
|
+
if (userInfo == null)
|
|
473
|
+
return null;
|
|
474
|
+
WritableMap map = Arguments.createMap();
|
|
475
|
+
map.putString("userId", userInfo.getUserId());
|
|
476
|
+
map.putString("nickname", userInfo.getUserName());
|
|
477
|
+
map.putString("avatar", userInfo.getPortrait());
|
|
478
|
+
return map;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
private WritableMap convertCallInfoToMap(CallInfo info) {
|
|
482
|
+
WritableMap map = Arguments.createMap();
|
|
483
|
+
map.putString("callId", info.getCallId());
|
|
484
|
+
map.putBoolean("isMultiCall", info.isMultiCall());
|
|
485
|
+
map.putInt("mediaType", info.getMediaType().getValue());
|
|
486
|
+
map.putMap("owner", convertUserInfoToMap(info.getOwner()));
|
|
487
|
+
map.putString("extra", info.getExtra());
|
|
488
|
+
|
|
489
|
+
WritableArray members = Arguments.createArray();
|
|
490
|
+
for (CallMember member : info.getMembers()) {
|
|
491
|
+
members.pushMap(convertCallMemberToMap(member));
|
|
492
|
+
}
|
|
493
|
+
map.putArray("members", members);
|
|
494
|
+
|
|
495
|
+
return map;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
private WritableArray convertListToWritableArray(List<String> list) {
|
|
499
|
+
WritableArray array = Arguments.createArray();
|
|
500
|
+
if (list != null) {
|
|
501
|
+
for (String item : list) {
|
|
502
|
+
array.pushString(item);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
return array;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
package com.juggleim.call.view;
|
|
3
|
+
|
|
4
|
+
import com.facebook.react.uimanager.SimpleViewManager;
|
|
5
|
+
import com.facebook.react.uimanager.ThemedReactContext;
|
|
6
|
+
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
7
|
+
|
|
8
|
+
import androidx.annotation.NonNull;
|
|
9
|
+
|
|
10
|
+
public class RCTZegoSurfaceViewManager extends SimpleViewManager<ZegoSurfaceView> {
|
|
11
|
+
@NonNull
|
|
12
|
+
@Override
|
|
13
|
+
public String getName() {
|
|
14
|
+
return "RCTZegoSurfaceView";
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@NonNull
|
|
18
|
+
@Override
|
|
19
|
+
protected ZegoSurfaceView createViewInstance(@NonNull ThemedReactContext reactContext) {
|
|
20
|
+
return new ZegoSurfaceView(reactContext);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@ReactProp(name = "zOrderMediaOverlay")
|
|
24
|
+
public void setZOrderMediaOverlay(ZegoSurfaceView view, boolean isMediaOverlay) {
|
|
25
|
+
view.setZOrderMediaOverlay(isMediaOverlay);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@ReactProp(name = "zOrderOnTop")
|
|
29
|
+
public void setZOrderOnTop(ZegoSurfaceView view, boolean onTop) {
|
|
30
|
+
view.setZOrderOnTop(onTop);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
|
|
2
|
+
package com.juggleim.call.view;
|
|
3
|
+
|
|
4
|
+
import android.content.Context;
|
|
5
|
+
import android.view.SurfaceView;
|
|
6
|
+
import android.widget.FrameLayout;
|
|
7
|
+
|
|
8
|
+
import androidx.annotation.NonNull;
|
|
9
|
+
|
|
10
|
+
public class ZegoSurfaceView extends FrameLayout {
|
|
11
|
+
|
|
12
|
+
private SurfaceView surfaceView;
|
|
13
|
+
|
|
14
|
+
public ZegoSurfaceView(@NonNull Context context) {
|
|
15
|
+
super(context);
|
|
16
|
+
surfaceView = new SurfaceView(context);
|
|
17
|
+
addView(surfaceView);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public SurfaceView getView() {
|
|
21
|
+
return surfaceView;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public void setZOrderMediaOverlay(boolean isMediaOverlay) {
|
|
25
|
+
removeView(surfaceView);
|
|
26
|
+
surfaceView.setZOrderMediaOverlay(isMediaOverlay);
|
|
27
|
+
addView(surfaceView);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public void setZOrderOnTop(boolean onTop) {
|
|
31
|
+
removeView(surfaceView);
|
|
32
|
+
surfaceView.setZOrderOnTop(onTop);
|
|
33
|
+
addView(surfaceView);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@Override
|
|
37
|
+
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
|
38
|
+
int width = MeasureSpec.getSize(widthMeasureSpec);
|
|
39
|
+
int height = MeasureSpec.getSize(heightMeasureSpec);
|
|
40
|
+
surfaceView.layout(0, 0, width, height);
|
|
41
|
+
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
|
42
|
+
}
|
|
43
|
+
}
|
package/ios/JModelFactory.m
CHANGED
|
@@ -158,11 +158,13 @@
|
|
|
158
158
|
if (info.userId) {
|
|
159
159
|
[dic setObject:info.userId forKey:@"userId"];
|
|
160
160
|
}
|
|
161
|
+
// Map iOS userName to JS 'nickname' field
|
|
161
162
|
if (info.userName) {
|
|
162
|
-
[dic setObject:info.userName forKey:@"
|
|
163
|
+
[dic setObject:info.userName forKey:@"nickname"];
|
|
163
164
|
}
|
|
165
|
+
// Map iOS portrait to JS 'avatar' field
|
|
164
166
|
if (info.portrait) {
|
|
165
|
-
[dic setObject:info.portrait forKey:@"
|
|
167
|
+
[dic setObject:info.portrait forKey:@"avatar"];
|
|
166
168
|
}
|
|
167
169
|
if (info.extraDic) {
|
|
168
170
|
[dic setObject:info.extraDic forKey:@"extraMap"];
|
|
@@ -326,8 +328,9 @@
|
|
|
326
328
|
if (callSession.owner) {
|
|
327
329
|
[dic setObject:callSession.owner forKey:@"owner"];
|
|
328
330
|
}
|
|
331
|
+
// Map iOS inviterId to JS 'inviter' field
|
|
329
332
|
if (callSession.inviterId) {
|
|
330
|
-
[dic setObject:callSession.inviterId forKey:@"
|
|
333
|
+
[dic setObject:callSession.inviterId forKey:@"inviter"];
|
|
331
334
|
}
|
|
332
335
|
if (callSession.extra) {
|
|
333
336
|
[dic setObject:callSession.extra forKey:@"extra"];
|
|
@@ -340,6 +343,12 @@
|
|
|
340
343
|
}
|
|
341
344
|
[dic setObject:memberDicArray forKey:@"members"];
|
|
342
345
|
|
|
346
|
+
// Add currentMember field
|
|
347
|
+
if (callSession.currentCallMember) {
|
|
348
|
+
[dic setObject:[self callMemberToDic:callSession.currentCallMember]
|
|
349
|
+
forKey:@"currentMember"];
|
|
350
|
+
}
|
|
351
|
+
|
|
343
352
|
return [dic copy];
|
|
344
353
|
}
|
|
345
354
|
|
package/ios/JuggleIMManager.m
CHANGED
|
@@ -819,13 +819,12 @@ RCT_EXPORT_METHOD(setUnread : (NSDictionary *)conversationMap resolver : (
|
|
|
819
819
|
/**
|
|
820
820
|
* 获取置顶会话列表
|
|
821
821
|
*/
|
|
822
|
-
RCT_EXPORT_METHOD(getTopConversationInfoList
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
: JPullDirectionOlder;
|
|
822
|
+
RCT_EXPORT_METHOD(getTopConversationInfoList:(int)count
|
|
823
|
+
timestamp:(double)timestamp
|
|
824
|
+
pullDirection:(int)pullDirection
|
|
825
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
826
|
+
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
827
|
+
JPullDirection direction = pullDirection == 0 ? JPullDirectionNewer : JPullDirectionOlder;
|
|
829
828
|
|
|
830
829
|
NSArray<JConversationInfo *> *conversationInfos =
|
|
831
830
|
[JIM.shared.conversationManager
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#import <React/RCTBridgeModule.h>
|
|
2
|
+
#import <React/RCTEventEmitter.h>
|
|
3
|
+
#import <React/RCTViewManager.h>
|
|
4
|
+
#import <React/RCTUIManager.h>
|
|
5
|
+
/**
|
|
6
|
+
* Juggle IM Call React Native iOS 模块
|
|
7
|
+
*/
|
|
8
|
+
@interface JuggleIMCallModule : RCTEventEmitter <RCTBridgeModule>
|
|
9
|
+
|
|
10
|
+
@end
|