diff --git a/.github/workflows/main_deploy.yaml b/.github/workflows/main_deploy.yaml index 2e81b7b40..4800aa0c5 100644 --- a/.github/workflows/main_deploy.yaml +++ b/.github/workflows/main_deploy.yaml @@ -4,11 +4,15 @@ on: push: branches: - main - - pangea-merge +env: + # Setting an environment variable with the value of a configuration variable + WEB_APP_ENV: ${{ vars.WEB_APP_ENV }} + jobs: deploy_web: runs-on: ubuntu-latest + environment: staging steps: - uses: actions/checkout@v2 - run: cat .github/workflows/versions.env >> $GITHUB_ENV @@ -22,20 +26,19 @@ jobs: - name: Prepare web run: ./scripts/prepare-web.sh - name: Build Release Web - run: flutter build web --dart-define=FLUTTER_WEB_CANVASKIT_URL=canvaskit/ --release --source-maps --base-href "/web/" + run: ./scripts/build-web.sh - name: Build Website run: | - cd docs && npx tailwindcss -o ./tailwind.css --minify && cd .. - mv docs public - mv repo public || true - mv build/web/ public/web - echo "fluffychat.im" > ./public/CNAME + mv build/web public + touch public/.env + echo "$WEB_APP_ENV" >> public/.env - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 with: personal_token: ${{ secrets.PAGES_DEPLOY_TOKEN }} publish_dir: ./public publish_branch: gh-pages + # cname: app.staging.pangea.chat update_sentry: runs-on: ubuntu-latest diff --git a/.github/workflows/old.yml b/.github/workflows/old.yml new file mode 100644 index 000000000..a701797de --- /dev/null +++ b/.github/workflows/old.yml @@ -0,0 +1,110 @@ +name: Old Release Workflow + +on: + push: + branches: + - master-unused + +concurrency: + group: release_workflow + cancel-in-progress: true + +jobs: + build_staging: + runs-on: ubuntu-latest + environment: staging + steps: + - uses: actions/checkout@v2 + - run: cat .github/workflows/versions.env >> $GITHUB_ENV + - run: echo "$WEB_APP_ENV" > .env + + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: ${{ env.FLUTTER_VERSION }} + + - name: Prepare web + run: ./scripts/prepare-web.sh + + - name: Build web + run: ./scripts/build-web.sh + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: web-artifact + path: ./build/web + + upload_sentry: + runs-on: ubuntu-latest + needs: build_staging + + steps: + - uses: actions/checkout@v2 + - run: cat .github/workflows/versions.env >> $GITHUB_ENV + - run: echo "$WEB_APP_ENV" > .env + - name: Build web + run: ./scripts/upload-sentry.sh + + deploy_staging: + runs-on: ubuntu-latest + needs: build_staging + + steps: + - uses: actions/checkout@v2 + - run: cat .github/workflows/versions.env >> $GITHUB_ENV + - run: echo "$WEB_APP_ENV" > .env + - name: Set up AWS CLI + uses: aws-actions/configure-aws-credentials@v2 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_DEFAULT_REGION }} + + - name: Download all workflow run artifacts + uses: actions/download-artifact@v3 + + build_production: + runs-on: ubuntu-latest + environment: production + steps: + - uses: actions/checkout@v2 + - run: cat .github/workflows/versions.env >> $GITHUB_ENV + - run: echo "$WEB_APP_ENV" > .env + + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: ${{ env.FLUTTER_VERSION }} + + - name: Prepare web + run: ./scripts/prepare-web.sh + + - name: Build web + run: ./scripts/build-web.sh + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: web-artifact + path: ./build/web + + deploy_production: + environment: production + runs-on: ubuntu-latest + needs: build_production + + steps: + - uses: actions/checkout@v2 + - run: cat .github/workflows/versions.env >> $GITHUB_ENV + - run: echo "$WEB_APP_ENV" > .env + + - name: Download all workflow run artifacts + uses: actions/download-artifact@v3 + + - name: Set up AWS CLI + uses: aws-actions/configure-aws-credentials@v2 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_DEFAULT_REGION }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 3c87c2c94..e26c8f2fa 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -27,20 +27,20 @@ jobs: - name: Build Release Web run: flutter build web --dart-define=FLUTTER_WEB_CANVASKIT_URL=canvaskit/ --release --source-maps - name: Create archive - run: tar -czf fluffychat-web.tar.gz build/web/ + run: tar -czf pangeachat-web.tar.gz build/web/ - name: Upload Web Build uses: actions/upload-artifact@v2 with: name: Web Build - path: fluffychat-web.tar.gz + path: pangeachat-web.tar.gz - name: Upload to release uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.PAGES_DEPLOY_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: fluffychat-web.tar.gz - asset_name: fluffychat-web.tar.gz + asset_path: pangeachat-web.tar.gz + asset_name: pangeachat-web.tar.gz asset_content_type: application/gzip build_apk: diff --git a/.gitignore b/.gitignore index 6f1d4f585..ef7038f03 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ .svn/ prime *.env +!/public/.env # libolm package /assets/js/package diff --git a/android/app/build.gradle b/android/app/build.gradle index 304191471..bc33501d7 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -66,10 +66,8 @@ android { buildTypes { debug { signingConfig signingConfigs.debug - // #Pangea - this causes errors with android debug build - // applicationIdSuffix ".debug" - // versionNameSuffix "-debug" - // Pangea# + applicationIdSuffix "" + versionNameSuffix "" } release { signingConfig signingConfigs.release diff --git a/assets/l10n/intl_en.arb b/assets/l10n/intl_en.arb index 3ed3d90fa..4f5577c75 100644 --- a/assets/l10n/intl_en.arb +++ b/assets/l10n/intl_en.arb @@ -3950,5 +3950,6 @@ } }, "freeTrialDesc": "New users recieve a one week free trial of Pangea Chat", - "activateTrial": "Activate Trial" + "activateTrial": "Activate Trial", + "inNoSpaces": "You are not a member of any classes or exchanges" } diff --git a/config.sample.json b/config.sample.json index ff37ec238..03ac42a6a 100644 --- a/config.sample.json +++ b/config.sample.json @@ -1,9 +1,9 @@ { - "application_name": "FluffyChat", + "application_name": "PangeaChat", "application_welcome_message": null, - "default_homeserver": "matrix.org", - "web_base_url": "https://fluffychat.im/web", - "privacy_url": "https://fluffychat.im/en/privacy.html", + "default_homeserver": "matrix.pangea.chat", + "web_base_url": "https://web.pangea.chat", + "privacy_url": "https://pangea.chat/privacy", "render_html": false, "hide_redacted_events": false, "hide_unknown_events": false diff --git a/lib/config/app_config.dart b/lib/config/app_config.dart index e93fd1891..97cde1e2a 100644 --- a/lib/config/app_config.dart +++ b/lib/config/app_config.dart @@ -1,9 +1,7 @@ -// Dart imports: import 'dart:ui'; -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; -// Package imports: +// Project imports: import 'package:matrix/matrix.dart'; abstract class AppConfig { diff --git a/lib/config/firebase_options.dart b/lib/config/firebase_options.dart index c028dbd46..a66f312bc 100644 --- a/lib/config/firebase_options.dart +++ b/lib/config/firebase_options.dart @@ -1,7 +1,6 @@ // File generated by FlutterFire CLI. // ignore_for_file: lines_longer_than_80_chars, avoid_classes_with_only_static_members -// Package imports: import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; import 'package:flutter/foundation.dart' @@ -58,14 +57,15 @@ class DefaultFirebaseOptions { ); static const FirebaseOptions android = FirebaseOptions( - apiKey: 'AIzaSyAyWBbl83WXzbVr6txyCmlUsZhpWomQfdg', - appId: '1:545984292675:android:d808acce7a80c20bb931f6', - messagingSenderId: '545984292675', - projectId: 'pangea-chat-936ee', - databaseURL: 'https://pangea-chat-936ee-default-rtdb.firebaseio.com', - storageBucket: 'pangea-chat-936ee.appspot.com', - androidClientId: - '545984292675-2amsnoan1mt6lec1fld1a7eagu6gej7o.apps.googleusercontent.com'); + apiKey: 'AIzaSyAyWBbl83WXzbVr6txyCmlUsZhpWomQfdg', + appId: '1:545984292675:android:d808acce7a80c20bb931f6', + messagingSenderId: '545984292675', + projectId: 'pangea-chat-936ee', + databaseURL: 'https://pangea-chat-936ee-default-rtdb.firebaseio.com', + storageBucket: 'pangea-chat-936ee.appspot.com', + androidClientId: + '545984292675-2amsnoan1mt6lec1fld1a7eagu6gej7o.apps.googleusercontent.com', + ); static const FirebaseOptions ios = FirebaseOptions( apiKey: 'AIzaSyCl8QZd9_PnaqJY2zLHCwlsmSWdq7hnH-U', diff --git a/lib/config/routes.dart b/lib/config/routes.dart index 8a58e82c8..ff2b0b55e 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -1,13 +1,9 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/cupertino.dart'; -// Package imports: import 'package:go_router/go_router.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/archive/archive.dart'; import 'package:fluffychat/pages/chat/chat.dart'; diff --git a/lib/config/themes.dart b/lib/config/themes.dart index fd10c678a..4615eae9c 100644 --- a/lib/config/themes.dart +++ b/lib/config/themes.dart @@ -1,9 +1,7 @@ -// Flutter imports: import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Project imports: import 'package:fluffychat/utils/platform_infos.dart'; import 'app_config.dart'; diff --git a/lib/main.dart b/lib/main.dart index b7ab0ed8c..f2123f915 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; @@ -9,7 +7,6 @@ import 'package:get_storage/get_storage.dart'; import 'package:matrix/matrix.dart'; import 'package:shared_preferences/shared_preferences.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/language_list_controller.dart'; diff --git a/lib/pages/add_story/add_story.dart b/lib/pages/add_story/add_story.dart index b6bb42d08..6f96fdf64 100644 --- a/lib/pages/add_story/add_story.dart +++ b/lib/pages/add_story/add_story.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:io'; import 'dart:math'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:file_picker/file_picker.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; @@ -14,7 +11,6 @@ import 'package:image_picker/image_picker.dart'; import 'package:matrix/matrix.dart'; import 'package:video_player/video_player.dart'; -// Project imports: import 'package:fluffychat/pages/add_story/add_story_view.dart'; import 'package:fluffychat/pages/add_story/invite_story_page.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; diff --git a/lib/pages/add_story/add_story_view.dart b/lib/pages/add_story/add_story_view.dart index 6ab778409..ea828aadf 100644 --- a/lib/pages/add_story/add_story_view.dart +++ b/lib/pages/add_story/add_story_view.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:video_player/video_player.dart'; -// Project imports: import 'add_story.dart'; class AddStoryView extends StatelessWidget { diff --git a/lib/pages/add_story/invite_story_page.dart b/lib/pages/add_story/invite_story_page.dart index c90d55889..c62a0b815 100644 --- a/lib/pages/add_story/invite_story_page.dart +++ b/lib/pages/add_story/invite_story_page.dart @@ -1,13 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/client_stories_extension.dart'; import 'package:fluffychat/widgets/avatar.dart'; diff --git a/lib/pages/archive/archive.dart b/lib/pages/archive/archive.dart index 0b2d8a540..a3c35c347 100644 --- a/lib/pages/archive/archive.dart +++ b/lib/pages/archive/archive.dart @@ -1,13 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/archive/archive_view.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/pages/archive/archive_view.dart b/lib/pages/archive/archive_view.dart index b56660b29..fc5c3e250 100644 --- a/lib/pages/archive/archive_view.dart +++ b/lib/pages/archive/archive_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/archive/archive.dart'; import 'package:fluffychat/pages/chat_list/chat_list_item.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; diff --git a/lib/pages/bootstrap/bootstrap_dialog.dart b/lib/pages/bootstrap/bootstrap_dialog.dart index add5dd3e9..8a227cb03 100644 --- a/lib/pages/bootstrap/bootstrap_dialog.dart +++ b/lib/pages/bootstrap/bootstrap_dialog.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; @@ -10,7 +8,6 @@ import 'package:matrix/encryption.dart'; import 'package:matrix/encryption/utils/bootstrap.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/utils/fluffy_share.dart'; import 'package:fluffychat/utils/platform_infos.dart'; diff --git a/lib/pages/chat/add_widget_tile.dart b/lib/pages/chat/add_widget_tile.dart index 417108343..11e3cce5d 100644 --- a/lib/pages/chat/add_widget_tile.dart +++ b/lib/pages/chat/add_widget_tile.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat/add_widget_tile_view.dart'; class AddWidgetTile extends StatefulWidget { diff --git a/lib/pages/chat/add_widget_tile_view.dart b/lib/pages/chat/add_widget_tile_view.dart index bfb818a21..d7ac53ef2 100644 --- a/lib/pages/chat/add_widget_tile_view.dart +++ b/lib/pages/chat/add_widget_tile_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pages/chat/add_widget_tile.dart'; class AddWidgetTileView extends StatelessWidget { diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index 4fe9c69a4..bfadb1f16 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -1,15 +1,12 @@ -// Dart imports: import 'dart:async'; import 'dart:developer'; import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:desktop_drop/desktop_drop.dart'; import 'package:device_info_plus/device_info_plus.dart'; @@ -24,7 +21,6 @@ import 'package:record/record.dart'; import 'package:scroll_to_index/scroll_to_index.dart'; import 'package:shared_preferences/shared_preferences.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat_view.dart'; diff --git a/lib/pages/chat/chat_app_bar_title.dart b/lib/pages/chat/chat_app_bar_title.dart index bebaa0f4d..1cb84b48e 100644 --- a/lib/pages/chat/chat_app_bar_title.dart +++ b/lib/pages/chat/chat_app_bar_title.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/utils/date_time_extension.dart'; diff --git a/lib/pages/chat/chat_emoji_picker.dart b/lib/pages/chat/chat_emoji_picker.dart index af766347d..5e45113be 100644 --- a/lib/pages/chat/chat_emoji_picker.dart +++ b/lib/pages/chat/chat_emoji_picker.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'chat.dart'; diff --git a/lib/pages/chat/chat_event_list.dart b/lib/pages/chat/chat_event_list.dart index cb6ef94e0..4f83f18e6 100644 --- a/lib/pages/chat/chat_event_list.dart +++ b/lib/pages/chat/chat_event_list.dart @@ -1,11 +1,10 @@ // Flutter imports: + import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; import 'package:scroll_to_index/scroll_to_index.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/events/message.dart'; @@ -114,7 +113,10 @@ class ChatEventList extends StatelessWidget { ? Message( event, onSwipe: () => controller.replyAction(replyTo: event), - onInfoTab: controller.showEventInfo, + // #Pangea + onInfoTab: (_) => {}, + // onInfoTab: controller.showEventInfo, + // Pangea# onAvatarTab: (Event event) => showAdaptiveBottomSheet( context: context, builder: (c) => UserBottomSheet( diff --git a/lib/pages/chat/chat_input_row.dart b/lib/pages/chat/chat_input_row.dart index 4cabd84c2..6c29f4ddd 100644 --- a/lib/pages/chat/chat_input_row.dart +++ b/lib/pages/chat/chat_input_row.dart @@ -1,14 +1,11 @@ -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:animations/animations.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:keyboard_shortcuts/keyboard_shortcuts.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/choreographer/widgets/it_bar.dart'; import 'package:fluffychat/pangea/choreographer/widgets/send_button.dart'; diff --git a/lib/pages/chat/chat_view.dart b/lib/pages/chat/chat_view.dart index c3766a9ec..149055eb0 100644 --- a/lib/pages/chat/chat_view.dart +++ b/lib/pages/chat/chat_view.dart @@ -1,14 +1,13 @@ // Flutter imports: + import 'package:flutter/material.dart'; -// Package imports: import 'package:badges/badges.dart'; import 'package:desktop_drop/desktop_drop.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; @@ -90,17 +89,19 @@ class ChatView extends StatelessWidget { } }, itemBuilder: (context) => [ - PopupMenuItem( - value: _EventContextAction.info, - child: Row( - mainAxisSize: MainAxisSize.min, - children: [ - const Icon(Icons.info_outlined), - const SizedBox(width: 12), - Text(L10n.of(context)!.messageInfo), - ], - ), - ), + // #Pangea + // PopupMenuItem( + // value: _EventContextAction.info, + // child: Row( + // mainAxisSize: MainAxisSize.min, + // children: [ + // const Icon(Icons.info_outlined), + // const SizedBox(width: 12), + // Text(L10n.of(context)!.messageInfo), + // ], + // ), + // ), + // Pangea# if (controller.selectedEvents.single.status.isSent) PopupMenuItem( value: _EventContextAction.report, diff --git a/lib/pages/chat/command_hints.dart b/lib/pages/chat/command_hints.dart index 167d34e38..5ab493604 100644 --- a/lib/pages/chat/command_hints.dart +++ b/lib/pages/chat/command_hints.dart @@ -1,6 +1,5 @@ // This file is auto-generated using scripts/generate_command_hints_glue.sh. -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; String commandHint(L10n l10n, String command) { diff --git a/lib/pages/chat/cupertino_widgets_bottom_sheet.dart b/lib/pages/chat/cupertino_widgets_bottom_sheet.dart index 1b74ae1e8..23dddfa9b 100644 --- a/lib/pages/chat/cupertino_widgets_bottom_sheet.dart +++ b/lib/pages/chat/cupertino_widgets_bottom_sheet.dart @@ -1,19 +1,15 @@ -// Flutter imports: import 'package:flutter/cupertino.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; import 'package:url_launcher/link.dart'; -// Project imports: import 'edit_widgets_dialog.dart'; class CupertinoWidgetsBottomSheet extends StatelessWidget { final Room room; - const CupertinoWidgetsBottomSheet({Key? key, required this.room}) - : super(key: key); + const CupertinoWidgetsBottomSheet({super.key, required this.room}); @override Widget build(BuildContext context) { diff --git a/lib/pages/chat/edit_widgets_dialog.dart b/lib/pages/chat/edit_widgets_dialog.dart index 1362aced8..2ba163feb 100644 --- a/lib/pages/chat/edit_widgets_dialog.dart +++ b/lib/pages/chat/edit_widgets_dialog.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'add_widget_tile.dart'; class EditWidgetsDialog extends StatelessWidget { diff --git a/lib/pages/chat/encryption_button.dart b/lib/pages/chat/encryption_button.dart index 38dc1a681..c68a1c976 100644 --- a/lib/pages/chat/encryption_button.dart +++ b/lib/pages/chat/encryption_button.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import '../../widgets/matrix.dart'; class EncryptionButton extends StatelessWidget { diff --git a/lib/pages/chat/event_info_dialog.dart b/lib/pages/chat/event_info_dialog.dart index f230cf477..e8ff6dad9 100644 --- a/lib/pages/chat/event_info_dialog.dart +++ b/lib/pages/chat/event_info_dialog.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:convert'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import 'package:fluffychat/utils/date_time_extension.dart'; diff --git a/lib/pages/chat/events/audio_player.dart b/lib/pages/chat/events/audio_player.dart index 9769ef90f..6335b54bf 100644 --- a/lib/pages/chat/events/audio_player.dart +++ b/lib/pages/chat/events/audio_player.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:async'; import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:just_audio/just_audio.dart'; import 'package:matrix/matrix.dart'; import 'package:path_provider/path_provider.dart'; -// Project imports: import 'package:fluffychat/utils/error_reporter.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import '../../../utils/matrix_sdk_extensions/event_extension.dart'; diff --git a/lib/pages/chat/events/cute_events.dart b/lib/pages/chat/events/cute_events.dart index 8450789b0..6a9424818 100644 --- a/lib/pages/chat/events/cute_events.dart +++ b/lib/pages/chat/events/cute_events.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:math'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; class CuteContent extends StatefulWidget { diff --git a/lib/pages/chat/events/html_message.dart b/lib/pages/chat/events/html_message.dart index 7b8d40098..3a47121f4 100644 --- a/lib/pages/chat/events/html_message.dart +++ b/lib/pages/chat/events/html_message.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:flutter_highlighter/flutter_highlighter.dart'; import 'package:flutter_highlighter/themes/shades-of-purple.dart'; @@ -11,7 +9,6 @@ import 'package:flutter_math_fork/flutter_math.dart'; import 'package:linkify/linkify.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/mxc_image.dart'; diff --git a/lib/pages/chat/events/image_bubble.dart b/lib/pages/chat/events/image_bubble.dart index a9f40277c..ae8e7a83e 100644 --- a/lib/pages/chat/events/image_bubble.dart +++ b/lib/pages/chat/events/image_bubble.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_blurhash/flutter_blurhash.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/image_viewer/image_viewer.dart'; import 'package:fluffychat/widgets/mxc_image.dart'; diff --git a/lib/pages/chat/events/map_bubble.dart b/lib/pages/chat/events/map_bubble.dart index 89c9a4336..c441c7d64 100644 --- a/lib/pages/chat/events/map_bubble.dart +++ b/lib/pages/chat/events/map_bubble.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_map/flutter_map.dart'; import 'package:latlong2/latlong.dart'; diff --git a/lib/pages/chat/events/message.dart b/lib/pages/chat/events/message.dart index 8e71bdf5a..8fc28bd42 100644 --- a/lib/pages/chat/events/message.dart +++ b/lib/pages/chat/events/message.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; import 'package:swipe_to_action/swipe_to_action.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/enum/use_type.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index 3d4707233..a498d22e2 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_linkify/flutter_linkify.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat/events/video_player.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:fluffychat/pangea/models/pangea_message_event.dart'; diff --git a/lib/pages/chat/events/message_download_content.dart b/lib/pages/chat/events/message_download_content.dart index 3f1d42b4f..767ea8e7b 100644 --- a/lib/pages/chat/events/message_download_content.dart +++ b/lib/pages/chat/events/message_download_content.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/matrix_sdk_extensions/event_extension.dart'; class MessageDownloadContent extends StatelessWidget { diff --git a/lib/pages/chat/events/message_reactions.dart b/lib/pages/chat/events/message_reactions.dart index 364b78c6e..7e731c93b 100644 --- a/lib/pages/chat/events/message_reactions.dart +++ b/lib/pages/chat/events/message_reactions.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart' show IterableExtension; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/pages/chat/events/reply_content.dart b/lib/pages/chat/events/reply_content.dart index 2ad05a288..4c70ae004 100644 --- a/lib/pages/chat/events/reply_content.dart +++ b/lib/pages/chat/events/reply_content.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import '../../../config/app_config.dart'; diff --git a/lib/pages/chat/events/state_message.dart b/lib/pages/chat/events/state_message.dart index 9790134f6..b5e54eba3 100644 --- a/lib/pages/chat/events/state_message.dart +++ b/lib/pages/chat/events/state_message.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import '../../../config/app_config.dart'; diff --git a/lib/pages/chat/events/sticker.dart b/lib/pages/chat/events/sticker.dart index 64af7b55e..8e52bfe39 100644 --- a/lib/pages/chat/events/sticker.dart +++ b/lib/pages/chat/events/sticker.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import '../../../config/app_config.dart'; import 'image_bubble.dart'; diff --git a/lib/pages/chat/events/verification_request_content.dart b/lib/pages/chat/events/verification_request_content.dart index eb65b7107..5a0c75f4b 100644 --- a/lib/pages/chat/events/verification_request_content.dart +++ b/lib/pages/chat/events/verification_request_content.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import '../../../config/app_config.dart'; class VerificationRequestContent extends StatelessWidget { diff --git a/lib/pages/chat/events/video_player.dart b/lib/pages/chat/events/video_player.dart index 8d24e6c6b..573e1eb14 100644 --- a/lib/pages/chat/events/video_player.dart +++ b/lib/pages/chat/events/video_player.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:chewie/chewie.dart'; import 'package:flutter_blurhash/flutter_blurhash.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; @@ -14,7 +11,6 @@ import 'package:path_provider/path_provider.dart'; import 'package:universal_html/html.dart' as html; import 'package:video_player/video_player.dart'; -// Project imports: import 'package:fluffychat/pages/chat/events/image_bubble.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/event_extension.dart'; diff --git a/lib/pages/chat/input_bar.dart b/lib/pages/chat/input_bar.dart index bd126da8b..7e939b0c9 100644 --- a/lib/pages/chat/input_bar.dart +++ b/lib/pages/chat/input_bar.dart @@ -1,15 +1,12 @@ -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:emojis/emoji.dart'; import 'package:flutter_typeahead/flutter_typeahead.dart'; import 'package:matrix/matrix.dart'; import 'package:pasteboard/pasteboard.dart'; import 'package:slugify/slugify.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/widgets/igc/pangea_text_controller.dart'; import 'package:fluffychat/utils/platform_infos.dart'; diff --git a/lib/pages/chat/pinned_events.dart b/lib/pages/chat/pinned_events.dart index 8a4da2857..e7c90c6e1 100644 --- a/lib/pages/chat/pinned_events.dart +++ b/lib/pages/chat/pinned_events.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_linkify/flutter_linkify.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; diff --git a/lib/pages/chat/reactions_picker.dart b/lib/pages/chat/reactions_picker.dart index f60920ef9..6434c9970 100644 --- a/lib/pages/chat/reactions_picker.dart +++ b/lib/pages/chat/reactions_picker.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:emoji_proposal/emoji_proposal.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/app_emojis.dart'; import 'package:fluffychat/pages/chat/chat.dart'; diff --git a/lib/pages/chat/recording_dialog.dart b/lib/pages/chat/recording_dialog.dart index 800c3da34..c25bd2741 100644 --- a/lib/pages/chat/recording_dialog.dart +++ b/lib/pages/chat/recording_dialog.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:path_provider/path_provider.dart'; import 'package:record/record.dart'; import 'package:wakelock_plus/wakelock_plus.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'events/audio_player.dart'; diff --git a/lib/pages/chat/reply_display.dart b/lib/pages/chat/reply_display.dart index 62391811f..32bec7c25 100644 --- a/lib/pages/chat/reply_display.dart +++ b/lib/pages/chat/reply_display.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import '../../config/themes.dart'; import 'chat.dart'; diff --git a/lib/pages/chat/seen_by_row.dart b/lib/pages/chat/seen_by_row.dart index 9475550e2..faac0db4d 100644 --- a/lib/pages/chat/seen_by_row.dart +++ b/lib/pages/chat/seen_by_row.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/utils/room_status_extension.dart'; diff --git a/lib/pages/chat/send_file_dialog.dart b/lib/pages/chat/send_file_dialog.dart index f4fe65efd..e5f070fd7 100644 --- a/lib/pages/chat/send_file_dialog.dart +++ b/lib/pages/chat/send_file_dialog.dart @@ -1,13 +1,10 @@ -// Flutter imports: import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/size_string.dart'; diff --git a/lib/pages/chat/send_location_dialog.dart b/lib/pages/chat/send_location_dialog.dart index 91886e5d1..b2a99004e 100644 --- a/lib/pages/chat/send_location_dialog.dart +++ b/lib/pages/chat/send_location_dialog.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:geolocator/geolocator.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat/events/map_bubble.dart'; class SendLocationDialog extends StatefulWidget { diff --git a/lib/pages/chat/sticker_picker_dialog.dart b/lib/pages/chat/sticker_picker_dialog.dart index ae28b547d..16065c916 100644 --- a/lib/pages/chat/sticker_picker_dialog.dart +++ b/lib/pages/chat/sticker_picker_dialog.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import '../../widgets/avatar.dart'; import 'events/image_bubble.dart'; diff --git a/lib/pages/chat/tombstone_display.dart b/lib/pages/chat/tombstone_display.dart index 10ad5fc6f..e080a0009 100644 --- a/lib/pages/chat/tombstone_display.dart +++ b/lib/pages/chat/tombstone_display.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'chat.dart'; class TombstoneDisplay extends StatelessWidget { diff --git a/lib/pages/chat/typing_indicators.dart b/lib/pages/chat/typing_indicators.dart index 1fe38e882..8101fd76f 100644 --- a/lib/pages/chat/typing_indicators.dart +++ b/lib/pages/chat/typing_indicators.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; diff --git a/lib/pages/chat/widgets_bottom_sheet.dart b/lib/pages/chat/widgets_bottom_sheet.dart index a91ed345f..9ea89f614 100644 --- a/lib/pages/chat/widgets_bottom_sheet.dart +++ b/lib/pages/chat/widgets_bottom_sheet.dart @@ -1,18 +1,15 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; import 'package:url_launcher/link.dart'; -// Project imports: import 'edit_widgets_dialog.dart'; class WidgetsBottomSheet extends StatelessWidget { final Room room; - const WidgetsBottomSheet({Key? key, required this.room}) : super(key: key); + const WidgetsBottomSheet({super.key, required this.room}); @override Widget build(BuildContext context) { diff --git a/lib/pages/chat_details/chat_details.dart b/lib/pages/chat_details/chat_details.dart index d359168b9..3bdefe8d5 100644 --- a/lib/pages/chat_details/chat_details.dart +++ b/lib/pages/chat_details/chat_details.dart @@ -1,8 +1,6 @@ -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; import 'package:file_picker/file_picker.dart'; @@ -13,7 +11,6 @@ import 'package:image_picker/image_picker.dart'; import 'package:matrix/matrix.dart' as matrix; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat_details/chat_details_view.dart'; import 'package:fluffychat/pages/settings/settings.dart'; import 'package:fluffychat/pangea/utils/set_class_name.dart'; diff --git a/lib/pages/chat_details/chat_details_view.dart b/lib/pages/chat_details/chat_details_view.dart index 8cede0a82..ecebb9dd8 100644 --- a/lib/pages/chat_details/chat_details_view.dart +++ b/lib/pages/chat_details/chat_details_view.dart @@ -1,13 +1,3 @@ -// Flutter imports: -import 'package:flutter/material.dart'; - -// Package imports: -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:future_loading_dialog/future_loading_dialog.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; - -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat_details/chat_details.dart'; import 'package:fluffychat/pages/chat_details/participant_list_item.dart'; @@ -29,6 +19,11 @@ import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/chat_settings_popup_menu.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/matrix.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:future_loading_dialog/future_loading_dialog.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; class ChatDetailsView extends StatelessWidget { final ChatDetailsController controller; @@ -549,8 +544,10 @@ class ChatDetailsView extends StatelessWidget { backgroundColor: Theme.of(context).scaffoldBackgroundColor, foregroundColor: iconColor, - child: const Icon( - Icons.lock_outlined, + child: Icon( + room.locked + ? Icons.lock_outlined + : Icons.no_encryption_outlined, ), ), value: room.locked, diff --git a/lib/pages/chat_details/participant_list_item.dart b/lib/pages/chat_details/participant_list_item.dart index 7fdfe1aad..adbafe200 100644 --- a/lib/pages/chat_details/participant_list_item.dart +++ b/lib/pages/chat_details/participant_list_item.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/utils/bot_name.dart'; import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import '../../widgets/avatar.dart'; diff --git a/lib/pages/chat_encryption_settings/chat_encryption_settings.dart b/lib/pages/chat_encryption_settings/chat_encryption_settings.dart index 54afb66a7..c7aed03a3 100644 --- a/lib/pages/chat_encryption_settings/chat_encryption_settings.dart +++ b/lib/pages/chat_encryption_settings/chat_encryption_settings.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; @@ -9,7 +7,6 @@ import 'package:go_router/go_router.dart'; import 'package:matrix/encryption.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat_encryption_settings/chat_encryption_settings_view.dart'; import 'package:fluffychat/widgets/matrix.dart'; import '../key_verification/key_verification_dialog.dart'; diff --git a/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart b/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart index 1af9a2c7d..20764021e 100644 --- a/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart +++ b/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart @@ -1,13 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; import 'package:url_launcher/url_launcher_string.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat_encryption_settings/chat_encryption_settings.dart'; import 'package:fluffychat/utils/beautify_string_extension.dart'; diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 5cbd6783b..3567d2624 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -1,13 +1,10 @@ -// Dart imports: import 'dart:async'; import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; @@ -17,7 +14,6 @@ import 'package:matrix/matrix.dart'; import 'package:receive_sharing_intent/receive_sharing_intent.dart'; import 'package:uni_links/uni_links.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_list/chat_list_view.dart'; diff --git a/lib/pages/chat_list/chat_list_body.dart b/lib/pages/chat_list/chat_list_body.dart index 536214f31..7a47424a9 100644 --- a/lib/pages/chat_list/chat_list_body.dart +++ b/lib/pages/chat_list/chat_list_body.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:animations/animations.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pages/chat_list/chat_list_item.dart'; import 'package:fluffychat/pages/chat_list/search_title.dart'; diff --git a/lib/pages/chat_list/chat_list_header.dart b/lib/pages/chat_list/chat_list_header.dart index caa844a95..7ced10244 100644 --- a/lib/pages/chat_list/chat_list_header.dart +++ b/lib/pages/chat_list/chat_list_header.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pages/chat_list/client_chooser_button.dart'; diff --git a/lib/pages/chat_list/chat_list_item.dart b/lib/pages/chat_list/chat_list_item.dart index c245b64bc..d535b2e65 100644 --- a/lib/pages/chat_list/chat_list_item.dart +++ b/lib/pages/chat_list/chat_list_item.dart @@ -1,14 +1,11 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/pangea/utils/get_chat_list_item_subtitle.dart'; diff --git a/lib/pages/chat_list/chat_list_view.dart b/lib/pages/chat_list/chat_list_view.dart index 48378bdf8..ccfcf0629 100644 --- a/lib/pages/chat_list/chat_list_view.dart +++ b/lib/pages/chat_list/chat_list_view.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:badges/badges.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_list/chat_list.dart'; diff --git a/lib/pages/chat_list/client_chooser_button.dart b/lib/pages/chat_list/client_chooser_button.dart index c40c09968..5907d9f08 100644 --- a/lib/pages/chat_list/client_chooser_button.dart +++ b/lib/pages/chat_list/client_chooser_button.dart @@ -1,18 +1,14 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:keyboard_shortcuts/keyboard_shortcuts.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/extensions/client_extension.dart'; import 'package:fluffychat/pangea/utils/class_code.dart'; import 'package:fluffychat/pangea/utils/find_conversation_partner_dialog.dart'; diff --git a/lib/pages/chat_list/navi_rail_item.dart b/lib/pages/chat_list/navi_rail_item.dart index 98df834fa..2004f3568 100644 --- a/lib/pages/chat_list/navi_rail_item.dart +++ b/lib/pages/chat_list/navi_rail_item.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import '../../config/themes.dart'; diff --git a/lib/pages/chat_list/search_title.dart b/lib/pages/chat_list/search_title.dart index 5523d4912..62bcfb684 100644 --- a/lib/pages/chat_list/search_title.dart +++ b/lib/pages/chat_list/search_title.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; class SearchTitle extends StatelessWidget { diff --git a/lib/pages/chat_list/space_view.dart b/lib/pages/chat_list/space_view.dart index abe7ee2c0..f88596085 100644 --- a/lib/pages/chat_list/space_view.dart +++ b/lib/pages/chat_list/space_view.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; @@ -12,7 +9,6 @@ import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pages/chat_list/chat_list_item.dart'; import 'package:fluffychat/pages/chat_list/search_title.dart'; diff --git a/lib/pages/chat_list/start_chat_fab.dart b/lib/pages/chat_list/start_chat_fab.dart index a7f8e57e5..01f0d4165 100644 --- a/lib/pages/chat_list/start_chat_fab.dart +++ b/lib/pages/chat_list/start_chat_fab.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:core'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_list/chat_list.dart'; diff --git a/lib/pages/chat_list/stories_header.dart b/lib/pages/chat_list/stories_header.dart index 8c150c922..d5325b91f 100644 --- a/lib/pages/chat_list/stories_header.dart +++ b/lib/pages/chat_list/stories_header.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; @@ -9,7 +7,6 @@ import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/client_stories_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; diff --git a/lib/pages/chat_members/chat_members.dart b/lib/pages/chat_members/chat_members.dart index ba20d011d..c777d286e 100644 --- a/lib/pages/chat_members/chat_members.dart +++ b/lib/pages/chat_members/chat_members.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import '../../widgets/matrix.dart'; import 'chat_members_view.dart'; diff --git a/lib/pages/chat_members/chat_members_view.dart b/lib/pages/chat_members/chat_members_view.dart index e9b282b00..f5250f30a 100644 --- a/lib/pages/chat_members/chat_members_view.dart +++ b/lib/pages/chat_members/chat_members_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; -// Project imports: import 'package:fluffychat/utils/localized_exception_extension.dart'; import '../../widgets/layouts/max_width_body.dart'; import '../../widgets/matrix.dart'; diff --git a/lib/pages/chat_permissions_settings/chat_permissions_settings.dart b/lib/pages/chat_permissions_settings/chat_permissions_settings.dart index e8560b1f5..a6cdcbef0 100644 --- a/lib/pages/chat_permissions_settings/chat_permissions_settings.dart +++ b/lib/pages/chat_permissions_settings/chat_permissions_settings.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat_permissions_settings/chat_permissions_settings_view.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:fluffychat/widgets/permission_slider_dialog.dart'; diff --git a/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart b/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart index 23d65e005..072e20405 100644 --- a/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart +++ b/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat_permissions_settings/chat_permissions_settings.dart'; import 'package:fluffychat/pages/chat_permissions_settings/permission_list_tile.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; diff --git a/lib/pages/chat_permissions_settings/permission_list_tile.dart b/lib/pages/chat_permissions_settings/permission_list_tile.dart index d6a418817..a9d159854 100644 --- a/lib/pages/chat_permissions_settings/permission_list_tile.dart +++ b/lib/pages/chat_permissions_settings/permission_list_tile.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; diff --git a/lib/pages/device_settings/device_settings.dart b/lib/pages/device_settings/device_settings.dart index 41f447124..3ad1266c8 100644 --- a/lib/pages/device_settings/device_settings.dart +++ b/lib/pages/device_settings/device_settings.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart' show IterableExtension; import 'package:flutter_gen/gen_l10n/l10n.dart'; @@ -9,7 +7,6 @@ import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/encryption/utils/key_verification.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/device_settings/device_settings_view.dart'; import 'package:fluffychat/pages/key_verification/key_verification_dialog.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; diff --git a/lib/pages/device_settings/device_settings_view.dart b/lib/pages/device_settings/device_settings_view.dart index ebf21d5fd..4094c0227 100644 --- a/lib/pages/device_settings/device_settings_view.dart +++ b/lib/pages/device_settings/device_settings_view.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pages/device_settings/device_settings.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'user_device_list_item.dart'; diff --git a/lib/pages/device_settings/user_device_list_item.dart b/lib/pages/device_settings/user_device_list_item.dart index 3eb34912e..db793ac35 100644 --- a/lib/pages/device_settings/user_device_list_item.dart +++ b/lib/pages/device_settings/user_device_list_item.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import '../../utils/date_time_extension.dart'; import '../../utils/matrix_sdk_extensions/device_extension.dart'; import '../../widgets/matrix.dart'; diff --git a/lib/pages/dialer/dialer.dart b/lib/pages/dialer/dialer.dart index 1ebbb565e..a8e5a9202 100644 --- a/lib/pages/dialer/dialer.dart +++ b/lib/pages/dialer/dialer.dart @@ -16,15 +16,12 @@ * along with this program. If not, see . */ -// Dart imports: import 'dart:async'; import 'dart:math'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_webrtc/flutter_webrtc.dart'; @@ -33,7 +30,6 @@ import 'package:matrix/matrix.dart'; import 'package:vibration/vibration.dart'; import 'package:wakelock_plus/wakelock_plus.dart'; -// Project imports: import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/avatar.dart'; diff --git a/lib/pages/dialer/pip/dismiss_keyboard.dart b/lib/pages/dialer/pip/dismiss_keyboard.dart index ab100cfc9..c9ca3180f 100644 --- a/lib/pages/dialer/pip/dismiss_keyboard.dart +++ b/lib/pages/dialer/pip/dismiss_keyboard.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; void dismissKeyboard(BuildContext context) { diff --git a/lib/pages/dialer/pip/pip_view.dart b/lib/pages/dialer/pip/pip_view.dart index b12d10e67..5396c9136 100644 --- a/lib/pages/dialer/pip/pip_view.dart +++ b/lib/pages/dialer/pip/pip_view.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'dismiss_keyboard.dart'; diff --git a/lib/pages/homeserver_picker/homeserver_app_bar.dart b/lib/pages/homeserver_picker/homeserver_app_bar.dart index 5f4132648..3b7611ed2 100644 --- a/lib/pages/homeserver_picker/homeserver_app_bar.dart +++ b/lib/pages/homeserver_picker/homeserver_app_bar.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_typeahead/flutter_typeahead.dart'; import 'package:matrix_homeserver_recommendations/matrix_homeserver_recommendations.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'homeserver_bottom_sheet.dart'; import 'homeserver_picker.dart'; diff --git a/lib/pages/homeserver_picker/homeserver_bottom_sheet.dart b/lib/pages/homeserver_picker/homeserver_bottom_sheet.dart index e91ec07af..0fc6d0112 100644 --- a/lib/pages/homeserver_picker/homeserver_bottom_sheet.dart +++ b/lib/pages/homeserver_picker/homeserver_bottom_sheet.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix_homeserver_recommendations/matrix_homeserver_recommendations.dart'; import 'package:url_launcher/url_launcher_string.dart'; diff --git a/lib/pages/homeserver_picker/homeserver_picker.dart b/lib/pages/homeserver_picker/homeserver_picker.dart index 82b602780..7c1e82ccf 100644 --- a/lib/pages/homeserver_picker/homeserver_picker.dart +++ b/lib/pages/homeserver_picker/homeserver_picker.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; import 'package:file_picker/file_picker.dart'; @@ -17,7 +14,6 @@ import 'package:hive_flutter/hive_flutter.dart'; import 'package:matrix/matrix.dart'; import 'package:universal_html/html.dart' as html; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/homeserver_picker/homeserver_picker_view.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; diff --git a/lib/pages/homeserver_picker/homeserver_picker_view.dart b/lib/pages/homeserver_picker/homeserver_picker_view.dart index 59ac6746b..59301c6a1 100644 --- a/lib/pages/homeserver_picker/homeserver_picker_view.dart +++ b/lib/pages/homeserver_picker/homeserver_picker_view.dart @@ -1,10 +1,9 @@ // Flutter imports: + import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/pages/connect/p_sso_button.dart'; import 'package:fluffychat/pangea/widgets/common/pangea_logo_svg.dart'; diff --git a/lib/pages/image_viewer/image_viewer.dart b/lib/pages/image_viewer/image_viewer.dart index ad4d63efb..94ab19dd4 100644 --- a/lib/pages/image_viewer/image_viewer.dart +++ b/lib/pages/image_viewer/image_viewer.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/image_viewer/image_viewer_view.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/pages/image_viewer/image_viewer_view.dart b/lib/pages/image_viewer/image_viewer_view.dart index 248654cac..7646c8a60 100644 --- a/lib/pages/image_viewer/image_viewer_view.dart +++ b/lib/pages/image_viewer/image_viewer_view.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/mxc_image.dart'; import 'image_viewer.dart'; diff --git a/lib/pages/invitation_selection/invitation_selection.dart b/lib/pages/invitation_selection/invitation_selection.dart index 29b68c0c7..6736f099a 100644 --- a/lib/pages/invitation_selection/invitation_selection.dart +++ b/lib/pages/invitation_selection/invitation_selection.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/invitation_selection/invitation_selection_view.dart'; import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; diff --git a/lib/pages/invitation_selection/invitation_selection_view.dart b/lib/pages/invitation_selection/invitation_selection_view.dart index 690975332..5d5540084 100644 --- a/lib/pages/invitation_selection/invitation_selection_view.dart +++ b/lib/pages/invitation_selection/invitation_selection_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/invitation_selection/invitation_selection.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; diff --git a/lib/pages/key_verification/key_verification_dialog.dart b/lib/pages/key_verification/key_verification_dialog.dart index 914f2e43b..417825960 100644 --- a/lib/pages/key_verification/key_verification_dialog.dart +++ b/lib/pages/key_verification/key_verification_dialog.dart @@ -1,19 +1,15 @@ -// Dart imports: import 'dart:convert'; import 'dart:ui'; -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/encryption.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/widgets/avatar.dart'; class KeyVerificationDialog extends StatefulWidget { diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index 45268150a..0c6e819e7 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; diff --git a/lib/pages/login/login_view.dart b/lib/pages/login/login_view.dart index e69b30d2a..259210113 100644 --- a/lib/pages/login/login_view.dart +++ b/lib/pages/login/login_view.dart @@ -1,12 +1,10 @@ // Flutter imports: -import 'package:flutter/material.dart'; -// Package imports: -import 'package:flutter_gen/gen_l10n/l10n.dart'; - -// Project imports: import 'package:fluffychat/pangea/utils/password_forgotten.dart'; import 'package:fluffychat/widgets/layouts/login_scaffold.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'login.dart'; class LoginView extends StatelessWidget { @@ -21,7 +19,30 @@ class LoginView extends StatelessWidget { // enforceMobileMode: Matrix.of(context).client.isLogged(), // Pangea# appBar: AppBar( - leading: controller.loading ? null : const BackButton(), + // #Pangea + // leading: controller.loading ? null : const BackButton(), + leading: controller.loading + ? null + : Padding( + padding: const EdgeInsets.only(left: 10), + child: ElevatedButton( + onPressed: () => Navigator.of(context).pop(), + style: ButtonStyle( + padding: MaterialStateProperty.all(EdgeInsets.zero), + backgroundColor: MaterialStateProperty.all( + Theme.of(context) + .colorScheme + .background + .withOpacity(0.75), + ), + shape: MaterialStateProperty.all( + const CircleBorder(), + ), + ), + child: const Icon(Icons.arrow_back), + ), + ), + // Pangea# automaticallyImplyLeading: !controller.loading, centerTitle: true, // #Pangea @@ -56,7 +77,13 @@ class LoginView extends StatelessWidget { decoration: InputDecoration( prefixIcon: const Icon(Icons.account_box_outlined), errorText: controller.usernameError, - errorStyle: const TextStyle(color: Colors.orange), + // #Pangea + // errorStyle: const TextStyle(color: Colors.orange), + errorStyle: TextStyle( + color: Theme.of(context).textTheme.bodyMedium?.color, + fontSize: 14, + ), + // Pangea# hintText: L10n.of(context)!.emailOrUsername, // #Pangea fillColor: Theme.of(context) @@ -81,8 +108,12 @@ class LoginView extends StatelessWidget { decoration: InputDecoration( prefixIcon: const Icon(Icons.lock_outlined), errorText: controller.passwordError, - errorStyle: const TextStyle(color: Colors.orange), // #Pangea + // errorStyle: const TextStyle(color: Colors.orange), + errorStyle: TextStyle( + color: Theme.of(context).textTheme.bodyMedium?.color, + fontSize: 14, + ), // prevent enter key from clicking show password button suffixIcon: MouseRegion( cursor: SystemMouseCursors.click, diff --git a/lib/pages/new_group/new_group.dart b/lib/pages/new_group/new_group.dart index 987353cce..b01186a53 100644 --- a/lib/pages/new_group/new_group.dart +++ b/lib/pages/new_group/new_group.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:typed_data'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:file_picker/file_picker.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart' as sdk; -// Project imports: import 'package:fluffychat/pages/new_group/new_group_view.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/chat_topic_model.dart'; diff --git a/lib/pages/new_group/new_group_view.dart b/lib/pages/new_group/new_group_view.dart index 77e096f11..72d663618 100644 --- a/lib/pages/new_group/new_group_view.dart +++ b/lib/pages/new_group/new_group_view.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/new_group/new_group.dart'; import 'package:fluffychat/pangea/widgets/class/add_class_and_invite.dart'; diff --git a/lib/pages/new_private_chat/new_private_chat.dart b/lib/pages/new_private_chat/new_private_chat.dart index 7454dd5a9..c1d8c649a 100644 --- a/lib/pages/new_private_chat/new_private_chat.dart +++ b/lib/pages/new_private_chat/new_private_chat.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/new_private_chat/new_private_chat_view.dart'; import 'package:fluffychat/pages/new_private_chat/qr_scanner_modal.dart'; import 'package:fluffychat/pages/user_bottom_sheet/user_bottom_sheet.dart'; diff --git a/lib/pages/new_private_chat/new_private_chat_view.dart b/lib/pages/new_private_chat/new_private_chat_view.dart index 2bd61984d..fbe6d0443 100644 --- a/lib/pages/new_private_chat/new_private_chat_view.dart +++ b/lib/pages/new_private_chat/new_private_chat_view.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:math'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/new_private_chat/new_private_chat.dart'; diff --git a/lib/pages/new_private_chat/qr_scanner_modal.dart b/lib/pages/new_private_chat/qr_scanner_modal.dart index a4bce8eeb..b509941e5 100644 --- a/lib/pages/new_private_chat/qr_scanner_modal.dart +++ b/lib/pages/new_private_chat/qr_scanner_modal.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:async'; import 'dart:io'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:qr_code_scanner/qr_code_scanner.dart'; diff --git a/lib/pages/new_space/new_space.dart b/lib/pages/new_space/new_space.dart index b97d2509b..2ff854e2c 100644 --- a/lib/pages/new_space/new_space.dart +++ b/lib/pages/new_space/new_space.dart @@ -1,18 +1,14 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart' as sdk; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/new_space/new_space_view.dart'; import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; diff --git a/lib/pages/new_space/new_space_view.dart b/lib/pages/new_space/new_space_view.dart index dc40e74ac..32027cb84 100644 --- a/lib/pages/new_space/new_space_view.dart +++ b/lib/pages/new_space/new_space_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/pages/class_settings/p_class_widgets/room_rules_editor.dart'; diff --git a/lib/pages/settings/settings.dart b/lib/pages/settings/settings.dart index e6ba63dea..988ec3ff4 100644 --- a/lib/pages/settings/settings.dart +++ b/lib/pages/settings/settings.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; import 'package:file_picker/file_picker.dart'; @@ -13,7 +10,6 @@ import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:image_picker/image_picker.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/utils/logout.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/app_lock.dart'; diff --git a/lib/pages/settings/settings_view.dart b/lib/pages/settings/settings_view.dart index aaa7de7fd..6025e480b 100644 --- a/lib/pages/settings/settings_view.dart +++ b/lib/pages/settings/settings_view.dart @@ -1,13 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; import 'package:url_launcher/url_launcher_string.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/utils/fluffy_share.dart'; diff --git a/lib/pages/settings_3pid/settings_3pid.dart b/lib/pages/settings_3pid/settings_3pid.dart index d96d44b20..d46cac2a9 100644 --- a/lib/pages/settings_3pid/settings_3pid.dart +++ b/lib/pages/settings_3pid/settings_3pid.dart @@ -1,13 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/widgets/matrix.dart'; import 'settings_3pid_view.dart'; diff --git a/lib/pages/settings_3pid/settings_3pid_view.dart b/lib/pages/settings_3pid/settings_3pid_view.dart index 863f0761c..101062a63 100644 --- a/lib/pages/settings_3pid/settings_3pid_view.dart +++ b/lib/pages/settings_3pid/settings_3pid_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/settings_3pid/settings_3pid.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/pages/settings_chat/settings_chat.dart b/lib/pages/settings_chat/settings_chat.dart index c07c9a6b8..1c1035559 100644 --- a/lib/pages/settings_chat/settings_chat.dart +++ b/lib/pages/settings_chat/settings_chat.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'settings_chat_view.dart'; class SettingsChat extends StatefulWidget { diff --git a/lib/pages/settings_chat/settings_chat_view.dart b/lib/pages/settings_chat/settings_chat_view.dart index 67a8f5e6e..3ad9a8314 100644 --- a/lib/pages/settings_chat/settings_chat_view.dart +++ b/lib/pages/settings_chat/settings_chat_view.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/utils/platform_infos.dart'; diff --git a/lib/pages/settings_emotes/import_archive_dialog.dart b/lib/pages/settings_emotes/import_archive_dialog.dart index 176f0cde1..0ed5bb21f 100644 --- a/lib/pages/settings_emotes/import_archive_dialog.dart +++ b/lib/pages/settings_emotes/import_archive_dialog.dart @@ -1,18 +1,14 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:archive/archive.dart'; import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/settings_emotes/settings_emotes.dart'; import 'package:fluffychat/utils/client_manager.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/pages/settings_emotes/settings_emotes.dart b/lib/pages/settings_emotes/settings_emotes.dart index 5aac6b3b7..2ef905b17 100644 --- a/lib/pages/settings_emotes/settings_emotes.dart +++ b/lib/pages/settings_emotes/settings_emotes.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; import 'package:file_picker/file_picker.dart'; @@ -15,7 +12,6 @@ import 'package:go_router/go_router.dart'; import 'package:http/http.dart' hide Client; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/client_manager.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; import 'package:fluffychat/widgets/app_lock.dart'; diff --git a/lib/pages/settings_emotes/settings_emotes_view.dart b/lib/pages/settings_emotes/settings_emotes_view.dart index 71fdf3aae..acb93788e 100644 --- a/lib/pages/settings_emotes/settings_emotes_view.dart +++ b/lib/pages/settings_emotes/settings_emotes_view.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/mxc_image.dart'; diff --git a/lib/pages/settings_ignore_list/settings_ignore_list.dart b/lib/pages/settings_ignore_list/settings_ignore_list.dart index 24b00faba..0b27cee3b 100644 --- a/lib/pages/settings_ignore_list/settings_ignore_list.dart +++ b/lib/pages/settings_ignore_list/settings_ignore_list.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:future_loading_dialog/future_loading_dialog.dart'; -// Project imports: import '../../widgets/matrix.dart'; import 'settings_ignore_list_view.dart'; diff --git a/lib/pages/settings_ignore_list/settings_ignore_list_view.dart b/lib/pages/settings_ignore_list/settings_ignore_list_view.dart index 20e4dabce..dc0a31468 100644 --- a/lib/pages/settings_ignore_list/settings_ignore_list_view.dart +++ b/lib/pages/settings_ignore_list/settings_ignore_list_view.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/widgets/avatar.dart'; import '../../widgets/matrix.dart'; import 'settings_ignore_list.dart'; diff --git a/lib/pages/settings_multiple_emotes/settings_multiple_emotes.dart b/lib/pages/settings_multiple_emotes/settings_multiple_emotes.dart index 9bd4224dd..276bc08ad 100644 --- a/lib/pages/settings_multiple_emotes/settings_multiple_emotes.dart +++ b/lib/pages/settings_multiple_emotes/settings_multiple_emotes.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:go_router/go_router.dart'; -// Project imports: import 'settings_multiple_emotes_view.dart'; class MultipleEmotesSettings extends StatefulWidget { diff --git a/lib/pages/settings_multiple_emotes/settings_multiple_emotes_view.dart b/lib/pages/settings_multiple_emotes/settings_multiple_emotes_view.dart index 264c521c5..8d62549c7 100644 --- a/lib/pages/settings_multiple_emotes/settings_multiple_emotes_view.dart +++ b/lib/pages/settings_multiple_emotes/settings_multiple_emotes_view.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/settings_multiple_emotes/settings_multiple_emotes.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/pages/settings_notifications/settings_notifications.dart b/lib/pages/settings_notifications/settings_notifications.dart index 514a973da..6ab4740af 100644 --- a/lib/pages/settings_notifications/settings_notifications.dart +++ b/lib/pages/settings_notifications/settings_notifications.dart @@ -1,14 +1,11 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart' show IterableExtension; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import '../../widgets/matrix.dart'; import 'settings_notifications_view.dart'; diff --git a/lib/pages/settings_notifications/settings_notifications_view.dart b/lib/pages/settings_notifications/settings_notifications_view.dart index 77f1465d7..65ddac162 100644 --- a/lib/pages/settings_notifications/settings_notifications_view.dart +++ b/lib/pages/settings_notifications/settings_notifications_view.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import '../../utils/localized_exception_extension.dart'; import '../../widgets/matrix.dart'; diff --git a/lib/pages/settings_security/settings_security.dart b/lib/pages/settings_security/settings_security.dart index 115bafe12..60f746e89 100644 --- a/lib/pages/settings_security/settings_security.dart +++ b/lib/pages/settings_security/settings_security.dart @@ -1,18 +1,14 @@ -// Dart imports: import 'dart:convert'; import 'dart:typed_data'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:intl/intl.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; import 'package:fluffychat/widgets/app_lock.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/pages/settings_security/settings_security_view.dart b/lib/pages/settings_security/settings_security_view.dart index 39368b103..54e8b4e70 100644 --- a/lib/pages/settings_security/settings_security_view.dart +++ b/lib/pages/settings_security/settings_security_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; -// Project imports: import 'package:fluffychat/utils/beautify_string_extension.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; diff --git a/lib/pages/settings_stories/settings_stories.dart b/lib/pages/settings_stories/settings_stories.dart index 94fcacab1..16e9208bb 100644 --- a/lib/pages/settings_stories/settings_stories.dart +++ b/lib/pages/settings_stories/settings_stories.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/settings_stories/settings_stories_view.dart'; import 'package:fluffychat/widgets/matrix.dart'; import '../../utils/matrix_sdk_extensions/client_stories_extension.dart'; diff --git a/lib/pages/settings_stories/settings_stories_view.dart b/lib/pages/settings_stories/settings_stories_view.dart index 010c17dd3..f5d71fab3 100644 --- a/lib/pages/settings_stories/settings_stories_view.dart +++ b/lib/pages/settings_stories/settings_stories_view.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pages/settings_stories/settings_stories.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/widgets/avatar.dart'; diff --git a/lib/pages/settings_style/settings_style.dart b/lib/pages/settings_style/settings_style.dart index 94acc35c5..67c6d9738 100644 --- a/lib/pages/settings_style/settings_style.dart +++ b/lib/pages/settings_style/settings_style.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:file_picker/file_picker.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/widgets/app_lock.dart'; diff --git a/lib/pages/settings_style/settings_style_view.dart b/lib/pages/settings_style/settings_style_view.dart index c05837dab..9104912e7 100644 --- a/lib/pages/settings_style/settings_style_view.dart +++ b/lib/pages/settings_style/settings_style_view.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import '../../config/app_config.dart'; diff --git a/lib/pages/story/story_page.dart b/lib/pages/story/story_page.dart index e2f49d44a..1a0333c2b 100644 --- a/lib/pages/story/story_page.dart +++ b/lib/pages/story/story_page.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:async'; import 'dart:io'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; @@ -15,7 +12,6 @@ import 'package:matrix/matrix.dart'; import 'package:path_provider/path_provider.dart'; import 'package:video_player/video_player.dart'; -// Project imports: import 'package:fluffychat/pages/story/story_view.dart'; import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import 'package:fluffychat/utils/date_time_extension.dart'; diff --git a/lib/pages/story/story_view.dart b/lib/pages/story/story_view.dart index c980e3e21..913becfbf 100644 --- a/lib/pages/story/story_view.dart +++ b/lib/pages/story/story_view.dart @@ -1,15 +1,12 @@ -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:flutter_blurhash/flutter_blurhash.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_linkify/flutter_linkify.dart'; import 'package:matrix/matrix.dart'; import 'package:video_player/video_player.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/story/story_page.dart'; import 'package:fluffychat/utils/date_time_extension.dart'; diff --git a/lib/pages/tasks/model/matrix_todo_list.dart b/lib/pages/tasks/model/matrix_todo_list.dart index 428822338..fdcb88970 100644 --- a/lib/pages/tasks/model/matrix_todo_list.dart +++ b/lib/pages/tasks/model/matrix_todo_list.dart @@ -1,4 +1,3 @@ -// Package imports: import 'package:matrix/matrix.dart'; extension MatrixTodoExtension on Room { diff --git a/lib/pages/tasks/tasks.dart b/lib/pages/tasks/tasks.dart index 7c77bb2eb..7743b99e5 100644 --- a/lib/pages/tasks/tasks.dart +++ b/lib/pages/tasks/tasks.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/tasks/tasks_view.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'model/matrix_todo_list.dart'; diff --git a/lib/pages/tasks/tasks_view.dart b/lib/pages/tasks/tasks_view.dart index dcff18c24..8046b44d1 100644 --- a/lib/pages/tasks/tasks_view.dart +++ b/lib/pages/tasks/tasks_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:intl/intl.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/tasks/tasks.dart'; diff --git a/lib/pages/user_bottom_sheet/user_bottom_sheet.dart b/lib/pages/user_bottom_sheet/user_bottom_sheet.dart index 3dd8deea3..9d87f559c 100644 --- a/lib/pages/user_bottom_sheet/user_bottom_sheet.dart +++ b/lib/pages/user_bottom_sheet/user_bottom_sheet.dart @@ -1,14 +1,11 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/widgets/permission_slider_dialog.dart'; import '../../widgets/matrix.dart'; import 'user_bottom_sheet_view.dart'; diff --git a/lib/pages/user_bottom_sheet/user_bottom_sheet_view.dart b/lib/pages/user_bottom_sheet/user_bottom_sheet_view.dart index 93677a643..bdb1d945e 100644 --- a/lib/pages/user_bottom_sheet/user_bottom_sheet_view.dart +++ b/lib/pages/user_bottom_sheet/user_bottom_sheet_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/date_time_extension.dart'; import 'package:fluffychat/utils/fluffy_share.dart'; import 'package:fluffychat/widgets/avatar.dart'; diff --git a/lib/pangea/choreographer/controllers/alternative_translator.dart b/lib/pangea/choreographer/controllers/alternative_translator.dart index ada4fb890..4221a3479 100644 --- a/lib/pangea/choreographer/controllers/alternative_translator.dart +++ b/lib/pangea/choreographer/controllers/alternative_translator.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:http/http.dart' as http; -// Project imports: import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/choreographer/controllers/error_service.dart'; import 'package:fluffychat/pangea/repo/full_text_translation_repo.dart'; diff --git a/lib/pangea/choreographer/controllers/analytics_sender.dart b/lib/pangea/choreographer/controllers/analytics_sender.dart index 1dd75e7c9..fe4575f38 100644 --- a/lib/pangea/choreographer/controllers/analytics_sender.dart +++ b/lib/pangea/choreographer/controllers/analytics_sender.dart @@ -1,4 +1,3 @@ -// Project imports: import 'package:fluffychat/pangea/choreographer/controllers/it_controller.dart'; class MlController { diff --git a/lib/pangea/choreographer/controllers/choreographer.dart b/lib/pangea/choreographer/controllers/choreographer.dart index 14ff95eb2..c45a42ab0 100644 --- a/lib/pangea/choreographer/controllers/choreographer.dart +++ b/lib/pangea/choreographer/controllers/choreographer.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:async'; import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pangea/choreographer/controllers/alternative_translator.dart'; import 'package:fluffychat/pangea/choreographer/controllers/igc_controller.dart'; @@ -232,10 +228,11 @@ class Choreographer { void onITChoiceSelect(ITStep step) { choreoRecord.addRecord(_textController.text, step: step); _textController.setSystemText( - _textController.text + step.continuances[step.chosen!].text, - step.continuances[step.chosen!].gold - ? EditType.itGold - : EditType.itStandard); + _textController.text + step.continuances[step.chosen!].text, + step.continuances[step.chosen!].gold + ? EditType.itGold + : EditType.itStandard, + ); _textController.selection = TextSelection.collapsed(offset: _textController.text.length); giveInputFocus(); @@ -332,15 +329,18 @@ class Choreographer { } igc.igcTextData!.matches[matchIndex].status = PangeaMatchStatus.ignored; - choreoRecord.addRecord(_textController.text, - match: igc.igcTextData!.matches[matchIndex]); + choreoRecord.addRecord( + _textController.text, + match: igc.igcTextData!.matches[matchIndex], + ); igc.igcTextData!.matches.removeAt(matchIndex); } catch (err, stack) { debugger(when: kDebugMode); Sentry.addBreadcrumb( Breadcrumb.fromJson( - {"igcTextData": igc.igcTextData?.toJson(), "offset": cursorOffset}), + {"igcTextData": igc.igcTextData?.toJson(), "offset": cursorOffset}, + ), ); ErrorHandler.logError( e: err, @@ -456,7 +456,7 @@ class Choreographer { bool get _useCustomInput => [ EditType.keyboard, EditType.igc, - EditType.alternativeTranslation + EditType.alternativeTranslation, ].contains(_textController.editType); bool get editTypeIsKeyboard => EditType.keyboard == _textController.editType; diff --git a/lib/pangea/choreographer/controllers/error_service.dart b/lib/pangea/choreographer/controllers/error_service.dart index a2548ff3c..8ec044244 100644 --- a/lib/pangea/choreographer/controllers/error_service.dart +++ b/lib/pangea/choreographer/controllers/error_service.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import '../../utils/error_handler.dart'; diff --git a/lib/pangea/choreographer/controllers/igc_controller.dart b/lib/pangea/choreographer/controllers/igc_controller.dart index fdd9362fe..ebe4522b7 100644 --- a/lib/pangea/choreographer/controllers/igc_controller.dart +++ b/lib/pangea/choreographer/controllers/igc_controller.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:async'; import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/choreographer/controllers/error_service.dart'; import 'package:fluffychat/pangea/models/igc_text_data_model.dart'; @@ -206,7 +202,8 @@ class IgcController { if (igcTextData!.originalInput != choreographer.currentText) { debugPrint( - "returning isIGCTextDataRelevant false because text has changed"); + "returning isIGCTextDataRelevant false because text has changed", + ); return false; } return true; diff --git a/lib/pangea/choreographer/controllers/it_controller.dart b/lib/pangea/choreographer/controllers/it_controller.dart index 12c823452..da6a9b2a3 100644 --- a/lib/pangea/choreographer/controllers/it_controller.dart +++ b/lib/pangea/choreographer/controllers/it_controller.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:async'; import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:http/http.dart' as http; import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/choreographer/controllers/error_service.dart'; import 'package:fluffychat/pangea/constants/choreo_constants.dart'; import 'package:fluffychat/pangea/repo/full_text_translation_repo.dart'; @@ -78,10 +74,13 @@ class ITController { // try { if (_itStartData == null || _itStartData!.text.isEmpty) { Sentry.addBreadcrumb( - Breadcrumb(message: "choreo context", data: { - "igcTextData": choreographer.igc.igcTextData?.toJson(), - "currentText": choreographer.currentText - }), + Breadcrumb( + message: "choreo context", + data: { + "igcTextData": choreographer.igc.igcTextData?.toJson(), + "currentText": choreographer.currentText, + }, + ), ); throw Exception("null _itStartData or empty text in _setSourceText"); } @@ -126,10 +125,12 @@ class ITController { if (sourceText == null) await _setSourceText(); if (useCustomInput && currentITStep != null) { - completedITSteps.add(ITStep( - currentITStep!.continuances, - customInput: currentText, - )); + completedITSteps.add( + ITStep( + currentITStep!.continuances, + customInput: currentText, + ), + ); } currentITStep = null; @@ -423,7 +424,7 @@ class CurrentITStep { } return e; }), - goldCont + goldCont, ]; continuances.shuffle(); } else { diff --git a/lib/pangea/choreographer/controllers/message_options.dart b/lib/pangea/choreographer/controllers/message_options.dart index f3a69e154..0e5e68461 100644 --- a/lib/pangea/choreographer/controllers/message_options.dart +++ b/lib/pangea/choreographer/controllers/message_options.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/cupertino.dart'; -// Project imports: import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/constants/language_keys.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; diff --git a/lib/pangea/choreographer/widgets/choice_array.dart b/lib/pangea/choreographer/widgets/choice_array.dart index f309a7039..ca3f3bf7d 100644 --- a/lib/pangea/choreographer/widgets/choice_array.dart +++ b/lib/pangea/choreographer/widgets/choice_array.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import '../../utils/bot_style.dart'; import 'it_shimmer.dart'; @@ -21,7 +17,7 @@ class ChoicesArray extends StatelessWidget { final String originalSpan; final String Function(int) uniqueKeyForLayerLink; const ChoicesArray({ - Key? key, + super.key, required this.isLoading, required this.choices, required this.onPressed, @@ -29,7 +25,7 @@ class ChoicesArray extends StatelessWidget { required this.uniqueKeyForLayerLink, required this.selectedChoiceIndex, this.onLongPress, - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -67,14 +63,14 @@ class Choice { } class ChoiceItem extends StatelessWidget { - const ChoiceItem( - {Key? key, - required this.theme, - required this.onLongPress, - required this.onPressed, - required this.entry, - required this.isSelected}) - : super(key: key); + const ChoiceItem({ + super.key, + required this.theme, + required this.onLongPress, + required this.onPressed, + required this.entry, + required this.isSelected, + }); final MapEntry entry; final ThemeData theme; @@ -106,7 +102,8 @@ class ChoiceItem extends StatelessWidget { child: TextButton( style: ButtonStyle( padding: MaterialStateProperty.all( - const EdgeInsets.symmetric(horizontal: 7)), + const EdgeInsets.symmetric(horizontal: 7), + ), //if index is selected, then give the background a slight primary color backgroundColor: MaterialStateProperty.all( entry.value.color != null diff --git a/lib/pangea/choreographer/widgets/counters.dart b/lib/pangea/choreographer/widgets/counters.dart index d87f6a60b..5e1c57b9c 100644 --- a/lib/pangea/choreographer/widgets/counters.dart +++ b/lib/pangea/choreographer/widgets/counters.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/choreo_constants.dart'; import '../../../config/app_config.dart'; @@ -13,11 +10,11 @@ class Counter extends StatelessWidget { final String label; final Color color; const Counter({ - Key? key, + super.key, required this.count, required this.label, required this.color, - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -52,12 +49,12 @@ class CounterDisplay extends StatelessWidget { final int yellow; final int custom; const CounterDisplay({ - Key? key, + super.key, required this.correct, required this.incorrect, required this.yellow, required this.custom, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/choreographer/widgets/has_error_button.dart b/lib/pangea/choreographer/widgets/has_error_button.dart index b30026da1..47bf7ea7f 100644 --- a/lib/pangea/choreographer/widgets/has_error_button.dart +++ b/lib/pangea/choreographer/widgets/has_error_button.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import '../../controllers/pangea_controller.dart'; import '../controllers/error_service.dart'; @@ -12,8 +10,8 @@ class ChoreographerHasErrorButton extends StatelessWidget { const ChoreographerHasErrorButton( this.pangeaController, this.error, { - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) { @@ -26,7 +24,8 @@ class ChoreographerHasErrorButton extends StatelessWidget { SnackBar( duration: const Duration(seconds: 5), content: Text( - "${error.title(context)} ${error.description(context)}"), + "${error.title(context)} ${error.description(context)}", + ), ), ); } else if (error.type == ChoreoErrorType.unsubscribed) { diff --git a/lib/pangea/choreographer/widgets/it_bar.dart b/lib/pangea/choreographer/widgets/it_bar.dart index 108c7dc36..883761a9a 100644 --- a/lib/pangea/choreographer/widgets/it_bar.dart +++ b/lib/pangea/choreographer/widgets/it_bar.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/choreographer/controllers/it_controller.dart'; import 'package:fluffychat/pangea/choreographer/widgets/it_bar_buttons.dart'; @@ -20,7 +17,7 @@ import 'choice_array.dart'; class ITBar extends StatelessWidget { final Choreographer choreographer; - const ITBar({Key? key, required this.choreographer}) : super(key: key); + const ITBar({super.key, required this.choreographer}); ITController get controller => choreographer.itController; @@ -33,13 +30,14 @@ class ITBar extends StatelessWidget { child: Container( key: choreographer.itBarLinkAndKey.key, decoration: BoxDecoration( - color: Theme.of(context).brightness == Brightness.light - ? Colors.white - : Colors.black, - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(AppConfig.borderRadius), - topRight: Radius.circular(AppConfig.borderRadius), - )), + color: Theme.of(context).brightness == Brightness.light + ? Colors.white + : Colors.black, + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(AppConfig.borderRadius), + topRight: Radius.circular(AppConfig.borderRadius), + ), + ), width: double.infinity, padding: const EdgeInsets.fromLTRB(0, 3, 3, 3), child: Stack( @@ -92,7 +90,8 @@ class ITBar extends StatelessWidget { ? ChoiceFeedbackText(controller: controller) : controller.isTranslationDone ? TranslationFeedback( - controller: controller) + controller: controller, + ) : ITChoices(controller: controller), ), ), @@ -114,9 +113,9 @@ class ITBar extends StatelessWidget { class ChoiceFeedbackText extends StatelessWidget { const ChoiceFeedbackText({ - Key? key, + super.key, required this.controller, - }) : super(key: key); + }); final ITController controller; @@ -143,9 +142,9 @@ class ChoiceFeedbackText extends StatelessWidget { class OriginalText extends StatelessWidget { const OriginalText({ - Key? key, + super.key, required this.controller, - }) : super(key: key); + }); final ITController controller; @@ -155,10 +154,11 @@ class OriginalText extends StatelessWidget { constraints: const BoxConstraints(minHeight: 50), padding: const EdgeInsets.only(left: 60.0, right: 40.0), decoration: const BoxDecoration( - borderRadius: BorderRadius.only( - topLeft: Radius.circular(AppConfig.borderRadius), - topRight: Radius.circular(AppConfig.borderRadius), - )), + borderRadius: BorderRadius.only( + topLeft: Radius.circular(AppConfig.borderRadius), + topRight: Radius.circular(AppConfig.borderRadius), + ), + ), child: Row( //PTODO - does this already update after reset or we need to setState? mainAxisAlignment: MainAxisAlignment.center, @@ -195,9 +195,9 @@ class OriginalText extends StatelessWidget { class ITChoices extends StatelessWidget { const ITChoices({ - Key? key, + super.key, required this.controller, - }) : super(key: key); + }); // final choices = [ // "we need a really long translation to see what's going to happen with that. it should probably have multiple sentences so that we can see what happens there.we need a really long translation to see what's going to happen with that. it should probably have multiple sentences so that we can see what happens there.", @@ -217,20 +217,25 @@ class ITChoices extends StatelessWidget { return controller.sourceText; } - void showCard(BuildContext context, int index, - [Color? borderColor, String? choiceFeedback]) => + void showCard( + BuildContext context, + int index, [ + Color? borderColor, + String? choiceFeedback, + ]) => OverlayUtil.showPositionedCard( context: context, cardToShow: WordDataCard( - word: controller.currentITStep!.continuances[index].text, - wordLang: controller.targetLangCode, - fullText: sourceText ?? controller.choreographer.currentText, - fullTextLang: sourceText != null - ? controller.sourceLangCode - : controller.targetLangCode, - hasInfo: controller.currentITStep!.continuances[index].hasInfo, - choiceFeedback: choiceFeedback, - room: controller.choreographer.chatController.room), + word: controller.currentITStep!.continuances[index].text, + wordLang: controller.targetLangCode, + fullText: sourceText ?? controller.choreographer.currentText, + fullTextLang: sourceText != null + ? controller.sourceLangCode + : controller.targetLangCode, + hasInfo: controller.currentITStep!.continuances[index].hasInfo, + choiceFeedback: choiceFeedback, + room: controller.choreographer.chatController.room, + ), cardSize: const Size(300, 300), borderColor: borderColor, transformTargetId: controller.choreographer.itBarTransformTargetKey, @@ -262,8 +267,10 @@ class ITChoices extends StatelessWidget { controller.currentITStep!.continuances[index]; debugPrint("is gold? ${continuance.gold}"); if (continuance.level == 1 || continuance.wasClicked) { - Future.delayed(const Duration(milliseconds: 500), - () => controller.selectTranslation(index)); + Future.delayed( + const Duration(milliseconds: 500), + () => controller.selectTranslation(index), + ); } else { showCard( context, @@ -293,8 +300,7 @@ class ITChoices extends StatelessWidget { class ITError extends StatelessWidget { final ITController controller; final Object error; - const ITError({Key? key, required this.error, required this.controller}) - : super(key: key); + const ITError({super.key, required this.error, required this.controller}); @override Widget build(BuildContext context) { @@ -311,8 +317,9 @@ class ITError extends StatelessWidget { "${errorCopy.title}\n${errorCopy.body}", // Haga clic en su mensaje para ver los significados de las palabras. style: TextStyle( - fontStyle: FontStyle.italic, - color: Theme.of(context).colorScheme.error), + fontStyle: FontStyle.italic, + color: Theme.of(context).colorScheme.error, + ), ), ), ITRestartButton(controller: controller), diff --git a/lib/pangea/choreographer/widgets/it_bar_buttons.dart b/lib/pangea/choreographer/widgets/it_bar_buttons.dart index b74c0e8bc..815020d17 100644 --- a/lib/pangea/choreographer/widgets/it_bar_buttons.dart +++ b/lib/pangea/choreographer/widgets/it_bar_buttons.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/utils/instructions.dart'; import 'package:fluffychat/widgets/matrix.dart'; @@ -11,9 +9,9 @@ import '../controllers/it_controller.dart'; class ITCloseButton extends StatelessWidget { const ITCloseButton({ - Key? key, + super.key, required this.choreographer, - }) : super(key: key); + }); final Choreographer choreographer; @@ -33,7 +31,7 @@ class ITCloseButton extends StatelessWidget { } class ITBotButton extends StatelessWidget { - const ITBotButton({Key? key, required this.choreographer}) : super(key: key); + const ITBotButton({super.key, required this.choreographer}); final Choreographer choreographer; @@ -60,9 +58,9 @@ class ITBotButton extends StatelessWidget { class ITRestartButton extends StatelessWidget { ITRestartButton({ - Key? key, + super.key, required this.controller, - }) : super(key: key); + }); final ITController controller; final PangeaController pangeaController = MatrixState.pangeaController; diff --git a/lib/pangea/choreographer/widgets/it_shimmer.dart b/lib/pangea/choreographer/widgets/it_shimmer.dart index 1ae0173d1..2710ab57f 100644 --- a/lib/pangea/choreographer/widgets/it_shimmer.dart +++ b/lib/pangea/choreographer/widgets/it_shimmer.dart @@ -1,26 +1,27 @@ -// Dart imports: import 'dart:ui'; -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; class ItShimmer extends StatelessWidget { - const ItShimmer({Key? key, required this.originalSpan}) : super(key: key); + const ItShimmer({super.key, required this.originalSpan}); final String originalSpan; - Iterable renderShimmerIfListEmpty(BuildContext context, - {int noOfBars = 3}) { + Iterable renderShimmerIfListEmpty( + BuildContext context, { + int noOfBars = 3, + }) { final List dummyStrings = []; for (int i = 0; i < noOfBars; i++) { dummyStrings.add(originalSpan); } - return dummyStrings.map((e) => ITShimmerElement( - text: e, - )); + return dummyStrings.map( + (e) => ITShimmerElement( + text: e, + ), + ); } // PTODO - bring this back, make it shimmer @@ -35,9 +36,9 @@ class ItShimmer extends StatelessWidget { class ITShimmerElement extends StatelessWidget { const ITShimmerElement({ - Key? key, + super.key, required this.text, - }) : super(key: key); + }); final String text; @@ -60,14 +61,16 @@ class ITShimmerElement extends StatelessWidget { child: TextButton( style: ButtonStyle( padding: MaterialStateProperty.all( - const EdgeInsets.symmetric(horizontal: 7)), + const EdgeInsets.symmetric(horizontal: 7), + ), shape: MaterialStateProperty.all( RoundedRectangleBorder( borderRadius: BorderRadius.circular(10), ), ), backgroundColor: MaterialStateProperty.all( - AppConfig.primaryColor.withOpacity(0.2)), + AppConfig.primaryColor.withOpacity(0.2), + ), ), onPressed: () {}, child: Text( diff --git a/lib/pangea/choreographer/widgets/language_display_toggle.dart b/lib/pangea/choreographer/widgets/language_display_toggle.dart index 085435049..a399fda44 100644 --- a/lib/pangea/choreographer/widgets/language_display_toggle.dart +++ b/lib/pangea/choreographer/widgets/language_display_toggle.dart @@ -1,18 +1,15 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import '../../../config/app_config.dart'; import '../../../pages/chat/chat.dart'; class LanguageDisplayToggle extends StatelessWidget { const LanguageDisplayToggle({ - Key? key, + super.key, required this.controller, - }) : super(key: key); + }); final ChatController controller; diff --git a/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart b/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart index 21096782e..93d441aa4 100644 --- a/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart +++ b/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/models/class_model.dart'; @@ -30,10 +26,10 @@ class LanguagePermissionsButtons extends StatelessWidget { final Choreographer choreographer; const LanguagePermissionsButtons({ - Key? key, + super.key, required this.roomID, required this.choreographer, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/choreographer/widgets/send_button.dart b/lib/pangea/choreographer/widgets/send_button.dart index 6a541eff0..045f0c516 100644 --- a/lib/pangea/choreographer/widgets/send_button.dart +++ b/lib/pangea/choreographer/widgets/send_button.dart @@ -1,18 +1,15 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/colors.dart'; import '../../../pages/chat/chat.dart'; class ChoreographerSendButton extends StatelessWidget { const ChoreographerSendButton({ - Key? key, + super.key, required this.controller, - }) : super(key: key); + }); final ChatController controller; diff --git a/lib/pangea/choreographer/widgets/translation_finished_flow.dart b/lib/pangea/choreographer/widgets/translation_finished_flow.dart index f88139307..de49be145 100644 --- a/lib/pangea/choreographer/widgets/translation_finished_flow.dart +++ b/lib/pangea/choreographer/widgets/translation_finished_flow.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import '../../utils/bot_style.dart'; import '../../utils/error_handler.dart'; import '../controllers/it_controller.dart'; @@ -9,8 +7,7 @@ import 'choice_array.dart'; class TranslationFeedback extends StatelessWidget { final ITController controller; - const TranslationFeedback({Key? key, required this.controller}) - : super(key: key); + const TranslationFeedback({super.key, required this.controller}); @override Widget build(BuildContext context) { @@ -61,9 +58,9 @@ class TranslationFeedback extends StatelessWidget { class AlternativeTranslations extends StatelessWidget { const AlternativeTranslations({ - Key? key, + super.key, required this.controller, - }) : super(key: key); + }); final ITController controller; @@ -75,12 +72,13 @@ class AlternativeTranslations extends StatelessWidget { controller.choreographer.altTranslator.loadingAlternativeTranslations, // choices: controller.choreographer.altTranslator.similarityResponse.scores choices: [ - Choice(text: controller.choreographer.altTranslator.translations.first) + Choice(text: controller.choreographer.altTranslator.translations.first), ], // choices: controller.choreographer.altTranslator.translations, onPressed: (int index) { controller.choreographer.onSelectAlternativeTranslation( - controller.choreographer.altTranslator.translations[index]); + controller.choreographer.altTranslator.translations[index], + ); }, uniqueKeyForLayerLink: (int index) => "altTranslation$index", selectedChoiceIndex: null, diff --git a/lib/pangea/config/colors.dart b/lib/pangea/config/colors.dart index 988f66d9a..43a3f2e23 100644 --- a/lib/pangea/config/colors.dart +++ b/lib/pangea/config/colors.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; class ChoreoColor { diff --git a/lib/pangea/config/environment.dart b/lib/pangea/config/environment.dart index 8cbf15334..e55f66423 100644 --- a/lib/pangea/config/environment.dart +++ b/lib/pangea/config/environment.dart @@ -1,27 +1,10 @@ -// Flutter imports: -import 'package:flutter/foundation.dart'; - -// Package imports: import 'package:flutter_dotenv/flutter_dotenv.dart'; -// Project imports: -import '../../utils/platform_infos.dart'; - class Environment { static bool get itIsTime => DateTime.utc(2023, 1, 25).isBefore(DateTime.now()); static String get fileName { - // return '.env.prod'; - if (kIsWeb) { - return '.env'; - } - if (PlatformInfos.isMobile) { - if (kDebugMode) { - return '.env'; - } - return '.env.prod'; - } return ".env"; } diff --git a/lib/pangea/constants/choreo_constants.dart b/lib/pangea/constants/choreo_constants.dart index 8d937ec2e..cbdfdf7d0 100644 --- a/lib/pangea/constants/choreo_constants.dart +++ b/lib/pangea/constants/choreo_constants.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; class ChoreoConstants { diff --git a/lib/pangea/constants/class_default_values.dart b/lib/pangea/constants/class_default_values.dart index 5a5ce14cc..97522ca4b 100644 --- a/lib/pangea/constants/class_default_values.dart +++ b/lib/pangea/constants/class_default_values.dart @@ -1,4 +1,3 @@ -// Project imports: import '../enum/time_span.dart'; class ClassDefaultValues { diff --git a/lib/pangea/constants/colors.dart b/lib/pangea/constants/colors.dart index ef19ca184..16fc7f907 100644 --- a/lib/pangea/constants/colors.dart +++ b/lib/pangea/constants/colors.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; class PangeaColors { diff --git a/lib/pangea/controllers/base_controller.dart b/lib/pangea/controllers/base_controller.dart index b3822c46f..ce41353e8 100644 --- a/lib/pangea/controllers/base_controller.dart +++ b/lib/pangea/controllers/base_controller.dart @@ -1,4 +1,3 @@ -// Dart imports: import 'dart:async'; class BaseController { diff --git a/lib/pangea/controllers/class_controller.dart b/lib/pangea/controllers/class_controller.dart index edd435c5c..894498a49 100644 --- a/lib/pangea/controllers/class_controller.dart +++ b/lib/pangea/controllers/class_controller.dart @@ -1,18 +1,14 @@ -// Dart imports: import 'dart:async'; import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/extensions/client_extension.dart'; diff --git a/lib/pangea/controllers/contextual_definition_controller.dart b/lib/pangea/controllers/contextual_definition_controller.dart index 332b61c9a..c13a428b8 100644 --- a/lib/pangea/controllers/contextual_definition_controller.dart +++ b/lib/pangea/controllers/contextual_definition_controller.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:convert'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:http/http.dart'; -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../constants/model_keys.dart'; @@ -26,12 +22,15 @@ class ContextualDefinitionController { } _ContextualDefinitionCacheItem? _getLocal( - ContextualDefinitionRequestModel req) => + ContextualDefinitionRequestModel req, + ) => _definitions.firstWhereOrNull( - (e) => e.word == req.word && e.fullText == req.fullText); + (e) => e.word == req.word && e.fullText == req.fullText, + ); Future get( - ContextualDefinitionRequestModel req) { + ContextualDefinitionRequestModel req, + ) { final _ContextualDefinitionCacheItem? localItem = _getLocal(req); if (localItem != null) return localItem.data; @@ -59,7 +58,8 @@ class ContextualDefinitionController { return res; } catch (err, stack) { debugPrint( - "error getting contextual definition for ${request.word} in '${request.fullText}'"); + "error getting contextual definition for ${request.word} in '${request.fullText}'", + ); ErrorHandler.logError(e: err, s: stack, data: request.toJson()); return null; } @@ -119,19 +119,20 @@ class ContextualDefinitionRequestModel { final String fullTextLang; final String wordLang; - ContextualDefinitionRequestModel( - {required this.fullText, - required this.word, - required this.feedbackLang, - required this.fullTextLang, - required this.wordLang}); + ContextualDefinitionRequestModel({ + required this.fullText, + required this.word, + required this.feedbackLang, + required this.fullTextLang, + required this.wordLang, + }); Map toJson() => { ModelKey.fullText: fullText, ModelKey.word: word, ModelKey.lang: feedbackLang, ModelKey.fullTextLang: fullTextLang, - ModelKey.wordLang: wordLang + ModelKey.wordLang: wordLang, }; } diff --git a/lib/pangea/controllers/language_controller.dart b/lib/pangea/controllers/language_controller.dart index 4482b55e0..b96c82b8b 100644 --- a/lib/pangea/controllers/language_controller.dart +++ b/lib/pangea/controllers/language_controller.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/language_keys.dart'; import 'package:fluffychat/pangea/controllers/language_list_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; diff --git a/lib/pangea/controllers/language_list_controller.dart b/lib/pangea/controllers/language_list_controller.dart index 940e06faf..ef86fead9 100644 --- a/lib/pangea/controllers/language_list_controller.dart +++ b/lib/pangea/controllers/language_list_controller.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:async'; import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/language_keys.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:fluffychat/pangea/repo/language_repo.dart'; @@ -37,9 +34,11 @@ class PangeaLanguage { await _saveFlags(_langList); await saveLastFetchDate(); } - _langList.removeWhere((element) => - LanguageModel.codeFromNameOrCode(element.langCode) == - LanguageKeys.unknownLanguage); + _langList.removeWhere( + (element) => + LanguageModel.codeFromNameOrCode(element.langCode) == + LanguageKeys.unknownLanguage, + ); _langList.sort((a, b) => a.displayName.compareTo(b.displayName)); _langList.insert(0, LanguageModel.multiLingual()); } catch (err, stack) { @@ -67,7 +66,7 @@ class PangeaLanguage { static Future _saveFlags(List langFlags) async { final Map flagMap = { - PrefKey.flags: langFlags.map((e) => e.toJson()).toList() + PrefKey.flags: langFlags.map((e) => e.toJson()).toList(), }; await MyShared.saveJson(PrefKey.flags, flagMap); } diff --git a/lib/pangea/controllers/local_settings.dart b/lib/pangea/controllers/local_settings.dart index 494b96c95..5984a7bf5 100644 --- a/lib/pangea/controllers/local_settings.dart +++ b/lib/pangea/controllers/local_settings.dart @@ -1,4 +1,3 @@ -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/class_model.dart'; diff --git a/lib/pangea/controllers/message_analytics_controller.dart b/lib/pangea/controllers/message_analytics_controller.dart index 32139a578..78c75b408 100644 --- a/lib/pangea/controllers/message_analytics_controller.dart +++ b/lib/pangea/controllers/message_analytics_controller.dart @@ -1,13 +1,9 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:fluffychat/pangea/enum/time_span.dart'; import 'package:fluffychat/pangea/models/headwords.dart'; @@ -128,7 +124,7 @@ class AnalyticsController extends BaseController { } else { if (studentId != null) { studentAnalyticsSummaryEvents = [ - await classRoom.getStudentAnalytics(studentId) + await classRoom.getStudentAnalytics(studentId), ]; } else { studentAnalyticsSummaryEvents = await classRoom.getClassAnalytics(); @@ -157,13 +153,15 @@ class AnalyticsController extends BaseController { chatId: chatId, ); - _cachedModels.add(CacheModel( - timeSpan: timeSpan, - classId: classRoom?.id, - studentId: studentId, - chatId: chatId, - chartAnalyticsModel: newModel, - )); + _cachedModels.add( + CacheModel( + timeSpan: timeSpan, + classId: classRoom?.id, + studentId: studentId, + chatId: chatId, + chartAnalyticsModel: newModel, + ), + ); return newModel; } catch (err, s) { @@ -174,8 +172,10 @@ class AnalyticsController extends BaseController { } Future vocabHeadwordsWithTotals( - String langCode, List vocab, - [String? chatId]) async { + String langCode, + List vocab, [ + String? chatId, + ]) async { final VocabHeadwords vocabHeadwords = await VocabHeadwords.getHeadwords(langCode); for (final vocabList in vocabHeadwords.lists) { @@ -217,8 +217,10 @@ class AnalyticsController extends BaseController { final List msgs = []; for (final event in studentAnalyticsSummaryEvents) { if (event != null) { - msgs.addAll(event.content.messages - .where((m) => directChatIds.contains(m.chatId))); + msgs.addAll( + event.content.messages + .where((m) => directChatIds.contains(m.chatId)), + ); } else { debugPrint("studentAnalyticsSummaryEvent is null"); } @@ -229,13 +231,15 @@ class AnalyticsController extends BaseController { chatId: null, ); - _cachedModels.add(CacheModel( - timeSpan: timeSpan, - classId: classRoom.id, - studentId: null, - chatId: AnalyticsEntryType.privateChats.toString(), - chartAnalyticsModel: newModel, - )); + _cachedModels.add( + CacheModel( + timeSpan: timeSpan, + classId: classRoom.id, + studentId: null, + chatId: AnalyticsEntryType.privateChats.toString(), + chartAnalyticsModel: newModel, + ), + ); return newModel; } catch (err, s) { @@ -255,7 +259,9 @@ class AnalyticsController extends BaseController { } Future> studentConstructs( - String studentId, String langCode) { + String studentId, + String langCode, + ) { final Room? analyticsRoom = _pangeaController.matrixState.client .analyticsRoomLocal(langCode, studentId); return analyticsRoom!.allConstructEvents; @@ -386,17 +392,21 @@ class AnalyticsController extends BaseController { if (selected?.type == AnalyticsEntryType.room) { chatIdsToFilterBy.add(selected!.id); } else if (selected?.type == AnalyticsEntryType.privateChats) { - chatIdsToFilterBy.addAll(_pangeaController.matrixState.client - .getRoomById(defaultSelected.id) - ?.childrenAndGrandChildrenDirectChatIds ?? - []); + chatIdsToFilterBy.addAll( + _pangeaController.matrixState.client + .getRoomById(defaultSelected.id) + ?.childrenAndGrandChildrenDirectChatIds ?? + [], + ); } else if (defaultSelected.type == AnalyticsEntryType.space) { - chatIdsToFilterBy.addAll(_pangeaController.matrixState.client - .getRoomById(defaultSelected.id) - ?.childrenAndGrandChildren - .where((e) => e.roomId != null) - .map((e) => e.roomId!) ?? - []); + chatIdsToFilterBy.addAll( + _pangeaController.matrixState.client + .getRoomById(defaultSelected.id) + ?.childrenAndGrandChildren + .where((e) => e.roomId != null) + .map((e) => e.roomId!) ?? + [], + ); } if (chatIdsToFilterBy.isNotEmpty) { for (final event in events) { diff --git a/lib/pangea/controllers/message_data_controller.dart b/lib/pangea/controllers/message_data_controller.dart index 1bb3d10f2..130afcdfe 100644 --- a/lib/pangea/controllers/message_data_controller.dart +++ b/lib/pangea/controllers/message_data_controller.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:matrix/matrix.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/base_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; @@ -34,8 +30,10 @@ class MessageDataController extends BaseController { } CacheItem? getItem(String parentId, String type, String langCode) => - _cache.firstWhereOrNull((e) => - e.parentId == parentId && e.type == type && e.langCode == langCode); + _cache.firstWhereOrNull( + (e) => + e.parentId == parentId && e.type == type && e.langCode == langCode, + ); Future _getTokens( TokensRequestModel req, @@ -70,7 +68,8 @@ class MessageDataController extends BaseController { } catch (err, stack) { Sentry.addBreadcrumb( Breadcrumb( - message: "err in _getTokenEvent with repEventId $repEventId"), + message: "err in _getTokenEvent with repEventId $repEventId", + ), ); Sentry.addBreadcrumb( Breadcrumb.fromJson({"req": req.toJson()}), @@ -93,17 +92,19 @@ class MessageDataController extends BaseController { getItem(repEventId, PangeaEventTypes.tokens, req.userL2); if (item != null) return item.data; - _cache.add(CacheItem( - repEventId, - PangeaEventTypes.tokens, - req.userL2, - _getTokenEvent( - context: context, - repEventId: repEventId, - req: req, - room: room, + _cache.add( + CacheItem( + repEventId, + PangeaEventTypes.tokens, + req.userL2, + _getTokenEvent( + context: context, + repEventId: repEventId, + req: req, + room: room, + ), ), - )); + ); return _cache.last.data; } @@ -205,9 +206,11 @@ class MessageDataQueueItem { UseType useType; MessageDataQueueItem( - this.transactionId, this.repTokensAndRecords, this.useType - // required this.recentMessageRecord, - ); + this.transactionId, + this.repTokensAndRecords, + this.useType, + // required this.recentMessageRecord, + ); } class RepTokensAndRecord { diff --git a/lib/pangea/controllers/my_analytics_controller.dart b/lib/pangea/controllers/my_analytics_controller.dart index 1f687b1d3..1fbb15b6f 100644 --- a/lib/pangea/controllers/my_analytics_controller.dart +++ b/lib/pangea/controllers/my_analytics_controller.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:async'; import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/student_analytics_summary_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; @@ -28,13 +24,17 @@ class MyAnalyticsController { //PTODO - locally cache and update periodically Future handleMessage( - Room room, RecentMessageRecord messageRecord) async { + Room room, + RecentMessageRecord messageRecord, + ) async { try { debugPrint("in handle message with type ${messageRecord.useType}"); if (_userId == null) { debugger(when: kDebugMode); ErrorHandler.logError( - m: "null userId in updateAnalytics", s: StackTrace.current); + m: "null userId in updateAnalytics", + s: StackTrace.current, + ); return; } @@ -59,7 +59,8 @@ class MyAnalyticsController { } Future> analyticsEvents( - List spaces) async { + List spaces, + ) async { final List> events = []; for (final space in spaces) { events.add(space.getStudentAnalytics(_userId!)); @@ -73,7 +74,9 @@ class MyAnalyticsController { ); Future saveConstructsMixed( - List allUses, String langCode) async { + List allUses, + String langCode, + ) async { try { final Map> aggregatedVocabUse = {}; for (final use in allUses) { @@ -88,7 +91,10 @@ class MyAnalyticsController { debugPrint("saving of type ${uses.value.first.constructType}"); saveFutures.add( analyticsRoom.saveConstructUsesSameLemma( - uses.key, uses.value.first.constructType!, uses.value), + uses.key, + uses.value.first.constructType!, + uses.value, + ), ); } diff --git a/lib/pangea/controllers/pangea_controller.dart b/lib/pangea/controllers/pangea_controller.dart index e65056981..728f86131 100644 --- a/lib/pangea/controllers/pangea_controller.dart +++ b/lib/pangea/controllers/pangea_controller.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:developer'; import 'dart:math'; -// Flutter imports: import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; -// Package imports: import 'package:matrix/matrix.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/controllers/class_controller.dart'; import 'package:fluffychat/pangea/controllers/contextual_definition_controller.dart'; diff --git a/lib/pangea/controllers/permissions_controller.dart b/lib/pangea/controllers/permissions_controller.dart index 44c0b79fe..6dcf64388 100644 --- a/lib/pangea/controllers/permissions_controller.dart +++ b/lib/pangea/controllers/permissions_controller.dart @@ -1,7 +1,5 @@ -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/age_limits.dart'; import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/controllers/base_controller.dart'; diff --git a/lib/pangea/controllers/space_rules_edit_controller.dart b/lib/pangea/controllers/space_rules_edit_controller.dart index 3e11b1055..5f5a2ed72 100644 --- a/lib/pangea/controllers/space_rules_edit_controller.dart +++ b/lib/pangea/controllers/space_rules_edit_controller.dart @@ -1,7 +1,5 @@ -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import '../extensions/pangea_room_extension.dart'; import '../models/class_model.dart'; diff --git a/lib/pangea/controllers/subscription_controller.dart b/lib/pangea/controllers/subscription_controller.dart index cb9416a3c..8a2051517 100644 --- a/lib/pangea/controllers/subscription_controller.dart +++ b/lib/pangea/controllers/subscription_controller.dart @@ -1,10 +1,8 @@ -// Dart imports: import 'dart:async'; import 'dart:convert'; // Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/base_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; @@ -17,6 +15,7 @@ import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/pangea/widgets/subscription/subscription_paywall.dart'; import 'package:fluffychat/utils/platform_infos.dart'; +// Project imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; diff --git a/lib/pangea/controllers/user_controller.dart b/lib/pangea/controllers/user_controller.dart index ec16defe6..9cdce7573 100644 --- a/lib/pangea/controllers/user_controller.dart +++ b/lib/pangea/controllers/user_controller.dart @@ -1,14 +1,13 @@ -// Dart imports: import 'dart:async'; import 'dart:developer'; -// Package imports: import 'package:collection/collection.dart'; -// Project imports: +import 'package:fluffychat/pangea/constants/language_keys.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/controllers/base_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/widgets/fluffy_chat_app.dart'; +// Project imports: import 'package:jwt_decode/jwt_decode.dart'; import 'package:matrix/matrix.dart' as matrix; @@ -121,6 +120,25 @@ class UserController extends BaseController { ); } + Future get areUserLanguagesSet async { + try { + final PUserModel? toCheck = userModel ?? (await fetchUserModel()); + if (toCheck?.profile == null) { + return false; + } + final String? srcLang = toCheck!.profile!.sourceLanguage; + final String? tgtLang = toCheck.profile!.targetLanguage; + return srcLang != null && + tgtLang != null && + srcLang.isNotEmpty && + tgtLang.isNotEmpty && + srcLang != LanguageKeys.unknownLanguage && + tgtLang != LanguageKeys.unknownLanguage; + } catch (err) { + return false; + } + } + redirectToUserInfo() { // _pangeaController.matrix.router!.currentState!.to( // "/home/connect/user_age", diff --git a/lib/pangea/controllers/word_net_controller.dart b/lib/pangea/controllers/word_net_controller.dart index 04fe5e878..ce8324ebe 100644 --- a/lib/pangea/controllers/word_net_controller.dart +++ b/lib/pangea/controllers/word_net_controller.dart @@ -1,8 +1,6 @@ -// Package imports: import 'package:collection/collection.dart'; import 'package:http/http.dart' as http; -// Project imports: import 'package:fluffychat/pangea/constants/language_keys.dart'; import 'package:fluffychat/pangea/repo/word_repo.dart'; import '../models/word_data_model.dart'; @@ -24,12 +22,14 @@ class WordController extends BaseController { required String? userL1, required String? userL2, }) => - _wordData.firstWhereOrNull((e) => e.isMatch( - w: word, - f: fullText, - l1: userL1, - l2: userL2, - )); + _wordData.firstWhereOrNull( + (e) => e.isMatch( + w: word, + f: fullText, + l1: userL1, + l2: userL2, + ), + ); Future getWordDataGlobal({ required String word, diff --git a/lib/pangea/enum/bar_chart_view_enum.dart b/lib/pangea/enum/bar_chart_view_enum.dart index bdc21707d..d59f34d9a 100644 --- a/lib/pangea/enum/bar_chart_view_enum.dart +++ b/lib/pangea/enum/bar_chart_view_enum.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; enum BarChartViewSelection { diff --git a/lib/pangea/enum/span_choice_type.dart b/lib/pangea/enum/span_choice_type.dart index 03a0adcaa..7ba748d09 100644 --- a/lib/pangea/enum/span_choice_type.dart +++ b/lib/pangea/enum/span_choice_type.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; enum SpanChoiceType { diff --git a/lib/pangea/enum/span_data_type.dart b/lib/pangea/enum/span_data_type.dart index d5e714330..5e4fdf8cb 100644 --- a/lib/pangea/enum/span_data_type.dart +++ b/lib/pangea/enum/span_data_type.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; enum SpanDataTypeEnum { diff --git a/lib/pangea/enum/time_span.dart b/lib/pangea/enum/time_span.dart index 12457aac6..23a54e4ea 100644 --- a/lib/pangea/enum/time_span.dart +++ b/lib/pangea/enum/time_span.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import '../models/chart_analytics_model.dart'; enum TimeSpan { day, week, month, sixmonths, year } diff --git a/lib/pangea/enum/use_type.dart b/lib/pangea/enum/use_type.dart index c657fa961..771b26220 100644 --- a/lib/pangea/enum/use_type.dart +++ b/lib/pangea/enum/use_type.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import '../models/choreo_record.dart'; import '../utils/bot_style.dart'; diff --git a/lib/pangea/enum/vocab_proficiency_enum.dart b/lib/pangea/enum/vocab_proficiency_enum.dart index 0b1749387..73187dbf7 100644 --- a/lib/pangea/enum/vocab_proficiency_enum.dart +++ b/lib/pangea/enum/vocab_proficiency_enum.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; enum VocabProficiencyEnum { low, medium, high, unk } diff --git a/lib/pangea/extensions/client_extension.dart b/lib/pangea/extensions/client_extension.dart index 753266010..d226c78a7 100644 --- a/lib/pangea/extensions/client_extension.dart +++ b/lib/pangea/extensions/client_extension.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/constants/pangea_room_types.dart'; @@ -21,27 +17,35 @@ extension PangeaClient on Client { List get classes => rooms.where((e) => e.isPangeaClass).toList(); List get classesImTeaching => rooms - .where((e) => - e.isPangeaClass && - e.ownPowerLevel == ClassDefaultValues.powerLevelOfAdmin) + .where( + (e) => + e.isPangeaClass && + e.ownPowerLevel == ClassDefaultValues.powerLevelOfAdmin, + ) .toList(); List get classesAndExchangesImTeaching => rooms - .where((e) => - (e.isPangeaClass || e.isExchange) && - e.ownPowerLevel == ClassDefaultValues.powerLevelOfAdmin) + .where( + (e) => + (e.isPangeaClass || e.isExchange) && + e.ownPowerLevel == ClassDefaultValues.powerLevelOfAdmin, + ) .toList(); List get classesImIn => rooms - .where((e) => - e.isPangeaClass && - e.ownPowerLevel < ClassDefaultValues.powerLevelOfAdmin) + .where( + (e) => + e.isPangeaClass && + e.ownPowerLevel < ClassDefaultValues.powerLevelOfAdmin, + ) .toList(); List get classesAndExchangesImStudyingIn => rooms - .where((e) => - (e.isPangeaClass || e.isExchange) && - e.ownPowerLevel < ClassDefaultValues.powerLevelOfAdmin) + .where( + (e) => + (e.isPangeaClass || e.isExchange) && + e.ownPowerLevel < ClassDefaultValues.powerLevelOfAdmin, + ) .toList(); List get classesAndExchangesImIn => @@ -104,8 +108,10 @@ extension PangeaClient on Client { debugger(when: kDebugMode); analyticsRoom .join() - .onError((error, stackTrace) => - ErrorHandler.logError(e: error, s: stackTrace)) + .onError( + (error, stackTrace) => + ErrorHandler.logError(e: error, s: stackTrace), + ) .then((value) => analyticsRoom.postLoad()); return analyticsRoom; } @@ -116,14 +122,14 @@ extension PangeaClient on Client { final String roomID = await createRoom( creationContent: { 'type': PangeaRoomTypes.analytics, - ModelKey.langCode: langCode + ModelKey.langCode: langCode, }, name: "$userID $langCode Analytics", topic: "This room stores learning analytics for $userID.", invite: [ - ...(await myTeachers).map((e) => e.id).toList(), + ...(await myTeachers).map((e) => e.id), // BotName.localBot, - BotName.byEnvironment + BotName.byEnvironment, ], visibility: Visibility.private, roomAliasName: "${userID!.localpart}_${langCode}_analytics", diff --git a/lib/pangea/extensions/pangea_event_extension.dart b/lib/pangea/extensions/pangea_event_extension.dart index 17b566db7..9d4556721 100644 --- a/lib/pangea/extensions/pangea_event_extension.dart +++ b/lib/pangea/extensions/pangea_event_extension.dart @@ -1,13 +1,9 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/models/choreo_record.dart'; import 'package:fluffychat/pangea/models/message_data_models.dart'; diff --git a/lib/pangea/extensions/pangea_room_extension.dart b/lib/pangea/extensions/pangea_room_extension.dart index 994614513..f599a5c64 100644 --- a/lib/pangea/extensions/pangea_room_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:async'; import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; import 'package:matrix/src/utils/space_child.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/constants/pangea_room_types.dart'; @@ -756,8 +752,7 @@ extension PangeaRoom on Room { } final toAdd = [ ...getParticipants([Membership.invite, Membership.join]) - .map((e) => e.id) - .toList(), + .map((e) => e.id), BotName.byEnvironment, ]; for (final teacher in await client.myTeachers) { diff --git a/lib/pangea/guard/p_vguard.dart b/lib/pangea/guard/p_vguard.dart index 48719c8d7..20ddd35d6 100644 --- a/lib/pangea/guard/p_vguard.dart +++ b/lib/pangea/guard/p_vguard.dart @@ -1,13 +1,9 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:go_router/go_router.dart'; -// Project imports: import 'package:fluffychat/widgets/matrix.dart'; import '../controllers/pangea_controller.dart'; diff --git a/lib/pangea/models/chart_analytics_model.dart b/lib/pangea/models/chart_analytics_model.dart index 46c1bc818..af06a0958 100644 --- a/lib/pangea/models/chart_analytics_model.dart +++ b/lib/pangea/models/chart_analytics_model.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Project imports: import 'package:fluffychat/pangea/enum/time_span.dart'; import 'package:fluffychat/pangea/models/student_analytics_summary_model.dart'; import '../enum/use_type.dart'; @@ -28,7 +25,7 @@ class TimeSeriesTotals { UseType.ta.string: ta, UseType.ga.string: ga, UseType.wa.string: wa, - UseType.un.string: un + UseType.un.string: un, }; factory TimeSeriesTotals.fromJson(json) => TimeSeriesTotals( @@ -80,7 +77,7 @@ class TimeSeriesInterval { Map toJson() => { "strt": start.toIso8601String(), "end": end.toIso8601String(), - "totals": totals.toJson() + "totals": totals.toJson(), }; factory TimeSeriesInterval.fromJson(json) => TimeSeriesInterval( diff --git a/lib/pangea/models/chat_topic_model.dart b/lib/pangea/models/chat_topic_model.dart index cba79e4ae..c83e3f7c6 100644 --- a/lib/pangea/models/chat_topic_model.dart +++ b/lib/pangea/models/chat_topic_model.dart @@ -1,4 +1,3 @@ -// Project imports: import 'lemma.dart'; class ChatTopic { diff --git a/lib/pangea/models/choreo_init_response.model.dart b/lib/pangea/models/choreo_init_response.model.dart index d91233ce8..45274bca5 100644 --- a/lib/pangea/models/choreo_init_response.model.dart +++ b/lib/pangea/models/choreo_init_response.model.dart @@ -4,8 +4,12 @@ class ChoreoResponseModel { String? route; String? feedbackMessage; int? payloadId; - ChoreoResponseModel( - {this.grammarData, this.detectedLang, this.route, this.feedbackMessage}); + ChoreoResponseModel({ + this.grammarData, + this.detectedLang, + this.route, + this.feedbackMessage, + }); ChoreoResponseModel.fromJson(Map json) { grammarData = json['grammar_data'] != null diff --git a/lib/pangea/models/choreo_record.dart b/lib/pangea/models/choreo_record.dart index 232db0df3..d3612f8f4 100644 --- a/lib/pangea/models/choreo_record.dart +++ b/lib/pangea/models/choreo_record.dart @@ -1,7 +1,5 @@ -// Dart imports: import 'dart:convert'; -// Project imports: import 'package:fluffychat/pangea/models/pangea_match_model.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import '../constants/choreo_constants.dart'; @@ -69,8 +67,13 @@ class ChoreoRecord { if (match != null && step != null) { throw Exception("match and step should not both be defined"); } - choreoSteps.add(ChoreoRecordStep( - text: text, acceptedOrIgnoredMatch: match, itStep: step)); + choreoSteps.add( + ChoreoRecordStep( + text: text, + acceptedOrIgnoredMatch: match, + itStep: step, + ), + ); } bool get hasAcceptedMatches => choreoSteps.any( @@ -120,23 +123,30 @@ class ChoreoRecord { /// for each continuance /// if not within the final message, save ignIT/incIT List toVocabUse( - List tokens, String chatId, String msgId) { + List tokens, + String chatId, + String msgId, + ) { final List uses = []; final DateTime now = DateTime.now(); List lemmasToVocabUses( - List lemmas, ConstructUseType type) { + List lemmas, + ConstructUseType type, + ) { final List uses = []; for (final lemma in lemmas) { if (lemma.saveVocab) { - uses.add(OneConstructUse( - useType: type, - chatId: chatId, - timeStamp: now, - lemma: lemma.text, - form: lemma.form, - msgId: msgId, - constructType: ConstructType.vocab, - )); + uses.add( + OneConstructUse( + useType: type, + chatId: chatId, + timeStamp: now, + lemma: lemma.text, + form: lemma.form, + msgId: msgId, + constructType: ConstructType.vocab, + ), + ); } } return uses; @@ -147,9 +157,11 @@ class ChoreoRecord { /// if 1) accepted match 2) token is in the replacement and 3) replacement /// is in the overall step text, then token was a ga if (step.acceptedOrIgnoredMatch?.status == PangeaMatchStatus.accepted && - (step.acceptedOrIgnoredMatch!.match.choices?.any((r) => - r.value.contains(token.text.content) && - step.text.contains(r.value)) ?? + (step.acceptedOrIgnoredMatch!.match.choices?.any( + (r) => + r.value.contains(token.text.content) && + step.text.contains(r.value), + ) ?? false)) { return lemmasToVocabUses(token.lemmas, ConstructUseType.ga); } @@ -206,15 +218,17 @@ class ChoreoRecord { final String name = step.acceptedOrIgnoredMatch!.match.rule?.id ?? step.acceptedOrIgnoredMatch!.match.shortMessage ?? step.acceptedOrIgnoredMatch!.match.type.typeName.name; - uses.add(OneConstructUse( - useType: ConstructUseType.ga, - chatId: chatId, - timeStamp: now, - lemma: name, - form: name, - msgId: msgId, - constructType: ConstructType.grammar, - )); + uses.add( + OneConstructUse( + useType: ConstructUseType.ga, + chatId: chatId, + timeStamp: now, + lemma: name, + form: name, + msgId: msgId, + constructType: ConstructType.grammar, + ), + ); } } return uses; @@ -254,11 +268,15 @@ class ChoreoRecordStep { ITStep? itStep; - ChoreoRecordStep( - {required this.text, this.acceptedOrIgnoredMatch, this.itStep}) { + ChoreoRecordStep({ + required this.text, + this.acceptedOrIgnoredMatch, + this.itStep, + }) { if (itStep != null && acceptedOrIgnoredMatch != null) { throw Exception( - "itStep and acceptedOrIgnoredMatch should not both be defined"); + "itStep and acceptedOrIgnoredMatch should not both be defined", + ); } } diff --git a/lib/pangea/models/class_analytics_model.dart b/lib/pangea/models/class_analytics_model.dart index b908a983f..3e37ee4d1 100644 --- a/lib/pangea/models/class_analytics_model.dart +++ b/lib/pangea/models/class_analytics_model.dart @@ -1,4 +1,3 @@ -// Package imports: import 'package:intl/intl.dart'; class ClassAnalyticsModel { @@ -15,11 +14,11 @@ class ClassAnalyticsModel { } Map toJson() { - final _data = {}; - _data['class_id'] = classId; - _data['user_ids'] = userIds; - _data['analytics'] = analytics.map((e) => e.toJson()).toList(); - return _data; + final data = {}; + data['class_id'] = classId; + data['user_ids'] = userIds; + data['analytics'] = analytics.map((e) => e.toJson()).toList(); + return data; } } @@ -38,10 +37,10 @@ class Analytics { } Map toJson() { - final _data = {}; - _data['title'] = title; - _data['section'] = section.map((e) => e.toJson()).toList(); - return _data; + final data = {}; + data['title'] = title; + data['section'] = section.map((e) => e.toJson()).toList(); + return data; } } @@ -62,11 +61,11 @@ class Section { } Map toJson() { - final _data = {}; - _data['title'] = title; - _data['class_total'] = classTotal; - _data['data'] = data.map((e) => e.toJson()).toList(); - return _data; + final data = {}; + data['title'] = title; + data['class_total'] = classTotal; + data['data'] = data.map((e) => e.toJson()).toList(); + return data; } } @@ -74,9 +73,6 @@ class Data { Data(); set value(String val) => _value = val; String get value { - if (_value == null) { - return _value.toString(); - } if (value_type == 'date') { return DateFormat('yyyy/M/dd hh:mm a') .format(DateTime.parse(_value).toLocal()) @@ -95,10 +91,10 @@ class Data { } Map toJson() { - final _data = {}; - _data['user_id'] = userId; - _data['value'] = _value; - _data['value_type'] = value_type; - return _data; + final data = {}; + data['user_id'] = userId; + data['value'] = _value; + data['value_type'] = value_type; + return data; } } diff --git a/lib/pangea/models/class_model.dart b/lib/pangea/models/class_model.dart index bd4c6d73e..1f588980c 100644 --- a/lib/pangea/models/class_model.dart +++ b/lib/pangea/models/class_model.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../constants/class_default_values.dart'; @@ -48,9 +44,11 @@ class ClassSettingsModel { city: json['city'], country: json['country'], dominantLanguage: LanguageModel.codeFromNameOrCode( - json['dominant_language'] ?? LanguageKeys.unknownLanguage), + json['dominant_language'] ?? LanguageKeys.unknownLanguage, + ), targetLanguage: LanguageModel.codeFromNameOrCode( - json['target_language'] ?? LanguageKeys.unknownLanguage), + json['target_language'] ?? LanguageKeys.unknownLanguage, + ), languageLevel: json['language_level'], schoolName: json['school_name'], ); diff --git a/lib/pangea/models/construct_analytics_event.dart b/lib/pangea/models/construct_analytics_event.dart index e9cec2676..66921b8a2 100644 --- a/lib/pangea/models/construct_analytics_event.dart +++ b/lib/pangea/models/construct_analytics_event.dart @@ -1,7 +1,5 @@ -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/models/constructs_analytics_model.dart'; import '../constants/pangea_event_types.dart'; diff --git a/lib/pangea/models/constructs_analytics_model.dart b/lib/pangea/models/constructs_analytics_model.dart index e72288543..672467d56 100644 --- a/lib/pangea/models/constructs_analytics_model.dart +++ b/lib/pangea/models/constructs_analytics_model.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/model_keys.dart'; import '../enum/construct_type_enum.dart'; @@ -31,13 +28,15 @@ class ConstructUses { factory ConstructUses.fromJson(Map json) { // try { debugger( - when: kDebugMode && - (json['uses'] == null || json[ModelKey.lemma] == null)); + when: + kDebugMode && (json['uses'] == null || json[ModelKey.lemma] == null), + ); return ConstructUses( lemma: json[ModelKey.lemma], uses: (json['uses'] as Iterable) .map( - (use) => use != null ? OneConstructUse.fromJson(use) : null) + (use) => use != null ? OneConstructUse.fromJson(use) : null, + ) .where((element) => element != null) .cast() .toList(), diff --git a/lib/pangea/models/custom_input_translation_model.dart b/lib/pangea/models/custom_input_translation_model.dart index 9b96db343..7d2989d73 100644 --- a/lib/pangea/models/custom_input_translation_model.dart +++ b/lib/pangea/models/custom_input_translation_model.dart @@ -1,4 +1,3 @@ -// Project imports: import 'package:fluffychat/pangea/constants/model_keys.dart'; class CustomInputRequestModel { @@ -37,6 +36,6 @@ class CustomInputRequestModel { ModelKey.tgtLang: targetLangCode, 'user_id': userId, 'room_id': roomId, - 'class_id': classId + 'class_id': classId, }; } diff --git a/lib/pangea/models/exchange_model.dart b/lib/pangea/models/exchange_model.dart index d311193db..42ce2a175 100644 --- a/lib/pangea/models/exchange_model.dart +++ b/lib/pangea/models/exchange_model.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'class_model.dart'; diff --git a/lib/pangea/models/headwords.dart b/lib/pangea/models/headwords.dart index 00917d31f..cd0a68108 100644 --- a/lib/pangea/models/headwords.dart +++ b/lib/pangea/models/headwords.dart @@ -1,12 +1,9 @@ -// Dart imports: import 'dart:convert'; import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; -// Project imports: import 'package:fluffychat/pangea/models/constructs_analytics_model.dart'; import '../enum/vocab_proficiency_enum.dart'; @@ -22,10 +19,12 @@ class VocabHeadwords { factory VocabHeadwords.fromJson(Map json) { final List lists = []; for (final entry in json.entries) { - lists.add(VocabList( - name: entry.key, - lemmas: (entry.value as Iterable).cast().toList(), - )); + lists.add( + VocabList( + name: entry.key, + lemmas: (entry.value as Iterable).cast().toList(), + ), + ); } return VocabHeadwords(lists: lists); } diff --git a/lib/pangea/models/igc_text_data_model.dart b/lib/pangea/models/igc_text_data_model.dart index aff53a2c1..04be9b485 100644 --- a/lib/pangea/models/igc_text_data_model.dart +++ b/lib/pangea/models/igc_text_data_model.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/models/pangea_match_model.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/models/span_card_model.dart'; @@ -217,7 +213,7 @@ class IGCTextData { Breadcrumb.fromJson( { "fullText": originalInput, - "tokens": tokens.map((e) => e.toJson()).toString() + "tokens": tokens.map((e) => e.toJson()).toString(), }, ), ); @@ -296,21 +292,23 @@ class IGCTextData { ? topTokenMatch.textStyle(defaultStyle) : hasDefinitionStyle(defaultStyle); - items.add(TextSpan( - text: token.text.content, - style: tokenStyle, - recognizer: handleClick - ? (TapGestureRecognizer() - ..onTapDown = (details) => OverlayUtil.showPositionedCard( - context: context, - cardToShow: cardToShow, - cardSize: topTokenMatch?.isITStart ?? false - ? const Size(350, 220) - : const Size(350, 400), - transformTargetId: transformTargetId, - )) - : null, - )); + items.add( + TextSpan( + text: token.text.content, + style: tokenStyle, + recognizer: handleClick + ? (TapGestureRecognizer() + ..onTapDown = (details) => OverlayUtil.showPositionedCard( + context: context, + cardToShow: cardToShow, + cardSize: topTokenMatch?.isITStart ?? false + ? const Size(350, 220) + : const Size(350, 400), + transformTargetId: transformTargetId, + )) + : null, + ), + ); final int charBetween = getAfterTokenSpacingByIndex( index, diff --git a/lib/pangea/models/it_response_model.dart b/lib/pangea/models/it_response_model.dart index 83c3092cd..86a9c7a4c 100644 --- a/lib/pangea/models/it_response_model.dart +++ b/lib/pangea/models/it_response_model.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/choreo_constants.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/extensions/my_list_extionsion.dart'; diff --git a/lib/pangea/models/it_step.dart b/lib/pangea/models/it_step.dart index 158a85226..f06bd7401 100644 --- a/lib/pangea/models/it_step.dart +++ b/lib/pangea/models/it_step.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import '../constants/choreo_constants.dart'; import 'it_response_model.dart'; diff --git a/lib/pangea/models/language_model.dart b/lib/pangea/models/language_model.dart index 79ecd14c9..d7b6409b5 100644 --- a/lib/pangea/models/language_model.dart +++ b/lib/pangea/models/language_model.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/language_keys.dart'; import '../utils/error_handler.dart'; @@ -78,12 +74,13 @@ class LanguageModel { //PTODO - add flag for unknown static LanguageModel get unknown => LanguageModel( - langCode: LanguageKeys.unknownLanguage, - languageType: 1, - languageFlag: "", - displayName: "Unknown", - l2: false, - l1: false); + langCode: LanguageKeys.unknownLanguage, + languageType: 1, + languageFlag: "", + displayName: "Unknown", + l2: false, + l1: false, + ); static LanguageModel multiLingual([BuildContext? context]) => LanguageModel( displayName: context != null @@ -526,7 +523,7 @@ class _LanguageLocal { "ce": {"name": "Chechen", "nativeName": "нохчийн мотт"}, "ny": { "name": "Chichewa, Chewa, Nyanja", - "nativeName": "chiCheŵa, chinyanja" + "nativeName": "chiCheŵa, chinyanja", }, "zh": {"name": "Chinese", "nativeName": "中文 (Zhōngwén), 汉语, 漢語"}, "cv": {"name": "Chuvash", "nativeName": "чӑваш чӗлхи"}, @@ -548,7 +545,7 @@ class _LanguageLocal { "fr": {"name": "French", "nativeName": "français, langue française"}, "ff": { "name": "Fula; Fulah; Pulaar; Pular", - "nativeName": "Fulfulde, Pulaar, Pular" + "nativeName": "Fulfulde, Pulaar, Pular", }, "gl": {"name": "Galician", "nativeName": "Galego"}, "ka": {"name": "Georgian", "nativeName": "ქართული"}, @@ -567,7 +564,7 @@ class _LanguageLocal { "id": {"name": "Indonesian", "nativeName": "Bahasa Indonesia"}, "ie": { "name": "Interlingue", - "nativeName": "Originally called Occidental; then Interlingue after WWII" + "nativeName": "Originally called Occidental; then Interlingue after WWII", }, "ga": {"name": "Irish", "nativeName": "Gaeilge"}, "ig": {"name": "Igbo", "nativeName": "Asụsụ Igbo"}, @@ -580,7 +577,7 @@ class _LanguageLocal { "jv": {"name": "Javanese", "nativeName": "basa Jawa"}, "kl": { "name": "Kalaallisut, Greenlandic", - "nativeName": "kalaallisut, kalaallit oqaasii" + "nativeName": "kalaallisut, kalaallit oqaasii", }, "kn": {"name": "Kannada", "nativeName": "ಕನ್ನಡ"}, "kr": {"name": "Kanuri", "nativeName": "Kanuri"}, @@ -598,12 +595,12 @@ class _LanguageLocal { "la": {"name": "Latin", "nativeName": "latine, lingua latina"}, "lb": { "name": "Luxembourgish, Letzeburgesch", - "nativeName": "Lëtzebuergesch" + "nativeName": "Lëtzebuergesch", }, "lg": {"name": "Luganda", "nativeName": "Luganda"}, "li": { "name": "Limburgish, Limburgan, Limburger", - "nativeName": "Limburgs" + "nativeName": "Limburgs", }, "ln": {"name": "Lingala", "nativeName": "Lingála"}, "lo": {"name": "Lao", "nativeName": "ພາສາລາວ"}, @@ -635,7 +632,7 @@ class _LanguageLocal { "cu": { "name": "Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic", - "nativeName": "ѩзыкъ словѣньскъ" + "nativeName": "ѩзыкъ словѣньскъ", }, "om": {"name": "Oromo", "nativeName": "Afaan Oromoo"}, "or": {"name": "Oriya", "nativeName": "ଓଡ଼ିଆ"}, @@ -677,7 +674,7 @@ class _LanguageLocal { "ti": {"name": "Tigrinya", "nativeName": "ትግርኛ"}, "bo": { "name": "Tibetan Standard, Tibetan, Central", - "nativeName": "བོད་ཡིག" + "nativeName": "བོད་ཡིག", }, "tk": {"name": "Turkmen", "nativeName": "Türkmen, Түркмен"}, "tl": {"name": "Tagalog", "nativeName": "Wikang Tagalog, ᜏᜒᜃᜅ᜔ ᜆᜄᜎᜓᜄ᜔"}, diff --git a/lib/pangea/models/message_data_models.dart b/lib/pangea/models/message_data_models.dart index 8518b8b9e..1ed2f36ce 100644 --- a/lib/pangea/models/message_data_models.dart +++ b/lib/pangea/models/message_data_models.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:convert'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/models/pangea_token_model.dart'; /// this class is contained within a [RepresentationEvent] diff --git a/lib/pangea/models/mobile_subscriptions.dart b/lib/pangea/models/mobile_subscriptions.dart index 81526137f..931488716 100644 --- a/lib/pangea/models/mobile_subscriptions.dart +++ b/lib/pangea/models/mobile_subscriptions.dart @@ -1,14 +1,12 @@ -// Dart imports: import 'dart:io'; // Package imports: import 'package:collection/collection.dart'; -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:fluffychat/pangea/models/base_subscription_info.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -// Flutter imports: +// Project imports: import 'package:flutter/material.dart'; import 'package:purchases_flutter/purchases_flutter.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; diff --git a/lib/pangea/models/pangea_choreo_event.dart b/lib/pangea/models/pangea_choreo_event.dart index 21d70923a..f28f04b04 100644 --- a/lib/pangea/models/pangea_choreo_event.dart +++ b/lib/pangea/models/pangea_choreo_event.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/extensions/pangea_event_extension.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../constants/pangea_event_types.dart'; diff --git a/lib/pangea/models/pangea_match_model.dart b/lib/pangea/models/pangea_match_model.dart index 55145c401..c7e97f4c0 100644 --- a/lib/pangea/models/pangea_match_model.dart +++ b/lib/pangea/models/pangea_match_model.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/enum/span_data_type.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../constants/match_rule_ids.dart'; @@ -73,7 +70,7 @@ class PangeaMatch { bool get needsTranslation => match.rule?.id != null ? [ MatchRuleIds.tokenNeedsTranslation, - MatchRuleIds.tokenSpanNeedsTranslation + MatchRuleIds.tokenSpanNeedsTranslation, ].contains(match.rule!.id) : false; @@ -84,7 +81,7 @@ class PangeaMatch { Map toJson() => { _matchKey: match.toJson(), // _detectionsKey: detections.map((e) => e.toJson()).toList(), - _statusKey: _statusEnumToString(status) + _statusKey: _statusEnumToString(status), }; String get matchContent { @@ -101,8 +98,9 @@ class PangeaMatch { end = match.fullText.length; debugger(when: kDebugMode); ErrorHandler.logError( - m: "match.offset + match.length > match.fullText.length", - data: match.toJson()); + m: "match.offset + match.length > match.fullText.length", + data: match.toJson(), + ); } else { end = match.offset + match.length; } diff --git a/lib/pangea/models/pangea_message_event.dart b/lib/pangea/models/pangea_message_event.dart index 276b21c3a..b56402c08 100644 --- a/lib/pangea/models/pangea_message_event.dart +++ b/lib/pangea/models/pangea_message_event.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/pangea_message_types.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/pangea/models/choreo_record.dart'; diff --git a/lib/pangea/models/pangea_representation_event.dart b/lib/pangea/models/pangea_representation_event.dart index 8bc4112de..49e0f9358 100644 --- a/lib/pangea/models/pangea_representation_event.dart +++ b/lib/pangea/models/pangea_representation_event.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/extensions/pangea_event_extension.dart'; import 'package:fluffychat/pangea/models/pangea_choreo_event.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; diff --git a/lib/pangea/models/pangea_text_tap.dart b/lib/pangea/models/pangea_text_tap.dart index d409f6e85..013082ce6 100644 --- a/lib/pangea/models/pangea_text_tap.dart +++ b/lib/pangea/models/pangea_text_tap.dart @@ -3,17 +3,18 @@ class PTextTapModel { late String word; late bool isHighLighted; late int textAtOffSet; - PTextTapModel( - {required this.cursorOffset, - required this.isHighLighted, - required this.textAtOffSet, - required this.word}); + PTextTapModel({ + required this.cursorOffset, + required this.isHighLighted, + required this.textAtOffSet, + required this.word, + }); toJson() { return { 'cursorOffset': cursorOffset, 'word': word, 'isHighlighted': isHighLighted, - 'textAtOffSet': textAtOffSet + 'textAtOffSet': textAtOffSet, }; } } diff --git a/lib/pangea/models/pangea_token_model.dart b/lib/pangea/models/pangea_token_model.dart index 5f828fae3..217cdc55b 100644 --- a/lib/pangea/models/pangea_token_model.dart +++ b/lib/pangea/models/pangea_token_model.dart @@ -1,13 +1,9 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import '../constants/model_keys.dart'; import '../utils/error_handler.dart'; import 'lemma.dart'; @@ -76,15 +72,19 @@ class PangeaTokenText { String content; int length; - PangeaTokenText( - {required this.offset, required this.content, required this.length}); + PangeaTokenText({ + required this.offset, + required this.content, + required this.length, + }); factory PangeaTokenText.fromJson(Map json) { debugger(when: kDebugMode && json[_offsetKey] == null); return PangeaTokenText( - offset: json[_offsetKey], - content: json[_contentKey], - length: json[_lengthKey] ?? (json[_contentKey] as String).length); + offset: json[_offsetKey], + content: json[_contentKey], + length: json[_lengthKey] ?? (json[_contentKey] as String).length, + ); } static const String _offsetKey = "offset"; diff --git a/lib/pangea/models/pangea_tokens_event.dart b/lib/pangea/models/pangea_tokens_event.dart index bb747b8cc..244455766 100644 --- a/lib/pangea/models/pangea_tokens_event.dart +++ b/lib/pangea/models/pangea_tokens_event.dart @@ -1,7 +1,5 @@ -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/extensions/pangea_event_extension.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../constants/pangea_event_types.dart'; diff --git a/lib/pangea/models/removed_translation.dart b/lib/pangea/models/removed_translation.dart index 5605e44c6..6887476fe 100644 --- a/lib/pangea/models/removed_translation.dart +++ b/lib/pangea/models/removed_translation.dart @@ -1,4 +1,3 @@ -// Project imports: import 'it_response_model.dart'; class RemovedTranslation { diff --git a/lib/pangea/models/span_card_model.dart b/lib/pangea/models/span_card_model.dart index 17cd44156..8a252e67b 100644 --- a/lib/pangea/models/span_card_model.dart +++ b/lib/pangea/models/span_card_model.dart @@ -1,4 +1,3 @@ -// Project imports: import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/models/pangea_match_model.dart'; diff --git a/lib/pangea/models/span_data.dart b/lib/pangea/models/span_data.dart index 70af44d39..186e2834e 100644 --- a/lib/pangea/models/span_data.dart +++ b/lib/pangea/models/span_data.dart @@ -4,13 +4,10 @@ // SpanChoice of text in message from options // Call to server for additional/followup info -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart'; -// Project imports: import '../enum/span_choice_type.dart'; import '../enum/span_data_type.dart'; @@ -114,7 +111,8 @@ class SpanChoice { value: json['value'] as String, type: json['type'] != null ? SpanChoiceType.values.firstWhereOrNull( - (element) => element.name == json['type']) ?? + (element) => element.name == json['type'], + ) ?? SpanChoiceType.bestCorrection : SpanChoiceType.bestCorrection, feedback: json['feedback'], diff --git a/lib/pangea/models/student_analytics_event.dart b/lib/pangea/models/student_analytics_event.dart index cb6cefafa..738014bb8 100644 --- a/lib/pangea/models/student_analytics_event.dart +++ b/lib/pangea/models/student_analytics_event.dart @@ -1,13 +1,9 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/models/student_analytics_summary_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; @@ -116,7 +112,10 @@ class StudentAnalyticsEvent { } Future getTimeServiesInterval( - DateTime start, DateTime end, String? chatId) async { + DateTime start, + DateTime end, + String? chatId, + ) async { final TimeSeriesInterval interval = TimeSeriesInterval( start: start, end: end, diff --git a/lib/pangea/models/student_analytics_summary_model.dart b/lib/pangea/models/student_analytics_summary_model.dart index 9cc4a0a17..682768b28 100644 --- a/lib/pangea/models/student_analytics_summary_model.dart +++ b/lib/pangea/models/student_analytics_summary_model.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:convert'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Project imports: import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../enum/use_type.dart'; @@ -88,7 +85,7 @@ class StudentAnalyticsSummary { Map toJson() => { _messagesKey: jsonEncode(_messages.map((e) => e.toJson()).toList()), - _lastUpdatedKey: lastUpdated.toIso8601String() + _lastUpdatedKey: lastUpdated.toIso8601String(), }; factory StudentAnalyticsSummary.fromJson(json) { diff --git a/lib/pangea/models/system_choice_translation_model.dart b/lib/pangea/models/system_choice_translation_model.dart index e6dcf1794..6914044d3 100644 --- a/lib/pangea/models/system_choice_translation_model.dart +++ b/lib/pangea/models/system_choice_translation_model.dart @@ -1,4 +1,3 @@ -// Project imports: import '../constants/model_keys.dart'; class SystemChoiceRequestModel { diff --git a/lib/pangea/models/textChangeModel.dart b/lib/pangea/models/textChangeModel.dart index 333604fae..38a988df8 100644 --- a/lib/pangea/models/textChangeModel.dart +++ b/lib/pangea/models/textChangeModel.dart @@ -1,4 +1,3 @@ -// Project imports: import '../enum/direction.dart'; import '../enum/edit_type.dart'; diff --git a/lib/pangea/models/user_model.dart b/lib/pangea/models/user_model.dart index a7ffe5851..cd8fa3aac 100644 --- a/lib/pangea/models/user_model.dart +++ b/lib/pangea/models/user_model.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:convert'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:country_picker/country_picker.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/model_keys.dart'; import '../constants/language_keys.dart'; import 'language_model.dart'; @@ -70,9 +66,11 @@ class Profile { factory Profile.fromJson(Map json) { final l2 = LanguageModel.codeFromNameOrCode( - json[ModelKey.l2LanguageKey] ?? LanguageKeys.unknownLanguage); + json[ModelKey.l2LanguageKey] ?? LanguageKeys.unknownLanguage, + ); final l1 = LanguageModel.codeFromNameOrCode( - json[ModelKey.l1LanguageKey] ?? LanguageKeys.unknownLanguage); + json[ModelKey.l1LanguageKey] ?? LanguageKeys.unknownLanguage, + ); return Profile( // fullName: json[ModelKey.userFullName], diff --git a/lib/pangea/models/user_profile_search_model.dart b/lib/pangea/models/user_profile_search_model.dart index 4235bdaaa..de8822b04 100644 --- a/lib/pangea/models/user_profile_search_model.dart +++ b/lib/pangea/models/user_profile_search_model.dart @@ -1,8 +1,3 @@ -// Dart imports: -import 'dart:convert'; -import 'dart:developer'; - -// Project imports: import 'user_model.dart'; class UserProfileSearchResponse { diff --git a/lib/pangea/models/web_subscriptions.dart b/lib/pangea/models/web_subscriptions.dart index d8f001ea0..788465916 100644 --- a/lib/pangea/models/web_subscriptions.dart +++ b/lib/pangea/models/web_subscriptions.dart @@ -1,7 +1,5 @@ -// Package imports: import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:fluffychat/pangea/models/base_subscription_info.dart'; import 'package:fluffychat/pangea/repo/subscription_repo.dart'; diff --git a/lib/pangea/models/widget_measurement.dart b/lib/pangea/models/widget_measurement.dart index d9bf48bb9..7229c219a 100644 --- a/lib/pangea/models/widget_measurement.dart +++ b/lib/pangea/models/widget_measurement.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; class WidgetMeasurements { @@ -7,7 +6,10 @@ class WidgetMeasurements { static WidgetMeasurements defaultFromKey(String key) { if (_fromKey[key] == null) { _fromKey[key] = WidgetMeasurements( - position: const Offset(0, 0), size: const Size(0, 0), uid: key); + position: const Offset(0, 0), + size: const Size(0, 0), + uid: key, + ); } final WidgetMeasurements? weg = _fromKey[key]; @@ -17,8 +19,11 @@ class WidgetMeasurements { Offset? position; Size? size; String? uid; - WidgetMeasurements( - {required this.position, required this.size, required this.uid}); + WidgetMeasurements({ + required this.position, + required this.size, + required this.uid, + }); toJson() => {'position': position, 'size': size, 'uid': uid}; } diff --git a/lib/pangea/models/word_data_model.dart b/lib/pangea/models/word_data_model.dart index 07e04150f..838240725 100644 --- a/lib/pangea/models/word_data_model.dart +++ b/lib/pangea/models/word_data_model.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/widgets/igc/word_data_card.dart'; diff --git a/lib/pangea/network/p_api_exception.dart b/lib/pangea/network/p_api_exception.dart index 26562f53f..66c54dd51 100644 --- a/lib/pangea/network/p_api_exception.dart +++ b/lib/pangea/network/p_api_exception.dart @@ -1,10 +1,5 @@ -// Dart imports: -import 'dart:convert'; - -// Flutter imports: import 'package:flutter/foundation.dart'; -// Project imports: import '../utils/p_toast.dart'; class ApiException { @@ -23,7 +18,9 @@ class ApiException { debugPrint(statusCode.toString()); } PToastController.toastMsg( - msg: "Exception: Unauthorized access", success: false); + msg: "Exception: Unauthorized access", + success: false, + ); return; case 403: @@ -32,7 +29,9 @@ class ApiException { debugPrint(statusCode.toString()); } PToastController.toastMsg( - msg: "Exception: Don't have permissions!", success: false); + msg: "Exception: Don't have permissions!", + success: false, + ); return; case 500: if (kDebugMode) { @@ -40,7 +39,9 @@ class ApiException { debugPrint(statusCode.toString()); } PToastController.toastMsg( - msg: "Exception: Internal Server Error", success: false); + msg: "Exception: Internal Server Error", + success: false, + ); return; case 502: if (kDebugMode) { @@ -48,7 +49,9 @@ class ApiException { debugPrint(statusCode.toString()); } PToastController.toastMsg( - msg: "Exception: Bad Gateway", success: false); + msg: "Exception: Bad Gateway", + success: false, + ); return; case 503: @@ -57,7 +60,9 @@ class ApiException { debugPrint(statusCode.toString()); } PToastController.toastMsg( - msg: "Exception: Service Unavailable", success: false); + msg: "Exception: Service Unavailable", + success: false, + ); return; case 504: @@ -66,7 +71,9 @@ class ApiException { debugPrint(statusCode.toString()); } PToastController.toastMsg( - msg: "Exception: Gateway timeout error!", success: false); + msg: "Exception: Gateway timeout error!", + success: false, + ); return; default: @@ -75,7 +82,9 @@ class ApiException { debugPrint(statusCode.toString()); } PToastController.toastMsg( - msg: "Unknown exception accrued!", success: false); + msg: "Unknown exception accrued!", + success: false, + ); return; } } diff --git a/lib/pangea/network/requests.dart b/lib/pangea/network/requests.dart index e58c2e8fc..5cad3cf6c 100644 --- a/lib/pangea/network/requests.dart +++ b/lib/pangea/network/requests.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:convert'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:http/http.dart' as http; import 'package:sentry_flutter/sentry_flutter.dart'; @@ -14,14 +11,17 @@ class Requests { late String? matrixAccessToken; late String? choreoApiKey; //Question: How can we make baseUrl optional? - Requests( - {this.accessToken, - this.baseUrl = '', - this.matrixAccessToken, - this.choreoApiKey}); + Requests({ + this.accessToken, + this.baseUrl = '', + this.matrixAccessToken, + this.choreoApiKey, + }); - Future post( - {required String url, required Map body}) async { + Future post({ + required String url, + required Map body, + }) async { dynamic encoded; encoded = jsonEncode(body); @@ -37,8 +37,10 @@ class Requests { return response; } - Future put( - {required String url, required Map body}) async { + Future put({ + required String url, + required Map body, + }) async { dynamic encoded; encoded = jsonEncode(body); @@ -87,8 +89,11 @@ class Requests { return json; } - void handleError(http.Response response, - {Map? body, String? objectId}) { + void handleError( + http.Response response, { + Map? body, + String? objectId, + }) { //PTODO - handle 401 error - unauthorized call //kick them back to login? diff --git a/lib/pangea/network/urls.dart b/lib/pangea/network/urls.dart index 602dde257..0cd4c2e9c 100644 --- a/lib/pangea/network/urls.dart +++ b/lib/pangea/network/urls.dart @@ -1,6 +1,5 @@ //TODO move baseAPI addition to request function -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; /// autodocs diff --git a/lib/pangea/pages/analytics/analytics_list_tile.dart b/lib/pangea/pages/analytics/analytics_list_tile.dart index e1b8db63e..1120d31d5 100644 --- a/lib/pangea/pages/analytics/analytics_list_tile.dart +++ b/lib/pangea/pages/analytics/analytics_list_tile.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import '../../../../utils/date_time_extension.dart'; import '../../../widgets/avatar.dart'; @@ -17,7 +14,7 @@ import 'list_summary_analytics.dart'; class AnalyticsListTile extends StatelessWidget { const AnalyticsListTile({ - Key? key, + super.key, required this.model, required this.displayName, required this.avatar, @@ -26,7 +23,7 @@ class AnalyticsListTile extends StatelessWidget { required this.selected, required this.onTap, required this.allowNavigateOnSelect, - }) : super(key: key); + }); final Uri? avatar; final String displayName; diff --git a/lib/pangea/pages/analytics/bar_chart_card.dart b/lib/pangea/pages/analytics/bar_chart_card.dart index 4199d8ff7..a81f3e5c5 100644 --- a/lib/pangea/pages/analytics/bar_chart_card.dart +++ b/lib/pangea/pages/analytics/bar_chart_card.dart @@ -1,17 +1,15 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:fl_chart/fl_chart.dart'; class BarChartCard extends StatelessWidget { const BarChartCard({ - Key? key, + super.key, required this.barChartTitle, required this.barChart, required this.legend, required this.loadingData, - }) : super(key: key); + }); final String barChartTitle; final BarChart? barChart; diff --git a/lib/pangea/pages/analytics/bar_chart_placeholder_data.dart b/lib/pangea/pages/analytics/bar_chart_placeholder_data.dart index 46f710fed..113d34af1 100644 --- a/lib/pangea/pages/analytics/bar_chart_placeholder_data.dart +++ b/lib/pangea/pages/analytics/bar_chart_placeholder_data.dart @@ -1,15 +1,14 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:fl_chart/fl_chart.dart'; -// Project imports: import '../../enum/use_type.dart'; class BarChartPlaceHolderData { static BarChartRodData randomBarChartRodData( - BuildContext context, int index) { + BuildContext context, + int index, + ) { // final total = Random().nextInt(100); // final it = total != 0 ? Random().nextInt(max(total - index, 1)) : 0; // final igc = total != 0 ? Random().nextInt(max(total - it - index, 1)) : 0; @@ -57,7 +56,7 @@ class BarChartPlaceHolderData { 14, 15, 16, - 17 + 17, ]; final List barChartGroupData = []; @@ -78,7 +77,10 @@ class BarChartPlaceHolderData { } static List getData( - Color dark, Color normal, Color light) { + Color dark, + Color normal, + Color light, + ) { const double barSpace = 16; return [ diff --git a/lib/pangea/pages/analytics/base_analytics_page.dart b/lib/pangea/pages/analytics/base_analytics_page.dart index 3c4924199..f17c12e53 100644 --- a/lib/pangea/pages/analytics/base_analytics_page.dart +++ b/lib/pangea/pages/analytics/base_analytics_page.dart @@ -1,13 +1,9 @@ -// Dart imports: import 'dart:math'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import '../../../widgets/layouts/max_width_body.dart'; @@ -31,14 +27,14 @@ class BaseAnalyticsPage extends StatefulWidget { final AnalyticsSelected? alwaysSelected; const BaseAnalyticsPage({ - Key? key, + super.key, required this.pageTitle, required this.tabData1, required this.tabData2, required this.defaultAnalyticsSelected, required this.refreshData, required this.alwaysSelected, - }) : super(key: key); + }); @override State createState() => BaseAnalyticsController(); @@ -57,7 +53,9 @@ class BaseAnalyticsController extends State { bool isSelected(String chatOrStudentId) => chatOrStudentId == selected?.id; ChartAnalyticsModel? chartData( - BuildContext context, AnalyticsSelected? selectedParam) { + BuildContext context, + AnalyticsSelected? selectedParam, + ) { final AnalyticsSelected analyticsSelected = selectedParam ?? widget.defaultAnalyticsSelected; @@ -128,9 +126,9 @@ class BaseAnalyticsController extends State { class BaseAnalyticsView extends StatelessWidget { const BaseAnalyticsView({ - Key? key, + super.key, required this.controller, - }) : super(key: key); + }); final BaseAnalyticsController controller; @@ -165,9 +163,10 @@ class BaseAnalyticsView extends StatelessWidget { title: Text( controller.widget.pageTitle, style: TextStyle( - color: Theme.of(context).textTheme.bodyLarge!.color, - fontSize: 18, - fontWeight: FontWeight.w700), + color: Theme.of(context).textTheme.bodyLarge!.color, + fontSize: 18, + fontWeight: FontWeight.w700, + ), overflow: TextOverflow.clip, textAlign: TextAlign.center, ), @@ -234,39 +233,35 @@ class BaseAnalyticsView extends StatelessWidget { child: SingleChildScrollView( child: SizedBox( height: max( - controller.widget.tabData1.items.length + 1, - controller.widget.tabData2.items.length) * + controller.widget.tabData1.items.length + 1, + controller.widget.tabData2.items.length, + ) * 72, child: TabBarView( children: [ Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - ...controller.widget.tabData1.items - .map( - (item) => AnalyticsListTile( - avatar: item.avatar, - model: controller.chartData( - context, - AnalyticsSelected( - item.id, - controller.widget.tabData1.type, - "", - ), - ), - displayName: item.displayName, - id: item.id, - type: controller.widget.tabData1.type, - selected: - controller.isSelected(item.id), - onTap: controller.toggleSelection, - allowNavigateOnSelect: controller - .widget - .tabData1 - .allowNavigateOnSelect, + ...controller.widget.tabData1.items.map( + (item) => AnalyticsListTile( + avatar: item.avatar, + model: controller.chartData( + context, + AnalyticsSelected( + item.id, + controller.widget.tabData1.type, + "", ), - ) - .toList(), + ), + displayName: item.displayName, + id: item.id, + type: controller.widget.tabData1.type, + selected: controller.isSelected(item.id), + onTap: controller.toggleSelection, + allowNavigateOnSelect: controller.widget + .tabData1.allowNavigateOnSelect, + ), + ), if (controller.widget.defaultAnalyticsSelected .type == AnalyticsEntryType.space) @@ -286,8 +281,10 @@ class BaseAnalyticsView extends StatelessWidget { id: controller .widget.defaultAnalyticsSelected.id, type: AnalyticsEntryType.privateChats, - selected: controller.isSelected(controller - .widget.defaultAnalyticsSelected.id), + selected: controller.isSelected( + controller + .widget.defaultAnalyticsSelected.id, + ), onTap: controller.toggleSelection, allowNavigateOnSelect: false, ), @@ -318,7 +315,7 @@ class BaseAnalyticsView extends StatelessWidget { ), ) .toList(), - ) + ), ], ), ), @@ -327,7 +324,7 @@ class BaseAnalyticsView extends StatelessWidget { ], ), ), - ) + ), ], ), ), @@ -341,11 +338,12 @@ class TabData { List items; bool allowNavigateOnSelect; - TabData( - {required this.type, - required this.items, - required this.icon, - this.allowNavigateOnSelect = true}); + TabData({ + required this.type, + required this.items, + required this.icon, + this.allowNavigateOnSelect = true, + }); } class TabItem { diff --git a/lib/pangea/pages/analytics/chart_view_picker_button.dart b/lib/pangea/pages/analytics/chart_view_picker_button.dart index 64ec3c97c..125b107af 100644 --- a/lib/pangea/pages/analytics/chart_view_picker_button.dart +++ b/lib/pangea/pages/analytics/chart_view_picker_button.dart @@ -1,18 +1,17 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import '../../enum/bar_chart_view_enum.dart'; class ChartViewPickerButton extends StatelessWidget { final BarChartViewSelection selected; final void Function(BarChartViewSelection) onChange; - const ChartViewPickerButton( - {Key? key, required this.selected, required this.onChange}) - : super(key: key); + const ChartViewPickerButton({ + super.key, + required this.selected, + required this.onChange, + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/analytics/class_analytics/class_analytics.dart b/lib/pangea/pages/analytics/class_analytics/class_analytics.dart index 365542f0b..39acca938 100644 --- a/lib/pangea/pages/analytics/class_analytics/class_analytics.dart +++ b/lib/pangea/pages/analytics/class_analytics/class_analytics.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:async'; import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/pangea/models/chart_analytics_model.dart'; @@ -26,7 +22,7 @@ enum AnalyticsPageType { classList, student, classDetails } class ClassAnalyticsPage extends StatefulWidget { // final AnalyticsPageType type; - const ClassAnalyticsPage({Key? key}) : super(key: key); + const ClassAnalyticsPage({super.key}); @override State createState() => ClassAnalyticsV2Controller(); diff --git a/lib/pangea/pages/analytics/class_analytics/class_analytics_view.dart b/lib/pangea/pages/analytics/class_analytics/class_analytics_view.dart index e010044e0..06a46a5b2 100644 --- a/lib/pangea/pages/analytics/class_analytics/class_analytics_view.dart +++ b/lib/pangea/pages/analytics/class_analytics/class_analytics_view.dart @@ -1,17 +1,14 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import '../../../../utils/matrix_sdk_extensions/matrix_locals.dart'; import '../base_analytics_page.dart'; import 'class_analytics.dart'; class ClassAnalyticsView extends StatelessWidget { final ClassAnalyticsV2Controller controller; - const ClassAnalyticsView(this.controller, {Key? key}) : super(key: key); + const ClassAnalyticsView(this.controller, {super.key}); @override Widget build(BuildContext context) { @@ -36,11 +33,13 @@ class ClassAnalyticsView extends StatelessWidget { type: AnalyticsEntryType.student, icon: Icons.people_outline, items: controller.students - .map((s) => TabItem( - avatar: s.avatarUrl, - displayName: s.displayName ?? "unknown", - id: s.id, - )) + .map( + (s) => TabItem( + avatar: s.avatarUrl, + displayName: s.displayName ?? "unknown", + id: s.id, + ), + ) .toList(), ); diff --git a/lib/pangea/pages/analytics/class_list/class_list.dart b/lib/pangea/pages/analytics/class_list/class_list.dart index e2a0ee2af..6ce8b994d 100644 --- a/lib/pangea/pages/analytics/class_list/class_list.dart +++ b/lib/pangea/pages/analytics/class_list/class_list.dart @@ -1,13 +1,9 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/enum/time_span.dart'; import 'package:fluffychat/pangea/pages/analytics/class_list/class_list_view.dart'; import '../../../../widgets/matrix.dart'; @@ -18,7 +14,7 @@ import '../../../utils/sync_status_util_v2.dart'; import '../../../widgets/common/list_placeholder.dart'; class AnalyticsClassList extends StatefulWidget { - const AnalyticsClassList({Key? key}) : super(key: key); + const AnalyticsClassList({super.key}); @override State createState() => AnalyticsClassListController(); @@ -36,7 +32,8 @@ class AnalyticsClassListController extends State { Future.delayed(Duration.zero, () async { stateSub = pangeaController.matrixState.client.onRoomState.stream .where( - (event) => event.type == PangeaEventTypes.studentAnalyticsSummary) + (event) => event.type == PangeaEventTypes.studentAnalyticsSummary, + ) .listen(onStateUpdate); }); } diff --git a/lib/pangea/pages/analytics/class_list/class_list_view.dart b/lib/pangea/pages/analytics/class_list/class_list_view.dart index 3f166ded2..ff9ae7d94 100644 --- a/lib/pangea/pages/analytics/class_list/class_list_view.dart +++ b/lib/pangea/pages/analytics/class_list/class_list_view.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/extensions/client_extension.dart'; import 'package:fluffychat/pangea/pages/analytics/analytics_list_tile.dart'; import 'package:fluffychat/pangea/pages/analytics/time_span_menu_button.dart'; @@ -17,7 +14,7 @@ import 'class_list.dart'; class AnalyticsClassListView extends StatelessWidget { final AnalyticsClassListController controller; - const AnalyticsClassListView(this.controller, {Key? key}) : super(key: key); + const AnalyticsClassListView(this.controller, {super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/analytics/construct_cloud.dart b/lib/pangea/pages/analytics/construct_cloud.dart index 962901201..67bdb02c9 100644 --- a/lib/pangea/pages/analytics/construct_cloud.dart +++ b/lib/pangea/pages/analytics/construct_cloud.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/pages/analytics/base_analytics_page.dart'; import '../../word_cloud/word_cloud_data.dart'; import '../../word_cloud/word_cloud_shape.dart'; @@ -14,10 +12,10 @@ class ConstructCloud extends StatefulWidget { final AnalyticsSelected defaultSelected; const ConstructCloud({ - Key? key, + super.key, required this.selected, required this.defaultSelected, - }) : super(key: key); + }); @override State createState() => ConstructCloudState(); @@ -30,7 +28,7 @@ class ConstructCloudState extends State { {"word": "loading", 'value': 1}, {"word": "loading", 'value': 1}, {"word": "loading", 'value': 1}, - {"word": "loading", 'value': 1} + {"word": "loading", 'value': 1}, ]; @override @@ -79,7 +77,7 @@ class ConstructCloudState extends State { colorlist: const [ Colors.black, Colors.redAccent, - Colors.indigoAccent + Colors.indigoAccent, ], ), const SizedBox( @@ -95,7 +93,7 @@ class ConstructCloudState extends State { colorlist: const [ Colors.black, Colors.redAccent, - Colors.indigoAccent + Colors.indigoAccent, ], ), ], diff --git a/lib/pangea/pages/analytics/construct_list.dart b/lib/pangea/pages/analytics/construct_list.dart index b4862d89d..2128c827f 100644 --- a/lib/pangea/pages/analytics/construct_list.dart +++ b/lib/pangea/pages/analytics/construct_list.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/match_rule_ids.dart'; import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:fluffychat/pangea/pages/analytics/base_analytics_page.dart'; @@ -24,12 +20,12 @@ class ConstructList extends StatefulWidget { final String title; const ConstructList({ - Key? key, + super.key, required this.selected, required this.defaultSelected, required this.constructType, required this.title, - }) : super(key: key); + }); @override State createState() => ConstructListState(); @@ -151,10 +147,10 @@ class ConstructListView extends StatelessWidget { final bool init; const ConstructListView({ - Key? key, + super.key, required this.constructs, required this.init, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/analytics/list_summary_analytics.dart b/lib/pangea/pages/analytics/list_summary_analytics.dart index a35ae4449..5b2dde5de 100644 --- a/lib/pangea/pages/analytics/list_summary_analytics.dart +++ b/lib/pangea/pages/analytics/list_summary_analytics.dart @@ -1,20 +1,16 @@ -// Dart imports: import 'dart:math'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/models/chart_analytics_model.dart'; import '../../enum/use_type.dart'; class ListSummaryAnalytics extends StatelessWidget { final ChartAnalyticsModel? chartAnalytics; - const ListSummaryAnalytics({Key? key, this.chartAnalytics}) : super(key: key); + const ListSummaryAnalytics({super.key, this.chartAnalytics}); TimeSeriesTotals? get totals => chartAnalytics?.totals; @@ -60,14 +56,15 @@ class ListSummaryAnalytics extends StatelessWidget { text: TextSpan( children: [ spacerIconText( - L10n.of(context) != null - ? L10n.of(context)!.totalMessages - : "Total messages sent", - "", - Icons.chat_bubble, - totals!.all, - Theme.of(context).textTheme.bodyLarge!.color, - false), + L10n.of(context) != null + ? L10n.of(context)!.totalMessages + : "Total messages sent", + "", + Icons.chat_bubble, + totals!.all, + Theme.of(context).textTheme.bodyLarge!.color, + false, + ), if (totals!.all != 0) ...[ spacerIconText( l10n != null ? l10n.taTooltip : "With translation assistance", @@ -97,7 +94,7 @@ class ListSummaryAnalytics extends StatelessWidget { totals!.unPercent, UseType.un.color(context), ), - ] + ], ], ), ); diff --git a/lib/pangea/pages/analytics/messages_bar_chart.dart b/lib/pangea/pages/analytics/messages_bar_chart.dart index 52ebc979f..5f80577db 100644 --- a/lib/pangea/pages/analytics/messages_bar_chart.dart +++ b/lib/pangea/pages/analytics/messages_bar_chart.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; - -// Package imports: import 'package:fl_chart/fl_chart.dart'; -import 'package:intl/intl.dart'; - -// Project imports: +import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/pages/analytics/bar_chart_placeholder_data.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + import '../../enum/time_span.dart'; import '../../enum/use_type.dart'; import '../../models/chart_analytics_model.dart'; @@ -22,9 +18,11 @@ class MessagesBarChart extends StatefulWidget { final ChartAnalyticsModel? chartAnalytics; final String barChartTitle; - const MessagesBarChart( - {Key? key, required this.chartAnalytics, required this.barChartTitle}) - : super(key: key); + const MessagesBarChart({ + super.key, + required this.chartAnalytics, + required this.barChartTitle, + }); @override State createState() => MessagesBarChartState(); @@ -104,39 +102,73 @@ class MessagesBarChartState extends State { ); } + bool showLabelBasedOnTimeSpan( + TimeSpan timeSpan, + TimeSeriesInterval current, + TimeSeriesInterval? last, + int labelIndex, + ) { + switch (timeSpan) { + case TimeSpan.day: + return current.end.hour % 3 == 0; + case TimeSpan.month: + if (current.end.month != last?.end.month) { + return true; + } + double width = MediaQuery.of(context).size.width; + if (FluffyThemes.isColumnMode(context)) { + width = width - FluffyThemes.navRailWidth - FluffyThemes.columnWidth; + } + const int numDays = 28; + const int minSpacePerDay = 20; + final int availableSpaces = width ~/ minSpacePerDay; + final int showAtInterval = (numDays / availableSpaces).floor() + 1; + + final int lastDayOfCurrentMonth = + DateTime(current.end.year, current.end.month + 1, 0).day; + final bool isNextToMonth = labelIndex == 1 || + current.end.day == 2 || + current.end.day == lastDayOfCurrentMonth; + final bool shouldShowNextToMonth = showAtInterval <= 1; + return (current.end.day % showAtInterval == 0) && + (!isNextToMonth || shouldShowNextToMonth); + case TimeSpan.week: + case TimeSpan.sixmonths: + case TimeSpan.year: + default: + return true; + } + } + String getLabelBasedOnTimeSpan( TimeSpan timeSpan, TimeSeriesInterval current, TimeSeriesInterval? last, int labelIndex, ) { - if (widget.chartAnalytics == null) { + final bool showLabel = showLabelBasedOnTimeSpan( + timeSpan, + current, + last, + labelIndex, + ); + + if (widget.chartAnalytics == null || !showLabel) { return ""; } if (isInSameGroup(last, current, timeSpan)) { return "-"; } + switch (widget.chartAnalytics?.timeSpan ?? TimeSpan.month) { case TimeSpan.day: - return current.end.hour % 3 == 0 - ? DateFormat(DateFormat.HOUR).format(current.end) - : ""; - // return current.end.hour.toString(); + return DateFormat(DateFormat.HOUR).format(current.end); case TimeSpan.week: return DateFormat(DateFormat.ABBR_WEEKDAY).format(current.end); case TimeSpan.month: - // return current.end.month != last?.end.month - // ? DateFormat(DateFormat.ABBR_MONTH_DAY).format(current.end) - // : current.end.day % 5 == 0 && - // labelIndex != 1 && - // current.end.day != 30 - // ? DateFormat(DateFormat.DAY).format(current.end) - // : "'"; return current.end.month != last?.end.month ? DateFormat(DateFormat.ABBR_MONTH).format(current.end) : DateFormat(DateFormat.DAY).format(current.end); - // return current.end.day.toString(); - // text = DateFormat('DAY').format(timeSeriesIntervalStart); case TimeSpan.sixmonths: case TimeSpan.year: return DateFormat(DateFormat.ABBR_STANDALONE_MONTH).format(current.end); @@ -186,7 +218,10 @@ class MessagesBarChartState extends State { } bool isInSameGroup( - TimeSeriesInterval? t1, TimeSeriesInterval t2, TimeSpan timeSpan) { + TimeSeriesInterval? t1, + TimeSeriesInterval t2, + TimeSpan timeSpan, + ) { final DateTime? date1 = t1?.end; final DateTime date2 = t2.end; if (timeSpan == TimeSpan.sixmonths || timeSpan == TimeSpan.year) { @@ -235,12 +270,14 @@ class MessagesBarChartState extends State { final List chartData = []; intervalGroupings.asMap().forEach((index, intervalGroup) { - chartData.add(BarChartGroupData( - x: index, - barsSpace: barSpace, - // barRods: intervalGroup.map(constructBarChartRodData).toList(), - barRods: constructBarChartRodData(intervalGroup), - )); + chartData.add( + BarChartGroupData( + x: index, + barsSpace: barSpace, + // barRods: intervalGroup.map(constructBarChartRodData).toList(), + barRods: constructBarChartRodData(intervalGroup), + ), + ); }); return chartData; } @@ -263,7 +300,8 @@ class MessagesBarChartState extends State { // } List constructBarChartRodData( - List timeSeriesIntervalGroup) { + List timeSeriesIntervalGroup, + ) { int y1 = 0; int y2 = 0; int y3 = 0; @@ -281,14 +319,23 @@ class MessagesBarChartState extends State { rodStackItems: [ BarChartRodStackItem(0, y1.toDouble(), UseType.ta.color(context)), BarChartRodStackItem( - y1.toDouble(), y2.toDouble(), UseType.ga.color(context)), + y1.toDouble(), + y2.toDouble(), + UseType.ga.color(context), + ), BarChartRodStackItem( - y2.toDouble(), y3.toDouble(), UseType.wa.color(context)), + y2.toDouble(), + y3.toDouble(), + UseType.wa.color(context), + ), BarChartRodStackItem( - y3.toDouble(), y4.toDouble(), UseType.un.color(context)), + y3.toDouble(), + y4.toDouble(), + UseType.un.color(context), + ), ], borderRadius: BorderRadius.zero, - ) + ), ]; } diff --git a/lib/pangea/pages/analytics/messages_legend_widget.dart b/lib/pangea/pages/analytics/messages_legend_widget.dart index 130490430..ce1337519 100644 --- a/lib/pangea/pages/analytics/messages_legend_widget.dart +++ b/lib/pangea/pages/analytics/messages_legend_widget.dart @@ -1,13 +1,11 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/enum/use_type.dart'; class MessagesLegendsListWidget extends StatelessWidget { const MessagesLegendsListWidget({ - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) { @@ -28,7 +26,7 @@ class MessagesLegendsListWidget extends StatelessWidget { ), ), const SizedBox(width: 4), - e.iconView(context, e.color(context), 20) + e.iconView(context, e.color(context), 20), ], ), ) diff --git a/lib/pangea/pages/analytics/student_analytics/student_analytics.dart b/lib/pangea/pages/analytics/student_analytics/student_analytics.dart index f3de8e2b5..55252bf8e 100644 --- a/lib/pangea/pages/analytics/student_analytics/student_analytics.dart +++ b/lib/pangea/pages/analytics/student_analytics/student_analytics.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/pangea/models/chart_analytics_model.dart'; import 'package:fluffychat/pangea/widgets/common/list_placeholder.dart'; @@ -20,7 +16,7 @@ import '../base_analytics_page.dart'; import 'student_analytics_view.dart'; class StudentAnalyticsPage extends StatefulWidget { - const StudentAnalyticsPage({Key? key}) : super(key: key); + const StudentAnalyticsPage({super.key}); @override State createState() => StudentAnalyticsController(); @@ -35,7 +31,8 @@ class StudentAnalyticsController extends State { void initState() { _pangeaController.matrixState.client .updateMyLearningAnalyticsForAllClassesImIn( - _pangeaController.pStoreService); + _pangeaController.pStoreService, + ); super.initState(); } diff --git a/lib/pangea/pages/analytics/student_analytics/student_analytics_view.dart b/lib/pangea/pages/analytics/student_analytics/student_analytics_view.dart index 1f065b6b5..3cbe86194 100644 --- a/lib/pangea/pages/analytics/student_analytics/student_analytics_view.dart +++ b/lib/pangea/pages/analytics/student_analytics/student_analytics_view.dart @@ -1,18 +1,15 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import '../../../../utils/matrix_sdk_extensions/matrix_locals.dart'; import '../base_analytics_page.dart'; import 'student_analytics.dart'; class StudentAnalyticsView extends StatelessWidget { final StudentAnalyticsController controller; - const StudentAnalyticsView(this.controller, {Key? key}) : super(key: key); + const StudentAnalyticsView(this.controller, {super.key}); @override Widget build(BuildContext context) { @@ -24,27 +21,32 @@ class StudentAnalyticsView extends StatelessWidget { type: AnalyticsEntryType.room, icon: Icons.chat_bubble_outline, items: chats - .map((c) => TabItem( - avatar: c.avatar, - displayName: - c.getLocalizedDisplayname(MatrixLocals(L10n.of(context)!)), - id: c.id, - )) + .map( + (c) => TabItem( + avatar: c.avatar, + displayName: + c.getLocalizedDisplayname(MatrixLocals(L10n.of(context)!)), + id: c.id, + ), + ) .toList(), allowNavigateOnSelect: false, ); final TabData classTabData = TabData( - type: AnalyticsEntryType.space, - icon: Icons.workspaces, - items: spaces - .map((c) => TabItem( - avatar: c.avatar, - displayName: c - .getLocalizedDisplayname(MatrixLocals(L10n.of(context)!)), - id: c.id, - )) - .toList(), - allowNavigateOnSelect: false); + type: AnalyticsEntryType.space, + icon: Icons.workspaces, + items: spaces + .map( + (c) => TabItem( + avatar: c.avatar, + displayName: + c.getLocalizedDisplayname(MatrixLocals(L10n.of(context)!)), + id: c.id, + ), + ) + .toList(), + allowNavigateOnSelect: false, + ); return controller.userId != null ? BaseAnalyticsPage( @@ -52,14 +54,16 @@ class StudentAnalyticsView extends StatelessWidget { tabData1: chatTabData, tabData2: classTabData, defaultAnalyticsSelected: AnalyticsSelected( - controller.userId!, - AnalyticsEntryType.student, - L10n.of(context)!.allChatsAndClasses), + controller.userId!, + AnalyticsEntryType.student, + L10n.of(context)!.allChatsAndClasses, + ), refreshData: controller.getClassAndChatAnalytics, alwaysSelected: AnalyticsSelected( - controller.userId!, - AnalyticsEntryType.student, - L10n.of(context)!.allChatsAndClasses), + controller.userId!, + AnalyticsEntryType.student, + L10n.of(context)!.allChatsAndClasses, + ), ) : const SizedBox(); } diff --git a/lib/pangea/pages/analytics/time_span_menu_button.dart b/lib/pangea/pages/analytics/time_span_menu_button.dart index 1f363cfad..df885d6cd 100644 --- a/lib/pangea/pages/analytics/time_span_menu_button.dart +++ b/lib/pangea/pages/analytics/time_span_menu_button.dart @@ -1,18 +1,17 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import '../../enum/time_span.dart'; class TimeSpanMenuButton extends StatelessWidget { final TimeSpan value; final void Function(TimeSpan) onChange; - const TimeSpanMenuButton( - {Key? key, required this.value, required this.onChange}) - : super(key: key); + const TimeSpanMenuButton({ + super.key, + required this.value, + required this.onChange, + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/analytics/vocab_bar_chart.dart b/lib/pangea/pages/analytics/vocab_bar_chart.dart index 1c5f83079..34dc16a69 100644 --- a/lib/pangea/pages/analytics/vocab_bar_chart.dart +++ b/lib/pangea/pages/analytics/vocab_bar_chart.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:fl_chart/fl_chart.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/headwords.dart'; import 'package:fluffychat/pangea/pages/analytics/base_analytics_page.dart'; @@ -17,10 +14,10 @@ class VocabBarChart extends StatefulWidget { final AnalyticsSelected defaultSelected; const VocabBarChart({ - Key? key, + super.key, required this.selected, required this.defaultSelected, - }) : super(key: key); + }); @override State createState() => VocabBarChartState(); @@ -143,12 +140,14 @@ class VocabBarChartState extends State { final List chartData = []; vocabHeadwords.lists.asMap().forEach((index, intervalGroup) { - chartData.add(BarChartGroupData( - x: index, - barsSpace: barSpace, - // barRods: intervalGroup.map(constructBarChartRodData).toList(), - barRods: constructBarChartRodData(intervalGroup), - )); + chartData.add( + BarChartGroupData( + x: index, + barsSpace: barSpace, + // barRods: intervalGroup.map(constructBarChartRodData).toList(), + barRods: constructBarChartRodData(intervalGroup), + ), + ); }); return chartData; } @@ -169,7 +168,7 @@ class VocabBarChartState extends State { BarChartRodStackItem(y2.toDouble(), y3.toDouble(), Colors.green), ], borderRadius: BorderRadius.zero, - ) + ), ]; } } diff --git a/lib/pangea/pages/analytics/vocab_legend_widget.dart b/lib/pangea/pages/analytics/vocab_legend_widget.dart index f35c45998..da6413c3e 100644 --- a/lib/pangea/pages/analytics/vocab_legend_widget.dart +++ b/lib/pangea/pages/analytics/vocab_legend_widget.dart @@ -1,13 +1,11 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/enum/use_type.dart'; class VocabLegendsListWidget extends StatelessWidget { const VocabLegendsListWidget({ - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) { @@ -28,7 +26,7 @@ class VocabLegendsListWidget extends StatelessWidget { ), ), const SizedBox(width: 4), - e.iconView(context, e.color(context), 20) + e.iconView(context, e.color(context), 20), ], ), ) diff --git a/lib/pangea/pages/class_analytics/measure_able.dart b/lib/pangea/pages/class_analytics/measure_able.dart index 3d5e4a732..444997995 100644 --- a/lib/pangea/pages/class_analytics/measure_able.dart +++ b/lib/pangea/pages/class_analytics/measure_able.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; @@ -8,8 +7,7 @@ class MeasurableWidget extends StatefulWidget { Function? triggerMeasure; final Function(Size? size, Offset? position) onChange; - MeasurableWidget({Key? key, required this.onChange, required this.child}) - : super(key: key); + MeasurableWidget({super.key, required this.onChange, required this.child}); @override _WidgetSizeState createState() => _WidgetSizeState(); diff --git a/lib/pangea/pages/class_invitation_selection/class_invitation_selection.dart b/lib/pangea/pages/class_invitation_selection/class_invitation_selection.dart index 66f6e84cd..fad4e6b53 100644 --- a/lib/pangea/pages/class_invitation_selection/class_invitation_selection.dart +++ b/lib/pangea/pages/class_invitation_selection/class_invitation_selection.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; @@ -12,11 +9,10 @@ import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/widgets/matrix.dart'; class ClassInvitationSelection extends StatefulWidget { - const ClassInvitationSelection({Key? key}) : super(key: key); + const ClassInvitationSelection({super.key}); @override ClassInvitationSelectionController createState() => diff --git a/lib/pangea/pages/class_settings/class_name_header.dart b/lib/pangea/pages/class_settings/class_name_header.dart index adc9d8163..39adaa126 100644 --- a/lib/pangea/pages/class_settings/class_name_header.dart +++ b/lib/pangea/pages/class_settings/class_name_header.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/visibility.dart' as visible; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat_details/chat_details.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; @@ -13,10 +10,10 @@ class ClassNameHeader extends StatelessWidget { final Room room; final ChatDetailsController controller; const ClassNameHeader({ - Key? key, + super.key, required this.room, required this.controller, - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -34,10 +31,12 @@ class ClassNameHeader extends StatelessWidget { color: Theme.of(context).colorScheme.onBackground, ), ), - icon: room.nameAndRoomTypeIcon(TextStyle( - fontSize: 20, - color: Theme.of(context).textTheme.bodyLarge!.color, - )), + icon: room.nameAndRoomTypeIcon( + TextStyle( + fontSize: 20, + color: Theme.of(context).textTheme.bodyLarge!.color, + ), + ), // icon: Text( // room.getLocalizedDisplayname( // MatrixLocals(L10n.of(context)!), diff --git a/lib/pangea/pages/class_settings/class_settings_page.dart b/lib/pangea/pages/class_settings/class_settings_page.dart index 5f4477534..d0c2d385d 100644 --- a/lib/pangea/pages/class_settings/class_settings_page.dart +++ b/lib/pangea/pages/class_settings/class_settings_page.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:async'; import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/widgets/layouts/empty_page.dart'; import '../../../widgets/matrix.dart'; @@ -22,7 +18,7 @@ import 'class_settings_view.dart'; import 'p_class_widgets/room_rules_editor.dart'; class ClassSettingsPage extends StatefulWidget { - const ClassSettingsPage({Key? key}) : super(key: key); + const ClassSettingsPage({super.key}); @override State createState() => ClassSettingsController(); diff --git a/lib/pangea/pages/class_settings/class_settings_view.dart b/lib/pangea/pages/class_settings/class_settings_view.dart index df5254fa2..f6fa434e9 100644 --- a/lib/pangea/pages/class_settings/class_settings_view.dart +++ b/lib/pangea/pages/class_settings/class_settings_view.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; -// Project imports: import 'package:fluffychat/pangea/pages/class_settings/class_settings_page.dart'; import 'package:fluffychat/pangea/pages/class_settings/p_class_widgets/room_rules_editor.dart'; import 'package:fluffychat/pangea/widgets/space/class_settings.dart'; @@ -14,8 +11,7 @@ import '../../../widgets/layouts/max_width_body.dart'; class ClassSettingsPageView extends StatelessWidget { final ClassSettingsController controller; - const ClassSettingsPageView({Key? key, required this.controller}) - : super(key: key); + const ClassSettingsPageView({super.key, required this.controller}); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/class_settings/p_class_widgets/class_analytics_button.dart b/lib/pangea/pages/class_settings/p_class_widgets/class_analytics_button.dart index 0bc4c288f..1ac293494 100644 --- a/lib/pangea/pages/class_settings/p_class_widgets/class_analytics_button.dart +++ b/lib/pangea/pages/class_settings/p_class_widgets/class_analytics_button.dart @@ -1,12 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; class ClassAnalyticsButton extends StatelessWidget { - const ClassAnalyticsButton({Key? key}) : super(key: key); + const ClassAnalyticsButton({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/class_settings/p_class_widgets/class_description_button.dart b/lib/pangea/pages/class_settings/p_class_widgets/class_description_button.dart index 05df04a89..0d6779e82 100644 --- a/lib/pangea/pages/class_settings/p_class_widgets/class_description_button.dart +++ b/lib/pangea/pages/class_settings/p_class_widgets/class_description_button.dart @@ -1,21 +1,18 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat_details/chat_details.dart'; class ClassDescriptionButton extends StatelessWidget { final Room room; final ChatDetailsController controller; const ClassDescriptionButton({ - Key? key, + super.key, required this.room, required this.controller, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/class_settings/p_class_widgets/class_details_toggle_add_students_tile.dart b/lib/pangea/pages/class_settings/p_class_widgets/class_details_toggle_add_students_tile.dart index 156e53383..051824659 100644 --- a/lib/pangea/pages/class_settings/p_class_widgets/class_details_toggle_add_students_tile.dart +++ b/lib/pangea/pages/class_settings/p_class_widgets/class_details_toggle_add_students_tile.dart @@ -1,17 +1,14 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import '../../../../pages/chat_details/chat_details.dart'; class SpaceDetailsToggleAddStudentsTile extends StatelessWidget { const SpaceDetailsToggleAddStudentsTile({ - Key? key, + super.key, required this.controller, - }) : super(key: key); + }); final ChatDetailsController controller; @@ -32,9 +29,11 @@ class SpaceDetailsToggleAddStudentsTile extends StatelessWidget { Icons.add, ), ), - trailing: Icon(controller.displayAddStudentOptions - ? Icons.keyboard_arrow_down_outlined - : Icons.keyboard_arrow_right_outlined), + trailing: Icon( + controller.displayAddStudentOptions + ? Icons.keyboard_arrow_down_outlined + : Icons.keyboard_arrow_right_outlined, + ), onTap: controller.toggleAddStudentOptions, ); } diff --git a/lib/pangea/pages/class_settings/p_class_widgets/class_invitation_buttons.dart b/lib/pangea/pages/class_settings/p_class_widgets/class_invitation_buttons.dart index e9e907d10..8c1cb0a6c 100644 --- a/lib/pangea/pages/class_settings/p_class_widgets/class_invitation_buttons.dart +++ b/lib/pangea/pages/class_settings/p_class_widgets/class_invitation_buttons.dart @@ -1,15 +1,12 @@ -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; import 'package:universal_html/html.dart' as html; -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/constants/url_query_parameter_keys.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; @@ -19,8 +16,7 @@ import '../../../../widgets/avatar.dart'; class ClassInvitationButtons extends StatelessWidget { final String roomId; - const ClassInvitationButtons({Key? key, required this.roomId}) - : super(key: key); + const ClassInvitationButtons({super.key, required this.roomId}); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/class_settings/p_class_widgets/class_name_button.dart b/lib/pangea/pages/class_settings/p_class_widgets/class_name_button.dart index c8879b0c5..7d4229e90 100644 --- a/lib/pangea/pages/class_settings/p_class_widgets/class_name_button.dart +++ b/lib/pangea/pages/class_settings/p_class_widgets/class_name_button.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat_details/chat_details.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; @@ -13,10 +10,10 @@ class ClassNameButton extends StatelessWidget { final Room room; final ChatDetailsController controller; const ClassNameButton({ - Key? key, + super.key, required this.room, required this.controller, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/class_settings/p_class_widgets/class_settings_button.dart b/lib/pangea/pages/class_settings/p_class_widgets/class_settings_button.dart index 291e21aa4..3915d0ca0 100644 --- a/lib/pangea/pages/class_settings/p_class_widgets/class_settings_button.dart +++ b/lib/pangea/pages/class_settings/p_class_widgets/class_settings_button.dart @@ -1,12 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; class ClassSettingsButton extends StatelessWidget { - const ClassSettingsButton({Key? key}) : super(key: key); + const ClassSettingsButton({super.key}); // final PangeaController _pangeaController = MatrixState.pangeaController; diff --git a/lib/pangea/pages/class_settings/p_class_widgets/class_show_edit_dialog.dart b/lib/pangea/pages/class_settings/p_class_widgets/class_show_edit_dialog.dart index c6f65b54b..d18d09c39 100644 --- a/lib/pangea/pages/class_settings/p_class_widgets/class_show_edit_dialog.dart +++ b/lib/pangea/pages/class_settings/p_class_widgets/class_show_edit_dialog.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; @@ -20,7 +18,7 @@ void showEditFieldDialog(BuildContext context, String title) async { // initialText: room.topic, minLines: 1, maxLines: 4, - ) + ), ], ); if (input == null) return; @@ -30,7 +28,10 @@ void showEditFieldDialog(BuildContext context, String title) async { future: () async => null, ); if (success.error == null) { - ScaffoldMessenger.of(context).showSnackBar(SnackBar( - content: Text(L10n.of(context)!.groupDescriptionHasBeenChanged))); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(L10n.of(context)!.groupDescriptionHasBeenChanged), + ), + ); } } diff --git a/lib/pangea/pages/class_settings/p_class_widgets/delete_class_tile.dart b/lib/pangea/pages/class_settings/p_class_widgets/delete_class_tile.dart index c1e8c9771..7e3fc3af6 100644 --- a/lib/pangea/pages/class_settings/p_class_widgets/delete_class_tile.dart +++ b/lib/pangea/pages/class_settings/p_class_widgets/delete_class_tile.dart @@ -1,13 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/utils/delete_room.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/pangea/pages/class_settings/p_class_widgets/room_rules_editor.dart b/lib/pangea/pages/class_settings/p_class_widgets/room_rules_editor.dart index 0f5555fe9..c9e157e12 100644 --- a/lib/pangea/pages/class_settings/p_class_widgets/room_rules_editor.dart +++ b/lib/pangea/pages/class_settings/p_class_widgets/room_rules_editor.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/models/class_model.dart'; import '../../../../config/app_config.dart'; import '../../../../widgets/matrix.dart'; @@ -18,9 +15,12 @@ class RoomRulesEditor extends StatefulWidget { final bool startOpen; final bool showAdd; - const RoomRulesEditor( - {Key? key, this.roomId, this.startOpen = true, this.showAdd = false}) - : super(key: key); + const RoomRulesEditor({ + super.key, + this.roomId, + this.startOpen = true, + this.showAdd = false, + }); @override RoomRulesState createState() => RoomRulesState(); @@ -161,14 +161,18 @@ class RoomRulesState extends State { onChanged: (value) { updatePermission(() { rules.setLanguageToolSetting( - setting, value.toInt()); + setting, + value.toInt(), + ); }); }, divisions: 2, max: 2, min: 0, label: rules.languageToolPermissionsText( - context, setting), + context, + setting, + ), ), ), ], diff --git a/lib/pangea/pages/connect/p_sso_button.dart b/lib/pangea/pages/connect/p_sso_button.dart index 42226bb85..835d0454e 100644 --- a/lib/pangea/pages/connect/p_sso_button.dart +++ b/lib/pangea/pages/connect/p_sso_button.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_svg/svg.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/homeserver_picker/homeserver_picker.dart'; import 'package:fluffychat/widgets/matrix.dart'; @@ -22,10 +19,10 @@ class PangeaSsoButton extends StatelessWidget { final IdentityProvider identityProvider; final void Function()? onPressed; const PangeaSsoButton({ - Key? key, + super.key, required this.identityProvider, this.onPressed, - }) : super(key: key); + }); ButtonInfo getButtonInfo(BuildContext context) { switch (identityProvider.id) { diff --git a/lib/pangea/pages/exchange/add_exchange_to_class.dart b/lib/pangea/pages/exchange/add_exchange_to_class.dart index 477ac303b..eb5e7d59a 100644 --- a/lib/pangea/pages/exchange/add_exchange_to_class.dart +++ b/lib/pangea/pages/exchange/add_exchange_to_class.dart @@ -1,17 +1,14 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; -// Project imports: import 'package:fluffychat/pangea/widgets/class/add_class_and_invite.dart'; import 'package:fluffychat/pangea/widgets/class/add_space_toggles.dart'; import 'package:fluffychat/widgets/matrix.dart'; class AddExchangeToClass extends StatefulWidget { - const AddExchangeToClass({Key? key}) : super(key: key); + const AddExchangeToClass({super.key}); @override AddExchangeToClassState createState() => AddExchangeToClassState(); diff --git a/lib/pangea/pages/find_partner/find_partner.dart b/lib/pangea/pages/find_partner/find_partner.dart index bd37c899a..18fc71307 100644 --- a/lib/pangea/pages/find_partner/find_partner.dart +++ b/lib/pangea/pages/find_partner/find_partner.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:fluffychat/pangea/models/user_model.dart'; import '../../../widgets/matrix.dart'; @@ -14,7 +11,7 @@ import '../../repo/user_repo.dart'; import 'find_partner_view.dart'; class FindPartner extends StatefulWidget { - const FindPartner({Key? key}) : super(key: key); + const FindPartner({super.key}); @override State createState() => FindPartnerController(); diff --git a/lib/pangea/pages/find_partner/find_partner_view.dart b/lib/pangea/pages/find_partner/find_partner_view.dart index b96a6b917..bbb163a69 100644 --- a/lib/pangea/pages/find_partner/find_partner_view.dart +++ b/lib/pangea/pages/find_partner/find_partner_view.dart @@ -1,13 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:country_picker/country_picker.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart' as matrix; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/models/user_model.dart'; import 'package:fluffychat/pangea/widgets/common/list_placeholder.dart'; @@ -20,7 +17,7 @@ import 'find_partner.dart'; class FindPartnerView extends StatelessWidget { final FindPartnerController controller; - const FindPartnerView(this.controller, {Key? key}) : super(key: key); + const FindPartnerView(this.controller, {super.key}); @override Widget build(BuildContext context) { @@ -127,9 +124,9 @@ class FindPartnerView extends StatelessWidget { class ExpandedContainer extends StatelessWidget { const ExpandedContainer({ - Key? key, + super.key, required this.body, - }) : super(key: key); + }); final Widget body; @@ -146,9 +143,9 @@ class ExpandedContainer extends StatelessWidget { class ProfileSearchTextField extends StatelessWidget { const ProfileSearchTextField({ - Key? key, + super.key, required this.controller, - }) : super(key: key); + }); final FindPartnerController controller; @@ -175,8 +172,8 @@ class ProfileSearchTextField extends StatelessWidget { class PageTitleText extends StatelessWidget { const PageTitleText({ - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) { @@ -197,10 +194,10 @@ class PageTitleText extends StatelessWidget { class LanguageSelectionRow extends StatelessWidget { const LanguageSelectionRow({ - Key? key, + super.key, required this.controller, required this.isSource, - }) : super(key: key); + }); final FindPartnerController controller; final bool isSource; @@ -248,10 +245,10 @@ class UserProfileEntry extends StatelessWidget { final FindPartnerController controller; const UserProfileEntry({ - Key? key, + super.key, required this.pangeaProfile, required this.controller, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/new_class/new_class.dart b/lib/pangea/pages/new_class/new_class.dart index 30d5ae0de..55b7d083d 100644 --- a/lib/pangea/pages/new_class/new_class.dart +++ b/lib/pangea/pages/new_class/new_class.dart @@ -1,18 +1,14 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart' as sdk; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/pages/new_class/new_class_view.dart'; import 'package:fluffychat/pangea/utils/class_code.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; @@ -22,7 +18,7 @@ import '../../widgets/space/class_settings.dart'; import '../class_settings/p_class_widgets/room_rules_editor.dart'; class NewClass extends StatefulWidget { - const NewClass({Key? key}) : super(key: key); + const NewClass({super.key}); @override NewClassController createState() => NewClassController(); diff --git a/lib/pangea/pages/new_class/new_class_view.dart b/lib/pangea/pages/new_class/new_class_view.dart index e40cc08ce..13796e2d8 100644 --- a/lib/pangea/pages/new_class/new_class_view.dart +++ b/lib/pangea/pages/new_class/new_class_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/pages/new_class/new_class.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; @@ -18,7 +15,7 @@ class NewSpaceView extends StatelessWidget { final NewClassController controller; // Pangea# - const NewSpaceView(this.controller, {Key? key}) : super(key: key); + const NewSpaceView(this.controller, {super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/p_user_age/p_user_age.dart b/lib/pangea/pages/p_user_age/p_user_age.dart index 699dd2fcf..415379309 100644 --- a/lib/pangea/pages/p_user_age/p_user_age.dart +++ b/lib/pangea/pages/p_user_age/p_user_age.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:intl/intl.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/age_limits.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/pages/p_user_age/p_user_age_view.dart'; @@ -20,7 +16,7 @@ import '../../utils/bot_name.dart'; import '../../utils/error_handler.dart'; class PUserAge extends StatefulWidget { - const PUserAge({Key? key}) : super(key: key); + const PUserAge({super.key}); @override PUserAgeController createState() => PUserAgeController(); diff --git a/lib/pangea/pages/p_user_age/p_user_age_view.dart b/lib/pangea/pages/p_user_age/p_user_age_view.dart index b4f5e9e49..dd0b16a95 100644 --- a/lib/pangea/pages/p_user_age/p_user_age_view.dart +++ b/lib/pangea/pages/p_user_age/p_user_age_view.dart @@ -1,17 +1,14 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:intl/intl.dart'; -// Project imports: import 'package:fluffychat/pangea/pages/p_user_age/p_user_age.dart'; import '../../../widgets/layouts/login_scaffold.dart'; class PUserAgeView extends StatelessWidget { final PUserAgeController controller; - const PUserAgeView(this.controller, {Key? key}) : super(key: key); + const PUserAgeView(this.controller, {super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/settings_learning/settings_learning.dart b/lib/pangea/pages/settings_learning/settings_learning.dart index 49554c3e3..f699fc7b5 100644 --- a/lib/pangea/pages/settings_learning/settings_learning.dart +++ b/lib/pangea/pages/settings_learning/settings_learning.dart @@ -1,16 +1,13 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/pages/settings_learning/settings_learning_view.dart'; import 'package:fluffychat/widgets/matrix.dart'; class SettingsLearning extends StatefulWidget { - const SettingsLearning({Key? key}) : super(key: key); + const SettingsLearning({super.key}); @override SettingsLearningController createState() => SettingsLearningController(); diff --git a/lib/pangea/pages/settings_learning/settings_learning_view.dart b/lib/pangea/pages/settings_learning/settings_learning_view.dart index cdc394a4c..657ee0770 100644 --- a/lib/pangea/pages/settings_learning/settings_learning_view.dart +++ b/lib/pangea/pages/settings_learning/settings_learning_view.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; -// Project imports: import 'package:fluffychat/pangea/models/class_model.dart'; import 'package:fluffychat/pangea/pages/settings_learning/settings_learning.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; @@ -17,7 +14,7 @@ import '../../../config/app_config.dart'; class SettingsLearningView extends StatelessWidget { final SettingsLearningController controller; - const SettingsLearningView(this.controller, {Key? key}) : super(key: key); + const SettingsLearningView(this.controller, {super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/settings_subscription/change_subscription.dart b/lib/pangea/pages/settings_subscription/change_subscription.dart index e1dde3de3..8a57a317f 100644 --- a/lib/pangea/pages/settings_subscription/change_subscription.dart +++ b/lib/pangea/pages/settings_subscription/change_subscription.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/pages/settings_subscription/settings_subscription.dart'; import 'package:fluffychat/pangea/widgets/subscription/subscription_buttons.dart'; diff --git a/lib/pangea/pages/settings_subscription/settings_subscription.dart b/lib/pangea/pages/settings_subscription/settings_subscription.dart index ca68bbf59..7283e58f9 100644 --- a/lib/pangea/pages/settings_subscription/settings_subscription.dart +++ b/lib/pangea/pages/settings_subscription/settings_subscription.dart @@ -1,7 +1,5 @@ -// Dart imports: import 'dart:async'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; @@ -9,9 +7,8 @@ import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:fluffychat/pangea/pages/settings_subscription/settings_subscription_view.dart'; import 'package:fluffychat/pangea/utils/subscription_app_id.dart'; import 'package:fluffychat/widgets/matrix.dart'; -// Flutter imports: +// Project imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:url_launcher/url_launcher_string.dart'; class SubscriptionManagement extends StatefulWidget { diff --git a/lib/pangea/pages/settings_subscription/settings_subscription_view.dart b/lib/pangea/pages/settings_subscription/settings_subscription_view.dart index 538aa8bc9..33ed15ff2 100644 --- a/lib/pangea/pages/settings_subscription/settings_subscription_view.dart +++ b/lib/pangea/pages/settings_subscription/settings_subscription_view.dart @@ -7,7 +7,6 @@ import 'package:fluffychat/pangea/pages/settings_subscription/settings_subscript import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:intl/intl.dart'; diff --git a/lib/pangea/pages/sign_up/signup.dart b/lib/pangea/pages/sign_up/signup.dart index dafe65b70..33c4b1788 100644 --- a/lib/pangea/pages/sign_up/signup.dart +++ b/lib/pangea/pages/sign_up/signup.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/pages/sign_up/signup_view.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; @@ -13,7 +10,7 @@ import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/matrix.dart'; class SignupPage extends StatefulWidget { - const SignupPage({Key? key}) : super(key: key); + const SignupPage({super.key}); @override SignupPageController createState() => SignupPageController(); diff --git a/lib/pangea/pages/sign_up/signup_view.dart b/lib/pangea/pages/sign_up/signup_view.dart index 7724e02ba..ce1e18c0d 100644 --- a/lib/pangea/pages/sign_up/signup_view.dart +++ b/lib/pangea/pages/sign_up/signup_view.dart @@ -1,17 +1,16 @@ // Flutter imports: + import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/widgets/signup/tos_checkbox.dart'; import 'package:fluffychat/widgets/layouts/login_scaffold.dart'; import 'signup.dart'; class SignupPageView extends StatelessWidget { final SignupPageController controller; - const SignupPageView(this.controller, {Key? key}) : super(key: key); + const SignupPageView(this.controller, {super.key}); @override Widget build(BuildContext context) { @@ -53,7 +52,13 @@ class SignupPageView extends StatelessWidget { ), onPressed: controller.toggleShowPassword, ), - errorStyle: const TextStyle(color: Colors.orange), + // #Pangea + // errorStyle: const TextStyle(color: Colors.orange), + errorStyle: TextStyle( + color: Theme.of(context).textTheme.bodyMedium?.color, + fontSize: 14, + ), + // Pangea# hintText: L10n.of(context)!.chooseAStrongPassword, // #Pangea fillColor: Theme.of(context) @@ -78,8 +83,12 @@ class SignupPageView extends StatelessWidget { decoration: InputDecoration( prefixIcon: const Icon(Icons.repeat_outlined), hintText: L10n.of(context)!.repeatPassword, - errorStyle: const TextStyle(color: Colors.orange), // #Pangea + // errorStyle: const TextStyle(color: Colors.orange), + errorStyle: TextStyle( + color: Theme.of(context).textTheme.bodyMedium?.color, + fontSize: 14, + ), fillColor: Theme.of(context) .colorScheme .background @@ -108,12 +117,16 @@ class SignupPageView extends StatelessWidget { .colorScheme .background .withOpacity(0.75), - // #Pangea + // errorStyle: TextStyle( + // color: controller.emailController.text.isEmpty + // ? Colors.orangeAccent + // : Colors.orange, + // ), errorStyle: TextStyle( - color: controller.emailController.text.isEmpty - ? Colors.orangeAccent - : Colors.orange, + color: Theme.of(context).textTheme.bodyMedium?.color, + fontSize: 14, ), + // Pangea# ), ), ), diff --git a/lib/pangea/repo/class_analytics_repo.dart b/lib/pangea/repo/class_analytics_repo.dart index 20152df7f..fae8fe3b5 100644 --- a/lib/pangea/repo/class_analytics_repo.dart +++ b/lib/pangea/repo/class_analytics_repo.dart @@ -13,10 +13,12 @@ class PClassAnalyticsRepo { /// deprecated in favor of new analytics static Future repoGetAnalyticsByIds( - String accessToken, String timeSpan, - {List? classIds, - List? userIds, - List? chatIds}) async { + String accessToken, + String timeSpan, { + List? classIds, + List? userIds, + List? chatIds, + }) async { // if (!AnalyticsUtil.isValidSpan(timeSpan)) throw "Invalid span"; // final Requests req = Requests( diff --git a/lib/pangea/repo/class_repo.dart b/lib/pangea/repo/class_repo.dart index 858cf7cac..f6a92c924 100644 --- a/lib/pangea/repo/class_repo.dart +++ b/lib/pangea/repo/class_repo.dart @@ -1,13 +1,9 @@ -// Dart imports: import 'dart:convert'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:http/http.dart'; -// Project imports: import 'package:fluffychat/pangea/models/class_email_invite_model.dart'; import 'package:fluffychat/pangea/models/class_model.dart'; import '../network/requests.dart'; @@ -35,7 +31,9 @@ class PClassRepo { //Question for Lala: In this widget, controller, repo framework, where are // errors handled? How are they passed? static Future getClassByCode( - String classCode, String accessToken) async { + String classCode, + String accessToken, + ) async { final Requests req = Requests(baseUrl: PApiUrls.baseAPI, accessToken: accessToken); final Response res = @@ -53,8 +51,11 @@ class PClassRepo { static searchClass(String text) async {} - static sendEmailToJoinClass(List data, String roomId, - String teacherName) async {} + static sendEmailToJoinClass( + List data, + String roomId, + String teacherName, + ) async {} static inviteAction(BuildContext context, String id, String roomId) async {} diff --git a/lib/pangea/repo/contextualized_translation_repo.dart b/lib/pangea/repo/contextualized_translation_repo.dart index 21aede9fc..c2ffe1853 100644 --- a/lib/pangea/repo/contextualized_translation_repo.dart +++ b/lib/pangea/repo/contextualized_translation_repo.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:convert'; -// Package imports: import 'package:http/http.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../config/environment.dart'; @@ -98,8 +95,9 @@ class ContextTranslationResponseModel { if (trans.isEmpty) { Sentry.addBreadcrumb( Breadcrumb( - message: "ContextTranslationResponseModel with empty translations", - data: {"response": json}), + message: "ContextTranslationResponseModel with empty translations", + data: {"response": json}, + ), ); } diff --git a/lib/pangea/repo/exchange_repo.dart b/lib/pangea/repo/exchange_repo.dart index 131dbbeaa..a4b78112c 100644 --- a/lib/pangea/repo/exchange_repo.dart +++ b/lib/pangea/repo/exchange_repo.dart @@ -1,15 +1,15 @@ -// Flutter imports: import 'package:flutter/material.dart'; class PExchangeRepo { static fetchExchangeClassInfo(String exchangePangeaId) async {} static saveExchangeRecord( - String requestFromClass, - String requestToClass, - String requestTeacher, - String requestToClassAuthor, - String exchangePangeaId) async {} + String requestFromClass, + String requestToClass, + String requestTeacher, + String requestToClassAuthor, + String exchangePangeaId, + ) async {} static exchangeRejectRequest(String roomId, String teacherName) async {} @@ -27,5 +27,8 @@ class PExchangeRepo { }) async {} static isExchange( - BuildContext context, String accessToken, String exchangeId) async {} + BuildContext context, + String accessToken, + String exchangeId, + ) async {} } diff --git a/lib/pangea/repo/full_text_translation_repo.dart b/lib/pangea/repo/full_text_translation_repo.dart index 0968eaf94..a781b4b0d 100644 --- a/lib/pangea/repo/full_text_translation_repo.dart +++ b/lib/pangea/repo/full_text_translation_repo.dart @@ -1,12 +1,9 @@ //Question for Jordan - is this for an individual token or could it be a span? -// Dart imports: import 'dart:convert'; -// Package imports: import 'package:http/http.dart'; -// Project imports: import '../config/environment.dart'; import '../constants/model_keys.dart'; import '../network/requests.dart'; @@ -58,7 +55,7 @@ class FullTextTranslationRequestModel { ModelKey.tgtLang: tgtLang, ModelKey.userL2: userL2, ModelKey.userL1: userL1, - ModelKey.deepL: deepL + ModelKey.deepL: deepL, }; } diff --git a/lib/pangea/repo/igc_repo.dart b/lib/pangea/repo/igc_repo.dart index ead9322e1..068a009e8 100644 --- a/lib/pangea/repo/igc_repo.dart +++ b/lib/pangea/repo/igc_repo.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:convert'; -// Package imports: import 'package:http/http.dart'; -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/models/language_detection_model.dart'; import 'package:fluffychat/pangea/models/lemma.dart'; @@ -17,8 +14,10 @@ import '../network/requests.dart'; import '../network/urls.dart'; class IgcRepo { - static Future getIGC(String? accessToken, - {required IGCRequestBody igcRequest}) async { + static Future getIGC( + String? accessToken, { + required IGCRequestBody igcRequest, + }) async { final Requests req = Requests( accessToken: accessToken, choreoApiKey: Environment.choreoApiKey, @@ -53,21 +52,26 @@ class IgcRepo { lemmas: [Lemma(form: "be", text: "be", saveVocab: true)], ), PangeaToken( - text: PangeaTokenText(content: "a", offset: 8, length: 1), - hasInfo: false, - lemmas: []), + text: PangeaTokenText(content: "a", offset: 8, length: 1), + hasInfo: false, + lemmas: [], + ), PangeaToken( - text: PangeaTokenText(content: "sample", offset: 10, length: 6), - hasInfo: false, - lemmas: []), + text: PangeaTokenText(content: "sample", offset: 10, length: 6), + hasInfo: false, + lemmas: [], + ), PangeaToken( - text: PangeaTokenText(content: "text", offset: 17, length: 4), - hasInfo: false, - lemmas: []), + text: PangeaTokenText(content: "text", offset: 17, length: 4), + hasInfo: false, + lemmas: [], + ), ], matches: [ PangeaMatch( - match: spanDataRepomockSpan, status: PangeaMatchStatus.open), + match: spanDataRepomockSpan, + status: PangeaMatchStatus.open, + ), ], originalInput: "This be a sample text", fullTextCorrection: "This is a sample text", diff --git a/lib/pangea/repo/interactive_translation_repo.dart b/lib/pangea/repo/interactive_translation_repo.dart index f68a8e8ec..b46db4b75 100644 --- a/lib/pangea/repo/interactive_translation_repo.dart +++ b/lib/pangea/repo/interactive_translation_repo.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:convert'; -// Package imports: import 'package:http/http.dart'; -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; import '../models/custom_input_translation_model.dart'; import '../models/it_response_model.dart'; @@ -14,10 +11,12 @@ import '../network/urls.dart'; class ITRepo { static Future customInputTranslate( - CustomInputRequestModel initalText) async { + CustomInputRequestModel initalText, + ) async { final Requests req = Requests( - baseUrl: PApiUrls.choreoBaseApi, - choreoApiKey: Environment.choreoApiKey); + baseUrl: PApiUrls.choreoBaseApi, + choreoApiKey: Environment.choreoApiKey, + ); final Response res = await req.post(url: PApiUrls.firstStep, body: initalText.toJson()); @@ -27,10 +26,12 @@ class ITRepo { } static Future systemChoiceTranslate( - SystemChoiceRequestModel subseqText) async { + SystemChoiceRequestModel subseqText, + ) async { final Requests req = Requests( - baseUrl: PApiUrls.choreoBaseApi, - choreoApiKey: Environment.choreoApiKey); + baseUrl: PApiUrls.choreoBaseApi, + choreoApiKey: Environment.choreoApiKey, + ); final Response res = await req.post(url: PApiUrls.subseqStep, body: subseqText.toJson()); diff --git a/lib/pangea/repo/language_repo.dart b/lib/pangea/repo/language_repo.dart index 418fa8e7c..b74b8a030 100644 --- a/lib/pangea/repo/language_repo.dart +++ b/lib/pangea/repo/language_repo.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:convert'; import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:http/http.dart'; -// Project imports: import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:fluffychat/pangea/network/urls.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; diff --git a/lib/pangea/repo/message_service.repo.dart b/lib/pangea/repo/message_service.repo.dart index 40b9ec4d2..612ee0c61 100644 --- a/lib/pangea/repo/message_service.repo.dart +++ b/lib/pangea/repo/message_service.repo.dart @@ -1,14 +1,16 @@ -// Project imports: import '../config/environment.dart'; import '../network/requests.dart'; import '../network/urls.dart'; class MessageServiceRepo { static Future sendPayloads( - MessageServiceModel serviceModel, String messageId) async { + MessageServiceModel serviceModel, + String messageId, + ) async { final Requests req = Requests( - baseUrl: PApiUrls.choreoBaseApi, - choreoApiKey: Environment.choreoApiKey); + baseUrl: PApiUrls.choreoBaseApi, + choreoApiKey: Environment.choreoApiKey, + ); final json = serviceModel.toJson(); json["msg_id"] = messageId; diff --git a/lib/pangea/repo/similarity_repo.dart b/lib/pangea/repo/similarity_repo.dart index 7d2e67ef9..9b3786af8 100644 --- a/lib/pangea/repo/similarity_repo.dart +++ b/lib/pangea/repo/similarity_repo.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:convert'; -// Package imports: import 'package:http/http.dart'; -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; import '../network/requests.dart'; import '../network/urls.dart'; diff --git a/lib/pangea/repo/span_data_repo.dart b/lib/pangea/repo/span_data_repo.dart index 68212a869..878ae5f44 100644 --- a/lib/pangea/repo/span_data_repo.dart +++ b/lib/pangea/repo/span_data_repo.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:convert'; -// Package imports: import 'package:http/http.dart'; -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/enum/span_choice_type.dart'; import 'package:fluffychat/pangea/enum/span_data_type.dart'; @@ -14,8 +11,10 @@ import '../network/requests.dart'; import '../network/urls.dart'; class SpanDataRepo { - static Future getSpanDetails(String? accessToken, - {required SpanDetailsRepoReqAndRes request}) async { + static Future getSpanDetails( + String? accessToken, { + required SpanDetailsRepoReqAndRes request, + }) async { final Requests req = Requests( accessToken: accessToken, choreoApiKey: Environment.choreoApiKey, diff --git a/lib/pangea/repo/subscription_repo.dart b/lib/pangea/repo/subscription_repo.dart index 856a60dcc..16ea60c4d 100644 --- a/lib/pangea/repo/subscription_repo.dart +++ b/lib/pangea/repo/subscription_repo.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:convert'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:http/http.dart' as http; -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; @@ -19,7 +15,7 @@ class SubscriptionRepo { static final Map requestHeaders = { 'Content-type': 'application/json', 'Accept': 'application/json', - 'Authorization': 'Bearer ${Environment.rcKey}' + 'Authorization': 'Bearer ${Environment.rcKey}', }; static Future getAppIds() async { @@ -65,7 +61,7 @@ class SubscriptionRepo { final Map stripeHeaders = { 'Content-type': 'application/json', 'Accept': 'application/json', - 'Authorization': 'Bearer ${Environment.rcStripeKey}' + 'Authorization': 'Bearer ${Environment.rcStripeKey}', }; final String url = "${PApiUrls.rcSubscribers}/$userId"; final http.Response res = await http.get( @@ -121,12 +117,14 @@ class RCProductsResponseModel { Map metadata, ) { return packageDetails['products']['items'] - .map((productDetails) => SubscriptionDetails( - price: double.parse(metadata['$packageId.price']), - duration: metadata['$packageId.duration'], - id: productDetails['product']['store_identifier'], - appId: productDetails['product']['app_id'], - )) + .map( + (productDetails) => SubscriptionDetails( + price: double.parse(metadata['$packageId.price']), + duration: metadata['$packageId.duration'], + id: productDetails['product']['store_identifier'], + appId: productDetails['product']['app_id'], + ), + ) .toList() .cast(); } diff --git a/lib/pangea/repo/tokens_repo.dart b/lib/pangea/repo/tokens_repo.dart index fa8eb0c27..8d47e1a2c 100644 --- a/lib/pangea/repo/tokens_repo.dart +++ b/lib/pangea/repo/tokens_repo.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:convert'; -// Package imports: import 'package:http/http.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../config/environment.dart'; @@ -59,7 +56,7 @@ class TokensRequestModel { Map toJson() => { ModelKey.fullText: fullText, ModelKey.userL1: userL1, - ModelKey.userL2: userL2 + ModelKey.userL2: userL2, }; } @@ -73,11 +70,12 @@ class TokensResponseModel { Map json, ) => TokensResponseModel( - tokens: (json[ModelKey.tokens] as Iterable) - .map( - (e) => PangeaToken.fromJson(e as Map), - ) - .toList() - .cast(), - lang: json[ModelKey.lang]); + tokens: (json[ModelKey.tokens] as Iterable) + .map( + (e) => PangeaToken.fromJson(e as Map), + ) + .toList() + .cast(), + lang: json[ModelKey.lang], + ); } diff --git a/lib/pangea/repo/topic_data_repo.dart b/lib/pangea/repo/topic_data_repo.dart index ccdd18181..9a5def03f 100644 --- a/lib/pangea/repo/topic_data_repo.dart +++ b/lib/pangea/repo/topic_data_repo.dart @@ -1,23 +1,20 @@ -// Dart imports: import 'dart:convert'; -// Flutter imports: import 'package:flutter/services.dart'; -// Package imports: import 'package:http/http.dart'; -// Project imports: import '../config/environment.dart'; import '../models/chat_topic_model.dart'; -import '../models/lemma.dart'; import '../network/requests.dart'; import '../network/urls.dart'; /// accepts ChatTopic and calls an API for a list of Lemma class TopicDataRepo { - static Future generate(String? accessToken, - {required TopicDataRequest request}) async { + static Future generate( + String? accessToken, { + required TopicDataRequest request, + }) async { final Requests req = Requests( accessToken: accessToken, choreoApiKey: Environment.choreoApiKey, diff --git a/lib/pangea/repo/user_repo.dart b/lib/pangea/repo/user_repo.dart index 61fd56b8c..452120962 100644 --- a/lib/pangea/repo/user_repo.dart +++ b/lib/pangea/repo/user_repo.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:convert'; import 'dart:developer'; -// Package imports: import 'package:http/http.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/model_keys.dart'; import '../../widgets/matrix.dart'; import '../models/user_model.dart'; @@ -28,7 +25,7 @@ class PUserRepo { final Map body = { ModelKey.userFullName: fullName, ModelKey.userPangeaUserId: userID, - ModelKey.userDateOfBirth: dateOfBirth + ModelKey.userDateOfBirth: dateOfBirth, }; final Response res = await req.post( url: PApiUrls.createUser, diff --git a/lib/pangea/repo/word_repo.dart b/lib/pangea/repo/word_repo.dart index 13d9db995..399c620dd 100644 --- a/lib/pangea/repo/word_repo.dart +++ b/lib/pangea/repo/word_repo.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:convert'; -// Package imports: import 'package:http/http.dart'; -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; import '../constants/model_keys.dart'; import '../models/word_data_model.dart'; @@ -20,13 +17,18 @@ class WordRepo { required String userL2, }) async { final Requests req = Requests( - choreoApiKey: Environment.choreoApiKey, accessToken: accessToken); - final Response res = await req.post(url: PApiUrls.wordNet, body: { - ModelKey.word: word, - ModelKey.fullText: fullText, - ModelKey.userL1: userL1, - ModelKey.userL2: userL2, - }); + choreoApiKey: Environment.choreoApiKey, + accessToken: accessToken, + ); + final Response res = await req.post( + url: PApiUrls.wordNet, + body: { + ModelKey.word: word, + ModelKey.fullText: fullText, + ModelKey.userL1: userL1, + ModelKey.userL2: userL2, + }, + ); final json = jsonDecode(utf8.decode(res.bodyBytes)); diff --git a/lib/pangea/utils/add_to_space.dart b/lib/pangea/utils/add_to_space.dart index bd6fda71b..92458856c 100644 --- a/lib/pangea/utils/add_to_space.dart +++ b/lib/pangea/utils/add_to_space.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/pangea/utils/any_state_holder.dart b/lib/pangea/utils/any_state_holder.dart index e12bb8203..46efff974 100644 --- a/lib/pangea/utils/any_state_holder.dart +++ b/lib/pangea/utils/any_state_holder.dart @@ -1,13 +1,9 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import '../models/widget_measurement.dart'; class PangeaAnyState { @@ -21,8 +17,10 @@ class PangeaAnyState { _layerLinkAndKeys.clear(); } - LayerLinkAndKey layerLinkAndKey(String transformTargetId, - [throwErrorIfNotThere = false]) { + LayerLinkAndKey layerLinkAndKey( + String transformTargetId, [ + throwErrorIfNotThere = false, + ]) { if (_layerLinkAndKeys[transformTargetId] == null) { if (throwErrorIfNotThere) { Sentry.addBreadcrumb(Breadcrumb.fromJson(_layerLinkAndKeys)); diff --git a/lib/pangea/utils/archive_space.dart b/lib/pangea/utils/archive_space.dart index 4164bfe2b..72f10fae4 100644 --- a/lib/pangea/utils/archive_space.dart +++ b/lib/pangea/utils/archive_space.dart @@ -1,7 +1,5 @@ -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; diff --git a/lib/pangea/utils/bot_name.dart b/lib/pangea/utils/bot_name.dart index d400994b8..dc7c0da8f 100644 --- a/lib/pangea/utils/bot_name.dart +++ b/lib/pangea/utils/bot_name.dart @@ -1,4 +1,3 @@ -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; class BotName { diff --git a/lib/pangea/utils/bot_style.dart b/lib/pangea/utils/bot_style.dart index 8531f2be9..8c971b307 100644 --- a/lib/pangea/utils/bot_style.dart +++ b/lib/pangea/utils/bot_style.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; diff --git a/lib/pangea/utils/chat_list_handle_space_tap.dart b/lib/pangea/utils/chat_list_handle_space_tap.dart index 617e60c99..4ddb76129 100644 --- a/lib/pangea/utils/chat_list_handle_space_tap.dart +++ b/lib/pangea/utils/chat_list_handle_space_tap.dart @@ -1,13 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/pangea/utils/class_chat_power_levels.dart b/lib/pangea/utils/class_chat_power_levels.dart index 0581445d4..db19bb6ee 100644 --- a/lib/pangea/utils/class_chat_power_levels.dart +++ b/lib/pangea/utils/class_chat_power_levels.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import '../../widgets/matrix.dart'; import '../constants/class_default_values.dart'; @@ -12,7 +9,9 @@ import '../extensions/pangea_room_extension.dart'; class ClassChatPowerLevels { static Future> powerLevelOverrideForClassChat( - BuildContext context, List spaceParents) async { + BuildContext context, + List spaceParents, + ) async { final Client client = Matrix.of(context).client; final Map powerLevelOverride = {}; powerLevelOverride['events'] = { diff --git a/lib/pangea/utils/class_code.dart b/lib/pangea/utils/class_code.dart index a31a84106..6bd9c9764 100644 --- a/lib/pangea/utils/class_code.dart +++ b/lib/pangea/utils/class_code.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:math'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; -// Project imports: import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../controllers/pangea_controller.dart'; diff --git a/lib/pangea/utils/delete_room.dart b/lib/pangea/utils/delete_room.dart index e987d2b40..f8e168779 100644 --- a/lib/pangea/utils/delete_room.dart +++ b/lib/pangea/utils/delete_room.dart @@ -1,7 +1,5 @@ -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'error_handler.dart'; diff --git a/lib/pangea/utils/download_chat.dart b/lib/pangea/utils/download_chat.dart index b430eb471..c1c28935d 100644 --- a/lib/pangea/utils/download_chat.dart +++ b/lib/pangea/utils/download_chat.dart @@ -1,12 +1,9 @@ -// Dart imports: import 'dart:async'; import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:csv/csv.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:intl/intl.dart'; @@ -18,7 +15,6 @@ import 'package:permission_handler/permission_handler.dart'; import 'package:syncfusion_flutter_xlsio/xlsio.dart'; import 'package:universal_html/html.dart' as webFile; -// Project imports: import 'package:fluffychat/pangea/models/class_model.dart'; import 'package:fluffychat/pangea/models/pangea_message_event.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; @@ -26,8 +22,13 @@ import '../models/choreo_record.dart'; enum DownloadType { txt, csv, xlsx } -Future downloadChat(Room room, ClassSettingsModel classSettings, - DownloadType type, Client client, BuildContext context) async { +Future downloadChat( + Room room, + ClassSettingsModel classSettings, + DownloadType type, + Client client, + BuildContext context, +) async { List allPangeaMessages; try { @@ -47,7 +48,8 @@ Future downloadChat(Room room, ClassSettingsModel classSettings, } catch (err) { ErrorHandler.logError( e: Exception( - "Failed to fetch messages for chat ${room.id} in while downloading chat"), + "Failed to fetch messages for chat ${room.id} in while downloading chat", + ), s: StackTrace.current, ); ScaffoldMessenger.of(context).showSnackBar( @@ -118,7 +120,11 @@ Future> getAllEvents(Room room, Client client) async { } List getPangeaMessageEvents( - List events, Timeline timeline, Room room, String? targetLang) { + List events, + Timeline timeline, + Room room, + String? targetLang, +) { final List allPangeaMessages = events .where( (Event event) => @@ -190,7 +196,10 @@ String mimetype(DownloadType fileType) { } Future downloadFile( - contents, String filename, DownloadType fileType) async { + contents, + String filename, + DownloadType fileType, +) async { if (kIsWeb) { final blob = webFile.Blob([contents], mimetype(fileType), 'native'); webFile.AnchorElement( @@ -231,8 +240,12 @@ Future downloadFile( } } -String getTxtContent(List messages, BuildContext context, - String filename, Room room) { +String getTxtContent( + List messages, + BuildContext context, + String filename, + Room room, +) { String formattedInfo = ""; for (final PangeaMessageEvent message in messages) { final String timestamp = @@ -269,7 +282,10 @@ String getTxtContent(List messages, BuildContext context, } String getCSVContent( - List messages, BuildContext context, String fileName) { + List messages, + BuildContext context, + String fileName, +) { final List> csvData = [ [ L10n.of(context)!.sender, @@ -295,7 +311,7 @@ String getCSVContent( originalMsg, sentMsg, L10n.of(context)!.notAvailable, - L10n.of(context)!.notAvailable + L10n.of(context)!.notAvailable, ]); continue; } @@ -309,7 +325,7 @@ String getCSVContent( originalMsg, sentMsg, includedIT.toString(), - includedIGC.toString() + includedIGC.toString(), ]); } final String fileString = const ListToCsvConverter().convert(csvData); @@ -317,7 +333,10 @@ String getCSVContent( } List getExcelContent( - List messages, BuildContext context, String filename) { + List messages, + BuildContext context, + String filename, +) { final Workbook workbook = Workbook(); final Worksheet sheet = workbook.worksheets[0]; diff --git a/lib/pangea/utils/error_handler.dart b/lib/pangea/utils/error_handler.dart index 870678d58..7784b1614 100644 --- a/lib/pangea/utils/error_handler.dart +++ b/lib/pangea/utils/error_handler.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:http/http.dart' as http; import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/config/environment.dart'; class ErrorHandler { @@ -18,7 +14,9 @@ class ErrorHandler { static Future initialize() async { FutureOr Function(Scope)? withScope( - Scope scope, FlutterErrorDetails details) { + Scope scope, + FlutterErrorDetails details, + ) { // if (details.exception is http.Response) { // final res = details.exception as http.Response; // scope.addBreadcrumb( @@ -64,24 +62,30 @@ class ErrorHandler { }; } - static logError( - {Object? e, StackTrace? s, String? m, Map? data}) async { + static logError({ + Object? e, + StackTrace? s, + String? m, + Map? data, + }) async { if ((e ?? m) != null) debugPrint("error: ${e?.toString() ?? m}"); if (data != null) { Sentry.addBreadcrumb(Breadcrumb.fromJson(data)); } - FlutterError.reportError(FlutterErrorDetails( - exception: e ?? Exception(m ?? "no message supplied"), - stack: s, - library: 'Pangea', - context: ErrorSummary(e?.toString() ?? "error not defined"), - stackFilter: (input) => input.where( - (e) => !(e.contains("org-dartlang-sdk") || - e.contains("future_impl") || - e.contains("microtask") || - e.contains("async_patch")), + FlutterError.reportError( + FlutterErrorDetails( + exception: e ?? Exception(m ?? "no message supplied"), + stack: s, + library: 'Pangea', + context: ErrorSummary(e?.toString() ?? "error not defined"), + stackFilter: (input) => input.where( + (e) => !(e.contains("org-dartlang-sdk") || + e.contains("future_impl") || + e.contains("microtask") || + e.contains("async_patch")), + ), ), - )); + ); } } diff --git a/lib/pangea/utils/find_conversation_partner_dialog.dart b/lib/pangea/utils/find_conversation_partner_dialog.dart index cc3801531..035f091d8 100644 --- a/lib/pangea/utils/find_conversation_partner_dialog.dart +++ b/lib/pangea/utils/find_conversation_partner_dialog.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; -// Project imports: import '../controllers/pangea_controller.dart'; void findConversationPartnerDialog( diff --git a/lib/pangea/utils/firebase_analytics.dart b/lib/pangea/utils/firebase_analytics.dart index 154a00e37..001161e2b 100644 --- a/lib/pangea/utils/firebase_analytics.dart +++ b/lib/pangea/utils/firebase_analytics.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/widgets.dart'; -// Package imports: import 'package:firebase_analytics/firebase_analytics.dart'; import 'package:firebase_core/firebase_core.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import '../../config/firebase_options.dart'; import '../enum/use_type.dart'; @@ -66,13 +63,17 @@ class GoogleAnalytics { } static createClass(String className, String classCode) { - logEvent('create_class', - parameters: {'name': className, 'group_id': classCode}); + logEvent( + 'create_class', + parameters: {'name': className, 'group_id': classCode}, + ); } static createExchange(String exchangeName, String classCode) { - logEvent('create_exchange', - parameters: {'name': exchangeName, 'group_id': classCode}); + logEvent( + 'create_exchange', + parameters: {'name': exchangeName, 'group_id': classCode}, + ); } static createChat(String newChatRoomId) { @@ -80,28 +81,38 @@ class GoogleAnalytics { } static addParent(String chatRoomId, String classCode) { - logEvent('add_room_to_class', - parameters: {"chat_id": chatRoomId, 'group_id': classCode}); + logEvent( + 'add_room_to_class', + parameters: {"chat_id": chatRoomId, 'group_id': classCode}, + ); } static removeChatFromClass(String chatRoomId, String classCode) { - logEvent('remove_room_from_class', - parameters: {"chat_id": chatRoomId, 'group_id': classCode}); + logEvent( + 'remove_room_from_class', + parameters: {"chat_id": chatRoomId, 'group_id': classCode}, + ); } static addChatToExchange(String chatRoomId, String classCode) { - logEvent('add_chat_to_exchange', - parameters: {"chat_id": chatRoomId, 'group_id': classCode}); + logEvent( + 'add_chat_to_exchange', + parameters: {"chat_id": chatRoomId, 'group_id': classCode}, + ); } static inviteClassToExchange(String classId, String exchangeId) { - logEvent('invite_class_to_exchange', - parameters: {'group_id': classId, 'exchange_id': exchangeId}); + logEvent( + 'invite_class_to_exchange', + parameters: {'group_id': classId, 'exchange_id': exchangeId}, + ); } static kickClassFromExchange(String classId, String exchangeId) { - logEvent('kick_class_from_exchange', - parameters: {'group_id': classId, 'exchange_id': exchangeId}); + logEvent( + 'kick_class_from_exchange', + parameters: {'group_id': classId, 'exchange_id': exchangeId}, + ); } static joinClass(String classCode) { @@ -109,11 +120,14 @@ class GoogleAnalytics { } static sendMessage(String chatRoomId, String classCode, UseType useType) { - logEvent('sent_message', parameters: { - "chat_id": chatRoomId, - 'group_id': classCode, - "message_type": useType.toString() - }); + logEvent( + 'sent_message', + parameters: { + "chat_id": chatRoomId, + 'group_id': classCode, + "message_type": useType.toString(), + }, + ); } static contextualRequest() { @@ -125,38 +139,44 @@ class GoogleAnalytics { } static beginPurchaseSubscription( - SubscriptionDetails details, BuildContext context) { - logEvent('begin_checkout', parameters: { - "currency": "USD", - 'value': details.price, - 'transaction_id': details.id, - 'items': [ - { - 'item_id': details.package!.identifier, - 'item_name': details.displayName(context), - 'price': details.price, - 'item_category': "subscription", - 'quantity': 1 - } - ] - }); + SubscriptionDetails details, + BuildContext context, + ) { + logEvent( + 'begin_checkout', + parameters: { + "currency": "USD", + 'value': details.price, + 'transaction_id': details.id, + 'items': [ + { + 'item_id': details.package!.identifier, + 'item_name': details.displayName(context), + 'price': details.price, + 'item_category': "subscription", + 'quantity': 1, + } + ], + }, + ); } static FirebaseAnalyticsObserver getAnalyticsObserver() => FirebaseAnalyticsObserver( - analytics: analytics!, - routeFilter: (route) { - // By default firebase only tracks page routes - if (route is! PageRoute || - // No user logged in, so we dont track - route.settings.name == "login" || - route.settings.name == "/home" || - route.settings.name == "connect" || - route.settings.name == "signup") { - return false; - } - final String? name = route.settings.name; - debugPrint("navigating to route: $name"); - return true; - }); + analytics: analytics!, + routeFilter: (route) { + // By default firebase only tracks page routes + if (route is! PageRoute || + // No user logged in, so we dont track + route.settings.name == "login" || + route.settings.name == "/home" || + route.settings.name == "connect" || + route.settings.name == "signup") { + return false; + } + final String? name = route.settings.name; + debugPrint("navigating to route: $name"); + return true; + }, + ); } diff --git a/lib/pangea/utils/get_chat_list_item_subtitle.dart b/lib/pangea/utils/get_chat_list_item_subtitle.dart index aecca13d1..a1ce04349 100644 --- a/lib/pangea/utils/get_chat_list_item_subtitle.dart +++ b/lib/pangea/utils/get_chat_list_item_subtitle.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/language_keys.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/class_model.dart'; diff --git a/lib/pangea/utils/instructions.dart b/lib/pangea/utils/instructions.dart index a1559c4b8..40253a00d 100644 --- a/lib/pangea/utils/instructions.dart +++ b/lib/pangea/utils/instructions.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import '../../config/app_config.dart'; import '../../widgets/matrix.dart'; import '../controllers/pangea_controller.dart'; @@ -32,9 +29,12 @@ class InstructionsController { void updateEnableInstructions(InstructionsEnum key, bool value) => _pangeaController.pStoreService.save(key.toString(), value); - void show( - BuildContext context, InstructionsEnum key, String transformTargetKey, - [bool showToggle = true]) { + Future show( + BuildContext context, + InstructionsEnum key, + String transformTargetKey, [ + bool showToggle = true, + ]) async { if (wereInstructionsTurnedOff(key)) { return; } @@ -48,6 +48,13 @@ class InstructionsController { if (_instructionsShown[key] ?? false) { return; } + + final bool userLangsSet = + await _pangeaController.userController.areUserLanguagesSet; + if (!userLangsSet && key == InstructionsEnum.blurMeansTranslate) { + return; + } + _instructionsShown[key] = true; final botStyle = BotStyle.text(context); @@ -76,7 +83,7 @@ class InstructionsController { ), ), ), - if (showToggle) InstructionsToggle(instructionsKey: key) + if (showToggle) InstructionsToggle(instructionsKey: key), ], ), cardSize: const Size(300.0, 300.0), @@ -123,9 +130,9 @@ extension Copy on InstructionsEnum { class InstructionsToggle extends StatefulWidget { const InstructionsToggle({ - Key? key, + super.key, required this.instructionsKey, - }) : super(key: key); + }); final InstructionsEnum instructionsKey; @@ -144,14 +151,15 @@ class InstructionsToggleState extends State { @override Widget build(BuildContext context) { return SwitchListTile.adaptive( - activeColor: AppConfig.activeToggleColor, - title: Text(L10n.of(context)!.doNotShowAgain), - value: pangeaController.instructions - .wereInstructionsTurnedOff(widget.instructionsKey), - onChanged: ((value) { - pangeaController.instructions - .updateEnableInstructions(widget.instructionsKey, value); - setState(() {}); - })); + activeColor: AppConfig.activeToggleColor, + title: Text(L10n.of(context)!.doNotShowAgain), + value: pangeaController.instructions + .wereInstructionsTurnedOff(widget.instructionsKey), + onChanged: ((value) { + pangeaController.instructions + .updateEnableInstructions(widget.instructionsKey, value); + setState(() {}); + }), + ); } } diff --git a/lib/pangea/utils/join_all_space_chats.dart b/lib/pangea/utils/join_all_space_chats.dart index 22058f1a0..cd4ee87db 100644 --- a/lib/pangea/utils/join_all_space_chats.dart +++ b/lib/pangea/utils/join_all_space_chats.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/utils/error_handler.dart'; // Used in lock space. Handles case when child rooms return null from client.getRoomById diff --git a/lib/pangea/utils/language_level_copy.dart b/lib/pangea/utils/language_level_copy.dart index 7a18e9080..804f45573 100644 --- a/lib/pangea/utils/language_level_copy.dart +++ b/lib/pangea/utils/language_level_copy.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; class LanguageLevelTextPicker { diff --git a/lib/pangea/utils/lock_room.dart b/lib/pangea/utils/lock_room.dart index 01c3b4b48..884ec3bad 100644 --- a/lib/pangea/utils/lock_room.dart +++ b/lib/pangea/utils/lock_room.dart @@ -1,7 +1,5 @@ -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/pangea/utils/join_all_space_chats.dart'; diff --git a/lib/pangea/utils/logout.dart b/lib/pangea/utils/logout.dart index 5dfa26af0..aa4441e13 100644 --- a/lib/pangea/utils/logout.dart +++ b/lib/pangea/utils/logout.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; -// Project imports: import 'package:fluffychat/widgets/matrix.dart'; void pLogoutAction(BuildContext context, {bool? isDestructiveAction}) async { diff --git a/lib/pangea/utils/martix.utils.dart b/lib/pangea/utils/martix.utils.dart index eb9f5a6a3..99e535a1b 100644 --- a/lib/pangea/utils/martix.utils.dart +++ b/lib/pangea/utils/martix.utils.dart @@ -1,4 +1,3 @@ -// Package imports: import 'package:matrix/matrix.dart'; class MatrixUtils { diff --git a/lib/pangea/utils/match_copy.dart b/lib/pangea/utils/match_copy.dart index a4ad52945..28080f9b5 100644 --- a/lib/pangea/utils/match_copy.dart +++ b/lib/pangea/utils/match_copy.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/pangea/enum/span_data_type.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../constants/match_rule_ids.dart'; diff --git a/lib/pangea/utils/overlay.dart b/lib/pangea/utils/overlay.dart index ffda1d906..33dea2018 100644 --- a/lib/pangea/utils/overlay.dart +++ b/lib/pangea/utils/overlay.dart @@ -1,12 +1,9 @@ -// Dart imports: import 'dart:developer'; import 'dart:math'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/utils/any_state_holder.dart'; import 'package:fluffychat/pangea/widgets/common_widgets/overlay_container.dart'; @@ -50,7 +47,9 @@ class OverlayUtil { color: Colors.transparent, clipBehavior: Clip.antiAlias, child: OverlayContainer( - cardToShow: cardToShow, borderColor: borderColor), + cardToShow: cardToShow, + borderColor: borderColor, + ), ), ), ), @@ -137,8 +136,8 @@ class OverlayUtil { class TransparentBackdrop extends StatelessWidget { const TransparentBackdrop({ - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) { @@ -194,8 +193,10 @@ class ChatViewConstraints implements OverlayConstraints { x1 = mediaQueryData.size.width - max(mediaQueryData.viewPadding.right, mediaQueryData.viewInsets.right); y1 = mediaQueryData.size.height - - max(mediaQueryData.viewPadding.bottom, - mediaQueryData.viewInsets.bottom); + max( + mediaQueryData.viewPadding.bottom, + mediaQueryData.viewInsets.bottom, + ); // https://medium.com/flutter-community/a-flutter-guide-to-visual-overlap-padding-viewpadding-and-viewinsets-a63e214be6e8 // debugPrint( diff --git a/lib/pangea/utils/p_store.dart b/lib/pangea/utils/p_store.dart index 1f7e9ff78..bdc0efc6c 100644 --- a/lib/pangea/utils/p_store.dart +++ b/lib/pangea/utils/p_store.dart @@ -1,7 +1,5 @@ -// Package imports: import 'package:get_storage/get_storage.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; class PLocalStore { @@ -11,8 +9,11 @@ class PLocalStore { PLocalStore({required this.pangeaController}); /// save data in local - Future save(String key, dynamic data, - {bool addClientIdToKey = true}) async { + Future save( + String key, + dynamic data, { + bool addClientIdToKey = true, + }) async { await _box.write(_key(key, addClientIdToKey: addClientIdToKey), data); } diff --git a/lib/pangea/utils/password_forgotten.dart b/lib/pangea/utils/password_forgotten.dart index 3b2271173..186d76ce8 100644 --- a/lib/pangea/utils/password_forgotten.dart +++ b/lib/pangea/utils/password_forgotten.dart @@ -1,13 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/login/login.dart'; import '../../widgets/matrix.dart'; @@ -32,7 +29,7 @@ extension PangeaPasswordForgotten on LoginController { decoration: InputDecoration( hintText: L10n.of(context)!.enterAnEmailAddress, ), - ) + ), ], ), actions: [ diff --git a/lib/pangea/utils/platform_name.dart b/lib/pangea/utils/platform_name.dart index 5823f3d97..f5b6c1dd4 100644 --- a/lib/pangea/utils/platform_name.dart +++ b/lib/pangea/utils/platform_name.dart @@ -1,7 +1,5 @@ -// Dart imports: import 'dart:io' show Platform; -// Flutter imports: import 'package:flutter/foundation.dart' show kIsWeb, kDebugMode; class MyPlatformName { diff --git a/lib/pangea/utils/report_message.dart b/lib/pangea/utils/report_message.dart index fa2ea5ac6..a7b3f1c28 100644 --- a/lib/pangea/utils/report_message.dart +++ b/lib/pangea/utils/report_message.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/pangea_message_types.dart'; import 'package:fluffychat/pangea/extensions/client_extension.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; @@ -86,8 +83,10 @@ Future> getReportTeachers( final List reportRoomParentSpaces = room.spaceParents .where((parentSpace) => parentSpace.roomId != null) - .map((parentSpace) => - Matrix.of(context).client.getRoomById(parentSpace.roomId!)) + .map( + (parentSpace) => + Matrix.of(context).client.getRoomById(parentSpace.roomId!), + ) .where((parentSpace) => parentSpace != null) .cast() .toList(); @@ -122,8 +121,7 @@ Future> getReportTeachers( class TeacherSelectDialog extends StatefulWidget { final List teachers; - const TeacherSelectDialog({Key? key, required this.teachers}) - : super(key: key); + const TeacherSelectDialog({super.key, required this.teachers}); @override State createState() => _TeacherSelectDialogState(); diff --git a/lib/pangea/utils/set_class_name.dart b/lib/pangea/utils/set_class_name.dart index f2d73c0f0..13a9c6c45 100644 --- a/lib/pangea/utils/set_class_name.dart +++ b/lib/pangea/utils/set_class_name.dart @@ -1,22 +1,20 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; -// Project imports: import 'package:fluffychat/widgets/matrix.dart'; import '../../utils/matrix_sdk_extensions/matrix_locals.dart'; void setClassDisplayname(BuildContext context, String? roomId) async { final room = Matrix.of(context).client.getRoomById(roomId!)!; final TextEditingController textFieldController = TextEditingController( - text: room.getLocalizedDisplayname( - MatrixLocals( - L10n.of(context)!, + text: room.getLocalizedDisplayname( + MatrixLocals( + L10n.of(context)!, + ), ), - )); + ); showDialog( context: context, @@ -46,8 +44,11 @@ void setClassDisplayname(BuildContext context, String? roomId) async { future: () => room.setName(textFieldController.text), ); if (success.error == null) { - ScaffoldMessenger.of(context).showSnackBar(SnackBar( - content: Text(L10n.of(context)!.displaynameHasBeenChanged))); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(L10n.of(context)!.displaynameHasBeenChanged), + ), + ); Navigator.of(context).pop(); } }, diff --git a/lib/pangea/utils/set_class_topic.dart b/lib/pangea/utils/set_class_topic.dart index 5d36b2d65..67610c0ca 100644 --- a/lib/pangea/utils/set_class_topic.dart +++ b/lib/pangea/utils/set_class_topic.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; diff --git a/lib/pangea/utils/shared_prefs.dart b/lib/pangea/utils/shared_prefs.dart index f98254c5e..3d22a9971 100644 --- a/lib/pangea/utils/shared_prefs.dart +++ b/lib/pangea/utils/shared_prefs.dart @@ -1,35 +1,33 @@ -// Dart imports: import 'dart:convert'; -// Package imports: import 'package:shared_preferences/shared_preferences.dart'; class MyShared { static saveString(String key, String value) async { - final SharedPreferences _prefs = await SharedPreferences.getInstance(); - _prefs.setString(key, value); + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString(key, value); } static Future? readString(String key) async { - final SharedPreferences _prefs = await SharedPreferences.getInstance(); - String? source = _prefs.getString(key); + final SharedPreferences prefs = await SharedPreferences.getInstance(); + final String? source = prefs.getString(key); return source; } static saveJson(String key, Map value) async { - final SharedPreferences _prefs = await SharedPreferences.getInstance(); - _prefs.setString(key, json.encode(value)); + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString(key, json.encode(value)); } static Future? readJson(String key) async { try { - final SharedPreferences _prefs = await SharedPreferences.getInstance(); - String? source = _prefs.getString(key); + final SharedPreferences prefs = await SharedPreferences.getInstance(); + final String? source = prefs.getString(key); if (source == null) { return null; } - var decodedJson = json.decoder.convert(source); + final decodedJson = json.decoder.convert(source); //var decodedJson = json.decode(source); return decodedJson; } catch (err) { diff --git a/lib/pangea/utils/space_navigator.dart b/lib/pangea/utils/space_navigator.dart index 9b0510582..af72a0b25 100644 --- a/lib/pangea/utils/space_navigator.dart +++ b/lib/pangea/utils/space_navigator.dart @@ -1,7 +1,5 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; /// this is a workaround to allow navigation of spaces out from any widget. diff --git a/lib/pangea/utils/subscription_app_id.dart b/lib/pangea/utils/subscription_app_id.dart index 6aaf43237..20a69d4a2 100644 --- a/lib/pangea/utils/subscription_app_id.dart +++ b/lib/pangea/utils/subscription_app_id.dart @@ -1,7 +1,5 @@ -// Dart imports: import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; class SubscriptionAppIds { diff --git a/lib/pangea/utils/sync_status_util.dart b/lib/pangea/utils/sync_status_util.dart index bbd657887..a03a96cc2 100644 --- a/lib/pangea/utils/sync_status_util.dart +++ b/lib/pangea/utils/sync_status_util.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/localized_exception_extension.dart'; import '../../widgets/matrix.dart'; @@ -17,9 +13,12 @@ class PLoadingStatus extends StatefulWidget { final Widget child; final Widget? shimmerChild; - const PLoadingStatus( - {Key? key, required this.child, this.onFinish, this.shimmerChild}) - : super(key: key); + const PLoadingStatus({ + super.key, + required this.child, + this.onFinish, + this.shimmerChild, + }); @override PLoadingStatusState createState() => PLoadingStatusState(); @@ -69,10 +68,10 @@ class PLoadingStatusState extends State { class PangeaDefaultShimmer extends StatelessWidget { const PangeaDefaultShimmer({ - Key? key, + super.key, required this.hide, required this.status, - }) : super(key: key); + }); final bool hide; final SyncStatusUpdate status; diff --git a/lib/pangea/utils/sync_status_util_v2.dart b/lib/pangea/utils/sync_status_util_v2.dart index 06a44a9f4..640dc7054 100644 --- a/lib/pangea/utils/sync_status_util_v2.dart +++ b/lib/pangea/utils/sync_status_util_v2.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/localized_exception_extension.dart'; import '../../widgets/matrix.dart'; import 'error_handler.dart'; @@ -15,9 +12,12 @@ class PLoadingStatusV2 extends StatefulWidget { final Widget child; final Widget? shimmerChild; - const PLoadingStatusV2( - {Key? key, required this.child, this.onFinish, this.shimmerChild}) - : super(key: key); + const PLoadingStatusV2({ + super.key, + required this.child, + this.onFinish, + this.shimmerChild, + }); @override PLoadingStatusStateV2 createState() => PLoadingStatusStateV2(); @@ -68,10 +68,10 @@ class PLoadingStatusStateV2 extends State { class PangeaDefaultShimmer extends StatelessWidget { const PangeaDefaultShimmer({ - Key? key, + super.key, required this.hide, required this.status, - }) : super(key: key); + }); final bool hide; final SyncStatusUpdate status; diff --git a/lib/pangea/widgets/chat/locked_chat_message.dart b/lib/pangea/widgets/chat/locked_chat_message.dart index 75ceea9f6..7c890c7c5 100644 --- a/lib/pangea/widgets/chat/locked_chat_message.dart +++ b/lib/pangea/widgets/chat/locked_chat_message.dart @@ -1,14 +1,11 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; class LockedChatMessage extends StatelessWidget { - const LockedChatMessage({Key? key}) : super(key: key); + const LockedChatMessage({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pangea/widgets/chat_list/chat_list_body_text.dart b/lib/pangea/widgets/chat_list/chat_list_body_text.dart index 411769be7..c8984f8d7 100644 --- a/lib/pangea/widgets/chat_list/chat_list_body_text.dart +++ b/lib/pangea/widgets/chat_list/chat_list_body_text.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import '../../../pages/chat_list/chat_list.dart'; import '../../../widgets/matrix.dart'; diff --git a/lib/pangea/widgets/class/add_class_and_invite.dart b/lib/pangea/widgets/class/add_class_and_invite.dart index a9fbd6e63..e33118c73 100644 --- a/lib/pangea/widgets/class/add_class_and_invite.dart +++ b/lib/pangea/widgets/class/add_class_and_invite.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import '../../../widgets/matrix.dart'; @@ -27,12 +23,12 @@ class AddToClassAndInviteToggles extends StatefulWidget { final AddToClassMode mode; const AddToClassAndInviteToggles({ - Key? key, + super.key, this.roomId, this.startOpen = false, this.setParentState, required this.mode, - }) : super(key: key); + }); @override AddToClassAndInviteState createState() => AddToClassAndInviteState(); diff --git a/lib/pangea/widgets/class/add_space_toggles.dart b/lib/pangea/widgets/class/add_space_toggles.dart index 2e26a6b2a..ca9cba14e 100644 --- a/lib/pangea/widgets/class/add_space_toggles.dart +++ b/lib/pangea/widgets/class/add_space_toggles.dart @@ -1,19 +1,12 @@ -// Dart imports: -import 'dart:math'; - -// Flutter imports: -import 'package:flutter/material.dart'; - -// Package imports: import 'package:collection/collection.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; +import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../../../widgets/matrix.dart'; import '../../utils/firebase_analytics.dart'; import 'add_class_and_invite.dart'; @@ -25,13 +18,13 @@ class AddToSpaceToggles extends StatefulWidget { final String? activeSpaceId; final AddToClassMode mode; - const AddToSpaceToggles( - {Key? key, - this.roomId, - this.startOpen = false, - this.activeSpaceId, - required this.mode}) - : super(key: key); + const AddToSpaceToggles({ + super.key, + this.roomId, + this.startOpen = false, + this.activeSpaceId, + required this.mode, + }); @override AddToSpaceState createState() => AddToSpaceState(); @@ -55,16 +48,20 @@ class AddToSpaceState extends State { possibleParents = Matrix.of(context) .client .rooms - .where(widget.mode == AddToClassMode.exchange - ? (Room r) => r.isPangeaClass && widget.roomId != r.id - : (Room r) => - (r.isPangeaClass || r.isExchange) && widget.roomId != r.id) + .where( + widget.mode == AddToClassMode.exchange + ? (Room r) => r.isPangeaClass && widget.roomId != r.id + : (Room r) => + (r.isPangeaClass || r.isExchange) && widget.roomId != r.id, + ) .toList(); parents = widget.roomId != null ? possibleParents - .where((r) => - r.spaceChildren.any((room) => room.roomId == widget.roomId)) + .where( + (r) => + r.spaceChildren.any((room) => room.roomId == widget.roomId), + ) .map((r) => SuggestionStatus(false, r)) .cast() .toList() @@ -115,8 +112,10 @@ class AddToSpaceState extends State { Future _addSingleSpace(String roomToAddId, Room newParent) { GoogleAnalytics.addParent(roomToAddId, newParent.classCode); - return newParent.setSpaceChild(roomToAddId, - suggested: isSuggestedInSpace(newParent)); + return newParent.setSpaceChild( + roomToAddId, + suggested: isSuggestedInSpace(newParent), + ); } Future addSpaces(String roomToAddId) async { @@ -141,8 +140,10 @@ class AddToSpaceState extends State { setState( () => add ? parents.add(SuggestionStatus(false, possibleParent)) - : parents.removeWhere((suggestionStatus) => - suggestionStatus.room.id == possibleParent.id), + : parents.removeWhere( + (suggestionStatus) => + suggestionStatus.room.id == possibleParent.id, + ), ); } @@ -188,24 +189,49 @@ class AddToSpaceState extends State { ), ), ), - if (parents.any((r) => r.room.id == possibleParent.id)) - SwitchListTile.adaptive( - title: Text( - L10n.of(context)!.suggestTo(possibleParentName), - style: TextStyle( - color: Theme.of(context).colorScheme.secondary, - ), - ), - subtitle: Text( - widget.mode == AddToClassMode.chat - ? L10n.of(context)!.suggestChatDesc(possibleParentName) - : L10n.of(context)!.suggestExchangeDesc(possibleParentName), - ), - activeColor: AppConfig.activeToggleColor, - value: isSuggestedInSpace(possibleParent), - onChanged: (bool suggest) => - setSuggested(suggest, possibleParent), - ), + AnimatedSize( + duration: const Duration(milliseconds: 300), + curve: Curves.easeInOut, + child: parents.any((r) => r.room.id == possibleParent.id) + ? SwitchListTile.adaptive( + title: Row( + children: [ + const SizedBox(width: 32), + Text( + L10n.of(context)!.suggestTo(possibleParentName), + style: TextStyle( + color: Theme.of(context).colorScheme.secondary, + ), + ), + ], + ), + subtitle: Row( + children: [ + const SizedBox(width: 32), + Expanded( + child: Text( + widget.mode == AddToClassMode.chat + ? L10n.of(context)! + .suggestChatDesc(possibleParentName) + : L10n.of(context)!.suggestExchangeDesc( + possibleParentName, + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + activeColor: AppConfig.activeToggleColor, + value: isSuggestedInSpace(possibleParent), + onChanged: (bool suggest) => + setSuggested(suggest, possibleParent), + ) + : Container(), + ), + Divider( + height: 0.5, + color: Theme.of(context).colorScheme.secondary.withAlpha(25), + ), ], ), ); @@ -219,7 +245,6 @@ class AddToSpaceState extends State { final String subtitle = widget.mode == AddToClassMode.exchange ? L10n.of(context)!.addToClassDesc : L10n.of(context)!.addToClassOrExchangeDesc; - final scrollController = ScrollController(); return Column( children: [ @@ -246,29 +271,26 @@ class AddToSpaceState extends State { setState(() => isOpen = !isOpen); }, ), - if (isOpen) - Scrollbar( - controller: scrollController, - thumbVisibility: true, - child: SingleChildScrollView( - controller: scrollController, - child: Column( - children: [ - const Divider(height: 1), - SizedBox( - height: min(possibleParents.length * 55, 500), - child: ListView.builder( - shrinkWrap: true, - itemCount: possibleParents.length, - itemBuilder: (BuildContext context, int i) { - return getAddToSpaceToggleItem(i); - }, + if (isOpen) ...[ + const Divider(height: 1), + possibleParents.isNotEmpty + ? Column( + children: possibleParents + .mapIndexed((index, _) => getAddToSpaceToggleItem(index)) + .toList(), + ) + : Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + L10n.of(context)!.inNoSpaces, + style: TextStyle( + color: Theme.of(context).colorScheme.secondary, + ), ), ), - ], - ), - ), - ), + ), + ], ], ); } diff --git a/lib/pangea/widgets/class/join_with_link.dart b/lib/pangea/widgets/class/join_with_link.dart index 83114fa03..8011d718b 100644 --- a/lib/pangea/widgets/class/join_with_link.dart +++ b/lib/pangea/widgets/class/join_with_link.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/url_query_parameter_keys.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/utils/class_code.dart'; @@ -17,7 +14,7 @@ import '../../utils/error_handler.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 class JoinClassWithLink extends StatefulWidget { - const JoinClassWithLink({Key? key}) : super(key: key); + const JoinClassWithLink({super.key}); @override State createState() => _JoinClassWithLinkState(); diff --git a/lib/pangea/widgets/common/aligned_dialog.dart b/lib/pangea/widgets/common/aligned_dialog.dart index 312c3f634..c7bc5da59 100644 --- a/lib/pangea/widgets/common/aligned_dialog.dart +++ b/lib/pangea/widgets/common/aligned_dialog.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; Future showAlignedDialog({ @@ -38,23 +37,24 @@ Future showAlignedDialog({ position = overlay.localToGlobal(followerAnchor.alongSize(overlay.size)); } - return Navigator.of(context, rootNavigator: useRootNavigator) - .push(AlignedDialogRoute( - followerAlignment: followerAnchor, - position: position, - context: context, - builder: builder, - barrierColor: barrierColor, - barrierDismissible: barrierDismissible, - barrierLabel: barrierLabel, - useSafeArea: isGlobal == true, - settings: routeSettings, - themes: themes, - transitionsBuilder: transitionsBuilder, - duration: duration, - avoidOverflow: avoidOverflow, - offset: offset, - )); + return Navigator.of(context, rootNavigator: useRootNavigator).push( + AlignedDialogRoute( + followerAlignment: followerAnchor, + position: position, + context: context, + builder: builder, + barrierColor: barrierColor, + barrierDismissible: barrierDismissible, + barrierLabel: barrierLabel, + useSafeArea: isGlobal == true, + settings: routeSettings, + themes: themes, + transitionsBuilder: transitionsBuilder, + duration: duration, + avoidOverflow: avoidOverflow, + offset: offset, + ), + ); } class AlignedDialogRoute extends RawDialogRoute { @@ -67,18 +67,21 @@ class AlignedDialogRoute extends RawDialogRoute { required Alignment followerAlignment, required Offset position, CapturedThemes? themes, - Color? barrierColor = Colors.transparent, - bool barrierDismissible = true, + super.barrierColor = Colors.transparent, + super.barrierDismissible, String? barrierLabel, bool useSafeArea = false, - RouteSettings? settings, + super.settings, RouteTransitionsBuilder? transitionsBuilder, Duration? duration, bool avoidOverflow = false, Offset offset = Offset.zero, }) : super( - pageBuilder: (BuildContext buildContext, Animation animation, - Animation secondaryAnimation) { + pageBuilder: ( + BuildContext buildContext, + Animation animation, + Animation secondaryAnimation, + ) { final Widget pageChild = Builder(builder: builder); Widget dialog = Builder( builder: (BuildContext context) { @@ -103,14 +106,11 @@ class AlignedDialogRoute extends RawDialogRoute { } return dialog; }, - barrierDismissible: barrierDismissible, - barrierColor: barrierColor, barrierLabel: barrierLabel ?? MaterialLocalizations.of(context).modalBarrierDismissLabel, transitionDuration: duration ?? const Duration(milliseconds: 200), transitionBuilder: transitionsBuilder ?? _buildMaterialDialogTransitions, - settings: settings, ); } @@ -178,10 +178,11 @@ class _FollowerDialogRouteLayout extends SingleChildLayoutDelegate { } Widget _buildMaterialDialogTransitions( - BuildContext context, - Animation animation, - Animation secondaryAnimation, - Widget child) { + BuildContext context, + Animation animation, + Animation secondaryAnimation, + Widget child, +) { return FadeTransition( opacity: CurvedAnimation( parent: animation, @@ -191,10 +192,15 @@ Widget _buildMaterialDialogTransitions( ); } -Offset _buildOffSet(BuildContext context, - {required Size refChildSize, required Offset offset}) { +Offset _buildOffSet( + BuildContext context, { + required Size refChildSize, + required Offset offset, +}) { final Size screenSize = MediaQuery.of(context).size; - final Size maxAvilableArea = Size(screenSize.width - refChildSize.width, - screenSize.height - refChildSize.height); + final Size maxAvilableArea = Size( + screenSize.width - refChildSize.width, + screenSize.height - refChildSize.height, + ); return const Offset(0, 0); } diff --git a/lib/pangea/widgets/common/bot_face_svg.dart b/lib/pangea/widgets/common/bot_face_svg.dart index b35714e7a..718f10c90 100644 --- a/lib/pangea/widgets/common/bot_face_svg.dart +++ b/lib/pangea/widgets/common/bot_face_svg.dart @@ -1,15 +1,14 @@ -// Flutter imports: import 'package:flutter/material.dart'; enum BotExpression { surprised, right, addled, left, down, shocked } class BotFace extends StatelessWidget { const BotFace({ - Key? key, + super.key, required this.width, required this.expression, this.forceColor, - }) : super(key: key); + }); final double width; final Color? forceColor; diff --git a/lib/pangea/widgets/common/list_placeholder.dart b/lib/pangea/widgets/common/list_placeholder.dart index 6c7fa6d6e..4b37c08d6 100644 --- a/lib/pangea/widgets/common/list_placeholder.dart +++ b/lib/pangea/widgets/common/list_placeholder.dart @@ -1,17 +1,16 @@ -// Flutter imports: import 'package:flutter/material.dart'; class ListPlaceholder extends StatelessWidget { static const dummyChatCount = 5; - const ListPlaceholder({Key? key}) : super(key: key); + const ListPlaceholder({super.key}); @override Widget build(BuildContext context) { final titleColor = - Theme.of(context).textTheme.bodyText1!.color!.withAlpha(100); + Theme.of(context).textTheme.bodyLarge!.color!.withAlpha(100); final subtitleColor = - Theme.of(context).textTheme.bodyText1!.color!.withAlpha(50); + Theme.of(context).textTheme.bodyLarge!.color!.withAlpha(50); return ListView.builder( itemCount: dummyChatCount, @@ -23,7 +22,7 @@ class ListPlaceholder extends StatelessWidget { backgroundColor: titleColor, child: CircularProgressIndicator( strokeWidth: 1, - color: Theme.of(context).textTheme.bodyText1!.color, + color: Theme.of(context).textTheme.bodyLarge!.color, ), ), title: Row( diff --git a/lib/pangea/widgets/common/p_circular_loader.dart b/lib/pangea/widgets/common/p_circular_loader.dart index 1cc927dd5..a5b6d0e1c 100644 --- a/lib/pangea/widgets/common/p_circular_loader.dart +++ b/lib/pangea/widgets/common/p_circular_loader.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; class PCircular extends StatelessWidget { @@ -12,9 +11,10 @@ class PCircular extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox( - height: size ?? 25, - width: size ?? 25, - child: const CircularProgressIndicator()), + height: size ?? 25, + width: size ?? 25, + child: const CircularProgressIndicator(), + ), ], ); } diff --git a/lib/pangea/widgets/common/pangea_logo_svg.dart b/lib/pangea/widgets/common/pangea_logo_svg.dart index 6a2b3b94f..485f08b65 100644 --- a/lib/pangea/widgets/common/pangea_logo_svg.dart +++ b/lib/pangea/widgets/common/pangea_logo_svg.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_svg/svg.dart'; class PangeaLogoSvg extends StatelessWidget { - const PangeaLogoSvg({Key? key, required this.width, this.forceColor}) - : super(key: key); + const PangeaLogoSvg({super.key, required this.width, this.forceColor}); final double width; final Color? forceColor; diff --git a/lib/pangea/widgets/common/star_rating.dart b/lib/pangea/widgets/common/star_rating.dart index 2f34490e5..b415ec030 100644 --- a/lib/pangea/widgets/common/star_rating.dart +++ b/lib/pangea/widgets/common/star_rating.dart @@ -1,7 +1,6 @@ -// Flutter imports: import 'package:flutter/material.dart'; -typedef void RatingChangeCallback(double rating); +typedef RatingChangeCallback = void Function(double rating); class StarRating extends StatelessWidget { final int starCount; @@ -9,13 +8,13 @@ class StarRating extends StatelessWidget { final RatingChangeCallback? onRatingChanged; final Color color; - StarRating( - {Key? key, - this.starCount = 5, - this.rating = 0, - this.onRatingChanged, - required this.color}) - : super(key: key); + const StarRating({ + super.key, + this.starCount = 5, + this.rating = 0, + this.onRatingChanged, + required this.color, + }); Widget buildStar(BuildContext context, int index) { Icon icon; @@ -50,8 +49,8 @@ class StarRating extends StatelessWidget { @override Widget build(BuildContext context) { return Row( - mainAxisSize: MainAxisSize.min, - children: - List.generate(starCount, (index) => buildStar(context, index))); + mainAxisSize: MainAxisSize.min, + children: List.generate(starCount, (index) => buildStar(context, index)), + ); } } diff --git a/lib/pangea/widgets/common_widgets/edit_list_tile.dart b/lib/pangea/widgets/common_widgets/edit_list_tile.dart index 7780673e2..38d1db883 100644 --- a/lib/pangea/widgets/common_widgets/edit_list_tile.dart +++ b/lib/pangea/widgets/common_widgets/edit_list_tile.dart @@ -1,20 +1,17 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: -import '../../../utils/url_launcher.dart'; import '../../../widgets/avatar.dart'; class EditClassListTile extends StatefulWidget { String title = ''; Function() onTap; String subtitle = ""; - EditClassListTile( - {Key? key, - required this.title, - required this.onTap, - required this.subtitle}) - : super(key: key); + EditClassListTile({ + super.key, + required this.title, + required this.onTap, + required this.subtitle, + }); @override State createState() => _EditClassListTileState(); @@ -31,10 +28,13 @@ class _EditClassListTileState extends State { radius: Avatar.defaultSize / 2, child: const Icon(Icons.edit_outlined), ), - title: Text('${widget.title}:', - style: TextStyle( - color: Theme.of(context).colorScheme.secondary, - fontWeight: FontWeight.bold)), + title: Text( + '${widget.title}:', + style: TextStyle( + color: Theme.of(context).colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), subtitle: Text( widget.subtitle, style: TextStyle( diff --git a/lib/pangea/widgets/common_widgets/overlay_container.dart b/lib/pangea/widgets/common_widgets/overlay_container.dart index e0a9f28da..4fc64fb3d 100644 --- a/lib/pangea/widgets/common_widgets/overlay_container.dart +++ b/lib/pangea/widgets/common_widgets/overlay_container.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; class OverlayContainer extends StatelessWidget { @@ -7,11 +6,11 @@ class OverlayContainer extends StatelessWidget { final Color? borderColor; const OverlayContainer({ - Key? key, + super.key, required this.cardToShow, this.cardSize = const Size(300.0, 300.0), this.borderColor, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/widgets/common_widgets/p_input_field.dart b/lib/pangea/widgets/common_widgets/p_input_field.dart index 02dc7692e..10898615b 100644 --- a/lib/pangea/widgets/common_widgets/p_input_field.dart +++ b/lib/pangea/widgets/common_widgets/p_input_field.dart @@ -1,21 +1,17 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: -import 'package:flutter_gen/gen_l10n/l10n.dart'; - class PInputTextField extends StatelessWidget { TextEditingController controller; Function(String) onSubmit; String labelText; String hintText; - PInputTextField( - {Key? key, - required this.controller, - required this.onSubmit, - required this.labelText, - required this.hintText}) - : super(key: key); + PInputTextField({ + super.key, + required this.controller, + required this.onSubmit, + required this.labelText, + required this.hintText, + }); @override Widget build(BuildContext context) { @@ -28,9 +24,10 @@ class PInputTextField extends StatelessWidget { textInputAction: TextInputAction.go, onSubmitted: onSubmit, decoration: InputDecoration( - labelText: labelText, - prefixIcon: const Icon(Icons.people_outlined), - hintText: hintText), + labelText: labelText, + prefixIcon: const Icon(Icons.people_outlined), + hintText: hintText, + ), ), ); } diff --git a/lib/pangea/widgets/flag.dart b/lib/pangea/widgets/flag.dart index 329d52ab8..08327530d 100644 --- a/lib/pangea/widgets/flag.dart +++ b/lib/pangea/widgets/flag.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/widgets/avatar.dart'; import '../models/language_model.dart'; @@ -9,10 +7,10 @@ class LanguageFlag extends StatelessWidget { final LanguageModel? language; final double size; const LanguageFlag({ - Key? key, + super.key, required this.language, this.size = 30, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/widgets/igc/card_error_widget.dart b/lib/pangea/widgets/igc/card_error_widget.dart index d0b3d1f1e..8c546c7f6 100644 --- a/lib/pangea/widgets/igc/card_error_widget.dart +++ b/lib/pangea/widgets/igc/card_error_widget.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/utils/bot_style.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; @@ -13,11 +11,11 @@ class CardErrorWidget extends StatelessWidget { final Choreographer? choreographer; final int? offset; const CardErrorWidget({ - Key? key, + super.key, this.error, this.choreographer, this.offset, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/widgets/igc/card_header.dart b/lib/pangea/widgets/igc/card_header.dart index c8e52f598..5ee6b98f2 100644 --- a/lib/pangea/widgets/igc/card_header.dart +++ b/lib/pangea/widgets/igc/card_header.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import '../../../widgets/matrix.dart'; import '../../utils/bot_style.dart'; @@ -9,11 +7,11 @@ import '../common/bot_face_svg.dart'; class CardHeader extends StatelessWidget { const CardHeader({ - Key? key, + super.key, required this.text, required this.botExpression, this.onClose, - }) : super(key: key); + }); final BotExpression botExpression; final String text; diff --git a/lib/pangea/widgets/igc/pangea_rich_text.dart b/lib/pangea/widgets/igc/pangea_rich_text.dart index e9b430fd0..746c65cc2 100644 --- a/lib/pangea/widgets/igc/pangea_rich_text.dart +++ b/lib/pangea/widgets/igc/pangea_rich_text.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:developer'; import 'dart:ui'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:sentry_flutter/sentry_flutter.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/constants/language_keys.dart'; @@ -35,7 +31,7 @@ class PangeaRichText extends StatefulWidget { final Choreographer? choreographer; const PangeaRichText({ - Key? key, + super.key, required this.pangeaMessageEvent, required this.selected, required this.selectedDisplayLang, @@ -43,7 +39,7 @@ class PangeaRichText extends StatefulWidget { required this.definitions, this.choreographer, this.existingStyle, - }) : super(key: key); + }); @override PangeaRichTextState createState() => PangeaRichTextState(); @@ -154,7 +150,8 @@ class PangeaRichTextState extends State { if (repEvent.event?.eventId.contains("web") ?? false) { Sentry.addBreadcrumb( - Breadcrumb.fromJson({"repEvent.event": repEvent.event?.toJson()})); + Breadcrumb.fromJson({"repEvent.event": repEvent.event?.toJson()}), + ); Sentry.addBreadcrumb( Breadcrumb( message: @@ -206,24 +203,29 @@ class PangeaRichTextState extends State { TextSpan( text: text, style: widget.existingStyle, - ) + ), ]; List textWithBotStyle( - RepresentationEvent repEvent, BuildContext context) => + RepresentationEvent repEvent, + BuildContext context, + ) => [ TextSpan( text: repEvent.text, style: textStyle(repEvent, context), - ) + ), ]; TextStyle? textStyle(RepresentationEvent repEvent, BuildContext context) => // !repEvent.botAuthored true ? widget.existingStyle - : BotStyle.text(context, - existingStyle: widget.existingStyle, setColor: false); + : BotStyle.text( + context, + existingStyle: widget.existingStyle, + setColor: false, + ); bool get areLanguagesSet => userL2LangCode != null && userL2LangCode != LanguageKeys.unknownLanguage; @@ -247,7 +249,9 @@ class PangeaRichTextState extends State { } Future onReplacementSelect( - PangeaMatch pangeaMatch, String replacement) async { + PangeaMatch pangeaMatch, + String replacement, + ) async { debugPrint("PTODO implement onReplacementSelect"); } diff --git a/lib/pangea/widgets/igc/pangea_text_controller.dart b/lib/pangea/widgets/igc/pangea_text_controller.dart index 3676dcf88..5e64b4bef 100644 --- a/lib/pangea/widgets/igc/pangea_text_controller.dart +++ b/lib/pangea/widgets/igc/pangea_text_controller.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/widgets/igc/span_card.dart'; import 'package:fluffychat/pangea/widgets/igc/word_data_card.dart'; import '../../choreographer/controllers/choreographer.dart'; @@ -72,7 +69,8 @@ class PangeaTextController extends TextEditingController { debugPrint("onSentenceRewrite $tokenIndex $sentenceRewrite"); }), onIgnore: () => choreographer.onIgnoreMatch( - cursorOffset: selection.baseOffset), + cursorOffset: selection.baseOffset, + ), onITStart: () { choreographer.onITStart( choreographer.igc.igcTextData!.matches[matchIndex], @@ -147,7 +145,7 @@ class PangeaTextController extends TextEditingController { transformTargetId: choreographer.inputTransformTargetKey, room: choreographer.chatController.room, ), - TextSpan(text: parts[1], style: style) + TextSpan(text: parts[1], style: style), ], ); } diff --git a/lib/pangea/widgets/igc/span_card.dart b/lib/pangea/widgets/igc/span_card.dart index 30d8ba9b5..a060ed2e1 100644 --- a/lib/pangea/widgets/igc/span_card.dart +++ b/lib/pangea/widgets/igc/span_card.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/enum/span_data_type.dart'; import 'package:fluffychat/pangea/models/span_data.dart'; @@ -39,10 +35,10 @@ class SpanCard extends StatefulWidget { final String? roomId; SpanCard({ - Key? key, + super.key, required this.scm, this.roomId, - }) : super(key: key); + }); @override State createState() => SpanCardState(); @@ -99,8 +95,8 @@ class WordMatchContent extends StatelessWidget { WordMatchContent({ required this.controller, - Key? key, - }) : super(key: key); + super.key, + }); Future onChoiceSelect(int index) async { controller.selectedChoiceIndex = index; @@ -188,10 +184,12 @@ class WordMatchContent extends StatelessWidget { isLoading: controller.fetchingData, choices: controller.widget.scm.pangeaMatch!.match.choices - ?.map((e) => Choice( - text: e.value, - color: e.selected ? e.type.color : null, - )) + ?.map( + (e) => Choice( + text: e.value, + color: e.selected ? e.type.color : null, + ), + ) .toList(), onPressed: onChoiceSelect, uniqueKeyForLayerLink: (int index) => "wordMatch$index", @@ -214,12 +212,15 @@ class WordMatchContent extends StatelessWidget { child: TextButton( style: ButtonStyle( backgroundColor: MaterialStateProperty.all( - AppConfig.primaryColor.withOpacity(0.1)), + AppConfig.primaryColor.withOpacity(0.1), + ), ), onPressed: () { MatrixState.pAnyState.closeOverlay(); - Future.delayed(Duration.zero, - () => controller.widget.scm.onIgnore()); + Future.delayed( + Duration.zero, + () => controller.widget.scm.onIgnore(), + ); }, child: Center( child: Text(L10n.of(context)!.ignoreInThisText), @@ -238,10 +239,11 @@ class WordMatchContent extends StatelessWidget { : null, style: ButtonStyle( backgroundColor: MaterialStateProperty.all( - (controller.selectedChoice != null - ? controller.selectedChoice!.color - : AppConfig.primaryColor) - .withOpacity(0.2)), + (controller.selectedChoice != null + ? controller.selectedChoice!.color + : AppConfig.primaryColor) + .withOpacity(0.2), + ), ), child: Text(L10n.of(context)!.replace), ), @@ -253,12 +255,15 @@ class WordMatchContent extends StatelessWidget { child: TextButton( onPressed: () { MatrixState.pAnyState.closeOverlay(); - Future.delayed(Duration.zero, - () => controller.widget.scm.onITStart()); + Future.delayed( + Duration.zero, + () => controller.widget.scm.onITStart(), + ); }, style: ButtonStyle( backgroundColor: MaterialStateProperty.all( - (AppConfig.primaryColor).withOpacity(0.1)), + (AppConfig.primaryColor).withOpacity(0.1), + ), ), child: Text(L10n.of(context)!.helpMeTranslate), ), @@ -317,7 +322,8 @@ class PromptAndFeedback extends StatelessWidget { }, style: ButtonStyle( backgroundColor: MaterialStateProperty.all( - AppConfig.primaryColor.withOpacity(0.1)), + AppConfig.primaryColor.withOpacity(0.1), + ), ), child: SizedBox( width: 150, // set the width of the button contents here @@ -339,7 +345,7 @@ class PromptAndFeedback extends StatelessWidget { ], ), ), - ) + ), ], if (!controller.fetchingData && controller.selectedChoiceIndex == null) @@ -356,8 +362,8 @@ class PromptAndFeedback extends StatelessWidget { class LoadingText extends StatefulWidget { const LoadingText({ - Key? key, - }) : super(key: key); + super.key, + }); @override _LoadingTextState createState() => _LoadingTextState(); @@ -401,9 +407,9 @@ class _LoadingTextState extends State class StartITButton extends StatelessWidget { const StartITButton({ - Key? key, + super.key, required this.onITStart, - }) : super(key: key); + }); final void Function() onITStart; diff --git a/lib/pangea/widgets/igc/span_data.dart b/lib/pangea/widgets/igc/span_data.dart index 52520beb9..a92f32f74 100644 --- a/lib/pangea/widgets/igc/span_data.dart +++ b/lib/pangea/widgets/igc/span_data.dart @@ -4,11 +4,8 @@ // SpanChoice of text in message from options // Call to server for additional/followup info -// Package imports: import 'package:collection/collection.dart'; -// Project imports: -import '../../enum/span_choice_type.dart'; import '../../enum/span_data_type.dart'; class SpanData { @@ -42,11 +39,13 @@ class SpanData { shortMessage: json['shortMessage'], choices: json['choices'] != null ? List.from( - json['choices'].map((x) => SpanChoice.fromJson(x))) + json['choices'].map((x) => SpanChoice.fromJson(x)), + ) : null, replacements: json['replacements'] != null ? List.from( - json['replacements'].map((x) => Replacement.fromJson(x))) + json['replacements'].map((x) => Replacement.fromJson(x)), + ) : null, offset: json['offset'], length: json['length'], @@ -54,7 +53,8 @@ class SpanData { context: json['context'] != null ? Context.fromJson(json['context']) : null, type: SpanDataTypeEnum.values.firstWhereOrNull( - (e) => e.toString() == 'SpanDataTypeEnum.${json['type']}') ?? + (e) => e.toString() == 'SpanDataTypeEnum.${json['type']}', + ) ?? SpanDataTypeEnum.correction, rule: json['rule'] != null ? Rule.fromJson(json['rule']) : null, ); diff --git a/lib/pangea/widgets/igc/word_data_card.dart b/lib/pangea/widgets/igc/word_data_card.dart index c584f1f3a..8c1940aae 100644 --- a/lib/pangea/widgets/igc/word_data_card.dart +++ b/lib/pangea/widgets/igc/word_data_card.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:http/http.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/language_keys.dart'; import 'package:fluffychat/pangea/controllers/contextual_definition_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; @@ -36,7 +32,7 @@ class WordDataCard extends StatefulWidget { final Room room; const WordDataCard({ - Key? key, + super.key, required this.word, required this.wordLang, required this.hasInfo, @@ -44,7 +40,7 @@ class WordDataCard extends StatefulWidget { required this.fullTextLang, required this.room, this.choiceFeedback, - }) : super(key: key); + }); @override State createState() => WordDataCardController(); @@ -142,9 +138,9 @@ class WordDataCardController extends State { class WordDataCardView extends StatelessWidget { const WordDataCardView({ - Key? key, + super.key, required this.controller, - }) : super(key: key); + }); final WordDataCardController controller; @@ -170,8 +166,9 @@ class WordDataCardView extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ CardHeader( - text: controller.widget.word, - botExpression: BotExpression.down), + text: controller.widget.word, + botExpression: BotExpression.down, + ), if (controller.widget.choiceFeedback != null) Text( controller.widget.choiceFeedback!, @@ -222,11 +219,11 @@ class WordNetInfo extends StatelessWidget { final LanguageModel activeL2; const WordNetInfo({ - Key? key, + super.key, required this.wordData, required this.activeL1, required this.activeL2, - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -254,11 +251,11 @@ enum LanguageType { class SensesForLanguage extends StatelessWidget { const SensesForLanguage({ - Key? key, + super.key, required this.wordData, required this.languageType, required this.language, - }) : super(key: key); + }); final LanguageModel language; final LanguageType languageType; @@ -282,7 +279,7 @@ class SensesForLanguage extends StatelessWidget { wordData: wordData, languageType: languageType, ), - ) + ), ], ), ); @@ -294,10 +291,10 @@ class PartOfSpeechBlock extends StatelessWidget { final LanguageType languageType; const PartOfSpeechBlock({ - Key? key, + super.key, required this.wordData, required this.languageType, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/widgets/login/home_picker_logo.dart b/lib/pangea/widgets/login/home_picker_logo.dart index 5c8c12b44..a1427a449 100644 --- a/lib/pangea/widgets/login/home_picker_logo.dart +++ b/lib/pangea/widgets/login/home_picker_logo.dart @@ -1,15 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: -import 'package:flutter_svg/flutter_svg.dart'; - -// Project imports: import '../../../config/app_config.dart'; import '../common/pangea_logo_svg.dart'; class PangeaLogoAndNameWidget extends StatelessWidget { - const PangeaLogoAndNameWidget({Key? key}) : super(key: key); + const PangeaLogoAndNameWidget({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pangea/widgets/new_group/topics_list.dart b/lib/pangea/widgets/new_group/topics_list.dart index b2bdf6920..e720b95af 100644 --- a/lib/pangea/widgets/new_group/topics_list.dart +++ b/lib/pangea/widgets/new_group/topics_list.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:convert'; -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import '../../models/chat_topic_model.dart'; /// the widget loads the list of ChatTopic from assets/chat_data.json diff --git a/lib/pangea/widgets/new_group/vocab_list.dart b/lib/pangea/widgets/new_group/vocab_list.dart index 0824c81f6..e6c2675e4 100644 --- a/lib/pangea/widgets/new_group/vocab_list.dart +++ b/lib/pangea/widgets/new_group/vocab_list.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/widgets/matrix.dart'; import '../../models/chat_topic_model.dart'; @@ -30,10 +27,10 @@ import '../common/bot_face_svg.dart'; class ChatVocabularyList extends StatelessWidget { const ChatVocabularyList({ - Key? key, + super.key, required this.topic, required this.onChanged, - }) : super(key: key); + }); final ChatTopic topic; final ValueChanged> onChanged; @@ -171,10 +168,10 @@ class VocabWord { class WordAddTextField extends StatefulWidget { const WordAddTextField({ - Key? key, + super.key, required this.onSubmitted, required this.words, - }) : super(key: key); + }); final ValueChanged onSubmitted; final List words; @@ -247,11 +244,11 @@ class WordAddTextFieldState extends State { /// uses app theme colors, text styles, and icons class GenerateVocabButton extends StatefulWidget { const GenerateVocabButton({ - Key? key, + super.key, required this.onWordsGenerated, required this.onPressed, required this.topic, - }) : super(key: key); + }); final ChatTopic topic; final ValueChanged> onWordsGenerated; @@ -334,11 +331,11 @@ class GenerateVocabButtonState extends State { /// 3) onChanged callback function to pass the updated ChatTopic back to the parent widget class DescriptionField extends StatelessWidget { const DescriptionField({ - Key? key, + super.key, required this.topic, required this.initialValue, required this.onChanged, - }) : super(key: key); + }); final ChatTopic topic; final String initialValue; @@ -368,10 +365,10 @@ class DescriptionField extends StatelessWidget { /// 3) onChanged callback function to pass the updated ChatTopic back to the parent widget class NameField extends StatelessWidget { const NameField({ - Key? key, + super.key, required this.topic, required this.onChanged, - }) : super(key: key); + }); final ChatTopic topic; final ValueChanged onChanged; @@ -398,10 +395,10 @@ class NameField extends StatelessWidget { /// 2) callback function to pass the updated ChatTopic back to the parent widget class PromptsField extends StatefulWidget { const PromptsField({ - Key? key, + super.key, required this.topic, required this.onChanged, - }) : super(key: key); + }); final ChatTopic topic; final ValueChanged onChanged; diff --git a/lib/pangea/widgets/signup/signup_buttons.dart b/lib/pangea/widgets/signup/signup_buttons.dart index c82f29dc7..bd446c037 100644 --- a/lib/pangea/widgets/signup/signup_buttons.dart +++ b/lib/pangea/widgets/signup/signup_buttons.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:typed_data'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:image_picker/image_picker.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/widgets/common/pangea_logo_svg.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; @@ -19,7 +15,7 @@ import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/matrix.dart'; class SignupButtons extends StatefulWidget { - const SignupButtons({Key? key}) : super(key: key); + const SignupButtons({super.key}); @override State createState() => SignupButtonsState(); @@ -164,7 +160,10 @@ class SignupButtonsState extends State { prefixIcon: const Icon(Icons.account_box_outlined), hintText: L10n.of(context)!.chooseAUsername, errorText: signupError, - errorStyle: const TextStyle(color: Colors.orange), + errorStyle: TextStyle( + color: Theme.of(context).textTheme.bodyMedium?.color, + fontSize: 14, + ), fillColor: Theme.of(context).colorScheme.background.withOpacity(0.75), ), diff --git a/lib/pangea/widgets/signup/tos_checkbox.dart b/lib/pangea/widgets/signup/tos_checkbox.dart index 05dce6952..f5bca72c2 100644 --- a/lib/pangea/widgets/signup/tos_checkbox.dart +++ b/lib/pangea/widgets/signup/tos_checkbox.dart @@ -1,17 +1,16 @@ // Flutter imports: + import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/pages/sign_up/signup.dart'; import 'package:fluffychat/utils/url_launcher.dart'; class TosCheckbox extends StatelessWidget { final SignupPageController controller; - const TosCheckbox(this.controller, {Key? key}) : super(key: key); + const TosCheckbox(this.controller, {super.key}); @override Widget build(BuildContext context) { @@ -55,7 +54,10 @@ class TosCheckbox extends StatelessWidget { margin: const EdgeInsets.only(top: 5), child: Text( controller.signupError ?? '', - style: const TextStyle(color: Colors.orange, fontSize: 12), + style: TextStyle( + color: Theme.of(context).textTheme.bodyMedium?.color, + fontSize: 14, + ), ), ), ), diff --git a/lib/pangea/widgets/space/class_settings.dart b/lib/pangea/widgets/space/class_settings.dart index 86066e972..03a139c45 100644 --- a/lib/pangea/widgets/space/class_settings.dart +++ b/lib/pangea/widgets/space/class_settings.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/models/class_model.dart'; import '../../../widgets/matrix.dart'; import '../../constants/language_keys.dart'; @@ -29,8 +25,7 @@ class ClassSettings extends StatefulWidget { final String? roomId; final bool startOpen; - const ClassSettings({Key? key, this.roomId, this.startOpen = false}) - : super(key: key); + const ClassSettings({super.key, this.roomId, this.startOpen = false}); @override ClassSettingsState createState() => ClassSettingsState(); @@ -139,8 +134,8 @@ class ClassSettingsState extends State { child: Column( children: [ PQuestionContainer( - title: - L10n.of(context)!.selectClassRoomDominantLanguage), + title: L10n.of(context)!.selectClassRoomDominantLanguage, + ), PLanguageDropdown( onChange: (p0) => updatePermission(() { classSettings.dominantLanguage = p0.langCode; @@ -153,7 +148,8 @@ class ClassSettingsState extends State { showMultilingual: true, ), PQuestionContainer( - title: L10n.of(context)!.selectTargetLanguage), + title: L10n.of(context)!.selectTargetLanguage, + ), PLanguageDropdown( onChange: (p0) => updatePermission(() { classSettings.targetLanguage = p0.langCode; @@ -165,7 +161,8 @@ class ClassSettingsState extends State { languages: pangeaController.pLanguageStore.targetOptions, ), PQuestionContainer( - title: L10n.of(context)!.whatIsYourClassLanguageLevel), + title: L10n.of(context)!.whatIsYourClassLanguageLevel, + ), Padding( padding: const EdgeInsets.all(12.0), child: Container( @@ -210,7 +207,9 @@ class ClassSettingsState extends State { value: levelOption, child: Text( LanguageLevelTextPicker.languageLevelText( - context, levelOption), + context, + levelOption, + ), style: const TextStyle().copyWith( color: Theme.of(context) .textTheme diff --git a/lib/pangea/widgets/subscription/subscription_buttons.dart b/lib/pangea/widgets/subscription/subscription_buttons.dart index 267233ec7..7798b5b28 100644 --- a/lib/pangea/widgets/subscription/subscription_buttons.dart +++ b/lib/pangea/widgets/subscription/subscription_buttons.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:fluffychat/pangea/pages/settings_subscription/settings_subscription.dart'; @@ -15,8 +12,8 @@ class SubscriptionButtons extends StatelessWidget { final PangeaController pangeaController = MatrixState.pangeaController; SubscriptionButtons({ required this.controller, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) { diff --git a/lib/pangea/widgets/subscription/subscription_options.dart b/lib/pangea/widgets/subscription/subscription_options.dart index 78ff47bad..b755557b8 100644 --- a/lib/pangea/widgets/subscription/subscription_options.dart +++ b/lib/pangea/widgets/subscription/subscription_options.dart @@ -4,7 +4,6 @@ import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; class SubscriptionOptions extends StatelessWidget { diff --git a/lib/pangea/widgets/subscription/subscription_paywall.dart b/lib/pangea/widgets/subscription/subscription_paywall.dart index 9de144bd0..d68b35a83 100644 --- a/lib/pangea/widgets/subscription/subscription_paywall.dart +++ b/lib/pangea/widgets/subscription/subscription_paywall.dart @@ -4,7 +4,6 @@ import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/widgets/subscription/subscription_options.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; class SubscriptionPaywall extends StatelessWidget { diff --git a/lib/pangea/widgets/user_settings/country_picker_tile.dart b/lib/pangea/widgets/user_settings/country_picker_tile.dart index bb66c4e85..ec62374e9 100644 --- a/lib/pangea/widgets/user_settings/country_picker_tile.dart +++ b/lib/pangea/widgets/user_settings/country_picker_tile.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:country_picker/country_picker.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/widgets/matrix.dart'; import '../../models/user_model.dart'; @@ -18,7 +14,7 @@ import '../../models/user_model.dart'; class CountryPickerTile extends StatelessWidget { final PangeaController pangeaController = MatrixState.pangeaController; - CountryPickerTile({Key? key}) : super(key: key); + CountryPickerTile({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pangea/widgets/user_settings/language_tile.dart b/lib/pangea/widgets/user_settings/language_tile.dart index 52e5d2efe..085779781 100644 --- a/lib/pangea/widgets/user_settings/language_tile.dart +++ b/lib/pangea/widgets/user_settings/language_tile.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:fluffychat/widgets/matrix.dart'; @@ -16,7 +13,7 @@ import 'p_language_dialog.dart'; class LanguageTile extends StatelessWidget { final PangeaController pangeaController = MatrixState.pangeaController; - LanguageTile({Key? key}) : super(key: key); + LanguageTile({super.key}); @override Widget build(BuildContext context) { @@ -50,34 +47,39 @@ class LanguageTile extends StatelessWidget { // ]), title: Text(L10n.of(context)!.myLanguages), subtitle: Row( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - LanguageFlag( - language: sourceLanguage, - ), - const SizedBox( - width: 10, - ), - Text(sourceLanguage?.getDisplayName(context) ?? - L10n.of(context)!.sourceLanguage), - const SizedBox( - width: 10, - ), - const Icon(Icons.arrow_right_alt_outlined, size: 20), - const SizedBox( - width: 10, - ), - LanguageFlag( - language: targetLanguage, - ), - const SizedBox( - width: 10, - ), - Text(targetLanguage?.getDisplayName(context) ?? - L10n.of(context)!.targetLanguage), - ]), + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + LanguageFlag( + language: sourceLanguage, + ), + const SizedBox( + width: 10, + ), + Text( + sourceLanguage?.getDisplayName(context) ?? + L10n.of(context)!.sourceLanguage, + ), + const SizedBox( + width: 10, + ), + const Icon(Icons.arrow_right_alt_outlined, size: 20), + const SizedBox( + width: 10, + ), + LanguageFlag( + language: targetLanguage, + ), + const SizedBox( + width: 10, + ), + Text( + targetLanguage?.getDisplayName(context) ?? + L10n.of(context)!.targetLanguage, + ), + ], + ), trailing: const Icon(Icons.edit_outlined), onTap: () => pLanguageDialog(context, () {}), ); diff --git a/lib/pangea/widgets/user_settings/p_language_dialog.dart b/lib/pangea/widgets/user_settings/p_language_dialog.dart index 99c5d44fc..b914212dc 100644 --- a/lib/pangea/widgets/user_settings/p_language_dialog.dart +++ b/lib/pangea/widgets/user_settings/p_language_dialog.dart @@ -1,15 +1,11 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; @@ -44,7 +40,8 @@ pLanguageDialog(BuildContext parentContext, Function callback) { mainAxisSize: MainAxisSize.min, children: [ PQuestionContainer( - title: L10n.of(parentContext)!.whatIsYourBaseLanguage), + title: L10n.of(parentContext)!.whatIsYourBaseLanguage, + ), PLanguageDropdown( onChange: (p0) => setState(() => selectedSourceLanguage = p0), @@ -52,8 +49,8 @@ pLanguageDialog(BuildContext parentContext, Function callback) { languages: pangeaController.pLanguageStore.baseOptions, ), PQuestionContainer( - title: - L10n.of(parentContext)!.whatLanguageYouWantToLearn), + title: L10n.of(parentContext)!.whatLanguageYouWantToLearn, + ), PLanguageDropdown( onChange: (p0) => setState(() => selectedTargetLanguage = p0), @@ -99,7 +96,8 @@ pLanguageDialog(BuildContext parentContext, Function callback) { : ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text( - L10n.of(parentContext)!.noIdenticalLanguages), + L10n.of(parentContext)!.noIdenticalLanguages, + ), backgroundColor: Theme.of(context).colorScheme.primary, ), diff --git a/lib/pangea/widgets/user_settings/p_language_dropdown.dart b/lib/pangea/widgets/user_settings/p_language_dropdown.dart index d713a6aac..0694355c5 100644 --- a/lib/pangea/widgets/user_settings/p_language_dropdown.dart +++ b/lib/pangea/widgets/user_settings/p_language_dropdown.dart @@ -1,7 +1,7 @@ // Flutter imports: + import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/models/language_model.dart'; import '../../widgets/flag.dart'; @@ -11,13 +11,13 @@ class PLanguageDropdown extends StatefulWidget { final Function(LanguageModel) onChange; final bool showMultilingual; - const PLanguageDropdown( - {Key? key, - required this.languages, - required this.onChange, - required this.initialLanguage, - this.showMultilingual = false}) - : super(key: key); + const PLanguageDropdown({ + super.key, + required this.languages, + required this.onChange, + required this.initialLanguage, + this.showMultilingual = false, + }); @override State createState() => _PLanguageDropdownState(); @@ -27,18 +27,32 @@ class _PLanguageDropdownState extends State { @override Widget build(BuildContext context) { final List sortedLanguages = widget.languages; - sortedLanguages.sort((a, b) => - a.getDisplayName(context)!.compareTo(b.getDisplayName(context)!)); + + int sortLanguages(LanguageModel a, LanguageModel b) { + if (a.langCode == 'en') { + return -1; // "English" comes first + } else if (b.langCode == 'en') { + return 1; + } else if (a.langCode == 'es') { + return -1; // "Spanish" comes second + } else if (b.langCode == 'es') { + return 1; + } + return a.getDisplayName(context)!.compareTo(b.getDisplayName(context)!); + } + + sortedLanguages.sort((a, b) => sortLanguages(a, b)); return Padding( padding: const EdgeInsets.all(12), child: Container( decoration: BoxDecoration( - border: Border.all( - color: Theme.of(context).colorScheme.secondary, - width: 0.5, - ), - borderRadius: const BorderRadius.all(Radius.circular(10))), + border: Border.all( + color: Theme.of(context).colorScheme.secondary, + width: 0.5, + ), + borderRadius: const BorderRadius.all(Radius.circular(10)), + ), child: DropdownButton( // Initial Value hint: Row( @@ -55,11 +69,12 @@ class _PLanguageDropdownState extends State { Text( widget.initialLanguage.getDisplayName(context) ?? "", style: const TextStyle().copyWith( - color: Theme.of(context).textTheme.bodyLarge!.color, - fontSize: 14), + color: Theme.of(context).textTheme.bodyLarge!.color, + fontSize: 14, + ), overflow: TextOverflow.clip, textAlign: TextAlign.center, - ) + ), ], ), @@ -71,19 +86,19 @@ class _PLanguageDropdownState extends State { items: [ if (widget.showMultilingual) DropdownMenuItem( - value: LanguageModel.multiLingual(context), - child: LanguageDropDownEntry( - languageModel: LanguageModel.multiLingual(context), - )), - ...sortedLanguages - .map( - (languageModel) => DropdownMenuItem( - value: languageModel, - child: LanguageDropDownEntry( - languageModel: languageModel, - )), - ) - .toList() + value: LanguageModel.multiLingual(context), + child: LanguageDropDownEntry( + languageModel: LanguageModel.multiLingual(context), + ), + ), + ...sortedLanguages.map( + (languageModel) => DropdownMenuItem( + value: languageModel, + child: LanguageDropDownEntry( + languageModel: languageModel, + ), + ), + ), ], onChanged: (value) => widget.onChange(value!), ), @@ -95,9 +110,9 @@ class _PLanguageDropdownState extends State { class LanguageDropDownEntry extends StatelessWidget { final LanguageModel languageModel; const LanguageDropDownEntry({ - Key? key, + super.key, required this.languageModel, - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -114,11 +129,12 @@ class LanguageDropDownEntry extends StatelessWidget { Text( languageModel.getDisplayName(context) ?? "", style: const TextStyle().copyWith( - color: Theme.of(context).textTheme.bodyLarge!.color, - fontSize: 14), + color: Theme.of(context).textTheme.bodyLarge!.color, + fontSize: 14, + ), overflow: TextOverflow.clip, textAlign: TextAlign.center, - ) + ), ], ), ); diff --git a/lib/pangea/widgets/user_settings/p_question_container.dart b/lib/pangea/widgets/user_settings/p_question_container.dart index b4a8a5e0a..95a9b7c20 100644 --- a/lib/pangea/widgets/user_settings/p_question_container.dart +++ b/lib/pangea/widgets/user_settings/p_question_container.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; class PQuestionContainer extends StatelessWidget { @@ -14,7 +13,9 @@ class PQuestionContainer extends StatelessWidget { child: Text( title, style: const TextStyle().copyWith( - color: Theme.of(context).textTheme.bodyText1!.color, fontSize: 14), + color: Theme.of(context).textTheme.bodyLarge!.color, + fontSize: 14, + ), overflow: TextOverflow.clip, textAlign: TextAlign.left, ), diff --git a/lib/pangea/widgets/user_settings/p_settings_switch_list_tile.dart b/lib/pangea/widgets/user_settings/p_settings_switch_list_tile.dart index 0d3b0eb72..1ae2277a0 100644 --- a/lib/pangea/widgets/user_settings/p_settings_switch_list_tile.dart +++ b/lib/pangea/widgets/user_settings/p_settings_switch_list_tile.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/widgets/matrix.dart'; @@ -13,12 +11,12 @@ class PSettingsSwitchListTile extends StatefulWidget { final String? subtitle; const PSettingsSwitchListTile.adaptive({ - Key? key, + super.key, this.defaultValue = false, required this.pStoreKey, required this.title, this.subtitle, - }) : super(key: key); + }); @override PSettingsSwitchListTileState createState() => PSettingsSwitchListTileState(); diff --git a/lib/pangea/word_cloud/word_cloud_setting.dart b/lib/pangea/word_cloud/word_cloud_setting.dart index aa5ce51cc..2e0768991 100644 --- a/lib/pangea/word_cloud/word_cloud_setting.dart +++ b/lib/pangea/word_cloud/word_cloud_setting.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:math'; -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/word_cloud/word_cloud_shape.dart'; class WordCloudSetting { diff --git a/lib/pangea/word_cloud/word_cloud_tap_view.dart b/lib/pangea/word_cloud/word_cloud_tap_view.dart index bc59f100c..8e1a45124 100644 --- a/lib/pangea/word_cloud/word_cloud_tap_view.dart +++ b/lib/pangea/word_cloud/word_cloud_tap_view.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/word_cloud/word_cloud_data.dart'; import 'package:fluffychat/pangea/word_cloud/word_cloud_setting.dart'; import 'package:fluffychat/pangea/word_cloud/word_cloud_shape.dart'; @@ -67,7 +65,10 @@ class _WordCloudTapViewState extends State { wordcloudsetting.setMapSize(widget.mapwidth, widget.mapheight); wordcloudsetting.setFont( - widget.fontFamily, widget.fontStyle, widget.fontWeight); + widget.fontFamily, + widget.fontStyle, + widget.fontWeight, + ); wordcloudsetting.setColorList(widget.colorlist); wordcloudsetting.setInitial(); wordcloudsetting.drawTextOptimized(); @@ -117,9 +118,12 @@ class WCTpaint extends CustomPainter { for (var i = 0; i < wordcloudpaint.getDataLength(); i++) { if (wordcloudpaint.isdrawed[i]) { wordcloudpaint.getTextPainter()[i].paint( - canvas, - Offset(wordcloudpaint.getWordPoint()[i][0], - wordcloudpaint.getWordPoint()[i][1])); + canvas, + Offset( + wordcloudpaint.getWordPoint()[i][0], + wordcloudpaint.getWordPoint()[i][1], + ), + ); } } } diff --git a/lib/pangea/word_cloud/word_cloud_view.dart b/lib/pangea/word_cloud/word_cloud_view.dart index 869e10258..850b26f8e 100644 --- a/lib/pangea/word_cloud/word_cloud_view.dart +++ b/lib/pangea/word_cloud/word_cloud_view.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/word_cloud/word_cloud_data.dart'; import 'package:fluffychat/pangea/word_cloud/word_cloud_setting.dart'; import 'package:fluffychat/pangea/word_cloud/word_cloud_shape.dart'; @@ -64,7 +62,10 @@ class _WordCloudViewState extends State { wordcloudsetting.setMapSize(widget.mapwidth, widget.mapheight); wordcloudsetting.setFont( - widget.fontFamily, widget.fontStyle, widget.fontWeight); + widget.fontFamily, + widget.fontStyle, + widget.fontWeight, + ); wordcloudsetting.setColorList(widget.colorlist); wordcloudsetting.setInitial(); @@ -96,9 +97,12 @@ class WCpaint extends CustomPainter { for (var i = 0; i < wordcloudpaint.getDataLength(); i++) { if (wordcloudpaint.isdrawed[i]) { wordcloudpaint.getTextPainter()[i].paint( - canvas, - Offset(wordcloudpaint.getWordPoint()[i][0], - wordcloudpaint.getWordPoint()[i][1])); + canvas, + Offset( + wordcloudpaint.getWordPoint()[i][0], + wordcloudpaint.getWordPoint()[i][1], + ), + ); } } } diff --git a/lib/utils/account_bundles.dart b/lib/utils/account_bundles.dart index 336c7202e..8bd296e05 100644 --- a/lib/utils/account_bundles.dart +++ b/lib/utils/account_bundles.dart @@ -1,4 +1,3 @@ -// Package imports: import 'package:matrix/matrix.dart'; class AccountBundles { diff --git a/lib/utils/adaptive_bottom_sheet.dart b/lib/utils/adaptive_bottom_sheet.dart index 5d403e2f6..d2a9a8b6d 100644 --- a/lib/utils/adaptive_bottom_sheet.dart +++ b/lib/utils/adaptive_bottom_sheet.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/utils/platform_infos.dart'; diff --git a/lib/utils/background_push.dart b/lib/utils/background_push.dart index 67f8617c6..2bbcc1f92 100644 --- a/lib/utils/background_push.dart +++ b/lib/utils/background_push.dart @@ -17,16 +17,13 @@ * along with this program. If not, see . */ -// Dart imports: import 'dart:async'; import 'dart:convert'; import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:fcm_shared_isolate/fcm_shared_isolate.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; @@ -37,7 +34,6 @@ import 'package:http/http.dart' as http; import 'package:matrix/matrix.dart'; import 'package:unifiedpush/unifiedpush.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/language_keys.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/client_stories_extension.dart'; diff --git a/lib/utils/client_manager.dart b/lib/utils/client_manager.dart index b7204af66..0cc5b0051 100644 --- a/lib/utils/client_manager.dart +++ b/lib/utils/client_manager.dart @@ -1,14 +1,11 @@ -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:hive_flutter/hive_flutter.dart'; import 'package:matrix/encryption/utils/key_verification.dart'; import 'package:matrix/matrix.dart'; import 'package:path_provider/path_provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; -// Project imports: import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/utils/custom_http_client.dart'; import 'package:fluffychat/utils/custom_image_resizer.dart'; diff --git a/lib/utils/custom_http_client.dart b/lib/utils/custom_http_client.dart index 317c66a59..479e5edb5 100644 --- a/lib/utils/custom_http_client.dart +++ b/lib/utils/custom_http_client.dart @@ -1,12 +1,9 @@ -// Dart imports: import 'dart:convert'; import 'dart:io'; -// Package imports: import 'package:http/http.dart' as http; import 'package:http/io_client.dart'; -// Project imports: import 'package:fluffychat/config/isrg_x1.dart'; class CustomHttpClient { diff --git a/lib/utils/custom_image_resizer.dart b/lib/utils/custom_image_resizer.dart index 4052da94b..48b803a90 100644 --- a/lib/utils/custom_image_resizer.dart +++ b/lib/utils/custom_image_resizer.dart @@ -1,8 +1,6 @@ -// Dart imports: import 'dart:typed_data'; import 'dart:ui'; -// Package imports: import 'package:matrix/matrix.dart'; import 'package:native_imaging/native_imaging.dart' as native; diff --git a/lib/utils/custom_scroll_behaviour.dart b/lib/utils/custom_scroll_behaviour.dart index cd46cc055..ba25e9564 100644 --- a/lib/utils/custom_scroll_behaviour.dart +++ b/lib/utils/custom_scroll_behaviour.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; diff --git a/lib/utils/date_time_extension.dart b/lib/utils/date_time_extension.dart index 7cc46e766..121eaf72e 100644 --- a/lib/utils/date_time_extension.dart +++ b/lib/utils/date_time_extension.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:intl/intl.dart'; diff --git a/lib/utils/error_reporter.dart b/lib/utils/error_reporter.dart index c6974b9c4..3f8a003d4 100644 --- a/lib/utils/error_reporter.dart +++ b/lib/utils/error_reporter.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; import 'package:url_launcher/url_launcher.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/platform_infos.dart'; diff --git a/lib/utils/fluffy_share.dart b/lib/utils/fluffy_share.dart index 6499adba5..92f60b1dd 100644 --- a/lib/utils/fluffy_share.dart +++ b/lib/utils/fluffy_share.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:share_plus/share_plus.dart'; -// Project imports: import 'package:fluffychat/utils/platform_infos.dart'; import '../widgets/matrix.dart'; diff --git a/lib/utils/localized_exception_extension.dart b/lib/utils/localized_exception_extension.dart index 325e0dc39..d665c7f10 100644 --- a/lib/utils/localized_exception_extension.dart +++ b/lib/utils/localized_exception_extension.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:io'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pages/tasks/tasks.dart'; import 'uia_request_manager.dart'; diff --git a/lib/utils/matrix_sdk_extensions/client_stories_extension.dart b/lib/utils/matrix_sdk_extensions/client_stories_extension.dart index 362e87186..dd11af0f2 100644 --- a/lib/utils/matrix_sdk_extensions/client_stories_extension.dart +++ b/lib/utils/matrix_sdk_extensions/client_stories_extension.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/cupertino.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; extension ClientStoriesExtension on Client { diff --git a/lib/utils/matrix_sdk_extensions/device_extension.dart b/lib/utils/matrix_sdk_extensions/device_extension.dart index 180a8c1a7..55f3ebfc9 100644 --- a/lib/utils/matrix_sdk_extensions/device_extension.dart +++ b/lib/utils/matrix_sdk_extensions/device_extension.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; IconData _getIconFromName(String displayname) { diff --git a/lib/utils/matrix_sdk_extensions/event_extension.dart b/lib/utils/matrix_sdk_extensions/event_extension.dart index 9bc9258cd..ddd5abe80 100644 --- a/lib/utils/matrix_sdk_extensions/event_extension.dart +++ b/lib/utils/matrix_sdk_extensions/event_extension.dart @@ -1,16 +1,12 @@ -// Dart imports: import 'dart:developer'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:async/async.dart' as async; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/size_string.dart'; import 'matrix_file_extension.dart'; diff --git a/lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart b/lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart index eccc21bed..7ae2bf0c5 100644 --- a/lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart +++ b/lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart @@ -1,7 +1,5 @@ -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import '../../config/app_config.dart'; extension IsStateExtension on Event { diff --git a/lib/utils/matrix_sdk_extensions/flutter_hive_collections_database.dart b/lib/utils/matrix_sdk_extensions/flutter_hive_collections_database.dart index 138403e74..e930f90c0 100644 --- a/lib/utils/matrix_sdk_extensions/flutter_hive_collections_database.dart +++ b/lib/utils/matrix_sdk_extensions/flutter_hive_collections_database.dart @@ -1,12 +1,9 @@ -// Dart imports: import 'dart:convert'; import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart' hide Key; import 'package:flutter/services.dart'; -// Package imports: import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:hive/hive.dart'; import 'package:matrix/matrix.dart'; diff --git a/lib/utils/matrix_sdk_extensions/ios_badge_client_extension.dart b/lib/utils/matrix_sdk_extensions/ios_badge_client_extension.dart index c0170c245..bea7713d0 100644 --- a/lib/utils/matrix_sdk_extensions/ios_badge_client_extension.dart +++ b/lib/utils/matrix_sdk_extensions/ios_badge_client_extension.dart @@ -1,9 +1,7 @@ -// Package imports: import 'package:flutter_app_badger/flutter_app_badger.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/platform_infos.dart'; extension IosBadgeClientExtension on Client { diff --git a/lib/utils/matrix_sdk_extensions/matrix_file_extension.dart b/lib/utils/matrix_sdk_extensions/matrix_file_extension.dart index 041b27b3a..183fb753f 100644 --- a/lib/utils/matrix_sdk_extensions/matrix_file_extension.dart +++ b/lib/utils/matrix_sdk_extensions/matrix_file_extension.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:io'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:file_picker/file_picker.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; @@ -13,7 +10,6 @@ import 'package:path_provider/path_provider.dart'; import 'package:share_plus/share_plus.dart'; import 'package:universal_html/html.dart' as html; -// Project imports: import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/utils/size_string.dart'; diff --git a/lib/utils/matrix_sdk_extensions/matrix_locals.dart b/lib/utils/matrix_sdk_extensions/matrix_locals.dart index 4f3afd1c4..4a9b68274 100644 --- a/lib/utils/matrix_sdk_extensions/matrix_locals.dart +++ b/lib/utils/matrix_sdk_extensions/matrix_locals.dart @@ -1,4 +1,3 @@ -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; diff --git a/lib/utils/matrix_sdk_extensions/presence_extension.dart b/lib/utils/matrix_sdk_extensions/presence_extension.dart index 7218d30b5..bb6e1069e 100644 --- a/lib/utils/matrix_sdk_extensions/presence_extension.dart +++ b/lib/utils/matrix_sdk_extensions/presence_extension.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import '../date_time_extension.dart'; extension PresenceExtension on CachedPresence { diff --git a/lib/utils/platform_infos.dart b/lib/utils/platform_infos.dart index 4710ccc11..9094b774b 100644 --- a/lib/utils/platform_infos.dart +++ b/lib/utils/platform_infos.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:url_launcher/url_launcher_string.dart'; -// Project imports: import '../config/app_config.dart'; abstract class PlatformInfos { diff --git a/lib/utils/push_helper.dart b/lib/utils/push_helper.dart index 265b318bd..29683f64c 100644 --- a/lib/utils/push_helper.dart +++ b/lib/utils/push_helper.dart @@ -1,19 +1,15 @@ -// Dart imports: import 'dart:convert'; import 'dart:io'; import 'dart:ui'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_cache_manager/flutter_cache_manager.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:matrix/matrix.dart'; import 'package:shared_preferences/shared_preferences.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; diff --git a/lib/utils/resize_image.dart b/lib/utils/resize_image.dart index f845c6ba1..3bfe81a6d 100644 --- a/lib/utils/resize_image.dart +++ b/lib/utils/resize_image.dart @@ -1,12 +1,9 @@ -// Dart imports: import 'dart:io'; -// Package imports: import 'package:matrix/matrix.dart'; import 'package:path_provider/path_provider.dart'; import 'package:video_compress/video_compress.dart'; -// Project imports: import 'package:fluffychat/utils/platform_infos.dart'; extension ResizeImage on MatrixFile { diff --git a/lib/utils/room_status_extension.dart b/lib/utils/room_status_extension.dart index 2bbeb5311..3b4e623f7 100644 --- a/lib/utils/room_status_extension.dart +++ b/lib/utils/room_status_extension.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/widgets.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import '../config/app_config.dart'; import 'date_time_extension.dart'; diff --git a/lib/utils/story_theme_data.dart b/lib/utils/story_theme_data.dart index c37cdf03f..9006dcc0a 100644 --- a/lib/utils/story_theme_data.dart +++ b/lib/utils/story_theme_data.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; class StoryThemeData { diff --git a/lib/utils/stream_extension.dart b/lib/utils/stream_extension.dart index 25f2eb613..66e840fce 100644 --- a/lib/utils/stream_extension.dart +++ b/lib/utils/stream_extension.dart @@ -1,4 +1,3 @@ -// Dart imports: import 'dart:async'; extension StreamExtension on Stream { diff --git a/lib/utils/string_color.dart b/lib/utils/string_color.dart index 09421c17b..b3c251b3a 100644 --- a/lib/utils/string_color.dart +++ b/lib/utils/string_color.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; extension StringColor on String { diff --git a/lib/utils/uia_request_manager.dart b/lib/utils/uia_request_manager.dart index 22f145191..04c8b4844 100644 --- a/lib/utils/uia_request_manager.dart +++ b/lib/utils/uia_request_manager.dart @@ -1,13 +1,10 @@ -// Dart imports: import 'dart:async'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; import 'package:url_launcher/url_launcher_string.dart'; -// Project imports: import 'package:fluffychat/widgets/matrix.dart'; extension UiaRequestManager on MatrixState { diff --git a/lib/utils/update_checker_no_store.dart b/lib/utils/update_checker_no_store.dart index 1a7301a62..d41bc07f6 100644 --- a/lib/utils/update_checker_no_store.dart +++ b/lib/utils/update_checker_no_store.dart @@ -1,19 +1,15 @@ -// Dart imports: import 'dart:convert'; import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:http/http.dart'; import 'package:matrix/matrix.dart'; import 'package:path_provider/path_provider.dart'; -// Project imports: import 'platform_infos.dart'; /// helper class checking for updates on platforms without store release diff --git a/lib/utils/url_launcher.dart b/lib/utils/url_launcher.dart index 439852f95..808f64f65 100644 --- a/lib/utils/url_launcher.dart +++ b/lib/utils/url_launcher.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart' show IterableExtension; import 'package:flutter_gen/gen_l10n/l10n.dart'; @@ -11,7 +9,6 @@ import 'package:matrix/matrix.dart'; import 'package:punycode/punycode.dart'; import 'package:url_launcher/url_launcher_string.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/user_bottom_sheet/user_bottom_sheet.dart'; import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; diff --git a/lib/utils/voip/callkeep_manager.dart b/lib/utils/voip/callkeep_manager.dart index 07fb2c6e8..6de7cb6e3 100644 --- a/lib/utils/voip/callkeep_manager.dart +++ b/lib/utils/voip/callkeep_manager.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:callkeep/callkeep.dart'; import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; import 'package:permission_handler/permission_handler.dart'; -// Project imports: import 'package:fluffychat/utils/voip_plugin.dart'; class CallKeeper { diff --git a/lib/utils/voip/user_media_manager.dart b/lib/utils/voip/user_media_manager.dart index de19596d8..874da93ee 100644 --- a/lib/utils/voip/user_media_manager.dart +++ b/lib/utils/voip/user_media_manager.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:flutter_ringtone_player/flutter_ringtone_player.dart'; import 'package:just_audio/just_audio.dart'; -// Project imports: import 'package:fluffychat/utils/platform_infos.dart'; class UserMediaManager { diff --git a/lib/utils/voip_plugin.dart b/lib/utils/voip_plugin.dart index 785f1ece0..4626c1c49 100644 --- a/lib/utils/voip_plugin.dart +++ b/lib/utils/voip_plugin.dart @@ -1,17 +1,13 @@ -// Dart imports: import 'dart:core'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:flutter_webrtc/flutter_webrtc.dart' as webrtc_impl; import 'package:matrix/matrix.dart'; import 'package:webrtc_interface/webrtc_interface.dart' hide Navigator; -// Project imports: import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pages/dialer/dialer.dart'; import 'package:fluffychat/utils/platform_infos.dart'; diff --git a/lib/widgets/adaptive_flat_button.dart b/lib/widgets/adaptive_flat_button.dart index c525e8813..faed7e951 100644 --- a/lib/widgets/adaptive_flat_button.dart +++ b/lib/widgets/adaptive_flat_button.dart @@ -1,8 +1,6 @@ -// Flutter imports: import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/utils/platform_infos.dart'; class AdaptiveFlatButton extends StatelessWidget { diff --git a/lib/widgets/app_lock.dart b/lib/widgets/app_lock.dart index f39401545..ace02b227 100644 --- a/lib/widgets/app_lock.dart +++ b/lib/widgets/app_lock.dart @@ -1,12 +1,9 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:matrix/matrix.dart'; import 'package:provider/provider.dart'; -// Project imports: import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/widgets/lock_screen.dart'; diff --git a/lib/widgets/avatar.dart b/lib/widgets/avatar.dart index a5de36275..9b19e5613 100644 --- a/lib/widgets/avatar.dart +++ b/lib/widgets/avatar.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/string_color.dart'; import 'package:fluffychat/widgets/mxc_image.dart'; diff --git a/lib/widgets/chat_settings_popup_menu.dart b/lib/widgets/chat_settings_popup_menu.dart index 077cf006f..d89f60353 100644 --- a/lib/widgets/chat_settings_popup_menu.dart +++ b/lib/widgets/chat_settings_popup_menu.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; @@ -13,7 +10,6 @@ import 'package:go_router/go_router.dart'; import 'package:keyboard_shortcuts/keyboard_shortcuts.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/pangea/models/class_model.dart'; diff --git a/lib/widgets/connection_status_header.dart b/lib/widgets/connection_status_header.dart index a3d1755e7..2283c41bf 100644 --- a/lib/widgets/connection_status_header.dart +++ b/lib/widgets/connection_status_header.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import '../config/themes.dart'; import '../utils/localized_exception_extension.dart'; import 'matrix.dart'; diff --git a/lib/widgets/content_banner.dart b/lib/widgets/content_banner.dart index 6fb10d13c..f9e6a6167 100644 --- a/lib/widgets/content_banner.dart +++ b/lib/widgets/content_banner.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/widgets/mxc_image.dart'; class ContentBanner extends StatelessWidget { diff --git a/lib/widgets/error_widget.dart b/lib/widgets/error_widget.dart index cb80cf364..8606c7608 100644 --- a/lib/widgets/error_widget.dart +++ b/lib/widgets/error_widget.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/utils/error_reporter.dart'; class FluffyChatErrorWidget extends StatefulWidget { diff --git a/lib/widgets/fluffy_chat_app.dart b/lib/widgets/fluffy_chat_app.dart index 18892a21b..3804a9181 100644 --- a/lib/widgets/fluffy_chat_app.dart +++ b/lib/widgets/fluffy_chat_app.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:country_picker/country_picker.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; @@ -9,7 +7,6 @@ import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; import 'package:shared_preferences/shared_preferences.dart'; -// Project imports: import 'package:fluffychat/config/routes.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; diff --git a/lib/widgets/hover_builder.dart b/lib/widgets/hover_builder.dart index 9ce3eae20..f895d8532 100644 --- a/lib/widgets/hover_builder.dart +++ b/lib/widgets/hover_builder.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; class HoverBuilder extends StatefulWidget { diff --git a/lib/widgets/layouts/empty_page.dart b/lib/widgets/layouts/empty_page.dart index f6faaeb52..1a6b42e70 100644 --- a/lib/widgets/layouts/empty_page.dart +++ b/lib/widgets/layouts/empty_page.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:math'; -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/pangea/widgets/common/pangea_logo_svg.dart'; class EmptyPage extends StatelessWidget { diff --git a/lib/widgets/layouts/login_scaffold.dart b/lib/widgets/layouts/login_scaffold.dart index 508d4949d..6123ddf39 100644 --- a/lib/widgets/layouts/login_scaffold.dart +++ b/lib/widgets/layouts/login_scaffold.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:url_launcher/url_launcher_string.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/utils/platform_infos.dart'; diff --git a/lib/widgets/layouts/max_width_body.dart b/lib/widgets/layouts/max_width_body.dart index 0f6ce49c6..a5d9cafe0 100644 --- a/lib/widgets/layouts/max_width_body.dart +++ b/lib/widgets/layouts/max_width_body.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:math'; -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; class MaxWidthBody extends StatelessWidget { diff --git a/lib/widgets/layouts/two_column_layout.dart b/lib/widgets/layouts/two_column_layout.dart index 81bc10a95..a6f4c8bdf 100644 --- a/lib/widgets/layouts/two_column_layout.dart +++ b/lib/widgets/layouts/two_column_layout.dart @@ -1,4 +1,3 @@ -// Flutter imports: import 'package:flutter/material.dart'; class TwoColumnLayout extends StatelessWidget { diff --git a/lib/widgets/local_notifications_extension.dart b/lib/widgets/local_notifications_extension.dart index 25b3c51c1..44754030c 100644 --- a/lib/widgets/local_notifications_extension.dart +++ b/lib/widgets/local_notifications_extension.dart @@ -1,10 +1,7 @@ -// Dart imports: import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; -// Package imports: import 'package:desktop_lifecycle/desktop_lifecycle.dart'; import 'package:desktop_notifications/desktop_notifications.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; @@ -14,7 +11,6 @@ import 'package:matrix/matrix.dart'; import 'package:path_provider/path_provider.dart'; import 'package:universal_html/html.dart' as html; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/platform_infos.dart'; diff --git a/lib/widgets/lock_screen.dart b/lib/widgets/lock_screen.dart index 3075af419..8825f6cd8 100644 --- a/lib/widgets/lock_screen.dart +++ b/lib/widgets/lock_screen.dart @@ -1,13 +1,9 @@ -// Dart imports: import 'dart:async'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/widgets/app_lock.dart'; diff --git a/lib/widgets/log_view.dart b/lib/widgets/log_view.dart index a24e92f8f..6e5e31882 100644 --- a/lib/widgets/log_view.dart +++ b/lib/widgets/log_view.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; diff --git a/lib/widgets/matrix.dart b/lib/widgets/matrix.dart index f2202d234..eb80a052f 100644 --- a/lib/widgets/matrix.dart +++ b/lib/widgets/matrix.dart @@ -1,13 +1,10 @@ -// Dart imports: import 'dart:async'; import 'dart:convert'; import 'dart:io'; -// Flutter imports: import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; import 'package:desktop_notifications/desktop_notifications.dart'; @@ -22,7 +19,6 @@ import 'package:shared_preferences/shared_preferences.dart'; import 'package:universal_html/html.dart' as html; import 'package:url_launcher/url_launcher_string.dart'; -// Project imports: import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/utils/any_state_holder.dart'; import 'package:fluffychat/utils/client_manager.dart'; diff --git a/lib/widgets/mxc_image.dart b/lib/widgets/mxc_image.dart index 789571f6f..0aedd1e4f 100644 --- a/lib/widgets/mxc_image.dart +++ b/lib/widgets/mxc_image.dart @@ -1,14 +1,10 @@ -// Dart imports: import 'dart:typed_data'; -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:http/http.dart' as http; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/widgets/permission_slider_dialog.dart b/lib/widgets/permission_slider_dialog.dart index 5444bfb95..cc6e9303e 100644 --- a/lib/widgets/permission_slider_dialog.dart +++ b/lib/widgets/permission_slider_dialog.dart @@ -1,8 +1,6 @@ -// Flutter imports: import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -// Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; diff --git a/lib/widgets/presence_builder.dart b/lib/widgets/presence_builder.dart index bd37ae081..223fe0cc7 100644 --- a/lib/widgets/presence_builder.dart +++ b/lib/widgets/presence_builder.dart @@ -1,10 +1,7 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/widgets/matrix.dart'; class PresenceBuilder extends StatelessWidget { diff --git a/lib/widgets/profile_bottom_sheet.dart b/lib/widgets/profile_bottom_sheet.dart index c720d241f..3bfbb2029 100644 --- a/lib/widgets/profile_bottom_sheet.dart +++ b/lib/widgets/profile_bottom_sheet.dart @@ -1,13 +1,10 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; @@ -18,8 +15,8 @@ class ProfileBottomSheet extends StatelessWidget { const ProfileBottomSheet({ required this.userId, required this.outerContext, - Key? key, - }) : super(key: key); + super.key, + }); void _startDirectChat(BuildContext context) async { final client = Matrix.of(context).client; diff --git a/lib/widgets/public_room_bottom_sheet.dart b/lib/widgets/public_room_bottom_sheet.dart index c72792a64..cfe21c5e3 100644 --- a/lib/widgets/public_room_bottom_sheet.dart +++ b/lib/widgets/public_room_bottom_sheet.dart @@ -1,14 +1,11 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_linkify/flutter_linkify.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; -// Project imports: import 'package:fluffychat/utils/url_launcher.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; diff --git a/lib/widgets/settings_switch_list_tile.dart b/lib/widgets/settings_switch_list_tile.dart index 6a175f599..8f4285a4b 100644 --- a/lib/widgets/settings_switch_list_tile.dart +++ b/lib/widgets/settings_switch_list_tile.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Project imports: import 'matrix.dart'; class SettingsSwitchListTile extends StatefulWidget { diff --git a/lib/widgets/theme_builder.dart b/lib/widgets/theme_builder.dart index 8ad6a0824..b35a0b449 100644 --- a/lib/widgets/theme_builder.dart +++ b/lib/widgets/theme_builder.dart @@ -1,7 +1,5 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:collection/collection.dart'; import 'package:dynamic_color/dynamic_color.dart'; import 'package:provider/provider.dart'; diff --git a/lib/widgets/unread_rooms_badge.dart b/lib/widgets/unread_rooms_badge.dart index 1d12ced18..72f14b76c 100644 --- a/lib/widgets/unread_rooms_badge.dart +++ b/lib/widgets/unread_rooms_badge.dart @@ -1,11 +1,8 @@ -// Flutter imports: import 'package:flutter/material.dart'; -// Package imports: import 'package:badges/badges.dart' as b; import 'package:matrix/matrix.dart'; -// Project imports: import 'matrix.dart'; class UnreadRoomsBadge extends StatelessWidget { diff --git a/needed-translations.txt b/needed-translations.txt index 3eebab64d..3dbb6ff2f 100644 --- a/needed-translations.txt +++ b/needed-translations.txt @@ -758,7 +758,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "bn": [ @@ -1525,7 +1526,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "bo": [ @@ -2292,7 +2294,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "ca": [ @@ -3054,7 +3057,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "cs": [ @@ -3816,7 +3820,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "de": [ @@ -4578,7 +4583,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "el": [ @@ -5345,7 +5351,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "eo": [ @@ -6107,7 +6114,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "es": [ @@ -6133,7 +6141,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "et": [ @@ -6895,7 +6904,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "eu": [ @@ -7657,7 +7667,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "fa": [ @@ -8419,7 +8430,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "fi": [ @@ -9181,7 +9193,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "fr": [ @@ -9943,7 +9956,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "ga": [ @@ -10705,7 +10719,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "gl": [ @@ -11467,7 +11482,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "he": [ @@ -12229,7 +12245,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "hi": [ @@ -12996,7 +13013,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "hr": [ @@ -13758,7 +13776,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "hu": [ @@ -14520,7 +14539,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "id": [ @@ -15282,7 +15302,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "ie": [ @@ -16046,7 +16067,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "it": [ @@ -16808,7 +16830,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "ja": [ @@ -17570,7 +17593,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "ko": [ @@ -18332,7 +18356,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "lt": [ @@ -19094,7 +19119,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "lv": [ @@ -19861,7 +19887,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "nb": [ @@ -20623,7 +20650,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "nl": [ @@ -21385,7 +21413,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "pl": [ @@ -22147,7 +22176,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "pt": [ @@ -22914,7 +22944,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "pt_BR": [ @@ -23676,7 +23707,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "pt_PT": [ @@ -24438,7 +24470,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "ro": [ @@ -25200,7 +25233,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "ru": [ @@ -25962,7 +25996,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "sk": [ @@ -26725,7 +26760,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "sl": [ @@ -27490,7 +27526,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "sr": [ @@ -28252,7 +28289,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "sv": [ @@ -29014,7 +29052,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "ta": [ @@ -29781,7 +29820,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "th": [ @@ -30548,7 +30588,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "tr": [ @@ -31310,7 +31351,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "uk": [ @@ -32072,7 +32114,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "vi": [ @@ -32837,7 +32880,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "zh": [ @@ -33599,7 +33643,8 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ], "zh_Hant": [ @@ -34361,6 +34406,7 @@ "groupCanBeFoundViaSearch", "trialExpiration", "freeTrialDesc", - "activateTrial" + "activateTrial", + "inNoSpaces" ] } diff --git a/pubspec.yaml b/pubspec.yaml index d8e3055e0..f0275779f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -53,7 +53,7 @@ dependencies: sdk: flutter flutter_map: ^4.0.0 flutter_math_fork: ^0.7.1 - flutter_olm: ^1.2.0 + flutter_olm: 1.3.2 # Keep in sync with scripts/prepare-web.sh ! 1.4.0 does currently not build on Android flutter_openssl_crypto: ^0.1.0 flutter_ringtone_player: ^3.1.1 flutter_secure_storage: ^9.0.0 @@ -133,7 +133,6 @@ flutter: uses-material-design: true assets: - .env - - .env.prod - assets/ - assets/pangea/ - assets/pangea/bot_faces/ diff --git a/scripts/build-web.sh b/scripts/build-web.sh old mode 100644 new mode 100755 index e4c85b254..603a84301 --- a/scripts/build-web.sh +++ b/scripts/build-web.sh @@ -2,4 +2,5 @@ flutter config --enable-web flutter clean flutter pub get -flutter build web --release --verbose --source-maps --dart-define=SENTRY_RELEASE=$CI_COMMIT_SHA +flutter build web --dart-define=FLUTTER_WEB_CANVASKIT_URL=canvaskit/ --source-maps --base-href "/client/" +# flutter build web --release --verbose --source-maps --dart-define=SENTRY_RELEASE=$CI_COMMIT_SHA diff --git a/scripts/prepare-web.sh b/scripts/prepare-web.sh index 0c4283e69..798bbe37f 100755 --- a/scripts/prepare-web.sh +++ b/scripts/prepare-web.sh @@ -1,6 +1,10 @@ #!/bin/sh -ve rm -r assets/js/package -cd assets/js/ && curl -L $(curl -s 'https://api.github.com/repos/famedly/olm/releases' | jq -r '.[0] | .assets | .[0] | .browser_download_url') > olm.zip && cd ../../ + +OLM_VERSION=$(cat pubspec.yaml | yq .dependencies.flutter_olm) +DOWNLOAD_PATH="https://github.com/famedly/olm/releases/download/v$OLM_VERSION/olm.zip" + +cd assets/js/ && curl -L $DOWNLOAD_PATH > olm.zip && cd ../../ cd assets/js/ && unzip olm.zip && cd ../../ cd assets/js/ && rm olm.zip && cd ../../ -cd assets/js/ && mv javascript package && cd ../../ +cd assets/js/ && mv javascript package && cd ../../ \ No newline at end of file diff --git a/scripts/upload-sentry.sh b/scripts/upload-sentry.sh old mode 100644 new mode 100755 diff --git a/test/archive_test.dart b/test/archive_test.dart index 01975a49d..25bb090e7 100644 --- a/test/archive_test.dart +++ b/test/archive_test.dart @@ -1,4 +1,3 @@ -// Package imports: import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/test/command_hint_test.dart b/test/command_hint_test.dart index f8062dcef..e56f06052 100644 --- a/test/command_hint_test.dart +++ b/test/command_hint_test.dart @@ -1,11 +1,8 @@ -// Dart imports: import 'dart:convert'; import 'dart:io'; -// Package imports: import 'package:flutter_test/flutter_test.dart'; -// Project imports: import 'utils/test_client.dart'; void main() async { diff --git a/test/homeserver_picker_test.dart b/test/homeserver_picker_test.dart index d44497df2..054f49cab 100644 --- a/test/homeserver_picker_test.dart +++ b/test/homeserver_picker_test.dart @@ -1,7 +1,6 @@ //import 'package:fluffychat/pages/homeserver_picker.dart'; //import 'package:fluffychat/main.dart'; -// Package imports: import 'package:flutter_test/flutter_test.dart'; //import 'utils/test_client.dart'; diff --git a/test/utils/test_client.dart b/test/utils/test_client.dart index cb9c9172c..55fccd03f 100644 --- a/test/utils/test_client.dart +++ b/test/utils/test_client.dart @@ -1,11 +1,9 @@ // ignore_for_file: depend_on_referenced_packages -// Package imports: import 'package:matrix/encryption/utils/key_verification.dart'; import 'package:matrix/matrix.dart'; import 'package:matrix_api_lite/fake_matrix_api.dart'; -// Project imports: import 'package:fluffychat/utils/matrix_sdk_extensions/flutter_hive_collections_database.dart'; Future prepareTestClient({ diff --git a/test/widget_test.dart b/test/widget_test.dart index 399376b23..7d1d98eb6 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -7,7 +7,6 @@ //import 'package:fluffychat/main.dart'; -// Package imports: import 'package:flutter_test/flutter_test.dart'; //import 'utils/test_client.dart'; diff --git a/test_driver/integration_test.dart b/test_driver/integration_test.dart index ab5f47188..b38629cca 100644 --- a/test_driver/integration_test.dart +++ b/test_driver/integration_test.dart @@ -1,4 +1,3 @@ -// Package imports: import 'package:integration_test/integration_test_driver.dart'; Future main() => integrationDriver();