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