mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 16:48:41 +00:00
fix #164
This commit is contained in:
parent
eedf6e0646
commit
37b46f1f83
4 changed files with 21 additions and 10 deletions
|
|
@ -159,11 +159,19 @@ class MediaMessageContent extends MessageContent {
|
|||
class TextMessageContent extends MessageContent {
|
||||
String text;
|
||||
int? responseToMessageId;
|
||||
TextMessageContent({required this.text, this.responseToMessageId});
|
||||
int? responseToOtherMessageId;
|
||||
TextMessageContent({
|
||||
required this.text,
|
||||
this.responseToMessageId,
|
||||
this.responseToOtherMessageId,
|
||||
});
|
||||
|
||||
static TextMessageContent fromJson(Map json) {
|
||||
return TextMessageContent(
|
||||
text: json['text'],
|
||||
responseToOtherMessageId: json.containsKey('responseToOtherMessageId')
|
||||
? json['responseToOtherMessageId']
|
||||
: null,
|
||||
responseToMessageId: json.containsKey('responseToMessageId')
|
||||
? json['responseToMessageId']
|
||||
: null);
|
||||
|
|
@ -174,6 +182,7 @@ class TextMessageContent extends MessageContent {
|
|||
return {
|
||||
'text': text,
|
||||
'responseToMessageId': responseToMessageId,
|
||||
'responseToOtherMessageId': responseToOtherMessageId,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -158,11 +158,7 @@ Future<Result> encryptAndSendMessage(
|
|||
}
|
||||
|
||||
Future sendTextMessage(
|
||||
int target,
|
||||
TextMessageContent content,
|
||||
PushKind? pushKind, {
|
||||
int? responseToMessageId,
|
||||
}) async {
|
||||
int target, TextMessageContent content, PushKind? pushKind) async {
|
||||
DateTime messageSendAt = DateTime.now();
|
||||
|
||||
int? messageId = await twonlyDatabase.messagesDao.insertMessage(
|
||||
|
|
@ -171,7 +167,7 @@ Future sendTextMessage(
|
|||
kind: Value(MessageKind.textMessage),
|
||||
sendAt: Value(messageSendAt),
|
||||
responseToOtherMessageId: Value(content.responseToMessageId),
|
||||
responseToMessageId: Value(responseToMessageId),
|
||||
responseToMessageId: Value(content.responseToOtherMessageId),
|
||||
downloadState: Value(DownloadState.downloaded),
|
||||
contentJson: Value(
|
||||
jsonEncode(content.toJson()),
|
||||
|
|
|
|||
|
|
@ -179,11 +179,13 @@ Future<client.Response> handleNewMessage(int fromUserId, Uint8List body) async {
|
|||
}
|
||||
|
||||
int? responseToMessageId;
|
||||
int? responseToOtherMessageId;
|
||||
int? messageId;
|
||||
|
||||
final content = message.content!;
|
||||
if (content is TextMessageContent) {
|
||||
responseToMessageId = content.responseToMessageId;
|
||||
responseToOtherMessageId = content.responseToOtherMessageId;
|
||||
}
|
||||
if (content is ReopenedMediaFileContent) {
|
||||
responseToMessageId = content.messageId;
|
||||
|
|
@ -207,6 +209,7 @@ Future<client.Response> handleNewMessage(int fromUserId, Uint8List body) async {
|
|||
acknowledgeByServer: Value(true),
|
||||
acknowledgeByUser: Value(acknowledgeByUser),
|
||||
responseToMessageId: Value(responseToMessageId),
|
||||
responseToOtherMessageId: Value(responseToOtherMessageId),
|
||||
openedAt: Value(openedAt),
|
||||
downloadState: Value(message.kind == MessageKind.media
|
||||
? DownloadState.pending
|
||||
|
|
|
|||
|
|
@ -103,13 +103,16 @@ class _ChatItemDetailsViewState extends State<ChatItemDetailsView> {
|
|||
tmpReactionsToOtherMessages[msg.responseToOtherMessageId!]!
|
||||
.add(msg);
|
||||
}
|
||||
} else if (msg.responseToMessageId != null) {
|
||||
}
|
||||
if (msg.responseToMessageId != null) {
|
||||
if (!tmpReactionsToMyMessages.containsKey(msg.responseToMessageId!)) {
|
||||
tmpReactionsToMyMessages[msg.responseToMessageId!] = [msg];
|
||||
} else {
|
||||
tmpReactionsToMyMessages[msg.responseToMessageId!]!.add(msg);
|
||||
}
|
||||
} else {
|
||||
}
|
||||
if (msg.responseToMessageId == null &&
|
||||
msg.responseToOtherMessageId == null) {
|
||||
displayedMessages.add(msg);
|
||||
}
|
||||
}
|
||||
|
|
@ -138,9 +141,9 @@ class _ChatItemDetailsViewState extends State<ChatItemDetailsView> {
|
|||
TextMessageContent(
|
||||
text: newMessageController.text,
|
||||
responseToMessageId: responseToMessage?.messageOtherId,
|
||||
responseToOtherMessageId: responseToMessage?.messageId,
|
||||
),
|
||||
PushKind.text,
|
||||
responseToMessageId: responseToMessage?.messageId,
|
||||
);
|
||||
newMessageController.clear();
|
||||
currentInputText = "";
|
||||
|
|
|
|||
Loading…
Reference in a new issue