init
This commit is contained in:
parent
f76b7ae605
commit
e8cb9d5662
@ -9,62 +9,78 @@ class ConversationManager {
|
|||||||
|
|
||||||
ConversationManager(this._channel);
|
ConversationManager(this._channel);
|
||||||
|
|
||||||
void setConversationListener(ConversationListener listener) {
|
Future setConversationListener(ConversationListener listener) {
|
||||||
this.conversationListener = listener;
|
this.conversationListener = listener;
|
||||||
_channel.invokeMethod('setConversationListener', _buildParam({}));
|
return _channel.invokeMethod('setConversationListener', _buildParam({}));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<ConversationInfo>> getAllConversationList() {
|
Future<List<ConversationInfo>> getAllConversationList() => _channel
|
||||||
return _channel
|
.invokeMethod('getAllConversationList', _buildParam({}))
|
||||||
.invokeMethod('getAllConversationList', _buildParam({}))
|
.then((value) => _toList(value));
|
||||||
.then((value) => _toList(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// sourceID: userID(single chat) ,groupID(group chat)
|
/// sourceID: userID(single chat) ,groupID(group chat)
|
||||||
/// sessionType: 1(single chat) ,2(group chat)
|
/// sessionType: 1(single chat) ,2(group chat)
|
||||||
Future<ConversationInfo> getSingleConversation(
|
Future<ConversationInfo> getSingleConversation({
|
||||||
{required String sourceID, required String sessionType}) {
|
required String sourceID,
|
||||||
return _channel
|
required String sessionType,
|
||||||
.invokeMethod('getOneConversation',
|
}) =>
|
||||||
_buildParam({"sourceID": sourceID, "sessionType": sessionType}))
|
_channel
|
||||||
.then((value) => _toObj(value));
|
.invokeMethod(
|
||||||
}
|
'getOneConversation',
|
||||||
|
_buildParam({
|
||||||
|
"sourceID": sourceID,
|
||||||
|
"sessionType": sessionType,
|
||||||
|
}))
|
||||||
|
.then((value) => _toObj(value));
|
||||||
|
|
||||||
/// ["single_1234","group_3434"]
|
/// ["single_1234","group_3434"]
|
||||||
Future<List<ConversationInfo>> getMultipleConversation(
|
Future<List<ConversationInfo>> getMultipleConversation({
|
||||||
{required List<String> conversationIDList}) {
|
required List<String> conversationIDList,
|
||||||
return _channel
|
}) =>
|
||||||
.invokeMethod('getMultipleConversation',
|
_channel
|
||||||
_buildParam({"conversationIDList": conversationIDList}))
|
.invokeMethod(
|
||||||
.then((value) => _toList(value));
|
'getMultipleConversation',
|
||||||
}
|
_buildParam({
|
||||||
|
"conversationIDList": conversationIDList,
|
||||||
|
}))
|
||||||
|
.then((value) => _toList(value));
|
||||||
|
|
||||||
void deleteConversation({required String conversationID}) {
|
Future deleteConversation({
|
||||||
_channel
|
required String conversationID,
|
||||||
.invokeMethod('deleteConversation',
|
}) =>
|
||||||
_buildParam({"conversationID": conversationID}))
|
_channel
|
||||||
.then((value) => _printValue(value));
|
.invokeMethod(
|
||||||
}
|
'deleteConversation',
|
||||||
|
_buildParam({
|
||||||
|
"conversationID": conversationID,
|
||||||
|
}))
|
||||||
|
.then((value) => _printValue(value));
|
||||||
|
|
||||||
void setConversationDraft(
|
Future setConversationDraft({
|
||||||
{required String conversationID, required String draftText}) {
|
required String conversationID,
|
||||||
_channel
|
required String draftText,
|
||||||
.invokeMethod(
|
}) =>
|
||||||
'setConversationDraft',
|
_channel
|
||||||
_buildParam(
|
.invokeMethod(
|
||||||
{"conversationID": conversationID, "draftText": draftText}))
|
'setConversationDraft',
|
||||||
.then((value) => _printValue(value));
|
_buildParam({
|
||||||
}
|
"conversationID": conversationID,
|
||||||
|
"draftText": draftText,
|
||||||
|
}))
|
||||||
|
.then((value) => _printValue(value));
|
||||||
|
|
||||||
void pinConversation(
|
Future pinConversation({
|
||||||
{required String conversationID, required bool isPinned}) {
|
required String conversationID,
|
||||||
_channel
|
required bool isPinned,
|
||||||
.invokeMethod(
|
}) =>
|
||||||
'pinConversation',
|
_channel
|
||||||
_buildParam(
|
.invokeMethod(
|
||||||
{"conversationID": conversationID, "isPinned": isPinned}))
|
'pinConversation',
|
||||||
.then((value) => _printValue(value));
|
_buildParam({
|
||||||
}
|
"conversationID": conversationID,
|
||||||
|
"isPinned": isPinned,
|
||||||
|
}))
|
||||||
|
.then((value) => _printValue(value));
|
||||||
|
|
||||||
static Map _buildParam(Map param) {
|
static Map _buildParam(Map param) {
|
||||||
param["ManagerName"] = "conversationManager";
|
param["ManagerName"] = "conversationManager";
|
||||||
|
@ -9,9 +9,9 @@ class FriendshipManager {
|
|||||||
|
|
||||||
FriendshipManager(this._channel);
|
FriendshipManager(this._channel);
|
||||||
|
|
||||||
void setFriendshipListener(FriendshipListener listener) {
|
Future setFriendshipListener(FriendshipListener listener) {
|
||||||
this.friendshipListener = listener;
|
this.friendshipListener = listener;
|
||||||
_channel.invokeMethod('setFriendListener', _buildParam({}));
|
return _channel.invokeMethod('setFriendListener', _buildParam({}));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<UserInfo>> getFriendsInfo({required List<String> uidList}) {
|
Future<List<UserInfo>> getFriendsInfo({required List<String> uidList}) {
|
||||||
|
@ -10,9 +10,9 @@ class GroupManager {
|
|||||||
|
|
||||||
GroupManager(this._channel);
|
GroupManager(this._channel);
|
||||||
|
|
||||||
void setGroupListener(GroupListener listener) {
|
Future setGroupListener(GroupListener listener) {
|
||||||
this.groupListener = listener;
|
this.groupListener = listener;
|
||||||
_channel.invokeMethod('setGroupListener', _buildParam({}));
|
return _channel.invokeMethod('setGroupListener', _buildParam({}));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<GroupInviteResult>> inviteUserToGroup({
|
Future<List<GroupInviteResult>> inviteUserToGroup({
|
||||||
@ -195,20 +195,20 @@ class GroupManager {
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
void forceSyncApplyGroupRequest() {
|
Future forceSyncApplyGroupRequest() {
|
||||||
_channel.invokeMethod('forceSyncApplyGroupRequest', _buildParam({}));
|
return _channel.invokeMethod('forceSyncApplyGroupRequest', _buildParam({}));
|
||||||
}
|
}
|
||||||
|
|
||||||
void forceSyncGroupRequest() {
|
Future forceSyncGroupRequest() {
|
||||||
_channel.invokeMethod('forceSyncGroupRequest', _buildParam({}));
|
return _channel.invokeMethod('forceSyncGroupRequest', _buildParam({}));
|
||||||
}
|
}
|
||||||
|
|
||||||
void forceSyncJoinedGroup() {
|
Future forceSyncJoinedGroup() {
|
||||||
_channel.invokeMethod('forceSyncJoinedGroup', _buildParam({}));
|
return _channel.invokeMethod('forceSyncJoinedGroup', _buildParam({}));
|
||||||
}
|
}
|
||||||
|
|
||||||
void forceSyncJoinedGroupMember() {
|
Future forceSyncJoinedGroupMember() {
|
||||||
_channel.invokeMethod('forceSyncJoinedGroupMember', _buildParam({}));
|
return _channel.invokeMethod('forceSyncJoinedGroupMember', _buildParam({}));
|
||||||
}
|
}
|
||||||
|
|
||||||
static Map _buildParam(Map param) {
|
static Map _buildParam(Map param) {
|
||||||
|
@ -13,8 +13,7 @@ class IMManager {
|
|||||||
late SignalingManager signalingManager;
|
late SignalingManager signalingManager;
|
||||||
late InitSDKListener _initSDKListener;
|
late InitSDKListener _initSDKListener;
|
||||||
late String uid;
|
late String uid;
|
||||||
|
late UserInfo uInfo;
|
||||||
// late UserInfo userInfo;
|
|
||||||
|
|
||||||
IMManager(this._channel) {
|
IMManager(this._channel) {
|
||||||
conversationManager = ConversationManager(_channel);
|
conversationManager = ConversationManager(_channel);
|
||||||
@ -34,8 +33,8 @@ class IMManager {
|
|||||||
dynamic data = call.arguments['data'];
|
dynamic data = call.arguments['data'];
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'onSelfInfoUpdated':
|
case 'onSelfInfoUpdated':
|
||||||
_initSDKListener
|
uInfo = UserInfo.fromJson(_formatJson(data));
|
||||||
.onSelfInfoUpdated(UserInfo.fromJson(_formatJson(data)));
|
_initSDKListener.onSelfInfoUpdated(uInfo);
|
||||||
break;
|
break;
|
||||||
case 'onConnectFailed':
|
case 'onConnectFailed':
|
||||||
int? errCode = call.arguments['errCode'];
|
int? errCode = call.arguments['errCode'];
|
||||||
@ -303,7 +302,7 @@ class IMManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<UserInfo> getLoginUserInfo() {
|
Future<UserInfo> getLoginUserInfo() {
|
||||||
return getUsersInfo([uid]).then((list) => list[0]);
|
return getUsersInfo([uid]).then((list) => uInfo = list[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String?> setSelfInfo(UserInfo info) {
|
Future<String?> setSelfInfo(UserInfo info) {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
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';
|
||||||
@ -10,16 +11,22 @@ class MessageManager {
|
|||||||
|
|
||||||
MessageManager(this._channel);
|
MessageManager(this._channel);
|
||||||
|
|
||||||
void addAdvancedMsgListener(AdvancedMsgListener listener) {
|
Future addAdvancedMsgListener(AdvancedMsgListener listener) {
|
||||||
advancedMsgListeners.add(listener);
|
advancedMsgListeners.add(listener);
|
||||||
_channel.invokeMethod(
|
return _channel.invokeMethod(
|
||||||
'addAdvancedMsgListener', _buildParam({'id': listener.id}));
|
'addAdvancedMsgListener',
|
||||||
|
_buildParam({
|
||||||
|
'id': listener.id,
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
void removeAdvancedMsgListener(AdvancedMsgListener listener) {
|
Future removeAdvancedMsgListener(AdvancedMsgListener listener) {
|
||||||
advancedMsgListeners.remove(listener);
|
advancedMsgListeners.remove(listener);
|
||||||
_channel.invokeMethod(
|
return _channel.invokeMethod(
|
||||||
'removeAdvancedMsgListener', _buildParam({'id': listener.id}));
|
'removeAdvancedMsgListener',
|
||||||
|
_buildParam({
|
||||||
|
'id': listener.id,
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
void setMsgSendProgressListener(MsgSendProgressListener listener) {
|
void setMsgSendProgressListener(MsgSendProgressListener listener) {
|
||||||
@ -139,8 +146,10 @@ class MessageManager {
|
|||||||
.then((value) => _toObj(value));
|
.then((value) => _toObj(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Message> createSoundMessage(
|
Future<Message> createSoundMessage({
|
||||||
{required String soundPath, required int duration}) {
|
required String soundPath,
|
||||||
|
required int duration,
|
||||||
|
}) {
|
||||||
return _channel
|
return _channel
|
||||||
.invokeMethod(
|
.invokeMethod(
|
||||||
'createSoundMessage',
|
'createSoundMessage',
|
||||||
@ -167,18 +176,25 @@ class MessageManager {
|
|||||||
.then((value) => _toObj(value));
|
.then((value) => _toObj(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Message> createFileMessage(
|
Future<Message> createFileMessage({
|
||||||
{required String filePath, required String fileName}) {
|
required String filePath,
|
||||||
|
required String fileName,
|
||||||
|
}) {
|
||||||
return _channel
|
return _channel
|
||||||
.invokeMethod('createFileMessage',
|
.invokeMethod(
|
||||||
_buildParam({'filePath': filePath, 'fileName': fileName}))
|
'createFileMessage',
|
||||||
|
_buildParam({
|
||||||
|
'filePath': filePath,
|
||||||
|
'fileName': fileName,
|
||||||
|
}))
|
||||||
.then((value) => _toObj(value));
|
.then((value) => _toObj(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Message> createMergerMessage(
|
Future<Message> createMergerMessage({
|
||||||
{required List<Message> messageList,
|
required List<Message> messageList,
|
||||||
required String title,
|
required String title,
|
||||||
required List<String> summaryList}) {
|
required List<String> summaryList,
|
||||||
|
}) {
|
||||||
return _channel
|
return _channel
|
||||||
.invokeMethod(
|
.invokeMethod(
|
||||||
'createMergerMessage',
|
'createMergerMessage',
|
||||||
@ -194,8 +210,9 @@ class MessageManager {
|
|||||||
return _channel
|
return _channel
|
||||||
.invokeMethod(
|
.invokeMethod(
|
||||||
'createForwardMessage',
|
'createForwardMessage',
|
||||||
_buildParam(
|
_buildParam({
|
||||||
{'message': messageList.map((e) => e.toJson()).toList()}))
|
'message': messageList.map((e) => e.toJson()).toList(),
|
||||||
|
}))
|
||||||
.then((value) => _toObj(value));
|
.then((value) => _toObj(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -207,6 +224,123 @@ class MessageManager {
|
|||||||
_channel.invokeMethod('forceSyncMsg', _buildParam({}));
|
_channel.invokeMethod('forceSyncMsg', _buildParam({}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Message createTextMessageV2({required String text}) {
|
||||||
|
return _createMessage(contentType: MessageType.text)..content = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
Message createTextAtMessageV2({
|
||||||
|
required String text,
|
||||||
|
required List<String> atUidList,
|
||||||
|
}) {
|
||||||
|
var atElem = AtElem(
|
||||||
|
text: text,
|
||||||
|
atUserList: atUidList,
|
||||||
|
isAtSelf: false,
|
||||||
|
);
|
||||||
|
return _createMessage(contentType: MessageType.at_text)
|
||||||
|
..forceList = atUidList
|
||||||
|
..atElem = atElem
|
||||||
|
..content = jsonEncode(atElem);
|
||||||
|
}
|
||||||
|
|
||||||
|
Message createImageMessageV2({
|
||||||
|
required String imagePath,
|
||||||
|
required String mineType,
|
||||||
|
required int size,
|
||||||
|
required int width,
|
||||||
|
required int height,
|
||||||
|
}) {
|
||||||
|
return _createMessage(contentType: MessageType.picture)
|
||||||
|
..pictureElem = PictureElem(
|
||||||
|
sourcePath: imagePath,
|
||||||
|
sourcePicture: PictureInfo(
|
||||||
|
type: mineType,
|
||||||
|
size: size,
|
||||||
|
width: width,
|
||||||
|
height: height,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Message createSoundMessageV2({
|
||||||
|
required String soundPath,
|
||||||
|
required int duration,
|
||||||
|
required int dataSize,
|
||||||
|
}) {
|
||||||
|
return _createMessage(contentType: MessageType.voice)
|
||||||
|
..soundElem = SoundElem(
|
||||||
|
soundPath: soundPath,
|
||||||
|
dataSize: dataSize,
|
||||||
|
duration: duration,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Message createVideoMessageV2({
|
||||||
|
required String videoPath,
|
||||||
|
required String videoType,
|
||||||
|
required int videoSize,
|
||||||
|
required int duration,
|
||||||
|
required String snapshotPath,
|
||||||
|
required int snapshotSize,
|
||||||
|
required int snapshotWidth,
|
||||||
|
required int snapshotHeight,
|
||||||
|
}) {
|
||||||
|
return _createMessage(contentType: MessageType.video)
|
||||||
|
..videoElem = VideoElem(
|
||||||
|
videoPath: videoPath,
|
||||||
|
videoSize: videoSize,
|
||||||
|
videoType: videoType,
|
||||||
|
duration: duration,
|
||||||
|
snapshotPath: snapshotPath,
|
||||||
|
snapshotSize: snapshotSize,
|
||||||
|
snapshotHeight: snapshotHeight,
|
||||||
|
snapshotWidth: snapshotWidth,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Message createFileMessageV2({
|
||||||
|
required String filePath,
|
||||||
|
required String fileName,
|
||||||
|
required int fileSize,
|
||||||
|
}) {
|
||||||
|
return _createMessage(contentType: MessageType.file)
|
||||||
|
..fileElem = FileElem(
|
||||||
|
fileName: fileName,
|
||||||
|
filePath: filePath,
|
||||||
|
fileSize: fileSize,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Message createMergerMessageV2({
|
||||||
|
required List<Message> messageList,
|
||||||
|
required String title,
|
||||||
|
required List<String> summaryList,
|
||||||
|
}) {
|
||||||
|
var message = _createMessage(contentType: MessageType.merger);
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
Message createForwardMessageV2({required List<Message> messageList}) {
|
||||||
|
var message = _createMessage();
|
||||||
|
return message;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
static Message _createMessage({required contentType}) {
|
||||||
|
var now = DateTime.now();
|
||||||
|
return Message(
|
||||||
|
clientMsgID: 'client_msg_id_v2_${now.microsecondsSinceEpoch}',
|
||||||
|
createTime: now.millisecond ~/ 1000,
|
||||||
|
sendTime: now.millisecond ~/ 1000,
|
||||||
|
// sessionType: 0,//请求为单人会话1,请求为群聊会话2
|
||||||
|
msgFrom: 100,
|
||||||
|
contentType: contentType,
|
||||||
|
status: MessageStatus.sending,
|
||||||
|
platformID: Platform.isAndroid ? IMPlatform.android : IMPlatform.ios,
|
||||||
|
sendID: OpenIM.iMManager.uid,
|
||||||
|
senderNickName: OpenIM.iMManager.uInfo.name,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
static Map _buildParam(Map param) {
|
static Map _buildParam(Map param) {
|
||||||
param["ManagerName"] = "messageManager";
|
param["ManagerName"] = "messageManager";
|
||||||
return param;
|
return param;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user