Login to add login status judgment

main
hrxiang 2 years ago
parent 79cbae718c
commit 5bdb9879a7
  1. 2
      android/build.gradle
  2. 1
      lib/flutter_openim_sdk.dart
  3. 5
      lib/src/enum/login_status.dart
  4. 1
      lib/src/enum/sdk_error_code.dart
  5. 40
      lib/src/manager/im_conversation_manager.dart
  6. 43
      lib/src/manager/im_manager.dart
  7. 1
      lib/src/manager/im_message_manager.dart

@ -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'
implementation 'io.openim:core-sdk:3.0.0-beta06@aar' implementation 'io.openim:core-sdk:3.0.0-beta08@aar'
} }

@ -7,6 +7,7 @@ export 'src/enum/group_type.dart';
export 'src/enum/group_verification.dart'; export 'src/enum/group_verification.dart';
export 'src/enum/im_platform.dart'; export 'src/enum/im_platform.dart';
export 'src/enum/listener_type.dart'; export 'src/enum/listener_type.dart';
export 'src/enum/login_status.dart';
export 'src/enum/message_status.dart'; export 'src/enum/message_status.dart';
export 'src/enum/message_type.dart'; export 'src/enum/message_type.dart';
export 'src/enum/sdk_error_code.dart'; export 'src/enum/sdk_error_code.dart';

@ -0,0 +1,5 @@
class LoginStatus {
static const logout = 1;
static const logging = 2;
static const logged = 3;
}

@ -8,7 +8,6 @@ class MessageFailedCode {
/// / /// /
static const int notInGroup = 1205; static const int notInGroup = 1205;
} }
/// ///

@ -73,13 +73,13 @@ class ConversationManager {
}) => }) =>
_channel _channel
.invokeMethod( .invokeMethod(
'getMultipleConversation', 'getMultipleConversation',
_buildParam({ _buildParam({
"conversationIDList": conversationIDList, "conversationIDList": conversationIDList,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
})) }))
.then((value) => .then((value) =>
Utils.toList(value, (map) => ConversationInfo.fromJson(map))); Utils.toList(value, (map) => ConversationInfo.fromJson(map)));
/// 稿 /// 稿
/// [conversationID] id /// [conversationID] id
@ -314,20 +314,20 @@ 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";

@ -467,10 +467,10 @@ class IMManager {
required OnConnectListener listener, required OnConnectListener listener,
int logLevel = 6, int logLevel = 6,
String objectStorage = 'cos', String objectStorage = 'cos',
String? encryptionKey, // String? encryptionKey,
bool isNeedEncryption = false, // bool isNeedEncryption = false,
bool isCompression = false, // bool isCompression = false,
bool isExternalExtensions = false, // bool isExternalExtensions = false,
bool isLogStandardOutput = true, bool isLogStandardOutput = true,
String? logFilePath, String? logFilePath,
String? operationID, String? operationID,
@ -487,10 +487,10 @@ class IMManager {
"dataDir": dataDir, "dataDir": dataDir,
"logLevel": logLevel, "logLevel": logLevel,
"objectStorage": objectStorage, "objectStorage": objectStorage,
"encryptionKey": encryptionKey, // "encryptionKey": encryptionKey,
"isNeedEncryption": isNeedEncryption, // "isNeedEncryption": isNeedEncryption,
"isCompression": isCompression, // "isCompression": isCompression,
"isExternalExtensions": isExternalExtensions, // "isExternalExtensions": isExternalExtensions,
"isLogStandardOutput": isLogStandardOutput, "isLogStandardOutput": isLogStandardOutput,
"logFilePath": logFilePath, "logFilePath": logFilePath,
"operationID": Utils.checkOperationID(operationID), "operationID": Utils.checkOperationID(operationID),
@ -499,7 +499,7 @@ class IMManager {
} }
/// ///
/// [uid] id /// [userID] id
/// [token] token /// [token] token
/// [defaultValue] 使 /// [defaultValue] 使
Future<UserInfo> login({ Future<UserInfo> login({
@ -507,15 +507,23 @@ class IMManager {
required String token, required String token,
String? operationID, String? operationID,
Future<UserInfo> Function()? defaultValue, Future<UserInfo> Function()? defaultValue,
bool checkLoginStatus = true,
}) async { }) async {
await _channel.invokeMethod( int? status;
'login', if (checkLoginStatus) {
_buildParam({ // 1: logout 2: logging 3:logged
'userID': userID, status = await getLoginStatus();
'token': token, }
'operationID': Utils.checkOperationID(operationID), if (status != LoginStatus.logging && status != LoginStatus.logged) {
}), await _channel.invokeMethod(
); 'login',
_buildParam({
'userID': userID,
'token': token,
'operationID': Utils.checkOperationID(operationID),
}),
);
}
this.isLogined = true; this.isLogined = true;
this.userID = userID; this.userID = userID;
this.token = token; this.token = token;
@ -544,6 +552,7 @@ class IMManager {
} }
/// ///
/// 1: logout 2: logging 3:logged
Future<int?> getLoginStatus() => Future<int?> getLoginStatus() =>
_channel.invokeMethod<int>('getLoginStatus', _buildParam({})); _channel.invokeMethod<int>('getLoginStatus', _buildParam({}));

@ -145,7 +145,6 @@ class MessageManager {
})) }))
.then((value) => Utils.toObj(value, (map) => Message.fromJson(map))); .then((value) => Utils.toObj(value, (map) => Message.fromJson(map)));
/// ///
/// [msgTip] /// [msgTip]
Future typingStatusUpdate({ Future typingStatusUpdate({

Loading…
Cancel
Save