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;