From a253809862d956e0f688efea12b15b971161eb56 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Wed, 22 Jan 2025 12:00:30 -0500 Subject: [PATCH] 1518 dont give hidden word activity for html formatted messages (#1520) * fix: prevent hidden word activities for HTML formatted messages * fix: add token highlighting for tokens with activities in HTML messages --- lib/pages/chat/events/html_message.dart | 23 +++++++++++++++++-- .../message_analytics_controller.dart | 3 ++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/pages/chat/events/html_message.dart b/lib/pages/chat/events/html_message.dart index 8e625f031..ffd750f08 100644 --- a/lib/pages/chat/events/html_message.dart +++ b/lib/pages/chat/events/html_message.dart @@ -14,6 +14,7 @@ import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pangea/common/utils/error_handler.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/pangea/toolbar/enums/activity_type_enum.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/mxc_image.dart'; import '../../../utils/url_launcher.dart'; @@ -374,8 +375,26 @@ class TokenExtension extends HtmlExtension { final selected = token != null && isSelected != null ? isSelected!.call(token) : false; - final backgroundColor = - selected ? AppConfig.primaryColor.withAlpha(80) : Colors.transparent; + final shouldDo = token?.shouldDoActivity( + a: ActivityTypeEnum.wordMeaning, + feature: null, + tag: null, + ) ?? + false; + + final didMeaningActivity = token?.didActivitySuccessfully( + ActivityTypeEnum.wordMeaning, + ) ?? + true; + + Color backgroundColor = Colors.transparent; + if (selected) { + backgroundColor = AppConfig.primaryColor.withAlpha(80); + } else if (isSelected != null && shouldDo) { + backgroundColor = !didMeaningActivity + ? AppConfig.success.withAlpha(60) + : AppConfig.gold.withAlpha(60); + } return TextSpan( recognizer: TapGestureRecognizer() diff --git a/lib/pangea/analytics/controllers/message_analytics_controller.dart b/lib/pangea/analytics/controllers/message_analytics_controller.dart index 3bf62d713..9abe97146 100644 --- a/lib/pangea/analytics/controllers/message_analytics_controller.dart +++ b/lib/pangea/analytics/controllers/message_analytics_controller.dart @@ -254,7 +254,8 @@ class MessageAnalyticsController { final bool includeHiddenWordActivities = !pangeaMessageEvent.ownMessage && pangeaMessageEvent.messageDisplayRepresentation?.tokens != null && - pangeaMessageEvent.messageDisplayLangIsL2; + pangeaMessageEvent.messageDisplayLangIsL2 && + !pangeaMessageEvent.event.isRichMessage; _cache[key] = MessageAnalyticsEntry( tokens: tokens,