Merge pull request #846 from pangeachat/776-unnecessary-practice-activities

got rid of practice activity for non target language
This commit is contained in:
ggurdin 2024-10-25 09:16:08 -04:00 committed by GitHub
commit b6a63d3701
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 42 additions and 12 deletions

View file

@ -4365,5 +4365,6 @@
"chooseVoice": "Choose a voice",
"enterLanguageLevel": "Please enter a language level",
"enterDiscussionTopic": "Please enter a discussion topic",
"selectBotChatMode": "Select chat mode"
"selectBotChatMode": "Select chat mode",
"messageNotInTargetLang": "Message not in target language"
}

View file

@ -66,10 +66,12 @@ extension MessageModeExtension on MessageMode {
}
}
bool isValidMode(Event event) {
bool shouldShowAsToolbarButton(Event event) {
switch (this) {
case MessageMode.translation:
return event.messageType == MessageTypes.Text;
case MessageMode.textToSpeech:
return event.messageType == MessageTypes.Text;
case MessageMode.definition:
return event.messageType == MessageTypes.Text;
case MessageMode.speechToText:

View file

@ -63,6 +63,11 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
/// If we don't have any good activities for them, we'll decrease this number
static const int neededActivities = 3;
int activitiesLeftToComplete = neededActivities;
bool get messageInUserL2 =>
pangeaMessageEvent.messageDisplayLangCode ==
MatrixState.pangeaController.languageController.userL2?.langCode;
PangeaMessageEvent get pangeaMessageEvent => widget._pangeaMessageEvent;
final TtsController tts = TtsController();
@ -160,6 +165,11 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
toolbarMode = MessageMode.speechToText;
return;
}
// if (!messageInUserL2) {
// activitiesLeftToComplete = 0;
// toolbarMode = MessageMode.nullMode;
// return;
// }
if (activitiesLeftToComplete > 0) {
toolbarMode = MessageMode.practiceActivity;

View file

@ -12,11 +12,12 @@ import 'package:fluffychat/pangea/widgets/chat/message_translation_card.dart';
import 'package:fluffychat/pangea/widgets/chat/message_unsubscribed_card.dart';
import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart';
import 'package:fluffychat/pangea/widgets/igc/word_data_card.dart';
import 'package:fluffychat/pangea/widgets/message_display_card.dart';
import 'package:fluffychat/pangea/widgets/practice_activity/practice_activity_card.dart';
import 'package:fluffychat/pangea/widgets/select_to_define.dart';
import 'package:fluffychat/widgets/matrix.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
const double minCardHeight = 70;
@ -32,7 +33,7 @@ class MessageToolbar extends StatelessWidget {
required this.tts,
});
Widget get toolbarContent {
Widget toolbarContent(BuildContext context) {
final bool subscribed =
MatrixState.pangeaController.subscriptionController.isSubscribed;
@ -42,6 +43,18 @@ class MessageToolbar extends StatelessWidget {
);
}
// Check if the message is in the user's second language
final bool messageInUserL2 = pangeaMessageEvent.messageDisplayLangCode ==
MatrixState.pangeaController.languageController.userL2?.langCode;
// If not in the target language, set to nullMode
if (!messageInUserL2) {
return MessageDisplayCard(
displayText:
L10n.of(context)!.messageNotInTargetLang, // Pass the display text,
);
}
switch (overLayController.toolbarMode) {
case MessageMode.translation:
return MessageTranslationCard(
@ -62,7 +75,9 @@ class MessageToolbar extends StatelessWidget {
);
case MessageMode.definition:
if (!overLayController.isSelection) {
return const SelectToDefine();
return MessageDisplayCard(
displayText: L10n.of(context)!.selectToDefine,
);
} else {
try {
final selectedText = overLayController.targetText;
@ -127,7 +142,7 @@ class MessageToolbar extends StatelessWidget {
child: SingleChildScrollView(
child: AnimatedSize(
duration: FluffyThemes.animationDuration,
child: toolbarContent,
child: toolbarContent(context),
),
),
);

View file

@ -22,7 +22,7 @@ class ToolbarButtons extends StatelessWidget {
overlayController.pangeaMessageEvent;
List<MessageMode> get modes => MessageMode.values
.where((mode) => mode.isValidMode(pangeaMessageEvent.event))
.where((mode) => mode.shouldShowAsToolbarButton(pangeaMessageEvent.event))
.toList();
static const double iconWidth = 36.0;

View file

@ -1,10 +1,12 @@
import 'package:fluffychat/pangea/utils/bot_style.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
class SelectToDefine extends StatelessWidget {
const SelectToDefine({
class MessageDisplayCard extends StatelessWidget {
final String displayText;
const MessageDisplayCard({
super.key,
required this.displayText,
});
@override
@ -12,7 +14,7 @@ class SelectToDefine extends StatelessWidget {
return Padding(
padding: const EdgeInsets.fromLTRB(16, 20, 16, 16),
child: Text(
L10n.of(context)!.selectToDefine,
displayText,
style: BotStyle.text(context),
textAlign: TextAlign.center,
),

View file

@ -6,7 +6,7 @@ description: Learn a language while texting your friends.
# Pangea#
publish_to: none
# On version bump also increase the build number for F-Droid
version: 1.22.6+3556
version: 1.22.7+3557
environment:
sdk: ">=3.0.0 <4.0.0"