SendMessageToGroupError + Cwtch Version Bump #76
|
@ -1 +1 @@
|
|||
v0.0.2-20-g7ad9c25-2021-05-07-23-49
|
||||
v0.0.2-24-ga1095b7-2021-05-11-00-13
|
|
@ -100,6 +100,20 @@ class CwtchNotifier {
|
|||
}
|
||||
}
|
||||
break;
|
||||
case "SendMessageToGroupError":
|
||||
// from me (already displayed - do not update counter)
|
||||
print("SendMessageToGroupError: $data");
|
||||
var idx = data["Signature"];
|
||||
var key = profileCN.getProfile(data["ProfileOnion"]).contactList.getContact(data["GroupID"]).getMessageKey(idx);
|
||||
if (key == null) break;
|
||||
try {
|
||||
var message = Provider.of<MessageState>(key.currentContext, listen: false);
|
||||
if (message == null) break;
|
||||
message.error = true;
|
||||
} catch (e) {
|
||||
// ignore, we likely have an old key that has been replaced with an actual signature
|
||||
}
|
||||
break;
|
||||
case "AppError":
|
||||
print("New App Error: $data");
|
||||
error.handleUpdate(data["Data"]);
|
||||
|
@ -148,11 +162,11 @@ class CwtchNotifier {
|
|||
print("server state change: $data");
|
||||
profileCN.getProfile(data["ProfileOnion"]).contactList.contacts.forEach((contact) {
|
||||
if (contact.isGroup == true && contact.server == data["GroupServer"]) {
|
||||
print("server state change: $data " + contact.server);
|
||||
contact.status = data["ConnectionState"];
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
print("unhandled event: $type");
|
||||
}
|
||||
|
|
|
@ -358,6 +358,7 @@ class MessageState extends ChangeNotifier {
|
|||
String _senderImage;
|
||||
String _signature = "";
|
||||
bool _ackd = false;
|
||||
bool _error = false;
|
||||
bool _loaded = false;
|
||||
|
||||
MessageState({
|
||||
|
@ -372,6 +373,7 @@ class MessageState extends ChangeNotifier {
|
|||
get message => this._message;
|
||||
get timestamp => this._timestamp;
|
||||
get ackd => this._ackd;
|
||||
get error => this._error;
|
||||
get senderOnion => this._senderOnion;
|
||||
get senderImage => this._senderImage;
|
||||
get loaded => this._loaded;
|
||||
|
@ -382,6 +384,11 @@ class MessageState extends ChangeNotifier {
|
|||
notifyListeners();
|
||||
}
|
||||
|
||||
set error(bool newVal) {
|
||||
this._error = newVal;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void tryLoad(BuildContext context) {
|
||||
Provider.of<FlwtchState>(context, listen: false).cwtch.GetMessage(profileOnion, contactHandle, messageIndex).then((jsonMessage) {
|
||||
dynamic messageWrapper = jsonDecode(jsonMessage);
|
||||
|
@ -406,8 +413,12 @@ class MessageState extends ChangeNotifier {
|
|||
}
|
||||
|
||||
this._loaded = true;
|
||||
//update ackd last as it's changenotified
|
||||
this._ackd = messageWrapper['Acknowledged'];
|
||||
|
||||
//update ackd and error last as they are changenotified
|
||||
this.ackd = messageWrapper['Acknowledged'];
|
||||
if (messageWrapper['Error'] != null) {
|
||||
this.error = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,9 +61,11 @@ class MessageBubbleState extends State<MessageBubble> {
|
|||
textAlign: fromMe ? TextAlign.right : TextAlign.left),
|
||||
!fromMe
|
||||
? SizedBox(width: 1, height: 1)
|
||||
: Provider.of<MessageState>(context).ackd
|
||||
: Provider.of<MessageState>(context).ackd == true
|
||||
? Icon(Icons.check_circle_outline, color: Provider.of<Settings>(context).theme.messageFromMeTextColor(), size: 12)
|
||||
: Icon(Icons.hourglass_bottom_outlined, color: Provider.of<Settings>(context).theme.messageFromMeTextColor(), size: 12)
|
||||
: (Provider.of<MessageState>(context).error == true
|
||||
? Icon(Icons.error_outline, color: Provider.of<Settings>(context).theme.messageFromMeTextColor(), size: 12)
|
||||
: Icon(Icons.hourglass_bottom_outlined, color: Provider.of<Settings>(context).theme.messageFromMeTextColor(), size: 12))
|
||||
],
|
||||
));
|
||||
|
||||
|
|
Loading…
Reference in New Issue