From cc663515ec71ddfdc1016550813dbf5d5295c8ee Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Fri, 15 Aug 2025 13:56:14 -0400 Subject: [PATCH] chore: show learning objective as subtitle for activity sessions (#3762) --- lib/pages/chat_list/chat_list_item.dart | 2 +- .../utils/get_chat_list_item_subtitle.dart | 25 +++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/lib/pages/chat_list/chat_list_item.dart b/lib/pages/chat_list/chat_list_item.dart index 028dde8d1..c3e6c3256 100644 --- a/lib/pages/chat_list/chat_list_item.dart +++ b/lib/pages/chat_list/chat_list_item.dart @@ -314,7 +314,7 @@ class ChatListItem extends StatelessWidget { // #Pangea : room.lastEvent != null ? ChatListItemSubtitle( - event: room.lastEvent, + room: room, style: TextStyle( fontWeight: unread || room.hasNewMessages ? FontWeight.bold diff --git a/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart b/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart index f6d7a10bc..cc115f790 100644 --- a/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart +++ b/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart @@ -4,18 +4,19 @@ import 'package:matrix/matrix.dart'; import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/l10n/l10n.dart'; +import 'package:fluffychat/pangea/activity_sessions/activity_room_extension.dart'; import 'package:fluffychat/pangea/events/event_wrappers/pangea_message_event.dart'; import 'package:fluffychat/pangea/events/models/pangea_token_model.dart'; import 'package:fluffychat/widgets/matrix.dart'; import '../../../utils/matrix_sdk_extensions/matrix_locals.dart'; class ChatListItemSubtitle extends StatelessWidget { - final Event? event; + final Room room; final TextStyle style; const ChatListItemSubtitle({ super.key, - required this.event, + required this.room, required this.style, }); @@ -54,17 +55,27 @@ class ChatListItemSubtitle extends StatelessWidget { @override Widget build(BuildContext context) { + if (room.showActivityChatUI) { + return Text( + room.activityPlan!.learningObjective, + style: style, + maxLines: 2, + overflow: TextOverflow.ellipsis, + ); + } + + final event = room.lastEvent; if (event == null) return Text(L10n.of(context).emptyChat, style: style); - if (!_showPangeaContent(event!)) { + if (!_showPangeaContent(event)) { return FutureBuilder( - future: event!.calcLocalizedBody( + future: event.calcLocalizedBody( MatrixLocals(L10n.of(context)), hideReply: true, hideEdit: true, plaintextBody: true, removeMarkdown: true, - withSenderNamePrefix: !event!.room.isDirectChat || - event!.room.directChatMatrixID != event!.room.lastEvent?.senderId, + withSenderNamePrefix: !event.room.isDirectChat || + event.room.directChatMatrixID != event.room.lastEvent?.senderId, ), builder: (context, snapshot) { return Text( @@ -81,7 +92,7 @@ class ChatListItemSubtitle extends StatelessWidget { } return FutureBuilder( - future: _getPangeaMessageEvent(event!), + future: _getPangeaMessageEvent(event), builder: (context, snapshot) { if (snapshot.hasData) { final messageEventAndTokens = snapshot.data as MessageEventAndTokens;