diff --git a/lib/pages/chat/chat_view.dart b/lib/pages/chat/chat_view.dart index 21789f527..77be68981 100644 --- a/lib/pages/chat/chat_view.dart +++ b/lib/pages/chat/chat_view.dart @@ -42,11 +42,15 @@ class ChatView extends StatelessWidget { tooltip: L10n.of(context)!.edit, onPressed: controller.editSelectedEventAction, ), - IconButton( - icon: const Icon(Icons.copy_outlined), - tooltip: L10n.of(context)!.copy, - onPressed: controller.copyEventsAction, - ), + // #Pangea + if (controller.selectedEvents.length == 1 && + controller.selectedEvents.single.messageType == MessageTypes.Text) + // Pangea# + IconButton( + icon: const Icon(Icons.copy_outlined), + tooltip: L10n.of(context)!.copy, + onPressed: controller.copyEventsAction, + ), if (controller.canSaveSelectedEvent) // Use builder context to correctly position the share dialog on iPad Builder( @@ -116,8 +120,10 @@ class ChatView extends StatelessWidget { // #Pangea } else { return [ - ChatSettingsPopupMenu(controller.room, - (!controller.room.isDirectChat && !controller.room.isArchived)), + ChatSettingsPopupMenu( + controller.room, + (!controller.room.isDirectChat && !controller.room.isArchived), + ), ]; } diff --git a/lib/pangea/models/constructs_analytics_model.dart b/lib/pangea/models/constructs_analytics_model.dart index 0d940ab80..a62145485 100644 --- a/lib/pangea/models/constructs_analytics_model.dart +++ b/lib/pangea/models/constructs_analytics_model.dart @@ -68,26 +68,33 @@ class ConstructUses { } enum ConstructUseType { - /// encountered match and accepted it + /// produced in chat by user, igc was run, and we've judged it to be a correct use + wa, + + /// produced in chat by user, igc was run, and we've judged it to be a incorrect use + /// Note: if the IGC match is ignored, this is not counted as an incorrect use ga, - /// used without assistance - wa, + /// produced in chat by user and igc was not run + unk, /// selected correctly in IT flow corIt, - /// encountered as it distractor and selected it - incIt, - /// encountered as IT distractor and correctly ignored it ignIt, + /// encountered as it distractor and selected it + incIt, + /// encountered in igc match and ignored match ignIGC, - /// encountered in igc match and ignored match + /// selected correctly in IGC flow corIGC, + + /// encountered as distractor in IGC flow and selected it + incIGC, } extension on ConstructUseType { @@ -107,6 +114,10 @@ extension on ConstructUseType { return 'ignIGC'; case ConstructUseType.corIGC: return 'corIGC'; + case ConstructUseType.incIGC: + return 'incIGC'; + case ConstructUseType.unk: + return 'unk'; } } @@ -126,6 +137,10 @@ extension on ConstructUseType { return Icons.close; case ConstructUseType.corIGC: return Icons.check; + case ConstructUseType.incIGC: + return Icons.close; + case ConstructUseType.unk: + return Icons.help; } } } diff --git a/lib/pangea/models/headwords.dart b/lib/pangea/models/headwords.dart index cd0a68108..3586253b8 100644 --- a/lib/pangea/models/headwords.dart +++ b/lib/pangea/models/headwords.dart @@ -1,10 +1,10 @@ import 'dart:convert'; import 'dart:developer'; +import 'package:fluffychat/pangea/models/constructs_analytics_model.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; -import 'package:fluffychat/pangea/models/constructs_analytics_model.dart'; import '../enum/vocab_proficiency_enum.dart'; class VocabHeadwords { @@ -176,6 +176,11 @@ class VocabTotals { case ConstructUseType.corIGC: corIt++; break; + case ConstructUseType.incIGC: + incIt++; + break; + case ConstructUseType.unk: + break; } } }