main
hrxiang 4 years ago
parent 0da677ceac
commit 69e1def1a5
  1. 66
      example/lib/main.dart
  2. 2
      example/pubspec.lock
  3. 8
      lib/src/listener/advanced_msg_listener.dart
  4. 14
      lib/src/listener/conversation_listener.dart
  5. 20
      lib/src/listener/friendship_listener.dart
  6. 53
      lib/src/listener/group_listener.dart
  7. 24
      lib/src/listener/impl/advanced_msg_listener.dart
  8. 51
      lib/src/listener/impl/conversation_listener.dart
  9. 74
      lib/src/listener/impl/friendship_listener.dart
  10. 70
      lib/src/listener/impl/group_listener.dart
  11. 50
      lib/src/listener/impl/init_sdk_listener.dart
  12. 11
      lib/src/listener/impl/msg_send_progress_listener.dart
  13. 14
      lib/src/listener/init_sdk_listener.dart
  14. 4
      lib/src/listener/msg_send_progress_listener.dart
  15. 87
      lib/src/manager/im_manager.dart
  16. 7
      test/flutter_openim_sdk_test.dart

@ -49,60 +49,60 @@ class _MyAppState extends State<MyApp> {
ipWs: '', ipWs: '',
dbPath: '', dbPath: '',
listener: OnInitSDKListener( listener: OnInitSDKListener(
connecting: () {}, onConnecting: () {},
connectFailed: (code, error) {}, onConnectFailed: (code, error) {},
connectSuccess: () {}, onConnectSuccess: () {},
kickedOffline: () {}, onKickedOffline: () {},
userSigExpired: () {}, onUserSigExpired: () {},
selfInfoUpdated: (user) {}, onSelfInfoUpdated: (user) {},
), ),
) )
// Add message listener (remove when not in use) // Add message listener (remove when not in use)
..messageManager.addAdvancedMsgListener(OnAdvancedMsgListener( ..messageManager.addAdvancedMsgListener(OnAdvancedMsgListener(
recvMessageRevoked: (msgId) {}, onRecvMessageRevoked: (msgId) {},
recvC2CReadReceipt: (list) {}, onRecvC2CReadReceipt: (list) {},
recvNewMessage: (msg) {}, onRecvNewMessage: (msg) {},
)) ))
// Set up message sending progress listener // Set up message sending progress listener
..messageManager.setMsgSendProgressListener(OnMsgSendProgressListener( ..messageManager.setMsgSendProgressListener(OnMsgSendProgressListener(
progressCallback: (msgId, progress) {}, onProgress: (msgId, progress) {},
)) ))
// Set up friend relationship listener // Set up friend relationship listener
..friendshipManager.setFriendshipListener(OnFriendshipListener( ..friendshipManager.setFriendshipListener(OnFriendshipListener(
blackListAdd: (u) {}, onBlackListAdd: (u) {},
blackListDeleted: (u) {}, onBlackListDeleted: (u) {},
friendApplicationListAccept: (u) {}, onFriendApplicationListAccept: (u) {},
friendApplicationListAdded: (u) {}, onFriendApplicationListAdded: (u) {},
friendApplicationListDeleted: (u) {}, onFriendApplicationListDeleted: (u) {},
friendApplicationListReject: (u) {}, onFriendApplicationListReject: (u) {},
friendInfoChanged: (u) {}, onFriendInfoChanged: (u) {},
friendListAdded: (u) {}, onFriendListAdded: (u) {},
friendListDeleted: (u) {}, onFriendListDeleted: (u) {},
)) ))
// Set up conversation listener // Set up conversation listener
..conversationManager.setConversationListener(OnConversationListener( ..conversationManager.setConversationListener(OnConversationListener(
conversationChanged: (list) {}, onConversationChanged: (list) {},
newConversation: (list) {}, onNewConversation: (list) {},
totalUnreadMsgCountChanged: (count) {}, onTotalUnreadMessageCountChanged: (count) {},
syncServerFailed: () {}, onSyncServerFailed: () {},
syncServerFinish: () {}, onSyncServerFinish: () {},
syncServerStart: () {}, onSyncServerStart: () {},
)) ))
// Set up group listener // Set up group listener
..groupManager.setGroupListener(OnGroupListener( ..groupManager.setGroupListener(OnGroupListener(
applicationProcessed: (groupId, opUser, agreeOrReject, opReason) {}, onApplicationProcessed: (groupId, opUser, agreeOrReject, opReason) {},
groupCreated: (groupId) {}, onGroupCreated: (groupId) {},
groupInfoChanged: (groupId, info) {}, onGroupInfoChanged: (groupId, info) {},
memberEnter: (groupId, list) {}, onMemberEnter: (groupId, list) {},
memberInvited: (groupId, opUser, list) {}, onMemberInvited: (groupId, opUser, list) {},
memberKicked: (groupId, opUser, list) {}, onMemberKicked: (groupId, opUser, list) {},
memberLeave: (groupId, info) {}, onMemberLeave: (groupId, info) {},
receiveJoinApplication: (groupId, info, opReason) {}, onReceiveJoinApplication: (groupId, info, opReason) {},
)); ));
} }
} }

@ -68,7 +68,7 @@ packages:
path: ".." path: ".."
relative: true relative: true
source: path source: path
version: "0.0.1" version: "0.0.2"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter

@ -1,15 +1,15 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class AdvancedMsgListener { abstract class AdvancedMsgListener {
/// listener uniquely identifies /// listener uniquely identifies
final String id; final String id;
AdvancedMsgListener() : id = "id_${DateTime.now().microsecondsSinceEpoch}"; AdvancedMsgListener() : id = "id_${DateTime.now().microsecondsSinceEpoch}";
void onRecvNewMessage(Message msg) {} void recvNewMessage(Message msg);
void onRecvC2CReadReceipt(List<HaveReadInfo> list) {} void recvC2CReadReceipt(List<HaveReadInfo> list);
void onRecvMessageRevoked(String msgId) {} void recvMessageRevoked(String msgId);
} }

@ -1,15 +1,15 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class ConversationListener { abstract class ConversationListener {
void onConversationChanged(List<ConversationInfo> list) {} void conversationChanged(List<ConversationInfo> list);
void onNewConversation(List<ConversationInfo> list) {} void newConversation(List<ConversationInfo> list);
void onSyncServerFailed() {} void syncServerFailed();
void onSyncServerFinish() {} void syncServerFinish();
void onSyncServerStart() {} void syncServerStart();
void onTotalUnreadMessageCountChanged(int i) {} void totalUnreadMessageCountChanged(int i);
} }

@ -1,21 +1,21 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class FriendshipListener { abstract class FriendshipListener {
void onBlackListAdd(UserInfo u) {} void blackListAdd(UserInfo u);
void onBlackListDeleted(UserInfo u) {} void blackListDeleted(UserInfo u);
void onFriendApplicationListAccept(UserInfo u) {} void friendApplicationListAccept(UserInfo u);
void onFriendApplicationListAdded(UserInfo u) {} void friendApplicationListAdded(UserInfo u);
void onFriendApplicationListDeleted(UserInfo u) {} void friendApplicationListDeleted(UserInfo u);
void onFriendApplicationListReject(UserInfo u) {} void friendApplicationListReject(UserInfo u);
void onFriendInfoChanged(UserInfo u) {} void friendInfoChanged(UserInfo u);
void onFriendListAdded(UserInfo u) {} void friendListAdded(UserInfo u);
void onFriendListDeleted(UserInfo u) {} void friendListDeleted(UserInfo u);
} }

@ -1,36 +1,23 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class GroupListener { abstract class GroupListener {
void onMemberEnter(String groupId, List<GroupMembersInfo> list) {} void memberEnter(String groupId, List<GroupMembersInfo> list);
void onMemberLeave(String groupId, GroupMembersInfo info) {} void memberLeave(String groupId, GroupMembersInfo info);
void onMemberInvited( void memberInvited(
String groupId, String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list);
GroupMembersInfo opUser,
List<GroupMembersInfo> list, void memberKicked(
) {} String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list);
void onMemberKicked( void groupCreated(String groupId);
String groupId,
GroupMembersInfo opUser, void groupInfoChanged(String groupId, GroupInfo info);
List<GroupMembersInfo> list,
) {} void receiveJoinApplication(
String groupId, GroupMembersInfo info, String opReason);
void onGroupCreated(String groupId) {}
void applicationProcessed(String groupId, GroupMembersInfo opUser,
void onGroupInfoChanged(String groupId, GroupInfo info) {} int agreeOrReject, String opReason);
void onReceiveJoinApplication(
String groupId,
GroupMembersInfo info,
String opReason,
) {}
void onApplicationProcessed(
String groupId,
GroupMembersInfo opUser,
int agreeOrReject,
String opReason,
) {}
} }

@ -1,28 +1,28 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class OnAdvancedMsgListener extends AdvancedMsgListener { class OnAdvancedMsgListener extends AdvancedMsgListener {
Function(List<HaveReadInfo> list)? recvC2CReadReceipt; Function(List<HaveReadInfo> list)? onRecvC2CReadReceipt;
Function(String msgId)? recvMessageRevoked; Function(String msgId)? onRecvMessageRevoked;
Function(Message msg)? recvNewMessage; Function(Message msg)? onRecvNewMessage;
OnAdvancedMsgListener({ OnAdvancedMsgListener({
this.recvC2CReadReceipt, this.onRecvC2CReadReceipt,
this.recvMessageRevoked, this.onRecvMessageRevoked,
this.recvNewMessage, this.onRecvNewMessage,
}); });
@override @override
void onRecvC2CReadReceipt(List<HaveReadInfo> list) { void recvC2CReadReceipt(List<HaveReadInfo> list) {
if (null != recvC2CReadReceipt) recvC2CReadReceipt!(list); if (null != onRecvC2CReadReceipt) onRecvC2CReadReceipt!(list);
} }
@override @override
void onRecvMessageRevoked(String msgId) { void recvMessageRevoked(String msgId) {
if (null != recvMessageRevoked) recvMessageRevoked!(msgId); if (null != onRecvMessageRevoked) onRecvMessageRevoked!(msgId);
} }
@override @override
void onRecvNewMessage(Message msg) { void recvNewMessage(Message msg) {
if (null != recvNewMessage) recvNewMessage!(msg); if (null != onRecvNewMessage) onRecvNewMessage!(msg);
} }
} }

@ -1,49 +1,50 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class OnConversationListener implements ConversationListener { class OnConversationListener extends ConversationListener {
Function(List<ConversationInfo> list)? conversationChanged; Function(List<ConversationInfo> list)? onConversationChanged;
Function(List<ConversationInfo> list)? newConversation; Function(List<ConversationInfo> list)? onNewConversation;
Function(int count)? totalUnreadMsgCountChanged; Function(int count)? onTotalUnreadMessageCountChanged;
Function()? syncServerFailed; Function()? onSyncServerFailed;
Function()? syncServerFinish; Function()? onSyncServerFinish;
Function()? syncServerStart; Function()? onSyncServerStart;
OnConversationListener({ OnConversationListener({
this.conversationChanged, this.onConversationChanged,
this.newConversation, this.onNewConversation,
this.totalUnreadMsgCountChanged, this.onTotalUnreadMessageCountChanged,
this.syncServerFailed, this.onSyncServerFailed,
this.syncServerFinish, this.onSyncServerFinish,
this.syncServerStart, this.onSyncServerStart,
}); });
@override @override
void onConversationChanged(List<ConversationInfo> list) { void conversationChanged(List<ConversationInfo> list) {
if (conversationChanged != null) conversationChanged!(list); if (onConversationChanged != null) onConversationChanged!(list);
} }
@override @override
void onNewConversation(List<ConversationInfo> list) { void newConversation(List<ConversationInfo> list) {
if (newConversation != null) newConversation!(list); if (onNewConversation != null) onNewConversation!(list);
} }
@override @override
void onSyncServerFailed() { void syncServerFailed() {
if (syncServerFailed != null) syncServerFailed!(); if (onSyncServerFailed != null) onSyncServerFailed!();
} }
@override @override
void onSyncServerFinish() { void syncServerFinish() {
if (syncServerFinish != null) syncServerFinish!(); if (onSyncServerFinish != null) onSyncServerFinish!();
} }
@override @override
void onSyncServerStart() { void syncServerStart() {
if (syncServerStart != null) syncServerStart!(); if (onSyncServerStart != null) onSyncServerStart!();
} }
@override @override
void onTotalUnreadMessageCountChanged(int i) { void totalUnreadMessageCountChanged(int i) {
if (totalUnreadMsgCountChanged != null) totalUnreadMsgCountChanged!(i); if (onTotalUnreadMessageCountChanged != null)
onTotalUnreadMessageCountChanged!(i);
} }
} }

@ -1,70 +1,70 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class OnFriendshipListener implements FriendshipListener { class OnFriendshipListener extends FriendshipListener {
Function(UserInfo u)? blackListAdd; Function(UserInfo u)? onBlackListAdd;
Function(UserInfo u)? blackListDeleted; Function(UserInfo u)? onBlackListDeleted;
Function(UserInfo u)? friendApplicationListAccept; Function(UserInfo u)? onFriendApplicationListAccept;
Function(UserInfo u)? friendApplicationListAdded; Function(UserInfo u)? onFriendApplicationListAdded;
Function(UserInfo u)? friendApplicationListDeleted; Function(UserInfo u)? onFriendApplicationListDeleted;
Function(UserInfo u)? friendApplicationListReject; Function(UserInfo u)? onFriendApplicationListReject;
Function(UserInfo u)? friendInfoChanged; Function(UserInfo u)? onFriendInfoChanged;
Function(UserInfo u)? friendListAdded; Function(UserInfo u)? onFriendListAdded;
Function(UserInfo u)? friendListDeleted; Function(UserInfo u)? onFriendListDeleted;
OnFriendshipListener({ OnFriendshipListener({
this.blackListAdd, this.onBlackListAdd,
this.blackListDeleted, this.onBlackListDeleted,
this.friendApplicationListAccept, this.onFriendApplicationListAccept,
this.friendApplicationListAdded, this.onFriendApplicationListAdded,
this.friendApplicationListDeleted, this.onFriendApplicationListDeleted,
this.friendApplicationListReject, this.onFriendApplicationListReject,
this.friendInfoChanged, this.onFriendInfoChanged,
this.friendListAdded, this.onFriendListAdded,
this.friendListDeleted, this.onFriendListDeleted,
}); });
@override @override
void onBlackListAdd(UserInfo u) { void blackListAdd(UserInfo u) {
if (null != blackListAdd) blackListAdd!(u); if (null != onBlackListAdd) onBlackListAdd!(u);
} }
@override @override
void onBlackListDeleted(UserInfo u) { void blackListDeleted(UserInfo u) {
if (null != blackListDeleted) blackListDeleted!(u); if (null != onBlackListDeleted) onBlackListDeleted!(u);
} }
@override @override
void onFriendApplicationListAccept(UserInfo u) { void friendApplicationListAccept(UserInfo u) {
if (null != friendApplicationListAccept) friendApplicationListAccept!(u); if (null != onFriendApplicationListAccept) onFriendApplicationListAccept!(u);
} }
@override @override
void onFriendApplicationListAdded(UserInfo u) { void friendApplicationListAdded(UserInfo u) {
if (null != friendApplicationListAdded) friendApplicationListAdded!(u); if (null != onFriendApplicationListAdded) onFriendApplicationListAdded!(u);
} }
@override @override
void onFriendApplicationListDeleted(UserInfo u) { void friendApplicationListDeleted(UserInfo u) {
if (null != friendApplicationListDeleted) friendApplicationListDeleted!(u); if (null != onFriendApplicationListDeleted) onFriendApplicationListDeleted!(u);
} }
@override @override
void onFriendApplicationListReject(UserInfo u) { void friendApplicationListReject(UserInfo u) {
if (null != friendApplicationListReject) friendApplicationListReject!(u); if (null != onFriendApplicationListReject) onFriendApplicationListReject!(u);
} }
@override @override
void onFriendInfoChanged(UserInfo u) { void friendInfoChanged(UserInfo u) {
if (null != friendInfoChanged) friendInfoChanged!(u); if (null != onFriendInfoChanged) onFriendInfoChanged!(u);
} }
@override @override
void onFriendListAdded(UserInfo u) { void friendListAdded(UserInfo u) {
if (null != friendListAdded) friendListAdded!(u); if (null != onFriendListAdded) onFriendListAdded!(u);
} }
@override @override
void onFriendListDeleted(UserInfo u) { void friendListDeleted(UserInfo u) {
if (null != friendListDeleted) friendListDeleted!(u); if (null != onFriendListDeleted) onFriendListDeleted!(u);
} }
} }

@ -1,75 +1,75 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class OnGroupListener implements GroupListener { class OnGroupListener extends GroupListener {
Function(String groupId, GroupMembersInfo opUser, int agreeOrReject, Function(String groupId, GroupMembersInfo opUser, int agreeOrReject,
String opReason)? applicationProcessed; String opReason)? onApplicationProcessed;
Function(String groupId)? groupCreated; Function(String groupId)? onGroupCreated;
Function(String groupId, GroupInfo info)? groupInfoChanged; Function(String groupId, GroupInfo info)? onGroupInfoChanged;
Function(String groupId, List<GroupMembersInfo> list)? memberEnter; Function(String groupId, List<GroupMembersInfo> list)? onMemberEnter;
Function( Function(
String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list)? String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list)?
memberInvited; onMemberInvited;
Function( Function(
String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list)? String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list)?
memberKicked; onMemberKicked;
Function(String groupId, GroupMembersInfo info)? memberLeave; Function(String groupId, GroupMembersInfo info)? onMemberLeave;
Function(String groupId, GroupMembersInfo info, String opReason)? Function(String groupId, GroupMembersInfo info, String opReason)?
receiveJoinApplication; onReceiveJoinApplication;
OnGroupListener({ OnGroupListener({
this.applicationProcessed, this.onApplicationProcessed,
this.groupCreated, this.onGroupCreated,
this.groupInfoChanged, this.onGroupInfoChanged,
this.memberEnter, this.onMemberEnter,
this.memberInvited, this.onMemberInvited,
this.memberKicked, this.onMemberKicked,
this.memberLeave, this.onMemberLeave,
this.receiveJoinApplication, this.onReceiveJoinApplication,
}); });
@override @override
void onApplicationProcessed(String groupId, GroupMembersInfo opUser, void applicationProcessed(String groupId, GroupMembersInfo opUser,
int agreeOrReject, String opReason) { int agreeOrReject, String opReason) {
if (null != applicationProcessed) if (null != onApplicationProcessed)
applicationProcessed!(groupId, opUser, agreeOrReject, opReason); onApplicationProcessed!(groupId, opUser, agreeOrReject, opReason);
} }
@override @override
void onGroupCreated(String groupId) { void groupCreated(String groupId) {
if (null != groupCreated) groupCreated!(groupId); if (null != onGroupCreated) onGroupCreated!(groupId);
} }
@override @override
void onGroupInfoChanged(String groupId, GroupInfo info) { void groupInfoChanged(String groupId, GroupInfo info) {
if (null != groupInfoChanged) groupInfoChanged!(groupId, info); if (null != onGroupInfoChanged) onGroupInfoChanged!(groupId, info);
} }
@override @override
void onMemberEnter(String groupId, List<GroupMembersInfo> list) { void memberEnter(String groupId, List<GroupMembersInfo> list) {
if (null != memberEnter) memberEnter!(groupId, list); if (null != onMemberEnter) onMemberEnter!(groupId, list);
} }
@override @override
void onMemberInvited( void memberInvited(
String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list) { String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list) {
if (null != memberInvited) memberInvited!(groupId, opUser, list); if (null != onMemberInvited) onMemberInvited!(groupId, opUser, list);
} }
@override @override
void onMemberKicked( void memberKicked(
String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list) { String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list) {
if (null != memberKicked) memberKicked!(groupId, opUser, list); if (null != onMemberKicked) onMemberKicked!(groupId, opUser, list);
} }
@override @override
void onMemberLeave(String groupId, GroupMembersInfo info) { void memberLeave(String groupId, GroupMembersInfo info) {
if (null != memberLeave) memberLeave!(groupId, info); if (null != onMemberLeave) onMemberLeave!(groupId, info);
} }
@override @override
void onReceiveJoinApplication( void receiveJoinApplication(
String groupId, GroupMembersInfo info, String opReason) { String groupId, GroupMembersInfo info, String opReason) {
if (null != receiveJoinApplication) if (null != onReceiveJoinApplication)
receiveJoinApplication!(groupId, info, opReason); onReceiveJoinApplication!(groupId, info, opReason);
} }
} }

@ -1,49 +1,49 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class OnInitSDKListener implements InitSDKListener { class OnInitSDKListener extends InitSDKListener {
Function(int? code, String? errorMsg)? connectFailed; Function(int? code, String? errorMsg)? onConnectFailed;
Function()? connectSuccess; Function()? onConnectSuccess;
Function()? connecting; Function()? onConnecting;
Function()? kickedOffline; Function()? onKickedOffline;
Function(UserInfo info)? selfInfoUpdated; Function(UserInfo info)? onSelfInfoUpdated;
Function()? userSigExpired; Function()? onUserSigExpired;
OnInitSDKListener({ OnInitSDKListener({
this.connectFailed, this.onConnectFailed,
this.connectSuccess, this.onConnectSuccess,
this.connecting, this.onConnecting,
this.kickedOffline, this.onKickedOffline,
this.selfInfoUpdated, this.onSelfInfoUpdated,
this.userSigExpired, this.onUserSigExpired,
}); });
@override @override
void onConnectFailed(int? code, String? errorMsg) { void connectFailed(int? code, String? errorMsg) {
if (null != connectFailed) connectFailed!(code, errorMsg); if (null != onConnectFailed) onConnectFailed!(code, errorMsg);
} }
@override @override
void onConnectSuccess() { void connectSuccess() {
if (null != connectSuccess) connectSuccess!(); if (null != onConnectSuccess) onConnectSuccess!();
} }
@override @override
void onConnecting() { void connecting() {
if (null != connecting) connecting!.call(); if (null != onConnecting) onConnecting!.call();
} }
@override @override
void onKickedOffline() { void kickedOffline() {
if (null != kickedOffline) kickedOffline!(); if (null != onKickedOffline) onKickedOffline!();
} }
@override @override
void onSelfInfoUpdated(UserInfo info) { void selfInfoUpdated(UserInfo info) {
if (null != selfInfoUpdated) selfInfoUpdated!(info); if (null != onSelfInfoUpdated) onSelfInfoUpdated!(info);
} }
@override @override
void onUserSigExpired() { void userSigExpired() {
if (null != userSigExpired) userSigExpired!(); if (null != onUserSigExpired) onUserSigExpired!();
} }
} }

@ -1,11 +1,12 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class OnMsgSendProgressListener implements MsgSendProgressListener {
Function(String msgID, int progress)? progressCallback;
OnMsgSendProgressListener({this.progressCallback}); class OnMsgSendProgressListener extends MsgSendProgressListener {
Function(String msgID, int progress)? onProgress;
void onProgress(String msgID, int progress) { OnMsgSendProgressListener({this.onProgress});
if (null != progressCallback) progressCallback!(msgID, progress);
void progress(String msgID, int progress) {
if (null != onProgress) onProgress!(msgID, progress);
} }
} }

@ -1,21 +1,21 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class InitSDKListener { abstract class InitSDKListener {
/// SDK /// SDK
void onConnecting() {} void connecting();
/// SDK /// SDK
void onConnectSuccess() {} void connectSuccess();
/// SDK /// SDK
void onConnectFailed(int? code, String? errorMsg) {} void connectFailed(int? code, String? errorMsg);
/// 线 UI IMManager login() /// 线 UI IMManager login()
void onKickedOffline() {} void kickedOffline();
/// 线 userSig IMManager login() /// 线 userSig IMManager login()
void onUserSigExpired() {} void userSigExpired();
/// ///
void onSelfInfoUpdated(UserInfo info) {} void selfInfoUpdated(UserInfo info);
} }

@ -1,3 +1,3 @@
class MsgSendProgressListener { abstract class MsgSendProgressListener {
void onProgress(String msgID, int progress) {} void progress(String msgID, int progress);
} }

@ -35,24 +35,24 @@ class IMManager {
switch (type) { switch (type) {
case 'onSelfInfoUpdated': case 'onSelfInfoUpdated':
uInfo = UserInfo.fromJson(_formatJson(data)); uInfo = UserInfo.fromJson(_formatJson(data));
_initSDKListener.onSelfInfoUpdated(uInfo); _initSDKListener.selfInfoUpdated(uInfo);
break; break;
case 'onConnectFailed': case 'onConnectFailed':
int? errCode = call.arguments['errCode']; int? errCode = call.arguments['errCode'];
String? errMsg = call.arguments['errMsg']; String? errMsg = call.arguments['errMsg'];
_initSDKListener.onConnectFailed(errCode, errMsg); _initSDKListener.connectFailed(errCode, errMsg);
break; break;
case 'onConnecting': case 'onConnecting':
_initSDKListener.onConnecting(); _initSDKListener.connecting();
break; break;
case 'onConnectSuccess': case 'onConnectSuccess':
_initSDKListener.onConnectSuccess(); _initSDKListener.connectSuccess();
break; break;
case 'onKickedOffline': case 'onKickedOffline':
_initSDKListener.onKickedOffline(); _initSDKListener.kickedOffline();
break; break;
case 'onUserSigExpired': case 'onUserSigExpired':
_initSDKListener.onUserSigExpired(); _initSDKListener.userSigExpired();
break; break;
} }
} else if (call.method == ListenerType.groupListener) { } else if (call.method == ListenerType.groupListener) {
@ -61,7 +61,7 @@ class IMManager {
Map<dynamic, dynamic> map = args['data']; Map<dynamic, dynamic> map = args['data'];
switch (type) { switch (type) {
case 'onMemberEnter': case 'onMemberEnter':
groupManager.groupListener.onMemberEnter( groupManager.groupListener.memberEnter(
map['groupId'], map['groupId'],
(_formatJson(map['memberList']) as List) (_formatJson(map['memberList']) as List)
.map((e) => GroupMembersInfo.fromJson(e)) .map((e) => GroupMembersInfo.fromJson(e))
@ -69,13 +69,13 @@ class IMManager {
); );
break; break;
case 'onMemberLeave': case 'onMemberLeave':
groupManager.groupListener.onMemberLeave( groupManager.groupListener.memberLeave(
map['groupId'], map['groupId'],
GroupMembersInfo.fromJson(_formatJson(map['member'])), GroupMembersInfo.fromJson(_formatJson(map['member'])),
); );
break; break;
case 'onMemberInvited': case 'onMemberInvited':
groupManager.groupListener.onMemberInvited( groupManager.groupListener.memberInvited(
map['groupId'], map['groupId'],
GroupMembersInfo.fromJson(_formatJson(map['opUser'])), GroupMembersInfo.fromJson(_formatJson(map['opUser'])),
(_formatJson(map['memberList']) as List) (_formatJson(map['memberList']) as List)
@ -84,7 +84,7 @@ class IMManager {
); );
break; break;
case 'onMemberKicked': case 'onMemberKicked':
groupManager.groupListener.onMemberKicked( groupManager.groupListener.memberKicked(
map['groupId'], map['groupId'],
GroupMembersInfo.fromJson(_formatJson(map['opUser'])), GroupMembersInfo.fromJson(_formatJson(map['opUser'])),
(_formatJson(map['memberList']) as List) (_formatJson(map['memberList']) as List)
@ -93,25 +93,25 @@ class IMManager {
); );
break; break;
case 'onGroupCreated': case 'onGroupCreated':
groupManager.groupListener.onGroupCreated( groupManager.groupListener.groupCreated(
map['groupId'], map['groupId'],
); );
break; break;
case 'onGroupInfoChanged': case 'onGroupInfoChanged':
groupManager.groupListener.onGroupInfoChanged( groupManager.groupListener.groupInfoChanged(
map['groupId'], map['groupId'],
GroupInfo.fromJson(_formatJson(map['groupInfo'])), GroupInfo.fromJson(_formatJson(map['groupInfo'])),
); );
break; break;
case 'onReceiveJoinApplication': case 'onReceiveJoinApplication':
groupManager.groupListener.onReceiveJoinApplication( groupManager.groupListener.receiveJoinApplication(
map['groupId'], map['groupId'],
GroupMembersInfo.fromJson(_formatJson(map['member'])), GroupMembersInfo.fromJson(_formatJson(map['member'])),
map['opReason'], map['opReason'],
); );
break; break;
case 'onApplicationProcessed': case 'onApplicationProcessed':
groupManager.groupListener.onApplicationProcessed( groupManager.groupListener.applicationProcessed(
map['groupId'], map['groupId'],
GroupMembersInfo.fromJson(_formatJson(map['opUser'])), GroupMembersInfo.fromJson(_formatJson(map['opUser'])),
map['agreeOrReject'], map['agreeOrReject'],
@ -145,14 +145,14 @@ class IMManager {
var msg = Message.fromJson(_formatJson(value)); var msg = Message.fromJson(_formatJson(value));
for (var listener in messageManager.advancedMsgListeners) { for (var listener in messageManager.advancedMsgListeners) {
if (listener.id == id) { if (listener.id == id) {
listener.onRecvNewMessage(msg); listener.recvNewMessage(msg);
} }
} }
break; break;
case 'onRecvMessageRevoked': case 'onRecvMessageRevoked':
for (var listener in messageManager.advancedMsgListeners) { for (var listener in messageManager.advancedMsgListeners) {
if (listener.id == id) { if (listener.id == id) {
listener.onRecvMessageRevoked(value); listener.recvMessageRevoked(value);
} }
} }
break; break;
@ -161,7 +161,7 @@ class IMManager {
var list = l.map((e) => HaveReadInfo.fromJson(e)).toList(); var list = l.map((e) => HaveReadInfo.fromJson(e)).toList();
for (var listener in messageManager.advancedMsgListeners) { for (var listener in messageManager.advancedMsgListeners) {
if (listener.id == id) { if (listener.id == id) {
listener.onRecvC2CReadReceipt(list); listener.recvC2CReadReceipt(list);
} }
} }
break; break;
@ -173,7 +173,7 @@ class IMManager {
int progress = data['progress'] ?? 100; int progress = data['progress'] ?? 100;
switch (type) { switch (type) {
case 'onProgress': case 'onProgress':
messageManager.msgSendProgressListener?.onProgress( messageManager.msgSendProgressListener?.progress(
msgID, msgID,
progress, progress,
); );
@ -184,14 +184,14 @@ class IMManager {
dynamic data = call.arguments['data']; dynamic data = call.arguments['data'];
switch (type) { switch (type) {
case 'onSyncServerStart': case 'onSyncServerStart':
conversationManager.conversationListener.onSyncServerStart(); conversationManager.conversationListener.syncServerStart();
break; break;
case 'onSyncServerFinish': case 'onSyncServerFinish':
conversationManager.conversationListener.onSyncServerFinish(); conversationManager.conversationListener.syncServerFinish();
break; break;
case 'onSyncServerFailed': case 'onSyncServerFailed':
conversationManager.conversationListener.onSyncServerFailed(); conversationManager.conversationListener.syncServerFailed();
break; break;
case 'onNewConversation': case 'onNewConversation':
List<ConversationInfo> list = List.empty(growable: true); List<ConversationInfo> list = List.empty(growable: true);
@ -200,7 +200,7 @@ class IMManager {
.map((e) => ConversationInfo.fromJson(e)) .map((e) => ConversationInfo.fromJson(e))
.toList(); .toList();
} }
conversationManager.conversationListener.onNewConversation(list); conversationManager.conversationListener.newConversation(list);
break; break;
case 'onConversationChanged': case 'onConversationChanged':
List<ConversationInfo> list = List.empty(growable: true); List<ConversationInfo> list = List.empty(growable: true);
@ -210,11 +210,11 @@ class IMManager {
.toList(); .toList();
} }
conversationManager.conversationListener conversationManager.conversationListener
.onConversationChanged(list); .conversationChanged(list);
break; break;
case 'onTotalUnreadMessageCountChanged': case 'onTotalUnreadMessageCountChanged':
conversationManager.conversationListener conversationManager.conversationListener
.onTotalUnreadMessageCountChanged(data ?? 0); .totalUnreadMessageCountChanged(data ?? 0);
break; break;
} }
} else if (call.method == ListenerType.friendListener) { } else if (call.method == ListenerType.friendListener) {
@ -223,35 +223,35 @@ class IMManager {
UserInfo u = UserInfo.fromJson(_formatJson(data)); UserInfo u = UserInfo.fromJson(_formatJson(data));
switch (type) { switch (type) {
case 'onBlackListAdd': case 'onBlackListAdd':
friendshipManager.friendshipListener.onBlackListAdd(u); friendshipManager.friendshipListener.blackListAdd(u);
break; break;
case 'onBlackListDeleted': case 'onBlackListDeleted':
friendshipManager.friendshipListener.onBlackListDeleted(u); friendshipManager.friendshipListener.blackListDeleted(u);
break; break;
case 'onFriendApplicationListAccept': case 'onFriendApplicationListAccept':
friendshipManager.friendshipListener friendshipManager.friendshipListener
.onFriendApplicationListAccept(u); .friendApplicationListAccept(u);
break; break;
case 'onFriendApplicationListAdded': case 'onFriendApplicationListAdded':
friendshipManager.friendshipListener friendshipManager.friendshipListener
.onFriendApplicationListAdded(u); .friendApplicationListAdded(u);
break; break;
case 'onFriendApplicationListDeleted': case 'onFriendApplicationListDeleted':
friendshipManager.friendshipListener friendshipManager.friendshipListener
.onFriendApplicationListDeleted(u); .friendApplicationListDeleted(u);
break; break;
case 'onFriendApplicationListReject': case 'onFriendApplicationListReject':
friendshipManager.friendshipListener friendshipManager.friendshipListener
.onFriendApplicationListReject(u); .friendApplicationListReject(u);
break; break;
case 'onFriendInfoChanged': case 'onFriendInfoChanged':
friendshipManager.friendshipListener.onFriendInfoChanged(u); friendshipManager.friendshipListener.friendInfoChanged(u);
break; break;
case 'onFriendListAdded': case 'onFriendListAdded':
friendshipManager.friendshipListener.onFriendListAdded(u); friendshipManager.friendshipListener.friendListAdded(u);
break; break;
case 'onFriendListDeleted': case 'onFriendListDeleted':
friendshipManager.friendshipListener.onFriendListDeleted(u); friendshipManager.friendshipListener.friendListDeleted(u);
break; break;
} }
} }
@ -334,8 +334,25 @@ class IMManager {
} }
/// ///
Future<String?> setSelfInfo(UserInfo info) { Future<String?> setSelfInfo(
return _channel.invokeMethod('setSelfInfo', _buildParam(info.toJson())); {String? name,
String? icon,
int? gender,
String? mobile,
String? birth,
String? email,
String? ex}) {
return _channel.invokeMethod(
'setSelfInfo',
_buildParam({
'name': name,
'icon': icon,
'gender': gender,
'mobile': mobile,
'birth': birth,
'email': email,
'ex': ex,
}));
// .then((value) => UserInfo.fromJson(value)); // .then((value) => UserInfo.fromJson(value));
} }

@ -1,8 +1,4 @@
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
import 'package:flutter_openim_sdk/src/openim.dart';
void main() { void main() {
/* const MethodChannel channel = MethodChannel('flutter_openim_sdk'); /* const MethodChannel channel = MethodChannel('flutter_openim_sdk');
@ -42,7 +38,4 @@ void main() {
// print('${now.millisecond}'); // print('${now.millisecond}');
// print('${now.microsecondsSinceEpoch}'); // print('${now.microsecondsSinceEpoch}');
// print('${now.millisecondsSinceEpoch}'); // print('${now.millisecondsSinceEpoch}');
} }

Loading…
Cancel
Save