diff --git a/android/build.gradle b/android/build.gradle index a73f288..355ef99 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -53,5 +53,5 @@ dependencies { // 本地依赖,现将aar复制到libs/io/openim/core-sdk/0.0.1/ 下,命名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' - implementation 'io.openim:core-sdk:3.0.0-beta06@aar' + implementation 'io.openim:core-sdk:3.0.0-beta08@aar' } \ No newline at end of file diff --git a/lib/flutter_openim_sdk.dart b/lib/flutter_openim_sdk.dart index 57726f3..b3545cd 100644 --- a/lib/flutter_openim_sdk.dart +++ b/lib/flutter_openim_sdk.dart @@ -7,6 +7,7 @@ export 'src/enum/group_type.dart'; export 'src/enum/group_verification.dart'; export 'src/enum/im_platform.dart'; export 'src/enum/listener_type.dart'; +export 'src/enum/login_status.dart'; export 'src/enum/message_status.dart'; export 'src/enum/message_type.dart'; export 'src/enum/sdk_error_code.dart'; diff --git a/lib/src/enum/login_status.dart b/lib/src/enum/login_status.dart new file mode 100644 index 0000000..92dac53 --- /dev/null +++ b/lib/src/enum/login_status.dart @@ -0,0 +1,5 @@ +class LoginStatus { + static const logout = 1; + static const logging = 2; + static const logged = 3; +} diff --git a/lib/src/enum/sdk_error_code.dart b/lib/src/enum/sdk_error_code.dart index de63dae..df63105 100644 --- a/lib/src/enum/sdk_error_code.dart +++ b/lib/src/enum/sdk_error_code.dart @@ -8,7 +8,6 @@ class MessageFailedCode { /// 已被移除群聊/群已解散 static const int notInGroup = 1205; - } /// 添加好友失败 diff --git a/lib/src/manager/im_conversation_manager.dart b/lib/src/manager/im_conversation_manager.dart index 758562c..c6e67df 100644 --- a/lib/src/manager/im_conversation_manager.dart +++ b/lib/src/manager/im_conversation_manager.dart @@ -73,13 +73,13 @@ class ConversationManager { }) => _channel .invokeMethod( - 'getMultipleConversation', - _buildParam({ - "conversationIDList": conversationIDList, - "operationID": Utils.checkOperationID(operationID), - })) + 'getMultipleConversation', + _buildParam({ + "conversationIDList": conversationIDList, + "operationID": Utils.checkOperationID(operationID), + })) .then((value) => - Utils.toList(value, (map) => ConversationInfo.fromJson(map))); + Utils.toList(value, (map) => ConversationInfo.fromJson(map))); /// 设置会话草稿 /// [conversationID] 会话id @@ -314,20 +314,20 @@ class ConversationManager { : a.latestMsgSendTime!; int bCompare = b.draftTextTime! > b.latestMsgSendTime! ? b.draftTextTime! - : b.latestMsgSendTime!; - if (aCompare > bCompare) { - return -1; - } else if (aCompare < bCompare) { - return 1; - } else { - return 0; - } - } else if (a.isPinned == true && b.isPinned != true) { - return -1; - } else { - return 1; - } - }); + : b.latestMsgSendTime!; + if (aCompare > bCompare) { + return -1; + } else if (aCompare < bCompare) { + return 1; + } else { + return 0; + } + } else if (a.isPinned == true && b.isPinned != true) { + return -1; + } else { + return 1; + } + }); static Map _buildParam(Map param) { param["ManagerName"] = "conversationManager"; diff --git a/lib/src/manager/im_manager.dart b/lib/src/manager/im_manager.dart index 61a7060..3330dd1 100644 --- a/lib/src/manager/im_manager.dart +++ b/lib/src/manager/im_manager.dart @@ -467,10 +467,10 @@ class IMManager { required OnConnectListener listener, int logLevel = 6, String objectStorage = 'cos', - String? encryptionKey, - bool isNeedEncryption = false, - bool isCompression = false, - bool isExternalExtensions = false, + // String? encryptionKey, + // bool isNeedEncryption = false, + // bool isCompression = false, + // bool isExternalExtensions = false, bool isLogStandardOutput = true, String? logFilePath, String? operationID, @@ -487,10 +487,10 @@ class IMManager { "dataDir": dataDir, "logLevel": logLevel, "objectStorage": objectStorage, - "encryptionKey": encryptionKey, - "isNeedEncryption": isNeedEncryption, - "isCompression": isCompression, - "isExternalExtensions": isExternalExtensions, + // "encryptionKey": encryptionKey, + // "isNeedEncryption": isNeedEncryption, + // "isCompression": isCompression, + // "isExternalExtensions": isExternalExtensions, "isLogStandardOutput": isLogStandardOutput, "logFilePath": logFilePath, "operationID": Utils.checkOperationID(operationID), @@ -499,7 +499,7 @@ class IMManager { } /// 登录 - /// [uid] 用户id + /// [userID] 用户id /// [token] 登录token,从业务服务器上获取 /// [defaultValue] 获取失败后使用的默认值 Future login({ @@ -507,15 +507,23 @@ class IMManager { required String token, String? operationID, Future Function()? defaultValue, + bool checkLoginStatus = true, }) async { - await _channel.invokeMethod( - 'login', - _buildParam({ - 'userID': userID, - 'token': token, - 'operationID': Utils.checkOperationID(operationID), - }), - ); + int? status; + if (checkLoginStatus) { + // 1: logout 2: logging 3:logged + status = await getLoginStatus(); + } + if (status != LoginStatus.logging && status != LoginStatus.logged) { + await _channel.invokeMethod( + 'login', + _buildParam({ + 'userID': userID, + 'token': token, + 'operationID': Utils.checkOperationID(operationID), + }), + ); + } this.isLogined = true; this.userID = userID; this.token = token; @@ -544,6 +552,7 @@ class IMManager { } /// 获取登录状态 + /// 1: logout 2: logging 3:logged Future getLoginStatus() => _channel.invokeMethod('getLoginStatus', _buildParam({})); diff --git a/lib/src/manager/im_message_manager.dart b/lib/src/manager/im_message_manager.dart index c93c9a2..98a80bc 100644 --- a/lib/src/manager/im_message_manager.dart +++ b/lib/src/manager/im_message_manager.dart @@ -145,7 +145,6 @@ class MessageManager { })) .then((value) => Utils.toObj(value, (map) => Message.fromJson(map))); - /// 正在输入提示 /// [msgTip] 自定义内容 Future typingStatusUpdate({