commit
00ab84f9ef
@ -15,7 +15,6 @@ public class AdvancedMsgListener implements OnAdvancedMsgListener {
|
||||
|
||||
@Override
|
||||
public void onRecvC2CReadReceipt(String s) {
|
||||
System.out.println("native onRecvC2CReadReceipt:"+ s);
|
||||
values.put("message", s);
|
||||
CommonUtil.emitEvent("advancedMsgListener", "onRecvC2CReadReceipt", values);
|
||||
}
|
||||
|
@ -1,7 +1,9 @@
|
||||
package io.openim.flutter_openim_sdk.manager;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import io.flutter.plugin.common.MethodCall;
|
||||
import io.flutter.plugin.common.MethodChannel;
|
||||
@ -15,7 +17,51 @@ import open_im_sdk.Open_im_sdk;
|
||||
|
||||
public class MessageManager {
|
||||
private final static String KEY_ID = "id";
|
||||
private final static Map<String, OnAdvancedMsgListener> listeners = new HashMap<>();
|
||||
// private final static Map<String, OnAdvancedMsgListener> listeners = new HashMap<>();
|
||||
private static boolean initializedListener = false;
|
||||
private final static Map<String, AdvancedMsgListener> listeners = new ConcurrentHashMap<>();
|
||||
|
||||
private final static OnAdvancedMsgListener sdkMsgListener = new OnAdvancedMsgListener() {
|
||||
@Override
|
||||
public void onRecvC2CReadReceipt(String s) {
|
||||
for (AdvancedMsgListener l : listeners.values()) {
|
||||
l.onRecvC2CReadReceipt(s);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRecvMessageRevoked(String s) {
|
||||
for (AdvancedMsgListener l : listeners.values()) {
|
||||
l.onRecvMessageRevoked(s);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRecvNewMessage(String s) {
|
||||
for (AdvancedMsgListener l : listeners.values()) {
|
||||
l.onRecvNewMessage(s);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public void addAdvancedMsgListener(MethodCall methodCall, MethodChannel.Result result) {
|
||||
String key = methodCall.argument(KEY_ID);
|
||||
listeners.put(key, new AdvancedMsgListener(key));
|
||||
if (!initializedListener) {
|
||||
initializedListener = true;
|
||||
Open_im_sdk.addAdvancedMsgListener(sdkMsgListener);
|
||||
}
|
||||
}
|
||||
|
||||
public void removeAdvancedMsgListener(MethodCall methodCall, MethodChannel.Result result) {
|
||||
String key = methodCall.argument(KEY_ID);
|
||||
listeners.remove(key);
|
||||
if (listeners.isEmpty()) {
|
||||
initializedListener = false;
|
||||
Open_im_sdk.removeAdvancedMsgListener(sdkMsgListener);
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
public void addAdvancedMsgListener(MethodCall methodCall, MethodChannel.Result result) {
|
||||
String key = methodCall.argument(KEY_ID);
|
||||
@ -32,6 +78,8 @@ public class MessageManager {
|
||||
Open_im_sdk.removeAdvancedMsgListener(listener);
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
public void sendMessage(MethodCall methodCall, MethodChannel.Result result) {
|
||||
MsgSendProgressListener listener = new MsgSendProgressListener(result, methodCall);
|
||||
Open_im_sdk.sendMessage(listener,
|
||||
|
Loading…
x
Reference in New Issue
Block a user