feat(phonetic_transcription): hide transcription for langauges with the same script

This commit is contained in:
wcjord 2025-06-19 15:09:13 -04:00
parent d9824a7f40
commit d8a145834c
5 changed files with 43 additions and 38 deletions

View file

@ -1,13 +1,4 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:collection/collection.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:get_storage/get_storage.dart';
import 'package:matrix/matrix.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/pangea/common/config/environment.dart';
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
@ -15,6 +6,14 @@ import 'package:fluffychat/pangea/common/utils/firebase_analytics.dart';
import 'package:fluffychat/pangea/learning_settings/utils/p_language_store.dart';
import 'package:fluffychat/utils/client_manager.dart';
import 'package:fluffychat/utils/platform_infos.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:get_storage/get_storage.dart';
import 'package:matrix/matrix.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'config/setting_keys.dart';
import 'utils/background_push.dart';
import 'widgets/fluffy_chat_app.dart';
@ -24,7 +23,7 @@ void main() async {
// #Pangea
try {
await dotenv.load(fileName: ".env");
await dotenv.load(fileName: ".env.local_choreo");
} catch (e) {
Logs().e('Failed to load .env file', e);
}

View file

@ -1,7 +1,4 @@
import 'package:flutter/material.dart';
import 'package:collection/collection.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pangea/analytics_details_popup/analytics_details_popup_content.dart';
import 'package:fluffychat/pangea/analytics_misc/construct_use_model.dart';
@ -16,6 +13,7 @@ import 'package:fluffychat/pangea/toolbar/utils/shrinkable_text.dart';
import 'package:fluffychat/pangea/toolbar/widgets/practice_activity/word_text_with_audio_button.dart';
import 'package:fluffychat/pangea/toolbar/widgets/word_zoom/lemma_meaning_widget.dart';
import 'package:fluffychat/widgets/matrix.dart';
import 'package:flutter/material.dart';
/// Displays information about selected lemma, and its usage
class VocabDetailsView extends StatelessWidget {
@ -67,7 +65,7 @@ class VocabDetailsView extends StatelessWidget {
);
},
),
if (MatrixState.pangeaController.languageController.userL2 != null)
if (MatrixState.pangeaController.languageController.showTrancription)
Padding(
padding: const EdgeInsets.only(top: 4.0),
child: PhoneticTranscriptionWidget(

View file

@ -1,13 +1,12 @@
// ignore_for_file: depend_on_referenced_packages
import 'package:flutter/material.dart';
import 'package:universal_io/io.dart';
import 'package:fluffychat/pangea/common/controllers/pangea_controller.dart';
import 'package:fluffychat/pangea/learning_settings/constants/language_constants.dart';
import 'package:fluffychat/pangea/learning_settings/models/language_model.dart';
import 'package:fluffychat/pangea/learning_settings/utils/p_language_store.dart';
import 'package:flutter/material.dart';
import 'package:universal_io/io.dart';
import '../widgets/p_language_dialog.dart';
class LanguageController {
@ -112,4 +111,10 @@ class LanguageController {
// final model = activeL2 != null ? PangeaLanguage.byLangCode(activeL2) : null;
// return model;
}
bool get showTrancription =>
_pangeaController.languageController.userL1 != null &&
_pangeaController.languageController.userL2 != null &&
_pangeaController.languageController.userL1?.script !=
_pangeaController.languageController.userL2?.script;
}

View file

@ -1,17 +1,18 @@
import 'package:flutter/material.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pangea/learning_settings/constants/language_constants.dart';
import 'package:fluffychat/pangea/learning_settings/enums/l2_support_enum.dart';
import 'package:flutter/material.dart';
class LanguageModel {
final String langCode;
final String displayName;
final String script;
final L2SupportEnum l2Support;
LanguageModel({
required this.langCode,
required this.displayName,
this.script = LanguageKeys.unknownLanguage,
this.l2Support = L2SupportEnum.na,
});
@ -28,12 +29,14 @@ class LanguageModel {
l2Support: json['l2_support'] != null
? L2SupportEnum.na.fromStorageString(json['l2_support'])
: L2SupportEnum.na,
script: json['script'] ?? LanguageKeys.unknownLanguage,
);
}
toJson() => {
'language_code': langCode,
'language_name': displayName,
'script': script,
'l2_support': l2Support.storageString,
};

View file

@ -1,8 +1,3 @@
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:matrix/matrix.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pages/chat/chat.dart';
@ -18,6 +13,9 @@ import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart
import 'package:fluffychat/utils/date_time_extension.dart';
import 'package:fluffychat/utils/file_description.dart';
import 'package:fluffychat/widgets/matrix.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:matrix/matrix.dart';
// @ggurdin be great to explain the need/function of a widget like this
class OverlayMessage extends StatelessWidget {
@ -187,20 +185,22 @@ class OverlayMessage extends StatelessWidget {
fontStyle: FontStyle.italic,
),
),
PhoneticTranscriptionWidget(
text: overlayController
.transcription!.transcript.text,
textLanguage: PLanguageStore.byLangCode(
pangeaMessageEvent!
.messageDisplayLangCode,
) ??
LanguageModel.unknown,
style: AppConfig.messageTextStyle(
event,
textColor,
if (MatrixState.pangeaController
.languageController.showTrancription)
PhoneticTranscriptionWidget(
text: overlayController
.transcription!.transcript.text,
textLanguage: PLanguageStore.byLangCode(
pangeaMessageEvent!
.messageDisplayLangCode,
) ??
LanguageModel.unknown,
style: AppConfig.messageTextStyle(
event,
textColor,
),
iconColor: textColor,
),
iconColor: textColor,
),
],
),
)