From d11fdfa0f7a401b6c2f90490ca014eb3aa2e0a4b Mon Sep 17 00:00:00 2001 From: hrxiang Date: Mon, 6 Sep 2021 14:41:33 +0800 Subject: [PATCH] upgrade sdk,new add quote message --- android/build.gradle | 2 +- lib/src/enum/message_type.dart | 1 + lib/src/manager/im_message_manager.dart | 2 +- lib/src/models/message.dart | 34 +++++++++++++++++++++---- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 8fb3900..ccf590d 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -52,5 +52,5 @@ android { } dependencies { // implementation 'io.openim:client:0.0.13@aar' - implementation 'io.openim:client-sdk:0.0.8@aar' + implementation 'io.openim:client-sdk:0.0.9@aar' } \ No newline at end of file diff --git a/lib/src/enum/message_type.dart b/lib/src/enum/message_type.dart index bcd9b6d..c861e6a 100644 --- a/lib/src/enum/message_type.dart +++ b/lib/src/enum/message_type.dart @@ -13,6 +13,7 @@ class MessageType { static const revoke = 111; static const has_read_receipt = 112; static const typing = 113; + static const quote = 114; /// static const accept_friend = 201; diff --git a/lib/src/manager/im_message_manager.dart b/lib/src/manager/im_message_manager.dart index 416832b..53ef661 100644 --- a/lib/src/manager/im_message_manager.dart +++ b/lib/src/manager/im_message_manager.dart @@ -42,7 +42,7 @@ class MessageManager { required Message message, String? userID, String? groupID, - required bool onlineUserOnly, + bool onlineUserOnly = false, }) { return _channel.invokeMethod( 'sendMessage', diff --git a/lib/src/models/message.dart b/lib/src/models/message.dart index 335f492..8a7cdee 100644 --- a/lib/src/models/message.dart +++ b/lib/src/models/message.dart @@ -28,6 +28,7 @@ class Message { AtElem? atElem; LocationElem? locationElem; CustomElem? customElem; + QuoteElem? quoteElem; Message({ this.clientMsgID, @@ -57,6 +58,7 @@ class Message { this.atElem, this.locationElem, this.customElem, + this.quoteElem, }); Message.fromJson(Map json) @@ -102,6 +104,9 @@ class Message { customElem = json['customElem'] != null ? CustomElem.fromJson(json['customElem']) : null; + quoteElem = json['quoteElem'] != null + ? QuoteElem.fromJson(json['quoteElem']) + : null; } Map toJson() { @@ -133,24 +138,22 @@ class Message { data['atElem'] = this.atElem?.toJson(); data['locationElem'] = this.locationElem?.toJson(); data['customElem'] = this.customElem?.toJson(); + data['quoteElem'] = this.quoteElem?.toJson(); return data; } @override bool operator ==(Object other) { - // TODO: implement == if (other is Message) { return other._id == _id; } - return super == other; + return false; } @override - // TODO: implement hashCode int get hashCode => super.hashCode; - String? get _id => - clientMsgID == null || clientMsgID!.isEmpty ? serverMsgID : clientMsgID; + String? get _id => clientMsgID; } class PictureElem { @@ -426,6 +429,27 @@ class CustomElem { } } +class QuoteElem { + String? text; + Message? quoteMessage; + + QuoteElem({this.text, this.quoteMessage}); + + QuoteElem.fromJson(Map json) { + text = json['text']; + if (json['quoteMessage'] is Map) { + quoteMessage = Message.fromJson(json['quoteMessage']); + } + } + + Map toJson() { + final Map data = new Map(); + data['text'] = this.text; + data['quoteMessage'] = this.quoteMessage?.toJson(); + return data; + } +} + class HaveReadInfo { String? uid; List? msgIDList;