[Super Group]

main
hrxiang 3 years ago
parent cff0a4cce2
commit 18f099c437
  1. 3
      CHANGELOG.md
  2. 2
      android/build.gradle
  3. 9
      android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java
  4. 31
      lib/src/manager/im_message_manager.dart
  5. 12
      lib/src/models/group_info.dart
  6. 38
      lib/src/models/message.dart
  7. 8
      lib/src/utils.dart

@ -14,6 +14,9 @@
- Add joinSource field for joinGroup method
- Add advanced revoke type
- Add recvMessageRevokedV2 callback for OnAdvancedMsgListener
- Add joinSource field for GroupApplicationInfo
- Add inviterUserID field for GroupApplicationInfo
- Add getAdvancedHistoryMessageList method for MessageManager
## 2.2.0

@ -41,5 +41,5 @@ android {
}
}
dependencies {
implementation 'io.openim:core-sdk:2.3.0@aar'
implementation 'io.openim:core-sdk:2.3.0-rc1@aar'
}

@ -397,4 +397,13 @@ public class MessageManager extends BaseManager {
jsonValue(methodCall)
);
}
public void getAdvancedHistoryMessageList(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.getAdvancedHistoryMessageList(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID"),
jsonValue(methodCall)
);
}
}

@ -700,6 +700,37 @@ class MessageManager {
"operationID": Utils.checkOperationID(operationID),
})));
/// (startMsg为节点)
/// [userID] id
/// [conversationID] id
/// [groupID] id
/// [startMsg] [count]index==length-1startMsg=list.first
/// [count]
/// [lastMinSeq] [startMsg]
Future<AdvancedMessage> getAdvancedHistoryMessageList({
String? userID,
String? groupID,
String? conversationID,
int? lastMinSeq,
Message? startMsg,
int? count,
String? operationID,
}) =>
_channel
.invokeMethod(
'getAdvancedHistoryMessageList',
_buildParam({
'userID': userID ?? '',
'groupID': groupID ?? '',
'conversationID': conversationID ?? '',
'startClientMsgID': startMsg?.clientMsgID ?? '',
'count': count ?? 40,
'lastMinSeq': lastMinSeq ?? 0,
'operationID': Utils.checkOperationID(operationID),
}))
.then((value) =>
Utils.toObj(value, (map) => AdvancedMessage.fromJson(map)));
static Map _buildParam(Map param) {
param["ManagerName"] = "messageManager";
return param;

@ -298,6 +298,12 @@ class GroupApplicationInfo {
///
String? ex;
/// 2 3 4
int? joinSource;
/// ID
String? inviterUserID;
GroupApplicationInfo({
this.groupID,
this.groupName,
@ -321,6 +327,8 @@ class GroupApplicationInfo {
this.handleUserID,
this.handledTime,
this.ex,
this.inviterUserID,
this.joinSource,
});
GroupApplicationInfo.fromJson(Map<String, dynamic> json) {
@ -346,6 +354,8 @@ class GroupApplicationInfo {
handleUserID = json['handleUserID'];
handledTime = json['handledTime'];
ex = json['ex'];
inviterUserID = json['inviterUserID'];
joinSource = json['joinSource'];
}
Map<String, dynamic> toJson() {
@ -372,6 +382,8 @@ class GroupApplicationInfo {
data['handleUserID'] = this.handleUserID;
data['handledTime'] = this.handledTime;
data['ex'] = this.ex;
data['inviterUserID'] = this.inviterUserID;
data['joinSource'] = this.joinSource;
return data;
}
}

@ -1034,3 +1034,41 @@ class RevokedInfo {
return data;
}
}
class AdvancedMessage {
List<Message>? messageList;
bool? isEnd;
int? errCode;
String? errMsg;
int? lastMinSeq;
AdvancedMessage({
this.messageList,
this.isEnd,
this.errCode,
this.errMsg,
this.lastMinSeq,
});
AdvancedMessage.fromJson(Map<String, dynamic> json) {
messageList = json['messageList'] == null
? null
: (json['messageList'] as List)
.map((e) => Message.fromJson(e))
.toList();
isEnd = json['isEnd'];
errCode = json['errCode'];
errMsg = json['errMsg'];
lastMinSeq = json['lastMinSeq'];
}
Map<String, dynamic> toJson() {
final data = Map<String, dynamic>();
data['messageList'] = this.messageList?.map((e) => e.toJson()).toList();
data['isEnd'] = this.isEnd;
data['errCode'] = this.errCode;
data['errMsg'] = this.errMsg;
data['lastMinSeq'] = this.lastMinSeq;
return data;
}
}

@ -2,14 +2,14 @@ import 'dart:convert';
class Utils {
static List<T> toList<T>(String value, T f(Map<String, dynamic> map)) =>
(_formatJson(value) as List).map((e) => f(e)).toList();
(formatJson(value) as List).map((e) => f(e)).toList();
static T toObj<T>(String value, T f(Map<String, dynamic> map)) =>
f(_formatJson(value));
f(formatJson(value));
static List<dynamic> toListMap(String value) => _formatJson(value);
static List<dynamic> toListMap(String value) => formatJson(value);
static dynamic _formatJson(String value) => jsonDecode(value);
static dynamic formatJson(String value) => jsonDecode(value);
static String checkOperationID(String? obj) =>
obj ?? DateTime.now().millisecondsSinceEpoch.toString();

Loading…
Cancel
Save