Merge pull request #4801 from pangeachat/file-organization

build: file reorganization
This commit is contained in:
ggurdin 2025-12-04 16:38:19 -05:00 committed by GitHub
commit c48b1b1b34
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
104 changed files with 196 additions and 1737 deletions

View file

@ -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#

View file

@ -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,
}) {

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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 =

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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 {

View file

@ -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

View file

@ -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({

View file

@ -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;

View file

@ -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 {

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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) {

View file

@ -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';

View file

@ -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;

View file

@ -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,
});

View file

@ -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';

View file

@ -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';

View file

@ -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 }

View file

@ -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';

View file

@ -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,
// ),
// ),
// ],
// );
}
}

View file

@ -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';

View file

@ -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>() {

View file

@ -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';

View file

@ -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(

View file

@ -1,3 +0,0 @@
class FindYourPeopleConstants {
static const String sideBearFileName = "Bear_Find_your_people.png";
}

View file

@ -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

View file

@ -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';

View file

@ -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 {

View file

@ -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 {

View file

@ -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 {

View file

@ -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 {

View file

@ -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});

View file

@ -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';

View file

@ -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,
),
),
],
),
);
}
}

View file

@ -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";
}

View file

@ -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';

View file

@ -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';

View file

@ -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 {

View file

@ -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;

View file

@ -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';

View file

@ -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 {

View file

@ -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

View file

@ -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,
];
}

View file

@ -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(

View file

@ -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();
}

View file

@ -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,

View file

@ -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 {

View file

@ -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();
}

View file

@ -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) {

View file

@ -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;

View file

@ -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)

View file

@ -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;

View file

@ -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 {

View file

@ -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 {

View file

@ -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> {

View file

@ -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;

View file

@ -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 {

View file

@ -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;

View file

@ -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;
}
}

View file

@ -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,
);
}
}

View file

@ -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),
),
);
}
}

View file

@ -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;
}
}

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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

View file

@ -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