Merge pull request #4801 from pangeachat/file-organization
build: file reorganization
This commit is contained in:
commit
c48b1b1b34
104 changed files with 196 additions and 1737 deletions
|
|
@ -37,12 +37,12 @@ import 'package:fluffychat/pangea/analytics_page/analytics_page.dart';
|
|||
import 'package:fluffychat/pangea/analytics_summary/progress_indicators_enum.dart';
|
||||
import 'package:fluffychat/pangea/chat_settings/pages/edit_course.dart';
|
||||
import 'package:fluffychat/pangea/chat_settings/pages/pangea_invitation_selection.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/p_vguard.dart';
|
||||
import 'package:fluffychat/pangea/constructs/construct_identifier.dart';
|
||||
import 'package:fluffychat/pangea/course_creation/course_invite_page.dart';
|
||||
import 'package:fluffychat/pangea/course_creation/selected_course_page.dart';
|
||||
import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/find_your_people/find_your_people_constants.dart';
|
||||
import 'package:fluffychat/pangea/guard/p_vguard.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/join_with_link_page.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/settings_learning.dart';
|
||||
import 'package:fluffychat/pangea/login/pages/add_course_page.dart';
|
||||
import 'package:fluffychat/pangea/login/pages/course_code_page.dart';
|
||||
|
|
@ -54,7 +54,6 @@ import 'package:fluffychat/pangea/login/pages/public_courses_page.dart';
|
|||
import 'package:fluffychat/pangea/login/pages/signup.dart';
|
||||
import 'package:fluffychat/pangea/space_analytics/space_analytics.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_constants.dart';
|
||||
import 'package:fluffychat/pangea/spaces/widgets/join_with_link_page.dart';
|
||||
import 'package:fluffychat/pangea/subscription/pages/settings_subscription.dart';
|
||||
import 'package:fluffychat/widgets/config_viewer.dart';
|
||||
import 'package:fluffychat/widgets/layouts/empty_page.dart';
|
||||
|
|
@ -347,7 +346,7 @@ abstract class AppRoutes {
|
|||
child: CachedNetworkImage(
|
||||
width: 250.0,
|
||||
imageUrl:
|
||||
"${AppConfig.assetsBaseURL}/${FindYourPeopleConstants.sideBearFileName}",
|
||||
"${AppConfig.assetsBaseURL}/${SpaceConstants.sideBearFileName}",
|
||||
),
|
||||
)
|
||||
// Pangea#
|
||||
|
|
|
|||
|
|
@ -61,14 +61,14 @@ import 'package:fluffychat/pangea/languages/language_constants.dart';
|
|||
import 'package:fluffychat/pangea/languages/language_service.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/language_mismatch_repo.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/p_language_dialog.dart';
|
||||
import 'package:fluffychat/pangea/message_token_text/tokens_util.dart';
|
||||
import 'package:fluffychat/pangea/spaces/widgets/load_participants_builder.dart';
|
||||
import 'package:fluffychat/pangea/spaces/load_participants_builder.dart';
|
||||
import 'package:fluffychat/pangea/subscription/widgets/paywall_card.dart';
|
||||
import 'package:fluffychat/pangea/token_info_feedback/token_info_feedback_dialog.dart';
|
||||
import 'package:fluffychat/pangea/token_info_feedback/token_info_feedback_notification.dart';
|
||||
import 'package:fluffychat/pangea/token_info_feedback/token_info_feedback_request.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/message_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_practice_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/tokens_util.dart';
|
||||
import 'package:fluffychat/utils/error_reporter.dart';
|
||||
import 'package:fluffychat/utils/file_selector.dart';
|
||||
import 'package:fluffychat/utils/matrix_sdk_extensions/event_extension.dart';
|
||||
|
|
@ -1972,7 +1972,7 @@ class ChatController extends State<ChatPageWithRoom>
|
|||
Event event, {
|
||||
PangeaMessageEvent? pangeaMessageEvent,
|
||||
PangeaToken? selectedToken,
|
||||
MessageMode? mode,
|
||||
MessagePracticeMode? mode,
|
||||
Event? nextEvent,
|
||||
Event? prevEvent,
|
||||
}) {
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ import 'package:path_provider/path_provider.dart';
|
|||
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_audio_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_audio_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/utils/error_reporter.dart';
|
||||
import 'package:fluffychat/utils/file_description.dart';
|
||||
import 'package:fluffychat/utils/localized_exception_extension.dart';
|
||||
|
|
|
|||
|
|
@ -13,12 +13,12 @@ import 'package:fluffychat/config/app_config.dart';
|
|||
import 'package:fluffychat/pages/chat/chat.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/message_token_text/token_emoji_button.dart';
|
||||
import 'package:fluffychat/pangea/message_token_text/token_practice_button.dart';
|
||||
import 'package:fluffychat/pangea/message_token_text/tokens_util.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/utils/token_rendering_util.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/token_practice_button.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/token_emoji_button.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/token_rendering_util.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/tokens_util.dart';
|
||||
import 'package:fluffychat/utils/event_checkbox_extension.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ import 'package:fluffychat/pangea/events/event_wrappers/pangea_message_event.dar
|
|||
import 'package:fluffychat/pangea/events/extensions/pangea_event_extension.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
||||
import 'package:fluffychat/pangea/text_to_speech/tts_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/utils/event_checkbox_extension.dart';
|
||||
import '../../../config/app_config.dart';
|
||||
import '../../../utils/platform_infos.dart';
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ import 'package:fluffychat/pangea/choreographer/choreographer.dart';
|
|||
import 'package:fluffychat/pangea/choreographer/text_editing/edit_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/choreographer/text_editing/pangea_text_controller.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/overlay.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/shrinkable_text.dart';
|
||||
import 'package:fluffychat/pangea/subscription/controllers/subscription_controller.dart';
|
||||
import 'package:fluffychat/pangea/subscription/widgets/paywall_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/utils/shrinkable_text.dart';
|
||||
import 'package:fluffychat/utils/markdown_context_builder.dart';
|
||||
import 'package:fluffychat/widgets/mxc_image.dart';
|
||||
import '../../widgets/avatar.dart';
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import 'package:wakelock_plus/wakelock_plus.dart';
|
|||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/config/setting_keys.dart';
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/utils/update_version_dialog.dart';
|
||||
import 'package:fluffychat/utils/platform_infos.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import 'events/audio_player.dart';
|
||||
|
|
@ -66,32 +65,19 @@ class RecordingDialogState extends State<RecordingDialog> {
|
|||
}
|
||||
await WakelockPlus.enable();
|
||||
|
||||
// #Pangea
|
||||
final isNotError = await showUpdateVersionDialog(
|
||||
future: () async =>
|
||||
// Pangea#
|
||||
await _audioRecorder.start(
|
||||
RecordConfig(
|
||||
bitRate: AppSettings.audioRecordingBitRate.getItem(store),
|
||||
sampleRate: AppSettings.audioRecordingSamplingRate.getItem(store),
|
||||
numChannels: AppSettings.audioRecordingNumChannels.getItem(store),
|
||||
autoGain: AppSettings.audioRecordingAutoGain.getItem(store),
|
||||
echoCancel: AppSettings.audioRecordingEchoCancel.getItem(store),
|
||||
noiseSuppress:
|
||||
AppSettings.audioRecordingNoiseSuppress.getItem(store),
|
||||
encoder: codec,
|
||||
),
|
||||
path: path ?? '',
|
||||
await _audioRecorder.start(
|
||||
RecordConfig(
|
||||
bitRate: AppSettings.audioRecordingBitRate.getItem(store),
|
||||
sampleRate: AppSettings.audioRecordingSamplingRate.getItem(store),
|
||||
numChannels: AppSettings.audioRecordingNumChannels.getItem(store),
|
||||
autoGain: AppSettings.audioRecordingAutoGain.getItem(store),
|
||||
echoCancel: AppSettings.audioRecordingEchoCancel.getItem(store),
|
||||
noiseSuppress: AppSettings.audioRecordingNoiseSuppress.getItem(store),
|
||||
encoder: codec,
|
||||
),
|
||||
// #Pangea
|
||||
context: context,
|
||||
path: path ?? '',
|
||||
);
|
||||
|
||||
if (!isNotError) {
|
||||
Navigator.of(context).pop();
|
||||
return;
|
||||
}
|
||||
// Pangea#
|
||||
setState(() => _duration = Duration.zero);
|
||||
_recorderSubscription?.cancel();
|
||||
_recorderSubscription =
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ import 'package:fluffychat/pangea/chat_settings/constants/pangea_room_types.dart
|
|||
import 'package:fluffychat/pangea/chat_settings/widgets/chat_context_menu_action.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_code_controller.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_code_repo.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/space_code_controller.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/space_code_repo.dart';
|
||||
import 'package:fluffychat/pangea/subscription/widgets/subscription_snackbar.dart';
|
||||
import 'package:fluffychat/utils/localized_exception_extension.dart';
|
||||
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart';
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@ import 'package:matrix/matrix.dart';
|
|||
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/authentication/p_login.dart';
|
||||
import 'package:fluffychat/pangea/login/pages/login_options_view.dart';
|
||||
import 'package:fluffychat/pangea/login/pages/pangea_login_view.dart';
|
||||
import 'package:fluffychat/pangea/login/widgets/p_sso_button.dart';
|
||||
import 'package:fluffychat/pangea/user/p_login.dart';
|
||||
import 'package:fluffychat/utils/localized_exception_extension.dart';
|
||||
import 'package:fluffychat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart';
|
||||
import 'package:fluffychat/widgets/adaptive_dialogs/show_text_input_dialog.dart';
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
|||
import 'package:fluffychat/pangea/common/utils/firebase_analytics.dart';
|
||||
import 'package:fluffychat/pangea/extensions/join_rule_extension.dart';
|
||||
import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/spaces/utils/client_spaces_extension.dart';
|
||||
import 'package:fluffychat/pangea/spaces/client_spaces_extension.dart';
|
||||
import 'package:fluffychat/utils/file_selector.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import 'package:image_picker/image_picker.dart';
|
|||
import 'package:matrix/matrix.dart';
|
||||
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/user/p_logout.dart';
|
||||
import 'package:fluffychat/pangea/authentication/p_logout.dart';
|
||||
import 'package:fluffychat/utils/file_selector.dart';
|
||||
import 'package:fluffychat/utils/platform_infos.dart';
|
||||
import 'package:fluffychat/widgets/adaptive_dialogs/show_modal_action_popup.dart';
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import 'package:matrix/matrix.dart';
|
|||
import 'package:fluffychat/pangea/activity_planner/activity_plan_model.dart';
|
||||
import 'package:fluffychat/pangea/activity_sessions/activity_participant_indicator.dart';
|
||||
import 'package:fluffychat/pangea/activity_sessions/activity_role_model.dart';
|
||||
import 'package:fluffychat/pangea/spaces/widgets/load_participants_builder.dart';
|
||||
import 'package:fluffychat/pangea/spaces/load_participants_builder.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import 'package:fluffychat/widgets/member_actions_popup_menu_button.dart';
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import 'package:fluffychat/pangea/analytics_misc/construct_type_enum.dart';
|
|||
import 'package:fluffychat/pangea/common/utils/overlay.dart';
|
||||
import 'package:fluffychat/pangea/constructs/construct_identifier.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_text_model.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/word_zoom/word_zoom_widget.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/word_card/word_zoom_widget.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class ActivityVocabWidget extends StatelessWidget {
|
||||
|
|
|
|||
|
|
@ -4,18 +4,18 @@ 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_details_popup/word_text_with_audio_button.dart';
|
||||
import 'package:fluffychat/pangea/analytics_misc/construct_use_model.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/shrinkable_text.dart';
|
||||
import 'package:fluffychat/pangea/constructs/construct_identifier.dart';
|
||||
import 'package:fluffychat/pangea/constructs/construct_level_enum.dart';
|
||||
import 'package:fluffychat/pangea/lemmas/lemma_highlight_emoji_row.dart';
|
||||
import 'package:fluffychat/pangea/lemmas/lemma_meaning_builder.dart';
|
||||
import 'package:fluffychat/pangea/lemmas/lemma_meaning_widget.dart';
|
||||
import 'package:fluffychat/pangea/morphs/get_grammar_copy.dart';
|
||||
import 'package:fluffychat/pangea/morphs/morph_features_enum.dart';
|
||||
import 'package:fluffychat/pangea/morphs/morph_icon.dart';
|
||||
import 'package:fluffychat/pangea/phonetic_transcription/phonetic_transcription_widget.dart';
|
||||
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_builder.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/word_zoom/lemma_meaning_widget.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
/// Displays information about selected lemma, and its usage
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
|
|||
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/pangea/analytics_misc/construct_use_model.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/shrinkable_text.dart';
|
||||
import 'package:fluffychat/pangea/constructs/construct_level_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/utils/shrinkable_text.dart';
|
||||
|
||||
class VocabAnalyticsListTile extends StatefulWidget {
|
||||
const VocabAnalyticsListTile({
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/practice_activity/word_audio_button.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/word_audio_button.dart';
|
||||
|
||||
class WordTextWithAudioButton extends StatelessWidget {
|
||||
final String text;
|
||||
|
|
@ -10,12 +10,12 @@ import 'package:fluffychat/config/app_config.dart';
|
|||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/analytics_misc/construct_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/chat/widgets/icon_rain.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/overlay.dart';
|
||||
import 'package:fluffychat/pangea/constructs/construct_identifier.dart';
|
||||
import 'package:fluffychat/pangea/morphs/get_grammar_copy.dart';
|
||||
import 'package:fluffychat/pangea/morphs/morph_features_enum.dart';
|
||||
import 'package:fluffychat/pangea/morphs/morph_icon.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/icon_rain.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class ConstructNotificationUtil {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import 'package:matrix/matrix.dart';
|
|||
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_code_repo.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/space_code_repo.dart';
|
||||
import 'package:fluffychat/utils/localized_exception_extension.dart';
|
||||
import 'package:fluffychat/widgets/adaptive_dialogs/adaptive_dialog_action.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import 'package:matrix/matrix.dart';
|
|||
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/extensions/pangea_rooms_chunk_extension.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_code_controller.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/space_code_controller.dart';
|
||||
import 'package:fluffychat/utils/adaptive_bottom_sheet.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
|
|
@ -8,7 +8,7 @@ import 'package:fluffychat/config/app_config.dart';
|
|||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/analytics_misc/level_display_name.dart';
|
||||
import 'package:fluffychat/pangea/bot/utils/bot_name.dart';
|
||||
import 'package:fluffychat/pangea/spaces/widgets/load_participants_builder.dart';
|
||||
import 'package:fluffychat/pangea/spaces/load_participants_builder.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
import 'package:fluffychat/widgets/hover_builder.dart';
|
||||
import 'package:fluffychat/widgets/member_actions_popup_menu_button.dart';
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import 'package:fluffychat/l10n/l10n.dart';
|
|||
import 'package:fluffychat/pangea/bot/utils/bot_style.dart';
|
||||
import 'package:fluffychat/pangea/choreographer/it/contextual_definition_repo.dart';
|
||||
import 'package:fluffychat/pangea/choreographer/it/contextual_definition_request_model.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/content_loading_indicator.dart';
|
||||
import 'package:fluffychat/pangea/languages/language_constants.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/toolbar_content_loading_indicator.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
|
|
@ -50,7 +50,7 @@ class WordDataCard extends StatelessWidget {
|
|||
future: _fetchDefinition(),
|
||||
builder: (context, snapshot) {
|
||||
if (!snapshot.hasData) {
|
||||
return const ToolbarContentLoadingIndicator();
|
||||
return const ContentLoadingIndicator();
|
||||
}
|
||||
final result = snapshot.data!;
|
||||
if (result.isError) {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import 'package:fluffychat/config/setting_keys.dart';
|
|||
import 'package:fluffychat/pangea/analytics_misc/get_analytics_controller.dart';
|
||||
import 'package:fluffychat/pangea/analytics_misc/put_analytics_controller.dart';
|
||||
import 'package:fluffychat/pangea/chat_settings/utils/bot_client_extension.dart';
|
||||
import 'package:fluffychat/pangea/guard/p_vguard.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/p_vguard.dart';
|
||||
import 'package:fluffychat/pangea/languages/locale_provider.dart';
|
||||
import 'package:fluffychat/pangea/languages/p_language_store.dart';
|
||||
import 'package:fluffychat/pangea/subscription/controllers/subscription_controller.dart';
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:go_router/go_router.dart';
|
||||
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import '../common/controllers/pangea_controller.dart';
|
||||
import '../controllers/pangea_controller.dart';
|
||||
|
||||
class PAuthGaurd {
|
||||
static bool isPublicLeaving = false;
|
||||
|
|
@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
|
|||
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
|
||||
class ToolbarContentLoadingIndicator extends StatelessWidget {
|
||||
const ToolbarContentLoadingIndicator({
|
||||
class ContentLoadingIndicator extends StatelessWidget {
|
||||
const ContentLoadingIndicator({
|
||||
super.key,
|
||||
this.height,
|
||||
});
|
||||
|
|
@ -11,6 +11,7 @@ import 'package:fluffychat/l10n/l10n.dart';
|
|||
import 'package:fluffychat/pages/chat_list/chat_list.dart';
|
||||
import 'package:fluffychat/pangea/activity_planner/activity_plan_model.dart';
|
||||
import 'package:fluffychat/pangea/activity_sessions/activity_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/chat_list/widgets/public_room_bottom_sheet.dart';
|
||||
import 'package:fluffychat/pangea/chat_settings/constants/pangea_room_types.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/course_chats/course_chats_view.dart';
|
||||
|
|
@ -20,7 +21,6 @@ import 'package:fluffychat/pangea/course_plans/course_activities/activity_summar
|
|||
import 'package:fluffychat/pangea/course_plans/courses/course_plan_builder.dart';
|
||||
import 'package:fluffychat/pangea/course_plans/courses/course_plan_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/public_spaces/public_room_bottom_sheet.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_constants.dart';
|
||||
import 'package:fluffychat/utils/localized_exception_extension.dart';
|
||||
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart';
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import 'package:fluffychat/pangea/course_chats/course_chats_page.dart';
|
|||
import 'package:fluffychat/pangea/course_chats/course_default_chats_enum.dart';
|
||||
import 'package:fluffychat/pangea/course_chats/unjoined_chat_list_item.dart';
|
||||
import 'package:fluffychat/pangea/space_analytics/analytics_request_indicator.dart';
|
||||
import 'package:fluffychat/pangea/spaces/widgets/knocking_users_indicator.dart';
|
||||
import 'package:fluffychat/pangea/spaces/knocking_users_indicator.dart';
|
||||
import 'package:fluffychat/utils/stream_extension.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import 'package:fluffychat/pangea/course_plans/courses/course_plan_builder.dart'
|
|||
import 'package:fluffychat/pangea/course_plans/courses/course_plan_model.dart';
|
||||
import 'package:fluffychat/pangea/course_plans/courses/course_plan_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/events/constants/pangea_event_types.dart';
|
||||
import 'package:fluffychat/pangea/spaces/utils/client_spaces_extension.dart';
|
||||
import 'package:fluffychat/pangea/spaces/client_spaces_extension.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
enum SelectedCourseMode { launch, addToSpace, join }
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import 'package:collection/collection.dart';
|
|||
import 'package:matrix/matrix.dart';
|
||||
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/spaces/widgets/load_participants_builder.dart';
|
||||
import 'package:fluffychat/pangea/spaces/load_participants_builder.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
import 'package:fluffychat/widgets/member_actions_popup_menu_button.dart';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,36 +0,0 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class EmojiStack extends StatelessWidget {
|
||||
const EmojiStack({
|
||||
super.key,
|
||||
required List<String> emoji,
|
||||
this.style,
|
||||
}) : _emoji = emoji;
|
||||
|
||||
final List<String> _emoji;
|
||||
final TextStyle? style;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
// return Text(
|
||||
// _emoji.first,
|
||||
// style: style,
|
||||
// );
|
||||
return Text(
|
||||
_emoji.join(''),
|
||||
style: style,
|
||||
);
|
||||
// return Stack(
|
||||
// children: [
|
||||
// for (final emoji in _emoji)
|
||||
// Positioned(
|
||||
// left: _emoji.indexOf(emoji) * style!.fontSize! * 0.5,
|
||||
// child: Text(
|
||||
// emoji,
|
||||
// style: style,
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// );
|
||||
}
|
||||
}
|
||||
|
|
@ -26,7 +26,7 @@ import 'package:fluffychat/pangea/speech_to_text/speech_to_text_response_model.d
|
|||
import 'package:fluffychat/pangea/text_to_speech/text_to_speech_repo.dart';
|
||||
import 'package:fluffychat/pangea/text_to_speech/text_to_speech_request_model.dart';
|
||||
import 'package:fluffychat/pangea/text_to_speech/text_to_speech_response_model.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_audio_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_audio_card.dart';
|
||||
import 'package:fluffychat/pangea/translation/full_text_translation_repo.dart';
|
||||
import 'package:fluffychat/pangea/translation/full_text_translation_request_model.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import 'package:fluffychat/pangea/events/models/representation_content_model.dar
|
|||
import 'package:fluffychat/pangea/events/models/tokens_event_content_model.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_activity_model.dart';
|
||||
import 'package:fluffychat/pangea/text_to_speech/text_to_speech_response_model.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_audio_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_audio_card.dart';
|
||||
|
||||
extension PangeaEvent on Event {
|
||||
V getPangeaContent<V>() {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import 'package:fluffychat/pangea/events/models/pangea_token_text_model.dart';
|
|||
import 'package:fluffychat/pangea/morphs/morph_features_enum.dart';
|
||||
import 'package:fluffychat/pangea/morphs/morph_repo.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/activity_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance_input_row/message_morph_choice.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_morph_choice.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import '../../common/constants/model_keys.dart';
|
||||
import '../../lemmas/lemma.dart';
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import 'package:matrix/matrix.dart';
|
|||
|
||||
import 'package:fluffychat/pangea/common/constants/model_keys.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/spaces/utils/space_code_extension.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/space_code_extension.dart';
|
||||
|
||||
extension JoinRuleExtension on Client {
|
||||
Future<StateEvent> pangeaJoinRules(
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
class FindYourPeopleConstants {
|
||||
static const String sideBearFileName = "Bear_Find_your_people.png";
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:go_router/go_router.dart';
|
||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/spaces/space_code_repo.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/space_code_repo.dart';
|
||||
|
||||
//if on home with classcode in url and not logged in, then save it soemhow and after llogin, join class automatically
|
||||
//if on home with classcode in url and logged in, then join class automatically
|
||||
|
|
@ -10,10 +10,10 @@ import 'package:http/http.dart' hide Client;
|
|||
import 'package:matrix/matrix.dart';
|
||||
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_code_repo.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/knock_space_extension.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/space_code_repo.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/too_many_requests_dialog.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_constants.dart';
|
||||
import 'package:fluffychat/pangea/spaces/utils/knock_space_extension.dart';
|
||||
import 'package:fluffychat/pangea/spaces/widgets/too_many_requests_dialog.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import '../common/controllers/base_controller.dart';
|
||||
|
|
@ -12,7 +12,7 @@ import 'package:fluffychat/pangea/analytics_misc/lemma_emoji_setter_mixin.dart';
|
|||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/overlay.dart';
|
||||
import 'package:fluffychat/pangea/constructs/construct_identifier.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/word_zoom/lemma_meaning_builder.dart';
|
||||
import 'package:fluffychat/pangea/lemmas/lemma_meaning_builder.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class LemmaHighlightEmojiRow extends StatefulWidget {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import 'package:fluffychat/pangea/analytics_misc/construct_use_model.dart';
|
|||
import 'package:fluffychat/pangea/analytics_misc/text_loading_shimmer.dart';
|
||||
import 'package:fluffychat/pangea/common/network/requests.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/error_indicator.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/word_zoom/lemma_meaning_builder.dart';
|
||||
import 'package:fluffychat/pangea/lemmas/lemma_meaning_builder.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class LemmaMeaningWidget extends StatelessWidget {
|
||||
|
|
@ -5,8 +5,8 @@ import 'package:go_router/go_router.dart';
|
|||
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/space_code_controller.dart';
|
||||
import 'package:fluffychat/pangea/login/pages/add_course_page.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_code_controller.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class CourseCodePage extends StatefulWidget {
|
||||
|
|
|
|||
|
|
@ -13,11 +13,11 @@ import 'package:fluffychat/pangea/common/widgets/error_indicator.dart';
|
|||
import 'package:fluffychat/pangea/course_plans/courses/course_plan_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/course_plans/courses/course_plans_repo.dart';
|
||||
import 'package:fluffychat/pangea/course_plans/courses/get_localized_courses_request.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/space_code_controller.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/space_code_repo.dart';
|
||||
import 'package:fluffychat/pangea/languages/language_service.dart';
|
||||
import 'package:fluffychat/pangea/languages/p_language_store.dart';
|
||||
import 'package:fluffychat/pangea/login/utils/lang_code_repo.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_code_controller.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_code_repo.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class CreatePangeaAccountPage extends StatefulWidget {
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import 'package:fluffychat/config/app_config.dart';
|
|||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/common/config/environment.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/pangea_logo_svg.dart';
|
||||
import 'package:fluffychat/pangea/join_codes/space_code_repo.dart';
|
||||
import 'package:fluffychat/pangea/login/widgets/app_config_dialog.dart';
|
||||
import 'package:fluffychat/pangea/spaces/space_code_repo.dart';
|
||||
|
||||
class LoginOrSignupView extends StatefulWidget {
|
||||
const LoginOrSignupView({super.key});
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import 'package:fluffychat/pangea/course_plans/courses/course_plan_model.dart';
|
|||
import 'package:fluffychat/pangea/course_plans/courses/course_plans_repo.dart';
|
||||
import 'package:fluffychat/pangea/course_plans/courses/get_localized_courses_request.dart';
|
||||
import 'package:fluffychat/pangea/languages/language_model.dart';
|
||||
import 'package:fluffychat/pangea/spaces/utils/public_course_extension.dart';
|
||||
import 'package:fluffychat/pangea/spaces/public_course_extension.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,46 +0,0 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class HiddenText extends StatelessWidget {
|
||||
final String text;
|
||||
final TextStyle style;
|
||||
|
||||
const HiddenText({
|
||||
super.key,
|
||||
required this.text,
|
||||
required this.style,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final TextPainter textPainter = TextPainter(
|
||||
text: TextSpan(text: text, style: style),
|
||||
textDirection: TextDirection.ltr,
|
||||
)..layout();
|
||||
|
||||
final textWidth = textPainter.size.width;
|
||||
final textHeight = textPainter.size.height;
|
||||
|
||||
textPainter.dispose();
|
||||
|
||||
return SizedBox(
|
||||
height: textHeight,
|
||||
child: Stack(
|
||||
children: [
|
||||
Container(
|
||||
width: textWidth,
|
||||
height: textHeight,
|
||||
color: Colors.transparent,
|
||||
),
|
||||
Positioned(
|
||||
bottom: 0,
|
||||
child: Container(
|
||||
width: textWidth,
|
||||
height: 1,
|
||||
color: style.color,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -26,4 +26,6 @@ class SpaceConstants {
|
|||
'${AppConfig.assetsBaseURL}/Space+template+5.png',
|
||||
'${AppConfig.assetsBaseURL}/Space+template+6.png',
|
||||
];
|
||||
|
||||
static const String sideBearFileName = "Bear_Find_your_people.png";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import 'package:fluffychat/pangea/phonetic_transcription/phonetic_transcription_
|
|||
import 'package:fluffychat/pangea/token_info_feedback/token_info_feedback_repo.dart';
|
||||
import 'package:fluffychat/pangea/token_info_feedback/token_info_feedback_request.dart';
|
||||
import 'package:fluffychat/pangea/token_info_feedback/token_info_feedback_response.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/word_zoom/word_zoom_widget.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/word_card/word_zoom_widget.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
|
|
|
|||
|
|
@ -14,12 +14,12 @@ import 'package:fluffychat/pages/chat/chat.dart';
|
|||
import 'package:fluffychat/pangea/common/utils/error_handler.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/toolbar/enums/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance_input_row/reading_assistance_input_bar.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/over_message_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/practice_mode_transition_animation.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/word_card_switcher.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/over_message_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/practice_mode_transition_animation.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/reading_assistance_input_bar.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/word_card/word_card_switcher.dart';
|
||||
import 'package:fluffychat/utils/adaptive_bottom_sheet.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
|
@ -3,11 +3,11 @@ import 'dart:math';
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_positioner.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/overlay_center_content.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/word_card_switcher.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/message_selection_positioner.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/overlay_center_content.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/word_card/word_card_switcher.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class OverMessageOverlay extends StatelessWidget {
|
||||
|
|
@ -5,10 +5,10 @@ import 'package:matrix/matrix.dart';
|
|||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pages/chat/chat.dart';
|
||||
import 'package:fluffychat/pages/chat/events/pangea_message_reactions.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/measure_render_box.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/overlay_message.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/measure_render_box.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/overlay_message.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_selection_overlay.dart';
|
||||
|
||||
class OverlayCenterContent extends StatelessWidget {
|
||||
final Event event;
|
||||
|
|
@ -17,11 +17,11 @@ import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
|||
import 'package:fluffychat/pangea/languages/language_model.dart';
|
||||
import 'package:fluffychat/pangea/languages/p_language_store.dart';
|
||||
import 'package:fluffychat/pangea/phonetic_transcription/phonetic_transcription_widget.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/select_mode_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/stt_transcript_tokens.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/select_mode_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/stt_transcript_tokens.dart';
|
||||
import 'package:fluffychat/utils/date_time_extension.dart';
|
||||
import 'package:fluffychat/utils/file_description.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
|
|
@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
|
|||
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_positioner.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/overlay_center_content.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/message_selection_positioner.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/overlay_center_content.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class PracticeModeTransitionAnimation extends StatefulWidget {
|
||||
|
|
@ -13,8 +13,8 @@ import 'package:fluffychat/pangea/morphs/morph_features_enum.dart';
|
|||
import 'package:fluffychat/pangea/morphs/morph_icon.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_activity_model.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_choice.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance_input_row/message_morph_choice_item.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/practice_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_morph_choice_item.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/practice_controller.dart';
|
||||
|
||||
// this widget will handle the content of the input bar when mode == MessageMode.wordMorph
|
||||
|
||||
|
|
@ -6,7 +6,7 @@ import 'package:fluffychat/config/app_config.dart';
|
|||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/activity_type_enum.dart';
|
||||
|
||||
enum MessageMode {
|
||||
enum MessagePracticeMode {
|
||||
wordEmoji,
|
||||
wordMeaning,
|
||||
wordMorph,
|
||||
|
|
@ -15,30 +15,30 @@ enum MessageMode {
|
|||
|
||||
IconData get icon {
|
||||
switch (this) {
|
||||
case MessageMode.listening:
|
||||
case MessagePracticeMode.listening:
|
||||
return Icons.volume_up;
|
||||
case MessageMode.wordMeaning:
|
||||
case MessagePracticeMode.wordMeaning:
|
||||
return Symbols.dictionary;
|
||||
case MessageMode.noneSelected:
|
||||
case MessagePracticeMode.noneSelected:
|
||||
return Icons.error;
|
||||
case MessageMode.wordEmoji:
|
||||
case MessagePracticeMode.wordEmoji:
|
||||
return Symbols.imagesmode;
|
||||
case MessageMode.wordMorph:
|
||||
case MessagePracticeMode.wordMorph:
|
||||
return Symbols.toys_and_games;
|
||||
}
|
||||
}
|
||||
|
||||
String tooltip(BuildContext context) {
|
||||
switch (this) {
|
||||
case MessageMode.listening:
|
||||
case MessagePracticeMode.listening:
|
||||
return L10n.of(context).listen;
|
||||
case MessageMode.noneSelected:
|
||||
case MessagePracticeMode.noneSelected:
|
||||
return '';
|
||||
case MessageMode.wordEmoji:
|
||||
case MessagePracticeMode.wordEmoji:
|
||||
return L10n.of(context).image;
|
||||
case MessageMode.wordMorph:
|
||||
case MessagePracticeMode.wordMorph:
|
||||
return L10n.of(context).grammar;
|
||||
case MessageMode.wordMeaning:
|
||||
case MessagePracticeMode.wordMeaning:
|
||||
return L10n.of(context).meaning;
|
||||
}
|
||||
}
|
||||
|
|
@ -51,23 +51,23 @@ enum MessageMode {
|
|||
|
||||
ActivityTypeEnum? get associatedActivityType {
|
||||
switch (this) {
|
||||
case MessageMode.wordMeaning:
|
||||
case MessagePracticeMode.wordMeaning:
|
||||
return ActivityTypeEnum.wordMeaning;
|
||||
case MessageMode.listening:
|
||||
case MessagePracticeMode.listening:
|
||||
return ActivityTypeEnum.wordFocusListening;
|
||||
case MessageMode.wordEmoji:
|
||||
case MessagePracticeMode.wordEmoji:
|
||||
return ActivityTypeEnum.emoji;
|
||||
case MessageMode.wordMorph:
|
||||
case MessagePracticeMode.wordMorph:
|
||||
return ActivityTypeEnum.morphId;
|
||||
case MessageMode.noneSelected:
|
||||
case MessagePracticeMode.noneSelected:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static List<MessageMode> get practiceModes => [
|
||||
MessageMode.listening,
|
||||
MessageMode.wordMorph,
|
||||
MessageMode.wordMeaning,
|
||||
MessageMode.wordEmoji,
|
||||
static List<MessagePracticeMode> get practiceModes => [
|
||||
MessagePracticeMode.listening,
|
||||
MessagePracticeMode.wordMorph,
|
||||
MessagePracticeMode.wordMeaning,
|
||||
MessagePracticeMode.wordEmoji,
|
||||
];
|
||||
}
|
||||
|
|
@ -5,13 +5,13 @@ import 'package:flutter/material.dart';
|
|||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/async_state.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/card_error_widget.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/content_loading_indicator.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_activity_model.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_target.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance_input_row/message_morph_choice.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance_input_row/practice_match_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/practice_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/toolbar_content_loading_indicator.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_morph_choice.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/practice_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/practice_match_card.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
|
|
@ -92,7 +92,7 @@ class PracticeActivityCardState extends State<PracticeActivityCard> {
|
|||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
switch (state) {
|
||||
AsyncLoading() => const ToolbarContentLoadingIndicator(
|
||||
AsyncLoading() => const ContentLoadingIndicator(
|
||||
height: 40,
|
||||
),
|
||||
AsyncError() => CardErrorWidget(
|
||||
|
|
@ -16,8 +16,8 @@ import 'package:fluffychat/pangea/practice_activities/practice_generation_repo.d
|
|||
import 'package:fluffychat/pangea/practice_activities/practice_selection.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_selection_repo.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_target.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/message_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance_input_row/morph_selection.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_practice_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/morph_selection.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ class PracticeController with ChangeNotifier {
|
|||
|
||||
PracticeActivityModel? _activity;
|
||||
|
||||
MessageMode practiceMode = MessageMode.noneSelected;
|
||||
MessagePracticeMode practiceMode = MessagePracticeMode.noneSelected;
|
||||
|
||||
MorphSelection? selectedMorph;
|
||||
PracticeChoice? selectedChoice;
|
||||
|
|
@ -84,10 +84,10 @@ class PracticeController with ChangeNotifier {
|
|||
.firstWhereOrNull((a) => a.tokens.contains(token));
|
||||
}
|
||||
|
||||
void updateToolbarMode(MessageMode mode) {
|
||||
void updateToolbarMode(MessagePracticeMode mode) {
|
||||
selectedChoice = null;
|
||||
practiceMode = mode;
|
||||
if (practiceMode != MessageMode.wordMorph) {
|
||||
if (practiceMode != MessagePracticeMode.wordMorph) {
|
||||
selectedMorph = null;
|
||||
}
|
||||
notifyListeners();
|
||||
|
|
@ -104,7 +104,7 @@ class PracticeController with ChangeNotifier {
|
|||
}
|
||||
|
||||
void onSelectMorph(MorphSelection newMorph) {
|
||||
practiceMode = MessageMode.wordMorph;
|
||||
practiceMode = MessagePracticeMode.wordMorph;
|
||||
selectedMorph = newMorph;
|
||||
notifyListeners();
|
||||
}
|
||||
|
|
@ -10,10 +10,10 @@ import 'package:fluffychat/pangea/common/widgets/choice_animation.dart';
|
|||
import 'package:fluffychat/pangea/practice_activities/activity_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_activity_model.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_choice.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/message_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance_input_row/practice_match_item.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_audio_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/practice_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_audio_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_practice_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/practice_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/practice_match_item.dart';
|
||||
|
||||
class MatchActivityCard extends StatelessWidget {
|
||||
final PracticeActivityModel currentActivity;
|
||||
|
|
@ -60,7 +60,8 @@ class MatchActivityCard extends StatelessWidget {
|
|||
26;
|
||||
|
||||
final mode = controller.practiceMode;
|
||||
if (mode == MessageMode.listening || mode == MessageMode.wordEmoji) {
|
||||
if (mode == MessagePracticeMode.listening ||
|
||||
mode == MessagePracticeMode.wordEmoji) {
|
||||
fontSize = fontSize * 1.5;
|
||||
}
|
||||
|
||||
|
|
@ -69,7 +70,7 @@ class MatchActivityCard extends StatelessWidget {
|
|||
mainAxisSize: MainAxisSize.max,
|
||||
spacing: 4.0,
|
||||
children: [
|
||||
if (mode == MessageMode.listening)
|
||||
if (mode == MessagePracticeMode.listening)
|
||||
MessageAudioCard(messageEvent: controller.pangeaMessageEvent),
|
||||
Wrap(
|
||||
alignment: WrapAlignment.center,
|
||||
|
|
@ -8,7 +8,7 @@ import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
|||
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_choice.dart';
|
||||
import 'package:fluffychat/pangea/text_to_speech/tts_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/practice_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/practice_controller.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class PracticeMatchItem extends StatefulWidget {
|
||||
|
|
@ -4,10 +4,10 @@ import 'package:fluffychat/config/app_config.dart';
|
|||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_target.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/message_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/practice_activity/practice_activity_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/practice_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/toolbar_button.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_practice_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/practice_activity_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/practice_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/toolbar_button.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
const double minContentHeight = 120;
|
||||
|
|
@ -50,7 +50,7 @@ class ReadingAssistanceInputBarState extends State<ReadingAssistanceInputBar> {
|
|||
spacing: 4.0,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
...MessageMode.practiceModes.map(
|
||||
...MessagePracticeMode.practiceModes.map(
|
||||
(m) => ToolbarButton(
|
||||
mode: m,
|
||||
setMode: () => widget.controller.updateToolbarMode(m),
|
||||
|
|
@ -120,7 +120,7 @@ class _ReadingAssistanceBarContent extends StatelessWidget {
|
|||
activityType != null && controller.isPracticeActivityDone(activityType);
|
||||
|
||||
switch (mode) {
|
||||
case MessageMode.noneSelected:
|
||||
case MessagePracticeMode.noneSelected:
|
||||
return controller.isTotallyDone
|
||||
? const _AllDoneWidget()
|
||||
: Text(
|
||||
|
|
@ -132,9 +132,9 @@ class _ReadingAssistanceBarContent extends StatelessWidget {
|
|||
textAlign: TextAlign.center,
|
||||
);
|
||||
|
||||
case MessageMode.wordEmoji:
|
||||
case MessageMode.wordMeaning:
|
||||
case MessageMode.listening:
|
||||
case MessagePracticeMode.wordEmoji:
|
||||
case MessagePracticeMode.wordMeaning:
|
||||
case MessagePracticeMode.listening:
|
||||
if (controller.isTotallyDone) {
|
||||
return const _AllDoneWidget();
|
||||
}
|
||||
|
|
@ -154,7 +154,7 @@ class _ReadingAssistanceBarContent extends StatelessWidget {
|
|||
selectedToken: selectedToken,
|
||||
maxWidth: maxWidth,
|
||||
);
|
||||
case MessageMode.wordMorph:
|
||||
case MessagePracticeMode.wordMorph:
|
||||
if (controller.isTotallyDone) {
|
||||
return const _AllDoneWidget();
|
||||
}
|
||||
|
|
@ -9,15 +9,15 @@ import 'package:shimmer/shimmer.dart';
|
|||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
||||
import 'package:fluffychat/pangea/message_token_text/dotted_border_painter.dart';
|
||||
import 'package:fluffychat/pangea/morphs/get_grammar_copy.dart';
|
||||
import 'package:fluffychat/pangea/morphs/morph_features_enum.dart';
|
||||
import 'package:fluffychat/pangea/morphs/morph_icon.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_choice.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_target.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/message_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance_input_row/morph_selection.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/practice_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/dotted_border_painter.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_practice_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/morph_selection.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/practice_controller.dart';
|
||||
import 'package:fluffychat/widgets/hover_builder.dart';
|
||||
|
||||
const double tokenButtonHeight = 40.0;
|
||||
|
|
@ -56,15 +56,17 @@ class TokenPracticeButton extends StatelessWidget {
|
|||
|
||||
bool get _isEmpty {
|
||||
final mode = controller.practiceMode;
|
||||
if (MessageMode.wordEmoji == mode &&
|
||||
if (MessagePracticeMode.wordEmoji == mode &&
|
||||
token.vocabConstructID.userSetEmoji.firstOrNull != null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return _activity == null ||
|
||||
(isActivityCompleteOrNullForToken &&
|
||||
![MessageMode.wordEmoji, MessageMode.wordMorph].contains(mode)) ||
|
||||
(MessageMode.wordMorph == mode && _activity?.morphFeature == null);
|
||||
![MessagePracticeMode.wordEmoji, MessagePracticeMode.wordMorph]
|
||||
.contains(mode)) ||
|
||||
(MessagePracticeMode.wordMorph == mode &&
|
||||
_activity?.morphFeature == null);
|
||||
}
|
||||
|
||||
bool get _isSelected =>
|
||||
|
|
@ -91,7 +93,7 @@ class TokenPracticeButton extends StatelessWidget {
|
|||
target: _activity,
|
||||
emojiStyle: _emojiStyle,
|
||||
);
|
||||
} else if (practiceMode == MessageMode.wordMorph) {
|
||||
} else if (practiceMode == MessagePracticeMode.wordMorph) {
|
||||
child = _MorphMatchButton(
|
||||
active: _isSelected,
|
||||
textColor: textColor,
|
||||
|
|
@ -229,7 +231,7 @@ class _MorphMatchButton extends StatelessWidget {
|
|||
}
|
||||
|
||||
class _NoActivityContentButton extends StatelessWidget {
|
||||
final MessageMode practiceMode;
|
||||
final MessagePracticeMode practiceMode;
|
||||
final PangeaToken token;
|
||||
final PracticeTarget? target;
|
||||
final TextStyle emojiStyle;
|
||||
|
|
@ -243,7 +245,7 @@ class _NoActivityContentButton extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (practiceMode == MessageMode.wordEmoji) {
|
||||
if (practiceMode == MessagePracticeMode.wordEmoji) {
|
||||
final displayEmoji = target?.record.responses
|
||||
.firstWhereOrNull(
|
||||
(res) => res.cId == token.vocabConstructID && res.isCorrect,
|
||||
|
|
@ -256,7 +258,7 @@ class _NoActivityContentButton extends StatelessWidget {
|
|||
style: emojiStyle,
|
||||
);
|
||||
}
|
||||
if (practiceMode == MessageMode.wordMorph && target != null) {
|
||||
if (practiceMode == MessagePracticeMode.wordMorph && target != null) {
|
||||
final morphFeature = target!.morphFeature!;
|
||||
final morphTag = token.morphIdByFeature(morphFeature);
|
||||
if (morphTag != null) {
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/common/widgets/pressable_button.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/message_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_practice_mode_enum.dart';
|
||||
|
||||
class ToolbarButton extends StatelessWidget {
|
||||
final MessageMode mode;
|
||||
final MessagePracticeMode mode;
|
||||
final VoidCallback setMode;
|
||||
|
||||
final bool isComplete;
|
||||
|
|
@ -18,12 +18,12 @@ import 'package:fluffychat/pangea/events/event_wrappers/pangea_message_event.dar
|
|||
import 'package:fluffychat/pangea/events/event_wrappers/pangea_representation_event.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_text_model.dart';
|
||||
import 'package:fluffychat/pangea/message_token_text/tokens_util.dart';
|
||||
import 'package:fluffychat/pangea/text_to_speech/text_to_speech_response_model.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_positioner.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/practice_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/select_mode_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/message_selection_positioner.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/practice_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/select_mode_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/tokens_util.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
/// Controls data at the top level of the toolbar (mainly token / toolbar mode selection)
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance_input_row/lemma_emoji_choice_item.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/lemma_emoji_choice_item.dart';
|
||||
|
||||
class LemmaEmojiPicker extends StatelessWidget {
|
||||
final List<String> emojis;
|
||||
|
|
@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:material_symbols_icons/symbols.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/common/utils/overlay.dart';
|
||||
import 'package:fluffychat/pangea/message_token_text/tokens_util.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/tokens_util.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class NewWordOverlay extends StatefulWidget {
|
||||
|
|
@ -18,9 +18,9 @@ import 'package:fluffychat/pangea/events/event_wrappers/pangea_message_event.dar
|
|||
import 'package:fluffychat/pangea/events/extensions/pangea_event_extension.dart';
|
||||
import 'package:fluffychat/pangea/events/utils/report_message.dart';
|
||||
import 'package:fluffychat/pangea/text_to_speech/tts_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_audio_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/select_mode_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_audio_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/select_mode_controller.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
enum SelectMode {
|
||||
|
|
@ -9,8 +9,8 @@ import 'package:path_provider/path_provider.dart';
|
|||
import 'package:fluffychat/pangea/common/utils/async_state.dart';
|
||||
import 'package:fluffychat/pangea/events/event_wrappers/pangea_message_event.dart';
|
||||
import 'package:fluffychat/pangea/speech_to_text/speech_to_text_response_model.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_audio_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_practice/message_audio_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class _TranscriptionLoader extends AsyncLoader<SpeechToTextResponseModel> {
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
||||
import 'package:fluffychat/pangea/message_token_text/tokens_util.dart';
|
||||
import 'package:fluffychat/pangea/speech_to_text/speech_to_text_response_model.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/tokens_util.dart';
|
||||
|
||||
class SttTranscriptTokens extends StatelessWidget {
|
||||
final SpeechToTextResponseModel model;
|
||||
|
|
@ -6,9 +6,9 @@ import 'package:fluffychat/pangea/analytics_misc/lemma_emoji_setter_mixin.dart';
|
|||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/overlay.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
||||
import 'package:fluffychat/pangea/lemmas/lemma_emoji_picker.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/word_zoom/lemma_meaning_builder.dart';
|
||||
import 'package:fluffychat/pangea/lemmas/lemma_meaning_builder.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/lemma_emoji_picker.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class TokenEmojiButton extends StatefulWidget {
|
||||
|
|
@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
|
|||
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/pangea/events/event_wrappers/pangea_message_event.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/reading_assistance_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_selection_overlay.dart';
|
||||
|
||||
class TokenRenderingUtil {
|
||||
final PangeaMessageEvent? pangeaMessageEvent;
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart';
|
||||
|
||||
Future<bool> showUpdateVersionDialog({
|
||||
required Future Function() future,
|
||||
required BuildContext context,
|
||||
}) async {
|
||||
try {
|
||||
await future();
|
||||
return true;
|
||||
} catch (err, s) {
|
||||
ErrorHandler.logError(
|
||||
e: err,
|
||||
s: s,
|
||||
data: {},
|
||||
);
|
||||
await showOkAlertDialog(
|
||||
context: context,
|
||||
title: L10n.of(context).oopsSomethingWentWrong,
|
||||
message: L10n.of(context).updatePhoneOS,
|
||||
okLabel: L10n.of(context).close,
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:matrix/matrix.dart';
|
||||
|
||||
import 'package:fluffychat/pages/chat/chat.dart';
|
||||
import 'package:fluffychat/pangea/events/event_wrappers/pangea_message_event.dart';
|
||||
|
||||
class ToolbarSelectionArea extends StatelessWidget {
|
||||
final Event event;
|
||||
final ChatController controller;
|
||||
final PangeaMessageEvent? pangeaMessageEvent;
|
||||
final bool isOverlay;
|
||||
final Widget child;
|
||||
final Event? nextEvent;
|
||||
final Event? prevEvent;
|
||||
|
||||
const ToolbarSelectionArea({
|
||||
required this.event,
|
||||
required this.controller,
|
||||
this.pangeaMessageEvent,
|
||||
this.isOverlay = false,
|
||||
required this.child,
|
||||
this.nextEvent,
|
||||
this.prevEvent,
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
if (pangeaMessageEvent != null && !isOverlay) {
|
||||
controller.showToolbar(
|
||||
event,
|
||||
pangeaMessageEvent: pangeaMessageEvent,
|
||||
nextEvent: nextEvent,
|
||||
prevEvent: prevEvent,
|
||||
);
|
||||
}
|
||||
},
|
||||
onLongPress: () {
|
||||
if (pangeaMessageEvent != null && !isOverlay) {
|
||||
controller.showToolbar(
|
||||
event,
|
||||
pangeaMessageEvent: pangeaMessageEvent,
|
||||
nextEvent: nextEvent,
|
||||
prevEvent: prevEvent,
|
||||
);
|
||||
}
|
||||
},
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:android_intent_plus/android_intent.dart';
|
||||
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class MissingVoiceButton extends StatelessWidget {
|
||||
const MissingVoiceButton({super.key});
|
||||
|
||||
Future<void> launchTTSSettings(BuildContext context) async {
|
||||
if (!kIsWeb && Platform.isAndroid) {
|
||||
const intent = AndroidIntent(
|
||||
action: 'com.android.settings.TTS_SETTINGS',
|
||||
package: 'com.talktolearn.chat',
|
||||
);
|
||||
|
||||
await showFutureLoadingDialog(
|
||||
context: context,
|
||||
future: intent.launch,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (kIsWeb || !Platform.isAndroid) {
|
||||
return const SizedBox();
|
||||
}
|
||||
|
||||
return TextButton(
|
||||
style: ButtonStyle(
|
||||
backgroundColor: WidgetStateProperty.all<Color>(
|
||||
Theme.of(context).colorScheme.primary.withAlpha(25),
|
||||
),
|
||||
),
|
||||
onPressed: () async {
|
||||
MatrixState.pAnyState.closeOverlay();
|
||||
await launchTTSSettings(context);
|
||||
},
|
||||
child: Center(
|
||||
child: Text(L10n.of(context).openVoiceSettings),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class WordZoomActivityButton extends StatelessWidget {
|
||||
final Widget icon;
|
||||
final bool isSelected;
|
||||
final VoidCallback onPressed;
|
||||
final VoidCallback? onDoubleTap;
|
||||
final VoidCallback? onLongPress;
|
||||
final String? tooltip;
|
||||
final double? opacity;
|
||||
|
||||
const WordZoomActivityButton({
|
||||
required this.icon,
|
||||
required this.isSelected,
|
||||
required this.onPressed,
|
||||
this.onDoubleTap,
|
||||
this.onLongPress,
|
||||
this.tooltip,
|
||||
this.opacity,
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
Widget buttonContent = AnimatedSize(
|
||||
duration: const Duration(milliseconds: 200),
|
||||
curve: Curves.easeInOut,
|
||||
child: GestureDetector(
|
||||
onDoubleTap: onDoubleTap,
|
||||
onLongPress: onLongPress,
|
||||
child: IconButton(
|
||||
onPressed: onPressed,
|
||||
icon: AnimatedBuilder(
|
||||
animation: Listenable.merge([ValueNotifier(isSelected)]),
|
||||
builder: (context, child) {
|
||||
return Transform.scale(
|
||||
scale: isSelected ? 1.25 : 1.0,
|
||||
child: icon,
|
||||
);
|
||||
},
|
||||
),
|
||||
iconSize: 24, // Keep this constant as scaling handles the size change
|
||||
color: isSelected ? Theme.of(context).colorScheme.primary : null,
|
||||
visualDensity: VisualDensity.compact,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
if (opacity != null) {
|
||||
buttonContent = Opacity(
|
||||
opacity: opacity!,
|
||||
child: buttonContent,
|
||||
);
|
||||
}
|
||||
|
||||
if (tooltip != null) {
|
||||
buttonContent = Tooltip(
|
||||
message: tooltip!,
|
||||
child: buttonContent,
|
||||
);
|
||||
}
|
||||
|
||||
return buttonContent;
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@ import 'package:collection/collection.dart';
|
|||
import 'package:matrix/matrix.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/lemmas/lemma_emoji_picker.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/lemma_emoji_picker.dart';
|
||||
|
||||
class LemmaReactionPicker extends StatelessWidget {
|
||||
final List<String> emojis;
|
||||
|
|
@ -4,8 +4,8 @@ import 'package:matrix/matrix_api_lite/model/message_types.dart';
|
|||
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pangea/token_info_feedback/token_info_feedback_request.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/word_zoom/word_zoom_widget.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/word_card/word_zoom_widget.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
const double minCardHeight = 70;
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_positioner.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/reading_assistance_content.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/layout/message_selection_positioner.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/select_mode_buttons.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/word_card/reading_assistance_content.dart';
|
||||
|
||||
class WordCardSwitcher extends StatelessWidget {
|
||||
final MessageSelectionPositionerState controller;
|
||||
|
|
@ -5,16 +5,16 @@ import 'package:matrix/matrix.dart';
|
|||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/error_indicator.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/word_audio_button.dart';
|
||||
import 'package:fluffychat/pangea/constructs/construct_identifier.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_text_model.dart';
|
||||
import 'package:fluffychat/pangea/languages/language_model.dart';
|
||||
import 'package:fluffychat/pangea/languages/p_language_store.dart';
|
||||
import 'package:fluffychat/pangea/lemmas/lemma_reaction_picker.dart';
|
||||
import 'package:fluffychat/pangea/lemmas/lemma_meaning_builder.dart';
|
||||
import 'package:fluffychat/pangea/phonetic_transcription/phonetic_transcription_widget.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_unsubscribed_card.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/practice_activity/word_audio_button.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/word_zoom/lemma_meaning_builder.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/word_zoom/new_word_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/reading_assistance/new_word_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/word_card/lemma_reaction_picker.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/word_card/message_unsubscribed_card.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class WordZoomWidget extends StatelessWidget {
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,68 +0,0 @@
|
|||
import 'package:fluffychat/pangea/learning_settings/language_level_type_enum.dart';
|
||||
|
||||
class VocabRequest {
|
||||
String langCode;
|
||||
LanguageLevelTypeEnum level;
|
||||
String? prefix;
|
||||
String? suffix;
|
||||
String? lemma;
|
||||
String? pos;
|
||||
|
||||
int count;
|
||||
|
||||
VocabRequest({
|
||||
required this.langCode,
|
||||
required this.level,
|
||||
this.lemma,
|
||||
this.pos,
|
||||
this.prefix,
|
||||
this.suffix,
|
||||
this.count = 10,
|
||||
});
|
||||
|
||||
VocabRequest.fromJson(Map<String, dynamic> json)
|
||||
: langCode = json['langCode'],
|
||||
level = LanguageLevelTypeEnum.values[json['level']],
|
||||
prefix = json['prefix'],
|
||||
suffix = json['suffix'],
|
||||
count = json['count'],
|
||||
lemma = json['lemma'],
|
||||
pos = json['pos'];
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'langCode': langCode,
|
||||
'level': level.index,
|
||||
'prefix': prefix,
|
||||
'suffix': suffix,
|
||||
'lemma': lemma,
|
||||
'pos': pos,
|
||||
'count': count,
|
||||
};
|
||||
|
||||
String get storageKey =>
|
||||
'${langCode}_${level.index}_${prefix}_${suffix}_$count';
|
||||
|
||||
@override
|
||||
operator ==(Object other) {
|
||||
if (other is VocabRequest) {
|
||||
return langCode == other.langCode &&
|
||||
level == other.level &&
|
||||
prefix == other.prefix &&
|
||||
suffix == other.suffix &&
|
||||
count == other.count &&
|
||||
lemma == other.lemma &&
|
||||
pos == other.pos;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
langCode.hashCode ^
|
||||
level.hashCode ^
|
||||
prefix.hashCode ^
|
||||
suffix.hashCode ^
|
||||
count.hashCode ^
|
||||
lemma.hashCode ^
|
||||
pos.hashCode;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue