diff --git a/lib/pangea/analytics_data/level_up_analytics_service.dart b/lib/pangea/analytics_data/level_up_analytics_service.dart index 2004638d7..532a5252c 100644 --- a/lib/pangea/analytics_data/level_up_analytics_service.dart +++ b/lib/pangea/analytics_data/level_up_analytics_service.dart @@ -84,10 +84,19 @@ class LevelUpAnalyticsService { ownMessage: room.client.userID == event.senderId, ); - messages.add({ - 'sent': pangeaEvent.originalSent?.text ?? pangeaEvent.body, - 'written': pangeaEvent.originalWrittenContent, - }); + if (pangeaEvent.isAudioMessage) { + final stt = pangeaEvent.getSpeechToTextLocal(); + if (stt == null) continue; + messages.add({ + 'sent': stt.transcript.text, + 'written': stt.transcript.text, + }); + } else { + messages.add({ + 'sent': pangeaEvent.originalSent?.text ?? pangeaEvent.body, + 'written': pangeaEvent.originalWrittenContent, + }); + } } catch (e, s) { ErrorHandler.logError( e: e, diff --git a/lib/pangea/login/pages/language_selection_page.dart b/lib/pangea/login/pages/language_selection_page.dart index 772425fa9..f1f3f22e7 100644 --- a/lib/pangea/login/pages/language_selection_page.dart +++ b/lib/pangea/login/pages/language_selection_page.dart @@ -111,9 +111,11 @@ class LanguageSelectionPageState extends State { child: Row( spacing: 12.0, children: [ - BackButton( - onPressed: Navigator.of(context).pop, - ), + Navigator.of(context).canPop() + ? BackButton( + onPressed: Navigator.of(context).maybePop, + ) + : const SizedBox(width: 40.0), Expanded( child: LayoutBuilder( builder: (context, constraints) { diff --git a/lib/pangea/morphs/parts_of_speech_enum.dart b/lib/pangea/morphs/parts_of_speech_enum.dart index c9103781d..1aad8de71 100644 --- a/lib/pangea/morphs/parts_of_speech_enum.dart +++ b/lib/pangea/morphs/parts_of_speech_enum.dart @@ -16,6 +16,9 @@ enum PartOfSpeechEnum { verb, adj, adv, + idiom, + phrasalv, + compn, //Function tokens sconj, @@ -86,6 +89,12 @@ enum PartOfSpeechEnum { return L10n.of(context).grammarCopyPOSnoun; case PartOfSpeechEnum.intj: return L10n.of(context).grammarCopyPOSintj; + case PartOfSpeechEnum.idiom: + return L10n.of(context).grammarCopyPOSidiom; + case PartOfSpeechEnum.phrasalv: + return L10n.of(context).grammarCopyPOSphrasalv; + case PartOfSpeechEnum.compn: + return L10n.of(context).grammarCopyPOScompn; case PartOfSpeechEnum.x: return L10n.of(context).grammarCopyPOSx; } @@ -96,6 +105,9 @@ enum PartOfSpeechEnum { PartOfSpeechEnum.verb, PartOfSpeechEnum.adj, PartOfSpeechEnum.adv, + PartOfSpeechEnum.idiom, + PartOfSpeechEnum.phrasalv, + PartOfSpeechEnum.compn, ].contains(this); bool get canBeDefined => [ @@ -112,6 +124,9 @@ enum PartOfSpeechEnum { PartOfSpeechEnum.adp, PartOfSpeechEnum.aux, PartOfSpeechEnum.num, + PartOfSpeechEnum.idiom, + PartOfSpeechEnum.phrasalv, + PartOfSpeechEnum.compn, ].contains(this); bool get canBeHeard => [ @@ -128,6 +143,9 @@ enum PartOfSpeechEnum { PartOfSpeechEnum.adp, PartOfSpeechEnum.aux, PartOfSpeechEnum.num, + PartOfSpeechEnum.idiom, + PartOfSpeechEnum.phrasalv, + PartOfSpeechEnum.compn, ].contains(this); bool eligibleForPractice(ActivityTypeEnum activityType) {