diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index 48f5bdfd8..dd38b7a6f 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -58,6 +58,7 @@ import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/pangea/instructions/instructions_enum.dart'; import 'package:fluffychat/pangea/learning_settings/constants/language_constants.dart'; import 'package:fluffychat/pangea/learning_settings/widgets/p_language_dialog.dart'; +import 'package:fluffychat/pangea/message_token_text/tokens_util.dart'; import 'package:fluffychat/pangea/spaces/utils/load_participants_util.dart'; import 'package:fluffychat/pangea/toolbar/enums/message_mode_enum.dart'; import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart'; @@ -448,18 +449,7 @@ class ChatController extends State update is Map && (update['level_up'] != null || update['unlocked_constructs'] != null), ) - // .listen( - // (update) => Future.delayed( - // const Duration(milliseconds: 500), - // () => LevelUpUtil.showLevelUpDialog( - // update['level_up'], - // context, - // ), - // ), - // ) .listen( - // remove delay now that GetAnalyticsController._onLevelUp - // is async is should take roughly 500ms to make requests anyway (update) { if (update['level_up'] != null) { LevelUpUtil.showLevelUpDialog( @@ -791,6 +781,7 @@ class ChatController extends State _botAudioSubscription?.cancel(); _router.routeInformationProvider.removeListener(_onRouteChanged); carouselController.dispose(); + TokensUtil.clearNewTokenCache(); //Pangea# super.dispose(); } @@ -2074,12 +2065,12 @@ class ChatController extends State } } - Future _sendMessageAnalytics( + void _sendMessageAnalytics( String? eventId, { PangeaRepresentation? originalSent, PangeaMessageTokens? tokensSent, ChoreoRecord? choreo, - }) async { + }) { // There's a listen in my_analytics_controller that decides when to auto-update // analytics based on when / how many messages the logged in user send. This // stream sends the data for newly sent messages. diff --git a/lib/pages/chat/events/html_message.dart b/lib/pages/chat/events/html_message.dart index 67263af7b..b6346ef88 100644 --- a/lib/pages/chat/events/html_message.dart +++ b/lib/pages/chat/events/html_message.dart @@ -396,9 +396,10 @@ class HtmlMessage extends StatelessWidget { ); final fontSize = renderer.fontSize(context) ?? this.fontSize; - final newTokens = pangeaMessageEvent != null - ? TokensUtil.getNewTokens(pangeaMessageEvent!) - : []; + final newTokens = + pangeaMessageEvent != null && !pangeaMessageEvent!.ownMessage + ? TokensUtil.getNewTokens(pangeaMessageEvent!) + : []; // Pangea# switch (node.localName) { diff --git a/lib/pangea/message_token_text/tokens_util.dart b/lib/pangea/message_token_text/tokens_util.dart index 08f6bb235..d0959feca 100644 --- a/lib/pangea/message_token_text/tokens_util.dart +++ b/lib/pangea/message_token_text/tokens_util.dart @@ -1,3 +1,5 @@ +import 'package:matrix/matrix.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/events/models/pangea_token_text_model.dart'; @@ -66,6 +68,10 @@ class TokensUtil { static List getNewTokens( PangeaMessageEvent event, ) { + if (!event.eventId.isValidMatrixId) { + return []; + } + final messageInUserL2 = event.messageDisplayLangCode.split("-")[0] == MatrixState.pangeaController.languageController.userL2?.langCodeShort; @@ -102,7 +108,7 @@ class TokensUtil { return newTokens.any((t) => t == token.text); } - static clearNewTokenCache(String eventID) { + static clearNewTokenCache() { _newTokenCache.clear(); } diff --git a/lib/pangea/toolbar/widgets/message_selection_overlay.dart b/lib/pangea/toolbar/widgets/message_selection_overlay.dart index ddd0f5c64..6e5a68e90 100644 --- a/lib/pangea/toolbar/widgets/message_selection_overlay.dart +++ b/lib/pangea/toolbar/widgets/message_selection_overlay.dart @@ -545,7 +545,6 @@ class MessageOverlayController extends State ); if (mounted) { - TokensUtil.clearNewTokenCache(event.eventId); setState(() {}); } }