Fix File Bubble Preview Cache Issues + Wrap Quoted Message Malformed Bubbles as Rows
continuous-integration/drone/pr Build was killed
Details
continuous-integration/drone/pr Build was killed
Details
This commit is contained in:
parent
ab77ad80d1
commit
5770eb4b66
|
@ -1,8 +1,5 @@
|
|||
import 'dart:async';
|
||||
import 'dart:ffi';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
import 'message.dart';
|
||||
|
||||
// we only count up to 100 unread messages, if more than that we can't accurately resync message cache, just reset
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:cwtch/models/message.dart';
|
||||
import 'package:cwtch/models/messages/malformedmessage.dart';
|
||||
import 'package:cwtch/widgets/malformedbubble.dart';
|
||||
import 'package:cwtch/widgets/messagerow.dart';
|
||||
import 'package:cwtch/widgets/quotedmessage.dart';
|
||||
|
@ -54,7 +55,7 @@ class QuotedMessage extends Message {
|
|||
dynamic message = jsonDecode(this.content);
|
||||
|
||||
if (message["body"] == null || message["quotedHash"] == null) {
|
||||
return MalformedBubble();
|
||||
return MalformedMessage(this.metadata).getWidget(context, key, index);
|
||||
}
|
||||
|
||||
return ChangeNotifierProvider.value(
|
||||
|
@ -64,7 +65,7 @@ class QuotedMessage extends Message {
|
|||
key: key);
|
||||
});
|
||||
} catch (e) {
|
||||
return MalformedBubble();
|
||||
return MalformedMessage(this.metadata).getWidget(context, key, index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ class FileBubbleState extends State<FileBubble> {
|
|||
if (downloadComplete && path != null) {
|
||||
var lpath = path.toLowerCase();
|
||||
if (lpath.endsWith(".jpg") || lpath.endsWith(".jpeg") || lpath.endsWith(".png") || lpath.endsWith(".gif") || lpath.endsWith(".webp") || lpath.endsWith(".bmp")) {
|
||||
if (myFile == null) {
|
||||
if (myFile == null || myFile?.path != path) {
|
||||
setState(() {
|
||||
myFile = new File(path!);
|
||||
|
||||
|
|
|
@ -85,19 +85,19 @@ class _MessageListState extends State<MessageList> {
|
|||
itemCount: Provider.of<ContactInfoState>(outerContext).totalMessages,
|
||||
reverse: true, // NOTE: There seems to be a bug in flutter that corrects the mouse wheel scroll, but not the drag direction...
|
||||
itemBuilder: (itemBuilderContext, index) {
|
||||
var profileOnion = Provider.of<ProfileInfoState>(outerContext, listen: false).onion;
|
||||
var contactHandle = Provider.of<ContactInfoState>(outerContext, listen: false).identifier;
|
||||
var profileOnion = Provider.of<ProfileInfoState>(itemBuilderContext, listen: false).onion;
|
||||
var contactHandle = Provider.of<ContactInfoState>(itemBuilderContext, listen: false).identifier;
|
||||
var messageIndex = index;
|
||||
|
||||
return FutureBuilder(
|
||||
future: messageHandler(outerContext, profileOnion, contactHandle, ByIndex(messageIndex)),
|
||||
future: messageHandler(itemBuilderContext, profileOnion, contactHandle, ByIndex(messageIndex)),
|
||||
builder: (context, snapshot) {
|
||||
if (snapshot.hasData) {
|
||||
var message = snapshot.data as Message;
|
||||
// here we create an index key for the contact and assign it to the row. Indexes are unique so we can
|
||||
// reliably use this without running into duplicate keys...it isn't ideal as it means keys need to be re-built
|
||||
// when new messages are added...however it is better than the alternative of not having widget keys at all.
|
||||
var key = Provider.of<ContactInfoState>(outerContext, listen: false).getMessageKey(contactHandle, messageIndex);
|
||||
var key = Provider.of<ContactInfoState>(itemBuilderContext, listen: false).getMessageKey(contactHandle, messageIndex);
|
||||
return message.getWidget(context, key, messageIndex);
|
||||
} else {
|
||||
return MessageLoadingBubble();
|
||||
|
|
|
@ -114,7 +114,6 @@ class QuotedMessageBubbleState extends State<QuotedMessageBubble> {
|
|||
))
|
||||
]))));
|
||||
} catch (e) {
|
||||
print(e);
|
||||
return MalformedBubble();
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue