|
|
|
@ -5,6 +5,7 @@ import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
|
|
import 'package:cwtch/torstatus.dart';
|
|
|
|
|
|
|
|
|
|
import '../config.dart';
|
|
|
|
|
import '../errorHandler.dart';
|
|
|
|
|
import '../model.dart';
|
|
|
|
|
import '../settings.dart';
|
|
|
|
@ -150,7 +151,7 @@ class CwtchNotifier {
|
|
|
|
|
profileCN.getProfile(data["Identity"])?.contactList.getContact(contactHandle)!.totalMessages = int.parse(data["Data"]);
|
|
|
|
|
break;
|
|
|
|
|
case "IndexedFailure":
|
|
|
|
|
print("IndexedFailure");
|
|
|
|
|
EnvironmentConfig.debugLog("IndexedFailure");
|
|
|
|
|
var idx = data["Index"];
|
|
|
|
|
var key = profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(data["RemotePeer"])!.getMessageKey(idx);
|
|
|
|
|
try {
|
|
|
|
@ -162,7 +163,7 @@ class CwtchNotifier {
|
|
|
|
|
break;
|
|
|
|
|
case "SendMessageToGroupError":
|
|
|
|
|
// from me (already displayed - do not update counter)
|
|
|
|
|
print("SendMessageToGroupError");
|
|
|
|
|
EnvironmentConfig.debugLog("SendMessageToGroupError");
|
|
|
|
|
var idx = data["Signature"];
|
|
|
|
|
var key = profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(data["GroupID"])!.getMessageKey(idx);
|
|
|
|
|
if (key == null) break;
|
|
|
|
@ -175,7 +176,7 @@ class CwtchNotifier {
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case "AppError":
|
|
|
|
|
print("New App Error: $data");
|
|
|
|
|
EnvironmentConfig.debugLog("New App Error: $data");
|
|
|
|
|
// special case for delete error (todo: standardize cwtch errors)
|
|
|
|
|
if (data["Error"] == "Password did not match") {
|
|
|
|
|
error.handleUpdate("deleteprofile.error");
|
|
|
|
@ -190,7 +191,7 @@ class CwtchNotifier {
|
|
|
|
|
if (data["Key"] == "public.name") {
|
|
|
|
|
profileCN.getProfile(data["ProfileOnion"])?.nickname = data["Data"];
|
|
|
|
|
} else {
|
|
|
|
|
print("unhandled set attribute event: ${data['Key']}");
|
|
|
|
|
EnvironmentConfig.debugLog("unhandled set attribute event: ${data['Key']}");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case "NetworkError":
|
|
|
|
@ -198,18 +199,18 @@ class CwtchNotifier {
|
|
|
|
|
profileCN.getProfile(data["ProfileOnion"])?.isOnline = isOnline;
|
|
|
|
|
break;
|
|
|
|
|
case "ACNStatus":
|
|
|
|
|
print("acn status: $data");
|
|
|
|
|
EnvironmentConfig.debugLog("acn status: $data");
|
|
|
|
|
torStatus.handleUpdate(int.parse(data["Progress"]), data["Status"]);
|
|
|
|
|
break;
|
|
|
|
|
case "ACNVersion":
|
|
|
|
|
print("acn version: $data");
|
|
|
|
|
EnvironmentConfig.debugLog("acn version: $data");
|
|
|
|
|
torStatus.updateVersion(data["Data"]);
|
|
|
|
|
break;
|
|
|
|
|
case "UpdateServerInfo":
|
|
|
|
|
profileCN.getProfile(data["ProfileOnion"])?.replaceServers(data["ServerList"]);
|
|
|
|
|
break;
|
|
|
|
|
case "NewGroup":
|
|
|
|
|
print("new group");
|
|
|
|
|
EnvironmentConfig.debugLog("new group");
|
|
|
|
|
String invite = data["GroupInvite"].toString();
|
|
|
|
|
if (invite.startsWith("torv3")) {
|
|
|
|
|
String inviteJson = new String.fromCharCodes(base64Decode(invite.substring(5)));
|
|
|
|
@ -236,7 +237,7 @@ class CwtchNotifier {
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case "AcceptGroupInvite":
|
|
|
|
|
print("accept group invite");
|
|
|
|
|
EnvironmentConfig.debugLog("accept group invite");
|
|
|
|
|
|
|
|
|
|
profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(data["GroupID"])!.isInvitation = false;
|
|
|
|
|
profileCN.getProfile(data["ProfileOnion"])?.contactList.updateLastMessageTime(data["GroupID"], DateTime.now());
|
|
|
|
@ -257,7 +258,7 @@ class CwtchNotifier {
|
|
|
|
|
profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(data["GroupID"])!.nickname = data["Data"];
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
print("unhandled set group attribute event: ${data['Key']}");
|
|
|
|
|
EnvironmentConfig.debugLog("unhandled set group attribute event: ${data['Key']}");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case "NewRetValMessageFromPeer":
|
|
|
|
@ -267,11 +268,11 @@ class CwtchNotifier {
|
|
|
|
|
profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(data["RemotePeer"])!.nickname = data["Data"];
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
print("unhandled peer attribute event: ${data['Path']}");
|
|
|
|
|
EnvironmentConfig.debugLog("unhandled peer attribute event: ${data['Path']}");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
print("unhandled event: $type");
|
|
|
|
|
EnvironmentConfig.debugLog("unhandled event: $type");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|