From 3d70b1efbfd879eb0c78087896efeb645284a0c3 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Thu, 17 Dec 2020 19:14:33 +0100 Subject: [PATCH] fix: Update typing --- lib/views/chat.dart | 103 ++++++++++++++++++++++---------------------- 1 file changed, 52 insertions(+), 51 deletions(-) diff --git a/lib/views/chat.dart b/lib/views/chat.dart index 31c522a2..5aaba85e 100644 --- a/lib/views/chat.dart +++ b/lib/views/chat.dart @@ -521,59 +521,60 @@ class _ChatState extends State<_Chat> { titleSpacing: 0, title: selectedEvents.isEmpty ? StreamBuilder( - stream: Matrix.of(context) - .client - .onPresence - .stream - .where((p) => p.senderId == room.directChatMatrixID), - builder: (context, snapshot) { - return ListTile( - leading: Avatar(room.avatar, room.displayname), - contentPadding: EdgeInsets.zero, - onTap: room.isDirectChat - ? () => showModalBottomSheet( - context: context, - builder: (context) => UserBottomSheet( - user: room - .getUserByMXIDSync(room.directChatMatrixID), - onMention: () => sendController.text += - ' ${room.directChatMatrixID}', - ), - ) - : () => Navigator.of(context).push( - AppRoute.defaultRoute( - context, - ChatDetails(room), - ), - ), - title: Text( - room.getLocalizedDisplayname( - MatrixLocals(L10n.of(context))), - maxLines: 1), - subtitle: typingText.isEmpty - ? Text( - room.getLocalizedStatus(context), - maxLines: 1, - ) - : Row( - children: [ - Icon(Icons.edit_outlined, - color: Theme.of(context).primaryColor, - size: 13), - SizedBox(width: 4), - Text( - typingText, - maxLines: 1, - style: TextStyle( - color: Theme.of(context).primaryColor, - fontStyle: FontStyle.italic, - fontSize: 16, + stream: room.onUpdate.stream, + builder: (context, snapshot) => ListTile( + leading: Avatar(room.avatar, room.displayname), + contentPadding: EdgeInsets.zero, + onTap: room.isDirectChat + ? () => showModalBottomSheet( + context: context, + builder: (context) => UserBottomSheet( + user: room.getUserByMXIDSync( + room.directChatMatrixID), + onMention: () => sendController.text += + ' ${room.directChatMatrixID}', + ), + ) + : () => Navigator.of(context).push( + AppRoute.defaultRoute( + context, + ChatDetails(room), ), ), - ], - ), - ); - }) + title: Text( + room.getLocalizedDisplayname( + MatrixLocals(L10n.of(context))), + maxLines: 1), + subtitle: typingText.isEmpty + ? StreamBuilder( + stream: Matrix.of(context) + .client + .onPresence + .stream + .where((p) => + p.senderId == room.directChatMatrixID), + builder: (context, snapshot) => Text( + room.getLocalizedStatus(context), + maxLines: 1, + )) + : Row( + children: [ + Icon(Icons.edit_outlined, + color: Theme.of(context).primaryColor, + size: 13), + SizedBox(width: 4), + Text( + typingText, + maxLines: 1, + style: TextStyle( + color: Theme.of(context).primaryColor, + fontStyle: FontStyle.italic, + fontSize: 16, + ), + ), + ], + ), + )) : Text(L10n.of(context) .numberSelected(selectedEvents.length.toString())), actions: selectMode