diff --git a/.idea/misc.xml b/.idea/misc.xml index f8c5fc9..3d7fadd 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,4 +3,5 @@ + \ No newline at end of file diff --git a/lib/flutter_openim_sdk.dart b/lib/flutter_openim_sdk.dart index acaf84e..88c381f 100644 --- a/lib/flutter_openim_sdk.dart +++ b/lib/flutter_openim_sdk.dart @@ -10,6 +10,12 @@ export 'src/listener/advanced_msg_listener.dart'; export 'src/listener/conversation_listener.dart'; export 'src/listener/friendship_listener.dart'; export 'src/listener/group_listener.dart'; +export 'src/listener/impl/advanced_msg_listener.dart'; +export 'src/listener/impl/conversation_listener.dart'; +export 'src/listener/impl/friendship_listener.dart'; +export 'src/listener/impl/group_listener.dart'; +export 'src/listener/impl/init_sdk_listener.dart'; +export 'src/listener/impl/msg_send_progress_listener.dart'; export 'src/listener/init_sdk_listener.dart'; export 'src/listener/msg_send_progress_listener.dart'; export 'src/manager/im_conversation_manager.dart'; diff --git a/lib/src/listener/impl/advanced_msg_listener.dart b/lib/src/listener/impl/advanced_msg_listener.dart new file mode 100644 index 0000000..5ab436a --- /dev/null +++ b/lib/src/listener/impl/advanced_msg_listener.dart @@ -0,0 +1,28 @@ +import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; + +class OnAdvancedMsgListener extends AdvancedMsgListener { + Function(List list)? recvC2CReadReceipt; + Function(String msgId)? recvMessageRevoked; + Function(Message msg)? recvNewMessage; + + OnAdvancedMsgListener({ + this.recvC2CReadReceipt, + this.recvMessageRevoked, + this.recvNewMessage, + }); + + @override + void onRecvC2CReadReceipt(List list) { + if (null != recvC2CReadReceipt) recvC2CReadReceipt!(list); + } + + @override + void onRecvMessageRevoked(String msgId) { + if (null != recvMessageRevoked) recvMessageRevoked!(msgId); + } + + @override + void onRecvNewMessage(Message msg) { + if (null != recvNewMessage) recvNewMessage!(msg); + } +} diff --git a/lib/src/listener/impl/conversation_listener.dart b/lib/src/listener/impl/conversation_listener.dart new file mode 100644 index 0000000..db550e0 --- /dev/null +++ b/lib/src/listener/impl/conversation_listener.dart @@ -0,0 +1,49 @@ +import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; + +class OnConversationListener implements ConversationListener { + Function(List list)? conversationChanged; + Function(List list)? newConversation; + Function(int count)? totalUnreadMsgCountChanged; + Function()? syncServerFailed; + Function()? syncServerFinish; + Function()? syncServerStart; + + OnConversationListener({ + this.conversationChanged, + this.newConversation, + this.totalUnreadMsgCountChanged, + this.syncServerFailed, + this.syncServerFinish, + this.syncServerStart, + }); + + @override + void onConversationChanged(List list) { + if (conversationChanged != null) conversationChanged!(list); + } + + @override + void onNewConversation(List list) { + if (newConversation != null) newConversation!(list); + } + + @override + void onSyncServerFailed() { + if (syncServerFailed != null) syncServerFailed!(); + } + + @override + void onSyncServerFinish() { + if (syncServerFinish != null) syncServerFinish!(); + } + + @override + void onSyncServerStart() { + if (syncServerStart != null) syncServerStart!(); + } + + @override + void onTotalUnreadMessageCountChanged(int i) { + if (totalUnreadMsgCountChanged != null) totalUnreadMsgCountChanged!(i); + } +} diff --git a/lib/src/listener/impl/friendship_listener.dart b/lib/src/listener/impl/friendship_listener.dart new file mode 100644 index 0000000..53315ed --- /dev/null +++ b/lib/src/listener/impl/friendship_listener.dart @@ -0,0 +1,70 @@ +import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; + +class OnFriendshipListener implements FriendshipListener { + Function(UserInfo u)? blackListAdd; + Function(UserInfo u)? blackListDeleted; + Function(UserInfo u)? friendApplicationListAccept; + Function(UserInfo u)? friendApplicationListAdded; + Function(UserInfo u)? friendApplicationListDeleted; + Function(UserInfo u)? friendApplicationListReject; + Function(UserInfo u)? friendInfoChanged; + Function(UserInfo u)? friendListAdded; + Function(UserInfo u)? friendListDeleted; + + OnFriendshipListener({ + this.blackListAdd, + this.blackListDeleted, + this.friendApplicationListAccept, + this.friendApplicationListAdded, + this.friendApplicationListDeleted, + this.friendApplicationListReject, + this.friendInfoChanged, + this.friendListAdded, + this.friendListDeleted, + }); + + @override + void onBlackListAdd(UserInfo u) { + if (null != blackListAdd) blackListAdd!(u); + } + + @override + void onBlackListDeleted(UserInfo u) { + if (null != blackListDeleted) blackListDeleted!(u); + } + + @override + void onFriendApplicationListAccept(UserInfo u) { + if (null != friendApplicationListAccept) friendApplicationListAccept!(u); + } + + @override + void onFriendApplicationListAdded(UserInfo u) { + if (null != friendApplicationListAdded) friendApplicationListAdded!(u); + } + + @override + void onFriendApplicationListDeleted(UserInfo u) { + if (null != friendApplicationListDeleted) friendApplicationListDeleted!(u); + } + + @override + void onFriendApplicationListReject(UserInfo u) { + if (null != friendApplicationListReject) friendApplicationListReject!(u); + } + + @override + void onFriendInfoChanged(UserInfo u) { + if (null != friendInfoChanged) friendInfoChanged!(u); + } + + @override + void onFriendListAdded(UserInfo u) { + if (null != friendListAdded) friendListAdded!(u); + } + + @override + void onFriendListDeleted(UserInfo u) { + if (null != friendListDeleted) friendListDeleted!(u); + } +} diff --git a/lib/src/listener/impl/group_listener.dart b/lib/src/listener/impl/group_listener.dart new file mode 100644 index 0000000..24323ed --- /dev/null +++ b/lib/src/listener/impl/group_listener.dart @@ -0,0 +1,75 @@ +import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; + +class OnGroupListener implements GroupListener { + Function(String groupId, GroupMembersInfo opUser, int agreeOrReject, + String opReason)? applicationProcessed; + Function(String groupId)? groupCreated; + Function(String groupId, GroupInfo info)? groupInfoChanged; + Function(String groupId, List list)? memberEnter; + Function( + String groupId, GroupMembersInfo opUser, List list)? + memberInvited; + Function( + String groupId, GroupMembersInfo opUser, List list)? + memberKicked; + Function(String groupId, GroupMembersInfo info)? memberLeave; + Function(String groupId, GroupMembersInfo info, String opReason)? + receiveJoinApplication; + + OnGroupListener({ + this.applicationProcessed, + this.groupCreated, + this.groupInfoChanged, + this.memberEnter, + this.memberInvited, + this.memberKicked, + this.memberLeave, + this.receiveJoinApplication, + }); + + @override + void onApplicationProcessed(String groupId, GroupMembersInfo opUser, + int agreeOrReject, String opReason) { + if (null != applicationProcessed) + applicationProcessed!(groupId, opUser, agreeOrReject, opReason); + } + + @override + void onGroupCreated(String groupId) { + if (null != groupCreated) groupCreated!(groupId); + } + + @override + void onGroupInfoChanged(String groupId, GroupInfo info) { + if (null != groupInfoChanged) groupInfoChanged!(groupId, info); + } + + @override + void onMemberEnter(String groupId, List list) { + if (null != memberEnter) memberEnter!(groupId, list); + } + + @override + void onMemberInvited( + String groupId, GroupMembersInfo opUser, List list) { + if (null != memberInvited) memberInvited!(groupId, opUser, list); + } + + @override + void onMemberKicked( + String groupId, GroupMembersInfo opUser, List list) { + if (null != memberKicked) memberKicked!(groupId, opUser, list); + } + + @override + void onMemberLeave(String groupId, GroupMembersInfo info) { + if (null != memberLeave) memberLeave!(groupId, info); + } + + @override + void onReceiveJoinApplication( + String groupId, GroupMembersInfo info, String opReason) { + if (null != receiveJoinApplication) + receiveJoinApplication!(groupId, info, opReason); + } +} diff --git a/lib/src/listener/impl/init_sdk_listener.dart b/lib/src/listener/impl/init_sdk_listener.dart new file mode 100644 index 0000000..2cfde7b --- /dev/null +++ b/lib/src/listener/impl/init_sdk_listener.dart @@ -0,0 +1,49 @@ +import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; + +class OnInitSDKListener implements InitSDKListener { + Function(int? code, String? errorMsg)? connectFailed; + Function()? connectSuccess; + Function()? connecting; + Function()? kickedOffline; + Function(UserInfo info)? selfInfoUpdated; + Function()? userSigExpired; + + OnInitSDKListener({ + this.connectFailed, + this.connectSuccess, + this.connecting, + this.kickedOffline, + this.selfInfoUpdated, + this.userSigExpired, + }); + + @override + void onConnectFailed(int? code, String? errorMsg) { + if (null != connectFailed) connectFailed!(code, errorMsg); + } + + @override + void onConnectSuccess() { + if (null != connectSuccess) connectSuccess!(); + } + + @override + void onConnecting() { + if (null != connecting) connecting!.call(); + } + + @override + void onKickedOffline() { + if (null != kickedOffline) kickedOffline!(); + } + + @override + void onSelfInfoUpdated(UserInfo info) { + if (null != selfInfoUpdated) selfInfoUpdated!(info); + } + + @override + void onUserSigExpired() { + if (null != userSigExpired) userSigExpired!(); + } +} diff --git a/lib/src/listener/impl/msg_send_progress_listener.dart b/lib/src/listener/impl/msg_send_progress_listener.dart new file mode 100644 index 0000000..20f6ef4 --- /dev/null +++ b/lib/src/listener/impl/msg_send_progress_listener.dart @@ -0,0 +1,11 @@ +import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; + +class OnMsgSendProgressListener implements MsgSendProgressListener { + Function(String msgID, int progress)? progressCallback; + + OnMsgSendProgressListener({this.progressCallback}); + + void onProgress(String msgID, int progress) { + if (null != progressCallback) progressCallback!(msgID, progress); + } +}