diff --git a/lib/cwtch/cwtchNotifier.dart b/lib/cwtch/cwtchNotifier.dart index 29ec9ce4..f3eaeb07 100644 --- a/lib/cwtch/cwtchNotifier.dart +++ b/lib/cwtch/cwtchNotifier.dart @@ -92,8 +92,8 @@ class CwtchNotifier { if (serverInfoState != null) { status = serverInfoState.status; } - if (profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(data["GroupID"]) == null) { - profileCN.getProfile(data["ProfileOnion"])?.contactList.add(ContactInfoState(data["ProfileOnion"], data["ConversationID"], data["GroupID"], + if (profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(int.parse(data["ConversationID"])) == null) { + profileCN.getProfile(data["ProfileOnion"])?.contactList.add(ContactInfoState(data["ProfileOnion"], int.parse(data["ConversationID"]), data["GroupID"], authorization: ContactAuthorization.approved, imagePath: data["PicturePath"], nickname: data["GroupName"], @@ -101,7 +101,7 @@ class CwtchNotifier { server: data["GroupServer"], isGroup: true, lastMessageTime: DateTime.now())); - profileCN.getProfile(data["ProfileOnion"])?.contactList.updateLastMessageTime(data["GroupID"], DateTime.now()); + profileCN.getProfile(data["ProfileOnion"])?.contactList.updateLastMessageTime(int.parse(data["ConversationID"]), DateTime.now()); } break; case "PeerDeleted": @@ -303,8 +303,8 @@ class CwtchNotifier { case "AcceptGroupInvite": EnvironmentConfig.debugLog("accept group invite"); - profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(data["GroupID"])!.authorization = ContactAuthorization.approved; - profileCN.getProfile(data["ProfileOnion"])?.contactList.updateLastMessageTime(data["GroupID"], DateTime.fromMillisecondsSinceEpoch(0)); + profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(int.parse(data["ConversationID"]))!.authorization = ContactAuthorization.approved; + profileCN.getProfile(data["ProfileOnion"])?.contactList.updateLastMessageTime(int.parse(data["ConversationID"]), DateTime.fromMillisecondsSinceEpoch(0)); break; case "ServerStateChange": // Update the Server Cache @@ -317,13 +317,14 @@ class CwtchNotifier { profileCN.getProfile(data["ProfileOnion"])?.contactList.resort(); break; case "SetGroupAttribute": + int identifier = int.parse(data["ConversationID"]); if (data["Key"] == "local.name") { - if (profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(data["GroupID"]) != null) { - profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(data["GroupID"])!.nickname = data["Data"]; + if (profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(identifier) != null) { + profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(identifier)!.nickname = data["Data"]; } } else if (data["Key"] == "local.archived") { - if (profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(data["GroupID"]) != null) { - profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(data["GroupID"])!.isArchived = data["Data"] == "true"; + if (profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(identifier) != null) { + profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(identifier)!.isArchived = data["Data"] == "true"; } } else { EnvironmentConfig.debugLog("unhandled set group attribute event: ${data['Key']}"); diff --git a/lib/torstatus.dart b/lib/torstatus.dart index a6910b58..af94b78d 100644 --- a/lib/torstatus.dart +++ b/lib/torstatus.dart @@ -18,6 +18,9 @@ class TorStatus extends ChangeNotifier { progress = new_progress; status = new_status; + if (new_progress != 100) { + status = "$new_progress% - $new_status"; + } notifyListeners(); } diff --git a/lib/views/addcontactview.dart b/lib/views/addcontactview.dart index c073f0f5..4e984595 100644 --- a/lib/views/addcontactview.dart +++ b/lib/views/addcontactview.dart @@ -197,11 +197,15 @@ class _AddContactViewState extends State { }, isExpanded: true, // magic property value: server, - items: Provider.of(context).serverList.servers.map>((RemoteServerInfoState serverInfo) { + items: Provider.of(context) + .serverList + .servers + .where((serverInfo) => serverInfo.status == "Synced") + .map>((RemoteServerInfoState serverInfo) { return DropdownMenuItem( value: serverInfo.onion, child: Text( - serverInfo.onion, + serverInfo.description, overflow: TextOverflow.ellipsis, ), );