From b6dca5b7a728bb9fd284819e035c0943b6e54c61 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Sat, 23 Jan 2021 10:13:21 +0100 Subject: [PATCH] fix: Search mxid for private chat --- lib/views/new_private_chat.dart | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/lib/views/new_private_chat.dart b/lib/views/new_private_chat.dart index 60b447d3..fd73559f 100644 --- a/lib/views/new_private_chat.dart +++ b/lib/views/new_private_chat.dart @@ -30,14 +30,15 @@ class _NewPrivateChatState extends State { -1; void submitAction(BuildContext context) async { + controller.text = controller.text.replaceAll('@', '').trim(); if (controller.text.isEmpty) return; if (!_formKey.currentState.validate()) return; final matrix = Matrix.of(context); - if ('@' + controller.text.trim() == matrix.client.userID) return; + if ('@' + controller.text == matrix.client.userID) return; final user = User( - '@' + controller.text.trim(), + '@' + controller.text, room: Room(id: '', client: matrix.client), ); final roomID = await showFutureLoadingDialog( @@ -52,12 +53,9 @@ class _NewPrivateChatState extends State { } void searchUserWithCoolDown(BuildContext context) async { - if (controller.text.startsWith('@')) { - controller.text = controller.text.substring(1); - } coolDown?.cancel(); coolDown = Timer( - Duration(seconds: 1), + Duration(milliseconds: 500), () => searchUser(context, controller.text), ); } @@ -73,14 +71,14 @@ class _NewPrivateChatState extends State { if (loading) return; setState(() => loading = true); final matrix = Matrix.of(context); - final response = await showFutureLoadingDialog( - context: context, - future: () => matrix.client.searchUser(text, limit: 10), - ); + UserSearchResult response; + try { + response = await matrix.client.searchUser(text, limit: 10); + } catch (_) {} setState(() => loading = false); - if (response.result?.results?.isEmpty ?? true) return; + if (response?.results?.isEmpty ?? true) return; setState(() { - foundProfiles = List.from(response.result.results); + foundProfiles = List.from(response.results); }); }