wip polls
This commit is contained in:
parent
b9ac38e7df
commit
7d9d03deb1
6 changed files with 195 additions and 14 deletions
|
|
@ -3,7 +3,8 @@ import "package:flutter_chat_core/flutter_chat_core.dart";
|
|||
import "package:matrix/matrix.dart";
|
||||
|
||||
extension EventToMessage on Event {
|
||||
Future<Message?> toMessage({
|
||||
Future<Message?> toMessage(
|
||||
Timeline timeline, {
|
||||
bool mustBeText = false,
|
||||
bool includeEdits = false,
|
||||
}) async {
|
||||
|
|
@ -25,7 +26,7 @@ extension EventToMessage on Event {
|
|||
event.content["formatted_body"] ??
|
||||
event.content["body"] ??
|
||||
"",
|
||||
"reply": await replyEvent?.toMessage(mustBeText: true),
|
||||
"reply": await replyEvent?.toMessage(mustBeText: true, timeline),
|
||||
"body": newContent?["body"] ?? event.content["body"],
|
||||
"eventType": event.type,
|
||||
"avatarUrl": sender.avatarUrl.toString(),
|
||||
|
|
@ -65,12 +66,21 @@ extension EventToMessage on Event {
|
|||
as TextMessage;
|
||||
|
||||
if (mustBeText) return asText;
|
||||
|
||||
return switch (type) {
|
||||
EventTypes.Encrypted => asText.copyWith(
|
||||
text: "Unable to decrypt message.",
|
||||
metadata: {...metadata, "formatted": "Unable to decrypt message."},
|
||||
),
|
||||
PollEventContent.startType => Message.custom(
|
||||
metadata: {
|
||||
...metadata,
|
||||
"poll": event.parsedPollEventContent.pollStartContent,
|
||||
"responses": event.getPollResponses(timeline),
|
||||
},
|
||||
id: eventId,
|
||||
deliveredAt: originServerTs,
|
||||
authorId: senderId,
|
||||
),
|
||||
(EventTypes.Sticker || EventTypes.Message) => switch (messageType) {
|
||||
(MessageTypes.Sticker || MessageTypes.Image) => Message.image(
|
||||
metadata: metadata,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue