diff --git a/lib/pages/chat_list/chat_list_item.dart b/lib/pages/chat_list/chat_list_item.dart index 40ca6631..1ba515e2 100644 --- a/lib/pages/chat_list/chat_list_item.dart +++ b/lib/pages/chat_list/chat_list_item.dart @@ -142,14 +142,7 @@ class ChatListItem extends StatelessWidget { right: 0, child: Avatar( border: space == null - ? room.isSpace - ? BorderSide( - width: 0, - color: Theme.of(context) - .colorScheme - .outline, - ) - : null + ? null : BorderSide( width: 2, color: backgroundColor ?? diff --git a/lib/pages/chat_list/chat_list_view.dart b/lib/pages/chat_list/chat_list_view.dart index 5bb6687a..4391e83b 100644 --- a/lib/pages/chat_list/chat_list_view.dart +++ b/lib/pages/chat_list/chat_list_view.dart @@ -4,12 +4,14 @@ import 'package:flutter/services.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:keyboard_shortcuts/keyboard_shortcuts.dart'; +import 'package:matrix/matrix.dart'; import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pages/chat_list/navi_rail_item.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:fluffychat/utils/stream_extension.dart'; import 'package:fluffychat/widgets/avatar.dart'; import '../../widgets/matrix.dart'; import 'chat_list_body.dart'; @@ -21,6 +23,7 @@ class ChatListView extends StatelessWidget { @override Widget build(BuildContext context) { + final client = Matrix.of(context).client; return StreamBuilder( stream: Matrix.of(context).onShareContentChanged.stream, builder: (_, __) { @@ -44,8 +47,14 @@ class ChatListView extends StatelessWidget { children: [ if (FluffyThemes.isColumnMode(context) && controller.widget.displayNavigationRail) ...[ - Builder( - builder: (context) { + StreamBuilder( + key: ValueKey( + client.userID.toString(), + ), + stream: client.onSync.stream + .where((s) => s.hasRoomUpdate) + .rateLimit(const Duration(seconds: 1)), + builder: (context, _) { final allSpaces = Matrix.of(context) .client .rooms diff --git a/lib/widgets/avatar.dart b/lib/widgets/avatar.dart index cdb7b2e7..96aed191 100644 --- a/lib/widgets/avatar.dart +++ b/lib/widgets/avatar.dart @@ -66,13 +66,10 @@ class Avatar extends StatelessWidget { width: size, height: size, child: Material( + color: Theme.of(context).colorScheme.surfaceContainerLowest, shape: RoundedRectangleBorder( borderRadius: borderRadius, - side: border ?? - BorderSide( - color: Theme.of(context).dividerColor, - width: 1, - ), + side: border ?? BorderSide.none, ), clipBehavior: Clip.hardEdge, child: noPic