更新测试
This commit is contained in:
parent
58fa80a2f8
commit
e13c4c6658
@ -57,5 +57,5 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.openim:sdkcore:1.0.4'
|
implementation 'com.openim:sdkcore:1.0.6'
|
||||||
}
|
}
|
@ -29,6 +29,14 @@ public class OnAdvancedMsgListener implements open_im_sdk_callback.OnAdvancedMsg
|
|||||||
CommonUtil.emitEvent("advancedMsgListener", "onNewRecvMessageRevoked", values);
|
CommonUtil.emitEvent("advancedMsgListener", "onNewRecvMessageRevoked", values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNewRecvMessageEdited(String s) {
|
||||||
|
final Map<String, String> values = new ArrayMap<>();
|
||||||
|
values.put("id", id);
|
||||||
|
values.put("messageEdited", s);
|
||||||
|
CommonUtil.emitEvent("advancedMsgListener", "onNewRecvMessageEdited", values);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRecvC2CReadReceipt(String s) {
|
public void onRecvC2CReadReceipt(String s) {
|
||||||
final Map<String, String> values = new ArrayMap<>();
|
final Map<String, String> values = new ArrayMap<>();
|
||||||
|
@ -42,6 +42,16 @@ public class MessageManager extends BaseManager {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void editMessage(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
|
Open_im_sdk.editMessage(
|
||||||
|
new OnBaseListener(result, methodCall),
|
||||||
|
value(methodCall, "operationID"),
|
||||||
|
value(methodCall, "conversationID"),
|
||||||
|
value(methodCall, "clientMsgID"),
|
||||||
|
value(methodCall, "content")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public void deleteMessageFromLocalStorage(MethodCall methodCall, MethodChannel.Result result) {
|
public void deleteMessageFromLocalStorage(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
Open_im_sdk.deleteMessageFromLocalStorage(
|
Open_im_sdk.deleteMessageFromLocalStorage(
|
||||||
new OnBaseListener(result, methodCall),
|
new OnBaseListener(result, methodCall),
|
||||||
|
@ -168,6 +168,9 @@ class MessageType {
|
|||||||
/// Recall Message
|
/// Recall Message
|
||||||
static const revokeMessageNotification = 2101;
|
static const revokeMessageNotification = 2101;
|
||||||
|
|
||||||
|
/// Edit Message
|
||||||
|
static const editMessageNotification = 2108;
|
||||||
|
|
||||||
/// Single Chat Has Read Receipt
|
/// Single Chat Has Read Receipt
|
||||||
static const signalHasReadReceiptNotification = 2150;
|
static const signalHasReadReceiptNotification = 2150;
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
|
|||||||
class OnAdvancedMsgListener {
|
class OnAdvancedMsgListener {
|
||||||
Function(Message msg)? onMsgDeleted;
|
Function(Message msg)? onMsgDeleted;
|
||||||
Function(RevokedInfo info)? onNewRecvMessageRevoked;
|
Function(RevokedInfo info)? onNewRecvMessageRevoked;
|
||||||
|
Function(EditedInfo info)? onNewRecvMessageEdited;
|
||||||
Function(List<ReadReceiptInfo> list)? onRecvC2CReadReceipt;
|
Function(List<ReadReceiptInfo> list)? onRecvC2CReadReceipt;
|
||||||
Function(Message msg)? onRecvNewMessage;
|
Function(Message msg)? onRecvNewMessage;
|
||||||
Function(Message msg)? onRecvOfflineNewMessage;
|
Function(Message msg)? onRecvOfflineNewMessage;
|
||||||
@ -15,6 +16,7 @@ class OnAdvancedMsgListener {
|
|||||||
OnAdvancedMsgListener({
|
OnAdvancedMsgListener({
|
||||||
this.onMsgDeleted,
|
this.onMsgDeleted,
|
||||||
this.onNewRecvMessageRevoked,
|
this.onNewRecvMessageRevoked,
|
||||||
|
this.onNewRecvMessageEdited,
|
||||||
this.onRecvC2CReadReceipt,
|
this.onRecvC2CReadReceipt,
|
||||||
this.onRecvNewMessage,
|
this.onRecvNewMessage,
|
||||||
this.onRecvOfflineNewMessage,
|
this.onRecvOfflineNewMessage,
|
||||||
@ -30,6 +32,12 @@ class OnAdvancedMsgListener {
|
|||||||
onNewRecvMessageRevoked?.call(info);
|
onNewRecvMessageRevoked?.call(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Message has been edited
|
||||||
|
void newRecvMessageEdited(EditedInfo info) {
|
||||||
|
onNewRecvMessageEdited?.call(info);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// C2C Message Read Receipt
|
/// C2C Message Read Receipt
|
||||||
void recvC2CReadReceipt(List<ReadReceiptInfo> list) {
|
void recvC2CReadReceipt(List<ReadReceiptInfo> list) {
|
||||||
onRecvC2CReadReceipt?.call(list);
|
onRecvC2CReadReceipt?.call(list);
|
||||||
|
@ -179,6 +179,11 @@ class IMManager {
|
|||||||
var info = Utils.toObj(value, (map) => RevokedInfo.fromJson(map));
|
var info = Utils.toObj(value, (map) => RevokedInfo.fromJson(map));
|
||||||
messageManager.msgListener.newRecvMessageRevoked(info);
|
messageManager.msgListener.newRecvMessageRevoked(info);
|
||||||
break;
|
break;
|
||||||
|
case 'onNewRecvMessageEdited':
|
||||||
|
var value = call.arguments['data']['messageEdited'];
|
||||||
|
var info = Utils.toObj(value, (map) => EditedInfo.fromJson(map));
|
||||||
|
messageManager.msgListener.newRecvMessageEdited(info);
|
||||||
|
break;
|
||||||
case 'onRecvC2CReadReceipt':
|
case 'onRecvC2CReadReceipt':
|
||||||
var value = call.arguments['data']['msgReceiptList'];
|
var value = call.arguments['data']['msgReceiptList'];
|
||||||
var list = Utils.toList(value, (map) => ReadReceiptInfo.fromJson(map));
|
var list = Utils.toList(value, (map) => ReadReceiptInfo.fromJson(map));
|
||||||
|
@ -151,7 +151,8 @@ class MessageManager {
|
|||||||
|
|
||||||
/// Typing status update
|
/// Typing status update
|
||||||
/// [msgTip] Custom content
|
/// [msgTip] Custom content
|
||||||
@Deprecated('Use [OpenIM.iMManager.conversationManager.changeInputStates(conversationID:focus:)] instead')
|
@Deprecated(
|
||||||
|
'Use [OpenIM.iMManager.conversationManager.changeInputStates(conversationID:focus:)] instead')
|
||||||
Future typingStatusUpdate({
|
Future typingStatusUpdate({
|
||||||
required String userID,
|
required String userID,
|
||||||
String? msgTip,
|
String? msgTip,
|
||||||
@ -531,7 +532,8 @@ class MessageManager {
|
|||||||
},
|
},
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}))
|
}))
|
||||||
.then((value) => Utils.toObj(value, (map) => SearchResult.fromJson(map)));
|
.then((value) =>
|
||||||
|
Utils.toObj(value, (map) => SearchResult.fromJson(map)));
|
||||||
|
|
||||||
/// Revoke a message
|
/// Revoke a message
|
||||||
/// [message] The message to be revoked
|
/// [message] The message to be revoked
|
||||||
@ -548,6 +550,23 @@ class MessageManager {
|
|||||||
"operationID": Utils.checkOperationID(operationID),
|
"operationID": Utils.checkOperationID(operationID),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
/// Edit a message
|
||||||
|
/// [message] The message to be edited
|
||||||
|
Future editMessage({
|
||||||
|
required String conversationID,
|
||||||
|
required String clientMsgID,
|
||||||
|
String? operationID,
|
||||||
|
required String? content,
|
||||||
|
}) =>
|
||||||
|
_channel.invokeMethod(
|
||||||
|
'editMessage',
|
||||||
|
_buildParam({
|
||||||
|
'conversationID': conversationID,
|
||||||
|
'clientMsgID': clientMsgID,
|
||||||
|
"operationID": Utils.checkOperationID(operationID),
|
||||||
|
'content': content,
|
||||||
|
}));
|
||||||
|
|
||||||
/// Mark messages as read
|
/// Mark messages as read
|
||||||
/// [conversationID] Conversation ID
|
/// [conversationID] Conversation ID
|
||||||
/// [messageIDList] List of clientMsgIDs of messages to be marked as read
|
/// [messageIDList] List of clientMsgIDs of messages to be marked as read
|
||||||
@ -587,7 +606,8 @@ class MessageManager {
|
|||||||
'lastMinSeq': lastMinSeq ?? 0,
|
'lastMinSeq': lastMinSeq ?? 0,
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}))
|
}))
|
||||||
.then((value) => Utils.toObj(value, (map) => AdvancedMessage.fromJson(map)));
|
.then((value) =>
|
||||||
|
Utils.toObj(value, (map) => AdvancedMessage.fromJson(map)));
|
||||||
|
|
||||||
/// Get chat history (newly received chat history after startMsg). Used for locating a specific message in global search and then fetching messages received after that message.
|
/// Get chat history (newly received chat history after startMsg). Used for locating a specific message in global search and then fetching messages received after that message.
|
||||||
/// [conversationID] Conversation ID, can be used for querying notifications
|
/// [conversationID] Conversation ID, can be used for querying notifications
|
||||||
@ -610,7 +630,8 @@ class MessageManager {
|
|||||||
'lastMinSeq': lastMinSeq ?? 0,
|
'lastMinSeq': lastMinSeq ?? 0,
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}))
|
}))
|
||||||
.then((value) => Utils.toObj(value, (map) => AdvancedMessage.fromJson(map)));
|
.then((value) =>
|
||||||
|
Utils.toObj(value, (map) => AdvancedMessage.fromJson(map)));
|
||||||
|
|
||||||
/// Find message details
|
/// Find message details
|
||||||
/// [conversationID] Conversation ID
|
/// [conversationID] Conversation ID
|
||||||
@ -626,7 +647,8 @@ class MessageManager {
|
|||||||
'searchParams': searchParams.map((e) => e.toJson()).toList(),
|
'searchParams': searchParams.map((e) => e.toJson()).toList(),
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}))
|
}))
|
||||||
.then((value) => Utils.toObj(value, (map) => SearchResult.fromJson(map)));
|
.then((value) =>
|
||||||
|
Utils.toObj(value, (map) => SearchResult.fromJson(map)));
|
||||||
|
|
||||||
/// Rich text message
|
/// Rich text message
|
||||||
/// [text] Input content
|
/// [text] Input content
|
||||||
|
@ -1123,6 +1123,73 @@ class RevokedInfo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// Message revocation details
|
||||||
|
class EditedInfo {
|
||||||
|
/// Editer's ID
|
||||||
|
String? editerID;
|
||||||
|
|
||||||
|
|
||||||
|
/// Message ID
|
||||||
|
String? clientMsgID;
|
||||||
|
|
||||||
|
/// Revocation time
|
||||||
|
int? editTime;
|
||||||
|
|
||||||
|
/// Message sending time
|
||||||
|
int? sourceMessageSendTime;
|
||||||
|
|
||||||
|
/// Message sender
|
||||||
|
String? sourceMessageSendID;
|
||||||
|
|
||||||
|
/// Message sender's nickname
|
||||||
|
String? sourceMessageSenderNickname;
|
||||||
|
|
||||||
|
/// Conversation type [ConversationType]
|
||||||
|
int? sessionType;
|
||||||
|
|
||||||
|
/// Message content
|
||||||
|
String? content;
|
||||||
|
|
||||||
|
EditedInfo({
|
||||||
|
this.editerID,
|
||||||
|
this.clientMsgID,
|
||||||
|
this.editTime,
|
||||||
|
this.sourceMessageSendTime,
|
||||||
|
this.sourceMessageSendID,
|
||||||
|
this.sourceMessageSenderNickname,
|
||||||
|
this.sessionType,
|
||||||
|
this.content,
|
||||||
|
});
|
||||||
|
|
||||||
|
EditedInfo.fromJson(Map<String, dynamic> json) {
|
||||||
|
editerID = json['editerID'];
|
||||||
|
clientMsgID = json['clientMsgID'];
|
||||||
|
editTime = json['editTime'];
|
||||||
|
sourceMessageSendTime = json['sourceMessageSendTime'];
|
||||||
|
sourceMessageSendID = json['sourceMessageSendID'];
|
||||||
|
sourceMessageSenderNickname = json['sourceMessageSenderNickname'];
|
||||||
|
sessionType = json['sessionType'];
|
||||||
|
content = json['content'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final data = Map<String, dynamic>();
|
||||||
|
data['editerID'] = this.editerID;
|
||||||
|
data['clientMsgID'] = this.clientMsgID;
|
||||||
|
data['editTime'] = this.editTime;
|
||||||
|
data['sourceMessageSendTime'] = this.sourceMessageSendTime;
|
||||||
|
data['sourceMessageSendID'] = this.sourceMessageSendID;
|
||||||
|
data['sourceMessageSenderNickname'] = this.sourceMessageSenderNickname;
|
||||||
|
data['sessionType'] = this.sessionType;
|
||||||
|
data['content'] = this.content;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class AdvancedMessage {
|
class AdvancedMessage {
|
||||||
List<Message>? messageList;
|
List<Message>? messageList;
|
||||||
bool? isEnd;
|
bool? isEnd;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user