main
hrxiang 2 years ago
parent f04d45f6b8
commit 70a46ed151
  1. 5
      CHANGELOG.md
  2. 2
      android/build.gradle
  3. 7
      android/src/main/AndroidManifest.xml
  4. 32
      android/src/main/java/io/openim/flutter_openim_sdk/FlutterOpenimSdkPlugin.java
  5. 78
      android/src/main/java/io/openim/flutter_openim_sdk/connectivity/Connectivity.java
  6. 101
      android/src/main/java/io/openim/flutter_openim_sdk/connectivity/ConnectivityListener.java
  7. 78
      android/src/main/java/io/openim/flutter_openim_sdk/connectivity/VisibilityListener.java
  8. 33
      android/src/main/java/io/openim/flutter_openim_sdk/listener/OnAdvancedMsgListener.java
  9. 4
      android/src/main/java/io/openim/flutter_openim_sdk/listener/OnBaseListener.java
  10. 4
      android/src/main/java/io/openim/flutter_openim_sdk/listener/OnFriendshipListener.java
  11. 5
      android/src/main/java/io/openim/flutter_openim_sdk/listener/OnGroupListener.java
  12. 10
      android/src/main/java/io/openim/flutter_openim_sdk/listener/OnOrganizationListener.java
  13. 86
      android/src/main/java/io/openim/flutter_openim_sdk/listener/OnPutFileListener.java
  14. 10
      android/src/main/java/io/openim/flutter_openim_sdk/listener/OnWorkMomentsListener.java
  15. 68
      android/src/main/java/io/openim/flutter_openim_sdk/manager/ConversationManager.java
  16. 20
      android/src/main/java/io/openim/flutter_openim_sdk/manager/FriendshipManager.java
  17. 69
      android/src/main/java/io/openim/flutter_openim_sdk/manager/GroupManager.java
  18. 46
      android/src/main/java/io/openim/flutter_openim_sdk/manager/IMManager.java
  19. 156
      android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java
  20. 22
      android/src/main/java/io/openim/flutter_openim_sdk/manager/OrganizationManager.java
  21. 146
      android/src/main/java/io/openim/flutter_openim_sdk/manager/SignalingManager.java
  22. 2
      android/src/main/java/io/openim/flutter_openim_sdk/manager/UserManager.java
  23. 66
      android/src/main/java/io/openim/flutter_openim_sdk/manager/WorkMomentsManager.java
  24. 2
      example/pubspec.lock
  25. 50
      ios/Classes/Module/ConversationManager.swift
  26. 59
      ios/Classes/Module/FriendshipManager.swift
  27. 61
      ios/Classes/Module/GroupManager.swift
  28. 77
      ios/Classes/Module/IMManager.swift
  29. 176
      ios/Classes/Module/MessageManager.swift
  30. 118
      ios/Classes/Module/OrganizationManager.swift
  31. 296
      ios/Classes/Module/SignalingManager.swift
  32. 2
      ios/Classes/Module/UserManager.swift
  33. 88
      ios/Classes/Module/WorkMomentsManager.swift
  34. 24
      ios/Classes/SwiftFlutterOpenimSdkPlugin.swift
  35. 2
      ios/flutter_openim_sdk.podspec
  36. 1
      lib/flutter_openim_sdk.dart
  37. 10
      lib/src/enum/group_role_level.dart
  38. 1
      lib/src/enum/listener_type.dart
  39. 15
      lib/src/enum/message_type.dart
  40. 6
      lib/src/enum/sdk_error_code.dart
  41. 65
      lib/src/listener/advanced_msg_listener.dart
  42. 20
      lib/src/listener/friendship_listener.dart
  43. 6
      lib/src/listener/group_listener.dart
  44. 22
      lib/src/listener/organization_listener.dart
  45. 32
      lib/src/listener/put_file_listener.dart
  46. 22
      lib/src/listener/workmoments_listener.dart
  47. 142
      lib/src/manager/im_conversation_manager.dart
  48. 62
      lib/src/manager/im_friendship_manager.dart
  49. 181
      lib/src/manager/im_group_manager.dart
  50. 261
      lib/src/manager/im_manager.dart
  51. 272
      lib/src/manager/im_message_manager.dart
  52. 324
      lib/src/manager/im_organization_manager.dart
  53. 6
      lib/src/manager/im_user_manager.dart
  54. 122
      lib/src/manager/im_workmoments_manager.dart
  55. 191
      lib/src/models/message.dart
  56. 38
      lib/src/models/user_info.dart
  57. 112
      lib/src/models/workmoments_info.dart

@ -1,3 +1,8 @@
## 3.0.0
- The super update is not compatible with the previous version
## 2.3.5+4 ## 2.3.5+4
- Fix bug - Fix bug

@ -53,5 +53,5 @@ dependencies {
// aar复制到libs/io/openim/core-sdk/0.0.1/ core-sdk-0.0.1.aar // aar复制到libs/io/openim/core-sdk/0.0.1/ core-sdk-0.0.1.aar
// implementation 'io.openim:core-sdk:0.0.1@aar' // implementation 'io.openim:core-sdk:0.0.1@aar'
// api 'io.openim:core-sdk:2.3.5-t44@aar' // api 'io.openim:core-sdk:2.3.5-t44@aar'
api 'io.openim:core-sdk:3.0.0-t7@aar' api 'io.openim:core-sdk:3.0.0-t101@aar'
} }

@ -1,3 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.openim.flutter_openim_sdk"> package="io.openim.flutter_openim_sdk">
</manifest>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

@ -16,15 +16,14 @@ import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler; import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result; import io.flutter.plugin.common.MethodChannel.Result;
import io.openim.flutter_openim_sdk.connectivity.ConnectivityListener;
import io.openim.flutter_openim_sdk.connectivity.VisibilityListener;
import io.openim.flutter_openim_sdk.manager.ConversationManager; import io.openim.flutter_openim_sdk.manager.ConversationManager;
import io.openim.flutter_openim_sdk.manager.FriendshipManager; import io.openim.flutter_openim_sdk.manager.FriendshipManager;
import io.openim.flutter_openim_sdk.manager.GroupManager; import io.openim.flutter_openim_sdk.manager.GroupManager;
import io.openim.flutter_openim_sdk.manager.IMManager; import io.openim.flutter_openim_sdk.manager.IMManager;
import io.openim.flutter_openim_sdk.manager.MessageManager; import io.openim.flutter_openim_sdk.manager.MessageManager;
import io.openim.flutter_openim_sdk.manager.OrganizationManager;
import io.openim.flutter_openim_sdk.manager.SignalingManager;
import io.openim.flutter_openim_sdk.manager.UserManager; import io.openim.flutter_openim_sdk.manager.UserManager;
import io.openim.flutter_openim_sdk.manager.WorkMomentsManager;
/** /**
@ -43,12 +42,14 @@ public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler,
private static MessageManager messageManager; private static MessageManager messageManager;
private static ConversationManager conversationManager; private static ConversationManager conversationManager;
private static GroupManager groupManager; private static GroupManager groupManager;
private static SignalingManager signalingManager; // private static SignalingManager signalingManager;
private static WorkMomentsManager workMomentsManager; // private static WorkMomentsManager workMomentsManager;
private static OrganizationManager organizationManager; // private static OrganizationManager organizationManager;
private static Activity activity; private static Activity activity;
private static Context context; private static Context context;
private ConnectivityListener connectivityListener;
private VisibilityListener visibilityListener;
public static boolean isInitialized;
public FlutterOpenimSdkPlugin() { public FlutterOpenimSdkPlugin() {
FlutterOpenimSdkPlugin.imManager = new IMManager(); FlutterOpenimSdkPlugin.imManager = new IMManager();
@ -57,9 +58,9 @@ public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler,
FlutterOpenimSdkPlugin.messageManager = new MessageManager(); FlutterOpenimSdkPlugin.messageManager = new MessageManager();
FlutterOpenimSdkPlugin.conversationManager = new ConversationManager(); FlutterOpenimSdkPlugin.conversationManager = new ConversationManager();
FlutterOpenimSdkPlugin.groupManager = new GroupManager(); FlutterOpenimSdkPlugin.groupManager = new GroupManager();
FlutterOpenimSdkPlugin.signalingManager = new SignalingManager(); // FlutterOpenimSdkPlugin.signalingManager = new SignalingManager();
FlutterOpenimSdkPlugin.workMomentsManager = new WorkMomentsManager(); // FlutterOpenimSdkPlugin.workMomentsManager = new WorkMomentsManager();
FlutterOpenimSdkPlugin.organizationManager = new OrganizationManager(); // FlutterOpenimSdkPlugin.organizationManager = new OrganizationManager();
} }
@ -68,6 +69,9 @@ public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler,
channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), CHANNEL_NAME); channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), CHANNEL_NAME);
context = flutterPluginBinding.getApplicationContext(); context = flutterPluginBinding.getApplicationContext();
channel.setMethodCallHandler(this); channel.setMethodCallHandler(this);
connectivityListener = new ConnectivityListener(context);
visibilityListener = new VisibilityListener();
connectivityListener.register();
} }
@Override @Override
@ -78,30 +82,32 @@ public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler,
@Override @Override
public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
FlutterOpenimSdkPlugin.channel.setMethodCallHandler(null); FlutterOpenimSdkPlugin.channel.setMethodCallHandler(null);
connectivityListener.unregisterReceiver();
} }
@Override @Override
public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) { public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) {
activity = binding.getActivity(); visibilityListener.register(activity = binding.getActivity());
} }
@Override @Override
public void onDetachedFromActivityForConfigChanges() { public void onDetachedFromActivityForConfigChanges() {
visibilityListener.unregisterReceiver(activity);
activity = null; activity = null;
} }
@Override @Override
public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) { public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) {
activity = binding.getActivity(); visibilityListener.register(activity = binding.getActivity());
} }
@Override @Override
public void onDetachedFromActivity() { public void onDetachedFromActivity() {
visibilityListener.unregisterReceiver(activity);
activity = null; activity = null;
} }
void parse(@NonNull MethodCall call, @NonNull Result result) { void parse(@NonNull MethodCall call, @NonNull Result result) {
try { try {
String managerName = call.argument("ManagerName"); String managerName = call.argument("ManagerName");

@ -0,0 +1,78 @@
package io.openim.flutter_openim_sdk.connectivity;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.os.Build;
public class Connectivity {
static final String CONNECTIVITY_NONE = "none";
static final String CONNECTIVITY_WIFI = "wifi";
static final String CONNECTIVITY_MOBILE = "mobile";
static final String CONNECTIVITY_ETHERNET = "ethernet";
static final String CONNECTIVITY_BLUETOOTH = "bluetooth";
static final String CONNECTIVITY_VPN = "vpn";
private final ConnectivityManager connectivityManager;
public Connectivity(ConnectivityManager connectivityManager) {
this.connectivityManager = connectivityManager;
}
String getNetworkType() {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Network network = connectivityManager.getActiveNetwork();
NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network);
if (capabilities == null) {
return CONNECTIVITY_NONE;
}
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
return CONNECTIVITY_WIFI;
}
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) {
return CONNECTIVITY_ETHERNET;
}
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) {
return CONNECTIVITY_VPN;
}
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
return CONNECTIVITY_MOBILE;
}
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH)) {
return CONNECTIVITY_BLUETOOTH;
}
}
return getNetworkTypeLegacy();
}
@SuppressWarnings("deprecation")
private String getNetworkTypeLegacy() {
// handle type for Android versions less than Android 6
android.net.NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if (info == null || !info.isConnected()) {
return CONNECTIVITY_NONE;
}
int type = info.getType();
switch (type) {
case ConnectivityManager.TYPE_BLUETOOTH:
return CONNECTIVITY_BLUETOOTH;
case ConnectivityManager.TYPE_ETHERNET:
return CONNECTIVITY_ETHERNET;
case ConnectivityManager.TYPE_WIFI:
case ConnectivityManager.TYPE_WIMAX:
return CONNECTIVITY_WIFI;
case ConnectivityManager.TYPE_VPN:
return CONNECTIVITY_VPN;
case ConnectivityManager.TYPE_MOBILE:
case ConnectivityManager.TYPE_MOBILE_DUN:
case ConnectivityManager.TYPE_MOBILE_HIPRI:
return CONNECTIVITY_MOBILE;
default:
return CONNECTIVITY_NONE;
}
}
public ConnectivityManager getConnectivityManager() {
return connectivityManager;
}
}

@ -0,0 +1,101 @@
package io.openim.flutter_openim_sdk.connectivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.os.Build;
import io.flutter.Log;
import io.openim.flutter_openim_sdk.FlutterOpenimSdkPlugin;
import open_im_sdk.Open_im_sdk;
public class ConnectivityListener implements open_im_sdk_callback.Base {
public static final String CONNECTIVITY_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
private Context context;
private ConnectivityManager connectivityManager;
private Connectivity connectivity;
private ConnectivityBroadcastReceiver receiver;
private ConnectivityManager.NetworkCallback networkCallback;
public ConnectivityListener(Context context) {
this.context = context;
this.connectivityManager =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
this.connectivity = new Connectivity(connectivityManager);
this.receiver = new ConnectivityBroadcastReceiver(this);
}
private void onChangedNetworkStatus() {
String status = connectivity.getNetworkType();
if (Connectivity.CONNECTIVITY_MOBILE.equals(status) || Connectivity.CONNECTIVITY_WIFI.equals(status)) {
Log.i("ConnectivityListener", "networkStatusChanged: " + status);
if (FlutterOpenimSdkPlugin.isInitialized) {
Open_im_sdk.networkStatusChanged(this, String.valueOf(System.currentTimeMillis()));
}
}
}
public void register() {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
onChangedNetworkStatus();
}
@Override
public void onLost(Network network) {
}
};
connectivity.getConnectivityManager().registerDefaultNetworkCallback(networkCallback);
} else {
context.registerReceiver(receiver, new IntentFilter(CONNECTIVITY_ACTION));
}
}
public void unregisterReceiver() {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
if (networkCallback != null) {
connectivity.getConnectivityManager().unregisterNetworkCallback(networkCallback);
networkCallback = null;
}
} else {
try {
context.unregisterReceiver(receiver);
receiver = null;
} catch (Exception e) {
//listen never called, ignore the error
}
}
}
@Override
public void onError(int i, String s) {
}
@Override
public void onSuccess(String s) {
}
public static class ConnectivityBroadcastReceiver extends BroadcastReceiver {
ConnectivityListener listener;
public ConnectivityBroadcastReceiver(ConnectivityListener listener) {
this.listener = listener;
}
@Override
public void onReceive(Context context, Intent intent) {
if (null != listener && CONNECTIVITY_ACTION.equals(intent.getAction())) {
listener.onChangedNetworkStatus();
}
}
}
}

@ -0,0 +1,78 @@
package io.openim.flutter_openim_sdk.connectivity;
import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.flutter.Log;
import io.openim.flutter_openim_sdk.FlutterOpenimSdkPlugin;
import open_im_sdk.Open_im_sdk;
public class VisibilityListener implements Application.ActivityLifecycleCallbacks, open_im_sdk_callback.Base {
public void register(Activity activity) {
if (null != activity) {
activity.getApplication().registerActivityLifecycleCallbacks(this);
}
}
public void unregisterReceiver(Activity activity) {
if (null != activity) {
activity.getApplication().unregisterActivityLifecycleCallbacks(this);
}
}
@Override
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
Log.i("VisibilityListener", "onActivityCreated");
}
@Override
public void onActivityStarted(@NonNull Activity activity) {
Log.i("VisibilityListener", "onActivityStarted");
}
@Override
public void onActivityResumed(@NonNull Activity activity) {
Log.i("VisibilityListener", "onActivityResumed");
if (FlutterOpenimSdkPlugin.isInitialized) {
Open_im_sdk.setAppBackgroundStatus(this, String.valueOf(System.currentTimeMillis()), false);
}
}
@Override
public void onActivityPaused(@NonNull Activity activity) {
Log.i("VisibilityListener", "onActivityPaused");
if (FlutterOpenimSdkPlugin.isInitialized) {
Open_im_sdk.setAppBackgroundStatus(this, String.valueOf(System.currentTimeMillis()), true);
}
}
@Override
public void onActivityStopped(@NonNull Activity activity) {
Log.i("VisibilityListener", "onActivityStopped");
}
@Override
public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) {
Log.i("VisibilityListener", "onActivitySaveInstanceState");
}
@Override
public void onActivityDestroyed(@NonNull Activity activity) {
Log.i("VisibilityListener", "onActivityDestroyed");
}
@Override
public void onError(int i, String s) {
}
@Override
public void onSuccess(String s) {
}
}

@ -13,11 +13,19 @@ public class OnAdvancedMsgListener implements open_im_sdk_callback.OnAdvancedMsg
this.id = listenerId; this.id = listenerId;
} }
@Override
public void onMsgDeleted(String s) {
final Map<String, String> values = new ArrayMap<>();
values.put("id", id);
values.put("message", s);
CommonUtil.emitEvent("advancedMsgListener", "onMsgDeleted", values);
}
@Override @Override
public void onNewRecvMessageRevoked(String s) { public void onNewRecvMessageRevoked(String s) {
final Map<String, String> values = new ArrayMap<>(); final Map<String, String> values = new ArrayMap<>();
values.put("id", id); values.put("id", id);
values.put("revokedMessageV2", s); values.put("messageRevoked", s);
CommonUtil.emitEvent("advancedMsgListener", "onNewRecvMessageRevoked", values); CommonUtil.emitEvent("advancedMsgListener", "onNewRecvMessageRevoked", values);
} }
@ -25,7 +33,7 @@ public class OnAdvancedMsgListener implements open_im_sdk_callback.OnAdvancedMsg
public void onRecvC2CReadReceipt(String s) { public void onRecvC2CReadReceipt(String s) {
final Map<String, String> values = new ArrayMap<>(); final Map<String, String> values = new ArrayMap<>();
values.put("id", id); values.put("id", id);
values.put("c2cMessageReadReceipt", s); values.put("msgReceiptList", s);
CommonUtil.emitEvent("advancedMsgListener", "onRecvC2CReadReceipt", values); CommonUtil.emitEvent("advancedMsgListener", "onRecvC2CReadReceipt", values);
} }
@ -33,16 +41,17 @@ public class OnAdvancedMsgListener implements open_im_sdk_callback.OnAdvancedMsg
public void onRecvGroupReadReceipt(String s) { public void onRecvGroupReadReceipt(String s) {
final Map<String, String> values = new ArrayMap<>(); final Map<String, String> values = new ArrayMap<>();
values.put("id", id); values.put("id", id);
values.put("groupMessageReadReceipt", s); values.put("groupMsgReceiptList", s);
CommonUtil.emitEvent("advancedMsgListener", "onRecvGroupReadReceipt", values); CommonUtil.emitEvent("advancedMsgListener", "onRecvGroupReadReceipt", values);
} }
@Override @Override
public void onRecvMessageExtensionsAdded(String s, String s1) { public void onRecvMessageExtensionsAdded(String s, String s1) {
final Map<String, String> values = new ArrayMap<>(); final Map<String, String> values = new ArrayMap<>();
values.put("id", id); values.put("id", id);
values.put("msgID", s); values.put("msgID", s);
values.put("list", s1); values.put("reactionExtensionList", s1);
CommonUtil.emitEvent("advancedMsgListener", "onRecvMessageExtensionsAdded", values); CommonUtil.emitEvent("advancedMsgListener", "onRecvMessageExtensionsAdded", values);
} }
@ -51,7 +60,7 @@ public class OnAdvancedMsgListener implements open_im_sdk_callback.OnAdvancedMsg
final Map<String, String> values = new ArrayMap<>(); final Map<String, String> values = new ArrayMap<>();
values.put("id", id); values.put("id", id);
values.put("msgID", s); values.put("msgID", s);
values.put("list", s1); values.put("reactionExtensionList", s1);
CommonUtil.emitEvent("advancedMsgListener", "onRecvMessageExtensionsChanged", values); CommonUtil.emitEvent("advancedMsgListener", "onRecvMessageExtensionsChanged", values);
} }
@ -60,23 +69,23 @@ public class OnAdvancedMsgListener implements open_im_sdk_callback.OnAdvancedMsg
final Map<String, String> values = new ArrayMap<>(); final Map<String, String> values = new ArrayMap<>();
values.put("id", id); values.put("id", id);
values.put("msgID", s); values.put("msgID", s);
values.put("list", s1); values.put("reactionExtensionKeyList", s1);
CommonUtil.emitEvent("advancedMsgListener", "onRecvMessageExtensionsDeleted", values); CommonUtil.emitEvent("advancedMsgListener", "onRecvMessageExtensionsDeleted", values);
} }
@Override @Override
public void onRecvMessageRevoked(String s) { public void onRecvNewMessage(String s) {
final Map<String, String> values = new ArrayMap<>(); final Map<String, String> values = new ArrayMap<>();
values.put("id", id); values.put("id", id);
values.put("revokedMessage", s); values.put("message", s);
CommonUtil.emitEvent("advancedMsgListener", "onRecvMessageRevoked", values); CommonUtil.emitEvent("advancedMsgListener", "onRecvNewMessage", values);
} }
@Override @Override
public void onRecvNewMessage(String s) { public void onRecvOfflineNewMessages(String s) {
final Map<String, String> values = new ArrayMap<>(); final Map<String, String> values = new ArrayMap<>();
values.put("id", id); values.put("id", id);
values.put("newMessage", s); values.put("messageList", s);
CommonUtil.emitEvent("advancedMsgListener", "onRecvNewMessage", values); CommonUtil.emitEvent("advancedMsgListener", "onRecvOfflineNewMessages", values);
} }
} }

@ -19,13 +19,13 @@ public class OnBaseListener implements Base {
@Override @Override
public void onError(int l, String s) { public void onError(int l, String s) {
Log.i("F-OpenIMSDK(flutter call native)", "method: 【 " + call.method + " 】, onError: { code:" + l + ", message:" + s + "}"); Log.i("F-OpenIMSDK(native call flutter)", "method: 【 " + call.method + " 】, onError: { code:" + l + ", message:" + s + "}");
CommonUtil.runMainThreadReturnError(result, l, s, null); CommonUtil.runMainThreadReturnError(result, l, s, null);
} }
@Override @Override
public void onSuccess(String s) { public void onSuccess(String s) {
Log.i("F-OpenIMSDK(flutter call native)", "method: 【 " + call.method + " 】, onSuccess: " + s); Log.i("F-OpenIMSDK(native call flutter)", "method: 【 " + call.method + " 】, onSuccess: " + s);
CommonUtil.runMainThreadReturn(result, s); CommonUtil.runMainThreadReturn(result, s);
} }
} }

@ -6,12 +6,12 @@ public class OnFriendshipListener implements open_im_sdk_callback.OnFriendshipLi
@Override @Override
public void onBlackAdded(String s) { public void onBlackAdded(String s) {
CommonUtil.emitEvent("friendListener", "onBlacklistAdded", s); CommonUtil.emitEvent("friendListener", "onBlackAdded", s);
} }
@Override @Override
public void onBlackDeleted(String s) { public void onBlackDeleted(String s) {
CommonUtil.emitEvent("friendListener", "onBlacklistDeleted", s); CommonUtil.emitEvent("friendListener", "onBlackDeleted", s);
} }
@Override @Override

@ -24,6 +24,11 @@ public class OnGroupListener implements open_im_sdk_callback.OnGroupListener {
CommonUtil.emitEvent("groupListener", "onGroupApplicationRejected", s); CommonUtil.emitEvent("groupListener", "onGroupApplicationRejected", s);
} }
@Override
public void onGroupDismissed(String s) {
CommonUtil.emitEvent("groupListener", "onGroupDismissed", s);
}
@Override @Override
public void onGroupInfoChanged(String s) { public void onGroupInfoChanged(String s) {
CommonUtil.emitEvent("groupListener", "onGroupInfoChanged", s); CommonUtil.emitEvent("groupListener", "onGroupInfoChanged", s);

@ -2,9 +2,9 @@ package io.openim.flutter_openim_sdk.listener;
import io.openim.flutter_openim_sdk.util.CommonUtil; import io.openim.flutter_openim_sdk.util.CommonUtil;
public class OnOrganizationListener implements open_im_sdk_callback.OnOrganizationListener { public class OnOrganizationListener /*implements open_im_sdk_callback.OnOrganizationListener*/ {
@Override // @Override
public void onOrganizationUpdated() { // public void onOrganizationUpdated() {
CommonUtil.emitEvent("organizationListener", "onOrganizationUpdated", null); // CommonUtil.emitEvent("organizationListener", "onOrganizationUpdated", null);
} // }
} }

@ -0,0 +1,86 @@
package io.openim.flutter_openim_sdk.listener;
import android.util.ArrayMap;
import java.util.Map;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.openim.flutter_openim_sdk.util.CommonUtil;
import open_im_sdk_callback.PutFileCallback;
public class OnPutFileListener implements PutFileCallback {
final private MethodChannel.Result result;
final private Object putID;
public OnPutFileListener(MethodChannel.Result result, MethodCall call) {
this.result = result;
this.putID = call.argument("putID");
}
@Override
public void hashComplete(String hash, long total) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("hash", hash);
values.put("total", total);
CommonUtil.emitEvent("putFileListener", "hashComplete", values);
}
}
@Override
public void hashProgress(long current, long total) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("current", current);
values.put("total", total);
CommonUtil.emitEvent("putFileListener", "hashProgress", values);
}
}
@Override
public void open(long size) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("size", size);
CommonUtil.emitEvent("putFileListener", "open", values);
}
}
@Override
public void putComplete(long total, long putType) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("putType", putType);
values.put("total", total);
CommonUtil.emitEvent("putFileListener", "putComplete", values);
}
}
@Override
public void putProgress(long save, long current, long total) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("save", save);
values.put("current", current);
values.put("total", total);
CommonUtil.emitEvent("putFileListener", "putProgress", values);
}
}
@Override
public void putStart(long current, long total) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("current", current);
values.put("total", total);
CommonUtil.emitEvent("putFileListener", "putStart", values);
}
}
}

@ -2,11 +2,11 @@ package io.openim.flutter_openim_sdk.listener;
import io.openim.flutter_openim_sdk.util.CommonUtil; import io.openim.flutter_openim_sdk.util.CommonUtil;
public class OnWorkMomentsListener implements open_im_sdk_callback.OnWorkMomentsListener { public class OnWorkMomentsListener /*implements open_im_sdk_callback.OnWorkMomentsListener*/ {
@Override // @Override
public void onRecvNewNotification() { // public void onRecvNewNotification() {
CommonUtil.emitEvent("workMomentsListener", "OnRecvNewNotification", null); // CommonUtil.emitEvent("workMomentsListener", "OnRecvNewNotification", null);
} // }
} }

@ -36,7 +36,7 @@ public class ConversationManager extends BaseManager {
Open_im_sdk.getOneConversation( Open_im_sdk.getOneConversation(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
int2long(methodCall, "sessionType"), value(methodCall, "sessionType"),
value(methodCall, "sourceID") value(methodCall, "sourceID")
); );
} }
@ -49,13 +49,6 @@ public class ConversationManager extends BaseManager {
); );
} }
public void deleteConversation(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.deleteConversation(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID"),
value(methodCall, "conversationID")
);
}
public void setConversationDraft(MethodCall methodCall, MethodChannel.Result result) { public void setConversationDraft(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.setConversationDraft( Open_im_sdk.setConversationDraft(
@ -75,19 +68,19 @@ public class ConversationManager extends BaseManager {
); );
} }
// public void markSingleMessageHasRead(MethodCall methodCall, MethodChannel.Result result) { public void hideConversation(MethodCall methodCall, MethodChannel.Result result) {
// Open_im_sdk.markSingleMessageHasRead( Open_im_sdk.hideConversation(
// new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
// value(methodCall, "operationID"), value(methodCall, "operationID"),
// value(methodCall, "userID") value(methodCall, "conversationID")
// ); );
// } }
public void markGroupMessageHasRead(MethodCall methodCall, MethodChannel.Result result) { public void markConversationMessageAsRead(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.markGroupMessageHasRead( Open_im_sdk.markConversationMessageAsRead(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "groupID") value(methodCall, "conversationID")
); );
} }
@ -98,17 +91,18 @@ public class ConversationManager extends BaseManager {
); );
} }
// public void getConversationIDBySessionType(MethodCall methodCall, MethodChannel.Result result) { public void getConversationIDBySessionType(MethodCall methodCall, MethodChannel.Result result) {
// CommonUtil.runMainThreadReturn(result, Open_im_sdk.getConversationIDBySessionType( CommonUtil.runMainThreadReturn(result, Open_im_sdk.getConversationIDBySessionType(
// value(methodCall, "sourceID"), value(methodCall, "operationID"),
// int2long(methodCall, "sessionType"))); value(methodCall, "sourceID"),
// } int2long(methodCall, "sessionType")));
}
public void setConversationRecvMessageOpt(MethodCall methodCall, MethodChannel.Result result) { public void setConversationRecvMessageOpt(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.setConversationRecvMessageOpt( Open_im_sdk.setConversationRecvMessageOpt(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall, "conversationIDList"), value(methodCall, "conversationID"),
int2long(methodCall, "status") int2long(methodCall, "status")
); );
} }
@ -121,8 +115,8 @@ public class ConversationManager extends BaseManager {
); );
} }
public void setOneConversationPrivateChat(MethodCall methodCall, MethodChannel.Result result) { public void setConversationPrivateChat(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.setOneConversationPrivateChat( Open_im_sdk.setConversationPrivateChat(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "conversationID"), value(methodCall, "conversationID"),
@ -130,8 +124,16 @@ public class ConversationManager extends BaseManager {
); );
} }
public void deleteConversationFromLocalAndSvr(MethodCall methodCall, MethodChannel.Result result) { public void clearConversationAndDeleteAllMsg(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.deleteConversationFromLocalAndSvr( Open_im_sdk.clearConversationAndDeleteAllMsg(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID"),
value(methodCall, "conversationID")
);
}
public void deleteConversationAndDeleteAllMsg(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.deleteConversationAndDeleteAllMsg(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "conversationID") value(methodCall, "conversationID")
@ -153,9 +155,9 @@ public class ConversationManager extends BaseManager {
); );
} }
// public void getAtAllTag(MethodCall methodCall, MethodChannel.Result result) { public void getAtAllTag(MethodCall methodCall, MethodChannel.Result result) {
// CommonUtil.runMainThreadReturn(result, Open_im_sdk.getAtAllTag()); CommonUtil.runMainThreadReturn(result, Open_im_sdk.getAtAllTag(value(methodCall, "operationID")));
// } }
public void setGlobalRecvMessageOpt(MethodCall methodCall, MethodChannel.Result result) { public void setGlobalRecvMessageOpt(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.setGlobalRecvMessageOpt( Open_im_sdk.setGlobalRecvMessageOpt(
@ -165,8 +167,8 @@ public class ConversationManager extends BaseManager {
); );
} }
public void setOneConversationBurnDuration(MethodCall methodCall, MethodChannel.Result result) { public void setConversationBurnDuration(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.setOneConversationBurnDuration( Open_im_sdk.setConversationBurnDuration(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "conversationID"), value(methodCall, "conversationID"),

@ -16,10 +16,10 @@ public class FriendshipManager extends BaseManager {
} }
public void getFriendsInfo(MethodCall methodCall, MethodChannel.Result result) { public void getFriendsInfo(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getDesignatedFriendsInfo( Open_im_sdk.getSpecifiedFriendsInfo(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall, "uidList") jsonValue(methodCall, "userIDList")
); );
} }
@ -31,15 +31,15 @@ public class FriendshipManager extends BaseManager {
); );
} }
public void getRecvFriendApplicationList(MethodCall methodCall, MethodChannel.Result result) { public void getFriendApplicationListAsRecipient(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getRecvFriendApplicationList( Open_im_sdk.getFriendApplicationListAsRecipient(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID") value(methodCall, "operationID")
); );
} }
public void getSendFriendApplicationList(MethodCall methodCall, MethodChannel.Result result) { public void getFriendApplicationListAsApplicant(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getSendFriendApplicationList( Open_im_sdk.getFriendApplicationListAsApplicant(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID") value(methodCall, "operationID")
); );
@ -64,7 +64,7 @@ public class FriendshipManager extends BaseManager {
Open_im_sdk.addBlack( Open_im_sdk.addBlack(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "uid") value(methodCall, "userID")
); );
} }
@ -79,7 +79,7 @@ public class FriendshipManager extends BaseManager {
Open_im_sdk.removeBlack( Open_im_sdk.removeBlack(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "uid") value(methodCall, "userID")
); );
} }
@ -87,7 +87,7 @@ public class FriendshipManager extends BaseManager {
Open_im_sdk.checkFriend( Open_im_sdk.checkFriend(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall, "uidList") jsonValue(methodCall, "userIDList")
); );
} }
@ -95,7 +95,7 @@ public class FriendshipManager extends BaseManager {
Open_im_sdk.deleteFriend( Open_im_sdk.deleteFriend(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "uid") value(methodCall, "userID")
); );
} }

@ -18,9 +18,9 @@ public class GroupManager extends BaseManager {
Open_im_sdk.inviteUserToGroup( Open_im_sdk.inviteUserToGroup(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), value(methodCall, "groupID"),
value(methodCall, "reason"), value(methodCall, "reason"),
jsonValue(methodCall, "uidList") jsonValue(methodCall, "userIDList")
); );
} }
@ -28,18 +28,18 @@ public class GroupManager extends BaseManager {
Open_im_sdk.kickGroupMember( Open_im_sdk.kickGroupMember(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), value(methodCall, "groupID"),
value(methodCall, "reason"), value(methodCall, "reason"),
jsonValue(methodCall, "uidList") jsonValue(methodCall, "userIDList")
); );
} }
public void getGroupMembersInfo(MethodCall methodCall, MethodChannel.Result result) { public void getGroupMembersInfo(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getGroupMembersInfo( Open_im_sdk.getSpecifiedGroupMembersInfo(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), value(methodCall, "groupID"),
jsonValue(methodCall, "uidList") jsonValue(methodCall, "userIDList")
); );
} }
@ -47,7 +47,7 @@ public class GroupManager extends BaseManager {
Open_im_sdk.getGroupMemberList( Open_im_sdk.getGroupMemberList(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), value(methodCall, "groupID"),
value(methodCall, "filter"), value(methodCall, "filter"),
value(methodCall, "offset"), value(methodCall, "offset"),
value(methodCall, "count") value(methodCall, "count")
@ -66,8 +66,7 @@ public class GroupManager extends BaseManager {
Open_im_sdk.createGroup( Open_im_sdk.createGroup(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall, "gInfo"), jsonValue(methodCall)
jsonValue(methodCall, "memberList")
); );
} }
@ -75,16 +74,15 @@ public class GroupManager extends BaseManager {
Open_im_sdk.setGroupInfo( Open_im_sdk.setGroupInfo(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), jsonValue(methodCall, "groupInfo")
jsonValue(methodCall, "gInfo")
); );
} }
public void getGroupsInfo(MethodCall methodCall, MethodChannel.Result result) { public void getGroupsInfo(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getGroupsInfo( Open_im_sdk.getSpecifiedGroupsInfo(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall, "gidList") jsonValue(methodCall, "groupIDList")
); );
} }
@ -92,7 +90,7 @@ public class GroupManager extends BaseManager {
Open_im_sdk.joinGroup( Open_im_sdk.joinGroup(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), value(methodCall, "groupID"),
value(methodCall, "reason"), value(methodCall, "reason"),
value(methodCall, "joinSource") value(methodCall, "joinSource")
); );
@ -102,7 +100,7 @@ public class GroupManager extends BaseManager {
Open_im_sdk.quitGroup( Open_im_sdk.quitGroup(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid") value(methodCall, "groupID")
); );
} }
@ -110,20 +108,20 @@ public class GroupManager extends BaseManager {
Open_im_sdk.transferGroupOwner( Open_im_sdk.transferGroupOwner(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), value(methodCall, "groupID"),
value(methodCall, "uid") value(methodCall, "userID")
); );
} }
public void getRecvGroupApplicationList(MethodCall methodCall, MethodChannel.Result result) { public void getGroupApplicationListAsRecipient(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getRecvGroupApplicationList( Open_im_sdk.getGroupApplicationListAsRecipient(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID") value(methodCall, "operationID")
); );
} }
public void getSendGroupApplicationList(MethodCall methodCall, MethodChannel.Result result) { public void getGroupApplicationListAsApplicant(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getSendGroupApplicationList( Open_im_sdk.getGroupApplicationListAsApplicant(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID") value(methodCall, "operationID")
); );
@ -133,8 +131,8 @@ public class GroupManager extends BaseManager {
Open_im_sdk.acceptGroupApplication( Open_im_sdk.acceptGroupApplication(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), value(methodCall, "groupID"),
value(methodCall, "uid"), value(methodCall, "userID"),
value(methodCall, "handleMsg") value(methodCall, "handleMsg")
); );
@ -144,8 +142,8 @@ public class GroupManager extends BaseManager {
Open_im_sdk.refuseGroupApplication( Open_im_sdk.refuseGroupApplication(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), value(methodCall, "groupID"),
value(methodCall, "uid"), value(methodCall, "userID"),
value(methodCall, "handleMsg") value(methodCall, "handleMsg")
); );
@ -155,7 +153,7 @@ public class GroupManager extends BaseManager {
Open_im_sdk.dismissGroup( Open_im_sdk.dismissGroup(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid") value(methodCall, "groupID")
); );
} }
@ -163,7 +161,7 @@ public class GroupManager extends BaseManager {
Open_im_sdk.changeGroupMute( Open_im_sdk.changeGroupMute(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), value(methodCall, "groupID"),
value(methodCall, "mute") value(methodCall, "mute")
); );
} }
@ -172,8 +170,8 @@ public class GroupManager extends BaseManager {
Open_im_sdk.changeGroupMemberMute( Open_im_sdk.changeGroupMemberMute(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), value(methodCall, "groupID"),
value(methodCall, "uid"), value(methodCall, "userID"),
int2long(methodCall, "seconds") int2long(methodCall, "seconds")
); );
} }
@ -181,8 +179,8 @@ public class GroupManager extends BaseManager {
public void setGroupMemberNickname(MethodCall methodCall, MethodChannel.Result result) { public void setGroupMemberNickname(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.setGroupMemberNickname(new OnBaseListener(result, methodCall), Open_im_sdk.setGroupMemberNickname(new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "gid"), value(methodCall, "groupID"),
value(methodCall, "uid"), value(methodCall, "userID"),
value(methodCall, "groupNickname") value(methodCall, "groupNickname")
); );
} }
@ -259,4 +257,11 @@ public class GroupManager extends BaseManager {
jsonValue(methodCall, "info") jsonValue(methodCall, "info")
); );
} }
public void isJoinGroup(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.isJoinGroup(new OnBaseListener(result, methodCall),
value(methodCall, "operationID"),
value(methodCall, "groupID")
);
}
} }

@ -2,27 +2,30 @@ package io.openim.flutter_openim_sdk.manager;
import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.common.MethodChannel;
import io.openim.flutter_openim_sdk.FlutterOpenimSdkPlugin;
import io.openim.flutter_openim_sdk.listener.OnBaseListener; import io.openim.flutter_openim_sdk.listener.OnBaseListener;
import io.openim.flutter_openim_sdk.listener.OnConnListener; import io.openim.flutter_openim_sdk.listener.OnConnListener;
import io.openim.flutter_openim_sdk.listener.OnListenerForService; import io.openim.flutter_openim_sdk.listener.OnListenerForService;
import io.openim.flutter_openim_sdk.listener.OnPutFileListener;
import io.openim.flutter_openim_sdk.util.CommonUtil; import io.openim.flutter_openim_sdk.util.CommonUtil;
import open_im_sdk.Open_im_sdk; import open_im_sdk.Open_im_sdk;
public class IMManager extends BaseManager { public class IMManager extends BaseManager {
public void initSDK(MethodCall methodCall, MethodChannel.Result result) { public void initSDK(MethodCall methodCall, MethodChannel.Result result) {
CommonUtil.runMainThreadReturn(result, Open_im_sdk.initSDK( boolean initialized = Open_im_sdk.initSDK(
new OnConnListener(), new OnConnListener(),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall)) jsonValue(methodCall));
); FlutterOpenimSdkPlugin.isInitialized = initialized;
CommonUtil.runMainThreadReturn(result, initialized);
} }
public void login(MethodCall methodCall, MethodChannel.Result result) { public void login(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.login( Open_im_sdk.login(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "uid"), value(methodCall, "userID"),
value(methodCall, "token") value(methodCall, "token")
); );
} }
@ -34,24 +37,16 @@ public class IMManager extends BaseManager {
); );
} }
// public void getLoginStatus(MethodCall methodCall, MethodChannel.Result result) { public void getLoginStatus(MethodCall methodCall, MethodChannel.Result result) {
// CommonUtil.runMainThreadReturn(result, Open_im_sdk.getLoginStatus()); CommonUtil.runMainThreadReturn(result, Open_im_sdk.getLoginStatus());
// }
public void wakeUp(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.wakeUp(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID")
);
} }
public void uploadImage(MethodCall methodCall, MethodChannel.Result result) { public void putFile(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.uploadImage( Open_im_sdk.putFile(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "path"), jsonValue(methodCall),
value(methodCall, "token"), new OnPutFileListener(result, methodCall)
value(methodCall, "obj")
); );
} }
@ -72,17 +67,18 @@ public class IMManager extends BaseManager {
); );
} }
public void networkChanged(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.networkChanged( public void networkStatusChanged(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.networkStatusChanged(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID") value(methodCall, "operationID")
); );
} }
public void setListenerForService(MethodCall methodCall, MethodChannel.Result result) { // public void setListenerForService(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.setListenerForService(new OnListenerForService()); // Open_im_sdk.setListenerForService(new OnListenerForService());
//
result.success(null); // result.success(null);
} // }
} }

@ -100,33 +100,46 @@ public class MessageManager extends BaseManager {
); );
} }
public void getHistoryMessageList(MethodCall methodCall, MethodChannel.Result result) { public void revokeMessage(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getHistoryMessageList( Open_im_sdk.revokeMessage(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall) value(methodCall, "conversationID"),
value(methodCall, "clientMsgID")
); );
} }
public void revokeMessage(MethodCall methodCall, MethodChannel.Result result) { public void deleteMessageFromLocalStorage(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.revokeMessage( Open_im_sdk.deleteMessageFromLocalStorage(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall) value(methodCall, "conversationID"),
value(methodCall, "clientMsgID")
); );
} }
public void deleteMessageFromLocalStorage(MethodCall methodCall, MethodChannel.Result result) { public void deleteMessageFromLocalAndSvr(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.deleteMessageFromLocalStorage( Open_im_sdk.deleteMessage(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall) value(methodCall, "conversationID"),
value(methodCall, "clientMsgID")
); );
} }
// public void deleteMessages(MethodCall methodCall, MethodChannel.Result result) { public void deleteAllMsgFromLocal(MethodCall methodCall, MethodChannel.Result result) {
// Open_im_sdk.deleteMessages(new OnBaseListener(result, methodCall), CommonUtil.getSDKJsonParam(methodCall)); Open_im_sdk.deleteAllMsgFromLocal(
// } new OnBaseListener(result, methodCall),
value(methodCall, "operationID")
);
}
public void deleteAllMsgFromLocalAndSvr(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.deleteAllMsgFromLocalAndSvr(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID")
);
}
public void insertSingleMessageToLocalStorage(MethodCall methodCall, MethodChannel.Result result) { public void insertSingleMessageToLocalStorage(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.insertSingleMessageToLocalStorage( Open_im_sdk.insertSingleMessageToLocalStorage(
@ -148,20 +161,11 @@ public class MessageManager extends BaseManager {
); );
} }
public void markC2CMessageAsRead(MethodCall methodCall, MethodChannel.Result result) { public void markMessagesAsReadByMsgID(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.markC2CMessageAsRead( Open_im_sdk.markMessagesAsReadByMsgID(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "userID"), value(methodCall, "conversationID"),
jsonValue(methodCall, "messageIDList")
);
}
public void markGroupMessageAsRead(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.markGroupMessageAsRead(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID"),
value(methodCall, "groupID"),
jsonValue(methodCall, "messageIDList") jsonValue(methodCall, "messageIDList")
); );
} }
@ -317,20 +321,23 @@ public class MessageManager extends BaseManager {
)); ));
} }
public void clearC2CHistoryMessage(MethodCall methodCall, MethodChannel.Result result) { public void createAdvancedTextMessage(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.clearC2CHistoryMessage( CommonUtil.runMainThreadReturn(result,
new OnBaseListener(result, methodCall), Open_im_sdk.createAdvancedTextMessage(
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "userID") value(methodCall, "text"),
); jsonValue(methodCall, "richMessageInfoList")
));
} }
public void clearGroupHistoryMessage(MethodCall methodCall, MethodChannel.Result result) { public void createAdvancedQuoteMessage(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.clearGroupHistoryMessage( CommonUtil.runMainThreadReturn(result,
new OnBaseListener(result, methodCall), Open_im_sdk.createAdvancedQuoteMessage(
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "groupID") value(methodCall, "quoteText"),
); jsonValue(methodCall, "quoteMessage"),
jsonValue(methodCall, "richMessageInfoList")
));
} }
public void searchLocalMessages(MethodCall methodCall, MethodChannel.Result result) { public void searchLocalMessages(MethodCall methodCall, MethodChannel.Result result) {
@ -341,71 +348,26 @@ public class MessageManager extends BaseManager {
); );
} }
public void deleteMessageFromLocalAndSvr(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.deleteMessageFromLocalAndSvr(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID"),
jsonValue(methodCall)
);
}
public void deleteAllMsgFromLocal(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.deleteAllMsgFromLocal(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID")
);
}
public void deleteAllMsgFromLocalAndSvr(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.deleteAllMsgFromLocalAndSvr(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID")
);
}
public void markMessageAsReadByConID(MethodCall methodCall, MethodChannel.Result result) { public void clearConversationAndDeleteAllMsg(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.markMessageAsReadByConID( Open_im_sdk.clearConversationAndDeleteAllMsg(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
value(methodCall, "conversationID"), value(methodCall, "conversationID")
jsonValue(methodCall, "messageIDList")
); );
} }
public void clearC2CHistoryMessageFromLocalAndSvr(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.clearC2CHistoryMessageFromLocalAndSvr(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID"),
value(methodCall, "userID")
);
}
public void clearGroupHistoryMessageFromLocalAndSvr(MethodCall methodCall, MethodChannel.Result result) { public void getAdvancedHistoryMessageList(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.clearGroupHistoryMessageFromLocalAndSvr( Open_im_sdk.getAdvancedHistoryMessageList(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID"),
value(methodCall, "groupID")
);
}
public void getHistoryMessageListReverse(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getHistoryMessageListReverse(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID"),
jsonValue(methodCall)
);
}
public void newRevokeMessage(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.newRevokeMessage(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall) jsonValue(methodCall)
); );
} }
public void getAdvancedHistoryMessageList(MethodCall methodCall, MethodChannel.Result result) { public void getAdvancedHistoryMessageListReverse(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getAdvancedHistoryMessageList( Open_im_sdk.getAdvancedHistoryMessageListReverse(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall) jsonValue(methodCall)
@ -420,24 +382,6 @@ public class MessageManager extends BaseManager {
); );
} }
public void createAdvancedTextMessage(MethodCall methodCall, MethodChannel.Result result) {
CommonUtil.runMainThreadReturn(result,
Open_im_sdk.createAdvancedTextMessage(
value(methodCall, "operationID"),
value(methodCall, "text"),
jsonValue(methodCall, "richMessageInfoList")
));
}
public void createAdvancedQuoteMessage(MethodCall methodCall, MethodChannel.Result result) {
CommonUtil.runMainThreadReturn(result,
Open_im_sdk.createAdvancedQuoteMessage(
value(methodCall, "operationID"),
value(methodCall, "quoteText"),
jsonValue(methodCall, "quoteMessage"),
jsonValue(methodCall, "richMessageInfoList")
));
}
public void sendMessageNotOss(MethodCall methodCall, MethodChannel.Result result) { public void sendMessageNotOss(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.sendMessageNotOss( Open_im_sdk.sendMessageNotOss(

@ -1,13 +1,13 @@
package io.openim.flutter_openim_sdk.manager; //package io.openim.flutter_openim_sdk.manager;
//
import io.flutter.plugin.common.MethodCall; //import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel; //import io.flutter.plugin.common.MethodChannel;
import io.openim.flutter_openim_sdk.listener.OnBaseListener; //import io.openim.flutter_openim_sdk.listener.OnBaseListener;
import io.openim.flutter_openim_sdk.listener.OnOrganizationListener; //import io.openim.flutter_openim_sdk.listener.OnOrganizationListener;
import open_im_sdk.Open_im_sdk; //import open_im_sdk.Open_im_sdk;
//
public class OrganizationManager extends BaseManager { //public class OrganizationManager extends BaseManager {
//
// public void setOrganizationListener(MethodCall methodCall, MethodChannel.Result result) { // public void setOrganizationListener(MethodCall methodCall, MethodChannel.Result result) {
// Open_im_sdk.setOrganizationListener(new OnOrganizationListener()); // Open_im_sdk.setOrganizationListener(new OnOrganizationListener());
// //
@ -67,4 +67,4 @@ public class OrganizationManager extends BaseManager {
// int2long(methodCall, "count") // int2long(methodCall, "count")
// ); // );
// } // }
} //}

@ -1,75 +1,75 @@
package io.openim.flutter_openim_sdk.manager; //package io.openim.flutter_openim_sdk.manager;
//
import io.flutter.plugin.common.MethodCall; //import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel; //import io.flutter.plugin.common.MethodChannel;
import io.openim.flutter_openim_sdk.listener.OnBaseListener; //import io.openim.flutter_openim_sdk.listener.OnBaseListener;
import io.openim.flutter_openim_sdk.listener.OnSignalingListener; //import io.openim.flutter_openim_sdk.listener.OnSignalingListener;
import open_im_sdk.Open_im_sdk; //import open_im_sdk.Open_im_sdk;
//
public class SignalingManager extends BaseManager { //public class SignalingManager extends BaseManager {
//
public void setSignalingListener(MethodCall methodCall, MethodChannel.Result result) { // public void setSignalingListener(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.setSignalingListener(new OnSignalingListener()); // Open_im_sdk.setSignalingListener(new OnSignalingListener());
//
result.success(null); // result.success(null);
} // }
//
public void signalingInvite(MethodCall methodCall, MethodChannel.Result result) { // public void signalingInvite(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.signalingInvite( // Open_im_sdk.signalingInvite(
new OnBaseListener(result, methodCall), // new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), // value(methodCall, "operationID"),
jsonValue(methodCall, "signalingInfo")); // jsonValue(methodCall, "signalingInfo"));
} // }
//
public void signalingInviteInGroup(MethodCall methodCall, MethodChannel.Result result) { // public void signalingInviteInGroup(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.signalingInviteInGroup( // Open_im_sdk.signalingInviteInGroup(
new OnBaseListener(result, methodCall), // new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), // value(methodCall, "operationID"),
jsonValue(methodCall, "signalingInfo")); // jsonValue(methodCall, "signalingInfo"));
} // }
//
public void signalingAccept(MethodCall methodCall, MethodChannel.Result result) { // public void signalingAccept(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.signalingAccept( // Open_im_sdk.signalingAccept(
new OnBaseListener(result, methodCall), // new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), // value(methodCall, "operationID"),
jsonValue(methodCall, "signalingInfo")); // jsonValue(methodCall, "signalingInfo"));
} // }
//
public void signalingReject(MethodCall methodCall, MethodChannel.Result result) { // public void signalingReject(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.signalingReject( // Open_im_sdk.signalingReject(
new OnBaseListener(result, methodCall), // new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), // value(methodCall, "operationID"),
jsonValue(methodCall, "signalingInfo")); // jsonValue(methodCall, "signalingInfo"));
} // }
//
public void signalingCancel(MethodCall methodCall, MethodChannel.Result result) { // public void signalingCancel(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.signalingCancel( // Open_im_sdk.signalingCancel(
new OnBaseListener(result, methodCall), // new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), // value(methodCall, "operationID"),
jsonValue(methodCall, "signalingInfo")); // jsonValue(methodCall, "signalingInfo"));
} // }
//
public void signalingHungUp(MethodCall methodCall, MethodChannel.Result result) { // public void signalingHungUp(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.signalingHungUp( // Open_im_sdk.signalingHungUp(
new OnBaseListener(result, methodCall), // new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), // value(methodCall, "operationID"),
jsonValue(methodCall, "signalingInfo")); // jsonValue(methodCall, "signalingInfo"));
} // }
//
public void signalingGetRoomByGroupID(MethodCall methodCall, MethodChannel.Result result) { // public void signalingGetRoomByGroupID(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.signalingGetRoomByGroupID( // Open_im_sdk.signalingGetRoomByGroupID(
new OnBaseListener(result, methodCall), // new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), // value(methodCall, "operationID"),
value(methodCall, "groupID")); // value(methodCall, "groupID"));
} // }
//
public void signalingGetTokenByRoomID(MethodCall methodCall, MethodChannel.Result result) { // public void signalingGetTokenByRoomID(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.signalingGetTokenByRoomID( // Open_im_sdk.signalingGetTokenByRoomID(
new OnBaseListener(result, methodCall), // new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), // value(methodCall, "operationID"),
value(methodCall, "roomID")); // value(methodCall, "roomID"));
} // }
//
// public void signalingUpdateMeetingInfo(MethodCall methodCall, MethodChannel.Result result) { // public void signalingUpdateMeetingInfo(MethodCall methodCall, MethodChannel.Result result) {
// Open_im_sdk.signalingUpdateMeetingInfo( // Open_im_sdk.signalingUpdateMeetingInfo(
// new OnBaseListener(result, methodCall), // new OnBaseListener(result, methodCall),
@ -122,4 +122,4 @@ public class SignalingManager extends BaseManager {
// value(methodCall, "customInfo"), // value(methodCall, "customInfo"),
// value(methodCall, "roomID")); // value(methodCall, "roomID"));
// } // }
} //}

@ -18,7 +18,7 @@ public class UserManager extends BaseManager {
Open_im_sdk.getUsersInfo( Open_im_sdk.getUsersInfo(
new OnBaseListener(result, methodCall), new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), value(methodCall, "operationID"),
jsonValue(methodCall, "uidList")); jsonValue(methodCall, "userIDList"));
} }
public void setSelfInfo(MethodCall methodCall, MethodChannel.Result result) { public void setSelfInfo(MethodCall methodCall, MethodChannel.Result result) {

@ -1,33 +1,33 @@
package io.openim.flutter_openim_sdk.manager; //package io.openim.flutter_openim_sdk.manager;
//
import io.flutter.plugin.common.MethodCall; //import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel; //import io.flutter.plugin.common.MethodChannel;
import io.openim.flutter_openim_sdk.listener.OnBaseListener; //import io.openim.flutter_openim_sdk.listener.OnBaseListener;
import io.openim.flutter_openim_sdk.listener.OnWorkMomentsListener; //import io.openim.flutter_openim_sdk.listener.OnWorkMomentsListener;
import open_im_sdk.Open_im_sdk; //import open_im_sdk.Open_im_sdk;
//
public class WorkMomentsManager extends BaseManager { //public class WorkMomentsManager extends BaseManager {
//
public void setWorkMomentsListener(MethodCall methodCall, MethodChannel.Result result) { // public void setWorkMomentsListener(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.setWorkMomentsListener(new OnWorkMomentsListener()); // Open_im_sdk.setWorkMomentsListener(new OnWorkMomentsListener());
//
result.success(null); // result.success(null);
} // }
//
public void getWorkMomentsUnReadCount(MethodCall methodCall, MethodChannel.Result result) { // public void getWorkMomentsUnReadCount(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getWorkMomentsUnReadCount(new OnBaseListener(result, methodCall), // Open_im_sdk.getWorkMomentsUnReadCount(new OnBaseListener(result, methodCall),
value(methodCall, "operationID")); // value(methodCall, "operationID"));
} // }
//
public void getWorkMomentsNotification(MethodCall methodCall, MethodChannel.Result result) { // public void getWorkMomentsNotification(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getWorkMomentsNotification(new OnBaseListener(result, methodCall), // Open_im_sdk.getWorkMomentsNotification(new OnBaseListener(result, methodCall),
value(methodCall, "operationID"), // value(methodCall, "operationID"),
int2long(methodCall, "offset"), // int2long(methodCall, "offset"),
int2long(methodCall, "count")); // int2long(methodCall, "count"));
} // }
//
public void clearWorkMomentsNotification(MethodCall methodCall, MethodChannel.Result result) { // public void clearWorkMomentsNotification(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.clearWorkMomentsNotification(new OnBaseListener(result, methodCall), // Open_im_sdk.clearWorkMomentsNotification(new OnBaseListener(result, methodCall),
value(methodCall, "operationID")); // value(methodCall, "operationID"));
} // }
} //}

@ -68,7 +68,7 @@ packages:
path: ".." path: ".."
relative: true relative: true
source: path source: path
version: "2.3.5+3" version: "2.3.5+4"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter

@ -10,22 +10,22 @@ public class ConversationManager: BaseServiceManager {
self["getConversationListSplit"] = getConversationListSplit self["getConversationListSplit"] = getConversationListSplit
self["getOneConversation"] = getOneConversation self["getOneConversation"] = getOneConversation
self["getMultipleConversation"] = getMultipleConversation self["getMultipleConversation"] = getMultipleConversation
self["deleteConversation"] = deleteConversation
self["setConversationDraft"] = setConversationDraft self["setConversationDraft"] = setConversationDraft
self["pinConversation"] = pinConversation self["pinConversation"] = pinConversation
// self["markSingleMessageHasRead"] = markSingleMessageHasRead self["hideConversation"] = hideConversation
self["markGroupMessageHasRead"] = markGroupMessageHasRead self["markConversationMessageAsRead"] = markConversationMessageAsRead
self["getTotalUnreadMsgCount"] = getTotalUnreadMsgCount self["getTotalUnreadMsgCount"] = getTotalUnreadMsgCount
self["getConversationIDBySessionType"] = getConversationIDBySessionType self["getConversationIDBySessionType"] = getConversationIDBySessionType
self["setConversationRecvMessageOpt"] = setConversationRecvMessageOpt self["setConversationRecvMessageOpt"] = setConversationRecvMessageOpt
self["getConversationRecvMessageOpt"] = getConversationRecvMessageOpt self["getConversationRecvMessageOpt"] = getConversationRecvMessageOpt
self["setOneConversationPrivateChat"] = setOneConversationPrivateChat self["setConversationPrivateChat"] = setConversationPrivateChat
self["deleteConversationFromLocalAndSvr"] = deleteConversationFromLocalAndSvr self["clearConversationAndDeleteAllMsg"] = clearConversationAndDeleteAllMsg
self["deleteConversationAndDeleteAllMsg"] = deleteConversationAndDeleteAllMsg
self["deleteAllConversationFromLocal"] = deleteAllConversationFromLocal self["deleteAllConversationFromLocal"] = deleteAllConversationFromLocal
self["resetConversationGroupAtType"] = resetConversationGroupAtType self["resetConversationGroupAtType"] = resetConversationGroupAtType
self["getAtAllTag"] = getAtAllTag self["getAtAllTag"] = getAtAllTag
self["setGlobalRecvMessageOpt"] = setGlobalRecvMessageOpt self["setGlobalRecvMessageOpt"] = setGlobalRecvMessageOpt
self["setOneConversationBurnDuration"] = setOneConversationBurnDuration self["setConversationBurnDuration"] = setConversationBurnDuration
} }
func setConversationListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setConversationListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -42,17 +42,13 @@ public class ConversationManager: BaseServiceManager {
} }
func getOneConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getOneConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetOneConversation(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[int: "sessionType"], methodCall[string: "sourceID"]) Open_im_sdkGetOneConversation(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[int32: "sessionType"], methodCall[string: "sourceID"])
} }
func getMultipleConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getMultipleConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetMultipleConversation(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "conversationIDList"]) Open_im_sdkGetMultipleConversation(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "conversationIDList"])
} }
func deleteConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteConversation(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"])
}
func setConversationDraft(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setConversationDraft(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetConversationDraft(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"], methodCall[string: "draftText"]) Open_im_sdkSetConversationDraft(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"], methodCall[string: "draftText"])
} }
@ -61,12 +57,12 @@ public class ConversationManager: BaseServiceManager {
Open_im_sdkPinConversation(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"], methodCall[bool: "isPinned"]) Open_im_sdkPinConversation(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"], methodCall[bool: "isPinned"])
} }
// func markSingleMessageHasRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func hideConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
// Open_im_sdkMarkSingleMessageHasRead(BaseCallback(result: result), methodCall[string: "userID"]) Open_im_sdkHideConversation(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"])
// } }
func markGroupMessageHasRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func markConversationMessageAsRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkMarkGroupMessageHasRead(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"]) Open_im_sdkMarkConversationMessageAsRead(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"])
} }
func getTotalUnreadMsgCount(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getTotalUnreadMsgCount(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -74,24 +70,28 @@ public class ConversationManager: BaseServiceManager {
} }
func getConversationIDBySessionType(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getConversationIDBySessionType(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
let conversationID = Open_im_sdkGetConversationIDBySessionType(methodCall[string: "sourceID"], methodCall[int: "sessionType"]) let conversationID = Open_im_sdkGetConversationIDBySessionType( methodCall[string: "operationID"],methodCall[string: "sourceID"], methodCall[int: "sessionType"])
callBack(result, conversationID) callBack(result, conversationID)
} }
func setConversationRecvMessageOpt(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setConversationRecvMessageOpt(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetConversationRecvMessageOpt(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "conversationIDList"], methodCall[int: "status"]) Open_im_sdkSetConversationRecvMessageOpt(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "conversationID"], methodCall[int: "status"])
} }
func getConversationRecvMessageOpt(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getConversationRecvMessageOpt(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetConversationRecvMessageOpt(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "conversationIDList"]) Open_im_sdkGetConversationRecvMessageOpt(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "conversationIDList"])
} }
func setOneConversationPrivateChat(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setConversationPrivateChat(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetOneConversationPrivateChat(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"],methodCall[bool: "isPrivate"]) Open_im_sdkSetConversationPrivateChat(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"],methodCall[bool: "isPrivate"])
}
func clearConversationAndDeleteAllMsg(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkClearConversationAndDeleteAllMsg(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"])
} }
func deleteConversationFromLocalAndSvr(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func deleteConversationAndDeleteAllMsg(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteConversationFromLocalAndSvr(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"]) Open_im_sdkDeleteConversationAndDeleteAllMsg(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"])
} }
func deleteAllConversationFromLocal(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func deleteAllConversationFromLocal(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -103,15 +103,15 @@ public class ConversationManager: BaseServiceManager {
} }
func getAtAllTag(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getAtAllTag(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
callBack(result, Open_im_sdkGetAtAllTag()) callBack(result, Open_im_sdkGetAtAllTag(methodCall[string: "operationID"]))
} }
func setGlobalRecvMessageOpt(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setGlobalRecvMessageOpt(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetGlobalRecvMessageOpt(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[int: "status"]) Open_im_sdkSetGlobalRecvMessageOpt(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[int: "status"])
} }
func setOneConversationBurnDuration(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setConversationBurnDuration(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetOneConversationBurnDuration(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"], methodCall[int32: "burnDuration"]) Open_im_sdkSetConversationBurnDuration(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"], methodCall[int: "burnDuration"])
} }
} }

@ -8,8 +8,8 @@ public class FriendshipManager: BaseServiceManager {
self["setFriendListener"] = setFriendListener self["setFriendListener"] = setFriendListener
self["getFriendsInfo"] = getFriendsInfo self["getFriendsInfo"] = getFriendsInfo
self["addFriend"] = addFriend self["addFriend"] = addFriend
self["getRecvFriendApplicationList"] = getRecvFriendApplicationList self["getFriendApplicationListAsRecipient"] = getFriendApplicationListAsRecipient
self["getSendFriendApplicationList"] = getSendFriendApplicationList self["getFriendApplicationListAsApplicant"] = getFriendApplicationListAsApplicant
self["getFriendList"] = getFriendList self["getFriendList"] = getFriendList
self["setFriendRemark"] = setFriendRemark self["setFriendRemark"] = setFriendRemark
self["addBlacklist"] = addBlacklist self["addBlacklist"] = addBlacklist
@ -20,9 +20,6 @@ public class FriendshipManager: BaseServiceManager {
self["acceptFriendApplication"] = acceptFriendApplication self["acceptFriendApplication"] = acceptFriendApplication
self["refuseFriendApplication"] = refuseFriendApplication self["refuseFriendApplication"] = refuseFriendApplication
self["searchFriends"] = searchFriends self["searchFriends"] = searchFriends
// self["forceSyncFriendApplication"] = forceSyncFriendApplication
// self["forceSyncFriend"] = forceSyncFriend
// self["forceSyncBlackList"] = forceSyncBlackList
} }
func setFriendListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setFriendListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -31,19 +28,19 @@ public class FriendshipManager: BaseServiceManager {
} }
func getFriendsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getFriendsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetDesignatedFriendsInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "uidList"]) Open_im_sdkGetSpecifiedFriendsInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDList"])
} }
func addFriend(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func addFriend(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkAddFriend(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString()) Open_im_sdkAddFriend(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
} }
func getRecvFriendApplicationList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getFriendApplicationListAsRecipient(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetRecvFriendApplicationList(BaseCallback(result: result), methodCall[string: "operationID"]) Open_im_sdkGetFriendApplicationListAsRecipient(BaseCallback(result: result), methodCall[string: "operationID"])
} }
func getSendFriendApplicationList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getFriendApplicationListAsApplicant(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetSendFriendApplicationList(BaseCallback(result: result), methodCall[string: "operationID"]) Open_im_sdkGetFriendApplicationListAsApplicant(BaseCallback(result: result), methodCall[string: "operationID"])
} }
func getFriendList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getFriendList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -55,7 +52,7 @@ public class FriendshipManager: BaseServiceManager {
} }
func addBlacklist(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func addBlacklist(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkAddBlack(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "uid"]) Open_im_sdkAddBlack(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "userID"])
} }
func getBlacklist(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getBlacklist(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -63,15 +60,15 @@ public class FriendshipManager: BaseServiceManager {
} }
func removeBlacklist(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func removeBlacklist(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkRemoveBlack(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "uid"]) Open_im_sdkRemoveBlack(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "userID"])
} }
func checkFriend(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func checkFriend(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkCheckFriend(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "uidList"]) Open_im_sdkCheckFriend(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDList"])
} }
func deleteFriend(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func deleteFriend(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteFriend(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "uid"]) Open_im_sdkDeleteFriend(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "userID"])
} }
func acceptFriendApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func acceptFriendApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -85,20 +82,6 @@ public class FriendshipManager: BaseServiceManager {
func searchFriends(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func searchFriends(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSearchFriends(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "searchParam"]) Open_im_sdkSearchFriends(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "searchParam"])
} }
// func forceSyncFriendApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
// Open_im_sdkForceSyncFriendApplication()
// callBack(result)
// }
//
// func forceSyncFriend(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
// Open_im_sdkForceSyncFriend()
// callBack(result)
// }
//
// func forceSyncBlackList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
// Open_im_sdkForceSyncBlackList()
// callBack(result)
// }
} }
public class FriendshipListener: NSObject, Open_im_sdk_callbackOnFriendshipListenerProtocol { public class FriendshipListener: NSObject, Open_im_sdk_callbackOnFriendshipListenerProtocol {
@ -109,11 +92,15 @@ public class FriendshipListener: NSObject, Open_im_sdk_callbackOnFriendshipListe
} }
public func onBlackAdded(_ blackInfo: String?) { public func onBlackAdded(_ blackInfo: String?) {
CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onBlacklistAdded", errCode: nil, errMsg: nil, data: blackInfo) CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onBlackAdded", errCode: nil, errMsg: nil, data: blackInfo)
} }
public func onBlackDeleted(_ blackInfo: String?) { public func onBlackDeleted(_ blackInfo: String?) {
CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onBlacklistDeleted", errCode: nil, errMsg: nil, data: blackInfo) CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onBlackDeleted", errCode: nil, errMsg: nil, data: blackInfo)
}
public func onFriendAdded(_ friendInfo: String?) {
CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onFriendAdded", errCode: nil, errMsg: nil, data: friendInfo)
} }
public func onFriendApplicationAccepted(_ friendApplication: String?) { public func onFriendApplicationAccepted(_ friendApplication: String?) {
@ -132,16 +119,12 @@ public class FriendshipListener: NSObject, Open_im_sdk_callbackOnFriendshipListe
CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onFriendApplicationRejected", errCode: nil, errMsg: nil, data: friendApplication) CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onFriendApplicationRejected", errCode: nil, errMsg: nil, data: friendApplication)
} }
public func onFriendInfoChanged(_ friendInfo: String?) {
CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onFriendInfoChanged", errCode: nil, errMsg: nil, data: friendInfo)
}
public func onFriendAdded(_ friendInfo: String?) {
CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onFriendAdded", errCode: nil, errMsg: nil, data: friendInfo)
}
public func onFriendDeleted(_ friendInfo: String?) { public func onFriendDeleted(_ friendInfo: String?) {
CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onFriendDeleted", errCode: nil, errMsg: nil, data: friendInfo) CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onFriendDeleted", errCode: nil, errMsg: nil, data: friendInfo)
} }
public func onFriendInfoChanged(_ friendInfo: String?) {
CommonUtil.emitEvent(channel: channel, method: "friendListener", type: "onFriendInfoChanged", errCode: nil, errMsg: nil, data: friendInfo)
}
} }

@ -17,8 +17,8 @@ public class GroupManager: BaseServiceManager {
self["joinGroup"] = joinGroup self["joinGroup"] = joinGroup
self["quitGroup"] = quitGroup self["quitGroup"] = quitGroup
self["transferGroupOwner"] = transferGroupOwner self["transferGroupOwner"] = transferGroupOwner
self["getRecvGroupApplicationList"] = getRecvGroupApplicationList self["getGroupApplicationListAsRecipient"] = getGroupApplicationListAsRecipient
self["getSendGroupApplicationList"] = getSendGroupApplicationList self["getGroupApplicationListAsApplicant"] = getGroupApplicationListAsApplicant
self["acceptGroupApplication"] = acceptGroupApplication self["acceptGroupApplication"] = acceptGroupApplication
self["refuseGroupApplication"] = refuseGroupApplication self["refuseGroupApplication"] = refuseGroupApplication
self["dismissGroup"] = dismissGroup self["dismissGroup"] = dismissGroup
@ -34,6 +34,7 @@ public class GroupManager: BaseServiceManager {
self["getGroupMemberOwnerAndAdmin"] = getGroupMemberOwnerAndAdmin self["getGroupMemberOwnerAndAdmin"] = getGroupMemberOwnerAndAdmin
self["searchGroupMembers"] = searchGroupMembers self["searchGroupMembers"] = searchGroupMembers
self["setGroupMemberInfo"] = setGroupMemberInfo self["setGroupMemberInfo"] = setGroupMemberInfo
self["isJoinGroup"] = isJoinGroup
} }
func setGroupListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setGroupListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -42,21 +43,21 @@ public class GroupManager: BaseServiceManager {
} }
func inviteUserToGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func inviteUserToGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkInviteUserToGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[string: "reason"], Open_im_sdkInviteUserToGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string: "reason"],
methodCall[jsonString: "uidList"]) methodCall[jsonString: "userIDList"])
} }
func kickGroupMember(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func kickGroupMember(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkKickGroupMember(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[string: "reason"], Open_im_sdkKickGroupMember(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string: "reason"],
methodCall[jsonString: "uidList"]) methodCall[jsonString: "userIDList"])
} }
func getGroupMembersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getGroupMembersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupMembersInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[jsonString: "uidList"]) Open_im_sdkGetSpecifiedGroupMembersInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[jsonString: "userIDList"])
} }
func getGroupMemberList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getGroupMemberList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupMemberList(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[int32: "filter"], Open_im_sdkGetGroupMemberList(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[int32: "filter"],
methodCall[int32: "offset"], methodCall[int32: "count"]) methodCall[int32: "offset"], methodCall[int32: "count"])
} }
@ -65,59 +66,59 @@ public class GroupManager: BaseServiceManager {
} }
func createGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func createGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkCreateGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "gInfo"], methodCall[jsonString: "memberList"]) Open_im_sdkCreateGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
} }
func setGroupInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setGroupInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetGroupInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[jsonString: "gInfo"]) Open_im_sdkSetGroupInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "groupInfo"])
} }
func getGroupsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getGroupsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupsInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "gidList"]) Open_im_sdkGetSpecifiedGroupsInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "groupIDList"])
} }
func joinGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func joinGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkJoinGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[string: "reason"], methodCall[int32: "joinSource"]) Open_im_sdkJoinGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string: "reason"], methodCall[int32: "joinSource"])
} }
func quitGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func quitGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkQuitGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"]) Open_im_sdkQuitGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"])
} }
func transferGroupOwner(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func transferGroupOwner(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkTransferGroupOwner(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[string: "uid"]) Open_im_sdkTransferGroupOwner(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string: "userID"])
} }
func getRecvGroupApplicationList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getGroupApplicationListAsRecipient(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetRecvGroupApplicationList(BaseCallback(result: result), methodCall[string: "operationID"]) Open_im_sdkGetGroupApplicationListAsRecipient(BaseCallback(result: result), methodCall[string: "operationID"])
} }
func getSendGroupApplicationList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getGroupApplicationListAsApplicant(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetSendGroupApplicationList(BaseCallback(result: result), methodCall[string: "operationID"]) Open_im_sdkGetGroupApplicationListAsApplicant(BaseCallback(result: result), methodCall[string: "operationID"])
} }
func acceptGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func acceptGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkAcceptGroupApplication(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[string: "uid"], methodCall[string: "handleMsg"]) Open_im_sdkAcceptGroupApplication(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string: "userID"], methodCall[string: "handleMsg"])
} }
func refuseGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func refuseGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkRefuseGroupApplication(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[string: "uid"], methodCall[string: "handleMsg"]) Open_im_sdkRefuseGroupApplication(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string: "userID"], methodCall[string: "handleMsg"])
} }
func dismissGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func dismissGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDismissGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"]) Open_im_sdkDismissGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"])
} }
func changeGroupMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func changeGroupMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkChangeGroupMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[bool: "mute"]) Open_im_sdkChangeGroupMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[bool: "mute"])
} }
func changeGroupMemberMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func changeGroupMemberMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkChangeGroupMemberMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[string:"uid"],methodCall[int:"seconds"]) Open_im_sdkChangeGroupMemberMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string:"userID"],methodCall[int:"seconds"])
} }
func setGroupMemberNickname(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setGroupMemberNickname(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetGroupMemberNickname(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[string:"uid"],methodCall[string:"groupNickname"]) Open_im_sdkSetGroupMemberNickname(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string:"userID"],methodCall[string:"groupNickname"])
} }
func searchGroups(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func searchGroups(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -155,16 +156,20 @@ public class GroupManager: BaseServiceManager {
func setGroupMemberInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setGroupMemberInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetGroupMemberInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "info"]) Open_im_sdkSetGroupMemberInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "info"])
} }
func isJoinGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkIsJoinGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"])
}
} }
public class GroupListener: NSObject, Open_im_sdk_callbackOnGroupListenerProtocol { public class GroupListener: NSObject, Open_im_sdk_callbackOnGroupListenerProtocol {
private let channel:FlutterMethodChannel private let channel:FlutterMethodChannel
init(channel:FlutterMethodChannel) { init(channel:FlutterMethodChannel) {
self.channel = channel self.channel = channel
} }
public func onGroupApplicationAccepted(_ s: String?) { public func onGroupApplicationAccepted(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupApplicationAccepted", errCode: nil, errMsg: nil, data: s) CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupApplicationAccepted", errCode: nil, errMsg: nil, data: s)
} }
@ -181,6 +186,10 @@ public class GroupListener: NSObject, Open_im_sdk_callbackOnGroupListenerProtoco
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupApplicationRejected", errCode: nil, errMsg: nil, data: s) CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupApplicationRejected", errCode: nil, errMsg: nil, data: s)
} }
public func onGroupDismissed(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupDismissed", errCode: nil, errMsg: nil, data: s)
}
public func onGroupInfoChanged(_ s: String?) { public func onGroupInfoChanged(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupInfoChanged", errCode: nil, errMsg: nil, data: s) CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupInfoChanged", errCode: nil, errMsg: nil, data: s)
} }

@ -9,11 +9,10 @@ public class IMMananger: BaseServiceManager {
self["login"] = login self["login"] = login
self["logout"] = logout self["logout"] = logout
self["getLoginStatus"] = getLoginStatus self["getLoginStatus"] = getLoginStatus
self["wakeUp"] = wakeUp self["putFile"] = putFile
self["uploadImage"] = uploadImage
self["updateFcmToken"] = updateFcmToken self["updateFcmToken"] = updateFcmToken
self["setAppBackgroundStatus"] = setAppBackgroundStatus self["setAppBackgroundStatus"] = setAppBackgroundStatus
self["networkChanged"] = networkChanged self["networkStatusChanged"] = networkStatusChanged
} }
func initSDK(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func initSDK(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -21,7 +20,7 @@ public class IMMananger: BaseServiceManager {
} }
func login(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { func login(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkLogin(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "uid"], methodCall[string: "token"]) Open_im_sdkLogin(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "userID"], methodCall[string: "token"])
} }
func logout(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { func logout(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
@ -32,12 +31,8 @@ public class IMMananger: BaseServiceManager {
callBack(result, Open_im_sdkGetLoginStatus()) callBack(result, Open_im_sdkGetLoginStatus())
} }
func wakeUp(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { func putFile(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkWakeUp(BaseCallback(result: result), methodCall[string: "operationID"]) Open_im_sdkPutFile(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString(),PutFileListener(channel: self.channel,putID: methodCall[string: "putID"]))
}
func uploadImage(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkUploadImage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "path"], methodCall[string: "token"], methodCall[string: "obj"])
} }
func updateFcmToken(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { func updateFcmToken(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
@ -48,8 +43,8 @@ public class IMMananger: BaseServiceManager {
Open_im_sdkSetAppBackgroundStatus(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[bool: "isBackground"]) Open_im_sdkSetAppBackgroundStatus(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[bool: "isBackground"])
} }
func networkChanged(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { func networkStatusChanged(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkNetworkChanged(BaseCallback(result: result), methodCall[string: "operationID"]) Open_im_sdkNetworkStatusChanged(BaseCallback(result: result), methodCall[string: "operationID"])
} }
} }
@ -80,3 +75,61 @@ public class ConnListener: NSObject, Open_im_sdk_callbackOnConnListenerProtocol
CommonUtil.emitEvent(channel: self.channel, method: "connectListener", type: "onUserTokenExpired", errCode: nil, errMsg: nil, data: nil) CommonUtil.emitEvent(channel: self.channel, method: "connectListener", type: "onUserTokenExpired", errCode: nil, errMsg: nil, data: nil)
} }
} }
public class PutFileListener: NSObject, Open_im_sdk_callbackPutFileCallbackProtocol {
private let channel:FlutterMethodChannel
private let putID: String
init(channel:FlutterMethodChannel, putID: String) {
self.channel = channel
self.putID = putID
}
public func hashComplete(_ hash: String?, total: Int64) {
var values: [String: Any] = [:]
values["putID"] = putID
values["hash"] = hash
values["total"] = total
CommonUtil.emitEvent(channel: channel, method: "putFileListener", type: "hashComplete", errCode: nil, errMsg: nil, data: values)
}
public func hashProgress(_ current: Int64, total: Int64) {
var values: [String: Any] = [:]
values["putID"] = putID
values["current"] = current
values["total"] = total
CommonUtil.emitEvent(channel: channel, method: "putFileListener", type: "hashProgress", errCode: nil, errMsg: nil, data: values)
}
public func open(_ size: Int64) {
var values: [String: Any] = [:]
values["putID"] = putID
values["size"] = size
CommonUtil.emitEvent(channel: channel, method: "putFileListener", type: "open", errCode: nil, errMsg: nil, data: values)
}
public func putComplete(_ total: Int64, putType: Int) {
var values: [String: Any] = [:]
values["putID"] = putID
values["putType"] = putType
values["total"] = total
CommonUtil.emitEvent(channel: channel, method: "putFileListener", type: "putComplete", errCode: nil, errMsg: nil, data: values)
}
public func putProgress(_ save: Int64, current: Int64, total: Int64) {
var values: [String: Any] = [:]
values["putID"] = putID
values["save"] = save
values["current"] = current
values["total"] = total
CommonUtil.emitEvent(channel: channel, method: "putFileListener", type: "putProgress", errCode: nil, errMsg: nil, data: values)
}
public func putStart(_ current: Int64, total: Int64) {
var values: [String: Any] = [:]
values["putID"] = putID
values["current"] = current
values["total"] = total
CommonUtil.emitEvent(channel: channel, method: "putFileListener", type: "putStart", errCode: nil, errMsg: nil, data: values)
}
}

@ -9,13 +9,14 @@ public class MessageManager: BaseServiceManager {
super.registerHandlers() super.registerHandlers()
self["setAdvancedMsgListener"] = setAdvancedMsgListener self["setAdvancedMsgListener"] = setAdvancedMsgListener
self["sendMessage"] = sendMessage self["sendMessage"] = sendMessage
self["getHistoryMessageList"] = getHistoryMessageList
self["revokeMessage"] = revokeMessage self["revokeMessage"] = revokeMessage
self["deleteMessageFromLocalStorage"] = deleteMessageFromLocalStorage self["deleteMessageFromLocalStorage"] = deleteMessageFromLocalStorage
self["deleteMessageFromLocalAndSvr"] = deleteMessageFromLocalAndSvr
self["deleteAllMsgFromLocal"] = deleteAllMsgFromLocal
self["deleteAllMsgFromLocalAndSvr"] = deleteAllMsgFromLocalAndSvr
self["insertSingleMessageToLocalStorage"] = insertSingleMessageToLocalStorage self["insertSingleMessageToLocalStorage"] = insertSingleMessageToLocalStorage
self["insertGroupMessageToLocalStorage"] = insertGroupMessageToLocalStorage self["insertGroupMessageToLocalStorage"] = insertGroupMessageToLocalStorage
self["markC2CMessageAsRead"] = markC2CMessageAsRead self["markMessagesAsReadByMsgID"] = markMessagesAsReadByMsgID
self["markGroupMessageAsRead"] = markGroupMessageAsRead
self["typingStatusUpdate"] = typingStatusUpdate self["typingStatusUpdate"] = typingStatusUpdate
self["createTextMessage"] = createTextMessage self["createTextMessage"] = createTextMessage
self["createTextAtMessage"] = createTextAtMessage self["createTextAtMessage"] = createTextAtMessage
@ -34,21 +35,17 @@ public class MessageManager: BaseServiceManager {
self["createQuoteMessage"] = createQuoteMessage self["createQuoteMessage"] = createQuoteMessage
self["createCardMessage"] = createCardMessage self["createCardMessage"] = createCardMessage
self["createFaceMessage"] = createFaceMessage self["createFaceMessage"] = createFaceMessage
self["clearC2CHistoryMessage"] = clearC2CHistoryMessage self["createAdvancedTextMessage"] = createAdvancedTextMessage
self["clearGroupHistoryMessage"] = clearGroupHistoryMessage self["createAdvancedQuoteMessage"] = createAdvancedQuoteMessage
self["searchLocalMessages"] = searchLocalMessages self["searchLocalMessages"] = searchLocalMessages
self["deleteMessageFromLocalAndSvr"] = deleteMessageFromLocalAndSvr self["clearConversationAndDeleteAllMsg"] = clearConversationAndDeleteAllMsg
self["deleteAllMsgFromLocal"] = deleteAllMsgFromLocal
self["deleteAllMsgFromLocalAndSvr"] = deleteAllMsgFromLocalAndSvr
self["markMessageAsReadByConID"] = markMessageAsReadByConID
self["clearC2CHistoryMessageFromLocalAndSvr"] = clearC2CHistoryMessageFromLocalAndSvr
self["clearGroupHistoryMessageFromLocalAndSvr"] = clearGroupHistoryMessageFromLocalAndSvr
self["getHistoryMessageListReverse"] = getHistoryMessageListReverse
self["newRevokeMessage"] = newRevokeMessage
self["getAdvancedHistoryMessageList"] = getAdvancedHistoryMessageList self["getAdvancedHistoryMessageList"] = getAdvancedHistoryMessageList
self["getAdvancedHistoryMessageListReverse"] = getAdvancedHistoryMessageListReverse
self["findMessageList"] = findMessageList self["findMessageList"] = findMessageList
self["createAdvancedTextMessage"] = createAdvancedTextMessage
self["createAdvancedQuoteMessage"] = createAdvancedQuoteMessage
self["sendMessageNotOss"] = sendMessageNotOss self["sendMessageNotOss"] = sendMessageNotOss
self["createImageMessageByURL"] = createImageMessageByURL self["createImageMessageByURL"] = createImageMessageByURL
self["createSoundMessageByURL"] = createSoundMessageByURL self["createSoundMessageByURL"] = createSoundMessageByURL
@ -56,11 +53,7 @@ public class MessageManager: BaseServiceManager {
self["createFileMessageByURL"] = createFileMessageByURL self["createFileMessageByURL"] = createFileMessageByURL
self["setCustomBusinessListener"] = setCustomBusinessListener self["setCustomBusinessListener"] = setCustomBusinessListener
self["setMessageKvInfoListener"] = setMessageKvInfoListener self["setMessageKvInfoListener"] = setMessageKvInfoListener
self["setMessageReactionExtensions"] = setMessageReactionExtensions
self["deleteMessageReactionExtensions"] = deleteMessageReactionExtensions
self["getMessageListReactionExtensions"] = getMessageListReactionExtensions
self["addMessageReactionExtensions"] = addMessageReactionExtensions
self["getMessageListSomeReactionExtensions"] = getMessageListSomeReactionExtensions
} }
func setAdvancedMsgListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func setAdvancedMsgListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -76,18 +69,25 @@ public class MessageManager: BaseServiceManager {
methodCall[string: "groupID"], methodCall[jsonString: "offlinePushInfo"]) methodCall[string: "groupID"], methodCall[jsonString: "offlinePushInfo"])
} }
func getHistoryMessageList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetHistoryMessageList(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
}
func revokeMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func revokeMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkRevokeMessage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString()) Open_im_sdkRevokeMessage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"],methodCall[string: "clientMsgID"])
} }
func deleteMessageFromLocalStorage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func deleteMessageFromLocalStorage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteMessageFromLocalStorage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString()) Open_im_sdkDeleteMessageFromLocalStorage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"],methodCall[string: "clientMsgID"])
}
func deleteMessageFromLocalAndSvr(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteMessage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"],methodCall[string: "clientMsgID"])
}
func deleteAllMsgFromLocal(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteAllMsgFromLocal(BaseCallback(result: result), methodCall[string: "operationID"])
} }
func deleteAllMsgFromLocalAndSvr(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteAllMsgFromLocalAndSvr(BaseCallback(result: result), methodCall[string: "operationID"])
}
func insertSingleMessageToLocalStorage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func insertSingleMessageToLocalStorage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkInsertSingleMessageToLocalStorage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "message"], Open_im_sdkInsertSingleMessageToLocalStorage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "message"],
@ -99,12 +99,8 @@ public class MessageManager: BaseServiceManager {
methodCall[string: "groupID"], methodCall[string: "senderID"]) methodCall[string: "groupID"], methodCall[string: "senderID"])
} }
func markC2CMessageAsRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func markMessagesAsReadByMsgID(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkMarkC2CMessageAsRead(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "userID"], methodCall[jsonString: "messageIDList"]) Open_im_sdkMarkMessagesAsReadByMsgID(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"], methodCall[jsonString: "messageIDList"])
}
func markGroupMessageAsRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkMarkGroupMessageAsRead(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[jsonString: "messageIDList"])
} }
func typingStatusUpdate(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func typingStatusUpdate(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -201,54 +197,23 @@ public class MessageManager: BaseServiceManager {
callBack(result, prama) callBack(result, prama)
} }
func clearC2CHistoryMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkClearC2CHistoryMessage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "userID"])
}
func clearGroupHistoryMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkClearGroupHistoryMessage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"])
}
func searchLocalMessages(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func searchLocalMessages(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSearchLocalMessages(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "filter"]) Open_im_sdkSearchLocalMessages(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "filter"])
} }
func deleteMessageFromLocalAndSvr(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { func clearConversationAndDeleteAllMsg(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteMessageFromLocalAndSvr(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString()) Open_im_sdkClearConversationAndDeleteAllMsg(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"])
}
func deleteAllMsgFromLocal(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkDeleteAllMsgFromLocal(BaseCallback(result: result), methodCall[string: "operationID"])
}
func deleteAllMsgFromLocalAndSvr(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkDeleteAllMsgFromLocalAndSvr(BaseCallback(result: result), methodCall[string: "operationID"])
}
func markMessageAsReadByConID(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkMarkMessageAsReadByConID(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"], methodCall[jsonString: "messageIDList"])
}
func clearC2CHistoryMessageFromLocalAndSvr(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkClearC2CHistoryMessageFromLocalAndSvr(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "userID"])
}
func clearGroupHistoryMessageFromLocalAndSvr(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkClearGroupHistoryMessageFromLocalAndSvr(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"])
}
func getHistoryMessageListReverse(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetHistoryMessageListReverse(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
}
func newRevokeMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkNewRevokeMessage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
} }
func getAdvancedHistoryMessageList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func getAdvancedHistoryMessageList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetAdvancedHistoryMessageList(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString()) Open_im_sdkGetAdvancedHistoryMessageList(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
} }
func getAdvancedHistoryMessageListReverse(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetAdvancedHistoryMessageListReverse(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
}
func findMessageList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ func findMessageList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkFindMessageList(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "searchParams"]) Open_im_sdkFindMessageList(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "searchParams"])
} }
@ -284,26 +249,6 @@ public class MessageManager: BaseServiceManager {
Open_im_sdkSetMessageKvInfoListener(MessageKvInfoListener(channel: channel)) Open_im_sdkSetMessageKvInfoListener(MessageKvInfoListener(channel: channel))
callBack(result) callBack(result)
} }
func setMessageReactionExtensions(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetMessageReactionExtensions(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "message"], methodCall[jsonString: "list"])
}
func deleteMessageReactionExtensions(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteMessageReactionExtensions(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "message"], methodCall[jsonString: "list"])
}
func getMessageListReactionExtensions(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetMessageListReactionExtensions(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "messageList"])
}
func addMessageReactionExtensions(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkAddMessageReactionExtensions(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "message"], methodCall[jsonString: "list"])
}
func getMessageListSomeReactionExtensions(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetMessageListSomeReactionExtensions(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "messageList"], methodCall[jsonString: "list"])
}
} }
public class SendMsgProgressListener: NSObject, Open_im_sdk_callbackSendMsgCallBackProtocol { public class SendMsgProgressListener: NSObject, Open_im_sdk_callbackSendMsgCallBackProtocol {
@ -336,7 +281,6 @@ public class SendMsgProgressListener: NSObject, Open_im_sdk_callbackSendMsgCallB
} }
public class AdvancedMsgListener: NSObject, Open_im_sdk_callbackOnAdvancedMsgListenerProtocol { public class AdvancedMsgListener: NSObject, Open_im_sdk_callbackOnAdvancedMsgListenerProtocol {
private let channel: FlutterMethodChannel private let channel: FlutterMethodChannel
private let id: String private let id: String
@ -345,46 +289,47 @@ public class AdvancedMsgListener: NSObject, Open_im_sdk_callbackOnAdvancedMsgLis
self.id = id self.id = id
} }
public func onRecvC2CReadReceipt(_ msgReceiptList: String?) { public func onMsgDeleted(_ message: String?) {
var values: [String: Any] = [:] var values: [String: Any] = [:]
values["id"] = id values["id"] = id
values["c2cMessageReadReceipt"] = msgReceiptList values["message"] = message
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvC2CReadReceipt", errCode: nil, errMsg: nil, data: values) CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onMsgDeleted", errCode: nil, errMsg: nil, data: values);<#code#>
} }
public func onRecvGroupReadReceipt(_ groupMsgReceiptList: String?) { public func onNewRecvMessageRevoked(_ messageRevoked: String?) {
var values: [String: Any] = [:] var values: [String: Any] = [:]
values["id"] = id values["id"] = id
values["groupMessageReadReceipt"] = groupMsgReceiptList values["messageRevoked"] = messageRevoked
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvGroupReadReceipt", errCode: nil, errMsg: nil, data: values) CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onNewRecvMessageRevoked", errCode: nil, errMsg: nil, data: values)
} }
public func onRecvMessageRevoked(_ msgId: String?) { public func onRecvC2CReadReceipt(_ msgReceiptList: String?) {
var values: [String: Any] = [:] var values: [String: Any] = [:]
values["id"] = id values["id"] = id
values["revokedMessage"] = msgId values["msgReceiptList"] = msgReceiptList
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvMessageRevoked", errCode: nil, errMsg: nil, data: values) CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvC2CReadReceipt", errCode: nil, errMsg: nil, data: values)
} }
public func onRecvNewMessage(_ message: String?) { public func onRecvGroupReadReceipt(_ groupMsgReceiptList: String?) {
var values: [String: Any] = [:] var values: [String: Any] = [:]
values["id"] = id values["id"] = id
values["newMessage"] = message values["groupMsgReceiptList"] = groupMsgReceiptList
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvNewMessage", errCode: nil, errMsg: nil, data: values) CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvGroupReadReceipt", errCode: nil, errMsg: nil, data: values)
} }
public func onNewRecvMessageRevoked(_ messageRevoked: String?) { public func onRecvMessageExtensionsAdded(_ msgID: String?, reactionExtensionList: String?) {
var values: [String: Any] = [:] var values: [String: Any] = [:]
values["id"] = id values["id"] = id
values["revokedMessageV2"] = messageRevoked values["msgID"] = msgID
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onNewRecvMessageRevoked", errCode: nil, errMsg: nil, data: values) values["reactionExtensionList"] = reactionExtensionList
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvMessageExtensionsAdded", errCode: nil, errMsg: nil, data: values)
} }
public func onRecvMessageExtensionsChanged(_ msgID: String?, reactionExtensionList: String?) { public func onRecvMessageExtensionsChanged(_ msgID: String?, reactionExtensionList: String?) {
var values: [String: Any] = [:] var values: [String: Any] = [:]
values["id"] = id values["id"] = id
values["msgID"] = msgID values["msgID"] = msgID
values["list"] = reactionExtensionList values["reactionExtensionList"] = reactionExtensionList
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvMessageExtensionsChanged", errCode: nil, errMsg: nil, data: values) CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvMessageExtensionsChanged", errCode: nil, errMsg: nil, data: values)
} }
@ -392,18 +337,25 @@ public class AdvancedMsgListener: NSObject, Open_im_sdk_callbackOnAdvancedMsgLis
var values: [String: Any] = [:] var values: [String: Any] = [:]
values["id"] = id values["id"] = id
values["msgID"] = msgID values["msgID"] = msgID
values["list"] = reactionExtensionKeyList values["reactionExtensionKeyList"] = reactionExtensionKeyList
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvMessageExtensionsDeleted", errCode: nil, errMsg: nil, data: values) CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvMessageExtensionsDeleted", errCode: nil, errMsg: nil, data: values)
} }
public func onRecvMessageExtensionsAdded(_ msgID: String?, reactionExtensionList: String?) { public func onRecvNewMessage(_ message: String?) {
var values: [String: Any] = [:] var values: [String: Any] = [:]
values["id"] = id values["id"] = id
values["msgID"] = msgID values["message"] = message
values["list"] = reactionExtensionList CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvNewMessage", errCode: nil, errMsg: nil, data: values)
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvMessageExtensionsAdded", errCode: nil, errMsg: nil, data: values)
} }
public func onRecvOfflineNewMessages(_ messageList: String?) {
var values: [String: Any] = [:]
values["id"] = id
values["messageList"] = messageList
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvOfflineNewMessages", errCode: nil, errMsg: nil, data: values);<#code#>
}
} }
public class CustomBusinessListener: NSObject, Open_im_sdk_callbackOnCustomBusinessListenerProtocol { public class CustomBusinessListener: NSObject, Open_im_sdk_callbackOnCustomBusinessListenerProtocol {

@ -1,59 +1,59 @@
import Foundation //import Foundation
import OpenIMCore //import OpenIMCore
//
public class OrganizationManager: BaseServiceManager { //public class OrganizationManager: BaseServiceManager {
//
public override func registerHandlers() { // public override func registerHandlers() {
super.registerHandlers() // super.registerHandlers()
self["setOrganizationListener"] = setOrganizationListener // self["setOrganizationListener"] = setOrganizationListener
self["getSubDepartment"] = getSubDepartment // self["getSubDepartment"] = getSubDepartment
self["getDepartmentMember"] = getDepartmentMember // self["getDepartmentMember"] = getDepartmentMember
self["getUserInDepartment"] = getUserInDepartment // self["getUserInDepartment"] = getUserInDepartment
self["getDepartmentMemberAndSubDepartment"] = getDepartmentMemberAndSubDepartment // self["getDepartmentMemberAndSubDepartment"] = getDepartmentMemberAndSubDepartment
self["getDepartmentInfo"] = getDepartmentInfo // self["getDepartmentInfo"] = getDepartmentInfo
self["searchOrganization"] = searchOrganization // self["searchOrganization"] = searchOrganization
} // }
//
func setOrganizationListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func setOrganizationListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetOrganizationListener(OrganizationListener(channel: channel)) // Open_im_sdkSetOrganizationListener(OrganizationListener(channel: channel))
callBack(result) // callBack(result)
} // }
//
func getSubDepartment(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { // func getSubDepartment(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkGetSubDepartment(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "departmentID"], methodCall[int: "offset"], methodCall[int: "count"]) // Open_im_sdkGetSubDepartment(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "departmentID"], methodCall[int: "offset"], methodCall[int: "count"])
} // }
//
func getDepartmentMember(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { // func getDepartmentMember(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkGetDepartmentMember(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "departmentID"], methodCall[int: "offset"], methodCall[int: "count"]) // Open_im_sdkGetDepartmentMember(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "departmentID"], methodCall[int: "offset"], methodCall[int: "count"])
} // }
//
func getUserInDepartment(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { // func getUserInDepartment(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkGetUserInDepartment(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "userID"]) // Open_im_sdkGetUserInDepartment(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "userID"])
} // }
//
func getDepartmentMemberAndSubDepartment(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { // func getDepartmentMemberAndSubDepartment(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkGetDepartmentMemberAndSubDepartment(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "departmentID"]) // Open_im_sdkGetDepartmentMemberAndSubDepartment(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "departmentID"])
} // }
//
func getDepartmentInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { // func getDepartmentInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkGetDepartmentInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "departmentID"]) // Open_im_sdkGetDepartmentInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "departmentID"])
} // }
//
func searchOrganization(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { // func searchOrganization(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkSearchOrganization(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "searchParam"], methodCall[int: "offset"], methodCall[int: "count"]) // Open_im_sdkSearchOrganization(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "searchParam"], methodCall[int: "offset"], methodCall[int: "count"])
} // }
} //}
//
public class OrganizationListener: NSObject, Open_im_sdk_callbackOnOrganizationListenerProtocol { //public class OrganizationListener: NSObject, Open_im_sdk_callbackOnOrganizationListenerProtocol {
//
private let channel:FlutterMethodChannel // private let channel:FlutterMethodChannel
//
init(channel:FlutterMethodChannel) { // init(channel:FlutterMethodChannel) {
self.channel = channel // self.channel = channel
} // }
//
public func onOrganizationUpdated() { // public func onOrganizationUpdated() {
CommonUtil.emitEvent(channel: self.channel, method: "organizationListener", type: "onOrganizationUpdated", errCode: nil, errMsg: nil, data: nil) // CommonUtil.emitEvent(channel: self.channel, method: "organizationListener", type: "onOrganizationUpdated", errCode: nil, errMsg: nil, data: nil)
} // }
//
} //}

@ -1,148 +1,148 @@
import Foundation //import Foundation
import OpenIMCore //import OpenIMCore
//
public class SignalingManager: BaseServiceManager { //public class SignalingManager: BaseServiceManager {
//
public override func registerHandlers() { // public override func registerHandlers() {
super.registerHandlers() // super.registerHandlers()
self["setSignalingListener"] = setSignalingListener // self["setSignalingListener"] = setSignalingListener
self["signalingInvite"] = signalingInvite // self["signalingInvite"] = signalingInvite
self["signalingInviteInGroup"] = signalingInviteInGroup // self["signalingInviteInGroup"] = signalingInviteInGroup
self["signalingAccept"] = signalingAccept // self["signalingAccept"] = signalingAccept
self["signalingReject"] = signalingReject // self["signalingReject"] = signalingReject
self["signalingCancel"] = signalingCancel // self["signalingCancel"] = signalingCancel
self["signalingHungUp"] = signalingHungUp // self["signalingHungUp"] = signalingHungUp
self["signalingGetRoomByGroupID"] = signalingGetRoomByGroupID // self["signalingGetRoomByGroupID"] = signalingGetRoomByGroupID
self["signalingGetTokenByRoomID"] = signalingGetTokenByRoomID // self["signalingGetTokenByRoomID"] = signalingGetTokenByRoomID
self["signalingUpdateMeetingInfo"] = signalingUpdateMeetingInfo // self["signalingUpdateMeetingInfo"] = signalingUpdateMeetingInfo
self["signalingCreateMeeting"] = signalingCreateMeeting // self["signalingCreateMeeting"] = signalingCreateMeeting
self["signalingJoinMeeting"] = signalingJoinMeeting // self["signalingJoinMeeting"] = signalingJoinMeeting
self["signalingOperateStream"] = signalingOperateStream // self["signalingOperateStream"] = signalingOperateStream
self["signalingGetMeetings"] = signalingGetMeetings // self["signalingGetMeetings"] = signalingGetMeetings
self["signalingCloseRoom"] = signalingCloseRoom // self["signalingCloseRoom"] = signalingCloseRoom
self["signalingSendCustomSignal"] = signalingSendCustomSignal // self["signalingSendCustomSignal"] = signalingSendCustomSignal
} // }
//
func setSignalingListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func setSignalingListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetSignalingListener(SignalingListener(channel: channel)) // Open_im_sdkSetSignalingListener(SignalingListener(channel: channel))
callBack(result) // callBack(result)
} // }
//
func signalingInvite(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingInvite(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingInvite(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"]) // Open_im_sdkSignalingInvite(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"])
} // }
//
func signalingInviteInGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingInviteInGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingInviteInGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"]) // Open_im_sdkSignalingInviteInGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"])
} // }
//
func signalingAccept(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingAccept(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingAccept(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"]) // Open_im_sdkSignalingAccept(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"])
} // }
//
func signalingReject(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingReject(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingReject(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"]) // Open_im_sdkSignalingReject(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"])
} // }
//
func signalingCancel(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingCancel(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingCancel(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"]) // Open_im_sdkSignalingCancel(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"])
} // }
//
func signalingHungUp(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingHungUp(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingHungUp(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"]) // Open_im_sdkSignalingHungUp(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"])
} // }
//
func signalingGetRoomByGroupID(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingGetRoomByGroupID(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingGetRoomByGroupID(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"]) // Open_im_sdkSignalingGetRoomByGroupID(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"])
} // }
//
func signalingGetTokenByRoomID(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingGetTokenByRoomID(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingGetTokenByRoomID(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "roomID"]) // Open_im_sdkSignalingGetTokenByRoomID(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "roomID"])
} // }
//
func signalingUpdateMeetingInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingUpdateMeetingInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingUpdateMeetingInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "info"]) // Open_im_sdkSignalingUpdateMeetingInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "info"])
} // }
//
func signalingCreateMeeting(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingCreateMeeting(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingCreateMeeting(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "info"]) // Open_im_sdkSignalingCreateMeeting(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "info"])
} // }
//
func signalingJoinMeeting(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingJoinMeeting(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingJoinMeeting(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "info"]) // Open_im_sdkSignalingJoinMeeting(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "info"])
} // }
//
func signalingOperateStream(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingOperateStream(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingOperateStream(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "streamType"], methodCall[string: "roomID"], methodCall[string: "userID"], methodCall[bool: "mute"], methodCall[bool: "muteAll"]) // Open_im_sdkSignalingOperateStream(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "streamType"], methodCall[string: "roomID"], methodCall[string: "userID"], methodCall[bool: "mute"], methodCall[bool: "muteAll"])
} // }
//
func signalingGetMeetings(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingGetMeetings(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingGetMeetings(BaseCallback(result: result), methodCall[string: "operationID"]) // Open_im_sdkSignalingGetMeetings(BaseCallback(result: result), methodCall[string: "operationID"])
} // }
//
func signalingCloseRoom(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingCloseRoom(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingCloseRoom(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "roomID"]) // Open_im_sdkSignalingCloseRoom(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "roomID"])
} // }
//
func signalingSendCustomSignal(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func signalingSendCustomSignal(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSignalingSendCustomSignal(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "customInfo"], methodCall[string: "roomID"]) // Open_im_sdkSignalingSendCustomSignal(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "customInfo"], methodCall[string: "roomID"])
} // }
} //}
public class SignalingListener: NSObject, Open_im_sdk_callbackOnSignalingListenerProtocol { //public class SignalingListener: NSObject, Open_im_sdk_callbackOnSignalingListenerProtocol {
//
//
private let channel:FlutterMethodChannel // private let channel:FlutterMethodChannel
//
init(channel:FlutterMethodChannel) { // init(channel:FlutterMethodChannel) {
self.channel = channel // self.channel = channel
} // }
//
public func onInvitationCancelled(_ s: String?) { // public func onInvitationCancelled(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInvitationCancelled", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInvitationCancelled", errCode: nil, errMsg: nil, data: s)
} // }
//
public func onInvitationTimeout(_ s: String?) { // public func onInvitationTimeout(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInvitationTimeout", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInvitationTimeout", errCode: nil, errMsg: nil, data: s)
} // }
//
public func onInviteeAccepted(_ s: String?) { // public func onInviteeAccepted(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeAccepted", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeAccepted", errCode: nil, errMsg: nil, data: s)
} // }
//
public func onInviteeAccepted(byOtherDevice s: String?) { // public func onInviteeAccepted(byOtherDevice s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeAcceptedByOtherDevice", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeAcceptedByOtherDevice", errCode: nil, errMsg: nil, data: s)
} // }
//
public func onInviteeRejected(_ s: String?) { // public func onInviteeRejected(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeRejected", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeRejected", errCode: nil, errMsg: nil, data: s)
} // }
//
public func onInviteeRejected(byOtherDevice s: String?) { // public func onInviteeRejected(byOtherDevice s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeRejectedByOtherDevice", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeRejectedByOtherDevice", errCode: nil, errMsg: nil, data: s)
} // }
//
public func onReceiveNewInvitation(_ s: String?) { // public func onReceiveNewInvitation(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onReceiveNewInvitation", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onReceiveNewInvitation", errCode: nil, errMsg: nil, data: s)
} // }
//
public func onHangUp(_ s: String?) { // public func onHangUp(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onHangUp", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onHangUp", errCode: nil, errMsg: nil, data: s)
} // }
//
public func onRoomParticipantConnected(_ s: String?) { // public func onRoomParticipantConnected(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onRoomParticipantConnected", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onRoomParticipantConnected", errCode: nil, errMsg: nil, data: s)
} // }
//
public func onRoomParticipantDisconnected(_ s: String?) { // public func onRoomParticipantDisconnected(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onRoomParticipantDisconnected", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onRoomParticipantDisconnected", errCode: nil, errMsg: nil, data: s)
} // }
//
public func onStreamChange(_ s: String?) { // public func onStreamChange(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onStreamChange", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onStreamChange", errCode: nil, errMsg: nil, data: s)
} // }
//
public func onReceiveCustomSignal(_ s: String?) { // public func onReceiveCustomSignal(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onReceiveCustomSignal", errCode: nil, errMsg: nil, data: s) // CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onReceiveCustomSignal", errCode: nil, errMsg: nil, data: s)
} // }
//
} //}

@ -17,7 +17,7 @@ public class UserManager: BaseServiceManager {
} }
func getUsersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { func getUsersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkGetUsersInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "uidList"]) Open_im_sdkGetUsersInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDList"])
} }
func setSelfInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { func setSelfInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {

@ -1,44 +1,44 @@
import Foundation //import Foundation
import OpenIMCore //import OpenIMCore
//
public class WorkMomentsManager: BaseServiceManager { //public class WorkMomentsManager: BaseServiceManager {
//
public override func registerHandlers() { // public override func registerHandlers() {
super.registerHandlers() // super.registerHandlers()
self["setWorkMomentsListener"] = setWorkMomentsListener // self["setWorkMomentsListener"] = setWorkMomentsListener
self["getWorkMomentsUnReadCount"] = getWorkMomentsUnReadCount // self["getWorkMomentsUnReadCount"] = getWorkMomentsUnReadCount
self["getWorkMomentsNotification"] = getWorkMomentsNotification // self["getWorkMomentsNotification"] = getWorkMomentsNotification
self["clearWorkMomentsNotification"] = clearWorkMomentsNotification // self["clearWorkMomentsNotification"] = clearWorkMomentsNotification
} // }
//
func setWorkMomentsListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ // func setWorkMomentsListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetWorkMomentsListener(WorkMomentsListener(channel: channel)) // Open_im_sdkSetWorkMomentsListener(WorkMomentsListener(channel: channel))
callBack(result) // callBack(result)
} // }
//
func getWorkMomentsUnReadCount(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { // func getWorkMomentsUnReadCount(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkGetWorkMomentsUnReadCount(BaseCallback(result: result), methodCall[string: "operationID"]) // Open_im_sdkGetWorkMomentsUnReadCount(BaseCallback(result: result), methodCall[string: "operationID"])
} // }
//
func getWorkMomentsNotification(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { // func getWorkMomentsNotification(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkGetWorkMomentsNotification(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[int: "offset"], methodCall[int: "count"]) // Open_im_sdkGetWorkMomentsNotification(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[int: "offset"], methodCall[int: "count"])
} // }
//
func clearWorkMomentsNotification(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { // func clearWorkMomentsNotification(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkClearWorkMomentsNotification(BaseCallback(result: result), methodCall[string: "operationID"]) // Open_im_sdkClearWorkMomentsNotification(BaseCallback(result: result), methodCall[string: "operationID"])
} // }
} //}
//
public class WorkMomentsListener: NSObject, Open_im_sdk_callbackOnWorkMomentsListenerProtocol { //public class WorkMomentsListener: NSObject, Open_im_sdk_callbackOnWorkMomentsListenerProtocol {
//
private let channel:FlutterMethodChannel // private let channel:FlutterMethodChannel
//
init(channel:FlutterMethodChannel) { // init(channel:FlutterMethodChannel) {
self.channel = channel // self.channel = channel
} // }
//
public func onRecvNewNotification() { // public func onRecvNewNotification() {
CommonUtil.emitEvent(channel: self.channel, method: "workMomentsListener", type: "OnRecvNewNotification", errCode: nil, errMsg: nil, data: nil) // CommonUtil.emitEvent(channel: self.channel, method: "workMomentsListener", type: "OnRecvNewNotification", errCode: nil, errMsg: nil, data: nil)
} // }
//
} //}

@ -8,9 +8,9 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
let messageManager: MessageManager let messageManager: MessageManager
let groupManager: GroupManager let groupManager: GroupManager
let userManger: UserManager let userManger: UserManager
let signalingManager: SignalingManager // let signalingManager: SignalingManager
let workMomentsManager: WorkMomentsManager // let workMomentsManager: WorkMomentsManager
let organizationManager: OrganizationManager // let organizationManager: OrganizationManager
init(channel: FlutterMethodChannel) { init(channel: FlutterMethodChannel) {
self.imManager = IMMananger(channel: channel) self.imManager = IMMananger(channel: channel)
@ -19,9 +19,9 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
self.messageManager = MessageManager(channel: channel) self.messageManager = MessageManager(channel: channel)
self.groupManager = GroupManager(channel: channel) self.groupManager = GroupManager(channel: channel)
self.userManger = UserManager(channel: channel) self.userManger = UserManager(channel: channel)
self.signalingManager = SignalingManager(channel: channel) // self.signalingManager = SignalingManager(channel: channel)
self.workMomentsManager = WorkMomentsManager(channel: channel) // self.workMomentsManager = WorkMomentsManager(channel: channel)
self.organizationManager = OrganizationManager(channel: channel) // self.organizationManager = OrganizationManager(channel: channel)
} }
public static func register(with registrar: FlutterPluginRegistrar) { public static func register(with registrar: FlutterPluginRegistrar) {
@ -45,12 +45,12 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
groupManager.handleMethod(call: call, result: result) groupManager.handleMethod(call: call, result: result)
case "userManager": case "userManager":
userManger.handleMethod(call: call, result: result) userManger.handleMethod(call: call, result: result)
case "signalingManager": // case "signalingManager":
signalingManager.handleMethod(call: call, result: result) // signalingManager.handleMethod(call: call, result: result)
case "workMomentsManager": // case "workMomentsManager":
workMomentsManager.handleMethod(call: call, result: result) // workMomentsManager.handleMethod(call: call, result: result)
case "organizationManager": // case "organizationManager":
organizationManager.handleMethod(call: call, result: result) // organizationManager.handleMethod(call: call, result: result)
default: default:
print("Handle ManagerName Error: \(managerName) not found") print("Handle ManagerName Error: \(managerName) not found")
} }

@ -17,7 +17,7 @@ A new Flutter project.
s.dependency 'Flutter' s.dependency 'Flutter'
s.platform = :ios, '11.0' s.platform = :ios, '11.0'
s.dependency 'OpenIMSDKCore','2.3.6' s.dependency 'OpenIMSDKCore','3.0.0-beta'
s.static_framework = true s.static_framework = true
# s.vendored_frameworks = 'Framework/*.framework' # s.vendored_frameworks = 'Framework/*.framework'
# Flutter.framework does not contain a i386 slice. # Flutter.framework does not contain a i386 slice.

@ -20,6 +20,7 @@ export 'src/listener/listener_for_service.dart';
export 'src/listener/message_kv_info_listener.dart'; export 'src/listener/message_kv_info_listener.dart';
export 'src/listener/msg_send_progress_listener.dart'; export 'src/listener/msg_send_progress_listener.dart';
export 'src/listener/organization_listener.dart'; export 'src/listener/organization_listener.dart';
export 'src/listener/put_file_listener.dart';
export 'src/listener/signaling_listener.dart'; export 'src/listener/signaling_listener.dart';
export 'src/listener/user_listener.dart'; export 'src/listener/user_listener.dart';
export 'src/listener/workmoments_listener.dart'; export 'src/listener/workmoments_listener.dart';

@ -1,11 +1,11 @@
/// ///
class GroupRoleLevel { class GroupRoleLevel {
///
static const member = 1;
/// ///
static const owner = 2; static const owner = 100;
/// ///
static const admin = 3; static const admin = 60;
///
static const member = 20;
} }

@ -14,4 +14,5 @@ class ListenerType {
static const customBusinessListener = "customBusinessListener"; static const customBusinessListener = "customBusinessListener";
static const messageKvInfoListener = "messageKvInfoListener"; static const messageKvInfoListener = "messageKvInfoListener";
static const listenerForService = "listenerForService"; static const listenerForService = "listenerForService";
static const putFileListener = "putFileListener";
} }

@ -30,9 +30,6 @@ class MessageType {
/// ///
static const custom = 110; static const custom = 110;
///
static const revoke = 111;
/// ///
static const has_read_receipt = 112; static const has_read_receipt = 112;
@ -51,9 +48,6 @@ class MessageType {
/// ///
static const advancedText = 117; static const advancedText = 117;
///
static const advancedRevoke = 118;
static const customMsgNotTriggerConversation = 119; static const customMsgNotTriggerConversation = 119;
static const customMsgOnlineOnly = 120; static const customMsgOnlineOnly = 120;
@ -154,6 +148,12 @@ class MessageType {
/// ///
static const groupMemberInfoChangedNotification = 1516; static const groupMemberInfoChangedNotification = 1516;
///
static const groupNoticeChangedNotification = 1519;
///
static const groupNameChangedNotification = 1520;
static const signalingNotificationBegin = 1600; static const signalingNotificationBegin = 1600;
/// ///
@ -165,4 +165,7 @@ class MessageType {
static const burnAfterReadingNotification = 1701; static const burnAfterReadingNotification = 1701;
static const notificationEnd = 2000; static const notificationEnd = 2000;
///
static const revokeMessageNotification = 2101;
} }

@ -1,18 +1,18 @@
/// ///
class MessageFailedCode { class MessageFailedCode {
/// ///
static const int blockedByFriend = 600; static const int blockedByFriend = 1302;
/// ///
static const int deletedByFriend = 601; static const int deletedByFriend = 601;
/// / /// /
static const int notInGroup = 302; static const int notInGroup = 1205;
} }
/// ///
class AddFriendFailedCode { class AddFriendFailedCode {
/// ///
static const int refuseToAddFriends = 10007; static const int refuseToAddFriends = 10013;
} }

@ -2,52 +2,53 @@ import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
/// ///
class OnAdvancedMsgListener { class OnAdvancedMsgListener {
Function(List<ReadReceiptInfo> list)? onRecvC2CMessageReadReceipt; Function(Message msg)? onMsgDeleted;
Function(List<ReadReceiptInfo> list)? onRecvGroupMessageReadReceipt; Function(RevokedInfo info)? onNewRecvMessageRevoked;
Function(String msgId)? onRecvMessageRevoked; Function(List<ReadReceiptInfo> list)? onRecvC2CReadReceipt;
Function(Message msg)? onRecvNewMessage; Function(List<ReadReceiptInfo> list)? onRecvGroupReadReceipt;
Function(RevokedInfo info)? onRecvMessageRevokedV2; Function(String msgID, List<KeyValue> list)? onRecvMessageExtensionsAdded;
Function(String msgID, List<KeyValue> list)? onRecvMessageExtensionsChanged; Function(String msgID, List<KeyValue> list)? onRecvMessageExtensionsChanged;
Function(String msgID, List<String> list)? onRecvMessageExtensionsDeleted; Function(String msgID, List<String> list)? onRecvMessageExtensionsDeleted;
Function(String msgID, List<KeyValue> list)? onRecvMessageExtensionsAdded; Function(Message msg)? onRecvNewMessage;
Function(List<Message> list)? onRecvOfflineNewMessages;
/// Uniquely identifies /// Uniquely identifies
String id; String id;
OnAdvancedMsgListener({ OnAdvancedMsgListener({
this.onRecvC2CMessageReadReceipt, this.onMsgDeleted,
this.onRecvGroupMessageReadReceipt, this.onNewRecvMessageRevoked,
@deprecated this.onRecvMessageRevoked, this.onRecvC2CReadReceipt,
this.onRecvNewMessage, this.onRecvGroupReadReceipt,
this.onRecvMessageRevokedV2, this.onRecvMessageExtensionsAdded,
this.onRecvMessageExtensionsChanged, this.onRecvMessageExtensionsChanged,
this.onRecvMessageExtensionsDeleted, this.onRecvMessageExtensionsDeleted,
this.onRecvMessageExtensionsAdded, this.onRecvNewMessage,
this.onRecvOfflineNewMessages,
}) : id = "id_${DateTime.now().microsecondsSinceEpoch}"; }) : id = "id_${DateTime.now().microsecondsSinceEpoch}";
/// C2C消息已读回执 void msgDeleted(Message msg) {
void recvC2CMessageReadReceipt(List<ReadReceiptInfo> list) { onMsgDeleted?.call(msg);
onRecvC2CMessageReadReceipt?.call(list);
} }
/// ///
void recvGroupMessageReadReceipt(List<ReadReceiptInfo> list) { void newRecvMessageRevoked(RevokedInfo info) {
onRecvGroupMessageReadReceipt?.call(list); onNewRecvMessageRevoked?.call(info);
} }
/// /// C2C消息已读回执
void recvMessageRevoked(String msgId) { void recvC2CReadReceipt(List<ReadReceiptInfo> list) {
onRecvMessageRevoked?.call(msgId); onRecvC2CReadReceipt?.call(list);
} }
/// ///
void recvNewMessage(Message msg) { void recvGroupReadReceipt(List<ReadReceiptInfo> list) {
onRecvNewMessage?.call(msg); onRecvGroupReadReceipt?.call(list);
} }
/// /// kv新增
void recvMessageRevokedV2(RevokedInfo info) { void recvMessageExtensionsAdded(String msgID, List<KeyValue> list) {
onRecvMessageRevokedV2?.call(info); onRecvMessageExtensionsAdded?.call(msgID, list);
} }
/// kv改变 /// kv改变
@ -61,8 +62,12 @@ class OnAdvancedMsgListener {
onRecvMessageExtensionsDeleted?.call(msgID, list); onRecvMessageExtensionsDeleted?.call(msgID, list);
} }
/// kv新增 ///
void recvMessageExtensionsAdded(String msgID, List<KeyValue> list) { void recvNewMessage(Message msg) {
onRecvMessageExtensionsAdded?.call(msgID, list); onRecvNewMessage?.call(msg);
}
void recvOfflineNewMessages(List<Message> list) {
onRecvOfflineNewMessages?.call(list);
} }
} }

@ -2,19 +2,19 @@ import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
/// ///
class OnFriendshipListener { class OnFriendshipListener {
Function(BlacklistInfo i)? onBlackAdded;
Function(BlacklistInfo i)? onBlackDeleted;
Function(FriendInfo i)? onFriendAdded;
Function(FriendApplicationInfo i)? onFriendApplicationAccepted;
Function(FriendApplicationInfo i)? onFriendApplicationAdded; Function(FriendApplicationInfo i)? onFriendApplicationAdded;
Function(FriendApplicationInfo i)? onFriendApplicationDeleted; Function(FriendApplicationInfo i)? onFriendApplicationDeleted;
Function(FriendApplicationInfo i)? onFriendApplicationAccepted;
Function(FriendApplicationInfo i)? onFriendApplicationRejected; Function(FriendApplicationInfo i)? onFriendApplicationRejected;
Function(FriendInfo i)? onFriendAdded;
Function(FriendInfo i)? onFriendDeleted; Function(FriendInfo i)? onFriendDeleted;
Function(FriendInfo i)? onFriendInfoChanged; Function(FriendInfo i)? onFriendInfoChanged;
Function(BlacklistInfo i)? onBlacklistAdded;
Function(BlacklistInfo i)? onBlacklistDeleted;
OnFriendshipListener({ OnFriendshipListener({
this.onBlacklistAdded, this.onBlackAdded,
this.onBlacklistDeleted, this.onBlackDeleted,
this.onFriendAdded, this.onFriendAdded,
this.onFriendApplicationAccepted, this.onFriendApplicationAccepted,
this.onFriendApplicationAdded, this.onFriendApplicationAdded,
@ -25,13 +25,13 @@ class OnFriendshipListener {
}); });
/// ///
void blacklistAdded(BlacklistInfo u) { void blackAdded(BlacklistInfo u) {
onBlacklistAdded?.call(u); onBlackAdded?.call(u);
} }
/// ///
void blacklistDeleted(BlacklistInfo u) { void blackDeleted(BlacklistInfo u) {
onBlacklistDeleted?.call(u); onBlackDeleted?.call(u);
} }
/// ///

@ -6,6 +6,7 @@ class OnGroupListener {
Function(GroupApplicationInfo info)? onGroupApplicationAdded; Function(GroupApplicationInfo info)? onGroupApplicationAdded;
Function(GroupApplicationInfo info)? onGroupApplicationDeleted; Function(GroupApplicationInfo info)? onGroupApplicationDeleted;
Function(GroupApplicationInfo info)? onGroupApplicationRejected; Function(GroupApplicationInfo info)? onGroupApplicationRejected;
Function(GroupInfo info)? onGroupDismissed;
Function(GroupInfo info)? onGroupInfoChanged; Function(GroupInfo info)? onGroupInfoChanged;
Function(GroupMembersInfo info)? onGroupMemberAdded; Function(GroupMembersInfo info)? onGroupMemberAdded;
Function(GroupMembersInfo info)? onGroupMemberDeleted; Function(GroupMembersInfo info)? onGroupMemberDeleted;
@ -18,6 +19,7 @@ class OnGroupListener {
this.onGroupApplicationAdded, this.onGroupApplicationAdded,
this.onGroupApplicationDeleted, this.onGroupApplicationDeleted,
this.onGroupApplicationRejected, this.onGroupApplicationRejected,
this.onGroupDismissed,
this.onGroupInfoChanged, this.onGroupInfoChanged,
this.onGroupMemberAdded, this.onGroupMemberAdded,
this.onGroupMemberDeleted, this.onGroupMemberDeleted,
@ -46,6 +48,10 @@ class OnGroupListener {
onGroupApplicationRejected?.call(info); onGroupApplicationRejected?.call(info);
} }
void groupDismissed(GroupInfo info) {
onGroupDismissed?.call(info);
}
/// ///
void groupInfoChanged(GroupInfo info) { void groupInfoChanged(GroupInfo info) {
onGroupInfoChanged?.call(info); onGroupInfoChanged?.call(info);

@ -1,11 +1,11 @@
/// // ///
class OnOrganizationListener { // class OnOrganizationListener {
Function()? onOrganizationUpdated; // Function()? onOrganizationUpdated;
//
OnOrganizationListener({this.onOrganizationUpdated}); // OnOrganizationListener({this.onOrganizationUpdated});
//
/// // ///
void organizationUpdated() { // void organizationUpdated() {
onOrganizationUpdated?.call(); // onOrganizationUpdated?.call();
} // }
} // }

@ -0,0 +1,32 @@
class OnPutFileListener {
Function(String putID, String hash, int total)? onHashComplete;
Function(String putID, int current, int total)? onHashProgress;
Function(String putID, int size)? onOpen;
Function(String putID, int total, int putType)? onPutComplete;
Function(String putID, int save, int current, int total)? onPutProgress;
Function(String putID, int current, int total)? onPutStart;
void hashComplete(String putID, String hash, int total) {
onHashComplete?.call(putID, hash, total);
}
void hashProgress(String putID, int current, int total) {
onHashProgress?.call(putID, current, total);
}
void open(String putID, int size) {
onOpen?.call(putID, size);
}
void putComplete(String putID, int total, int putType) {
onPutComplete?.call(putID, total, putType);
}
void putProgress(String putID, int save, int current, int total) {
onPutProgress?.call(putID, save, current, total);
}
void putStart(String putID, int current, int total) {
onPutStart?.call(putID, current, total);
}
}

@ -1,11 +1,11 @@
/// // ///
class OnWorkMomentsListener { // class OnWorkMomentsListener {
Function()? onRecvNewNotification; // Function()? onRecvNewNotification;
//
OnWorkMomentsListener({this.onRecvNewNotification}); // OnWorkMomentsListener({this.onRecvNewNotification});
//
/// // ///
void recvNewNotification() { // void recvNewNotification() {
onRecvNewNotification?.call(); // onRecvNewNotification?.call();
} // }
} // }

@ -1,3 +1,5 @@
import 'dart:developer';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
@ -71,26 +73,13 @@ class ConversationManager {
}) => }) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getMultipleConversation', 'getMultipleConversation',
_buildParam({
"conversationIDList": conversationIDList,
"operationID": Utils.checkOperationID(operationID),
}))
.then((value) =>
Utils.toList(value, (map) => ConversationInfo.fromJson(map)));
/// id删除指定会话
/// [conversationID] id
Future deleteConversation({
required String conversationID,
String? operationID,
}) =>
_channel.invokeMethod(
'deleteConversation',
_buildParam({ _buildParam({
"conversationID": conversationID, "conversationIDList": conversationIDList,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }))
.then((value) =>
Utils.toList(value, (map) => ConversationInfo.fromJson(map)));
/// 稿 /// 稿
/// [conversationID] id /// [conversationID] id
@ -124,6 +113,19 @@ class ConversationManager {
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));
///
/// [conversationID] id
Future hideConversation({
required String conversationID,
String? operationID,
}) =>
_channel.invokeMethod(
'hideConversation',
_buildParam({
"conversationID": conversationID,
"operationID": Utils.checkOperationID(operationID),
}));
/// ///
/// int.tryParse(count) ?? 0; /// int.tryParse(count) ?? 0;
Future<dynamic> getTotalUnreadMsgCount({ Future<dynamic> getTotalUnreadMsgCount({
@ -138,29 +140,29 @@ class ConversationManager {
/// id /// id
/// [sourceID] IDID /// [sourceID] IDID
/// [sessionType] [ConversationType] /// [sessionType] [ConversationType]
Future<dynamic> getConversationIDBySessionType({ // Future<dynamic> getConversationIDBySessionType({
required String sourceID, // required String sourceID,
required int sessionType, // required int sessionType,
}) => // }) =>
_channel.invokeMethod( // _channel.invokeMethod(
'getConversationIDBySessionType', // 'getConversationIDBySessionType',
_buildParam({ // _buildParam({
"sourceID": sourceID, // "sourceID": sourceID,
"sessionType": sessionType, // "sessionType": sessionType,
})); // }));
/// ///
/// [conversationIDList] id列表 /// [conversationID] id
/// [status] 012线线 /// [status] 012线线
Future<dynamic> setConversationRecvMessageOpt({ Future<dynamic> setConversationRecvMessageOpt({
required List<String> conversationIDList, required String conversationID,
required int status, required int status,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'setConversationRecvMessageOpt', 'setConversationRecvMessageOpt',
_buildParam({ _buildParam({
"conversationIDList": conversationIDList, "conversationID": conversationID,
"status": status, "status": status,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));
@ -184,13 +186,13 @@ class ConversationManager {
/// ///
/// [conversationID] id /// [conversationID] id
/// [isPrivate] truefalse /// [isPrivate] truefalse
Future<dynamic> setOneConversationPrivateChat({ Future<dynamic> setConversationPrivateChat({
required String conversationID, required String conversationID,
required bool isPrivate, required bool isPrivate,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'setOneConversationPrivateChat', 'setConversationPrivateChat',
_buildParam({ _buildParam({
"conversationID": conversationID, "conversationID": conversationID,
"isPrivate": isPrivate, "isPrivate": isPrivate,
@ -199,12 +201,25 @@ class ConversationManager {
/// ///
/// [conversationID] ID /// [conversationID] ID
Future<dynamic> deleteConversationFromLocalAndSvr({ Future<dynamic> deleteConversationAndDeleteAllMsg({
required String conversationID,
String? operationID,
}) =>
_channel.invokeMethod(
'deleteConversationAndDeleteAllMsg',
_buildParam({
"conversationID": conversationID,
"operationID": Utils.checkOperationID(operationID),
}));
///
/// [conversationID] ID
Future<dynamic> clearConversationAndDeleteAllMsg({
required String conversationID, required String conversationID,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'deleteConversationFromLocalAndSvr', 'clearConversationAndDeleteAllMsg',
_buildParam({ _buildParam({
"conversationID": conversationID, "conversationID": conversationID,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
@ -234,8 +249,14 @@ class ConversationManager {
})); }));
/// @ /// @
Future<dynamic> getAtAllTag() => Future<dynamic> getAtAllTag({
_channel.invokeMethod('getAtAllTag', _buildParam({})); String? operationID,
}) =>
_channel.invokeMethod(
'getAtAllTag',
_buildParam({
"operationID": Utils.checkOperationID(operationID),
}));
/// @ /// @
String get atAllTag => 'atAllTag'; String get atAllTag => 'atAllTag';
@ -256,19 +277,33 @@ class ConversationManager {
/// ///
/// [conversationID] id /// [conversationID] id
/// [burnDuration] s30s /// [burnDuration] s30s
Future<dynamic> setOneConversationBurnDuration({ Future<dynamic> setConversationBurnDuration({
required String conversationID, required String conversationID,
int burnDuration = 30, int burnDuration = 30,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'setOneConversationBurnDuration', 'setConversationBurnDuration',
_buildParam({ _buildParam({
"conversationID": conversationID, "conversationID": conversationID,
"burnDuration": burnDuration, "burnDuration": burnDuration,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));
///
/// [conversationID] ID
/// [messageIDList] clientMsgID
Future markConversationMessageAsRead({
required String conversationID,
String? operationID,
}) =>
_channel.invokeMethod(
'markConversationMessageAsRead',
_buildParam({
"conversationID": conversationID,
"operationID": Utils.checkOperationID(operationID),
}));
/// ///
List<ConversationInfo> simpleSort(List<ConversationInfo> list) => list List<ConversationInfo> simpleSort(List<ConversationInfo> list) => list
..sort((a, b) { ..sort((a, b) {
@ -279,23 +314,24 @@ class ConversationManager {
: a.latestMsgSendTime!; : a.latestMsgSendTime!;
int bCompare = b.draftTextTime! > b.latestMsgSendTime! int bCompare = b.draftTextTime! > b.latestMsgSendTime!
? b.draftTextTime! ? b.draftTextTime!
: b.latestMsgSendTime!; : b.latestMsgSendTime!;
if (aCompare > bCompare) { if (aCompare > bCompare) {
return -1; return -1;
} else if (aCompare < bCompare) { } else if (aCompare < bCompare) {
return 1; return 1;
} else { } else {
return 0; return 0;
} }
} else if (a.isPinned == true && b.isPinned != true) { } else if (a.isPinned == true && b.isPinned != true) {
return -1; return -1;
} else { } else {
return 1; return 1;
} }
}); });
static Map _buildParam(Map param) { static Map _buildParam(Map param) {
param["ManagerName"] = "conversationManager"; param["ManagerName"] = "conversationManager";
log('param: $param');
return param; return param;
} }
} }

@ -14,42 +14,42 @@ class FriendshipManager {
} }
/// ///
/// [uidList] userID集合 /// [userIDList] userID集合
Future<List<UserInfo>> getFriendsInfo({ Future<List<UserInfo>> getFriendsInfo({
required List<String> uidList, required List<String> userIDList,
String? operationID, String? operationID,
}) => }) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getFriendsInfo', 'getFriendsInfo',
_buildParam({ _buildParam({
"uidList": uidList, "userIDList": userIDList,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})) }))
.then((value) => Utils.toList(value, (v) => UserInfo.fromJson(v))); .then((value) => Utils.toList(value, (v) => UserInfo.fromJson(v)));
/// ///
/// [uid] ID /// [userID] ID
/// [reason] /// [reason]
Future<dynamic> addFriend({ Future<dynamic> addFriend({
required String uid, required String userID,
String? reason, String? reason,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'addFriend', 'addFriend',
_buildParam({ _buildParam({
"toUserID": uid, "toUserID": userID,
"reqMsg": reason, "reqMsg": reason,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));
/// ///
Future<List<FriendApplicationInfo>> getRecvFriendApplicationList( Future<List<FriendApplicationInfo>> getFriendApplicationListAsRecipient(
{String? operationID}) => {String? operationID}) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getRecvFriendApplicationList', 'getFriendApplicationListAsRecipient',
_buildParam({ _buildParam({
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})) }))
@ -57,11 +57,11 @@ class FriendshipManager {
Utils.toList(value, (v) => FriendApplicationInfo.fromJson(v))); Utils.toList(value, (v) => FriendApplicationInfo.fromJson(v)));
/// ///
Future<List<FriendApplicationInfo>> getSendFriendApplicationList( Future<List<FriendApplicationInfo>> getFriendApplicationListAsApplicant(
{String? operationID}) => {String? operationID}) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getSendFriendApplicationList', 'getFriendApplicationListAsApplicant',
_buildParam({ _buildParam({
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})) }))
@ -87,31 +87,31 @@ class FriendshipManager {
.then((value) => Utils.toListMap(value)); .then((value) => Utils.toListMap(value));
/// ///
/// [uid] userID /// [userID] userID
/// [remark] /// [remark]
Future<dynamic> setFriendRemark({ Future<dynamic> setFriendRemark({
required String uid, required String userID,
required String remark, required String remark,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'setFriendRemark', 'setFriendRemark',
_buildParam({ _buildParam({
'toUserID': uid, 'toUserID': userID,
'remark': remark, 'remark': remark,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));
/// ///
/// [uid] ID /// [userID] ID
Future<dynamic> addBlacklist({ Future<dynamic> addBlacklist({
required String uid, required String userID,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'addBlacklist', 'addBlacklist',
_buildParam({ _buildParam({
"uid": uid, "userID": userID,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));
@ -125,75 +125,75 @@ class FriendshipManager {
.then((value) => Utils.toList(value, (v) => UserInfo.fromJson(v))); .then((value) => Utils.toList(value, (v) => UserInfo.fromJson(v)));
/// ///
/// [uid] ID /// [userID] ID
Future<dynamic> removeBlacklist({ Future<dynamic> removeBlacklist({
required String uid, required String userID,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'removeBlacklist', 'removeBlacklist',
_buildParam({ _buildParam({
"uid": uid, "userID": userID,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));
/// ///
/// [uidList] userID列表 /// [userIDList] userID列表
Future<List<FriendshipInfo>> checkFriend({ Future<List<FriendshipInfo>> checkFriend({
required List<String> uidList, required List<String> userIDList,
String? operationID, String? operationID,
}) => }) =>
_channel _channel
.invokeMethod( .invokeMethod(
'checkFriend', 'checkFriend',
_buildParam({ _buildParam({
'uidList': uidList, 'userIDList': userIDList,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})) }))
.then((value) => .then((value) =>
Utils.toList(value, (v) => FriendshipInfo.fromJson(v))); Utils.toList(value, (v) => FriendshipInfo.fromJson(v)));
/// ///
/// [uid] ID /// [userID] ID
Future<dynamic> deleteFriend({ Future<dynamic> deleteFriend({
required String uid, required String userID,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'deleteFriend', 'deleteFriend',
_buildParam({ _buildParam({
"uid": uid, "userID": userID,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));
/// ///
/// [uid] ID /// [userID] ID
/// [handleMsg] /// [handleMsg]
Future<dynamic> acceptFriendApplication({ Future<dynamic> acceptFriendApplication({
required String uid, required String userID,
String? handleMsg, String? handleMsg,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'acceptFriendApplication', 'acceptFriendApplication',
_buildParam({ _buildParam({
"toUserID": uid, "toUserID": userID,
"handleMsg": handleMsg, "handleMsg": handleMsg,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));
/// ///
/// [uid] ID /// [userID] ID
/// [handleMsg] /// [handleMsg]
Future<dynamic> refuseFriendApplication({ Future<dynamic> refuseFriendApplication({
required String uid, required String userID,
String? handleMsg, String? handleMsg,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'refuseFriendApplication', 'refuseFriendApplication',
_buildParam({ _buildParam({
"toUserID": uid, "toUserID": userID,
"handleMsg": handleMsg, "handleMsg": handleMsg,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));

@ -1,3 +1,5 @@
import 'dart:developer';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
@ -14,11 +16,11 @@ class GroupManager {
} }
/// ///
/// [groupId] ID /// [groupID] ID
/// [uidList] ID列表 /// [userIDList] ID列表
Future<List<GroupInviteResult>> inviteUserToGroup({ Future<List<GroupInviteResult>> inviteUserToGroup({
required String groupId, required String groupID,
required List<String> uidList, required List<String> userIDList,
String? reason, String? reason,
String? operationID, String? operationID,
}) => }) =>
@ -26,21 +28,21 @@ class GroupManager {
.invokeMethod( .invokeMethod(
'inviteUserToGroup', 'inviteUserToGroup',
_buildParam({ _buildParam({
'gid': groupId, 'groupID': groupID,
'userIDList': userIDList,
'reason': reason, 'reason': reason,
'uidList': uidList,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})) }))
.then((value) => .then((value) =>
Utils.toList(value, (map) => GroupInviteResult.fromJson(map))); Utils.toList(value, (map) => GroupInviteResult.fromJson(map)));
/// ///
/// [groupId] ID /// [groupID] ID
/// [uidList] ID列表 /// [userIDList] ID列表
/// [reason] /// [reason]
Future<List<GroupInviteResult>> kickGroupMember({ Future<List<GroupInviteResult>> kickGroupMember({
required String groupId, required String groupID,
required List<String> uidList, required List<String> userIDList,
String? reason, String? reason,
String? operationID, String? operationID,
}) => }) =>
@ -48,40 +50,40 @@ class GroupManager {
.invokeMethod( .invokeMethod(
'kickGroupMember', 'kickGroupMember',
_buildParam({ _buildParam({
'gid': groupId, 'groupID': groupID,
'userIDList': userIDList,
'reason': reason, 'reason': reason,
'uidList': uidList,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})) }))
.then((value) => .then((value) =>
Utils.toList(value, (map) => GroupInviteResult.fromJson(map))); Utils.toList(value, (map) => GroupInviteResult.fromJson(map)));
/// ///
/// [groupId] ID /// [groupID] ID
/// [uidList] ID列表 /// [userIDList] ID列表
Future<List<GroupMembersInfo>> getGroupMembersInfo({ Future<List<GroupMembersInfo>> getGroupMembersInfo({
required String groupId, required String groupID,
required List<String> uidList, required List<String> userIDList,
String? operationID, String? operationID,
}) => }) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getGroupMembersInfo', 'getGroupMembersInfo',
_buildParam({ _buildParam({
'gid': groupId, 'groupID': groupID,
'uidList': uidList, 'userIDList': userIDList,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})) }))
.then((value) => .then((value) =>
Utils.toList(value, (map) => GroupMembersInfo.fromJson(map))); Utils.toList(value, (map) => GroupMembersInfo.fromJson(map)));
/// ///
/// [groupId] ID /// [groupID] ID
/// [filter] 01, 234+ /// [filter] 01 , 234+ 5,+
/// [offset] /// [offset]
/// [count] /// [count]
Future<List<GroupMembersInfo>> getGroupMemberList({ Future<List<GroupMembersInfo>> getGroupMemberList({
required String groupId, required String groupID,
int filter = 0, int filter = 0,
int offset = 0, int offset = 0,
int count = 0, int count = 0,
@ -91,7 +93,7 @@ class GroupManager {
.invokeMethod( .invokeMethod(
'getGroupMemberList', 'getGroupMemberList',
_buildParam({ _buildParam({
'gid': groupId, 'groupID': groupID,
'filter': filter, 'filter': filter,
'offset': offset, 'offset': offset,
'count': count, 'count': count,
@ -101,12 +103,12 @@ class GroupManager {
Utils.toList(value, (map) => GroupMembersInfo.fromJson(map))); Utils.toList(value, (map) => GroupMembersInfo.fromJson(map)));
/// ///
/// [groupId] ID /// [groupID] ID
/// [filter] 01, 234+ /// [filter] 01 , 234+ 5,+
/// [offset] /// [offset]
/// [count] /// [count]
Future<List<dynamic>> getGroupMemberListMap({ Future<List<dynamic>> getGroupMemberListMap({
required String groupId, required String groupID,
int filter = 0, int filter = 0,
int offset = 0, int offset = 0,
int count = 0, int count = 0,
@ -116,7 +118,7 @@ class GroupManager {
.invokeMethod( .invokeMethod(
'getGroupMemberList', 'getGroupMemberList',
_buildParam({ _buildParam({
'gid': groupId, 'groupID': groupID,
'filter': filter, 'filter': filter,
'offset': offset, 'offset': offset,
'count': count, 'count': count,
@ -143,14 +145,19 @@ class GroupManager {
.then((value) => Utils.toListMap(value)); .then((value) => Utils.toListMap(value));
/// ///
/// [gid] ID /// [groupID] ID
Future<bool> isJoinedGroup({ Future<bool> isJoinedGroup({
required String gid, required String groupID,
String? operationID, String? operationID,
}) => }) =>
getJoinedGroupList( _channel
operationID: Utils.checkOperationID(operationID), .invokeMethod(
).then((list) => list.where((e) => e.groupID == gid).length > 0); 'isJoinGroup',
_buildParam({
'groupID': groupID,
'operationID': Utils.checkOperationID(operationID),
}))
.then((value) => value == 'true' ? true : false);
/// ///
/// [groupName] /// [groupName]
@ -161,28 +168,20 @@ class GroupManager {
/// [ex] /// [ex]
/// [list] [GroupMemberRole] /// [list] [GroupMemberRole]
Future<GroupInfo> createGroup({ Future<GroupInfo> createGroup({
String? groupName, required GroupInfo groupInfo,
String? notification, List<String> memberUserIDs = const [],
String? introduction, List<String> adminUserIDs = const [],
String? faceUrl, String? ownerUserID,
int? groupType,
String? ex,
required List<GroupMemberRole> list,
String? operationID, String? operationID,
}) => }) =>
_channel _channel
.invokeMethod( .invokeMethod(
'createGroup', 'createGroup',
_buildParam({ _buildParam({
'gInfo': { 'groupInfo': groupInfo.toJson(),
"groupName": groupName, 'memberUserIDs': memberUserIDs,
"notification": notification, 'adminUserIDs': adminUserIDs,
"introduction": introduction, 'ownerUserID': ownerUserID,
"faceURL": faceUrl,
"groupType": groupType,
"ex": ex,
},
'memberList': list.map((e) => e.toJson()).toList(),
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})) }))
.then( .then(
@ -193,43 +192,48 @@ class GroupManager {
/// [groupName] /// [groupName]
/// [notification] /// [notification]
/// [introduction] /// [introduction]
/// [faceUrl] /// [faceURL]
/// [ex] /// [ex]
Future<dynamic> setGroupInfo({ Future<dynamic> setGroupInfo({
required String groupID, required String groupID,
String? groupName, String? groupName,
String? notification, String? notification,
String? introduction, String? introduction,
String? faceUrl, String? faceURL,
String? ex, String? ex,
int? needVerification,
int? lookMemberInfo,
int? applyMemberFriend,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'setGroupInfo', 'setGroupInfo',
_buildParam({ _buildParam({
"gid": groupID, 'groupInfo': {
'gInfo': { "groupID": groupID,
// "groupID": groupID,
"groupName": groupName, "groupName": groupName,
"notification": notification, "notification": notification,
"introduction": introduction, "introduction": introduction,
"faceURL": faceUrl, "faceURL": faceURL,
"ex": ex, "ex": ex,
'needVerification': needVerification,
'lookMemberInfo': lookMemberInfo,
'applyMemberFriend': applyMemberFriend,
}, },
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})); }));
/// ///
/// [gidList] ID列表 /// [groupIDList] ID列表
Future<List<GroupInfo>> getGroupsInfo({ Future<List<GroupInfo>> getGroupsInfo({
required List<String> gidList, required List<String> groupIDList,
String? operationID, String? operationID,
}) => }) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getGroupsInfo', 'getGroupsInfo',
_buildParam({ _buildParam({
'gidList': gidList, 'groupIDList': groupIDList,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})) }))
.then( .then(
@ -238,7 +242,7 @@ class GroupManager {
/// / /// /
/// [joinSource] 2 3 4 /// [joinSource] 2 3 4
Future<dynamic> joinGroup({ Future<dynamic> joinGroup({
required String gid, required String groupID,
String? reason, String? reason,
String? operationID, String? operationID,
int joinSource = 3, int joinSource = 3,
@ -246,7 +250,7 @@ class GroupManager {
_channel.invokeMethod( _channel.invokeMethod(
'joinGroup', 'joinGroup',
_buildParam({ _buildParam({
'gid': gid, 'groupID': groupID,
'reason': reason, 'reason': reason,
'joinSource': joinSource, 'joinSource': joinSource,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
@ -254,38 +258,38 @@ class GroupManager {
/// 退 /// 退
Future<dynamic> quitGroup({ Future<dynamic> quitGroup({
required String gid, required String groupID,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'quitGroup', 'quitGroup',
_buildParam({ _buildParam({
'gid': gid, 'groupID': groupID,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})); }));
/// ///
/// [gid] ID /// [groupID] ID
/// [uid] ID /// [userID] ID
Future<dynamic> transferGroupOwner({ Future<dynamic> transferGroupOwner({
required String gid, required String groupID,
required String uid, required String userID,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'transferGroupOwner', 'transferGroupOwner',
_buildParam({ _buildParam({
'gid': gid, 'groupID': groupID,
'uid': uid, 'userID': userID,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})); }));
/// ///
Future<List<GroupApplicationInfo>> getRecvGroupApplicationList( Future<List<GroupApplicationInfo>> getGroupApplicationListAsRecipient(
{String? operationID}) => {String? operationID}) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getRecvGroupApplicationList', 'getGroupApplicationListAsRecipient',
_buildParam({ _buildParam({
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})) }))
@ -293,11 +297,11 @@ class GroupManager {
Utils.toList(value, (map) => GroupApplicationInfo.fromJson(map))); Utils.toList(value, (map) => GroupApplicationInfo.fromJson(map)));
/// ///
Future<List<GroupApplicationInfo>> getSendGroupApplicationList( Future<List<GroupApplicationInfo>> getGroupApplicationListAsApplicant(
{String? operationID}) => {String? operationID}) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getSendGroupApplicationList', 'getGroupApplicationListAsApplicant',
_buildParam({ _buildParam({
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})) }))
@ -306,39 +310,39 @@ class GroupManager {
/// ///
/// // /// //
/// [gid] id /// [groupID] id
/// [uid] ID /// [userID] ID
Future<dynamic> acceptGroupApplication({ Future<dynamic> acceptGroupApplication({
required String gid, required String groupID,
required String uid, required String userID,
String? handleMsg, String? handleMsg,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'acceptGroupApplication', 'acceptGroupApplication',
_buildParam({ _buildParam({
'gid': gid, 'groupID': groupID,
'uid': uid, 'userID': userID,
'handleMsg': handleMsg, 'handleMsg': handleMsg,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})); }));
/// ///
/// // /// //
/// [gid] id /// [groupID] id
/// [uid] ID /// [userID] ID
/// [handleMsg] /// [handleMsg]
Future<dynamic> refuseGroupApplication({ Future<dynamic> refuseGroupApplication({
required String gid, required String groupID,
required String uid, required String userID,
String? handleMsg, String? handleMsg,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'refuseGroupApplication', 'refuseGroupApplication',
_buildParam({ _buildParam({
'gid': gid, 'groupID': groupID,
'uid': uid, 'userID': userID,
'handleMsg': handleMsg, 'handleMsg': handleMsg,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})); }));
@ -352,7 +356,7 @@ class GroupManager {
_channel.invokeMethod( _channel.invokeMethod(
'dismissGroup', 'dismissGroup',
_buildParam({ _buildParam({
'gid': groupID, 'groupID': groupID,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})); }));
@ -367,7 +371,7 @@ class GroupManager {
_channel.invokeMethod( _channel.invokeMethod(
'changeGroupMute', 'changeGroupMute',
_buildParam({ _buildParam({
'gid': groupID, 'groupID': groupID,
'mute': mute, 'mute': mute,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})); }));
@ -385,8 +389,8 @@ class GroupManager {
_channel.invokeMethod( _channel.invokeMethod(
'changeGroupMemberMute', 'changeGroupMemberMute',
_buildParam({ _buildParam({
'gid': groupID, 'groupID': groupID,
'uid': userID, 'userID': userID,
'seconds': seconds, 'seconds': seconds,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})); }));
@ -404,8 +408,8 @@ class GroupManager {
_channel.invokeMethod( _channel.invokeMethod(
'setGroupMemberNickname', 'setGroupMemberNickname',
_buildParam({ _buildParam({
'gid': groupID, 'groupID': groupID,
'uid': userID, 'userID': userID,
'groupNickname': groupNickname ?? '', 'groupNickname': groupNickname ?? '',
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})); }));
@ -633,6 +637,7 @@ class GroupManager {
static Map _buildParam(Map param) { static Map _buildParam(Map param) {
param["ManagerName"] = "groupManager"; param["ManagerName"] = "groupManager";
log('param: $param');
return param; return param;
} }
} }

@ -15,13 +15,15 @@ class IMManager {
// late OfflinePushManager offlinePushManager; // late OfflinePushManager offlinePushManager;
late SignalingManager signalingManager; late SignalingManager signalingManager;
late WorkMomentsManager workMomentsManager;
late OrganizationManager organizationManager; // late WorkMomentsManager workMomentsManager;
// late OrganizationManager organizationManager;
late OnConnectListener _connectListener; late OnConnectListener _connectListener;
OnListenerForService? _listenerForService; OnListenerForService? _listenerForService;
late String uid; OnPutFileListener? _putFileListener;
late UserInfo uInfo; late String userID;
late UserInfo userInfo;
bool isLogined = false; bool isLogined = false;
String? token; String? token;
String? _objectStorage; String? _objectStorage;
@ -34,8 +36,8 @@ class IMManager {
userManager = UserManager(_channel); userManager = UserManager(_channel);
// offlinePushManager = OfflinePushManager(_channel); // offlinePushManager = OfflinePushManager(_channel);
signalingManager = SignalingManager(_channel); signalingManager = SignalingManager(_channel);
workMomentsManager = WorkMomentsManager(_channel); // workMomentsManager = WorkMomentsManager(_channel);
organizationManager = OrganizationManager(_channel); // organizationManager = OrganizationManager(_channel);
_addNativeCallback(_channel); _addNativeCallback(_channel);
} }
@ -69,8 +71,8 @@ class IMManager {
dynamic data = call.arguments['data']; dynamic data = call.arguments['data'];
switch (type) { switch (type) {
case 'onSelfInfoUpdated': case 'onSelfInfoUpdated':
uInfo = Utils.toObj(data, (map) => UserInfo.fromJson(map)); userInfo = Utils.toObj(data, (map) => UserInfo.fromJson(map));
userManager.listener.selfInfoUpdated(uInfo); userManager.listener.selfInfoUpdated(userInfo);
break; break;
} }
} else if (call.method == ListenerType.groupListener) { } else if (call.method == ListenerType.groupListener) {
@ -97,6 +99,10 @@ class IMManager {
data, (map) => GroupApplicationInfo.fromJson(map)); data, (map) => GroupApplicationInfo.fromJson(map));
groupManager.listener.groupApplicationRejected(i); groupManager.listener.groupApplicationRejected(i);
break; break;
case 'onGroupDismissed':
final i = Utils.toObj(data, (map) => GroupInfo.fromJson(map));
groupManager.listener.groupDismissed(i);
break;
case 'onGroupInfoChanged': case 'onGroupInfoChanged':
final i = Utils.toObj(data, (map) => GroupInfo.fromJson(map)); final i = Utils.toObj(data, (map) => GroupInfo.fromJson(map));
groupManager.listener.groupInfoChanged(i); groupManager.listener.groupInfoChanged(i);
@ -129,52 +135,59 @@ class IMManager {
var type = call.arguments['type']; var type = call.arguments['type'];
// var id = call.arguments['data']['id']; // var id = call.arguments['data']['id'];
switch (type) { switch (type) {
case 'onRecvNewMessage': case 'onMsgDeleted':
var value = call.arguments['data']['newMessage']; var value = call.arguments['data']['message'];
final msg = Utils.toObj(value, (map) => Message.fromJson(map)); final msg = Utils.toObj(value, (map) => Message.fromJson(map));
messageManager.msgListener.recvNewMessage(msg); messageManager.msgListener.msgDeleted(msg);
break; break;
case 'onRecvMessageRevoked': case 'onNewRecvMessageRevoked':
var msgID = call.arguments['data']['revokedMessage']; var value = call.arguments['data']['messageRevoked'];
messageManager.msgListener.recvMessageRevoked(msgID); var info = Utils.toObj(value, (map) => RevokedInfo.fromJson(map));
messageManager.msgListener.newRecvMessageRevoked(info);
break; break;
case 'onRecvC2CReadReceipt': case 'onRecvC2CReadReceipt':
var value = call.arguments['data']['c2cMessageReadReceipt']; var value = call.arguments['data']['msgReceiptList'];
var list = var list =
Utils.toList(value, (map) => ReadReceiptInfo.fromJson(map)); Utils.toList(value, (map) => ReadReceiptInfo.fromJson(map));
messageManager.msgListener.recvC2CMessageReadReceipt(list); messageManager.msgListener.recvC2CReadReceipt(list);
break; break;
case 'onRecvGroupReadReceipt': case 'onRecvGroupReadReceipt':
var value = call.arguments['data']['groupMessageReadReceipt']; var value = call.arguments['data']['groupMsgReceiptList'];
var list = var list =
Utils.toList(value, (map) => ReadReceiptInfo.fromJson(map)); Utils.toList(value, (map) => ReadReceiptInfo.fromJson(map));
messageManager.msgListener.recvGroupMessageReadReceipt(list); messageManager.msgListener.recvGroupReadReceipt(list);
break; break;
case 'onNewRecvMessageRevoked': case 'onRecvMessageExtensionsAdded':
var value = call.arguments['data']['revokedMessageV2']; var msgID = call.arguments['data']['msgID'];
var info = Utils.toObj(value, (map) => RevokedInfo.fromJson(map)); var value = call.arguments['data']['reactionExtensionList'];
messageManager.msgListener.recvMessageRevokedV2(info); var list = Utils.toList(value, (map) => KeyValue.fromJson(map));
messageManager.msgListener
.recvMessageExtensionsAdded(msgID, list);
break; break;
case 'onRecvMessageExtensionsChanged': case 'onRecvMessageExtensionsChanged':
var msgID = call.arguments['data']['msgID']; var msgID = call.arguments['data']['msgID'];
var value = call.arguments['data']['list']; var value = call.arguments['data']['reactionExtensionList'];
var list = Utils.toList(value, (map) => KeyValue.fromJson(map)); var list = Utils.toList(value, (map) => KeyValue.fromJson(map));
messageManager.msgListener messageManager.msgListener
.recvMessageExtensionsChanged(msgID, list); .recvMessageExtensionsChanged(msgID, list);
break; break;
case 'onRecvMessageExtensionsDeleted': case 'onRecvMessageExtensionsDeleted':
var msgID = call.arguments['data']['msgID']; var msgID = call.arguments['data']['msgID'];
var value = call.arguments['data']['list']; var value = call.arguments['data']['reactionExtensionKeyList'];
var list = Utils.toList(value, (map) => '$map'); var list = Utils.toList(value, (map) => '$map');
messageManager.msgListener messageManager.msgListener
.recvMessageExtensionsDeleted(msgID, list); .recvMessageExtensionsDeleted(msgID, list);
break; break;
case 'onRecvMessageExtensionsAdded':
var msgID = call.arguments['data']['msgID']; case 'onRecvNewMessage':
var value = call.arguments['data']['list']; var value = call.arguments['data']['message'];
var list = Utils.toList(value, (map) => KeyValue.fromJson(map)); final msg = Utils.toObj(value, (map) => Message.fromJson(map));
messageManager.msgListener messageManager.msgListener.recvNewMessage(msg);
.recvMessageExtensionsAdded(msgID, list); break;
case 'onRecvOfflineNewMessages':
var value = call.arguments['data']['messageList'];
final list = Utils.toList(value, (map) => Message.fromJson(map));
messageManager.msgListener.recvOfflineNewMessages(list);
break; break;
} }
} else if (call.method == ListenerType.msgSendProgressListener) { } else if (call.method == ListenerType.msgSendProgressListener) {
@ -224,13 +237,17 @@ class IMManager {
dynamic data = call.arguments['data']; dynamic data = call.arguments['data'];
switch (type) { switch (type) {
case 'onBlacklistAdded': case 'onBlackAdded':
final u = Utils.toObj(data, (map) => BlacklistInfo.fromJson(map)); final u = Utils.toObj(data, (map) => BlacklistInfo.fromJson(map));
friendshipManager.listener.blacklistAdded(u); friendshipManager.listener.blackAdded(u);
break; break;
case 'onBlacklistDeleted': case 'onBlackDeleted':
final u = Utils.toObj(data, (map) => BlacklistInfo.fromJson(map)); final u = Utils.toObj(data, (map) => BlacklistInfo.fromJson(map));
friendshipManager.listener.blacklistDeleted(u); friendshipManager.listener.blackDeleted(u);
break;
case 'onFriendAdded':
final u = Utils.toObj(data, (map) => FriendInfo.fromJson(map));
friendshipManager.listener.friendAdded(u);
break; break;
case 'onFriendApplicationAccepted': case 'onFriendApplicationAccepted':
final u = Utils.toObj( final u = Utils.toObj(
@ -252,18 +269,14 @@ class IMManager {
data, (map) => FriendApplicationInfo.fromJson(map)); data, (map) => FriendApplicationInfo.fromJson(map));
friendshipManager.listener.friendApplicationRejected(u); friendshipManager.listener.friendApplicationRejected(u);
break; break;
case 'onFriendInfoChanged':
final u = Utils.toObj(data, (map) => FriendInfo.fromJson(map));
friendshipManager.listener.friendInfoChanged(u);
break;
case 'onFriendAdded':
final u = Utils.toObj(data, (map) => FriendInfo.fromJson(map));
friendshipManager.listener.friendAdded(u);
break;
case 'onFriendDeleted': case 'onFriendDeleted':
final u = Utils.toObj(data, (map) => FriendInfo.fromJson(map)); final u = Utils.toObj(data, (map) => FriendInfo.fromJson(map));
friendshipManager.listener.friendDeleted(u); friendshipManager.listener.friendDeleted(u);
break; break;
case 'onFriendInfoChanged':
final u = Utils.toObj(data, (map) => FriendInfo.fromJson(map));
friendshipManager.listener.friendInfoChanged(u);
break;
} }
} else if (call.method == ListenerType.signalingListener) { } else if (call.method == ListenerType.signalingListener) {
String type = call.arguments['type']; String type = call.arguments['type'];
@ -323,7 +336,8 @@ class IMManager {
signalingManager.listener.receiveCustomSignal(info); signalingManager.listener.receiveCustomSignal(info);
break; break;
} }
} else if (call.method == ListenerType.workMomentsListener) { }
/*else if (call.method == ListenerType.workMomentsListener) {
String type = call.arguments['type']; String type = call.arguments['type'];
switch (type) { switch (type) {
case 'OnRecvNewNotification': case 'OnRecvNewNotification':
@ -337,7 +351,8 @@ class IMManager {
organizationManager.listener.organizationUpdated(); organizationManager.listener.organizationUpdated();
break; break;
} }
} else if (call.method == ListenerType.customBusinessListener) { }*/
else if (call.method == ListenerType.customBusinessListener) {
String type = call.arguments['type']; String type = call.arguments['type'];
String data = call.arguments['data']; String data = call.arguments['data'];
switch (type) { switch (type) {
@ -385,6 +400,47 @@ class IMManager {
_listenerForService?.recvNewMessage(msg); _listenerForService?.recvNewMessage(msg);
break; break;
} }
} else if (call.method == ListenerType.putFileListener) {
String type = call.arguments['type'];
dynamic data = call.arguments['data'];
switch (type) {
case 'hashComplete':
String putID = data['putID'];
String hash = data['hash'];
int total = data['total'];
_putFileListener?.hashComplete(putID, hash, total);
break;
case 'hashProgress':
String putID = data['putID'];
int current = data['current'];
int total = data['total'];
_putFileListener?.hashProgress(putID, current, total);
break;
case 'open':
String putID = data['putID'];
int size = data['size'];
_putFileListener?.open(putID, size);
break;
case 'putComplete':
String putID = data['putID'];
int putType = data['putType'];
int total = data['total'];
_putFileListener?.putComplete(putID, putType, total);
break;
case 'putProgress':
String putID = data['putID'];
int save = data['save'];
int current = data['current'];
int total = data['total'];
_putFileListener?.putProgress(putID, save, current, total);
break;
case 'putStart':
String putID = data['putID'];
int current = data['current'];
int total = data['total'];
_putFileListener?.putStart(putID, current, total);
break;
}
} }
} catch (error, stackTrace) { } catch (error, stackTrace) {
Logger.print( Logger.print(
@ -404,7 +460,7 @@ class IMManager {
/// [enabledEncryption] true /// [enabledEncryption] true
/// [enabledCompression] true /// [enabledCompression] true
Future<dynamic> initSDK({ Future<dynamic> initSDK({
required int platform, required int platformID,
required String apiAddr, required String apiAddr,
required String wsAddr, required String wsAddr,
required String dataDir, required String dataDir,
@ -412,9 +468,11 @@ class IMManager {
int logLevel = 6, int logLevel = 6,
String objectStorage = 'cos', String objectStorage = 'cos',
String? encryptionKey, String? encryptionKey,
bool enabledEncryption = false, bool isNeedEncryption = false,
bool enabledCompression = false, bool isCompression = false,
bool isExternalExtensions = false, bool isExternalExtensions = false,
bool isLogStandardOutput = true,
String? logFilePath,
String? operationID, String? operationID,
}) { }) {
this._connectListener = listener; this._connectListener = listener;
@ -423,32 +481,29 @@ class IMManager {
'initSDK', 'initSDK',
_buildParam( _buildParam(
{ {
"platform": platform, "platformID": platformID,
"api_addr": apiAddr, "apiAddr": apiAddr,
"ws_addr": wsAddr, "wsAddr": wsAddr,
"data_dir": dataDir, "dataDir": dataDir,
"log_level": logLevel, "logLevel": logLevel,
"object_storage": objectStorage, "objectStorage": objectStorage,
"encryption_key": encryptionKey, "encryptionKey": encryptionKey,
"is_need_encryption": enabledEncryption, "isNeedEncryption": isNeedEncryption,
"is_compression": enabledCompression, "isCompression": isCompression,
"is_external_extensions": isExternalExtensions, "isExternalExtensions": isExternalExtensions,
"isLogStandardOutput": isLogStandardOutput,
"logFilePath": logFilePath,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
}, },
)); ));
} }
/// SDK
Future<dynamic> unInitSDK() {
return _channel.invokeMethod('unInitSDK', _buildParam({}));
}
/// ///
/// [uid] id /// [uid] id
/// [token] token /// [token] token
/// [defaultValue] 使 /// [defaultValue] 使
Future<UserInfo> login({ Future<UserInfo> login({
required String uid, required String userID,
required String token, required String token,
String? operationID, String? operationID,
Future<UserInfo> Function()? defaultValue, Future<UserInfo> Function()? defaultValue,
@ -456,20 +511,20 @@ class IMManager {
await _channel.invokeMethod( await _channel.invokeMethod(
'login', 'login',
_buildParam({ _buildParam({
'uid': uid, 'userID': userID,
'token': token, 'token': token,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
}), }),
); );
this.isLogined = true; this.isLogined = true;
this.uid = uid; this.userID = userID;
this.token = token; this.token = token;
try { try {
return this.uInfo = await userManager.getSelfUserInfo(); return this.userInfo = await userManager.getSelfUserInfo();
} catch (error, stackTrace) { } catch (error, stackTrace) {
log('login e: $error s: $stackTrace'); log('login e: $error s: $stackTrace');
if (null != defaultValue) { if (null != defaultValue) {
return this.uInfo = await (defaultValue.call()); return this.userInfo = await (defaultValue.call());
} }
return Future.error(error, stackTrace); return Future.error(error, stackTrace);
} }
@ -493,34 +548,24 @@ class IMManager {
_channel.invokeMethod<int>('getLoginStatus', _buildParam({})); _channel.invokeMethod<int>('getLoginStatus', _buildParam({}));
/// id /// id
Future<String> getLoginUserID() async => uid; Future<String> getLoginUserID() async => userID;
/// ///
Future<UserInfo> getLoginUserInfo() async => uInfo; Future<UserInfo> getLoginUserInfo() async => userInfo;
///
Future wakeUp({String? operationID}) => _channel.invokeMethod(
'wakeUp',
_buildParam({
'operationID': Utils.checkOperationID(operationID),
}));
/// ///
/// [path] Future putFile({
/// [token] im token required String putID,
/// [objectStorage] cos/minio required String filePath,
Future uploadImage({ required String fileName,
required String path,
String? token,
String? objectStorage,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'uploadImage', 'putFile',
_buildParam({ _buildParam({
'path': path, 'putID': putID,
'token': token ?? this.token, 'filePath': filePath,
'obj': objectStorage ?? this._objectStorage, 'name': fileName,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})); }));
@ -538,26 +583,30 @@ class IMManager {
})); }));
/// app处于后台 /// app处于后台
Future setAppBackgroundStatus({ // Future setAppBackgroundStatus({
required bool isBackground, // required bool isBackground,
String? operationID, // String? operationID,
}) => // }) =>
_channel.invokeMethod( // _channel.invokeMethod(
'setAppBackgroundStatus', // 'setAppBackgroundStatus',
_buildParam({ // _buildParam({
'isBackground': isBackground, // 'isBackground': isBackground,
'operationID': Utils.checkOperationID(operationID), // 'operationID': Utils.checkOperationID(operationID),
})); // }));
/// ///
Future networkChanged({ // Future networkStatusChanged({
String? operationID, // String? operationID,
}) => // }) =>
_channel.invokeMethod( // _channel.invokeMethod(
'networkChanged', // 'networkStatusChanged',
_buildParam({ // _buildParam({
'operationID': Utils.checkOperationID(operationID), // 'operationID': Utils.checkOperationID(operationID),
})); // }));
void setPutFileListener(OnPutFileListener listener) {
_putFileListener = listener;
}
/// ///
Future setListenerForService(OnListenerForService listener) { Future setListenerForService(OnListenerForService listener) {

@ -52,59 +52,56 @@ class MessageManager {
})) }))
.then((value) => Utils.toObj(value, (map) => Message.fromJson(map))); .then((value) => Utils.toObj(value, (map) => Message.fromJson(map)));
/// (startMsg为节点) ///
/// [userID] id /// [message]
/// [conversationID] id Future deleteMessageFromLocalStorage({
/// [groupID] id required String conversationID,
/// [startMsg] [count]index==length-1startMsg=list.first required String clientMsgID,
/// [count]
Future<List<Message>> getHistoryMessageList({
String? userID,
String? groupID,
String? conversationID,
Message? startMsg,
int? count,
String? operationID, String? operationID,
}) => }) =>
_channel _channel.invokeMethod(
.invokeMethod( 'deleteMessageFromLocalStorage',
'getHistoryMessageList', _buildParam({
_buildParam({ "conversationID": conversationID,
'userID': userID ?? '', "clientMsgID": clientMsgID,
'groupID': groupID ?? '', "operationID": Utils.checkOperationID(operationID),
'conversationID': conversationID ?? '', }));
'startClientMsgID': startMsg?.clientMsgID ?? '',
'count': count ?? 10,
'operationID': Utils.checkOperationID(operationID),
}))
.then((value) => Utils.toList(value, (map) => Message.fromJson(map)));
/// [revokeMessageV2] /// core-sdk: DeleteMessage
/// [message] ///
@deprecated /// [message]
Future revokeMessage({ Future<dynamic> deleteMessageFromLocalAndSvr({
required Message message, required String conversationID,
required String clientMsgID,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'revokeMessage', 'deleteMessageFromLocalAndSvr',
_buildParam(message.toJson() _buildParam({
..addAll({ "conversationID": conversationID,
"operationID": Utils.checkOperationID(operationID), "clientMsgID": clientMsgID,
}))); "operationID": Utils.checkOperationID(operationID),
}));
/// ///
/// [message] Future<dynamic> deleteAllMsgFromLocal({
Future deleteMessageFromLocalStorage({
required Message message,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'deleteMessageFromLocalStorage', 'deleteAllMsgFromLocal',
_buildParam(message.toJson() _buildParam({
..addAll({ "operationID": Utils.checkOperationID(operationID),
"operationID": Utils.checkOperationID(operationID), }));
})));
///
Future<dynamic> deleteAllMsgFromLocalAndSvr({
String? operationID,
}) =>
_channel.invokeMethod(
'deleteAllMsgFromLocalAndSvr',
_buildParam({
"operationID": Utils.checkOperationID(operationID),
}));
/// ///
/// [receiverID] id /// [receiverID] id
@ -148,37 +145,6 @@ class MessageManager {
})) }))
.then((value) => Utils.toObj(value, (map) => Message.fromJson(map))); .then((value) => Utils.toObj(value, (map) => Message.fromJson(map)));
/// c2c单条消息已读
/// [userID] userID
/// [messageIDList] clientMsgID集合
Future markC2CMessageAsRead({
required String userID,
required List<String> messageIDList,
String? operationID,
}) =>
_channel.invokeMethod(
'markC2CMessageAsRead',
_buildParam({
"messageIDList": messageIDList,
"userID": userID,
"operationID": Utils.checkOperationID(operationID),
}));
///
/// [groupID] id
/// [messageIDList] clientMsgID集合
Future markGroupMessageAsRead({
required String groupID,
required List<String> messageIDList,
String? operationID,
}) =>
_channel.invokeMethod(
'markGroupMessageAsRead',
_buildParam({
"messageIDList": messageIDList,
"groupID": groupID,
"operationID": Utils.checkOperationID(operationID),
}));
/// ///
/// [msgTip] /// [msgTip]
@ -489,14 +455,22 @@ class MessageManager {
/// ///
/// [data] /// [data]
Future<Message> createCardMessage({ Future<Message> createCardMessage({
required Map<String, dynamic> data, required String userID,
required String nickname,
String? faceURL,
String? ex,
String? operationID, String? operationID,
}) => }) =>
_channel _channel
.invokeMethod( .invokeMethod(
'createCardMessage', 'createCardMessage',
_buildParam({ _buildParam({
'cardMessage': data, 'cardMessage': {
'userID': userID,
'nickname': nickname,
'faceURL': faceURL,
'ex': ex,
},
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})) }))
.then((value) => Utils.toObj(value, (map) => Message.fromJson(map))); .then((value) => Utils.toObj(value, (map) => Message.fromJson(map)));
@ -519,32 +493,6 @@ class MessageManager {
})) }))
.then((value) => Utils.toObj(value, (map) => Message.fromJson(map))); .then((value) => Utils.toObj(value, (map) => Message.fromJson(map)));
///
/// [uid] id
Future<dynamic> clearC2CHistoryMessage({
required String uid,
String? operationID,
}) =>
_channel.invokeMethod(
'clearC2CHistoryMessage',
_buildParam({
"userID": uid,
"operationID": Utils.checkOperationID(operationID),
}));
///
/// [gid] id
Future<dynamic> clearGroupHistoryMessage({
required String gid,
String? operationID,
}) =>
_channel.invokeMethod(
'clearGroupHistoryMessage',
_buildParam({
"groupID": gid,
"operationID": Utils.checkOperationID(operationID),
}));
/// ///
/// [conversationID] null /// [conversationID] null
/// [keywordList] /// [keywordList]
@ -587,143 +535,77 @@ class MessageManager {
.then((value) => .then((value) =>
Utils.toObj(value, (map) => SearchResult.fromJson(map))); Utils.toObj(value, (map) => SearchResult.fromJson(map)));
/// ///
/// [message] /// [message]
Future<dynamic> deleteMessageFromLocalAndSvr({ Future revokeMessage({
required Message message, required String conversationID,
String? operationID, required String clientMsgID,
}) =>
_channel.invokeMethod(
'deleteMessageFromLocalAndSvr',
_buildParam(message.toJson()
..addAll({
"operationID": Utils.checkOperationID(operationID),
})));
///
Future<dynamic> deleteAllMsgFromLocal({
String? operationID,
}) =>
_channel.invokeMethod(
'deleteAllMsgFromLocal',
_buildParam({
"operationID": Utils.checkOperationID(operationID),
}));
///
Future<dynamic> deleteAllMsgFromLocalAndSvr({
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'deleteAllMsgFromLocalAndSvr', 'revokeMessage',
_buildParam({ _buildParam({
'conversationID': conversationID,
'clientMsgID': clientMsgID,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));
/// ///
/// [conversationID] ID /// [conversationID] ID
/// [messageIDList] clientMsgID /// [messageIDList] clientMsgID
Future markMessageAsReadByConID({ Future markMessagesAsReadByMsgID({
required String conversationID, required String conversationID,
required List<String> messageIDList, required List<String> messageIDList,
String? operationID, String? operationID,
}) => }) =>
_channel.invokeMethod( _channel.invokeMethod(
'markMessageAsReadByConID', 'markMessagesAsReadByMsgID',
_buildParam({ _buildParam({
"messageIDList": messageIDList,
"conversationID": conversationID, "conversationID": conversationID,
"messageIDList": messageIDList,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})); }));
/// /// (startMsg为节点)
/// [uid] userID
Future<dynamic> clearC2CHistoryMessageFromLocalAndSvr({
required String uid,
String? operationID,
}) =>
_channel.invokeMethod(
'clearC2CHistoryMessageFromLocalAndSvr',
_buildParam({
"userID": uid,
"operationID": Utils.checkOperationID(operationID),
}));
///
/// [gid] id
Future<dynamic> clearGroupHistoryMessageFromLocalAndSvr({
required String gid,
String? operationID,
}) =>
_channel.invokeMethod(
'clearGroupHistoryMessageFromLocalAndSvr',
_buildParam({
"groupID": gid,
"operationID": Utils.checkOperationID(operationID),
}));
/// (startMsg为节点)
/// [userID] id
/// [conversationID] id /// [conversationID] id
/// [groupID] id /// [startMsg] [count]index==length-1startMsg=list.first
/// [startMsg] [count]index==length-1startMsg=list.last
/// [count] /// [count]
Future<List<Message>> getHistoryMessageListReverse({ /// [lastMinSeq] [startMsg]
String? userID, Future<AdvancedMessage> getAdvancedHistoryMessageList({
String? groupID,
String? conversationID, String? conversationID,
Message? startMsg, Message? startMsg,
int? lastMinSeq,
int? count, int? count,
String? operationID, String? operationID,
}) => }) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getHistoryMessageListReverse', 'getAdvancedHistoryMessageList',
_buildParam({ _buildParam({
'userID': userID ?? '',
'groupID': groupID ?? '',
'conversationID': conversationID ?? '', 'conversationID': conversationID ?? '',
'startClientMsgID': startMsg?.clientMsgID ?? '', 'startClientMsgID': startMsg?.clientMsgID ?? '',
'count': count ?? 10, 'count': count ?? 40,
'lastMinSeq': lastMinSeq ?? 0,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})) }))
.then((value) => Utils.toList(value, (map) => Message.fromJson(map))); .then((value) =>
Utils.toObj(value, (map) => AdvancedMessage.fromJson(map)));
///
/// [message]
Future revokeMessageV2({
required Message message,
String? operationID,
}) =>
_channel.invokeMethod(
'newRevokeMessage',
_buildParam(message.toJson()
..addAll({
"operationID": Utils.checkOperationID(operationID),
})));
/// (startMsg为节点) /// (startMsg为节点)
/// [userID] id
/// [conversationID] id /// [conversationID] id
/// [groupID] id /// [startMsg] [count]index==length-1startMsg=list.last
/// [startMsg] [count]index==length-1startMsg=list.first
/// [count] /// [count]
/// [lastMinSeq] [startMsg] Future<AdvancedMessage> getAdvancedHistoryMessageListReverse({
Future<AdvancedMessage> getAdvancedHistoryMessageList({
String? userID,
String? groupID,
String? conversationID, String? conversationID,
int? lastMinSeq,
Message? startMsg, Message? startMsg,
int? lastMinSeq,
int? count, int? count,
String? operationID, String? operationID,
}) => }) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getAdvancedHistoryMessageList', 'getAdvancedHistoryMessageListReverse',
_buildParam({ _buildParam({
'userID': userID ?? '',
'groupID': groupID ?? '',
'conversationID': conversationID ?? '', 'conversationID': conversationID ?? '',
'startClientMsgID': startMsg?.clientMsgID ?? '', 'startClientMsgID': startMsg?.clientMsgID ?? '',
'count': count ?? 40, 'count': count ?? 40,
@ -876,7 +758,7 @@ class MessageManager {
})) }))
.then((value) => Utils.toObj(value, (map) => Message.fromJson(map))); .then((value) => Utils.toObj(value, (map) => Message.fromJson(map)));
/// ///
Future setCustomBusinessListener(OnCustomBusinessListener listener) { Future setCustomBusinessListener(OnCustomBusinessListener listener) {
this.customBusinessListener = listener; this.customBusinessListener = listener;
return _channel.invokeMethod('setCustomBusinessListener', _buildParam({})); return _channel.invokeMethod('setCustomBusinessListener', _buildParam({}));

@ -1,162 +1,162 @@
import 'package:flutter/services.dart'; // import 'package:flutter/services.dart';
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; // import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
//
class OrganizationManager { // class OrganizationManager {
MethodChannel _channel; // MethodChannel _channel;
late OnOrganizationListener listener; // late OnOrganizationListener listener;
//
OrganizationManager(this._channel); // OrganizationManager(this._channel);
//
/// // ///
Future setOrganizationListener(OnOrganizationListener listener) { // Future setOrganizationListener(OnOrganizationListener listener) {
this.listener = listener; // this.listener = listener;
return _channel.invokeMethod('setOrganizationListener', _buildParam({})); // return _channel.invokeMethod('setOrganizationListener', _buildParam({}));
} // }
//
/// // ///
/// [departmentID] id // /// [departmentID] id
/// [offset] // /// [offset]
/// [count] // /// [count]
Future<List<DeptInfo>> getSubDept({ // Future<List<DeptInfo>> getSubDept({
required String departmentID, // required String departmentID,
int offset = 0, // int offset = 0,
int count = 40, // int count = 40,
String? operationID, // String? operationID,
}) => // }) =>
_channel // _channel
.invokeMethod( // .invokeMethod(
'getSubDepartment', // 'getSubDepartment',
_buildParam({ // _buildParam({
'departmentID': departmentID, // 'departmentID': departmentID,
'offset': offset, // 'offset': offset,
'count': count, // 'count': count,
'operationID': Utils.checkOperationID(operationID), // 'operationID': Utils.checkOperationID(operationID),
})) // }))
.then((value) => Utils.toList(value, (v) => DeptInfo.fromJson(v))); // .then((value) => Utils.toList(value, (v) => DeptInfo.fromJson(v)));
//
/// // ///
/// [departmentID] id // /// [departmentID] id
/// [offset] // /// [offset]
/// [count] // /// [count]
Future<List<DeptMemberInfo>> getDeptMember({ // Future<List<DeptMemberInfo>> getDeptMember({
required String departmentID, // required String departmentID,
int offset = 0, // int offset = 0,
int count = 40, // int count = 40,
String? operationID, // String? operationID,
}) => // }) =>
_channel // _channel
.invokeMethod( // .invokeMethod(
'getDepartmentMember', // 'getDepartmentMember',
_buildParam({ // _buildParam({
'departmentID': departmentID, // 'departmentID': departmentID,
'offset': offset, // 'offset': offset,
'count': count, // 'count': count,
'operationID': Utils.checkOperationID(operationID), // 'operationID': Utils.checkOperationID(operationID),
})) // }))
.then((value) => // .then((value) =>
Utils.toList(value, (v) => DeptMemberInfo.fromJson(v))); // Utils.toList(value, (v) => DeptMemberInfo.fromJson(v)));
//
/// // ///
/// [userID] ID // /// [userID] ID
Future<List<UserInDept>> getUserInDept({ // Future<List<UserInDept>> getUserInDept({
required String userID, // required String userID,
String? operationID, // String? operationID,
}) => // }) =>
_channel // _channel
.invokeMethod( // .invokeMethod(
'getUserInDepartment', // 'getUserInDepartment',
_buildParam({ // _buildParam({
'userID': userID, // 'userID': userID,
'operationID': Utils.checkOperationID(operationID), // 'operationID': Utils.checkOperationID(operationID),
})) // }))
.then((value) => Utils.toList(value, (v) => UserInDept.fromJson(v))); // .then((value) => Utils.toList(value, (v) => UserInDept.fromJson(v)));
//
/// // ///
/// [departmentID] id // /// [departmentID] id
Future<DeptMemberAndSubDept> getDeptMemberAndSubDept({ // Future<DeptMemberAndSubDept> getDeptMemberAndSubDept({
required String departmentID, // required String departmentID,
// int departmentOffset = 0, // // int departmentOffset = 0,
// int departmentCount = 40, // // int departmentCount = 40,
// int memberOffset = 0, // // int memberOffset = 0,
// int memberCount = 40, // // int memberCount = 40,
String? operationID, // String? operationID,
}) => // }) =>
_channel // _channel
.invokeMethod( // .invokeMethod(
'getDepartmentMemberAndSubDepartment', // 'getDepartmentMemberAndSubDepartment',
_buildParam({ // _buildParam({
'departmentID': departmentID, // 'departmentID': departmentID,
// 'departmentOffset': departmentOffset, // // 'departmentOffset': departmentOffset,
// 'departmentCount': departmentCount, // // 'departmentCount': departmentCount,
// 'memberOffset': memberOffset, // // 'memberOffset': memberOffset,
// 'memberCount': memberCount, // // 'memberCount': memberCount,
'operationID': Utils.checkOperationID(operationID), // 'operationID': Utils.checkOperationID(operationID),
})) // }))
.then((value) => // .then((value) =>
Utils.toObj(value, (v) => DeptMemberAndSubDept.fromJson(v))); // Utils.toObj(value, (v) => DeptMemberAndSubDept.fromJson(v)));
//
/// // ///
/// [departmentID] ID // /// [departmentID] ID
Future<DeptInfo> getDeptInfo({ // Future<DeptInfo> getDeptInfo({
required String departmentID, // required String departmentID,
String? operationID, // String? operationID,
}) => // }) =>
_channel // _channel
.invokeMethod( // .invokeMethod(
'getDepartmentInfo', // 'getDepartmentInfo',
_buildParam({ // _buildParam({
'departmentID': departmentID, // 'departmentID': departmentID,
'operationID': Utils.checkOperationID(operationID), // 'operationID': Utils.checkOperationID(operationID),
})) // }))
.then((value) => Utils.toObj(value, (v) => DeptInfo.fromJson(v))); // .then((value) => Utils.toObj(value, (v) => DeptInfo.fromJson(v)));
//
/// // ///
/// [keyWord] // /// [keyWord]
/// [isSearchUserName] // /// [isSearchUserName]
/// [isSearchEnglishName] // /// [isSearchEnglishName]
/// [isSearchPosition] // /// [isSearchPosition]
/// [isSearchUserID] ID // /// [isSearchUserID] ID
/// [isSearchMobile] // /// [isSearchMobile]
/// [isSearchEmail] // /// [isSearchEmail]
/// [isSearchTelephone] // /// [isSearchTelephone]
/// [offset] // /// [offset]
/// [count] // /// [count]
Future<OrganizationSearchResult> searchOrganization({ // Future<OrganizationSearchResult> searchOrganization({
required String keyWord, // required String keyWord,
bool isSearchUserName = false, // bool isSearchUserName = false,
bool isSearchEnglishName = false, // bool isSearchEnglishName = false,
bool isSearchPosition = false, // bool isSearchPosition = false,
bool isSearchUserID = false, // bool isSearchUserID = false,
bool isSearchMobile = false, // bool isSearchMobile = false,
bool isSearchEmail = false, // bool isSearchEmail = false,
bool isSearchTelephone = false, // bool isSearchTelephone = false,
int offset = 0, // int offset = 0,
int count = 40, // int count = 40,
String? operationID, // String? operationID,
}) => // }) =>
_channel // _channel
.invokeMethod( // .invokeMethod(
'searchOrganization', // 'searchOrganization',
_buildParam({ // _buildParam({
'searchParam': { // 'searchParam': {
'keyWord': keyWord, // 'keyWord': keyWord,
'isSearchUserName': isSearchUserName, // 'isSearchUserName': isSearchUserName,
'isSearchEnglishName': isSearchEnglishName, // 'isSearchEnglishName': isSearchEnglishName,
'isSearchPosition': isSearchPosition, // 'isSearchPosition': isSearchPosition,
'isSearchUserID': isSearchUserID, // 'isSearchUserID': isSearchUserID,
'isSearchMobile': isSearchMobile, // 'isSearchMobile': isSearchMobile,
'isSearchEmail': isSearchEmail, // 'isSearchEmail': isSearchEmail,
'isSearchTelephone': isSearchTelephone, // 'isSearchTelephone': isSearchTelephone,
}, // },
'offset': offset, // 'offset': offset,
'count': count, // 'count': count,
'operationID': Utils.checkOperationID(operationID), // 'operationID': Utils.checkOperationID(operationID),
})) // }))
.then((value) => // .then((value) =>
Utils.toObj(value, (v) => OrganizationSearchResult.fromJson(v))); // Utils.toObj(value, (v) => OrganizationSearchResult.fromJson(v)));
//
static Map _buildParam(Map param) { // static Map _buildParam(Map param) {
param["ManagerName"] = "organizationManager"; // param["ManagerName"] = "organizationManager";
return param; // return param;
} // }
} // }

@ -14,16 +14,16 @@ class UserManager {
} }
/// ///
/// [uidList] ID列表 /// [userIDList] ID列表
Future<List<UserInfo>> getUsersInfo({ Future<List<UserInfo>> getUsersInfo({
required List<String> uidList, required List<String> userIDList,
String? operationID, String? operationID,
}) => }) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getUsersInfo', 'getUsersInfo',
_buildParam({ _buildParam({
'uidList': uidList, 'userIDList': userIDList,
'operationID': Utils.checkOperationID(operationID), 'operationID': Utils.checkOperationID(operationID),
})) }))
.then((value) => Utils.toList(value, (v) => UserInfo.fromJson(v))); .then((value) => Utils.toList(value, (v) => UserInfo.fromJson(v)));

@ -1,61 +1,61 @@
import 'package:flutter/services.dart'; // import 'package:flutter/services.dart';
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; // import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
//
class WorkMomentsManager { // class WorkMomentsManager {
MethodChannel _channel; // MethodChannel _channel;
late OnWorkMomentsListener listener; // late OnWorkMomentsListener listener;
//
WorkMomentsManager(this._channel); // WorkMomentsManager(this._channel);
//
/// // ///
Future setWorkMomentsListener(OnWorkMomentsListener listener) { // Future setWorkMomentsListener(OnWorkMomentsListener listener) {
this.listener = listener; // this.listener = listener;
return _channel.invokeMethod('setWorkMomentsListener', _buildParam({})); // return _channel.invokeMethod('setWorkMomentsListener', _buildParam({}));
} // }
//
/// // ///
Future<int> getWorkMomentsUnReadCount({ // Future<int> getWorkMomentsUnReadCount({
String? operationID, // String? operationID,
}) => // }) =>
_channel // _channel
.invokeMethod( // .invokeMethod(
'getWorkMomentsUnReadCount', // 'getWorkMomentsUnReadCount',
_buildParam({ // _buildParam({
'operationID': Utils.checkOperationID(operationID), // 'operationID': Utils.checkOperationID(operationID),
})) // }))
.then((value) => Utils.toObj(value, (map) => map['unreadCount'])); // .then((value) => Utils.toObj(value, (map) => map['unreadCount']));
//
/// // ///
/// [offset] // /// [offset]
/// [count] // /// [count]
Future<List<WorkMomentsInfo>> getWorkMomentsNotification({ // Future<List<WorkMomentsInfo>> getWorkMomentsNotification({
required int offset, // required int offset,
required int count, // required int count,
String? operationID, // String? operationID,
}) => // }) =>
_channel // _channel
.invokeMethod( // .invokeMethod(
'getWorkMomentsNotification', // 'getWorkMomentsNotification',
_buildParam({ // _buildParam({
'offset': offset, // 'offset': offset,
'count': count, // 'count': count,
'operationID': Utils.checkOperationID(operationID), // 'operationID': Utils.checkOperationID(operationID),
})) // }))
.then((value) => // .then((value) =>
Utils.toList(value, (map) => WorkMomentsInfo.fromJson(map))); // Utils.toList(value, (map) => WorkMomentsInfo.fromJson(map)));
//
/// // ///
Future clearWorkMomentsNotification({ // Future clearWorkMomentsNotification({
String? operationID, // String? operationID,
}) => // }) =>
_channel.invokeMethod( // _channel.invokeMethod(
'clearWorkMomentsNotification', // 'clearWorkMomentsNotification',
_buildParam({ // _buildParam({
'operationID': Utils.checkOperationID(operationID), // 'operationID': Utils.checkOperationID(operationID),
})); // }));
//
static Map _buildParam(Map param) { // static Map _buildParam(Map param) {
param["ManagerName"] = "workMomentsManager"; // param["ManagerName"] = "workMomentsManager";
return param; // return param;
} // }
} // }

@ -43,7 +43,7 @@ class Message {
String? groupID; String? groupID;
/// ///
String? content; // String? content;
/// seq /// seq
int? seq; int? seq;
@ -57,6 +57,10 @@ class Message {
/// [MessageStatus] /// [MessageStatus]
int? status; int? status;
bool? isReact;
bool? isExternalExtensions;
/// 线 /// 线
OfflinePushInfo? offlinePush; OfflinePushInfo? offlinePush;
@ -67,7 +71,7 @@ class Message {
String? ex; String? ex;
/// ///
dynamic ext; Map<String, dynamic> exMap = {};
/// ///
PictureElem? pictureElem; PictureElem? pictureElem;
@ -82,7 +86,7 @@ class Message {
FileElem? fileElem; FileElem? fileElem;
/// @ /// @
AtElem? atElem; AtTextElem? atTextElem;
/// ///
LocationElem? locationElem; LocationElem? locationElem;
@ -105,9 +109,17 @@ class Message {
/// ///
AttachedInfoElem? attachedInfoElem; AttachedInfoElem? attachedInfoElem;
bool? isReact; ///
TextElem? textElem;
///
CardElem? cardElem;
bool? isExternal; ///
AdvancedTextElem? advancedTextElem;
///
TypingElem? typingElem;
Message({ Message({
this.clientMsgID, this.clientMsgID,
@ -123,7 +135,7 @@ class Message {
this.senderNickname, this.senderNickname,
this.senderFaceUrl, this.senderFaceUrl,
this.groupID, this.groupID,
this.content, // this.content,
this.seq, this.seq,
this.isRead, this.isRead,
this.hasReadTime, this.hasReadTime,
@ -131,12 +143,12 @@ class Message {
this.offlinePush, this.offlinePush,
this.attachedInfo, this.attachedInfo,
this.ex, this.ex,
this.ext, this.exMap = const <String, dynamic>{},
this.pictureElem, this.pictureElem,
this.soundElem, this.soundElem,
this.videoElem, this.videoElem,
this.fileElem, this.fileElem,
this.atElem, this.atTextElem,
this.locationElem, this.locationElem,
this.customElem, this.customElem,
this.quoteElem, this.quoteElem,
@ -144,8 +156,12 @@ class Message {
this.notificationElem, this.notificationElem,
this.faceElem, this.faceElem,
this.attachedInfoElem, this.attachedInfoElem,
this.isExternal, this.isExternalExtensions,
this.isReact, this.isReact,
this.textElem,
this.cardElem,
this.advancedTextElem,
this.typingElem,
}); });
Message.fromJson(Map<String, dynamic> json) { Message.fromJson(Map<String, dynamic> json) {
@ -161,7 +177,7 @@ class Message {
senderNickname = json['senderNickname']; senderNickname = json['senderNickname'];
senderFaceUrl = json['senderFaceUrl']; senderFaceUrl = json['senderFaceUrl'];
groupID = json['groupID']; groupID = json['groupID'];
content = json['content']; // content = json['content'];
seq = json['seq']; seq = json['seq'];
isRead = json['isRead']; isRead = json['isRead'];
status = json['status']; status = json['status'];
@ -170,7 +186,7 @@ class Message {
: null; : null;
attachedInfo = json['attachedInfo']; attachedInfo = json['attachedInfo'];
ex = json['ex']; ex = json['ex'];
ext = json['ext']; exMap = json['exMap'] ?? {};
sessionType = json['sessionType']; sessionType = json['sessionType'];
pictureElem = json['pictureElem'] != null pictureElem = json['pictureElem'] != null
? PictureElem.fromJson(json['pictureElem']) ? PictureElem.fromJson(json['pictureElem'])
@ -183,7 +199,9 @@ class Message {
: null; : null;
fileElem = fileElem =
json['fileElem'] != null ? FileElem.fromJson(json['fileElem']) : null; json['fileElem'] != null ? FileElem.fromJson(json['fileElem']) : null;
atElem = json['atElem'] != null ? AtElem.fromJson(json['atElem']) : null; atTextElem = json['atTextElem'] != null
? AtTextElem.fromJson(json['atTextElem'])
: null;
locationElem = json['locationElem'] != null locationElem = json['locationElem'] != null
? LocationElem.fromJson(json['locationElem']) ? LocationElem.fromJson(json['locationElem'])
: null; : null;
@ -206,8 +224,18 @@ class Message {
? AttachedInfoElem.fromJson(json['attachedInfoElem']) ? AttachedInfoElem.fromJson(json['attachedInfoElem'])
: null; : null;
hasReadTime = json['hasReadTime'] ?? attachedInfoElem?.hasReadTime; hasReadTime = json['hasReadTime'] ?? attachedInfoElem?.hasReadTime;
isExternal = json['isExternal']; isExternalExtensions = json['isExternalExtensions'];
isReact = json['isReact']; isReact = json['isReact'];
textElem =
json['textElem'] != null ? TextElem.fromJson(json['textElem']) : null;
cardElem =
json['cardElem'] != null ? CardElem.fromJson(json['cardElem']) : null;
advancedTextElem = json['advancedTextElem'] != null
? AdvancedTextElem.fromJson(json['advancedTextElem'])
: null;
typingElem = json['typingElem'] != null
? TypingElem.fromJson(json['typingElem'])
: null;
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -224,7 +252,7 @@ class Message {
data['senderNickname'] = this.senderNickname; data['senderNickname'] = this.senderNickname;
data['senderFaceUrl'] = this.senderFaceUrl; data['senderFaceUrl'] = this.senderFaceUrl;
data['groupID'] = this.groupID; data['groupID'] = this.groupID;
data['content'] = this.content; // data['content'] = this.content;
data['seq'] = this.seq; data['seq'] = this.seq;
data['isRead'] = this.isRead; data['isRead'] = this.isRead;
data['hasReadTime'] = this.hasReadTime; data['hasReadTime'] = this.hasReadTime;
@ -232,13 +260,13 @@ class Message {
data['offlinePush'] = this.offlinePush?.toJson(); data['offlinePush'] = this.offlinePush?.toJson();
data['attachedInfo'] = this.attachedInfo; data['attachedInfo'] = this.attachedInfo;
data['ex'] = this.ex; data['ex'] = this.ex;
data['ext'] = this.ext; data['exMap'] = this.exMap;
data['sessionType'] = this.sessionType; data['sessionType'] = this.sessionType;
data['pictureElem'] = this.pictureElem?.toJson(); data['pictureElem'] = this.pictureElem?.toJson();
data['soundElem'] = this.soundElem?.toJson(); data['soundElem'] = this.soundElem?.toJson();
data['videoElem'] = this.videoElem?.toJson(); data['videoElem'] = this.videoElem?.toJson();
data['fileElem'] = this.fileElem?.toJson(); data['fileElem'] = this.fileElem?.toJson();
data['atElem'] = this.atElem?.toJson(); data['atTextElem'] = this.atTextElem?.toJson();
data['locationElem'] = this.locationElem?.toJson(); data['locationElem'] = this.locationElem?.toJson();
data['customElem'] = this.customElem?.toJson(); data['customElem'] = this.customElem?.toJson();
data['quoteElem'] = this.quoteElem?.toJson(); data['quoteElem'] = this.quoteElem?.toJson();
@ -246,8 +274,12 @@ class Message {
data['notificationElem'] = this.notificationElem?.toJson(); data['notificationElem'] = this.notificationElem?.toJson();
data['faceElem'] = this.faceElem?.toJson(); data['faceElem'] = this.faceElem?.toJson();
data['attachedInfoElem'] = this.attachedInfoElem?.toJson(); data['attachedInfoElem'] = this.attachedInfoElem?.toJson();
data['isExternal'] = this.isExternal; data['isExternalExtensions'] = this.isExternalExtensions;
data['isReact'] = this.isReact; data['isReact'] = this.isReact;
data['textElem'] = this.textElem?.toJson();
data['cardElem'] = this.cardElem?.toJson();
data['advancedTextElem'] = this.advancedTextElem?.toJson();
data['typingElem'] = this.typingElem?.toJson();
return data; return data;
} }
@ -274,7 +306,7 @@ class Message {
senderNickname = message.senderNickname; senderNickname = message.senderNickname;
senderFaceUrl = message.senderFaceUrl; senderFaceUrl = message.senderFaceUrl;
groupID = message.groupID; groupID = message.groupID;
content = message.content; // content = message.content;
seq = message.seq; seq = message.seq;
isRead = message.isRead; isRead = message.isRead;
hasReadTime = message.hasReadTime; hasReadTime = message.hasReadTime;
@ -282,13 +314,13 @@ class Message {
offlinePush = message.offlinePush; offlinePush = message.offlinePush;
attachedInfo = message.attachedInfo; attachedInfo = message.attachedInfo;
ex = message.ex; ex = message.ex;
ext = message.ext; exMap = message.exMap;
sessionType = message.sessionType; sessionType = message.sessionType;
pictureElem = message.pictureElem; pictureElem = message.pictureElem;
soundElem = message.soundElem; soundElem = message.soundElem;
videoElem = message.videoElem; videoElem = message.videoElem;
fileElem = message.fileElem; fileElem = message.fileElem;
atElem = message.atElem; atTextElem = message.atTextElem;
locationElem = message.locationElem; locationElem = message.locationElem;
customElem = message.customElem; customElem = message.customElem;
quoteElem = message.quoteElem; quoteElem = message.quoteElem;
@ -296,6 +328,10 @@ class Message {
notificationElem = message.notificationElem; notificationElem = message.notificationElem;
faceElem = message.faceElem; faceElem = message.faceElem;
attachedInfoElem = message.attachedInfoElem; attachedInfoElem = message.attachedInfoElem;
textElem = message.textElem;
cardElem = message.cardElem;
advancedTextElem = message.advancedTextElem;
typingElem = message.typingElem;
} }
/// ///
@ -568,7 +604,7 @@ class FileElem {
} }
/// @ /// @
class AtElem { class AtTextElem {
/// ///
String? text; String? text;
@ -584,7 +620,7 @@ class AtElem {
/// @ /// @
Message? quoteMessage; Message? quoteMessage;
AtElem({ AtTextElem({
this.text, this.text,
this.atUserList, this.atUserList,
this.isAtSelf, this.isAtSelf,
@ -592,7 +628,7 @@ class AtElem {
this.quoteMessage, this.quoteMessage,
}); });
AtElem.fromJson(Map<String, dynamic> json) { AtTextElem.fromJson(Map<String, dynamic> json) {
text = json['text']; text = json['text'];
if (json['atUserList'] is List) { if (json['atUserList'] is List) {
atUserList = (json['atUserList'] as List).map((e) => '$e').toList(); atUserList = (json['atUserList'] as List).map((e) => '$e').toList();
@ -836,6 +872,115 @@ class AttachedInfoElem {
} }
} }
class TextElem {
String? content;
TextElem({this.content});
TextElem.fromJson(Map<String, dynamic> json) {
content = json['content'];
}
Map<String, dynamic> toJson() {
final data = Map<String, dynamic>();
data['content'] = content;
return data;
}
}
class CardElem {
String? userID;
String? nickname;
String? faceURL;
String? ex;
CardElem({this.userID, this.nickname, this.faceURL, this.ex});
CardElem.fromJson(Map<String, dynamic> json) {
userID = json['userID'];
nickname = json['nickname'];
faceURL = json['faceURL'];
ex = json['ex'];
}
Map<String, dynamic> toJson() {
final data = Map<String, dynamic>();
data['userID'] = userID;
data['nickname'] = nickname;
data['faceURL'] = faceURL;
data['ex'] = ex;
return data;
}
}
class TypingElem {
String? msgTips;
TypingElem({this.msgTips});
TypingElem.fromJson(Map<String, dynamic> json) {
msgTips = json['msgTips'];
}
Map<String, dynamic> toJson() {
final data = Map<String, dynamic>();
data['msgTips'] = msgTips;
return data;
}
}
class AdvancedTextElem {
String? text;
List<MessageEntity>? messageEntityList;
AdvancedTextElem({this.text, this.messageEntityList});
AdvancedTextElem.fromJson(Map<String, dynamic> json) {
text = json['text'];
messageEntityList = json['messageEntityList'] == null
? null
: (json['messageEntityList'] as List)
.map((e) => MessageEntity.fromJson(e))
.toList();
}
Map<String, dynamic> toJson() {
final data = Map<String, dynamic>();
data['text'] = text;
data['messageEntityList'] =
messageEntityList?.map((e) => e.toJson()).toList();
return data;
}
}
class MessageEntity {
String? type;
int? offset;
int? length;
String? url;
String? ex;
MessageEntity({this.type, this.offset, this.length, this.url, this.ex});
MessageEntity.fromJson(Map<String, dynamic> json) {
type = json['type'];
offset = json['offset'];
length = json['length'];
url = json['url'];
ex = json['ex'];
}
Map<String, dynamic> toJson() {
final data = Map<String, dynamic>();
data['type'] = type;
data['offset'] = offset;
data['length'] = length;
data['url'] = url;
data['ex'] = ex;
return data;
}
}
/// ///
class GroupHasReadInfo { class GroupHasReadInfo {
/// id列表 /// id列表

@ -20,11 +20,8 @@ class UserInfo {
/// ///
String? phoneNumber; String? phoneNumber;
/// 使[birthTime]
int? birth;
/// ///
String? birthTime; int? birth;
/// ///
String? email; String? email;
@ -38,21 +35,6 @@ class UserInfo {
/// ///
String? remark; String? remark;
///
PublicUserInfo? publicInfo;
///
FriendInfo? friendInfo;
///
BlacklistInfo? blackInfo;
///
bool? isFriendship;
///
bool? isBlacklist;
/// 012线线 /// 012线线
int? globalRecvMsgOpt; int? globalRecvMsgOpt;
@ -68,6 +50,21 @@ class UserInfo {
/// ///
int? forbidden; int? forbidden;
///
PublicUserInfo? publicInfo;
///
FriendInfo? friendInfo;
///
BlacklistInfo? blackInfo;
///
bool? isFriendship;
///
bool? isBlacklist;
UserInfo({ UserInfo({
this.publicInfo, this.publicInfo,
this.friendInfo, this.friendInfo,
@ -80,7 +77,6 @@ class UserInfo {
this.faceURL, this.faceURL,
this.phoneNumber, this.phoneNumber,
this.birth, this.birth,
this.birthTime,
this.gender, this.gender,
this.email, this.email,
this.ex, this.ex,
@ -125,7 +121,6 @@ class UserInfo {
gender = json['gender'] ?? _gender; gender = json['gender'] ?? _gender;
phoneNumber = json['phoneNumber'] ?? _phoneNumber; phoneNumber = json['phoneNumber'] ?? _phoneNumber;
birth = json['birth'] ?? _birth; birth = json['birth'] ?? _birth;
birthTime = json['birthTime'] ?? _birthTime;
email = json['email'] ?? _email; email = json['email'] ?? _email;
remark = json['remark'] ?? _remark; remark = json['remark'] ?? _remark;
ex = json['ex'] ?? _ex; ex = json['ex'] ?? _ex;
@ -151,7 +146,6 @@ class UserInfo {
data['gender'] = this.gender; data['gender'] = this.gender;
data['phoneNumber'] = this.phoneNumber; data['phoneNumber'] = this.phoneNumber;
data['birth'] = this.birth; data['birth'] = this.birth;
data['birthTime'] = this.birthTime;
data['email'] = this.email; data['email'] = this.email;
data['ex'] = this.ex; data['ex'] = this.ex;
data['createTime'] = this.createTime; data['createTime'] = this.createTime;

@ -1,56 +1,56 @@
class WorkMomentsInfo { // class WorkMomentsInfo {
int? notificationMsgType; // int? notificationMsgType;
String? replyUserName; // String? replyUserName;
String? replyUserID; // String? replyUserID;
String? content; // String? content;
String? contentID; // String? contentID;
String? workMomentID; // String? workMomentID;
String? userID; // String? userID;
String? userName; // String? userName;
String? faceURL; // String? faceURL;
String? workMomentContent; // String? workMomentContent;
int? createTime; // int? createTime;
//
WorkMomentsInfo( // WorkMomentsInfo(
{this.notificationMsgType, // {this.notificationMsgType,
this.replyUserName, // this.replyUserName,
this.replyUserID, // this.replyUserID,
this.content, // this.content,
this.contentID, // this.contentID,
this.workMomentID, // this.workMomentID,
this.userID, // this.userID,
this.userName, // this.userName,
this.faceURL, // this.faceURL,
this.workMomentContent, // this.workMomentContent,
this.createTime}); // this.createTime});
//
WorkMomentsInfo.fromJson(Map<String, dynamic> json) { // WorkMomentsInfo.fromJson(Map<String, dynamic> json) {
notificationMsgType = json['notificationMsgType']; // notificationMsgType = json['notificationMsgType'];
replyUserName = json['replyUserName']; // replyUserName = json['replyUserName'];
replyUserID = json['replyUserID']; // replyUserID = json['replyUserID'];
content = json['content']; // content = json['content'];
contentID = json['contentID']; // contentID = json['contentID'];
workMomentID = json['workMomentID']; // workMomentID = json['workMomentID'];
userID = json['userID']; // userID = json['userID'];
userName = json['userName']; // userName = json['userName'];
faceURL = json['faceURL']; // faceURL = json['faceURL'];
workMomentContent = json['workMomentContent']; // workMomentContent = json['workMomentContent'];
createTime = json['createTime']; // createTime = json['createTime'];
} // }
//
Map<String, dynamic> toJson() { // Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); // final Map<String, dynamic> data = new Map<String, dynamic>();
data['notificationMsgType'] = this.notificationMsgType; // data['notificationMsgType'] = this.notificationMsgType;
data['replyUserName'] = this.replyUserName; // data['replyUserName'] = this.replyUserName;
data['replyUserID'] = this.replyUserID; // data['replyUserID'] = this.replyUserID;
data['content'] = this.content; // data['content'] = this.content;
data['contentID'] = this.contentID; // data['contentID'] = this.contentID;
data['workMomentID'] = this.workMomentID; // data['workMomentID'] = this.workMomentID;
data['userID'] = this.userID; // data['userID'] = this.userID;
data['userName'] = this.userName; // data['userName'] = this.userName;
data['faceURL'] = this.faceURL; // data['faceURL'] = this.faceURL;
data['workMomentContent'] = this.workMomentContent; // data['workMomentContent'] = this.workMomentContent;
data['createTime'] = this.createTime; // data['createTime'] = this.createTime;
return data; // return data;
} // }
} // }

Loading…
Cancel
Save