From 3e920a420aa71b29390bbcb22b4b3cf5d3b64c8b Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Mon, 18 Nov 2024 15:27:18 -0500 Subject: [PATCH] only add hidden message activities if the rep event langCode is the user's l2 (#1036) --- lib/pangea/controllers/message_analytics_controller.dart | 7 ++++++- lib/pangea/matrix_event_wrappers/pangea_message_event.dart | 4 ++++ lib/pangea/widgets/chat/message_selection_overlay.dart | 4 +--- lib/pangea/widgets/chat/message_token_text.dart | 4 +--- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/pangea/controllers/message_analytics_controller.dart b/lib/pangea/controllers/message_analytics_controller.dart index 450d5d49a..f75a9e305 100644 --- a/lib/pangea/controllers/message_analytics_controller.dart +++ b/lib/pangea/controllers/message_analytics_controller.dart @@ -2,6 +2,7 @@ import 'dart:math'; import 'package:fluffychat/pangea/controllers/get_analytics_controller.dart'; import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; +import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; import 'package:flutter/foundation.dart'; @@ -234,7 +235,7 @@ class MessageAnalyticsController { MessageAnalyticsEntry? get( List tokens, - bool includeHiddenWordActivities, + PangeaMessageEvent pangeaMessageEvent, ) { final String key = _key(tokens); @@ -242,6 +243,10 @@ class MessageAnalyticsController { return _cache[key]; } + final bool includeHiddenWordActivities = !pangeaMessageEvent.ownMessage && + pangeaMessageEvent.messageDisplayRepresentation?.tokens != null && + pangeaMessageEvent.messageDisplayLangIsL2; + _cache[key] = MessageAnalyticsEntry( tokens: tokens, includeHiddenWordActivities: includeHiddenWordActivities, diff --git a/lib/pangea/matrix_event_wrappers/pangea_message_event.dart b/lib/pangea/matrix_event_wrappers/pangea_message_event.dart index 68d33c1df..dda9e8e00 100644 --- a/lib/pangea/matrix_event_wrappers/pangea_message_event.dart +++ b/lib/pangea/matrix_event_wrappers/pangea_message_event.dart @@ -550,6 +550,10 @@ class PangeaMessageEvent { String? get l1Code => MatrixState.pangeaController.languageController.userL1?.langCode; + /// Should almost always be true. Useful in the case that the message + /// display rep has the langCode "unk" + bool get messageDisplayLangIsL2 => messageDisplayLangCode == l2Code; + String get messageDisplayLangCode { final bool immersionMode = MatrixState .pangeaController.permissionsController diff --git a/lib/pangea/widgets/chat/message_selection_overlay.dart b/lib/pangea/widgets/chat/message_selection_overlay.dart index 198247f8b..72973bfba 100644 --- a/lib/pangea/widgets/chat/message_selection_overlay.dart +++ b/lib/pangea/widgets/chat/message_selection_overlay.dart @@ -153,9 +153,7 @@ class MessageOverlayController extends State MessageAnalyticsEntry? get messageAnalyticsEntry => tokens != null ? MatrixState.pangeaController.getAnalytics.perMessage.get( tokens!, - // this logic should be in the controller - !pangeaMessageEvent.ownMessage && - pangeaMessageEvent.messageDisplayRepresentation?.tokens != null, + pangeaMessageEvent, ) : null; diff --git a/lib/pangea/widgets/chat/message_token_text.dart b/lib/pangea/widgets/chat/message_token_text.dart index 8ddca8f85..b99d98850 100644 --- a/lib/pangea/widgets/chat/message_token_text.dart +++ b/lib/pangea/widgets/chat/message_token_text.dart @@ -34,9 +34,7 @@ class MessageTokenText extends StatelessWidget { MessageAnalyticsEntry? get messageAnalyticsEntry => _tokens != null ? MatrixState.pangeaController.getAnalytics.perMessage.get( _tokens!, - // this logic should be in the controller - !_pangeaMessageEvent.ownMessage && - _pangeaMessageEvent.messageDisplayRepresentation?.tokens != null, + _pangeaMessageEvent, ) : null;