diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 971c48db3..b47b73150 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -23,8 +23,10 @@ jobs: - name: Check license compliance run: dart run license_checker check-licenses -c licenses.yaml --problematic - run: flutter analyze - - name: Apply google services patch - run: git apply ./scripts/enable-android-google-services.patch + # #Pangea - Commented out the following lines, we already have fcm enabled by default + # - name: Apply google services patch + # run: git apply ./scripts/enable-android-google-services.patch + # Pangea# - run: flutter analyze - run: flutter test @@ -65,22 +67,25 @@ jobs: run: ./scripts/prepare-web.sh - run: flutter build web - build_debug_linux: - strategy: - matrix: - arch: [ x64, arm64 ] - runs-on: ${{ matrix.arch == 'arm64' && 'self-hosted' || 'ubuntu-latest'}} - steps: - - uses: actions/checkout@v4 - - run: cat .github/workflows/versions.env >> $GITHUB_ENV - - name: Install dependencies - run: sudo apt-get update && sudo apt-get install git wget curl clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev liblzma-dev libjsoncpp-dev cmake-data libsecret-1-dev libsecret-1-0 librhash0 libssl-dev libwebkit2gtk-4.1-dev -y - - name: Install Flutter - run: | - git clone --branch ${{ env.FLUTTER_VERSION }} https://github.com/flutter/flutter.git - ./flutter/bin/flutter doctor - - run: ./flutter/bin/flutter pub get - - run: ./flutter/bin/flutter build linux --target-platform linux-${{ matrix.arch }} + # #Pangea + # commented out because we do not build Pangea Chat to linux + # build_debug_linux: + # strategy: + # matrix: + # arch: [ x64, arm64 ] + # runs-on: ${{ matrix.arch == 'arm64' && 'self-hosted' || 'ubuntu-latest'}} + # steps: + # - uses: actions/checkout@v4 + # - run: cat .github/workflows/versions.env >> $GITHUB_ENV + # - name: Install dependencies + # run: sudo apt-get update && sudo apt-get install git wget curl clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev liblzma-dev libjsoncpp-dev cmake-data libsecret-1-dev libsecret-1-0 librhash0 libssl-dev libwebkit2gtk-4.1-dev -y + # - name: Install Flutter + # run: | + # git clone --branch ${{ env.FLUTTER_VERSION }} https://github.com/flutter/flutter.git + # ./flutter/bin/flutter doctor + # - run: ./flutter/bin/flutter pub get + # - run: ./flutter/bin/flutter build linux --target-platform linux-${{ matrix.arch }} + # Pangea# build_debug_ios: runs-on: macos-latest diff --git a/analysis_options.yaml b/analysis_options.yaml index 34a01078b..f31d53c35 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -7,7 +7,6 @@ linter: - constant_identifier_names - prefer_final_locals - prefer_final_in_for_each - - sort_pub_dependencies - require_trailing_commas analyzer: diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 20f9bc7b2..7d65b14fd 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -8,8 +8,10 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 18EB8101724ECEB31DC90D37 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4823A1A443F8115651A6C0E8 /* Pods_Runner.framework */; }; + 18EB8101724ECEB31DC90D37 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 3F86C7E35D199E7DD2B134F9 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69EC0FDC95BB0C70B544A84C /* Pods_Runner.framework */; }; + 59BB4671C68B58E6B34292B2 /* Pods_FluffyChat_Share.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52740D3A973E95DFFBA1E6CD /* Pods_FluffyChat_Share.framework */; }; 609046320A2D7D2B0D36583B /* Pods_FluffyChat_Share.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9EB6E6475A19949A37A2634 /* Pods_FluffyChat_Share.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; @@ -60,12 +62,14 @@ 09545B0C8C397F94966EA956 /* Pods-FluffyChat Share.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FluffyChat Share.debug.xcconfig"; path = "Target Support Files/Pods-FluffyChat Share/Pods-FluffyChat Share.debug.xcconfig"; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 23120B990D2B5081843FB313 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 37AEBFB57FB2CB2626CFE6E0 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 50DEFC207B70632D9C56ED78 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 52740D3A973E95DFFBA1E6CD /* Pods_FluffyChat_Share.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FluffyChat_Share.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 58F7B95D036AD8E67B27588D /* Pods-FluffyChat Share.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FluffyChat Share.profile.xcconfig"; path = "Target Support Files/Pods-FluffyChat Share/Pods-FluffyChat Share.profile.xcconfig"; sourceTree = ""; }; + 69EC0FDC95BB0C70B544A84C /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 759F206BF204861B5B71F335 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; @@ -92,7 +96,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 18EB8101724ECEB31DC90D37 /* Pods_Runner.framework in Frameworks */, + 18EB8101724ECEB31DC90D37 /* BuildFile in Frameworks */, + 3F86C7E35D199E7DD2B134F9 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -101,19 +106,19 @@ buildActionMask = 2147483647; files = ( 609046320A2D7D2B0D36583B /* Pods_FluffyChat_Share.framework in Frameworks */, + 59BB4671C68B58E6B34292B2 /* Pods_FluffyChat_Share.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 075EE1BE25359E34308E0B78 /* Frameworks */ = { + 7D5C7F242D2C878500101753 /* Recovered References */ = { isa = PBXGroup; children = ( - 50DEFC207B70632D9C56ED78 /* Pods_Runner.framework */, C9EB6E6475A19949A37A2634 /* Pods_FluffyChat_Share.framework */, ); - name = Frameworks; + name = "Recovered References"; sourceTree = ""; }; 9740EEB11CF90186004384FC /* Flutter */ = { @@ -136,6 +141,7 @@ 97C146EF1CF9000F007C117D /* Products */, E89DCAC000D371640E94E65B /* Pods */, E4B51FC6310E8231ADAAC605 /* Frameworks */, + 7D5C7F242D2C878500101753 /* Recovered References */, ); sourceTree = ""; }; @@ -180,7 +186,8 @@ E4B51FC6310E8231ADAAC605 /* Frameworks */ = { isa = PBXGroup; children = ( - 4823A1A443F8115651A6C0E8 /* Pods_Runner.framework */, + 52740D3A973E95DFFBA1E6CD /* Pods_FluffyChat_Share.framework */, + 69EC0FDC95BB0C70B544A84C /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; @@ -188,12 +195,12 @@ E89DCAC000D371640E94E65B /* Pods */ = { isa = PBXGroup; children = ( - 76737C9A857D5FD6D2634A3F /* Pods-Runner.debug.xcconfig */, EA246783222E02DD03959891 /* Pods-Runner.release.xcconfig */, - 9DB2F3524376810E74C799A8 /* Pods-Runner.profile.xcconfig */, 09545B0C8C397F94966EA956 /* Pods-FluffyChat Share.debug.xcconfig */, F3778959E67CDA0CDB0D97BC /* Pods-FluffyChat Share.release.xcconfig */, 58F7B95D036AD8E67B27588D /* Pods-FluffyChat Share.profile.xcconfig */, + 37AEBFB57FB2CB2626CFE6E0 /* Pods-Runner.debug.xcconfig */, + 23120B990D2B5081843FB313 /* Pods-Runner.profile.xcconfig */, ); path = Pods; sourceTree = ""; @@ -212,9 +219,9 @@ 97C146EC1CF9000F007C117D /* Resources */, C1005C4D261071B5002F4F32 /* Embed App Extensions */, 9705A1C41CF9048500538489 /* Embed Frameworks */, - F9C8EE392B9AB471149C306E /* [CP] Embed Pods Frameworks */, - 064CBD7CE0D4CD6850C6880A /* [CP] Copy Pods Resources */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 334226A3AAA43B66497B29BC /* [CP] Embed Pods Frameworks */, + 1A28566378F0961D311DA2BA /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -307,7 +314,24 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 1060C2E30AD33D0478B4AC6F /* [CP] Embed Pods Frameworks */ = { + 1A28566378F0961D311DA2BA /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 334226A3AAA43B66497B29BC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -340,28 +364,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n"; }; - 67579C1EA0B5C7B918473158 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-FluffyChat Share-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; 57BA887B93F55975BC09DE22 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -384,6 +386,28 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; + 67579C1EA0B5C7B918473158 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-FluffyChat Share-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -399,23 +423,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; }; - AC8E42A36E415621723720E8 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -478,8 +485,8 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; + CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -806,6 +813,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.talktolearn.chat.FluffyChatShare; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -838,6 +846,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.talktolearn.chat.FluffyChatShare; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; diff --git a/lib/config/app_config.dart b/lib/config/app_config.dart index 6a5efb9af..edeb3cd5e 100644 --- a/lib/config/app_config.dart +++ b/lib/config/app_config.dart @@ -1,7 +1,9 @@ -import 'package:fluffychat/pangea/config/environment.dart'; import 'package:flutter/material.dart'; + import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/config/environment.dart'; + abstract class AppConfig { // #Pangea // static String _applicationName = 'FluffyChat'; diff --git a/lib/config/routes.dart b/lib/config/routes.dart index b6722a857..ae7d8f249 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -1,5 +1,9 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + +import 'package:go_router/go_router.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/archive/archive.dart'; import 'package:fluffychat/pages/chat/chat.dart'; @@ -36,8 +40,6 @@ import 'package:fluffychat/widgets/layouts/empty_page.dart'; import 'package:fluffychat/widgets/layouts/two_column_layout.dart'; import 'package:fluffychat/widgets/log_view.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; abstract class AppRoutes { static FutureOr loggedInRedirect( diff --git a/lib/main.dart b/lib/main.dart index 9f5e656bd..2b79345de 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,12 @@ +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:get_storage/get_storage.dart'; +import 'package:matrix/matrix.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/language_list_controller.dart'; @@ -7,13 +15,6 @@ import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/utils/client_manager.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/error_widget.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_dotenv/flutter_dotenv.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:get_storage/get_storage.dart'; -import 'package:matrix/matrix.dart'; -import 'package:shared_preferences/shared_preferences.dart'; - import 'config/setting_keys.dart'; import 'utils/background_push.dart'; import 'widgets/fluffy_chat_app.dart'; diff --git a/lib/pages/archive/archive.dart b/lib/pages/archive/archive.dart index 2be2e6166..bff9d694a 100644 --- a/lib/pages/archive/archive.dart +++ b/lib/pages/archive/archive.dart @@ -1,11 +1,13 @@ +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/archive/archive_view.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; class Archive extends StatefulWidget { const Archive({super.key}); diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index 41464af8a..44ca3fb4e 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -3,10 +3,23 @@ import 'dart:core'; import 'dart:developer'; import 'dart:io'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:emoji_picker_flutter/emoji_picker_flutter.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'; +import 'package:scroll_to_index/scroll_to_index.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:universal_html/html.dart' as html; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/config/themes.dart'; @@ -40,18 +53,6 @@ import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.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'; -import 'package:scroll_to_index/scroll_to_index.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; -import 'package:shared_preferences/shared_preferences.dart'; -import 'package:universal_html/html.dart' as html; - import '../../utils/account_bundles.dart'; import '../../utils/localized_exception_extension.dart'; import 'send_file_dialog.dart'; @@ -528,10 +529,6 @@ class ChatController extends State e, stackTrace: s, withScope: (scope) { - scope.setExtra( - 'extra_info', - 'Failed during setReadMarker with eventId: $eventId', - ); scope.setTag('where', 'setReadMarker'); }, ); @@ -1124,7 +1121,9 @@ class ChatController extends State for (final event in selectedEvents) { if (!event.status.isSent) return false; if (event.canRedact == false && - !(clients!.any((cl) => event.senderId == cl!.userID))) return false; + !(clients!.any((cl) => event.senderId == cl!.userID))) { + return false; + } } return true; } diff --git a/lib/pages/chat/chat_app_bar_title.dart b/lib/pages/chat/chat_app_bar_title.dart index 86ed0205d..6124049cb 100644 --- a/lib/pages/chat/chat_app_bar_title.dart +++ b/lib/pages/chat/chat_app_bar_title.dart @@ -1,12 +1,14 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/utils/date_time_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/presence_builder.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; class ChatAppBarTitle extends StatelessWidget { final ChatController controller; diff --git a/lib/pages/chat/chat_emoji_picker.dart b/lib/pages/chat/chat_emoji_picker.dart index 5dbe614a8..41534eaaa 100644 --- a/lib/pages/chat/chat_emoji_picker.dart +++ b/lib/pages/chat/chat_emoji_picker.dart @@ -1,10 +1,11 @@ -import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; -import 'package:fluffychat/config/themes.dart'; -import 'package:fluffychat/pages/chat/sticker_picker_dialog.dart'; import 'package:flutter/material.dart'; + +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/config/themes.dart'; +import 'package:fluffychat/pages/chat/sticker_picker_dialog.dart'; import 'chat.dart'; class ChatEmojiPicker extends StatelessWidget { @@ -51,7 +52,7 @@ class ChatEmojiPicker extends StatelessWidget { categoryViewConfig: CategoryViewConfig( backspaceColor: theme.colorScheme.primary, iconColor: - theme.colorScheme.primary.withOpacity(0.5), + theme.colorScheme.primary.withAlpha(128), iconColorSelected: theme.colorScheme.primary, indicatorColor: theme.colorScheme.primary, ), diff --git a/lib/pages/chat/chat_event_list.dart b/lib/pages/chat/chat_event_list.dart index 659902f0d..1fbf7ba05 100644 --- a/lib/pages/chat/chat_event_list.dart +++ b/lib/pages/chat/chat_event_list.dart @@ -1,3 +1,8 @@ +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; +import 'package:scroll_to_index/scroll_to_index.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; @@ -10,9 +15,6 @@ import 'package:fluffychat/utils/account_config.dart'; import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/filtered_timeline_extension.dart'; import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; -import 'package:scroll_to_index/scroll_to_index.dart'; class ChatEventList extends StatelessWidget { final ChatController controller; diff --git a/lib/pages/chat/chat_input_row.dart b/lib/pages/chat/chat_input_row.dart index f98a5f9ff..36ab95433 100644 --- a/lib/pages/chat/chat_input_row.dart +++ b/lib/pages/chat/chat_input_row.dart @@ -1,18 +1,17 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:animations/animations.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:material_symbols_icons/symbols.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/choreographer/widgets/send_button.dart'; import 'package:fluffychat/pangea/choreographer/widgets/start_igc_button.dart'; import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/widgets/chat/message_selection_overlay.dart'; import 'package:fluffychat/pangea/widgets/chat/pangea_reaction_picker.dart'; import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:fluffychat/widgets/avatar.dart'; -import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:material_symbols_icons/symbols.dart'; -import 'package:matrix/matrix.dart'; - import '../../config/themes.dart'; import 'chat.dart'; import 'input_bar.dart'; @@ -423,65 +422,67 @@ class ChatInputRow extends StatelessWidget { } } -class _ChatAccountPicker extends StatelessWidget { - final ChatController controller; +// #Pangea +// class _ChatAccountPicker extends StatelessWidget { +// final ChatController controller; - const _ChatAccountPicker(this.controller); +// const _ChatAccountPicker(this.controller); - void _popupMenuButtonSelected(String mxid, BuildContext context) { - final client = Matrix.of(context) - .currentBundle! - .firstWhere((cl) => cl!.userID == mxid, orElse: () => null); - if (client == null) { - Logs().w('Attempted to switch to a non-existing client $mxid'); - return; - } - controller.setSendingClient(client); - } +// void _popupMenuButtonSelected(String mxid, BuildContext context) { +// final client = Matrix.of(context) +// .currentBundle! +// .firstWhere((cl) => cl!.userID == mxid, orElse: () => null); +// if (client == null) { +// Logs().w('Attempted to switch to a non-existing client $mxid'); +// return; +// } +// controller.setSendingClient(client); +// } - @override - Widget build(BuildContext context) { - final clients = controller.currentRoomBundle; - return Padding( - padding: const EdgeInsets.all(8.0), - child: FutureBuilder( - future: controller.sendingClient.fetchOwnProfile(), - builder: (context, snapshot) => PopupMenuButton( - onSelected: (mxid) => _popupMenuButtonSelected(mxid, context), - itemBuilder: (BuildContext context) => clients - .map( - (client) => PopupMenuItem( - value: client!.userID, - child: FutureBuilder( - future: client.fetchOwnProfile(), - builder: (context, snapshot) => ListTile( - leading: Avatar( - mxContent: snapshot.data?.avatarUrl, - name: snapshot.data?.displayName ?? - client.userID!.localpart, - // #Pangea - presenceUserId: client.userID!, - // Pangea# - size: 20, - ), - title: Text(snapshot.data?.displayName ?? client.userID!), - contentPadding: const EdgeInsets.all(0), - ), - ), - ), - ) - .toList(), - child: Avatar( - mxContent: snapshot.data?.avatarUrl, - name: snapshot.data?.displayName ?? - Matrix.of(context).client.userID!.localpart, - // #Pangea - presenceUserId: Matrix.of(context).client.userID!, - // Pangea# - size: 20, - ), - ), - ), - ); - } -} +// @override +// Widget build(BuildContext context) { +// final clients = controller.currentRoomBundle; +// return Padding( +// padding: const EdgeInsets.all(8.0), +// child: FutureBuilder( +// future: controller.sendingClient.fetchOwnProfile(), +// builder: (context, snapshot) => PopupMenuButton( +// onSelected: (mxid) => _popupMenuButtonSelected(mxid, context), +// itemBuilder: (BuildContext context) => clients +// .map( +// (client) => PopupMenuItem( +// value: client!.userID, +// child: FutureBuilder( +// future: client.fetchOwnProfile(), +// builder: (context, snapshot) => ListTile( +// leading: Avatar( +// mxContent: snapshot.data?.avatarUrl, +// name: snapshot.data?.displayName ?? +// client.userID!.localpart, +// // #Pangea +// presenceUserId: client.userID!, +// // Pangea# +// size: 20, +// ), +// title: Text(snapshot.data?.displayName ?? client.userID!), +// contentPadding: const EdgeInsets.all(0), +// ), +// ), +// ), +// ) +// .toList(), +// child: Avatar( +// mxContent: snapshot.data?.avatarUrl, +// name: snapshot.data?.displayName ?? +// Matrix.of(context).client.userID!.localpart, +// // #Pangea +// presenceUserId: Matrix.of(context).client.userID!, +// // Pangea# +// size: 20, +// ), +// ), +// ), +// ); +// } +// } +// Pangea# diff --git a/lib/pages/chat/chat_view.dart b/lib/pages/chat/chat_view.dart index 60bdc3ded..69ba75e49 100644 --- a/lib/pages/chat/chat_view.dart +++ b/lib/pages/chat/chat_view.dart @@ -1,6 +1,12 @@ import 'dart:ui' as ui; +import 'package:flutter/material.dart'; + import 'package:badges/badges.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/chat_app_bar_list_tile.dart'; @@ -23,11 +29,6 @@ import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:fluffychat/widgets/mxc_image.dart'; import 'package:fluffychat/widgets/unread_rooms_badge.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; - import '../../utils/stream_extension.dart'; enum _EventContextAction { info, report } diff --git a/lib/pages/chat/events/audio_player.dart b/lib/pages/chat/events/audio_player.dart index 36be146f7..9a1550e58 100644 --- a/lib/pages/chat/events/audio_player.dart +++ b/lib/pages/chat/events/audio_player.dart @@ -2,19 +2,20 @@ import 'dart:async'; import 'dart:developer'; import 'dart:io'; -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/pangea/widgets/chat/message_audio_card.dart'; -import 'package:fluffychat/utils/error_reporter.dart'; -import 'package:fluffychat/utils/localized_exception_extension.dart'; -import 'package:fluffychat/utils/url_launcher.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_linkify/flutter_linkify.dart'; import 'package:just_audio/just_audio.dart'; import 'package:matrix/matrix.dart'; import 'package:opus_caf_converter_dart/opus_caf_converter_dart.dart'; import 'package:path_provider/path_provider.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pangea/widgets/chat/message_audio_card.dart'; +import 'package:fluffychat/utils/error_reporter.dart'; +import 'package:fluffychat/utils/localized_exception_extension.dart'; +import 'package:fluffychat/utils/url_launcher.dart'; import '../../../utils/matrix_sdk_extensions/event_extension.dart'; class AudioPlayerWidget extends StatefulWidget { @@ -275,29 +276,31 @@ class AudioPlayerState extends State { late final List? _waveform; - void _toggleSpeed() async { - final audioPlayer = this.audioPlayer; - if (audioPlayer == null) return; - switch (audioPlayer.speed) { - case 1.0: - await audioPlayer.setSpeed(1.25); - break; - case 1.25: - await audioPlayer.setSpeed(1.5); - break; - case 1.5: - await audioPlayer.setSpeed(2.0); - break; - case 2.0: - await audioPlayer.setSpeed(0.5); - break; - case 0.5: - default: - await audioPlayer.setSpeed(1.0); - break; - } - setState(() {}); - } + // #Pangea + // void _toggleSpeed() async { + // final audioPlayer = this.audioPlayer; + // if (audioPlayer == null) return; + // switch (audioPlayer.speed) { + // case 1.0: + // await audioPlayer.setSpeed(1.25); + // break; + // case 1.25: + // await audioPlayer.setSpeed(1.5); + // break; + // case 1.5: + // await audioPlayer.setSpeed(2.0); + // break; + // case 2.0: + // await audioPlayer.setSpeed(0.5); + // break; + // case 0.5: + // default: + // await audioPlayer.setSpeed(1.0); + // break; + // } + // setState(() {}); + // } + // Pangea# // #Pangea Future _downloadMatrixFile() async { diff --git a/lib/pages/chat/events/html_message.dart b/lib/pages/chat/events/html_message.dart index 29c7a6ae2..8accd871c 100644 --- a/lib/pages/chat/events/html_message.dart +++ b/lib/pages/chat/events/html_message.dart @@ -1,18 +1,18 @@ +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; +import 'package:flutter_highlighter/flutter_highlighter.dart'; +import 'package:flutter_highlighter/themes/shades-of-purple.dart'; +import 'package:flutter_html/flutter_html.dart'; +import 'package:html/dom.dart' as dom; +import 'package:linkify/linkify.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/mxc_image.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_highlighter/flutter_highlighter.dart'; -import 'package:flutter_highlighter/themes/shades-of-purple.dart'; -import 'package:flutter_html/flutter_html.dart'; -// import 'package:flutter_html_table/flutter_html_table.dart'; -import 'package:html/dom.dart' as dom; -import 'package:linkify/linkify.dart'; -import 'package:matrix/matrix.dart'; - import '../../../utils/url_launcher.dart'; class HtmlMessage extends StatelessWidget { diff --git a/lib/pages/chat/events/map_bubble.dart b/lib/pages/chat/events/map_bubble.dart index b417680bb..4a2befae2 100644 --- a/lib/pages/chat/events/map_bubble.dart +++ b/lib/pages/chat/events/map_bubble.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + 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 8919e6a7a..92f9d5553 100644 --- a/lib/pages/chat/events/message.dart +++ b/lib/pages/chat/events/message.dart @@ -1,3 +1,9 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; +import 'package:swipe_to_action/swipe_to_action.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/events/room_creation_state_event.dart'; @@ -11,11 +17,6 @@ import 'package:fluffychat/utils/date_time_extension.dart'; import 'package:fluffychat/utils/string_color.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; -import 'package:swipe_to_action/swipe_to_action.dart'; - import '../../../config/app_config.dart'; import 'message_content.dart'; import 'message_reactions.dart'; diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index 19e94072e..14f00552b 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -1,5 +1,11 @@ import 'dart:math'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/events/video_player.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; @@ -7,15 +13,7 @@ import 'package:fluffychat/pangea/widgets/chat/message_selection_overlay.dart'; import 'package:fluffychat/pangea/widgets/chat/message_token_text.dart'; import 'package:fluffychat/pangea/widgets/chat/message_toolbar_selection_area.dart'; import 'package:fluffychat/pangea/widgets/igc/pangea_rich_text.dart'; -import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; -import 'package:fluffychat/utils/date_time_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; -import 'package:fluffychat/widgets/avatar.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:flutter_linkify/flutter_linkify.dart'; -import 'package:matrix/matrix.dart'; - import '../../../config/app_config.dart'; import '../../../utils/platform_infos.dart'; import '../../../utils/url_launcher.dart'; @@ -59,67 +57,67 @@ class MessageContent extends StatelessWidget { required this.borderRadius, }); - void _verifyOrRequestKey(BuildContext context) async { - final l10n = L10n.of(context); - if (event.content['can_request_session'] != true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text( - event.calcLocalizedBodyFallback(MatrixLocals(l10n)), - ), - ), - ); - return; - } - // #Pangea - // final client = Matrix.of(context).client; - // if (client.isUnknownSession && client.encryption!.crossSigning.enabled) { - // final success = await BootstrapDialog( - // client: Matrix.of(context).client, - // ).show(context); - // if (success != true) return; - // } - // Pangea# - event.requestKey(); - final sender = event.senderFromMemoryOrFallback; - await showAdaptiveBottomSheet( - context: context, - builder: (context) => Scaffold( - appBar: AppBar( - leading: CloseButton(onPressed: Navigator.of(context).pop), - title: Text( - l10n.whyIsThisMessageEncrypted, - style: const TextStyle(fontSize: 16), - ), - ), - body: SafeArea( - child: ListView( - padding: const EdgeInsets.all(16), - children: [ - ListTile( - contentPadding: EdgeInsets.zero, - leading: Avatar( - mxContent: sender.avatarUrl, - name: sender.calcDisplayname(), - presenceUserId: sender.stateKey, - client: event.room.client, - ), - title: Text(sender.calcDisplayname()), - subtitle: Text(event.originServerTs.localizedTime(context)), - trailing: const Icon(Icons.lock_outlined), - ), - const Divider(), - Text( - event.calcLocalizedBodyFallback( - MatrixLocals(l10n), - ), - ), - ], - ), - ), - ), - ); - } + // #Pangea + // void _verifyOrRequestKey(BuildContext context) async { + // final l10n = L10n.of(context); + // if (event.content['can_request_session'] != true) { + // ScaffoldMessenger.of(context).showSnackBar( + // SnackBar( + // content: Text( + // event.calcLocalizedBodyFallback(MatrixLocals(l10n)), + // ), + // ), + // ); + // return; + // } + // final client = Matrix.of(context).client; + // if (client.isUnknownSession && client.encryption!.crossSigning.enabled) { + // final success = await BootstrapDialog( + // client: Matrix.of(context).client, + // ).show(context); + // if (success != true) return; + // } + // event.requestKey(); + // final sender = event.senderFromMemoryOrFallback; + // await showAdaptiveBottomSheet( + // context: context, + // builder: (context) => Scaffold( + // appBar: AppBar( + // leading: CloseButton(onPressed: Navigator.of(context).pop), + // title: Text( + // l10n.whyIsThisMessageEncrypted, + // style: const TextStyle(fontSize: 16), + // ), + // ), + // body: SafeArea( + // child: ListView( + // padding: const EdgeInsets.all(16), + // children: [ + // ListTile( + // contentPadding: EdgeInsets.zero, + // leading: Avatar( + // mxContent: sender.avatarUrl, + // name: sender.calcDisplayname(), + // presenceUserId: sender.stateKey, + // client: event.room.client, + // ), + // title: Text(sender.calcDisplayname()), + // subtitle: Text(event.originServerTs.localizedTime(context)), + // trailing: const Icon(Icons.lock_outlined), + // ), + // const Divider(), + // Text( + // event.calcLocalizedBodyFallback( + // MatrixLocals(l10n), + // ), + // ), + // ], + // ), + // ), + // ), + // ); + // } + // Pangea# @override Widget build(BuildContext context) { @@ -295,9 +293,11 @@ class MessageContent extends StatelessWidget { }, ); } - final bigEmotes = event.onlyEmotes && - event.numberEmotes > 0 && - event.numberEmotes <= 3; + // #Pangea + // final bigEmotes = event.onlyEmotes && + // event.numberEmotes > 0 && + // event.numberEmotes <= 3; + // Pangea# // #Pangea final messageTextStyle = diff --git a/lib/pages/chat/events/reply_content.dart b/lib/pages/chat/events/reply_content.dart index 66e9881f8..de237f004 100644 --- a/lib/pages/chat/events/reply_content.dart +++ b/lib/pages/chat/events/reply_content.dart @@ -1,8 +1,9 @@ -import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import '../../../config/app_config.dart'; class ReplyContent extends StatelessWidget { @@ -38,7 +39,7 @@ class ReplyContent extends StatelessWidget { return Material( color: backgroundColor ?? - theme.colorScheme.surface.withOpacity(ownMessage ? 0.2 : 0.33), + theme.colorScheme.surface.withAlpha(ownMessage ? 50 : 80), borderRadius: borderRadius, child: Row( mainAxisSize: MainAxisSize.min, diff --git a/lib/pages/chat/events/room_creation_state_event.dart b/lib/pages/chat/events/room_creation_state_event.dart index 4e8c9471c..8cfd0c100 100644 --- a/lib/pages/chat/events/room_creation_state_event.dart +++ b/lib/pages/chat/events/room_creation_state_event.dart @@ -1,10 +1,12 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/utils/date_time_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/widgets/avatar.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; class RoomCreationStateEvent extends StatelessWidget { final Event event; diff --git a/lib/pages/chat/events/video_player.dart b/lib/pages/chat/events/video_player.dart index 3c304e694..3f2b3d0cc 100644 --- a/lib/pages/chat/events/video_player.dart +++ b/lib/pages/chat/events/video_player.dart @@ -1,20 +1,21 @@ import 'dart:io'; -import 'package:chewie/chewie.dart'; -import 'package:fluffychat/config/app_config.dart'; -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'; -import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:fluffychat/widgets/blur_hash.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + +import 'package:chewie/chewie.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; import 'package:path_provider/path_provider.dart'; import 'package:universal_html/html.dart' as html; import 'package:video_player/video_player.dart'; +import 'package:fluffychat/config/app_config.dart'; +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'; +import 'package:fluffychat/utils/platform_infos.dart'; +import 'package:fluffychat/widgets/blur_hash.dart'; import '../../../utils/error_reporter.dart'; class EventVideoPlayer extends StatefulWidget { diff --git a/lib/pages/chat/input_bar.dart b/lib/pages/chat/input_bar.dart index 194b5700c..1ba81536f 100644 --- a/lib/pages/chat/input_bar.dart +++ b/lib/pages/chat/input_bar.dart @@ -1,20 +1,21 @@ -import 'package:emojis/emoji.dart'; -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/pages/chat/command_hints.dart'; -import 'package:fluffychat/pangea/widgets/igc/pangea_text_controller.dart'; -import 'package:fluffychat/utils/markdown_context_builder.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:fluffychat/widgets/avatar.dart'; -import 'package:fluffychat/widgets/matrix.dart'; -import 'package:fluffychat/widgets/mxc_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; + +import 'package:emojis/emoji.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_typeahead/flutter_typeahead.dart'; import 'package:matrix/matrix.dart'; import 'package:pasteboard/pasteboard.dart'; import 'package:slugify/slugify.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pages/chat/command_hints.dart'; +import 'package:fluffychat/pangea/widgets/igc/pangea_text_controller.dart'; +import 'package:fluffychat/utils/markdown_context_builder.dart'; +import 'package:fluffychat/widgets/avatar.dart'; +import 'package:fluffychat/widgets/matrix.dart'; +import 'package:fluffychat/widgets/mxc_image.dart'; + class InputBar extends StatelessWidget { final Room room; final int? minLines; @@ -412,7 +413,10 @@ class InputBar extends StatelessWidget { @override Widget build(BuildContext context) { - final useShortCuts = (AppConfig.sendOnEnter ?? !PlatformInfos.isMobile); + // #Pangea + // final useShortCuts = (AppConfig.sendOnEnter ?? !PlatformInfos.isMobile); + final useShortCuts = AppConfig.sendOnEnter; + // Pangea# return Shortcuts( shortcuts: !useShortCuts ? {} diff --git a/lib/pages/chat/reactions_picker.dart b/lib/pages/chat/reactions_picker.dart index fade2a24b..2610a0d50 100644 --- a/lib/pages/chat/reactions_picker.dart +++ b/lib/pages/chat/reactions_picker.dart @@ -1,9 +1,10 @@ +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/app_emojis.dart'; import 'package:fluffychat/pages/chat/chat.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; - import '../../config/themes.dart'; class ReactionsPicker extends StatelessWidget { diff --git a/lib/pages/chat/recording_dialog.dart b/lib/pages/chat/recording_dialog.dart index a14d68cb3..45a58f550 100644 --- a/lib/pages/chat/recording_dialog.dart +++ b/lib/pages/chat/recording_dialog.dart @@ -1,17 +1,18 @@ import 'dart:async'; -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/pangea/utils/update_version_dialog.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:path/path.dart' as path_lib; import 'package:path_provider/path_provider.dart'; import 'package:record/record.dart'; import 'package:wakelock_plus/wakelock_plus.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pangea/utils/update_version_dialog.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; import 'events/audio_player.dart'; class RecordingDialog extends StatefulWidget { diff --git a/lib/pages/chat/reply_display.dart b/lib/pages/chat/reply_display.dart index 6dfc4cae9..ec607e1ac 100644 --- a/lib/pages/chat/reply_display.dart +++ b/lib/pages/chat/reply_display.dart @@ -1,8 +1,9 @@ -import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import '../../config/themes.dart'; import 'chat.dart'; import 'events/reply_content.dart'; diff --git a/lib/pages/chat/seen_by_row.dart b/lib/pages/chat/seen_by_row.dart index 7093886ba..d14180074 100644 --- a/lib/pages/chat/seen_by_row.dart +++ b/lib/pages/chat/seen_by_row.dart @@ -1,9 +1,10 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/utils/room_status_extension.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; class SeenByRow extends StatelessWidget { final ChatController controller; diff --git a/lib/pages/chat/sticker_picker_dialog.dart b/lib/pages/chat/sticker_picker_dialog.dart index 7f55d3703..3828bec2f 100644 --- a/lib/pages/chat/sticker_picker_dialog.dart +++ b/lib/pages/chat/sticker_picker_dialog.dart @@ -1,9 +1,10 @@ -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/widgets/mxc_image.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/widgets/mxc_image.dart'; import '../../widgets/avatar.dart'; class StickerPickerDialog extends StatefulWidget { diff --git a/lib/pages/chat/typing_indicators.dart b/lib/pages/chat/typing_indicators.dart index 24fcfb3bc..2386e26db 100644 --- a/lib/pages/chat/typing_indicators.dart +++ b/lib/pages/chat/typing_indicators.dart @@ -1,11 +1,12 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; class TypingIndicators extends StatelessWidget { final ChatController controller; diff --git a/lib/pages/chat_details/chat_details.dart b/lib/pages/chat_details/chat_details.dart index dffdf7a05..e52b46363 100644 --- a/lib/pages/chat_details/chat_details.dart +++ b/lib/pages/chat_details/chat_details.dart @@ -1,4 +1,12 @@ +import 'package:flutter/material.dart'; + 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' as sdk; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/settings/settings.dart'; import 'package:fluffychat/pangea/pages/chat_details/pangea_chat_details.dart'; import 'package:fluffychat/pangea/utils/set_class_name.dart'; @@ -6,12 +14,6 @@ import 'package:fluffychat/utils/file_selector.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.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' as sdk; -import 'package:matrix/matrix.dart'; enum AliasActions { copy, delete, setCanonical } diff --git a/lib/pages/chat_details/chat_details_view.dart b/lib/pages/chat_details/chat_details_view.dart index 92099828a..253c190dc 100644 --- a/lib/pages/chat_details/chat_details_view.dart +++ b/lib/pages/chat_details/chat_details_view.dart @@ -1,3 +1,10 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + 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'; @@ -7,12 +14,6 @@ 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:flutter_linkify/flutter_linkify.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; - import '../../utils/url_launcher.dart'; class ChatDetailsView extends StatelessWidget { diff --git a/lib/pages/chat_details/participant_list_item.dart b/lib/pages/chat_details/participant_list_item.dart index ed3cf14cd..2be366a7c 100644 --- a/lib/pages/chat_details/participant_list_item.dart +++ b/lib/pages/chat_details/participant_list_item.dart @@ -1,9 +1,10 @@ -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import '../../widgets/avatar.dart'; import '../user_bottom_sheet/user_bottom_sheet.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 6b99cbf9e..238cf6f7b 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,15 @@ -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'; -import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:flutter/material.dart'; + 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'; +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'; +import 'package:fluffychat/widgets/layouts/max_width_body.dart'; + class ChatEncryptionSettingsView extends StatelessWidget { final ChatEncryptionSettingsController controller; diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index c846e8aee..f299cfc1f 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -1,7 +1,19 @@ import 'dart:async'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:cross_file/cross_file.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_shortcuts/flutter_shortcuts.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart' as sdk; +import 'package:matrix/matrix.dart'; +import 'package:receive_sharing_intent/receive_sharing_intent.dart'; +import 'package:uni_links/uni_links.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/send_file_dialog.dart'; @@ -18,28 +30,18 @@ import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/utils/show_update_snackbar.dart'; -import 'package:fluffychat/utils/tor_stub.dart' - if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; import 'package:fluffychat/utils/url_launcher.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:flutter_shortcuts/flutter_shortcuts.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart' as sdk; -import 'package:matrix/matrix.dart'; -import 'package:receive_sharing_intent/receive_sharing_intent.dart'; -import 'package:uni_links/uni_links.dart'; - import '../../../utils/account_bundles.dart'; import '../../config/setting_keys.dart'; import '../../utils/voip/callkeep_manager.dart'; import '../../widgets/fluffy_chat_app.dart'; import '../../widgets/matrix.dart'; +import 'package:fluffychat/utils/tor_stub.dart' + if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; + enum SelectMode { normal, share, @@ -1053,7 +1055,9 @@ class ChatListController extends State bool waitForFirstSync = false; Future _waitForFirstSync() async { - final router = GoRouter.of(context); + // #Pangea + // final router = GoRouter.of(context); + // Pangea# final client = Matrix.of(context).client; await client.roomsLoading; await client.accountDataLoading; diff --git a/lib/pages/chat_list/chat_list_body.dart b/lib/pages/chat_list/chat_list_body.dart index 850be8532..b7f934fa7 100644 --- a/lib/pages/chat_list/chat_list_body.dart +++ b/lib/pages/chat_list/chat_list_body.dart @@ -1,3 +1,9 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pages/chat_list/chat_list_item.dart'; @@ -11,11 +17,6 @@ import 'package:fluffychat/utils/stream_extension.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/hover_builder.dart'; import 'package:fluffychat/widgets/public_room_bottom_sheet.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; - import '../../config/themes.dart'; import '../../widgets/connection_status_header.dart'; import '../../widgets/matrix.dart'; diff --git a/lib/pages/chat_list/chat_list_header.dart b/lib/pages/chat_list/chat_list_header.dart index 784462f53..663d8c698 100644 --- a/lib/pages/chat_list/chat_list_header.dart +++ b/lib/pages/chat_list/chat_list_header.dart @@ -1,9 +1,11 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + 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'; import 'package:fluffychat/pangea/widgets/chat_list/analytics_summary/learning_progress_indicators.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class ChatListHeader extends StatelessWidget implements PreferredSizeWidget { final ChatListController controller; diff --git a/lib/pages/chat_list/chat_list_item.dart b/lib/pages/chat_list/chat_list_item.dart index 574be655d..caad0b7a2 100644 --- a/lib/pages/chat_list/chat_list_item.dart +++ b/lib/pages/chat_list/chat_list_item.dart @@ -1,14 +1,15 @@ +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/utils/get_chat_list_item_subtitle.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/room_status_extension.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/hover_builder.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; - import '../../config/themes.dart'; import '../../utils/date_time_extension.dart'; import '../../widgets/avatar.dart'; diff --git a/lib/pages/chat_list/chat_list_view.dart b/lib/pages/chat_list/chat_list_view.dart index ccf0f8088..baf01e702 100644 --- a/lib/pages/chat_list/chat_list_view.dart +++ b/lib/pages/chat_list/chat_list_view.dart @@ -1,3 +1,9 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_list/chat_list.dart'; @@ -6,11 +12,6 @@ import 'package:fluffychat/pangea/widgets/chat/chat_list_view_body_wrapper.dart' import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/stream_extension.dart'; import 'package:fluffychat/widgets/avatar.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; - import '../../widgets/matrix.dart'; class ChatListView extends StatelessWidget { diff --git a/lib/pages/chat_list/client_chooser_button.dart b/lib/pages/chat_list/client_chooser_button.dart index 2a9023c55..74727c9d6 100644 --- a/lib/pages/chat_list/client_chooser_button.dart +++ b/lib/pages/chat_list/client_chooser_button.dart @@ -1,13 +1,15 @@ +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/pages/settings_learning/settings_learning.dart'; import 'package:fluffychat/pangea/utils/logout.dart'; import 'package:fluffychat/pangea/utils/space_code.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; class ClientChooserButton extends StatelessWidget { // #Pangea @@ -23,8 +25,8 @@ class ClientChooserButton extends StatelessWidget { }); List> _bundleMenuItems(BuildContext context) { - final matrix = Matrix.of(context); // #Pangea + // final matrix = Matrix.of(context); // final bundles = matrix.accountBundles.keys.toList() // ..sort( // (a, b) => a!.isValidMatrixId == b!.isValidMatrixId diff --git a/lib/pages/chat_list/space_view.dart b/lib/pages/chat_list/space_view.dart index bba64df76..787ae2284 100644 --- a/lib/pages/chat_list/space_view.dart +++ b/lib/pages/chat_list/space_view.dart @@ -1,7 +1,14 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; 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' as sdk; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pages/chat_list/chat_list_item.dart'; @@ -16,11 +23,6 @@ import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:fluffychat/widgets/public_room_bottom_sheet.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart' as sdk; -import 'package:matrix/matrix.dart'; enum AddRoomType { chat, diff --git a/lib/pages/chat_list/status_msg_list.dart b/lib/pages/chat_list/status_msg_list.dart index 38bde4d32..efbf71b2d 100644 --- a/lib/pages/chat_list/status_msg_list.dart +++ b/lib/pages/chat_list/status_msg_list.dart @@ -1,3 +1,7 @@ +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/user_bottom_sheet/user_bottom_sheet.dart'; @@ -6,8 +10,6 @@ import 'package:fluffychat/utils/stream_extension.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/hover_builder.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; class StatusMessageList extends StatelessWidget { final void Function() onStatusEdit; @@ -124,7 +126,7 @@ class PresenceAvatar extends StatelessWidget { const statusMsgBubbleElevation = 6.0; final statusMsgBubbleShadowColor = theme.colorScheme.surface; - final statusMsgBubbleColor = Colors.white.withOpacity(0.9); + final statusMsgBubbleColor = Colors.white.withAlpha(230); return Padding( padding: const EdgeInsets.symmetric(horizontal: 8.0), child: SizedBox( 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 93a3b1e96..ac021b8f9 100644 --- a/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart +++ b/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart @@ -1,10 +1,12 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + 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'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; class ChatPermissionsSettingsView extends StatelessWidget { final ChatPermissionsSettingsController controller; diff --git a/lib/pages/chat_permissions_settings/permission_list_tile.dart b/lib/pages/chat_permissions_settings/permission_list_tile.dart index 51d6ddba6..bb5e03dcc 100644 --- a/lib/pages/chat_permissions_settings/permission_list_tile.dart +++ b/lib/pages/chat_permissions_settings/permission_list_tile.dart @@ -1,8 +1,10 @@ -import 'package:fluffychat/config/app_config.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/config/app_config.dart'; + class PermissionsListTile extends StatelessWidget { final String permissionKey; final int permission; diff --git a/lib/pages/chat_search/chat_search_message_tab.dart b/lib/pages/chat_search/chat_search_message_tab.dart index 53cb45b8a..8e70730d0 100644 --- a/lib/pages/chat_search/chat_search_message_tab.dart +++ b/lib/pages/chat_search/chat_search_message_tab.dart @@ -1,13 +1,15 @@ -import 'package:fluffychat/utils/date_time_extension.dart'; -import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; -import 'package:fluffychat/utils/url_launcher.dart'; -import 'package:fluffychat/widgets/avatar.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_linkify/flutter_linkify.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/utils/date_time_extension.dart'; +import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:fluffychat/utils/url_launcher.dart'; +import 'package:fluffychat/widgets/avatar.dart'; + class ChatSearchMessageTab extends StatelessWidget { final String searchQuery; final Room room; diff --git a/lib/pages/device_settings/device_settings.dart b/lib/pages/device_settings/device_settings.dart index d48df3c68..e74cfacfd 100644 --- a/lib/pages/device_settings/device_settings.dart +++ b/lib/pages/device_settings/device_settings.dart @@ -1,13 +1,14 @@ +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart' show IterableExtension; -import 'package:fluffychat/pages/device_settings/device_settings_view.dart'; -import 'package:fluffychat/pages/key_verification/key_verification_dialog.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/encryption/utils/key_verification.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pages/device_settings/device_settings_view.dart'; +import 'package:fluffychat/pages/key_verification/key_verification_dialog.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; import '../../widgets/matrix.dart'; class DevicesSettings extends StatefulWidget { @@ -57,7 +58,9 @@ class DevicesSettingsController extends State { cancelLabel: L10n.of(context).cancel, message: L10n.of(context).removeDevicesDescription, ) == - OkCancelResult.cancel) return; + OkCancelResult.cancel) { + return; + } final matrix = Matrix.of(context); final deviceIds = []; for (final userDevice in devices) { diff --git a/lib/pages/device_settings/device_settings_view.dart b/lib/pages/device_settings/device_settings_view.dart index 399d5d583..01880512c 100644 --- a/lib/pages/device_settings/device_settings_view.dart +++ b/lib/pages/device_settings/device_settings_view.dart @@ -1,8 +1,9 @@ -import 'package:fluffychat/pages/device_settings/device_settings.dart'; -import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pages/device_settings/device_settings.dart'; +import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'user_device_list_item.dart'; class DevicesSettingsView extends StatelessWidget { diff --git a/lib/pages/dialer/dialer.dart b/lib/pages/dialer/dialer.dart index 1bbf84366..edcc6868c 100644 --- a/lib/pages/dialer/dialer.dart +++ b/lib/pages/dialer/dialer.dart @@ -19,13 +19,10 @@ import 'dart:async'; import 'dart:math'; -import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:fluffychat/utils/voip/video_renderer.dart'; -import 'package:fluffychat/widgets/avatar.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; + import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_webrtc/flutter_webrtc.dart' hide VideoRenderer; @@ -33,6 +30,10 @@ import 'package:just_audio/just_audio.dart'; import 'package:matrix/matrix.dart'; import 'package:wakelock_plus/wakelock_plus.dart'; +import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; +import 'package:fluffychat/utils/voip/video_renderer.dart'; +import 'package:fluffychat/widgets/avatar.dart'; import 'pip/pip_view.dart'; class _StreamView extends StatelessWidget { diff --git a/lib/pages/dialer/pip/pip_view.dart b/lib/pages/dialer/pip/pip_view.dart index 5396c9136..d9aa3d90f 100644 --- a/lib/pages/dialer/pip/pip_view.dart +++ b/lib/pages/dialer/pip/pip_view.dart @@ -330,8 +330,6 @@ Map _calculateOffsets({ return Offset(left, bottom); case PIPViewCorner.bottomRight: return Offset(right, bottom); - default: - throw Exception('Not implemented.'); } } diff --git a/lib/pages/homeserver_picker/homeserver_picker.dart b/lib/pages/homeserver_picker/homeserver_picker.dart index 26e3c84bc..a50083f7a 100644 --- a/lib/pages/homeserver_picker/homeserver_picker.dart +++ b/lib/pages/homeserver_picker/homeserver_picker.dart @@ -1,16 +1,10 @@ import 'dart:async'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/pages/homeserver_picker/homeserver_picker_view.dart'; -import 'package:fluffychat/utils/file_selector.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:fluffychat/utils/tor_stub.dart' - if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; -import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_web_auth_2/flutter_web_auth_2.dart'; import 'package:go_router/go_router.dart'; @@ -19,8 +13,16 @@ import 'package:matrix/matrix.dart'; import 'package:universal_html/html.dart' as html; import 'package:url_launcher/url_launcher_string.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pages/homeserver_picker/homeserver_picker_view.dart'; +import 'package:fluffychat/utils/file_selector.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; +import 'package:fluffychat/widgets/matrix.dart'; import '../../utils/localized_exception_extension.dart'; +import 'package:fluffychat/utils/tor_stub.dart' + if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; + class HomeserverPicker extends StatefulWidget { final bool addMultiAccount; const HomeserverPicker({required this.addMultiAccount, super.key}); diff --git a/lib/pages/homeserver_picker/homeserver_picker_view.dart b/lib/pages/homeserver_picker/homeserver_picker_view.dart index 7e8541611..ff3045c27 100644 --- a/lib/pages/homeserver_picker/homeserver_picker_view.dart +++ b/lib/pages/homeserver_picker/homeserver_picker_view.dart @@ -1,13 +1,14 @@ -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/widgets/adaptive_dialog_action.dart'; -import 'package:fluffychat/widgets/layouts/login_scaffold.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_linkify/flutter_linkify.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher_string.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/widgets/adaptive_dialog_action.dart'; +import 'package:fluffychat/widgets/layouts/login_scaffold.dart'; +import 'package:fluffychat/widgets/matrix.dart'; import '../../config/themes.dart'; import 'homeserver_picker.dart'; diff --git a/lib/pages/image_viewer/image_viewer.dart b/lib/pages/image_viewer/image_viewer.dart index c7c3a1dff..9e8cfe82c 100644 --- a/lib/pages/image_viewer/image_viewer.dart +++ b/lib/pages/image_viewer/image_viewer.dart @@ -1,10 +1,11 @@ -import 'package:fluffychat/pages/image_viewer/image_viewer_view.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; + import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pages/image_viewer/image_viewer_view.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; +import 'package:fluffychat/widgets/matrix.dart'; import '../../utils/matrix_sdk_extensions/event_extension.dart'; class ImageViewer extends StatefulWidget { diff --git a/lib/pages/image_viewer/image_viewer_view.dart b/lib/pages/image_viewer/image_viewer_view.dart index 4c29cbc87..b727cc92b 100644 --- a/lib/pages/image_viewer/image_viewer_view.dart +++ b/lib/pages/image_viewer/image_viewer_view.dart @@ -14,13 +14,13 @@ class ImageViewerView extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: Colors.black.withOpacity(0.5), + backgroundColor: Colors.black.withAlpha(128), extendBodyBehindAppBar: true, appBar: AppBar( elevation: 0, leading: IconButton( style: IconButton.styleFrom( - backgroundColor: Colors.black.withOpacity(0.5), + backgroundColor: Colors.black.withAlpha(128), ), icon: const Icon(Icons.close), onPressed: Navigator.of(context).pop, @@ -31,7 +31,7 @@ class ImageViewerView extends StatelessWidget { actions: [ IconButton( style: IconButton.styleFrom( - backgroundColor: Colors.black.withOpacity(0.5), + backgroundColor: Colors.black.withAlpha(128), ), icon: const Icon(Icons.reply_outlined), onPressed: controller.forwardAction, @@ -41,7 +41,7 @@ class ImageViewerView extends StatelessWidget { const SizedBox(width: 8), IconButton( style: IconButton.styleFrom( - backgroundColor: Colors.black.withOpacity(0.5), + backgroundColor: Colors.black.withAlpha(128), ), icon: const Icon(Icons.download_outlined), onPressed: () => controller.saveFileAction(context), @@ -56,7 +56,7 @@ class ImageViewerView extends StatelessWidget { child: Builder( builder: (context) => IconButton( style: IconButton.styleFrom( - backgroundColor: Colors.black.withOpacity(0.5), + backgroundColor: Colors.black.withAlpha(128), ), onPressed: () => controller.shareFileAction(context), tooltip: L10n.of(context).share, diff --git a/lib/pages/invitation_selection/invitation_selection.dart b/lib/pages/invitation_selection/invitation_selection.dart index cf11ae9dd..6cdeeb59b 100644 --- a/lib/pages/invitation_selection/invitation_selection.dart +++ b/lib/pages/invitation_selection/invitation_selection.dart @@ -1,14 +1,15 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/invitation_selection/invitation_selection_view.dart'; import 'package:fluffychat/pangea/utils/bot_name.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; - import '../../utils/localized_exception_extension.dart'; class InvitationSelection extends StatefulWidget { diff --git a/lib/pages/invitation_selection/invitation_selection_view.dart b/lib/pages/invitation_selection/invitation_selection_view.dart index 2219818e4..4725105cd 100644 --- a/lib/pages/invitation_selection/invitation_selection_view.dart +++ b/lib/pages/invitation_selection/invitation_selection_view.dart @@ -1,13 +1,15 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/invitation_selection/invitation_selection.dart'; import 'package:fluffychat/pages/user_bottom_sheet/user_bottom_sheet.dart'; import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import 'package:fluffychat/widgets/avatar.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:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; class InvitationSelectionView extends StatelessWidget { final InvitationSelectionController controller; diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index a9d411714..d8e50f815 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -1,6 +1,11 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/pages/sign_up/pangea_login_view.dart'; @@ -8,10 +13,6 @@ import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; - import '../../utils/platform_infos.dart'; class Login extends StatefulWidget { diff --git a/lib/pages/login/login_view.dart b/lib/pages/login/login_view.dart index 5325ea9b9..5b04bbad0 100644 --- a/lib/pages/login/login_view.dart +++ b/lib/pages/login/login_view.dart @@ -1,8 +1,9 @@ -import 'package:fluffychat/widgets/layouts/login_scaffold.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/widgets/layouts/login_scaffold.dart'; +import 'package:fluffychat/widgets/matrix.dart'; import 'login.dart'; class LoginView extends StatelessWidget { diff --git a/lib/pages/new_group/new_group.dart b/lib/pages/new_group/new_group.dart index 52847d7bd..458ac89c8 100644 --- a/lib/pages/new_group/new_group.dart +++ b/lib/pages/new_group/new_group.dart @@ -1,5 +1,11 @@ import 'dart:typed_data'; +import 'package:flutter/material.dart'; + +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart' as sdk; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/new_group/new_group_view.dart'; import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; @@ -10,10 +16,6 @@ import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/pangea/utils/space_code.dart'; import 'package:fluffychat/utils/file_selector.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart' as sdk; -import 'package:matrix/matrix.dart'; class NewGroup extends StatefulWidget { final CreateGroupType createGroupType; diff --git a/lib/pages/new_group/new_group_view.dart b/lib/pages/new_group/new_group_view.dart index 4b8252cad..6affea3f8 100644 --- a/lib/pages/new_group/new_group_view.dart +++ b/lib/pages/new_group/new_group_view.dart @@ -1,10 +1,12 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/new_group/new_group.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class NewGroupView extends StatelessWidget { final NewGroupController controller; 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 c945ccc7a..801a72de1 100644 --- a/lib/pages/new_private_chat/new_private_chat_view.dart +++ b/lib/pages/new_private_chat/new_private_chat_view.dart @@ -1,3 +1,10 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; +import 'package:pretty_qr_code/pretty_qr_code.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/new_private_chat/new_private_chat.dart'; @@ -7,11 +14,6 @@ import 'package:fluffychat/utils/url_launcher.dart'; import 'package:fluffychat/widgets/avatar.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:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; -import 'package:pretty_qr_code/pretty_qr_code.dart'; class NewPrivateChatView extends StatelessWidget { final NewPrivateChatController controller; diff --git a/lib/pages/settings/settings.dart b/lib/pages/settings/settings.dart index 3973cc6a0..8474ce9a5 100644 --- a/lib/pages/settings/settings.dart +++ b/lib/pages/settings/settings.dart @@ -1,14 +1,15 @@ +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; -import 'package:fluffychat/pangea/utils/logout.dart'; -import 'package:fluffychat/utils/file_selector.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:image_picker/image_picker.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/utils/logout.dart'; +import 'package:fluffychat/utils/file_selector.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; import '../../widgets/matrix.dart'; import 'settings_view.dart'; diff --git a/lib/pages/settings/settings_view.dart b/lib/pages/settings/settings_view.dart index 515845cc4..08bb34a6c 100644 --- a/lib/pages/settings/settings_view.dart +++ b/lib/pages/settings/settings_view.dart @@ -1,17 +1,18 @@ -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/pangea/config/environment.dart'; -import 'package:fluffychat/utils/fluffy_share.dart'; -import 'package:fluffychat/widgets/avatar.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:url_launcher/url_launcher_string.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pangea/config/environment.dart'; +import 'package:fluffychat/utils/fluffy_share.dart'; +import 'package:fluffychat/widgets/avatar.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; +import 'package:fluffychat/widgets/matrix.dart'; import 'settings.dart'; class SettingsView extends StatelessWidget { @@ -22,7 +23,9 @@ class SettingsView extends StatelessWidget { @override Widget build(BuildContext context) { final theme = Theme.of(context); - final showChatBackupBanner = controller.showChatBackupBanner; + // #Pangea + // final showChatBackupBanner = controller.showChatBackupBanner; + // Pangea# return Scaffold( appBar: AppBar( leading: Center( @@ -37,7 +40,9 @@ class SettingsView extends StatelessWidget { child: FutureBuilder( future: controller.getOidcAccountManageUrl(), builder: (context, snapshot) { - final accountManageUrl = snapshot.data; + // #Pangea + // final accountManageUrl = snapshot.data; + // Pangea# return ListView( key: const Key('SettingsListViewContent'), children: [ diff --git a/lib/pages/settings_3pid/settings_3pid_view.dart b/lib/pages/settings_3pid/settings_3pid_view.dart index ffaf26d4a..86b67a1b3 100644 --- a/lib/pages/settings_3pid/settings_3pid_view.dart +++ b/lib/pages/settings_3pid/settings_3pid_view.dart @@ -1,9 +1,11 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/settings_3pid/settings_3pid.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:matrix/matrix.dart'; class Settings3PidView extends StatelessWidget { final Settings3PidController controller; diff --git a/lib/pages/settings_chat/settings_chat_view.dart b/lib/pages/settings_chat/settings_chat_view.dart index 61101d00f..ee42ce363 100644 --- a/lib/pages/settings_chat/settings_chat_view.dart +++ b/lib/pages/settings_chat/settings_chat_view.dart @@ -1,10 +1,11 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/settings_switch_list_tile.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - import 'settings_chat.dart'; class SettingsChatView extends StatelessWidget { diff --git a/lib/pages/settings_emotes/settings_emotes.dart b/lib/pages/settings_emotes/settings_emotes.dart index 5ca5e3480..259409030 100644 --- a/lib/pages/settings_emotes/settings_emotes.dart +++ b/lib/pages/settings_emotes/settings_emotes.dart @@ -1,22 +1,24 @@ -import 'package:adaptive_dialog/adaptive_dialog.dart'; -import 'package:archive/archive.dart' - if (dart.library.io) 'package:archive/archive_io.dart'; -import 'package:collection/collection.dart'; -import 'package:fluffychat/utils/client_manager.dart'; -import 'package:fluffychat/utils/file_selector.dart'; -import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + +import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:http/http.dart' hide Client; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/utils/client_manager.dart'; +import 'package:fluffychat/utils/file_selector.dart'; +import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; import '../../widgets/matrix.dart'; import 'import_archive_dialog.dart'; import 'settings_emotes_view.dart'; +import 'package:archive/archive.dart' + if (dart.library.io) 'package:archive/archive_io.dart'; + class EmotesSettings extends StatefulWidget { const EmotesSettings({super.key}); diff --git a/lib/pages/settings_homeserver/settings_homeserver_view.dart b/lib/pages/settings_homeserver/settings_homeserver_view.dart index 9ad83346c..792d6093e 100644 --- a/lib/pages/settings_homeserver/settings_homeserver_view.dart +++ b/lib/pages/settings_homeserver/settings_homeserver_view.dart @@ -1,14 +1,15 @@ import 'dart:convert'; -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/utils/localized_exception_extension.dart'; -import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_linkify/flutter_linkify.dart'; import 'package:matrix/matrix.dart'; import 'package:url_launcher/url_launcher_string.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/utils/localized_exception_extension.dart'; +import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import '../../widgets/matrix.dart'; import 'settings_homeserver.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 f9a5dfe72..7b13c3e67 100644 --- a/lib/pages/settings_ignore_list/settings_ignore_list_view.dart +++ b/lib/pages/settings_ignore_list/settings_ignore_list_view.dart @@ -1,10 +1,11 @@ -import 'package:fluffychat/widgets/avatar.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/widgets/avatar.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; +import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import '../../widgets/matrix.dart'; import 'settings_ignore_list.dart'; diff --git a/lib/pages/settings_notifications/settings_notifications.dart b/lib/pages/settings_notifications/settings_notifications.dart index 85e4320d1..25d3e3038 100644 --- a/lib/pages/settings_notifications/settings_notifications.dart +++ b/lib/pages/settings_notifications/settings_notifications.dart @@ -1,11 +1,12 @@ +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart' show IterableExtension; -import 'package:fluffychat/utils/localized_exception_extension.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/utils/localized_exception_extension.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; import '../../widgets/matrix.dart'; import 'settings_notifications_view.dart'; diff --git a/lib/pages/settings_security/settings_security.dart b/lib/pages/settings_security/settings_security.dart index d5fb915f9..1eb94b13a 100644 --- a/lib/pages/settings_security/settings_security.dart +++ b/lib/pages/settings_security/settings_security.dart @@ -1,12 +1,13 @@ -import 'package:adaptive_dialog/adaptive_dialog.dart'; -import 'package:fluffychat/widgets/app_lock.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; + +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'; +import 'package:fluffychat/widgets/app_lock.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; +import 'package:fluffychat/widgets/matrix.dart'; import '../bootstrap/bootstrap_dialog.dart'; import 'settings_security_view.dart'; diff --git a/lib/pages/settings_security/settings_security_view.dart b/lib/pages/settings_security/settings_security_view.dart index 7c298e699..28f8908ba 100644 --- a/lib/pages/settings_security/settings_security_view.dart +++ b/lib/pages/settings_security/settings_security_view.dart @@ -1,3 +1,8 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/utils/beautify_string_extension.dart'; @@ -5,10 +10,6 @@ import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:fluffychat/widgets/settings_switch_list_tile.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; - import 'settings_security.dart'; class SettingsSecurityView extends StatelessWidget { diff --git a/lib/pages/settings_style/settings_style_view.dart b/lib/pages/settings_style/settings_style_view.dart index fe5d236b3..eea2bc660 100644 --- a/lib/pages/settings_style/settings_style_view.dart +++ b/lib/pages/settings_style/settings_style_view.dart @@ -10,6 +10,7 @@ import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/events/state_message.dart'; import 'package:fluffychat/utils/account_config.dart'; +import 'package:fluffychat/utils/color_value.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/matrix.dart'; @@ -100,7 +101,7 @@ class SettingsStyleView extends StatelessWidget { child: Tooltip( message: color == null ? L10n.of(context).systemTheme - : '#${color.value.toRadixString(16).toUpperCase()}', + : '#${color.hexValue.toRadixString(16).toUpperCase()}', child: InkWell( borderRadius: BorderRadius.circular(colorPickerSize), onTap: () => controller.setChatColor(color), diff --git a/lib/pages/user_bottom_sheet/user_bottom_sheet.dart b/lib/pages/user_bottom_sheet/user_bottom_sheet.dart index 26bc09c7f..0ce5d7759 100644 --- a/lib/pages/user_bottom_sheet/user_bottom_sheet.dart +++ b/lib/pages/user_bottom_sheet/user_bottom_sheet.dart @@ -1,13 +1,14 @@ -import 'package:adaptive_dialog/adaptive_dialog.dart'; -import 'package:fluffychat/config/themes.dart'; -import 'package:fluffychat/pangea/utils/bot_name.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:fluffychat/widgets/permission_slider_dialog.dart'; import 'package:flutter/material.dart'; + +import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/config/themes.dart'; +import 'package:fluffychat/pangea/utils/bot_name.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; +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 1c10b4767..0831ef2ae 100644 --- a/lib/pages/user_bottom_sheet/user_bottom_sheet_view.dart +++ b/lib/pages/user_bottom_sheet/user_bottom_sheet_view.dart @@ -1,3 +1,9 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/utils/bot_name.dart'; import 'package:fluffychat/utils/date_time_extension.dart'; @@ -6,11 +12,6 @@ import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/url_launcher.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/presence_builder.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:flutter_linkify/flutter_linkify.dart'; -import 'package:matrix/matrix.dart'; - import '../../widgets/matrix.dart'; import 'user_bottom_sheet.dart'; diff --git a/lib/pangea/choreographer/controllers/alternative_translator.dart b/lib/pangea/choreographer/controllers/alternative_translator.dart index d6193ff40..37aa67ab9 100644 --- a/lib/pangea/choreographer/controllers/alternative_translator.dart +++ b/lib/pangea/choreographer/controllers/alternative_translator.dart @@ -1,11 +1,12 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:http/http.dart' as http; + 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'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:http/http.dart' as http; - import '../../repo/similarity_repo.dart'; class AlternativeTranslator { diff --git a/lib/pangea/choreographer/controllers/choreographer.dart b/lib/pangea/choreographer/controllers/choreographer.dart index c86d77139..6c2e3c737 100644 --- a/lib/pangea/choreographer/controllers/choreographer.dart +++ b/lib/pangea/choreographer/controllers/choreographer.dart @@ -1,6 +1,11 @@ import 'dart:async'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:sentry_flutter/sentry_flutter.dart'; + 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'; @@ -19,10 +24,6 @@ import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/overlay.dart'; import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart'; import 'package:fluffychat/pangea/widgets/igc/paywall_card.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - import '../../../widgets/matrix.dart'; import '../../models/choreo_record.dart'; import '../../models/language_model.dart'; diff --git a/lib/pangea/choreographer/controllers/error_service.dart b/lib/pangea/choreographer/controllers/error_service.dart index 199b1de8c..e2da70b97 100644 --- a/lib/pangea/choreographer/controllers/error_service.dart +++ b/lib/pangea/choreographer/controllers/error_service.dart @@ -1,6 +1,6 @@ -import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import '../../utils/error_handler.dart'; enum ChoreoErrorType { diff --git a/lib/pangea/choreographer/controllers/igc_controller.dart b/lib/pangea/choreographer/controllers/igc_controller.dart index bebfaa4bc..a98a2d358 100644 --- a/lib/pangea/choreographer/controllers/igc_controller.dart +++ b/lib/pangea/choreographer/controllers/igc_controller.dart @@ -1,6 +1,11 @@ import 'dart:async'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/choreographer/controllers/error_service.dart'; import 'package:fluffychat/pangea/choreographer/controllers/span_data_controller.dart'; @@ -9,10 +14,6 @@ import 'package:fluffychat/pangea/models/igc_text_data_model.dart'; import 'package:fluffychat/pangea/models/pangea_match_model.dart'; import 'package:fluffychat/pangea/repo/igc_repo.dart'; import 'package:fluffychat/pangea/widgets/igc/span_card.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; - import '../../models/span_card_model.dart'; import '../../utils/error_handler.dart'; import '../../utils/overlay.dart'; diff --git a/lib/pangea/choreographer/controllers/it_controller.dart b/lib/pangea/choreographer/controllers/it_controller.dart index b469f6843..ba59df787 100644 --- a/lib/pangea/choreographer/controllers/it_controller.dart +++ b/lib/pangea/choreographer/controllers/it_controller.dart @@ -1,6 +1,12 @@ import 'dart:async'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:http/http.dart' as http; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/choreographer/controllers/error_service.dart'; import 'package:fluffychat/pangea/constants/choreo_constants.dart'; import 'package:fluffychat/pangea/controllers/put_analytics_controller.dart'; @@ -8,15 +14,9 @@ import 'package:fluffychat/pangea/enum/construct_use_type_enum.dart'; import 'package:fluffychat/pangea/enum/edit_type.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:http/http.dart' as http; -import 'package:sentry_flutter/sentry_flutter.dart'; - import '../../models/custom_input_translation_model.dart'; import '../../models/it_response_model.dart'; import '../../models/it_step.dart'; -import '../../models/system_choice_translation_model.dart'; import '../../repo/interactive_translation_repo.dart'; import 'choreographer.dart'; @@ -297,20 +297,6 @@ class ITController { ); } - // used when user selects a choice - Future _systemChoiceTranslation(String translationId) => - ITRepo.systemChoiceTranslate( - SystemChoiceRequestModel( - userId: choreographer.userId!, - nextWordIndex: - completedITSteps.last.chosenContinuance?.indexSavedByServer, - roomId: choreographer.roomId!, - translationId: translationId, - targetLangCode: targetLangCode, - sourceLangCode: sourceLangCode, - ), - ); - // MessageServiceModel? messageServiceModelWithMessageId() => // usedInteractiveTranslation // ? MessageServiceModel( diff --git a/lib/pangea/choreographer/controllers/span_data_controller.dart b/lib/pangea/choreographer/controllers/span_data_controller.dart index 6f5be4f4f..96c4177c5 100644 --- a/lib/pangea/choreographer/controllers/span_data_controller.dart +++ b/lib/pangea/choreographer/controllers/span_data_controller.dart @@ -1,11 +1,12 @@ import 'dart:async'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; + import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/models/span_data.dart'; import 'package:fluffychat/pangea/repo/span_data_repo.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; class _SpanDetailsCacheItem { Future data; diff --git a/lib/pangea/choreographer/widgets/choice_array.dart b/lib/pangea/choreographer/widgets/choice_array.dart index f1bfbec34..8f94ab773 100644 --- a/lib/pangea/choreographer/widgets/choice_array.dart +++ b/lib/pangea/choreographer/widgets/choice_array.dart @@ -1,12 +1,13 @@ import 'dart:developer'; import 'dart:math'; -import 'package:collection/collection.dart'; -import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + +import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart'; import '../../utils/bot_style.dart'; import 'it_shimmer.dart'; @@ -192,7 +193,7 @@ class ChoiceItem extends StatelessWidget { //if index is selected, then give the background a slight primary color backgroundColor: entry.value.color != null ? WidgetStateProperty.all( - entry.value.color!.withOpacity(0.2), + entry.value.color!.withAlpha(50), ) // : theme.colorScheme.primaryFixed, : null, diff --git a/lib/pangea/choreographer/widgets/counters.dart b/lib/pangea/choreographer/widgets/counters.dart index c3284c81a..d35c7419e 100644 --- a/lib/pangea/choreographer/widgets/counters.dart +++ b/lib/pangea/choreographer/widgets/counters.dart @@ -1,7 +1,8 @@ -import 'package:fluffychat/pangea/constants/choreo_constants.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/constants/choreo_constants.dart'; import '../../../config/app_config.dart'; class Counter extends StatelessWidget { diff --git a/lib/pangea/choreographer/widgets/has_error_button.dart b/lib/pangea/choreographer/widgets/has_error_button.dart index 77a7170d9..22d89f79c 100644 --- a/lib/pangea/choreographer/widgets/has_error_button.dart +++ b/lib/pangea/choreographer/widgets/has_error_button.dart @@ -1,6 +1,6 @@ -import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import '../controllers/error_service.dart'; class ChoreographerHasErrorButton extends StatelessWidget { diff --git a/lib/pangea/choreographer/widgets/it_bar.dart b/lib/pangea/choreographer/widgets/it_bar.dart index b0214734a..ad50d159c 100644 --- a/lib/pangea/choreographer/widgets/it_bar.dart +++ b/lib/pangea/choreographer/widgets/it_bar.dart @@ -1,6 +1,9 @@ import 'dart:async'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + 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'; @@ -14,9 +17,6 @@ import 'package:fluffychat/pangea/pages/settings_learning/settings_learning.dart import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/inline_tooltip.dart'; import 'package:fluffychat/pangea/widgets/animations/gain_points.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; - import '../../controllers/it_feedback_controller.dart'; import '../../models/it_response_model.dart'; import '../../utils/overlay.dart'; diff --git a/lib/pangea/choreographer/widgets/it_bar_buttons.dart b/lib/pangea/choreographer/widgets/it_bar_buttons.dart index d6d7caa3c..8dab602bd 100644 --- a/lib/pangea/choreographer/widgets/it_bar_buttons.dart +++ b/lib/pangea/choreographer/widgets/it_bar_buttons.dart @@ -1,8 +1,8 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/enum/instructions_enum.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; - import '../../widgets/common/bot_face_svg.dart'; import '../controllers/choreographer.dart'; import '../controllers/it_controller.dart'; diff --git a/lib/pangea/choreographer/widgets/it_feedback_card.dart b/lib/pangea/choreographer/widgets/it_feedback_card.dart index 63e1fd96e..b4a91b09e 100644 --- a/lib/pangea/choreographer/widgets/it_feedback_card.dart +++ b/lib/pangea/choreographer/widgets/it_feedback_card.dart @@ -1,7 +1,8 @@ -import 'package:fluffychat/pangea/repo/full_text_translation_repo.dart'; import 'package:flutter/material.dart'; + import 'package:http/http.dart'; +import 'package:fluffychat/pangea/repo/full_text_translation_repo.dart'; import '../../../config/app_config.dart'; import '../../../widgets/matrix.dart'; import '../../controllers/it_feedback_controller.dart'; diff --git a/lib/pangea/choreographer/widgets/it_shimmer.dart b/lib/pangea/choreographer/widgets/it_shimmer.dart index 2710ab57f..f47a6a84a 100644 --- a/lib/pangea/choreographer/widgets/it_shimmer.dart +++ b/lib/pangea/choreographer/widgets/it_shimmer.dart @@ -60,16 +60,16 @@ class ITShimmerElement extends StatelessWidget { imageFilter: ImageFilter.blur(sigmaX: 10, sigmaY: 10), child: TextButton( style: ButtonStyle( - padding: MaterialStateProperty.all( + padding: WidgetStateProperty.all( const EdgeInsets.symmetric(horizontal: 7), ), - shape: MaterialStateProperty.all( + shape: WidgetStateProperty.all( RoundedRectangleBorder( borderRadius: BorderRadius.circular(10), ), ), - backgroundColor: MaterialStateProperty.all( - AppConfig.primaryColor.withOpacity(0.2), + backgroundColor: WidgetStateProperty.all( + AppConfig.primaryColor.withAlpha(50), ), ), onPressed: () {}, diff --git a/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart b/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart index 8524bef43..e80859065 100644 --- a/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart +++ b/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart @@ -1,23 +1,24 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/models/space_model.dart'; import 'package:fluffychat/pangea/pages/settings_learning/settings_learning.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/gestures.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; - import '../../../widgets/matrix.dart'; -class _ErrorCopy { +class ErrorCopy { final String title; final String? description; - _ErrorCopy(this.title, [this.description]); + ErrorCopy(this.title, [this.description]); } class LanguagePermissionsButtons extends StatelessWidget { @@ -33,7 +34,7 @@ class LanguagePermissionsButtons extends StatelessWidget { @override Widget build(BuildContext context) { if (roomID == null) return const SizedBox.shrink(); - final _ErrorCopy? copy = getCopy(context); + final ErrorCopy? copy = getCopy(context); if (copy == null) return const SizedBox.shrink(); final Widget text = RichText( @@ -70,7 +71,7 @@ class LanguagePermissionsButtons extends StatelessWidget { ); } - _ErrorCopy? getCopy(BuildContext context) { + ErrorCopy? getCopy(BuildContext context) { final bool itDisabled = !choreographer.itEnabled; final bool igcDisabled = !choreographer.igcEnabled; if (roomID == null) { @@ -90,49 +91,49 @@ class LanguagePermissionsButtons extends StatelessWidget { .isToolDisabledByClass(ToolSetting.interactiveGrammar, room); if (itDisabledByClass && igcDisabledByClass) { - return _ErrorCopy( + return ErrorCopy( L10n.of(context).errorDisableLanguageAssistanceClassDesc, ); } if (itDisabledByClass) { if (igcDisabled) { - return _ErrorCopy( + return ErrorCopy( "{L10n.of(context).errorDisableITClassDesc} ${L10n.of(context).errorDisableIGC}", " ${L10n.of(context).errorDisableIGCUserDesc}", ); } else { - return _ErrorCopy(L10n.of(context).errorDisableITClassDesc); + return ErrorCopy(L10n.of(context).errorDisableITClassDesc); } } if (igcDisabledByClass) { if (itDisabled) { - return _ErrorCopy( + return ErrorCopy( "${L10n.of(context).errorDisableIGCClassDesc} ${L10n.of(context).errorDisableIT}", " ${L10n.of(context).errorDisableITUserDesc}", ); } else { - return _ErrorCopy(L10n.of(context).errorDisableIGCClassDesc); + return ErrorCopy(L10n.of(context).errorDisableIGCClassDesc); } } if (igcDisabled && itDisabled) { - return _ErrorCopy( + return ErrorCopy( L10n.of(context).errorDisableLanguageAssistance, " ${L10n.of(context).errorDisableLanguageAssistanceUserDesc}", ); } if (itDisabled) { - return _ErrorCopy( + return ErrorCopy( L10n.of(context).errorDisableIT, " ${L10n.of(context).errorDisableITUserDesc}", ); } if (igcDisabled) { - return _ErrorCopy( + return ErrorCopy( L10n.of(context).errorDisableIGC, " ${L10n.of(context).errorDisableIGCUserDesc}", ); diff --git a/lib/pangea/choreographer/widgets/send_button.dart b/lib/pangea/choreographer/widgets/send_button.dart index 435d83f1d..fd09fda08 100644 --- a/lib/pangea/choreographer/widgets/send_button.dart +++ b/lib/pangea/choreographer/widgets/send_button.dart @@ -1,9 +1,10 @@ import 'dart:async'; -import 'package:fluffychat/pangea/enum/assistance_state_enum.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/enum/assistance_state_enum.dart'; import '../../../pages/chat/chat.dart'; class ChoreographerSendButton extends StatefulWidget { diff --git a/lib/pangea/choreographer/widgets/start_igc_button.dart b/lib/pangea/choreographer/widgets/start_igc_button.dart index d92aaa5b6..9daeeacd9 100644 --- a/lib/pangea/choreographer/widgets/start_igc_button.dart +++ b/lib/pangea/choreographer/widgets/start_igc_button.dart @@ -1,12 +1,12 @@ import 'dart:async'; import 'dart:math' as math; +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/enum/assistance_state_enum.dart'; import 'package:fluffychat/pangea/pages/settings_learning/settings_learning.dart'; import 'package:fluffychat/pangea/utils/overlay.dart'; import 'package:fluffychat/pangea/widgets/igc/paywall_card.dart'; -import 'package:flutter/material.dart'; - import '../../../pages/chat/chat.dart'; class StartIGCButton extends StatefulWidget { diff --git a/lib/pangea/constants/morph_categories_and_labels.dart b/lib/pangea/constants/morph_categories_and_labels.dart index e69491301..fe9ae2218 100644 --- a/lib/pangea/constants/morph_categories_and_labels.dart +++ b/lib/pangea/constants/morph_categories_and_labels.dart @@ -2,6 +2,7 @@ import 'dart:developer'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + import 'package:material_symbols_icons/symbols.dart'; const Map> morphCategoriesAndLabels = { diff --git a/lib/pangea/controllers/app_version_controller.dart b/lib/pangea/controllers/app_version_controller.dart index dc0b75c9b..9d4e32bdb 100644 --- a/lib/pangea/controllers/app_version_controller.dart +++ b/lib/pangea/controllers/app_version_controller.dart @@ -1,7 +1,16 @@ import 'dart:convert'; import 'dart:math'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:http/http.dart'; +import 'package:package_info_plus/package_info_plus.dart'; +import 'package:universal_html/html.dart' as html; +import 'package:url_launcher/url_launcher_string.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/constants/local.key.dart'; @@ -10,13 +19,6 @@ import 'package:fluffychat/pangea/network/requests.dart'; import 'package:fluffychat/pangea/network/urls.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:http/http.dart'; -import 'package:package_info_plus/package_info_plus.dart'; -import 'package:universal_html/html.dart' as html; -import 'package:url_launcher/url_launcher_string.dart'; class AppVersionController { static Future _getAppVersion( diff --git a/lib/pangea/controllers/class_controller.dart b/lib/pangea/controllers/class_controller.dart index 89d5f077f..e7c4bd41c 100644 --- a/lib/pangea/controllers/class_controller.dart +++ b/lib/pangea/controllers/class_controller.dart @@ -2,6 +2,13 @@ import 'dart:async'; import 'dart:convert'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; @@ -12,12 +19,6 @@ import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; - import 'base_controller.dart'; class ClassController extends BaseController { diff --git a/lib/pangea/controllers/contextual_definition_controller.dart b/lib/pangea/controllers/contextual_definition_controller.dart index 78d77946a..ac3bfce66 100644 --- a/lib/pangea/controllers/contextual_definition_controller.dart +++ b/lib/pangea/controllers/contextual_definition_controller.dart @@ -1,11 +1,12 @@ import 'dart:convert'; -import 'package:collection/collection.dart'; -import 'package:fluffychat/pangea/config/environment.dart'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/foundation.dart'; + +import 'package:collection/collection.dart'; import 'package:http/http.dart'; +import 'package:fluffychat/pangea/config/environment.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../constants/model_keys.dart'; import '../network/requests.dart'; import '../network/urls.dart'; diff --git a/lib/pangea/controllers/get_analytics_controller.dart b/lib/pangea/controllers/get_analytics_controller.dart index 7783ebd95..b6b1d8509 100644 --- a/lib/pangea/controllers/get_analytics_controller.dart +++ b/lib/pangea/controllers/get_analytics_controller.dart @@ -1,6 +1,11 @@ import 'dart:async'; import 'dart:math'; +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/controllers/message_analytics_controller.dart'; @@ -13,9 +18,6 @@ import 'package:fluffychat/pangea/models/analytics/construct_list_model.dart'; import 'package:fluffychat/pangea/models/analytics/constructs_event.dart'; import 'package:fluffychat/pangea/models/analytics/constructs_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; /// A minimized version of AnalyticsController that get the logged in user's analytics class GetAnalyticsController { diff --git a/lib/pangea/controllers/it_feedback_controller.dart b/lib/pangea/controllers/it_feedback_controller.dart index c953bad43..df229129b 100644 --- a/lib/pangea/controllers/it_feedback_controller.dart +++ b/lib/pangea/controllers/it_feedback_controller.dart @@ -1,11 +1,12 @@ import 'dart:convert'; -import 'package:collection/collection.dart'; -import 'package:fluffychat/pangea/config/environment.dart'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/foundation.dart'; + +import 'package:collection/collection.dart'; import 'package:http/http.dart'; +import 'package:fluffychat/pangea/config/environment.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../constants/model_keys.dart'; import '../network/requests.dart'; import '../network/urls.dart'; diff --git a/lib/pangea/controllers/language_controller.dart b/lib/pangea/controllers/language_controller.dart index 9ed83a479..5625650b3 100644 --- a/lib/pangea/controllers/language_controller.dart +++ b/lib/pangea/controllers/language_controller.dart @@ -1,10 +1,13 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:flutter/material.dart'; + +import 'package:universal_io/io.dart'; + import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/controllers/language_list_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; -import 'package:flutter/material.dart'; -import 'package:universal_io/io.dart'; - import '../widgets/user_settings/p_language_dialog.dart'; class LanguageController { diff --git a/lib/pangea/controllers/language_detection_controller.dart b/lib/pangea/controllers/language_detection_controller.dart index 7214bdd51..9df3898cd 100644 --- a/lib/pangea/controllers/language_detection_controller.dart +++ b/lib/pangea/controllers/language_detection_controller.dart @@ -1,13 +1,13 @@ import 'dart:async'; import 'dart:convert'; +import 'package:http/http.dart' as http; + import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/language_detection_model.dart'; import 'package:fluffychat/pangea/network/urls.dart'; -import 'package:http/http.dart' as http; - import '../network/requests.dart'; class LanguageDetectionRequest { diff --git a/lib/pangea/controllers/language_list_controller.dart b/lib/pangea/controllers/language_list_controller.dart index fecdfe4cd..f2daf6ffe 100644 --- a/lib/pangea/controllers/language_list_controller.dart +++ b/lib/pangea/controllers/language_list_controller.dart @@ -1,12 +1,12 @@ import 'dart:async'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; + import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:fluffychat/pangea/repo/language_repo.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; - import '../utils/shared_prefs.dart'; class PangeaLanguage { diff --git a/lib/pangea/controllers/message_analytics_controller.dart b/lib/pangea/controllers/message_analytics_controller.dart index eed61de83..bc3ea73e6 100644 --- a/lib/pangea/controllers/message_analytics_controller.dart +++ b/lib/pangea/controllers/message_analytics_controller.dart @@ -1,11 +1,12 @@ import 'dart:math'; +import 'package:flutter/foundation.dart'; + import 'package:fluffychat/pangea/controllers/get_analytics_controller.dart'; import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; -import 'package:flutter/foundation.dart'; /// Picks which tokens to do activities on and what types of activities to do /// Caches result so that we don't have to recompute it diff --git a/lib/pangea/controllers/message_data_controller.dart b/lib/pangea/controllers/message_data_controller.dart index 20cb302a6..eea553f6d 100644 --- a/lib/pangea/controllers/message_data_controller.dart +++ b/lib/pangea/controllers/message_data_controller.dart @@ -1,6 +1,12 @@ import 'dart:async'; import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:http/http.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/base_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; @@ -11,11 +17,6 @@ import 'package:fluffychat/pangea/models/token_api_models.dart'; import 'package:fluffychat/pangea/models/tokens_event_content_model.dart'; import 'package:fluffychat/pangea/network/requests.dart'; import 'package:fluffychat/pangea/network/urls.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:http/http.dart'; -import 'package:matrix/matrix.dart'; - import '../constants/pangea_event_types.dart'; import '../repo/full_text_translation_repo.dart'; import '../utils/error_handler.dart'; diff --git a/lib/pangea/controllers/pangea_controller.dart b/lib/pangea/controllers/pangea_controller.dart index 26f06503e..5283b8a51 100644 --- a/lib/pangea/controllers/pangea_controller.dart +++ b/lib/pangea/controllers/pangea_controller.dart @@ -2,6 +2,11 @@ import 'dart:async'; import 'dart:developer'; import 'dart:math'; +import 'package:flutter/foundation.dart'; + +import 'package:matrix/matrix.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/constants/bot_mode.dart'; import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; @@ -27,10 +32,6 @@ import 'package:fluffychat/pangea/utils/bot_name.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/instructions.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - import '../../config/app_config.dart'; import '../utils/firebase_analytics.dart'; import '../utils/p_store.dart'; @@ -111,7 +112,7 @@ class PangeaController { textToSpeech = TextToSpeechController(this); speechToText = SpeechToTextController(this); languageDetection = LanguageDetectionController(this); - activityRecordController = PracticeActivityRecordController(this); + activityRecordController = PracticeActivityRecordController(); PAuthGaurd.pController = this; } @@ -328,21 +329,6 @@ class PangeaController { }); } - _handleJoinEvent(SyncUpdate syncUpdate) { - // for (final joinedRoomUpdate in syncUpdate.rooms!.join!.entries) { - // debugPrint( - // "room update for ${joinedRoomUpdate.key} - ${joinedRoomUpdate.value}"); - // } - } - - _handleOnSyncUpdate(SyncUpdate syncUpdate) { - // debugPrint(syncUpdate.toString()); - } - - _handleSyncStatusFinished(SyncStatusUpdate event) { - //might be useful to do something periodically, probably be overkill - } - void _subscribeToMatrixStreams() { matrixState.client.onLoginStateChanged.stream .listen(_handleLoginStateChange); diff --git a/lib/pangea/controllers/permissions_controller.dart b/lib/pangea/controllers/permissions_controller.dart index 8b06bc773..67d7288c8 100644 --- a/lib/pangea/controllers/permissions_controller.dart +++ b/lib/pangea/controllers/permissions_controller.dart @@ -1,10 +1,11 @@ +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/age_limits.dart'; import 'package:fluffychat/pangea/controllers/base_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/pangea/models/space_model.dart'; import 'package:fluffychat/pangea/utils/p_extension.dart'; -import 'package:matrix/matrix.dart'; class PermissionsController extends BaseController { late PangeaController _pangeaController; @@ -17,9 +18,6 @@ class PermissionsController extends BaseController { ? null : _pangeaController.matrixState.client.getRoomById(roomId); - PangeaRoomRules? _getRoomRules(String? roomId) => - roomId == null ? null : _getRoomById(roomId)?.firstRules; - Room? firstRoomWithState({required String? roomID, required String type}) { final Room? room = _getRoomById(roomID); diff --git a/lib/pangea/controllers/practice_activity_record_controller.dart b/lib/pangea/controllers/practice_activity_record_controller.dart index 8ee52e696..6c240183c 100644 --- a/lib/pangea/controllers/practice_activity_record_controller.dart +++ b/lib/pangea/controllers/practice_activity_record_controller.dart @@ -2,14 +2,15 @@ import 'dart:async'; import 'dart:collection'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; -import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/practice_activity_event.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_record_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; /// Represents an item in the completion cache. class _RecordCacheItem { @@ -24,9 +25,8 @@ class _RecordCacheItem { class PracticeActivityRecordController { static const int maxStoredEvents = 100; static final Map _cache = {}; - late final PangeaController _pangeaController; - PracticeActivityRecordController(this._pangeaController); + PracticeActivityRecordController(); int getCompletedActivityCount(String messageID) { return _completedActivities[messageID] ?? 0; diff --git a/lib/pangea/controllers/put_analytics_controller.dart b/lib/pangea/controllers/put_analytics_controller.dart index 66359db4a..dc72a0ef6 100644 --- a/lib/pangea/controllers/put_analytics_controller.dart +++ b/lib/pangea/controllers/put_analytics_controller.dart @@ -1,5 +1,9 @@ import 'dart:async'; +import 'package:flutter/foundation.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/controllers/base_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; @@ -10,8 +14,6 @@ import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_e import 'package:fluffychat/pangea/models/analytics/constructs_model.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; enum AnalyticsUpdateType { server, local } diff --git a/lib/pangea/controllers/space_rules_edit_controller.dart b/lib/pangea/controllers/space_rules_edit_controller.dart index 6142e273f..89635fc63 100644 --- a/lib/pangea/controllers/space_rules_edit_controller.dart +++ b/lib/pangea/controllers/space_rules_edit_controller.dart @@ -1,6 +1,6 @@ -import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import '../extensions/pangea_room_extension/pangea_room_extension.dart'; import '../models/space_model.dart'; diff --git a/lib/pangea/controllers/speech_to_text_controller.dart b/lib/pangea/controllers/speech_to_text_controller.dart index e1008c520..13a63742a 100644 --- a/lib/pangea/controllers/speech_to_text_controller.dart +++ b/lib/pangea/controllers/speech_to_text_controller.dart @@ -1,15 +1,16 @@ import 'dart:async'; import 'dart:convert'; +import 'package:flutter/foundation.dart'; + +import 'package:http/http.dart'; + import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/pangea/models/representation_content_model.dart'; import 'package:fluffychat/pangea/models/speech_to_text_models.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:http/http.dart'; - import '../config/environment.dart'; import '../network/requests.dart'; import '../network/urls.dart'; diff --git a/lib/pangea/controllers/subscription_controller.dart b/lib/pangea/controllers/subscription_controller.dart index 5b79b4610..3f214fd0a 100644 --- a/lib/pangea/controllers/subscription_controller.dart +++ b/lib/pangea/controllers/subscription_controller.dart @@ -1,7 +1,16 @@ import 'dart:async'; import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + import 'package:collection/collection.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:http/http.dart'; +import 'package:purchases_flutter/purchases_flutter.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/constants/local.key.dart'; @@ -18,13 +27,6 @@ import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/pangea/utils/subscription_app_id.dart'; import 'package:fluffychat/pangea/widgets/subscription/subscription_paywall.dart'; import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:http/http.dart'; -import 'package:purchases_flutter/purchases_flutter.dart'; -import 'package:url_launcher/url_launcher_string.dart'; enum SubscriptionStatus { subscribed, diff --git a/lib/pangea/controllers/text_to_speech_controller.dart b/lib/pangea/controllers/text_to_speech_controller.dart index 819f29f89..27442d9d0 100644 --- a/lib/pangea/controllers/text_to_speech_controller.dart +++ b/lib/pangea/controllers/text_to_speech_controller.dart @@ -2,13 +2,13 @@ import 'dart:async'; import 'dart:convert'; import 'dart:typed_data'; +import 'package:http/http.dart'; + import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/pangea_token_text_model.dart'; import 'package:fluffychat/pangea/network/urls.dart'; -import 'package:http/http.dart'; - import '../network/requests.dart'; class PangeaAudioEventData { diff --git a/lib/pangea/controllers/user_controller.dart b/lib/pangea/controllers/user_controller.dart index 6a66532b4..98d7a431f 100644 --- a/lib/pangea/controllers/user_controller.dart +++ b/lib/pangea/controllers/user_controller.dart @@ -1,14 +1,14 @@ import 'dart:async'; import 'package:collection/collection.dart'; +import 'package:jwt_decode/jwt_decode.dart'; +import 'package:matrix/matrix.dart' as matrix; + import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/controllers/base_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/extensions/client_extension/client_extension.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:jwt_decode/jwt_decode.dart'; -import 'package:matrix/matrix.dart' as matrix; - import '../models/user_model.dart'; /// Controller that manages saving and reading of user/profile information diff --git a/lib/pangea/controllers/word_net_controller.dart b/lib/pangea/controllers/word_net_controller.dart index 51f0c04ee..418146c5a 100644 --- a/lib/pangea/controllers/word_net_controller.dart +++ b/lib/pangea/controllers/word_net_controller.dart @@ -1,8 +1,8 @@ import 'package:collection/collection.dart'; -import 'package:fluffychat/pangea/constants/language_constants.dart'; -import 'package:fluffychat/pangea/repo/word_repo.dart'; import 'package:http/http.dart' as http; +import 'package:fluffychat/pangea/constants/language_constants.dart'; +import 'package:fluffychat/pangea/repo/word_repo.dart'; import '../models/word_data_model.dart'; import 'base_controller.dart'; import 'pangea_controller.dart'; diff --git a/lib/pangea/enum/ReactDialogAlignment.dart b/lib/pangea/enum/ReactDialogAlignment.dart deleted file mode 100644 index 959ec429a..000000000 --- a/lib/pangea/enum/ReactDialogAlignment.dart +++ /dev/null @@ -1 +0,0 @@ -enum DialogAlignment { center, left, right } diff --git a/lib/pangea/enum/activity_type_enum.dart b/lib/pangea/enum/activity_type_enum.dart index c7f9ba36e..8b7c46def 100644 --- a/lib/pangea/enum/activity_type_enum.dart +++ b/lib/pangea/enum/activity_type_enum.dart @@ -1,8 +1,10 @@ +import 'package:flutter/material.dart'; + +import 'package:material_symbols_icons/symbols.dart'; + import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:fluffychat/pangea/enum/construct_use_type_enum.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; -import 'package:flutter/material.dart'; -import 'package:material_symbols_icons/symbols.dart'; enum ActivityTypeEnum { wordMeaning, diff --git a/lib/pangea/enum/analytics/morph_categories_enum.dart b/lib/pangea/enum/analytics/morph_categories_enum.dart index 345f71257..eb84d9eb0 100644 --- a/lib/pangea/enum/analytics/morph_categories_enum.dart +++ b/lib/pangea/enum/analytics/morph_categories_enum.dart @@ -1,10 +1,12 @@ // ignore_for_file: constant_identifier_names -import 'package:collection/collection.dart'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/material.dart'; + +import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; + enum MorphologicalCategories { Pos, AdvType, diff --git a/lib/pangea/enum/analytics/parts_of_speech_enum.dart b/lib/pangea/enum/analytics/parts_of_speech_enum.dart index 92b07e18b..7f2a0a50e 100644 --- a/lib/pangea/enum/analytics/parts_of_speech_enum.dart +++ b/lib/pangea/enum/analytics/parts_of_speech_enum.dart @@ -1,8 +1,10 @@ -import 'package:collection/collection.dart'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/material.dart'; + +import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; + enum GrammarCopyPOS { sconj, num, diff --git a/lib/pangea/enum/assistance_state_enum.dart b/lib/pangea/enum/assistance_state_enum.dart index 125db37a0..c6965d9e7 100644 --- a/lib/pangea/enum/assistance_state_enum.dart +++ b/lib/pangea/enum/assistance_state_enum.dart @@ -1,10 +1,13 @@ // assistance state is, user has not typed a message, user has typed a message and IGC has not run, // IGC is running, IGC has run and there are remaining steps (either IT or IGC), or all steps are done // Or user does not have a subscription + +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/constants/colors.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; enum AssistanceState { noSub, diff --git a/lib/pangea/enum/bar_chart_view_enum.dart b/lib/pangea/enum/bar_chart_view_enum.dart index 1b62c5c70..d2fefe1fe 100644 --- a/lib/pangea/enum/bar_chart_view_enum.dart +++ b/lib/pangea/enum/bar_chart_view_enum.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; enum BarChartViewSelection { diff --git a/lib/pangea/enum/construct_type_enum.dart b/lib/pangea/enum/construct_type_enum.dart index 0ae45961b..53334a431 100644 --- a/lib/pangea/enum/construct_type_enum.dart +++ b/lib/pangea/enum/construct_type_enum.dart @@ -1,11 +1,12 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/constants/analytics_constants.dart'; import 'package:fluffychat/pangea/enum/analytics/morph_categories_enum.dart'; import 'package:fluffychat/pangea/enum/analytics/parts_of_speech_enum.dart'; import 'package:fluffychat/pangea/enum/progress_indicators_enum.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; enum ConstructTypeEnum { /// for vocabulary words @@ -40,8 +41,6 @@ extension ConstructExtension on ConstructTypeEnum { return getMorphologicalCategoryCopy(category, context); case ConstructTypeEnum.vocab: return getVocabCategoryName(category, context); - default: - return null; } } diff --git a/lib/pangea/enum/construct_use_type_enum.dart b/lib/pangea/enum/construct_use_type_enum.dart index 504973110..6fc19c601 100644 --- a/lib/pangea/enum/construct_use_type_enum.dart +++ b/lib/pangea/enum/construct_use_type_enum.dart @@ -1,10 +1,12 @@ import 'dart:developer'; -import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; + enum ConstructUseTypeEnum { /// produced in chat by user, igc was run, and we've judged it to be a correct use wa, diff --git a/lib/pangea/enum/instructions_enum.dart b/lib/pangea/enum/instructions_enum.dart index be04baffd..2185137b4 100644 --- a/lib/pangea/enum/instructions_enum.dart +++ b/lib/pangea/enum/instructions_enum.dart @@ -1,10 +1,12 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; enum InstructionsEnum { itInstructions, diff --git a/lib/pangea/enum/l2_support_enum.dart b/lib/pangea/enum/l2_support_enum.dart index 5636686ea..e7ce12a50 100644 --- a/lib/pangea/enum/l2_support_enum.dart +++ b/lib/pangea/enum/l2_support_enum.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; enum L2SupportEnum { @@ -63,20 +64,19 @@ extension L2SupportEnumExtension on L2SupportEnum { switch (this) { case L2SupportEnum.na: - color = theme.colorScheme.onSurface.withOpacity(0.4); // Muted grey + color = theme.colorScheme.onSurface.withAlpha(100); // Muted grey label = toLocalizedString(context); break; case L2SupportEnum.alpha: - color = theme.colorScheme.primary.withOpacity(0.4); // Subtle primary + color = theme.colorScheme.primary.withAlpha(100); // Subtle primary label = toLocalizedString(context); break; case L2SupportEnum.beta: - color = - theme.colorScheme.secondary.withOpacity(0.4); // Subtle secondary + color = theme.colorScheme.secondary.withAlpha(100); // Subtle secondary label = toLocalizedString(context); break; case L2SupportEnum.full: - color = theme.colorScheme.tertiary.withOpacity(0.4); // Subtle tertiary + color = theme.colorScheme.tertiary.withAlpha(100); // Subtle tertiary label = toLocalizedString(context); break; } @@ -85,7 +85,7 @@ extension L2SupportEnumExtension on L2SupportEnum { label: Text( label, style: theme.textTheme.bodySmall?.copyWith( - color: theme.colorScheme.onSurface.withOpacity(0.8), // Dimmed text + color: theme.colorScheme.onSurface.withAlpha(200), // Dimmed text fontWeight: FontWeight.w500, ), ), diff --git a/lib/pangea/enum/message_mode_enum.dart b/lib/pangea/enum/message_mode_enum.dart index ccd6ac238..1f942b6be 100644 --- a/lib/pangea/enum/message_mode_enum.dart +++ b/lib/pangea/enum/message_mode_enum.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:material_symbols_icons/symbols.dart'; import 'package:matrix/matrix.dart'; diff --git a/lib/pangea/enum/pop-for.dart b/lib/pangea/enum/pop-for.dart deleted file mode 100644 index 77b75b5ac..000000000 --- a/lib/pangea/enum/pop-for.dart +++ /dev/null @@ -1 +0,0 @@ -enum PopupFor { ownMessage, notOwnMessage, inputBar } diff --git a/lib/pangea/enum/progress_indicators_enum.dart b/lib/pangea/enum/progress_indicators_enum.dart index 86f8a9b56..3af4e8f14 100644 --- a/lib/pangea/enum/progress_indicators_enum.dart +++ b/lib/pangea/enum/progress_indicators_enum.dart @@ -1,8 +1,10 @@ -import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:material_symbols_icons/symbols.dart'; +import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; + enum ProgressIndicatorEnum { level, wordsUsed, diff --git a/lib/pangea/enum/span_choice_type.dart b/lib/pangea/enum/span_choice_type.dart index e6be513e7..34366bae7 100644 --- a/lib/pangea/enum/span_choice_type.dart +++ b/lib/pangea/enum/span_choice_type.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + 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 757cc86f4..0305b6c5c 100644 --- a/lib/pangea/enum/span_data_type.dart +++ b/lib/pangea/enum/span_data_type.dart @@ -1,7 +1,9 @@ -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/widgets/matrix.dart'; + enum SpanDataTypeEnum { definition, practice, diff --git a/lib/pangea/enum/time_span.dart b/lib/pangea/enum/time_span.dart index d288b129f..89cc0f8ed 100644 --- a/lib/pangea/enum/time_span.dart +++ b/lib/pangea/enum/time_span.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; enum TimeSpan { day, week, month, sixmonths, year, forever } diff --git a/lib/pangea/enum/use_type.dart b/lib/pangea/enum/use_type.dart index 56a4fa3b0..b394fdb51 100644 --- a/lib/pangea/enum/use_type.dart +++ b/lib/pangea/enum/use_type.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../utils/bot_style.dart'; @@ -10,7 +11,6 @@ extension UseTypeMethods on UseType { String tooltipString(BuildContext context) { final l10n = L10n.of(context); - if (l10n == null) return string; switch (this) { case UseType.ga: return l10n.gaTooltip; diff --git a/lib/pangea/enum/vocab_proficiency_enum.dart b/lib/pangea/enum/vocab_proficiency_enum.dart index 12926488b..aec24eba2 100644 --- a/lib/pangea/enum/vocab_proficiency_enum.dart +++ b/lib/pangea/enum/vocab_proficiency_enum.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; enum VocabProficiencyEnum { low, medium, high, unk } diff --git a/lib/pangea/extensions/client_extension/client_extension.dart b/lib/pangea/extensions/client_extension/client_extension.dart index 0971ab04d..d07c87919 100644 --- a/lib/pangea/extensions/client_extension/client_extension.dart +++ b/lib/pangea/extensions/client_extension/client_extension.dart @@ -1,15 +1,17 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + import 'package:collection/collection.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/constants/pangea_room_types.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/pangea/models/space_model.dart'; import 'package:fluffychat/pangea/utils/bot_name.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; part "client_analytics_extension.dart"; part "general_info_extension.dart"; diff --git a/lib/pangea/extensions/pangea_event_extension.dart b/lib/pangea/extensions/pangea_event_extension.dart index 01b75ce4d..e313fe462 100644 --- a/lib/pangea/extensions/pangea_event_extension.dart +++ b/lib/pangea/extensions/pangea_event_extension.dart @@ -1,5 +1,9 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/controllers/text_to_speech_controller.dart'; @@ -10,8 +14,6 @@ import 'package:fluffychat/pangea/models/representation_content_model.dart'; import 'package:fluffychat/pangea/models/tokens_event_content_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/widgets/chat/message_audio_card.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; extension PangeaEvent on Event { V getPangeaContent() { diff --git a/lib/pangea/extensions/pangea_room_extension/pangea_room_extension.dart b/lib/pangea/extensions/pangea_room_extension/pangea_room_extension.dart index da41cd5fa..7a962ff0a 100644 --- a/lib/pangea/extensions/pangea_room_extension/pangea_room_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension/pangea_room_extension.dart @@ -1,9 +1,21 @@ +// ignore_for_file: implementation_imports, depend_on_referenced_packages + import 'dart:async'; import 'dart:convert'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:html_unescape/html_unescape.dart'; +import 'package:matrix/matrix.dart' as matrix; +import 'package:matrix/matrix.dart'; +import 'package:matrix/src/utils/markdown.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/constants/bot_mode.dart'; import 'package:fluffychat/pangea/constants/class_code_constants.dart'; import 'package:fluffychat/pangea/constants/class_default_values.dart'; @@ -22,16 +34,6 @@ import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -// import markdown.dart -import 'package:html_unescape/html_unescape.dart'; -import 'package:matrix/matrix.dart' as matrix; -import 'package:matrix/matrix.dart'; -import 'package:matrix/src/utils/markdown.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - import '../../../config/app_config.dart'; import '../../constants/pangea_event_types.dart'; import '../../models/choreo_record.dart'; diff --git a/lib/pangea/guard/p_vguard.dart b/lib/pangea/guard/p_vguard.dart index acc1eb35f..e41dbed7d 100644 --- a/lib/pangea/guard/p_vguard.dart +++ b/lib/pangea/guard/p_vguard.dart @@ -1,9 +1,10 @@ import 'dart:async'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; + import 'package:go_router/go_router.dart'; +import 'package:fluffychat/widgets/matrix.dart'; import '../controllers/pangea_controller.dart'; class PAuthGaurd { diff --git a/lib/pangea/matrix_event_wrappers/pangea_choreo_event.dart b/lib/pangea/matrix_event_wrappers/pangea_choreo_event.dart index 83444b482..67f591dc8 100644 --- a/lib/pangea/matrix_event_wrappers/pangea_choreo_event.dart +++ b/lib/pangea/matrix_event_wrappers/pangea_choreo_event.dart @@ -1,10 +1,11 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/extensions/pangea_event_extension.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; - import '../constants/pangea_event_types.dart'; import '../models/choreo_record.dart'; diff --git a/lib/pangea/matrix_event_wrappers/pangea_message_event.dart b/lib/pangea/matrix_event_wrappers/pangea_message_event.dart index a1c92e12b..cfaf7daa6 100644 --- a/lib/pangea/matrix_event_wrappers/pangea_message_event.dart +++ b/lib/pangea/matrix_event_wrappers/pangea_message_event.dart @@ -1,7 +1,12 @@ import 'dart:convert'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; + import 'package:collection/collection.dart'; +import 'package:matrix/matrix.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/controllers/text_to_speech_controller.dart'; import 'package:fluffychat/pangea/enum/audio_encoding_enum.dart'; @@ -15,10 +20,6 @@ import 'package:fluffychat/pangea/models/speech_to_text_models.dart'; import 'package:fluffychat/pangea/models/tokens_event_content_model.dart'; import 'package:fluffychat/pangea/repo/full_text_translation_repo.dart'; import 'package:fluffychat/pangea/widgets/chat/message_audio_card.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - import '../../widgets/matrix.dart'; import '../constants/language_constants.dart'; import '../constants/pangea_event_types.dart'; @@ -477,7 +478,9 @@ class PangeaMessageEvent { if (repLocal != null || langCode == LanguageKeys.unknownLanguage || langCode == LanguageKeys.mixedLanguage || - langCode == LanguageKeys.multiLanguage) return repLocal?.content; + langCode == LanguageKeys.multiLanguage) { + return repLocal?.content; + } if (eventId.contains("web")) return null; @@ -628,7 +631,6 @@ class PangeaMessageEvent { event: event, ), ); - final content = practiceEvents.last.practiceActivity; } catch (e, s) { ErrorHandler.logError(e: e, s: s, data: event.toJson()); } diff --git a/lib/pangea/matrix_event_wrappers/pangea_representation_event.dart b/lib/pangea/matrix_event_wrappers/pangea_representation_event.dart index e7c28f4e8..008559112 100644 --- a/lib/pangea/matrix_event_wrappers/pangea_representation_event.dart +++ b/lib/pangea/matrix_event_wrappers/pangea_representation_event.dart @@ -1,16 +1,19 @@ +// ignore_for_file: implementation_imports + import 'dart:developer'; +import 'package:flutter/foundation.dart'; + import 'package:collection/collection.dart'; +import 'package:matrix/matrix.dart'; +import 'package:matrix/src/utils/markdown.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/extensions/pangea_event_extension.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_choreo_event.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/models/token_api_models.dart'; import 'package:fluffychat/pangea/models/tokens_event_content_model.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; -import 'package:matrix/src/utils/markdown.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - import '../../widgets/matrix.dart'; import '../constants/language_constants.dart'; import '../constants/pangea_event_types.dart'; diff --git a/lib/pangea/matrix_event_wrappers/pangea_tokens_event.dart b/lib/pangea/matrix_event_wrappers/pangea_tokens_event.dart index 842489bd3..86582534b 100644 --- a/lib/pangea/matrix_event_wrappers/pangea_tokens_event.dart +++ b/lib/pangea/matrix_event_wrappers/pangea_tokens_event.dart @@ -1,11 +1,12 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/extensions/pangea_event_extension.dart'; import 'package:fluffychat/pangea/models/tokens_event_content_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; - import '../constants/pangea_event_types.dart'; class TokensEvent { diff --git a/lib/pangea/matrix_event_wrappers/practice_activity_event.dart b/lib/pangea/matrix_event_wrappers/practice_activity_event.dart index f97ba753c..71c06fb20 100644 --- a/lib/pangea/matrix_event_wrappers/practice_activity_event.dart +++ b/lib/pangea/matrix_event_wrappers/practice_activity_event.dart @@ -1,11 +1,12 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/extensions/pangea_event_extension.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/practice_activity_record_event.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; - import '../constants/pangea_event_types.dart'; class PracticeActivityEvent { diff --git a/lib/pangea/matrix_event_wrappers/practice_activity_record_event.dart b/lib/pangea/matrix_event_wrappers/practice_activity_record_event.dart index 8378d9f88..58dbf4f4b 100644 --- a/lib/pangea/matrix_event_wrappers/practice_activity_record_event.dart +++ b/lib/pangea/matrix_event_wrappers/practice_activity_record_event.dart @@ -1,7 +1,7 @@ -import 'package:fluffychat/pangea/extensions/pangea_event_extension.dart'; -import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_record_model.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/extensions/pangea_event_extension.dart'; +import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_record_model.dart'; import '../constants/pangea_event_types.dart'; class PracticeActivityRecordEvent { diff --git a/lib/pangea/models/analytics/construct_list_model.dart b/lib/pangea/models/analytics/construct_list_model.dart index e37ebdb48..f8f049186 100644 --- a/lib/pangea/models/analytics/construct_list_model.dart +++ b/lib/pangea/models/analytics/construct_list_model.dart @@ -1,13 +1,15 @@ import 'dart:math'; +import 'package:flutter/foundation.dart'; + import 'package:collection/collection.dart'; + import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:fluffychat/pangea/models/analytics/construct_use_model.dart'; import 'package:fluffychat/pangea/models/analytics/constructs_model.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; /// A wrapper around a list of [OneConstructUse]s, used to simplify /// the process of filtering / sorting / displaying the events. diff --git a/lib/pangea/models/analytics/constructs_event.dart b/lib/pangea/models/analytics/constructs_event.dart index 89336bbbc..0cc8584f4 100644 --- a/lib/pangea/models/analytics/constructs_event.dart +++ b/lib/pangea/models/analytics/constructs_event.dart @@ -1,6 +1,6 @@ -import 'package:fluffychat/pangea/models/analytics/constructs_model.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/models/analytics/constructs_model.dart'; import '../../constants/pangea_event_types.dart'; class ConstructAnalyticsEvent { diff --git a/lib/pangea/models/analytics/constructs_model.dart b/lib/pangea/models/analytics/constructs_model.dart index 93445fb69..c9a39625f 100644 --- a/lib/pangea/models/analytics/constructs_model.dart +++ b/lib/pangea/models/analytics/constructs_model.dart @@ -1,12 +1,13 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/morph_categories_and_labels.dart'; import 'package:fluffychat/pangea/enum/construct_use_type_enum.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; - import '../../enum/construct_type_enum.dart'; class ConstructAnalyticsModel { diff --git a/lib/pangea/models/base_subscription_info.dart b/lib/pangea/models/base_subscription_info.dart index 95fe0d9c3..df7a33a0a 100644 --- a/lib/pangea/models/base_subscription_info.dart +++ b/lib/pangea/models/base_subscription_info.dart @@ -1,4 +1,5 @@ import 'package:collection/collection.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; diff --git a/lib/pangea/models/bot_options_model.dart b/lib/pangea/models/bot_options_model.dart index 89f59927e..e5595df1d 100644 --- a/lib/pangea/models/bot_options_model.dart +++ b/lib/pangea/models/bot_options_model.dart @@ -1,11 +1,13 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/bot_mode.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; class BotOptionsModel { int? languageLevel; diff --git a/lib/pangea/models/choreo_record.dart b/lib/pangea/models/choreo_record.dart index 3586fcee1..7fa247d24 100644 --- a/lib/pangea/models/choreo_record.dart +++ b/lib/pangea/models/choreo_record.dart @@ -1,7 +1,6 @@ import 'dart:convert'; import 'package:fluffychat/pangea/models/pangea_match_model.dart'; - import 'it_step.dart'; /// this class lives within a [PangeaIGCEvent] diff --git a/lib/pangea/models/igc_text_data_model.dart b/lib/pangea/models/igc_text_data_model.dart index 685acfcbc..7341fabc7 100644 --- a/lib/pangea/models/igc_text_data_model.dart +++ b/lib/pangea/models/igc_text_data_model.dart @@ -1,6 +1,11 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/controllers/language_detection_controller.dart'; import 'package:fluffychat/pangea/models/pangea_match_model.dart'; @@ -8,10 +13,6 @@ import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/models/span_card_model.dart'; import 'package:fluffychat/pangea/models/span_data.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; - import '../constants/model_keys.dart'; // import 'package:language_tool/language_tool.dart'; diff --git a/lib/pangea/models/it_response_model.dart b/lib/pangea/models/it_response_model.dart index 6adb4b4bc..e4b647ef1 100644 --- a/lib/pangea/models/it_response_model.dart +++ b/lib/pangea/models/it_response_model.dart @@ -1,10 +1,12 @@ +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/constants/choreo_constants.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/extensions/my_list_extension.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class ITResponseModel { String fullTextTranslation; @@ -157,10 +159,7 @@ class Continuance { } String? feedbackText(BuildContext context) { - final L10n? l10n = L10n.of(context); - if (l10n == null) { - return null; - } + final L10n l10n = L10n.of(context); switch (level) { case ChoreoConstants.levelThresholdForGreen: return l10n.greenFeedback; diff --git a/lib/pangea/models/language_model.dart b/lib/pangea/models/language_model.dart index 096bfb424..db8600374 100644 --- a/lib/pangea/models/language_model.dart +++ b/lib/pangea/models/language_model.dart @@ -1,11 +1,12 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/enum/l2_support_enum.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - import '../utils/error_handler.dart'; class LanguageModel { diff --git a/lib/pangea/models/mobile_subscriptions.dart b/lib/pangea/models/mobile_subscriptions.dart index 17d2f4228..6074d74cd 100644 --- a/lib/pangea/models/mobile_subscriptions.dart +++ b/lib/pangea/models/mobile_subscriptions.dart @@ -1,12 +1,14 @@ import 'dart:io'; +import 'package:flutter/material.dart'; + +import 'package:purchases_flutter/purchases_flutter.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + 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'; -import 'package:flutter/material.dart'; -import 'package:purchases_flutter/purchases_flutter.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; class MobileSubscriptionInfo extends CurrentSubscriptionInfo { MobileSubscriptionInfo({ diff --git a/lib/pangea/models/pangea_match_model.dart b/lib/pangea/models/pangea_match_model.dart index 5d2a74307..9c86c6dc2 100644 --- a/lib/pangea/models/pangea_match_model.dart +++ b/lib/pangea/models/pangea_match_model.dart @@ -1,10 +1,10 @@ import 'dart:developer'; -import 'package:fluffychat/pangea/enum/span_data_type.dart'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/pangea/enum/span_data_type.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../constants/match_rule_ids.dart'; import 'igc_text_data_model.dart'; import 'span_data.dart'; diff --git a/lib/pangea/models/pangea_token_model.dart b/lib/pangea/models/pangea_token_model.dart index c380aad67..7b01c2a72 100644 --- a/lib/pangea/models/pangea_token_model.dart +++ b/lib/pangea/models/pangea_token_model.dart @@ -1,6 +1,10 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + import 'package:collection/collection.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; @@ -14,9 +18,6 @@ import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activ import 'package:fluffychat/pangea/repo/lemma_definition_repo.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:matrix/matrix.dart'; - import '../constants/model_keys.dart'; import 'lemma.dart'; @@ -225,36 +226,36 @@ class PangeaToken { } } - bool _didActivity( - ActivityTypeEnum a, [ - String? morphFeature, - String? morphTag, - ]) { - if ((morphFeature == null || morphTag == null) && - a == ActivityTypeEnum.morphId) { - debugger(when: kDebugMode); - return true; - } - switch (a) { - case ActivityTypeEnum.wordMeaning: - case ActivityTypeEnum.wordFocusListening: - case ActivityTypeEnum.hiddenWordListening: - case ActivityTypeEnum.lemmaId: - case ActivityTypeEnum.emoji: - return vocabConstruct.uses - .map((u) => u.useType) - .any((u) => a.associatedUseTypes.contains(u)); - case ActivityTypeEnum.morphId: - return morph.entries - .map((e) => morphConstruct(morphFeature!, morphTag!).uses) - .expand((e) => e) - .any( - (u) => - a.associatedUseTypes.contains(u.useType) && - u.form == text.content, - ); - } - } + // bool _didActivity( + // ActivityTypeEnum a, [ + // String? morphFeature, + // String? morphTag, + // ]) { + // if ((morphFeature == null || morphTag == null) && + // a == ActivityTypeEnum.morphId) { + // debugger(when: kDebugMode); + // return true; + // } + // switch (a) { + // case ActivityTypeEnum.wordMeaning: + // case ActivityTypeEnum.wordFocusListening: + // case ActivityTypeEnum.hiddenWordListening: + // case ActivityTypeEnum.lemmaId: + // case ActivityTypeEnum.emoji: + // return vocabConstruct.uses + // .map((u) => u.useType) + // .any((u) => a.associatedUseTypes.contains(u)); + // case ActivityTypeEnum.morphId: + // return morph.entries + // .map((e) => morphConstruct(morphFeature!, morphTag!).uses) + // .expand((e) => e) + // .any( + // (u) => + // a.associatedUseTypes.contains(u.useType) && + // u.form == text.content, + // ); + // } + // } bool _didActivitySuccessfully( ActivityTypeEnum a, [ diff --git a/lib/pangea/models/practice_activities.dart/message_activity_request.dart b/lib/pangea/models/practice_activities.dart/message_activity_request.dart index 80aa39348..22599504d 100644 --- a/lib/pangea/models/practice_activities.dart/message_activity_request.dart +++ b/lib/pangea/models/practice_activities.dart/message_activity_request.dart @@ -1,8 +1,9 @@ import 'package:collection/collection.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; // includes feedback text and the bad activity model class ActivityQualityFeedback { diff --git a/lib/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart b/lib/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart index 6ee6aca81..f27607c7c 100644 --- a/lib/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart +++ b/lib/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart @@ -1,11 +1,13 @@ import 'dart:developer'; -import 'package:collection/collection.dart'; -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:collection/collection.dart'; + +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; + class ActivityContent { final String question; diff --git a/lib/pangea/models/practice_activities.dart/practice_activity_model.dart b/lib/pangea/models/practice_activities.dart/practice_activity_model.dart index 5d40c8c2a..eb02a8cc7 100644 --- a/lib/pangea/models/practice_activities.dart/practice_activity_model.dart +++ b/lib/pangea/models/practice_activities.dart/practice_activity_model.dart @@ -1,14 +1,16 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + import 'package:collection/collection.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/enum/activity_display_instructions_enum.dart'; import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; class ConstructIdentifier { final String lemma; diff --git a/lib/pangea/models/practice_activities.dart/practice_activity_record_model.dart b/lib/pangea/models/practice_activities.dart/practice_activity_record_model.dart index d84911568..1ac7f58be 100644 --- a/lib/pangea/models/practice_activities.dart/practice_activity_record_model.dart +++ b/lib/pangea/models/practice_activities.dart/practice_activity_record_model.dart @@ -2,14 +2,16 @@ // note that this is not the same as the correct answer // the user might have selected multiple options before // finding the answer + import 'dart:developer'; +import 'package:flutter/foundation.dart'; + import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:fluffychat/pangea/enum/construct_use_type_enum.dart'; import 'package:fluffychat/pangea/models/analytics/constructs_model.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; -import 'package:flutter/foundation.dart'; class PracticeActivityRecordModel { final String? question; diff --git a/lib/pangea/models/representation_content_model.dart b/lib/pangea/models/representation_content_model.dart index 93d915ab8..4356fe12e 100644 --- a/lib/pangea/models/representation_content_model.dart +++ b/lib/pangea/models/representation_content_model.dart @@ -1,3 +1,5 @@ +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:fluffychat/pangea/enum/construct_use_type_enum.dart'; import 'package:fluffychat/pangea/models/analytics/constructs_model.dart'; @@ -6,7 +8,6 @@ import 'package:fluffychat/pangea/models/pangea_match_model.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/models/speech_to_text_models.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:matrix/matrix.dart'; /// this class is contained within a [RepresentationEvent] /// this event is the child of a [EventTypes.Message] diff --git a/lib/pangea/models/space_model.dart b/lib/pangea/models/space_model.dart index e27abb50a..5d1e05a1f 100644 --- a/lib/pangea/models/space_model.dart +++ b/lib/pangea/models/space_model.dart @@ -1,11 +1,12 @@ import 'dart:developer'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../constants/class_default_values.dart'; import '../constants/language_constants.dart'; import '../constants/pangea_event_types.dart'; diff --git a/lib/pangea/models/span_data.dart b/lib/pangea/models/span_data.dart index 5722dc4e8..a5d6168c7 100644 --- a/lib/pangea/models/span_data.dart +++ b/lib/pangea/models/span_data.dart @@ -4,11 +4,12 @@ // SpanChoice of text in message from options // Call to server for additional/followup info -import 'package:collection/collection.dart'; -import 'package:fluffychat/pangea/constants/model_keys.dart'; -import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:flutter/material.dart'; +import 'package:collection/collection.dart'; + +import 'package:fluffychat/pangea/constants/model_keys.dart'; +import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import '../enum/span_choice_type.dart'; import '../enum/span_data_type.dart'; diff --git a/lib/pangea/models/speech_to_text_models.dart b/lib/pangea/models/speech_to_text_models.dart index d2bc57aca..606ab29fa 100644 --- a/lib/pangea/models/speech_to_text_models.dart +++ b/lib/pangea/models/speech_to_text_models.dart @@ -1,13 +1,15 @@ import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/enum/audio_encoding_enum.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; -const int THRESHOLD_FOR_GREEN = 80; +const int thresholdForGreen = 80; class SpeechToTextAudioConfigModel { final AudioEncodingEnum encoding; @@ -93,7 +95,7 @@ class STTToken { if (confidence == null) { return Theme.of(context).colorScheme.onSurface; } - if (confidence! > THRESHOLD_FOR_GREEN) { + if (confidence! > thresholdForGreen) { return AppConfig.success; } return AppConfig.warning; @@ -181,7 +183,7 @@ class Transcript { }; Color color(BuildContext context) { - if (confidence > THRESHOLD_FOR_GREEN) { + if (confidence > thresholdForGreen) { return AppConfig.success; } return AppConfig.warning; diff --git a/lib/pangea/models/textChangeModel.dart b/lib/pangea/models/textChangeModel.dart deleted file mode 100644 index 38a988df8..000000000 --- a/lib/pangea/models/textChangeModel.dart +++ /dev/null @@ -1,11 +0,0 @@ -import '../enum/direction.dart'; -import '../enum/edit_type.dart'; - -class TextChangeModel { - EditType? editType; - EditDirection? editDirection; - String? text; - - toJson() => - {'editType': editType, 'editDirection': editDirection, 'text': text}; -} diff --git a/lib/pangea/models/token_api_models.dart b/lib/pangea/models/token_api_models.dart index fff339ddf..789a37130 100644 --- a/lib/pangea/models/token_api_models.dart +++ b/lib/pangea/models/token_api_models.dart @@ -1,5 +1,4 @@ import 'package:fluffychat/pangea/constants/model_keys.dart'; - import 'pangea_token_model.dart'; class TokensRequestModel { diff --git a/lib/pangea/models/user_model.dart b/lib/pangea/models/user_model.dart index 6d5d37108..662c2d77e 100644 --- a/lib/pangea/models/user_model.dart +++ b/lib/pangea/models/user_model.dart @@ -1,10 +1,10 @@ +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/enum/instructions_enum.dart'; import 'package:fluffychat/pangea/models/space_model.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:matrix/matrix.dart'; - import 'language_model.dart'; /// The user's settings learning settings. diff --git a/lib/pangea/models/web_subscriptions.dart b/lib/pangea/models/web_subscriptions.dart index 0f8362843..9b1787509 100644 --- a/lib/pangea/models/web_subscriptions.dart +++ b/lib/pangea/models/web_subscriptions.dart @@ -1,6 +1,7 @@ +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/models/base_subscription_info.dart'; import 'package:fluffychat/pangea/repo/subscription_repo.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; class WebSubscriptionInfo extends CurrentSubscriptionInfo { WebSubscriptionInfo({ diff --git a/lib/pangea/models/widget_measurement.dart b/lib/pangea/models/widget_measurement.dart index 7229c219a..2161af0b2 100644 --- a/lib/pangea/models/widget_measurement.dart +++ b/lib/pangea/models/widget_measurement.dart @@ -12,7 +12,6 @@ class WidgetMeasurements { ); } - final WidgetMeasurements? weg = _fromKey[key]; return _fromKey[key]!; } diff --git a/lib/pangea/models/word_data_model.dart b/lib/pangea/models/word_data_model.dart index c4c059241..03b854475 100644 --- a/lib/pangea/models/word_data_model.dart +++ b/lib/pangea/models/word_data_model.dart @@ -1,8 +1,9 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/widgets/igc/word_data_card.dart'; -import 'package:flutter/foundation.dart'; class WordData { final String word; diff --git a/lib/pangea/network/requests.dart b/lib/pangea/network/requests.dart index f08a6c2c6..8709fe340 100644 --- a/lib/pangea/network/requests.dart +++ b/lib/pangea/network/requests.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:flutter/material.dart'; + import 'package:http/http.dart' as http; import 'package:sentry_flutter/sentry_flutter.dart'; @@ -67,26 +68,6 @@ class Requests { Uri _uriBuilder(url) => baseUrl != null ? Uri.parse(baseUrl! + url) : Uri.parse(url); - Map _parseEachToString(Map json) { - for (final String key in json.keys) { - if (json[key].runtimeType != String) { - if (json[key].runtimeType == List) { - json[key].forEach((item) { - _parseEachToString(json[key]); - }); - } - if (json[key].runtimeType == Map) { - _parseEachToString(json[key]); - } - if (json[key].runtimeType == int || json[key].runtimeType == double) { - json[key] = json[key].toString(); - } - } - } - - return json; - } - void handleError( http.Response response, { Map? body, diff --git a/lib/pangea/pages/analytics/analytics_language_button.dart b/lib/pangea/pages/analytics/analytics_language_button.dart index 15f5e8bb7..306d178e4 100644 --- a/lib/pangea/pages/analytics/analytics_language_button.dart +++ b/lib/pangea/pages/analytics/analytics_language_button.dart @@ -1,7 +1,9 @@ -import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/models/language_model.dart'; + class AnalyticsLanguageButton extends StatelessWidget { final List languages; final LanguageModel value; diff --git a/lib/pangea/pages/analytics/analytics_list_tile.dart b/lib/pangea/pages/analytics/analytics_list_tile.dart deleted file mode 100644 index 12ffa4a20..000000000 --- a/lib/pangea/pages/analytics/analytics_list_tile.dart +++ /dev/null @@ -1,157 +0,0 @@ -// import 'dart:async'; - - -// import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; -// import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; -// import 'package:flutter/material.dart'; -// import 'package:flutter_gen/gen_l10n/l10n.dart'; -// import 'package:go_router/go_router.dart'; -// import 'package:matrix/matrix.dart'; - -// import '../../../../utils/date_time_extension.dart'; -// import '../../../widgets/avatar.dart'; -// import '../../../widgets/matrix.dart'; -// import '../../models/analytics/chart_analytics_model.dart'; -// import 'base_analytics.dart'; -// import 'list_summary_analytics.dart'; - -// class AnalyticsListTile extends StatefulWidget { -// const AnalyticsListTile({ -// super.key, -// required this.defaultSelected, -// required this.selected, -// required this.avatar, -// required this.allowNavigateOnSelect, -// required this.isSelected, -// required this.onTap, -// required this.pangeaController, -// this.controller, -// this.refreshStream, -// }); - -// final void Function(AnalyticsSelected) onTap; - -// final AnalyticsSelected defaultSelected; -// final AnalyticsSelected selected; - -// final Uri? avatar; - -// final bool allowNavigateOnSelect; -// final bool isSelected; - -// final PangeaController pangeaController; -// final BaseAnalyticsController? controller; -// final StreamController? refreshStream; - -// @override -// AnalyticsListTileState createState() => AnalyticsListTileState(); -// } - -// class AnalyticsListTileState extends State { -// ChartAnalyticsModel? tileData; -// StreamSubscription? refreshSubscription; - -// @override -// void initState() { -// super.initState(); -// setTileData(); -// refreshSubscription = widget.refreshStream?.stream.listen((forceUpdate) { -// setTileData(forceUpdate: forceUpdate); -// }); -// } - -// @override -// void didUpdateWidget(covariant AnalyticsListTile oldWidget) { -// super.didUpdateWidget(oldWidget); -// if (oldWidget.selected != widget.selected) { -// setTileData(); -// } -// } - -// @override -// void dispose() { -// refreshSubscription?.cancel(); -// super.dispose(); -// } - -// Future setTileData({forceUpdate = false}) async { -// tileData = await MatrixState.pangeaController.analytics.getAnalytics( -// defaultSelected: widget.defaultSelected, -// selected: widget.selected, -// forceUpdate: forceUpdate, -// ); -// if (mounted) setState(() {}); -// } - -// @override -// Widget build(BuildContext context) { -// final Room? room = -// Matrix.of(context).client.getRoomById(widget.selected.id); -// return Material( -// color: widget.isSelected -// ? Theme.of(context).colorScheme.secondaryContainer -// : Colors.transparent, -// child: ListTile( -// leading: widget.selected.type == AnalyticsEntryType.privateChats -// ? CircleAvatar( -// backgroundColor: Theme.of(context).primaryColor, -// foregroundColor: Colors.white, -// radius: Avatar.defaultSize / 2, -// child: const Icon(Icons.forum), -// ) -// : Avatar( -// mxContent: widget.avatar, -// name: widget.selected.displayName, -// littleIcon: room?.roomTypeIcon, -// ), -// title: Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Expanded( -// child: Text( -// widget.selected.displayName, -// maxLines: 1, -// overflow: TextOverflow.ellipsis, -// softWrap: false, -// style: TextStyle( -// fontWeight: FontWeight.bold, -// color: Theme.of(context).textTheme.bodyLarge!.color, -// ), -// ), -// ), -// Tooltip( -// message: L10n.of(context).timeOfLastMessage, -// child: Text( -// tileData?.lastMessageTime?.localizedTimeShort(context) ?? "", -// style: TextStyle( -// fontSize: 13, -// color: Theme.of(context).textTheme.bodyMedium!.color, -// ), -// ), -// ), -// ], -// ), -// subtitle: ListSummaryAnalytics( -// chartAnalytics: tileData, -// ), -// selected: widget.isSelected, -// onTap: () { -// if (widget.controller?.widget.selectedView == null) { -// widget.onTap(widget.selected); -// return; -// } -// if ((room?.isSpace ?? false) && widget.allowNavigateOnSelect) { -// context.go('/rooms/analytics/${room!.id}'); -// return; -// } -// widget.onTap(widget.selected); -// }, -// trailing: (room?.isSpace ?? false) && -// widget.selected.type != AnalyticsEntryType.privateChats && -// widget.allowNavigateOnSelect -// ? const Icon(Icons.chevron_right) -// : null, -// ), -// ); -// } -// } diff --git a/lib/pangea/pages/analytics/analytics_view_button.dart b/lib/pangea/pages/analytics/analytics_view_button.dart index c10c101d0..7414ebd14 100644 --- a/lib/pangea/pages/analytics/analytics_view_button.dart +++ b/lib/pangea/pages/analytics/analytics_view_button.dart @@ -1,7 +1,9 @@ -import 'package:fluffychat/pangea/enum/bar_chart_view_enum.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/enum/bar_chart_view_enum.dart'; + class AnalyticsViewButton extends StatelessWidget { final BarChartViewSelection value; final void Function(BarChartViewSelection) onChange; diff --git a/lib/pangea/pages/analytics/bar_chart_card.dart b/lib/pangea/pages/analytics/bar_chart_card.dart index 8fca443d0..8644aa378 100644 --- a/lib/pangea/pages/analytics/bar_chart_card.dart +++ b/lib/pangea/pages/analytics/bar_chart_card.dart @@ -1,6 +1,7 @@ -import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/material.dart'; +import 'package:fl_chart/fl_chart.dart'; + class BarChartCard extends StatelessWidget { const BarChartCard({ super.key, diff --git a/lib/pangea/pages/analytics/chart_view_picker_button.dart b/lib/pangea/pages/analytics/chart_view_picker_button.dart index c112efc2c..603d75aa8 100644 --- a/lib/pangea/pages/analytics/chart_view_picker_button.dart +++ b/lib/pangea/pages/analytics/chart_view_picker_button.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../../enum/bar_chart_view_enum.dart'; diff --git a/lib/pangea/pages/analytics/construct_cloud.dart b/lib/pangea/pages/analytics/construct_cloud.dart index a4aeb9cc1..ef797adb4 100644 --- a/lib/pangea/pages/analytics/construct_cloud.dart +++ b/lib/pangea/pages/analytics/construct_cloud.dart @@ -1,6 +1,6 @@ -import 'package:fluffychat/pangea/pages/analytics/base_analytics.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/pangea/pages/analytics/base_analytics.dart'; import '../../word_cloud/word_cloud_data.dart'; import '../../word_cloud/word_cloud_shape.dart'; import '../../word_cloud/word_cloud_tap.dart'; diff --git a/lib/pangea/pages/analytics/time_span_menu_button.dart b/lib/pangea/pages/analytics/time_span_menu_button.dart index 4245b8316..6d4ffc0c3 100644 --- a/lib/pangea/pages/analytics/time_span_menu_button.dart +++ b/lib/pangea/pages/analytics/time_span_menu_button.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../../enum/time_span.dart'; diff --git a/lib/pangea/pages/chat_details/pangea_chat_details.dart b/lib/pangea/pages/chat_details/pangea_chat_details.dart index 94e1ba26f..5e032024a 100644 --- a/lib/pangea/pages/chat_details/pangea_chat_details.dart +++ b/lib/pangea/pages/chat_details/pangea_chat_details.dart @@ -1,4 +1,11 @@ +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/chat_details/chat_details.dart'; import 'package:fluffychat/pages/chat_details/participant_list_item.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; @@ -15,11 +22,6 @@ import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/future_loading_dialog.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:flutter_linkify/flutter_linkify.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; class PangeaChatDetailsView extends StatelessWidget { final ChatDetailsController controller; 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 10897237c..ddce06930 100644 --- a/lib/pangea/pages/class_invitation_selection/class_invitation_selection.dart +++ b/lib/pangea/pages/class_invitation_selection/class_invitation_selection.dart @@ -1,14 +1,16 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; +import 'package:fluffychat/widgets/matrix.dart'; + class ClassInvitationSelection extends StatefulWidget { const ClassInvitationSelection({super.key}); diff --git a/lib/pangea/pages/class_settings/class_name_header.dart b/lib/pangea/pages/class_settings/class_name_header.dart index ab5d07ad1..63ad77ed3 100644 --- a/lib/pangea/pages/class_settings/class_name_header.dart +++ b/lib/pangea/pages/class_settings/class_name_header.dart @@ -1,9 +1,13 @@ -import 'package:fluffychat/pages/chat_details/chat_details.dart'; -import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; +// ignore_for_file: implementation_imports + import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/visibility.dart' as visible; + import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pages/chat_details/chat_details.dart'; +import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; + class ClassNameHeader extends StatelessWidget { final Room room; final ChatDetailsController controller; @@ -26,7 +30,7 @@ class ClassNameHeader extends StatelessWidget { visible: controller.showEditNameIcon, child: Icon( Icons.edit, - color: Theme.of(context).colorScheme.onBackground, + color: Theme.of(context).colorScheme.onSurface, ), ), label: room.nameAndRoomTypeIcon( 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 83b6fc2cd..52425786b 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,9 +1,11 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/chat_details/chat_details.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; class ClassDescriptionButton extends StatelessWidget { final Room room; 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 b24507de0..f39142b1e 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,7 +1,8 @@ -import 'package:fluffychat/pangea/pages/class_settings/p_class_widgets/class_invitation_buttons.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/pages/class_settings/p_class_widgets/class_invitation_buttons.dart'; import '../../../../pages/chat_details/chat_details.dart'; class SpaceDetailsToggleAddStudentsTile extends StatelessWidget { 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 d9bf12c0f..a7f4bca9c 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,17 +1,16 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; +import 'package:universal_html/html.dart' as html; + 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/pangea_room_extension.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -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; - import '../../../../utils/fluffy_share.dart'; -import '../../../../widgets/avatar.dart'; class ClassInvitationButtons extends StatelessWidget { final String roomId; @@ -114,24 +113,6 @@ class ClassInvitationButtons extends StatelessWidget { // // onTap: () => VRouter.of(context).to('invite'), // ); - final inviteStudentByUserNameTile = ListTile( - title: Text( - L10n.of(context).inviteStudentByUserName, - style: TextStyle( - color: Theme.of(context).colorScheme.secondary, - fontWeight: FontWeight.bold, - ), - ), - subtitle: Text(L10n.of(context).inviteStudentByUserNameDesc), - leading: CircleAvatar( - backgroundColor: Theme.of(context).primaryColor, - foregroundColor: Colors.white, - radius: Avatar.defaultSize / 2, - child: const Icon(Icons.add_outlined), - ), - onTap: () => context.go('/rooms/$roomId/invite'), - ); - return Column( children: [ // inviteStudentByUserNameTile, 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 b26318446..ac83ffe21 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,9 +1,11 @@ -import 'package:fluffychat/pages/chat_details/chat_details.dart'; -import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pages/chat_details/chat_details.dart'; +import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; + class ClassNameButton extends StatelessWidget { final Room room; final ChatDetailsController controller; 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 deleted file mode 100644 index 90ec18332..000000000 --- a/lib/pangea/pages/class_settings/p_class_widgets/class_show_edit_dialog.dart +++ /dev/null @@ -1,35 +0,0 @@ -import 'package:adaptive_dialog/adaptive_dialog.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - -void showEditFieldDialog(BuildContext context, String title) async { - final input = await showTextInputDialog( - useRootNavigator: false, - context: context, - title: title, - okLabel: L10n.of(context).ok, - cancelLabel: L10n.of(context).cancel, - textFields: [ - DialogTextField( - hintText: title, - // initialText: room.topic, - minLines: 1, - maxLines: 4, - ), - ], - ); - if (input == null) return; - final success = await showFutureLoadingDialog( - context: context, - // TODO change this later - future: () async => null, - ); - if (success.error == null) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(L10n.of(context).groupDescriptionHasBeenChanged), - ), - ); - } -} diff --git a/lib/pangea/pages/class_settings/p_class_widgets/room_capacity_button.dart b/lib/pangea/pages/class_settings/p_class_widgets/room_capacity_button.dart index ce460ebec..71ddcae94 100644 --- a/lib/pangea/pages/class_settings/p_class_widgets/room_capacity_button.dart +++ b/lib/pangea/pages/class_settings/p_class_widgets/room_capacity_button.dart @@ -1,10 +1,12 @@ +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/chat_details/chat_details.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; class RoomCapacityButton extends StatefulWidget { final Room? room; 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 1f2fa80ff..f0ac94b16 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,9 +1,10 @@ -import 'package:fluffychat/pangea/models/space_model.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/models/space_model.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; import '../../../../config/app_config.dart'; import '../../../../widgets/matrix.dart'; import '../../../constants/pangea_event_types.dart'; diff --git a/lib/pangea/pages/connect/p_sso_button.dart b/lib/pangea/pages/connect/p_sso_button.dart index 553fef632..c23e547da 100644 --- a/lib/pangea/pages/connect/p_sso_button.dart +++ b/lib/pangea/pages/connect/p_sso_button.dart @@ -1,12 +1,14 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:matrix/matrix_api_lite/model/matrix_exception.dart'; + import 'package:fluffychat/pages/homeserver_picker/homeserver_picker.dart'; import 'package:fluffychat/pangea/pages/sign_up/full_width_button.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/sso_login_action.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:flutter_svg/flutter_svg.dart'; -import 'package:matrix/matrix_api_lite/model/matrix_exception.dart'; enum SSOProvider { google, apple } diff --git a/lib/pangea/pages/find_partner/find_partner.dart b/lib/pangea/pages/find_partner/find_partner.dart index f5af483ed..af21508d3 100644 --- a/lib/pangea/pages/find_partner/find_partner.dart +++ b/lib/pangea/pages/find_partner/find_partner.dart @@ -1,12 +1,13 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:country_picker/country_picker.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:fluffychat/pangea/models/user_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - import '../../../widgets/matrix.dart'; import '../../controllers/pangea_controller.dart'; import '../../models/user_profile_search_model.dart'; diff --git a/lib/pangea/pages/find_partner/find_partner_view.dart b/lib/pangea/pages/find_partner/find_partner_view.dart index bdbbeed01..d42f5607a 100644 --- a/lib/pangea/pages/find_partner/find_partner_view.dart +++ b/lib/pangea/pages/find_partner/find_partner_view.dart @@ -1,4 +1,10 @@ +import 'package:flutter/material.dart'; + 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; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/models/user_model.dart'; @@ -8,11 +14,6 @@ import 'package:fluffychat/pangea/widgets/common/pangea_logo_svg.dart'; import 'package:fluffychat/pangea/widgets/user_settings/p_language_dropdown.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart' as matrix; - import '../../../widgets/profile_bottom_sheet.dart'; import 'find_partner.dart'; diff --git a/lib/pangea/pages/settings_learning/settings_learning.dart b/lib/pangea/pages/settings_learning/settings_learning.dart index 2de3893d7..4f4aeac48 100644 --- a/lib/pangea/pages/settings_learning/settings_learning.dart +++ b/lib/pangea/pages/settings_learning/settings_learning.dart @@ -1,4 +1,7 @@ +import 'package:flutter/material.dart'; + import 'package:country_picker/country_picker.dart'; + import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/space_model.dart'; import 'package:fluffychat/pangea/models/user_model.dart'; @@ -6,7 +9,6 @@ import 'package:fluffychat/pangea/pages/settings_learning/settings_learning_view import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart'; import 'package:fluffychat/pangea/widgets/user_settings/p_language_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; class SettingsLearning extends StatefulWidget { const SettingsLearning({super.key}); diff --git a/lib/pangea/pages/settings_learning/settings_learning_view.dart b/lib/pangea/pages/settings_learning/settings_learning_view.dart index a5e5154f6..c30d06709 100644 --- a/lib/pangea/pages/settings_learning/settings_learning_view.dart +++ b/lib/pangea/pages/settings_learning/settings_learning_view.dart @@ -1,3 +1,10 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/models/space_model.dart'; @@ -8,11 +15,6 @@ import 'package:fluffychat/pangea/widgets/user_settings/p_settings_switch_list_t import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/gestures.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:url_launcher/url_launcher_string.dart'; class SettingsLearningView extends StatelessWidget { final SettingsLearningController controller; diff --git a/lib/pangea/pages/settings_subscription/change_subscription.dart b/lib/pangea/pages/settings_subscription/change_subscription.dart index 7a2bfba59..201f4bb5f 100644 --- a/lib/pangea/pages/settings_subscription/change_subscription.dart +++ b/lib/pangea/pages/settings_subscription/change_subscription.dart @@ -1,9 +1,11 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + 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'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class ChangeSubscription extends StatelessWidget { final SubscriptionManagementController controller; diff --git a/lib/pangea/pages/settings_subscription/settings_subscription.dart b/lib/pangea/pages/settings_subscription/settings_subscription.dart index 421390bba..d3ca46518 100644 --- a/lib/pangea/pages/settings_subscription/settings_subscription.dart +++ b/lib/pangea/pages/settings_subscription/settings_subscription.dart @@ -1,6 +1,12 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; @@ -8,10 +14,6 @@ import 'package:fluffychat/pangea/pages/settings_subscription/settings_subscript import 'package:fluffychat/pangea/utils/subscription_app_id.dart'; import 'package:fluffychat/pangea/widgets/subscription/subscription_snackbar.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:url_launcher/url_launcher_string.dart'; class SubscriptionManagement extends StatefulWidget { const SubscriptionManagement({super.key}); diff --git a/lib/pangea/pages/settings_subscription/settings_subscription_view.dart b/lib/pangea/pages/settings_subscription/settings_subscription_view.dart index f02111d0d..2c7eaa94c 100644 --- a/lib/pangea/pages/settings_subscription/settings_subscription_view.dart +++ b/lib/pangea/pages/settings_subscription/settings_subscription_view.dart @@ -1,11 +1,13 @@ // Flutter imports: +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:intl/intl.dart'; + import 'package:fluffychat/pangea/pages/settings_subscription/change_subscription.dart'; import 'package:fluffychat/pangea/pages/settings_subscription/settings_subscription.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:intl/intl.dart'; class SettingsSubscriptionView extends StatelessWidget { final SubscriptionManagementController controller; diff --git a/lib/pangea/pages/sign_up/full_width_button.dart b/lib/pangea/pages/sign_up/full_width_button.dart index 393f616c0..7682c21a1 100644 --- a/lib/pangea/pages/sign_up/full_width_button.dart +++ b/lib/pangea/pages/sign_up/full_width_button.dart @@ -1,6 +1,7 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/widgets/pressable_button.dart'; -import 'package:flutter/material.dart'; class FullWidthButton extends StatefulWidget { final String title; diff --git a/lib/pangea/pages/sign_up/login_or_signup_view.dart b/lib/pangea/pages/sign_up/login_or_signup_view.dart index 78fbafe65..62e90043d 100644 --- a/lib/pangea/pages/sign_up/login_or_signup_view.dart +++ b/lib/pangea/pages/sign_up/login_or_signup_view.dart @@ -1,9 +1,11 @@ -import 'package:fluffychat/pangea/pages/sign_up/full_width_button.dart'; -import 'package:fluffychat/pangea/pages/sign_up/pangea_login_scaffold.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; +import 'package:fluffychat/pangea/pages/sign_up/full_width_button.dart'; +import 'package:fluffychat/pangea/pages/sign_up/pangea_login_scaffold.dart'; + class LoginOrSignupView extends StatelessWidget { const LoginOrSignupView({super.key}); diff --git a/lib/pangea/pages/sign_up/pangea_login_scaffold.dart b/lib/pangea/pages/sign_up/pangea_login_scaffold.dart index 63ba37677..6d578d235 100644 --- a/lib/pangea/pages/sign_up/pangea_login_scaffold.dart +++ b/lib/pangea/pages/sign_up/pangea_login_scaffold.dart @@ -1,8 +1,9 @@ import 'dart:typed_data'; -import 'package:fluffychat/config/app_config.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/config/app_config.dart'; + class PangeaLoginScaffold extends StatelessWidget { final String mainAssetPath; final Uint8List? mainAssetBytes; diff --git a/lib/pangea/pages/sign_up/pangea_login_view.dart b/lib/pangea/pages/sign_up/pangea_login_view.dart index 924fa9c96..602a73d89 100644 --- a/lib/pangea/pages/sign_up/pangea_login_view.dart +++ b/lib/pangea/pages/sign_up/pangea_login_view.dart @@ -1,10 +1,12 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pages/login/login.dart'; import 'package:fluffychat/pangea/pages/connect/p_sso_button.dart'; import 'package:fluffychat/pangea/pages/sign_up/full_width_button.dart'; import 'package:fluffychat/pangea/pages/sign_up/pangea_login_scaffold.dart'; import 'package:fluffychat/pangea/widgets/common/pangea_logo_svg.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class PangeaLoginView extends StatelessWidget { final LoginController controller; diff --git a/lib/pangea/pages/sign_up/signup.dart b/lib/pangea/pages/sign_up/signup.dart index 89ec62537..9574d469e 100644 --- a/lib/pangea/pages/sign_up/signup.dart +++ b/lib/pangea/pages/sign_up/signup.dart @@ -1,3 +1,8 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix_api_lite/model/matrix_exception.dart'; + import 'package:fluffychat/pangea/pages/sign_up/signup_view.dart'; import 'package:fluffychat/pangea/pages/sign_up/signup_with_email_view.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; @@ -5,9 +10,6 @@ import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix_api_lite/model/matrix_exception.dart'; class SignupPage extends StatefulWidget { final bool withEmail; diff --git a/lib/pangea/pages/sign_up/signup_view.dart b/lib/pangea/pages/sign_up/signup_view.dart index 59f2f12fa..ff6fbeba5 100644 --- a/lib/pangea/pages/sign_up/signup_view.dart +++ b/lib/pangea/pages/sign_up/signup_view.dart @@ -1,13 +1,14 @@ // Flutter imports: +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; + import 'package:fluffychat/pangea/pages/connect/p_sso_button.dart'; import 'package:fluffychat/pangea/pages/sign_up/full_width_button.dart'; import 'package:fluffychat/pangea/pages/sign_up/pangea_login_scaffold.dart'; import 'package:fluffychat/pangea/widgets/common/pangea_logo_svg.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; - import 'signup.dart'; class SignupPageView extends StatelessWidget { diff --git a/lib/pangea/pages/sign_up/signup_with_email_view.dart b/lib/pangea/pages/sign_up/signup_with_email_view.dart index 8706b92d9..5bf5d9bcf 100644 --- a/lib/pangea/pages/sign_up/signup_with_email_view.dart +++ b/lib/pangea/pages/sign_up/signup_with_email_view.dart @@ -1,12 +1,13 @@ // Flutter imports: +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/pages/sign_up/full_width_button.dart'; import 'package:fluffychat/pangea/pages/sign_up/pangea_login_scaffold.dart'; import 'package:fluffychat/pangea/widgets/common/pangea_logo_svg.dart'; import 'package:fluffychat/pangea/widgets/signup/tos_checkbox.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - import 'signup.dart'; class SignupWithEmailView extends StatelessWidget { diff --git a/lib/pangea/pages/sign_up/user_settings.dart b/lib/pangea/pages/sign_up/user_settings.dart index 6d29cdf2c..749613d01 100644 --- a/lib/pangea/pages/sign_up/user_settings.dart +++ b/lib/pangea/pages/sign_up/user_settings.dart @@ -1,5 +1,12 @@ import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/controllers/language_list_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; @@ -9,11 +16,6 @@ import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/utils/file_selector.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; class UserSettingsPage extends StatefulWidget { const UserSettingsPage({super.key}); diff --git a/lib/pangea/pages/sign_up/user_settings_view.dart b/lib/pangea/pages/sign_up/user_settings_view.dart index dbb92a20c..d23577afd 100644 --- a/lib/pangea/pages/sign_up/user_settings_view.dart +++ b/lib/pangea/pages/sign_up/user_settings_view.dart @@ -1,12 +1,14 @@ +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/pages/sign_up/full_width_button.dart'; import 'package:fluffychat/pangea/pages/sign_up/pangea_login_scaffold.dart'; import 'package:fluffychat/pangea/pages/sign_up/user_settings.dart'; import 'package:fluffychat/pangea/widgets/signup/tos_checkbox.dart'; import 'package:fluffychat/pangea/widgets/user_settings/p_language_dropdown.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class UserSettingsView extends StatelessWidget { final UserSettingsState controller; diff --git a/lib/pangea/repo/contextualized_translation_repo.dart b/lib/pangea/repo/contextualized_translation_repo.dart index 737ffd76c..dcf19e32f 100644 --- a/lib/pangea/repo/contextualized_translation_repo.dart +++ b/lib/pangea/repo/contextualized_translation_repo.dart @@ -1,11 +1,11 @@ import 'dart:convert'; +import 'package:http/http.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/models/pangea_token_text_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:http/http.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; - import '../config/environment.dart'; import '../network/requests.dart'; import '../network/urls.dart'; diff --git a/lib/pangea/repo/igc_repo.dart b/lib/pangea/repo/igc_repo.dart index 50f24eba3..aeaa57bfb 100644 --- a/lib/pangea/repo/igc_repo.dart +++ b/lib/pangea/repo/igc_repo.dart @@ -1,5 +1,7 @@ import 'dart:convert'; +import 'package:http/http.dart'; + import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/language_detection_controller.dart'; import 'package:fluffychat/pangea/models/language_detection_model.dart'; @@ -8,8 +10,6 @@ import 'package:fluffychat/pangea/models/pangea_match_model.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/models/pangea_token_text_model.dart'; import 'package:fluffychat/pangea/repo/span_data_repo.dart'; -import 'package:http/http.dart'; - import '../constants/model_keys.dart'; import '../models/igc_text_data_model.dart'; import '../network/requests.dart'; diff --git a/lib/pangea/repo/image_repo.dart b/lib/pangea/repo/image_repo.dart index 07d3b7a5c..75939b887 100644 --- a/lib/pangea/repo/image_repo.dart +++ b/lib/pangea/repo/image_repo.dart @@ -1,11 +1,12 @@ import 'dart:convert'; import 'dart:developer'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/foundation.dart'; + import 'package:http/http.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; +import 'package:fluffychat/widgets/matrix.dart'; import '../config/environment.dart'; import '../network/requests.dart'; diff --git a/lib/pangea/repo/interactive_translation_repo.dart b/lib/pangea/repo/interactive_translation_repo.dart index 6e1739ecf..c80aeb338 100644 --- a/lib/pangea/repo/interactive_translation_repo.dart +++ b/lib/pangea/repo/interactive_translation_repo.dart @@ -1,9 +1,9 @@ import 'dart:convert'; +import 'package:http/http.dart'; + import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:http/http.dart'; - import '../models/custom_input_translation_model.dart'; import '../models/it_response_model.dart'; import '../models/system_choice_translation_model.dart'; diff --git a/lib/pangea/repo/language_repo.dart b/lib/pangea/repo/language_repo.dart index 4c0589750..22103edc5 100644 --- a/lib/pangea/repo/language_repo.dart +++ b/lib/pangea/repo/language_repo.dart @@ -1,13 +1,14 @@ import 'dart:convert'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; + +import 'package:http/http.dart'; + import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:fluffychat/pangea/network/urls.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:http/http.dart'; - import '../network/requests.dart'; class LanguageRepo { diff --git a/lib/pangea/repo/lemma_definition_repo.dart b/lib/pangea/repo/lemma_definition_repo.dart index 7f458cd05..78ed1e489 100644 --- a/lib/pangea/repo/lemma_definition_repo.dart +++ b/lib/pangea/repo/lemma_definition_repo.dart @@ -1,9 +1,9 @@ import 'dart:convert'; +import 'package:http/http.dart'; + import 'package:fluffychat/pangea/network/urls.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:http/http.dart'; - import '../config/environment.dart'; import '../network/requests.dart'; diff --git a/lib/pangea/repo/practice/emoji_activity_generator.dart b/lib/pangea/repo/practice/emoji_activity_generator.dart index 5b6867907..945fa1d57 100644 --- a/lib/pangea/repo/practice/emoji_activity_generator.dart +++ b/lib/pangea/repo/practice/emoji_activity_generator.dart @@ -1,12 +1,13 @@ import 'dart:developer'; import 'dart:math'; +import 'package:flutter/foundation.dart'; + import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/message_activity_request.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; -import 'package:flutter/foundation.dart'; class EmojiActivityGenerator { Future get( diff --git a/lib/pangea/repo/practice/lemma_activity_generator.dart b/lib/pangea/repo/practice/lemma_activity_generator.dart index 81f1d8b37..c2f64f183 100644 --- a/lib/pangea/repo/practice/lemma_activity_generator.dart +++ b/lib/pangea/repo/practice/lemma_activity_generator.dart @@ -1,13 +1,15 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/message_activity_request.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class LemmaActivityGenerator { Future get( diff --git a/lib/pangea/repo/practice/morph_activity_generator.dart b/lib/pangea/repo/practice/morph_activity_generator.dart index 966d6a443..98ff9eb3c 100644 --- a/lib/pangea/repo/practice/morph_activity_generator.dart +++ b/lib/pangea/repo/practice/morph_activity_generator.dart @@ -1,5 +1,7 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; + import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; import 'package:fluffychat/pangea/enum/analytics/morph_categories_enum.dart'; import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; @@ -9,7 +11,6 @@ import 'package:fluffychat/pangea/models/practice_activities.dart/multiple_choic import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; typedef MorphActivitySequence = Map; diff --git a/lib/pangea/repo/practice/practice_repo.dart b/lib/pangea/repo/practice/practice_repo.dart index e7e860f54..a85466a09 100644 --- a/lib/pangea/repo/practice/practice_repo.dart +++ b/lib/pangea/repo/practice/practice_repo.dart @@ -2,6 +2,12 @@ import 'dart:async'; import 'dart:convert'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:http/http.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; @@ -18,10 +24,6 @@ import 'package:fluffychat/pangea/repo/practice/lemma_activity_generator.dart'; import 'package:fluffychat/pangea/repo/practice/morph_activity_generator.dart'; import 'package:fluffychat/pangea/repo/practice/word_meaning_activity_generator.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:http/http.dart'; -import 'package:matrix/matrix.dart'; /// Represents an item in the completion cache. class _RequestCacheItem { diff --git a/lib/pangea/repo/practice/word_meaning_activity_generator.dart b/lib/pangea/repo/practice/word_meaning_activity_generator.dart index d180bcadd..94ef28233 100644 --- a/lib/pangea/repo/practice/word_meaning_activity_generator.dart +++ b/lib/pangea/repo/practice/word_meaning_activity_generator.dart @@ -1,11 +1,13 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/message_activity_request.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; import 'package:fluffychat/pangea/repo/lemma_definition_repo.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class WordMeaningActivityGenerator { Future get( diff --git a/lib/pangea/repo/span_data_repo.dart b/lib/pangea/repo/span_data_repo.dart index 850411d17..64c60465c 100644 --- a/lib/pangea/repo/span_data_repo.dart +++ b/lib/pangea/repo/span_data_repo.dart @@ -1,12 +1,12 @@ import 'dart:convert'; import 'package:collection/collection.dart'; +import 'package:http/http.dart'; + 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'; import 'package:fluffychat/pangea/models/span_data.dart'; -import 'package:http/http.dart'; - import '../constants/model_keys.dart'; import '../network/requests.dart'; import '../network/urls.dart'; @@ -149,4 +149,4 @@ SpanDetailsRepoReqAndRes get mockReponseWithChoices { // res.span.choices![1].selected = true; // res.span.message = "Conjugation error"; // return res; -// } \ No newline at end of file +// } diff --git a/lib/pangea/repo/subscription_repo.dart b/lib/pangea/repo/subscription_repo.dart index cc7d084aa..362276aa1 100644 --- a/lib/pangea/repo/subscription_repo.dart +++ b/lib/pangea/repo/subscription_repo.dart @@ -1,16 +1,17 @@ import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; +import 'package:http/http.dart' as http; + import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:fluffychat/pangea/network/requests.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/subscription_app_id.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:http/http.dart' as http; - import '../network/urls.dart'; class SubscriptionRepo { @@ -68,7 +69,7 @@ class SubscriptionRepo { choreoApiKey: Environment.choreoApiKey, accessToken: MatrixState.pangeaController.userController.accessToken, ); - + final http.Response res = await req.get(url: PApiUrls.rcSubscription); final Map json = jsonDecode(res.body); final RCSubscriptionResponseModel resp = diff --git a/lib/pangea/repo/topic_data_repo.dart b/lib/pangea/repo/topic_data_repo.dart index 06abf6929..9a5def03f 100644 --- a/lib/pangea/repo/topic_data_repo.dart +++ b/lib/pangea/repo/topic_data_repo.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:flutter/services.dart'; + import 'package:http/http.dart'; import '../config/environment.dart'; diff --git a/lib/pangea/repo/user_repo.dart b/lib/pangea/repo/user_repo.dart index ec6f29c01..d0f100c7f 100644 --- a/lib/pangea/repo/user_repo.dart +++ b/lib/pangea/repo/user_repo.dart @@ -1,9 +1,9 @@ import 'dart:convert'; +import 'package:http/http.dart'; + import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; -import 'package:http/http.dart'; - import '../models/user_profile_search_model.dart'; import '../network/requests.dart'; import '../network/urls.dart'; diff --git a/lib/pangea/utils/any_state_holder.dart b/lib/pangea/utils/any_state_holder.dart index 00800a74b..1bbc056d6 100644 --- a/lib/pangea/utils/any_state_holder.dart +++ b/lib/pangea/utils/any_state_holder.dart @@ -1,7 +1,9 @@ -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/material.dart'; + import 'package:sentry_flutter/sentry_flutter.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; + class PangeaAnyState { final Map _layerLinkAndKeys = {}; List entries = []; diff --git a/lib/pangea/utils/bot_style.dart b/lib/pangea/utils/bot_style.dart index bcb5c2c4c..460a67d34 100644 --- a/lib/pangea/utils/bot_style.dart +++ b/lib/pangea/utils/bot_style.dart @@ -1,6 +1,7 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/material.dart'; class BotStyle { static TextStyle text( diff --git a/lib/pangea/utils/chat_list_handle_space_tap.dart b/lib/pangea/utils/chat_list_handle_space_tap.dart index 685188305..f66be7496 100644 --- a/lib/pangea/utils/chat_list_handle_space_tap.dart +++ b/lib/pangea/utils/chat_list_handle_space_tap.dart @@ -1,4 +1,10 @@ +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pangea/constants/local.key.dart'; @@ -6,11 +12,6 @@ import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; - import 'error_handler.dart'; // ignore: curly_braces_in_flow_control_structures diff --git a/lib/pangea/utils/class_chat_power_levels.dart b/lib/pangea/utils/class_chat_power_levels.dart index 9c1c25b31..16d08c6ff 100644 --- a/lib/pangea/utils/class_chat_power_levels.dart +++ b/lib/pangea/utils/class_chat_power_levels.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:matrix/matrix.dart'; import '../../widgets/matrix.dart'; diff --git a/lib/pangea/utils/country_display.dart b/lib/pangea/utils/country_display.dart index ac0aa328b..2201b5aba 100644 --- a/lib/pangea/utils/country_display.dart +++ b/lib/pangea/utils/country_display.dart @@ -1,5 +1,6 @@ -import 'package:country_picker/country_picker.dart'; import 'package:flutter/material.dart'; + +import 'package:country_picker/country_picker.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; class CountryDisplayUtil { diff --git a/lib/pangea/utils/download_chat.dart b/lib/pangea/utils/download_chat.dart index 6b39e426c..68429bc75 100644 --- a/lib/pangea/utils/download_chat.dart +++ b/lib/pangea/utils/download_chat.dart @@ -1,11 +1,13 @@ +// ignore_for_file: implementation_imports + import 'dart:async'; import 'dart:io'; -import 'package:csv/csv.dart'; -import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + +import 'package:csv/csv.dart'; +import 'package:excel/excel.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:intl/intl.dart'; import 'package:matrix/matrix.dart'; @@ -13,9 +15,10 @@ import 'package:matrix/src/models/timeline_chunk.dart'; import 'package:open_file/open_file.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; -import 'package:syncfusion_flutter_xlsio/xlsio.dart'; -import 'package:universal_html/html.dart' as webFile; +import 'package:universal_html/html.dart' as webfile; +import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../models/choreo_record.dart'; enum DownloadType { txt, csv, xlsx } @@ -195,9 +198,9 @@ Future downloadFile( DownloadType fileType, ) async { if (kIsWeb) { - final blob = webFile.Blob([contents], mimetype(fileType), 'native'); - webFile.AnchorElement( - href: webFile.Url.createObjectUrlFromBlob(blob).toString(), + final blob = webfile.Blob([contents], mimetype(fileType), 'native'); + webfile.AnchorElement( + href: webfile.Url.createObjectUrlFromBlob(blob).toString(), ) ..setAttribute("download", filename) ..click(); @@ -332,15 +335,26 @@ List getExcelContent( BuildContext context, String filename, ) { - final Workbook workbook = Workbook(); - final Worksheet sheet = workbook.worksheets[0]; - - sheet.getRangeByIndex(1, 1).setValue(L10n.of(context).sender); - sheet.getRangeByIndex(1, 2).setValue(L10n.of(context).time); - sheet.getRangeByIndex(1, 3).setValue(L10n.of(context).originalMessage); - sheet.getRangeByIndex(1, 4).setValue(L10n.of(context).sentMessage); - sheet.getRangeByIndex(1, 5).setValue(L10n.of(context).taTooltip); - sheet.getRangeByIndex(1, 6).setValue(L10n.of(context).gaTooltip); + final excel = Excel.createExcel(); + final Sheet sheetObject = excel['Sheet1']; + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 0, rowIndex: 0)) + .value = TextCellValue(L10n.of(context).sender); + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 1, rowIndex: 0)) + .value = TextCellValue(L10n.of(context).time); + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 2, rowIndex: 0)) + .value = TextCellValue(L10n.of(context).originalMessage); + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 3, rowIndex: 0)) + .value = TextCellValue(L10n.of(context).sentMessage); + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 4, rowIndex: 0)) + .value = TextCellValue(L10n.of(context).taTooltip); + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 5, rowIndex: 0)) + .value = TextCellValue(L10n.of(context).gaTooltip); for (int i = 0; i < messages.length; i++) { final PangeaMessageEvent message = messages[i]; @@ -357,18 +371,35 @@ List getExcelContent( includedIGC = message.originalSent!.choreo!.includedIGC; } - sheet.getRangeByIndex(i + 2, 1).setValue(sender); - sheet.getRangeByIndex(i + 2, 2).setDateTime(message.originServerTs); - sheet.getRangeByIndex(i + 2, 3).setValue(originalMsg); - sheet.getRangeByIndex(i + 2, 4).setValue(sentMsg); - sheet.getRangeByIndex(i + 2, 5).setValue(L10n.of(context).notAvailable); - sheet.getRangeByIndex(i + 2, 6).setValue(L10n.of(context).notAvailable); + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 0, rowIndex: i + 2)) + .value = TextCellValue(sender); + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 1, rowIndex: i + 2)) + .value = DateTimeCellValue( + year: message.originServerTs.year, + month: message.originServerTs.month, + day: message.originServerTs.day, + hour: message.originServerTs.hour, + minute: message.originServerTs.minute, + second: message.originServerTs.second, + ); + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 2, rowIndex: i + 2)) + .value = TextCellValue(originalMsg); + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 3, rowIndex: i + 2)) + .value = TextCellValue(sentMsg); if (usageAvailable) { - sheet.getRangeByIndex(i + 2, 5).setValue(includedIT); - sheet.getRangeByIndex(i + 2, 6).setValue(includedIGC); + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 4, rowIndex: i + 2)) + .value = TextCellValue(includedIT.toString()); + sheetObject + .cell(CellIndex.indexByColumnRow(columnIndex: 5, rowIndex: i + 2)) + .value = TextCellValue(includedIGC.toString()); } } - final List bytes = workbook.saveAsStream(); - return bytes; + final List? bytes = excel.encode(); + return bytes ?? []; } diff --git a/lib/pangea/utils/error_handler.dart b/lib/pangea/utils/error_handler.dart index 532e6a74e..90651d18d 100644 --- a/lib/pangea/utils/error_handler.dart +++ b/lib/pangea/utils/error_handler.dart @@ -1,13 +1,15 @@ import 'dart:async'; -import 'package:fluffychat/pangea/config/environment.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:http/http.dart' as http; import 'package:sentry_flutter/sentry_flutter.dart'; +import 'package:fluffychat/pangea/config/environment.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; + class PangeaWarningError implements Exception { final String message; PangeaWarningError(message) : message = "Pangea Warning Error: $message"; diff --git a/lib/pangea/utils/find_conversation_partner_dialog.dart b/lib/pangea/utils/find_conversation_partner_dialog.dart index 4fab479ec..fe993906e 100644 --- a/lib/pangea/utils/find_conversation_partner_dialog.dart +++ b/lib/pangea/utils/find_conversation_partner_dialog.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; diff --git a/lib/pangea/utils/firebase_analytics.dart b/lib/pangea/utils/firebase_analytics.dart index 323a7a172..a6dd4ef98 100644 --- a/lib/pangea/utils/firebase_analytics.dart +++ b/lib/pangea/utils/firebase_analytics.dart @@ -1,8 +1,9 @@ -import 'package:firebase_analytics/firebase_analytics.dart'; -import 'package:firebase_core/firebase_core.dart'; -import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:flutter/widgets.dart'; +import 'package:firebase_analytics/firebase_analytics.dart'; +import 'package:firebase_core/firebase_core.dart'; + +import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import '../../config/firebase_options.dart'; // PageRoute import @@ -30,7 +31,7 @@ class GoogleAnalytics { } static analyticsUserUpdate(String? userID) { - print("user update $userID"); + debugPrint("user update $userID"); analytics?.setUserId(id: userID); } diff --git a/lib/pangea/utils/get_chat_list_item_subtitle.dart b/lib/pangea/utils/get_chat_list_item_subtitle.dart index 4f44382a9..ee94d62f4 100644 --- a/lib/pangea/utils/get_chat_list_item_subtitle.dart +++ b/lib/pangea/utils/get_chat_list_item_subtitle.dart @@ -1,11 +1,12 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/widgets/chat/message_token_text.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; - import '../../utils/matrix_sdk_extensions/matrix_locals.dart'; class ChatListItemSubtitle extends StatelessWidget { diff --git a/lib/pangea/utils/grammar/get_grammar_copy.dart b/lib/pangea/utils/grammar/get_grammar_copy.dart index 0e6bb9455..33cb2d716 100644 --- a/lib/pangea/utils/grammar/get_grammar_copy.dart +++ b/lib/pangea/utils/grammar/get_grammar_copy.dart @@ -1,9 +1,11 @@ // ignore_for_file: constant_identifier_names -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; + /// Used on morph constructs String? getGrammarCopy({ required String category, diff --git a/lib/pangea/utils/inline_tooltip.dart b/lib/pangea/utils/inline_tooltip.dart index 3221a984e..a399cca45 100644 --- a/lib/pangea/utils/inline_tooltip.dart +++ b/lib/pangea/utils/inline_tooltip.dart @@ -1,9 +1,11 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/enum/instructions_enum.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class InlineTooltip extends StatefulWidget { final InstructionsEnum instructionsEnum; diff --git a/lib/pangea/utils/instructions.dart b/lib/pangea/utils/instructions.dart index cda4a6c1e..36d12a9eb 100644 --- a/lib/pangea/utils/instructions.dart +++ b/lib/pangea/utils/instructions.dart @@ -1,7 +1,8 @@ -import 'package:fluffychat/pangea/enum/instructions_enum.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/enum/instructions_enum.dart'; import '../../config/app_config.dart'; import '../../widgets/matrix.dart'; import '../controllers/pangea_controller.dart'; diff --git a/lib/pangea/utils/language_level_copy.dart b/lib/pangea/utils/language_level_copy.dart index f5aa04107..2d91517c8 100644 --- a/lib/pangea/utils/language_level_copy.dart +++ b/lib/pangea/utils/language_level_copy.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + 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 4e38eab78..91e5702e9 100644 --- a/lib/pangea/utils/lock_room.dart +++ b/lib/pangea/utils/lock_room.dart @@ -1,6 +1,7 @@ -import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; + Future lockRoom(Room room, Client client) async { room.isSpace ? await lockSpace(room, client) : await lockChat(room, client); } diff --git a/lib/pangea/utils/logout.dart b/lib/pangea/utils/logout.dart index f00b3d5b2..d1baca382 100644 --- a/lib/pangea/utils/logout.dart +++ b/lib/pangea/utils/logout.dart @@ -1,8 +1,10 @@ +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; void pLogoutAction(BuildContext context, {bool? isDestructiveAction}) async { if (await showOkCancelAlertDialog( diff --git a/lib/pangea/utils/match_copy.dart b/lib/pangea/utils/match_copy.dart index 1c4e77d0d..534774092 100644 --- a/lib/pangea/utils/match_copy.dart +++ b/lib/pangea/utils/match_copy.dart @@ -1,12 +1,13 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/enum/span_data_type.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - import '../constants/match_rule_ids.dart'; import '../models/pangea_match_model.dart'; diff --git a/lib/pangea/utils/message_text_util.dart b/lib/pangea/utils/message_text_util.dart index 3611c2001..3e12ffe17 100644 --- a/lib/pangea/utils/message_text_util.dart +++ b/lib/pangea/utils/message_text_util.dart @@ -1,9 +1,10 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/controllers/message_analytics_controller.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/widgets/chat/message_token_text.dart'; -import 'package:flutter/material.dart'; class MessageTextUtil { static List? getTokenPositions( diff --git a/lib/pangea/utils/overlay.dart b/lib/pangea/utils/overlay.dart index 745e97f64..1352bd37f 100644 --- a/lib/pangea/utils/overlay.dart +++ b/lib/pangea/utils/overlay.dart @@ -1,12 +1,12 @@ import 'dart:developer'; import 'dart:ui'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + 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'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; - import '../../config/themes.dart'; import '../../widgets/matrix.dart'; import 'error_handler.dart'; @@ -289,7 +289,8 @@ class TransparentBackdropState extends State builder: (context, _) { return Material( borderOnForeground: false, - color: widget.backgroundColor?.withOpacity(_opacityTween.value) ?? + color: widget.backgroundColor + ?.withAlpha((_opacityTween.value * 255).round()) ?? Colors.transparent, clipBehavior: Clip.antiAlias, child: InkWell( diff --git a/lib/pangea/utils/p_store.dart b/lib/pangea/utils/p_store.dart index 233975fc5..1048fcb3d 100644 --- a/lib/pangea/utils/p_store.dart +++ b/lib/pangea/utils/p_store.dart @@ -1,7 +1,8 @@ -import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:get_storage/get_storage.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; +import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; + /// Utility to save and read data both in the matrix profile (this is the default /// behavior) and in the local storage (local needs to be specificied). An /// instance of this class is created in the PangeaController. diff --git a/lib/pangea/utils/password_forgotten.dart b/lib/pangea/utils/password_forgotten.dart index e6cb70744..2f7d95d73 100644 --- a/lib/pangea/utils/password_forgotten.dart +++ b/lib/pangea/utils/password_forgotten.dart @@ -1,10 +1,11 @@ -import 'package:adaptive_dialog/adaptive_dialog.dart'; -import 'package:fluffychat/pages/login/login.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:flutter/material.dart'; + +import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pages/login/login.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; import '../../widgets/matrix.dart'; extension PangeaPasswordForgotten on LoginController { @@ -59,8 +60,6 @@ extension PangeaPasswordForgotten on LoginController { return; } Navigator.of(context).pop(); - final TextEditingController textFieldController = - TextEditingController(); showDialog( context: context, useRootNavigator: false, diff --git a/lib/pangea/utils/report_message.dart b/lib/pangea/utils/report_message.dart index b925dbf5f..7c1178476 100644 --- a/lib/pangea/utils/report_message.dart +++ b/lib/pangea/utils/report_message.dart @@ -1,10 +1,12 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/extensions/client_extension/client_extension.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; Future reportMessage( BuildContext context, diff --git a/lib/pangea/utils/set_class_name.dart b/lib/pangea/utils/set_class_name.dart index ff9938244..c51b9c24d 100644 --- a/lib/pangea/utils/set_class_name.dart +++ b/lib/pangea/utils/set_class_name.dart @@ -1,8 +1,9 @@ -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; +import 'package:fluffychat/widgets/matrix.dart'; import '../../utils/matrix_sdk_extensions/matrix_locals.dart'; void setClassDisplayname(BuildContext context, String? roomId) async { diff --git a/lib/pangea/utils/space_code.dart b/lib/pangea/utils/space_code.dart index 22200e664..8d57b386e 100644 --- a/lib/pangea/utils/space_code.dart +++ b/lib/pangea/utils/space_code.dart @@ -1,11 +1,13 @@ import 'dart:convert'; -import 'package:adaptive_dialog/adaptive_dialog.dart'; -import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:flutter/material.dart'; + +import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; + class SpaceCodeUtil { static const codeLength = 7; diff --git a/lib/pangea/utils/sso_login_action.dart b/lib/pangea/utils/sso_login_action.dart index 404f7a923..bfba5b996 100644 --- a/lib/pangea/utils/sso_login_action.dart +++ b/lib/pangea/utils/sso_login_action.dart @@ -1,15 +1,17 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + +import 'package:flutter_web_auth_2/flutter_web_auth_2.dart'; +import 'package:matrix/matrix.dart'; +import 'package:universal_html/html.dart' as html; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/homeserver_picker/homeserver_picker.dart'; import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_web_auth_2/flutter_web_auth_2.dart'; -import 'package:matrix/matrix.dart'; -import 'package:universal_html/html.dart' as html; Future pangeaSSOLoginAction( IdentityProvider provider, diff --git a/lib/pangea/utils/sync_status_util.dart b/lib/pangea/utils/sync_status_util.dart index 5d0fd51bd..6c8703dc5 100644 --- a/lib/pangea/utils/sync_status_util.dart +++ b/lib/pangea/utils/sync_status_util.dart @@ -1,10 +1,11 @@ import 'dart:async'; -import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/utils/localized_exception_extension.dart'; import '../../widgets/matrix.dart'; class PLoadingStatus extends StatefulWidget { @@ -119,7 +120,6 @@ extension on SyncStatusUpdate { case SyncStatus.processing: case SyncStatus.cleaningUp: case SyncStatus.finished: - default: return L10n.of(context).synchronizingPleaseWait; } } diff --git a/lib/pangea/utils/sync_status_util_v2.dart b/lib/pangea/utils/sync_status_util_v2.dart index 478133ae6..cf889f777 100644 --- a/lib/pangea/utils/sync_status_util_v2.dart +++ b/lib/pangea/utils/sync_status_util_v2.dart @@ -1,8 +1,9 @@ -import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/utils/localized_exception_extension.dart'; import '../../widgets/matrix.dart'; import 'error_handler.dart'; @@ -123,7 +124,6 @@ extension on SyncStatusUpdate { case SyncStatus.processing: case SyncStatus.cleaningUp: case SyncStatus.finished: - default: return L10n.of(context).synchronizingPleaseWait; } } diff --git a/lib/pangea/utils/update_version_dialog.dart b/lib/pangea/utils/update_version_dialog.dart index 5d8faf0fe..79dd1f4a1 100644 --- a/lib/pangea/utils/update_version_dialog.dart +++ b/lib/pangea/utils/update_version_dialog.dart @@ -1,8 +1,10 @@ -import 'package:adaptive_dialog/adaptive_dialog.dart'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/material.dart'; + +import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; + Future showUpdateVersionDialog({ required Future Function() future, required BuildContext context, diff --git a/lib/pangea/widgets/animations/gain_points.dart b/lib/pangea/widgets/animations/gain_points.dart index e3c47f64d..6d9deefae 100644 --- a/lib/pangea/widgets/animations/gain_points.dart +++ b/lib/pangea/widgets/animations/gain_points.dart @@ -1,10 +1,11 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/controllers/get_analytics_controller.dart'; import 'package:fluffychat/pangea/controllers/put_analytics_controller.dart'; import 'package:fluffychat/pangea/utils/bot_style.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; class PointsGainedAnimation extends StatefulWidget { final Color? gainColor; diff --git a/lib/pangea/widgets/animations/progress_bar/animated_level_dart.dart b/lib/pangea/widgets/animations/progress_bar/animated_level_dart.dart index ab2da5927..319e32001 100644 --- a/lib/pangea/widgets/animations/progress_bar/animated_level_dart.dart +++ b/lib/pangea/widgets/animations/progress_bar/animated_level_dart.dart @@ -1,6 +1,7 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; -import 'package:flutter/material.dart'; class AnimatedLevelBar extends StatefulWidget { final double height; @@ -91,7 +92,7 @@ class AnimatedLevelBarState extends State ), boxShadow: [ BoxShadow( - color: Colors.black.withOpacity(0.2), + color: Colors.black.withAlpha(50), spreadRadius: 0, blurRadius: 5, offset: const Offset(5, 0), diff --git a/lib/pangea/widgets/animations/progress_bar/level_bar.dart b/lib/pangea/widgets/animations/progress_bar/level_bar.dart index b323d3660..e94d5ce6b 100644 --- a/lib/pangea/widgets/animations/progress_bar/level_bar.dart +++ b/lib/pangea/widgets/animations/progress_bar/level_bar.dart @@ -1,7 +1,8 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/widgets/animations/progress_bar/animated_level_dart.dart'; import 'package:fluffychat/pangea/widgets/animations/progress_bar/progress_bar_details.dart'; -import 'package:flutter/material.dart'; class LevelBar extends StatefulWidget { final LevelBarDetails details; diff --git a/lib/pangea/widgets/animations/progress_bar/progress_bar.dart b/lib/pangea/widgets/animations/progress_bar/progress_bar.dart index ed517ca20..9a78cb080 100644 --- a/lib/pangea/widgets/animations/progress_bar/progress_bar.dart +++ b/lib/pangea/widgets/animations/progress_bar/progress_bar.dart @@ -1,7 +1,8 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/widgets/animations/progress_bar/level_bar.dart'; import 'package:fluffychat/pangea/widgets/animations/progress_bar/progress_bar_background.dart'; import 'package:fluffychat/pangea/widgets/animations/progress_bar/progress_bar_details.dart'; -import 'package:flutter/material.dart'; // Provide an order list of level indicators, each with it's color // and stream. Also provide an overall width and pointsPerLevel. @@ -30,7 +31,7 @@ class ProgressBarState extends State { get progressBarDetails => ProgressBarDetails( totalWidth: width, - borderColor: Theme.of(context).colorScheme.primary.withOpacity(0.5), + borderColor: Theme.of(context).colorScheme.primary.withAlpha(128), height: widget.height ?? 14, ); diff --git a/lib/pangea/widgets/animations/progress_bar/progress_bar_background.dart b/lib/pangea/widgets/animations/progress_bar/progress_bar_background.dart index d052e1c5d..48498a179 100644 --- a/lib/pangea/widgets/animations/progress_bar/progress_bar_background.dart +++ b/lib/pangea/widgets/animations/progress_bar/progress_bar_background.dart @@ -1,6 +1,7 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/widgets/animations/progress_bar/progress_bar_details.dart'; -import 'package:flutter/material.dart'; class ProgressBarBackground extends StatelessWidget { final ProgressBarDetails details; @@ -19,7 +20,7 @@ class ProgressBarBackground extends StatelessWidget { borderRadius: const BorderRadius.all( Radius.circular(AppConfig.borderRadius), ), - color: details.borderColor.withOpacity(0.2), + color: details.borderColor.withAlpha(50), ), ); } diff --git a/lib/pangea/widgets/chat/add_room_dialog.dart b/lib/pangea/widgets/chat/add_room_dialog.dart index cce1e0a81..f798d99eb 100644 --- a/lib/pangea/widgets/chat/add_room_dialog.dart +++ b/lib/pangea/widgets/chat/add_room_dialog.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart' as matrix; import 'package:matrix/matrix.dart'; diff --git a/lib/pangea/widgets/chat/chat_floating_action_button.dart b/lib/pangea/widgets/chat/chat_floating_action_button.dart index ce4128700..e6f272e86 100644 --- a/lib/pangea/widgets/chat/chat_floating_action_button.dart +++ b/lib/pangea/widgets/chat/chat_floating_action_button.dart @@ -1,10 +1,11 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pangea/choreographer/widgets/has_error_button.dart'; import 'package:fluffychat/pangea/choreographer/widgets/language_permissions_warning_buttons.dart'; import 'package:fluffychat/pangea/models/space_model.dart'; -import 'package:flutter/material.dart'; class ChatFloatingActionButton extends StatefulWidget { final ChatController controller; diff --git a/lib/pangea/widgets/chat/chat_list_view_body_wrapper.dart b/lib/pangea/widgets/chat/chat_list_view_body_wrapper.dart index 647aa1c5f..a721c5921 100644 --- a/lib/pangea/widgets/chat/chat_list_view_body_wrapper.dart +++ b/lib/pangea/widgets/chat/chat_list_view_body_wrapper.dart @@ -1,8 +1,10 @@ +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pages/chat_list/chat_list_body.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; /// The ChatListBody often appears to load forever if prevBatch is null when it first loads. /// This wrapper triggers a rebuild when the client has finished its first sync. diff --git a/lib/pangea/widgets/chat/chat_view_background.dart b/lib/pangea/widgets/chat/chat_view_background.dart index 001a9a3ae..49ca75807 100644 --- a/lib/pangea/widgets/chat/chat_view_background.dart +++ b/lib/pangea/widgets/chat/chat_view_background.dart @@ -1,9 +1,10 @@ import 'dart:async'; import 'dart:ui'; -import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; + class ChatViewBackground extends StatefulWidget { final Choreographer choreographer; const ChatViewBackground({ diff --git a/lib/pangea/widgets/chat/input_bar_wrapper.dart b/lib/pangea/widgets/chat/input_bar_wrapper.dart index 6c6f80218..f9e78f100 100644 --- a/lib/pangea/widgets/chat/input_bar_wrapper.dart +++ b/lib/pangea/widgets/chat/input_bar_wrapper.dart @@ -1,9 +1,10 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/chat_input_row.dart'; import 'package:fluffychat/pangea/widgets/igc/pangea_text_controller.dart'; -import 'package:flutter/material.dart'; class ChatInputRowWrapper extends StatefulWidget { final ChatController controller; diff --git a/lib/pangea/widgets/chat/locked_chat_message.dart b/lib/pangea/widgets/chat/locked_chat_message.dart index 451ca343e..2af14e0a1 100644 --- a/lib/pangea/widgets/chat/locked_chat_message.dart +++ b/lib/pangea/widgets/chat/locked_chat_message.dart @@ -1,7 +1,9 @@ -import 'package:fluffychat/config/app_config.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/config/app_config.dart'; + class LockedChatMessage extends StatelessWidget { const LockedChatMessage({super.key}); diff --git a/lib/pangea/widgets/chat/message_audio_card.dart b/lib/pangea/widgets/chat/message_audio_card.dart index e2ef52ced..4ebbc9ffc 100644 --- a/lib/pangea/widgets/chat/message_audio_card.dart +++ b/lib/pangea/widgets/chat/message_audio_card.dart @@ -1,6 +1,11 @@ import 'dart:developer'; import 'dart:math'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat/events/audio_player.dart'; import 'package:fluffychat/pangea/controllers/text_to_speech_controller.dart'; @@ -12,9 +17,6 @@ import 'package:fluffychat/pangea/widgets/chat/message_selection_overlay.dart'; import 'package:fluffychat/pangea/widgets/chat/toolbar_content_loading_indicator.dart'; import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart'; import 'package:fluffychat/pangea/widgets/igc/card_error_widget.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; class MessageAudioCard extends StatefulWidget { final PangeaMessageEvent messageEvent; diff --git a/lib/pangea/widgets/chat/message_buttons.dart b/lib/pangea/widgets/chat/message_buttons.dart index 1fa8883df..810b8d4cc 100644 --- a/lib/pangea/widgets/chat/message_buttons.dart +++ b/lib/pangea/widgets/chat/message_buttons.dart @@ -1,8 +1,10 @@ +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pangea/enum/message_mode_enum.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; class MessageButtons extends StatelessWidget { final ChatController controller; @@ -65,10 +67,10 @@ class HoverIconButton extends StatefulWidget { }); @override - _HoverIconButtonState createState() => _HoverIconButtonState(); + HoverIconButtonState createState() => HoverIconButtonState(); } -class _HoverIconButtonState extends State { +class HoverIconButtonState extends State { bool _isHovered = false; @override diff --git a/lib/pangea/widgets/chat/message_context_menu.dart b/lib/pangea/widgets/chat/message_context_menu.dart index fed4a49dd..ef8f670db 100644 --- a/lib/pangea/widgets/chat/message_context_menu.dart +++ b/lib/pangea/widgets/chat/message_context_menu.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; class MessageContextMenu { @@ -36,7 +37,10 @@ class MessageContextMenu { return 0; }); return MessageContextMenu.customToolbarOptions( - context, onDefine, onListen) + + context, + onDefine, + onListen, + ) + menuItems; } diff --git a/lib/pangea/widgets/chat/message_selection_overlay.dart b/lib/pangea/widgets/chat/message_selection_overlay.dart index 498d37427..c9afa7f8c 100644 --- a/lib/pangea/widgets/chat/message_selection_overlay.dart +++ b/lib/pangea/widgets/chat/message_selection_overlay.dart @@ -1,6 +1,12 @@ import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; + import 'package:collection/collection.dart'; +import 'package:matrix/matrix.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/config/themes.dart'; @@ -20,10 +26,6 @@ import 'package:fluffychat/pangea/widgets/chat/overlay_header.dart'; import 'package:fluffychat/pangea/widgets/chat/overlay_message.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/scheduler.dart'; -import 'package:matrix/matrix.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; class MessageSelectionOverlay extends StatefulWidget { final ChatController chatController; diff --git a/lib/pangea/widgets/chat/message_speech_to_text_card.dart b/lib/pangea/widgets/chat/message_speech_to_text_card.dart index 5ce94c152..00fb29a6f 100644 --- a/lib/pangea/widgets/chat/message_speech_to_text_card.dart +++ b/lib/pangea/widgets/chat/message_speech_to_text_card.dart @@ -1,5 +1,12 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:material_symbols_icons/symbols.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/enum/instructions_enum.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; @@ -10,12 +17,6 @@ import 'package:fluffychat/pangea/widgets/chat/toolbar_content_loading_indicator import 'package:fluffychat/pangea/widgets/common/icon_number_widget.dart'; import 'package:fluffychat/pangea/widgets/igc/card_error_widget.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/gestures.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:material_symbols_icons/symbols.dart'; - import '../../utils/bot_style.dart'; class MessageSpeechToTextCard extends StatefulWidget { diff --git a/lib/pangea/widgets/chat/message_token_text.dart b/lib/pangea/widgets/chat/message_token_text.dart index 174d5b510..6016c5cad 100644 --- a/lib/pangea/widgets/chat/message_token_text.dart +++ b/lib/pangea/widgets/chat/message_token_text.dart @@ -1,11 +1,13 @@ +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; + import 'package:fluffychat/pangea/controllers/message_analytics_controller.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/utils/message_text_util.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/gestures.dart'; -import 'package:flutter/material.dart'; /// Question - does this need to be stateful or does this work? /// Need to test. @@ -186,8 +188,8 @@ class MessageTextWidget extends StatelessWidget { TextStyle( backgroundColor: tokenPosition.highlight ? Theme.of(context).brightness == Brightness.light - ? Colors.black.withOpacity(0.4) - : Colors.white.withOpacity(0.4) + ? Colors.black.withAlpha(100) + : Colors.white.withAlpha(100) : Colors.transparent, ), ), diff --git a/lib/pangea/widgets/chat/message_toolbar.dart b/lib/pangea/widgets/chat/message_toolbar.dart index 8497e1739..c0b940fbf 100644 --- a/lib/pangea/widgets/chat/message_toolbar.dart +++ b/lib/pangea/widgets/chat/message_toolbar.dart @@ -1,3 +1,8 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix_api_lite/model/message_types.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/enum/message_mode_enum.dart'; @@ -12,9 +17,6 @@ import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart'; import 'package:fluffychat/pangea/widgets/practice_activity/practice_activity_card.dart'; import 'package:fluffychat/pangea/widgets/word_zoom/word_zoom_widget.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix_api_lite/model/message_types.dart'; const double minCardHeight = 70; diff --git a/lib/pangea/widgets/chat/message_toolbar_buttons.dart b/lib/pangea/widgets/chat/message_toolbar_buttons.dart index d4917f286..8d056f0fd 100644 --- a/lib/pangea/widgets/chat/message_toolbar_buttons.dart +++ b/lib/pangea/widgets/chat/message_toolbar_buttons.dart @@ -1,15 +1,17 @@ import 'dart:math'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + import 'package:collection/collection.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/enum/message_mode_enum.dart'; import 'package:fluffychat/pangea/widgets/chat/message_selection_overlay.dart'; import 'package:fluffychat/pangea/widgets/pressable_button.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:matrix/matrix.dart'; class ToolbarButtons extends StatelessWidget { final Event event; diff --git a/lib/pangea/widgets/chat/message_toolbar_selection_area.dart b/lib/pangea/widgets/chat/message_toolbar_selection_area.dart index 03b5db0fd..e5d2dc7fb 100644 --- a/lib/pangea/widgets/chat/message_toolbar_selection_area.dart +++ b/lib/pangea/widgets/chat/message_toolbar_selection_area.dart @@ -1,7 +1,9 @@ +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; class ToolbarSelectionArea extends StatelessWidget { final Event event; diff --git a/lib/pangea/widgets/chat/message_translation_card.dart b/lib/pangea/widgets/chat/message_translation_card.dart index 49ba2a9f4..5d5a62e85 100644 --- a/lib/pangea/widgets/chat/message_translation_card.dart +++ b/lib/pangea/widgets/chat/message_translation_card.dart @@ -1,3 +1,5 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/enum/instructions_enum.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; @@ -9,7 +11,6 @@ import 'package:fluffychat/pangea/utils/inline_tooltip.dart'; import 'package:fluffychat/pangea/widgets/chat/toolbar_content_loading_indicator.dart'; import 'package:fluffychat/pangea/widgets/igc/card_error_widget.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; class MessageTranslationCard extends StatefulWidget { final PangeaMessageEvent messageEvent; diff --git a/lib/pangea/widgets/chat/message_unsubscribed_card.dart b/lib/pangea/widgets/chat/message_unsubscribed_card.dart index 91f13ea7f..143e33f2e 100644 --- a/lib/pangea/widgets/chat/message_unsubscribed_card.dart +++ b/lib/pangea/widgets/chat/message_unsubscribed_card.dart @@ -1,9 +1,11 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/utils/bot_style.dart'; import 'package:fluffychat/pangea/widgets/chat/message_selection_overlay.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class MessageUnsubscribedCard extends StatelessWidget { final MessageOverlayController controller; @@ -39,7 +41,7 @@ class MessageUnsubscribedCard extends StatelessWidget { }, style: ButtonStyle( backgroundColor: WidgetStateProperty.all( - (AppConfig.primaryColor).withOpacity(0.1), + (AppConfig.primaryColor).withAlpha(25), ), ), child: Text(L10n.of(context).activateTrial), @@ -57,7 +59,7 @@ class MessageUnsubscribedCard extends StatelessWidget { }, style: ButtonStyle( backgroundColor: WidgetStateProperty.all( - (AppConfig.primaryColor).withOpacity(0.1), + (AppConfig.primaryColor).withAlpha(25), ), ), child: Text(L10n.of(context).getAccess), diff --git a/lib/pangea/widgets/chat/missing_voice_button.dart b/lib/pangea/widgets/chat/missing_voice_button.dart index 0a08cc39e..37424f4af 100644 --- a/lib/pangea/widgets/chat/missing_voice_button.dart +++ b/lib/pangea/widgets/chat/missing_voice_button.dart @@ -1,12 +1,14 @@ import 'dart:io'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:android_intent_plus/android_intent.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class MissingVoiceButton extends StatelessWidget { const MissingVoiceButton({super.key}); @@ -34,7 +36,7 @@ class MissingVoiceButton extends StatelessWidget { return TextButton( style: ButtonStyle( backgroundColor: WidgetStateProperty.all( - AppConfig.primaryColor.withOpacity(0.1), + AppConfig.primaryColor.withAlpha(25), ), ), onPressed: () async { diff --git a/lib/pangea/widgets/chat/overlay_footer.dart b/lib/pangea/widgets/chat/overlay_footer.dart index b0efa0450..7862c7fc2 100644 --- a/lib/pangea/widgets/chat/overlay_footer.dart +++ b/lib/pangea/widgets/chat/overlay_footer.dart @@ -1,9 +1,10 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/chat_input_row.dart'; import 'package:fluffychat/pangea/widgets/chat/message_selection_overlay.dart'; -import 'package:flutter/material.dart'; class OverlayFooter extends StatelessWidget { final ChatController controller; diff --git a/lib/pangea/widgets/chat/overlay_header.dart b/lib/pangea/widgets/chat/overlay_header.dart index 660fdb832..ff98d8b03 100644 --- a/lib/pangea/widgets/chat/overlay_header.dart +++ b/lib/pangea/widgets/chat/overlay_header.dart @@ -1,10 +1,12 @@ -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/pages/chat/chat.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:material_symbols_icons/symbols.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pages/chat/chat.dart'; + class OverlayHeader extends StatelessWidget { final ChatController controller; diff --git a/lib/pangea/widgets/chat/overlay_message.dart b/lib/pangea/widgets/chat/overlay_message.dart index c10c329ff..12da4a663 100644 --- a/lib/pangea/widgets/chat/overlay_message.dart +++ b/lib/pangea/widgets/chat/overlay_message.dart @@ -1,3 +1,7 @@ +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/events/message_content.dart'; @@ -6,8 +10,6 @@ import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dar import 'package:fluffychat/pangea/widgets/chat/message_selection_overlay.dart'; import 'package:fluffychat/utils/date_time_extension.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; // @ggurdin be great to explain the need/function of a widget like this class OverlayMessage extends StatelessWidget { diff --git a/lib/pangea/widgets/chat/pangea_reaction_picker.dart b/lib/pangea/widgets/chat/pangea_reaction_picker.dart index 4da5f6ace..336e5b122 100644 --- a/lib/pangea/widgets/chat/pangea_reaction_picker.dart +++ b/lib/pangea/widgets/chat/pangea_reaction_picker.dart @@ -1,10 +1,12 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_emojis.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/widgets/chat/message_selection_overlay.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; class PangeaReactionsPicker extends StatelessWidget { final ChatController controller; diff --git a/lib/pangea/widgets/chat/speech_to_text_text.dart b/lib/pangea/widgets/chat/speech_to_text_text.dart index 56b436ee6..a6e14b7b4 100644 --- a/lib/pangea/widgets/chat/speech_to_text_text.dart +++ b/lib/pangea/widgets/chat/speech_to_text_text.dart @@ -1,6 +1,7 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/models/speech_to_text_models.dart'; import 'package:fluffychat/pangea/utils/bot_style.dart'; -import 'package:flutter/material.dart'; class SpeechToTextText extends StatelessWidget { final Transcript transcript; diff --git a/lib/pangea/widgets/chat/toolbar_content_loading_indicator.dart b/lib/pangea/widgets/chat/toolbar_content_loading_indicator.dart index 363a912e6..38a11eae5 100644 --- a/lib/pangea/widgets/chat/toolbar_content_loading_indicator.dart +++ b/lib/pangea/widgets/chat/toolbar_content_loading_indicator.dart @@ -1,6 +1,7 @@ -import 'package:fluffychat/config/app_config.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/config/app_config.dart'; + class ToolbarContentLoadingIndicator extends StatelessWidget { const ToolbarContentLoadingIndicator({ super.key, diff --git a/lib/pangea/widgets/chat/tts_controller.dart b/lib/pangea/widgets/chat/tts_controller.dart index 4b5130f41..e89fbdf51 100644 --- a/lib/pangea/widgets/chat/tts_controller.dart +++ b/lib/pangea/widgets/chat/tts_controller.dart @@ -1,17 +1,19 @@ import 'dart:async'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_tts/flutter_tts.dart' as flutter_tts; +import 'package:matrix/matrix_api_lite/utils/logs.dart'; +import 'package:text_to_speech/text_to_speech.dart'; + import 'package:fluffychat/pangea/controllers/user_controller.dart'; import 'package:fluffychat/pangea/enum/instructions_enum.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/widgets/chat/missing_voice_button.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_tts/flutter_tts.dart' as flutter_tts; -import 'package:matrix/matrix_api_lite/utils/logs.dart'; -import 'package:text_to_speech/text_to_speech.dart'; class TtsController { String? get targetLanguage => @@ -251,7 +253,3 @@ class TtsController { bool get isLanguageFullySupported => _availableLangCodes.contains(targetLanguage); } - -extension on (Future,) { - timeout(Duration duration, {required Null Function() onTimeout}) {} -} diff --git a/lib/pangea/widgets/chat/visibility_toggle.dart b/lib/pangea/widgets/chat/visibility_toggle.dart index 5abce5f5f..57180fcfc 100644 --- a/lib/pangea/widgets/chat/visibility_toggle.dart +++ b/lib/pangea/widgets/chat/visibility_toggle.dart @@ -1,10 +1,12 @@ -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart' as matrix; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/widgets/matrix.dart'; + class VisibilityToggle extends StatelessWidget { final Room? room; final Color? iconColor; diff --git a/lib/pangea/widgets/chat_list/analytics_summary/analytics_popup/analytics_popup.dart b/lib/pangea/widgets/chat_list/analytics_summary/analytics_popup/analytics_popup.dart index efe2dfcad..ebd5dabfd 100644 --- a/lib/pangea/widgets/chat_list/analytics_summary/analytics_popup/analytics_popup.dart +++ b/lib/pangea/widgets/chat_list/analytics_summary/analytics_popup/analytics_popup.dart @@ -1,11 +1,13 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:fluffychat/pangea/enum/progress_indicators_enum.dart'; import 'package:fluffychat/pangea/models/analytics/construct_list_model.dart'; import 'package:fluffychat/pangea/models/analytics/construct_use_model.dart'; import 'package:fluffychat/pangea/widgets/chat_list/analytics_summary/analytics_popup/analytics_xp_tile.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class AnalyticsPopup extends StatefulWidget { final ConstructTypeEnum type; diff --git a/lib/pangea/widgets/chat_list/analytics_summary/analytics_popup/analytics_xp_tile.dart b/lib/pangea/widgets/chat_list/analytics_summary/analytics_popup/analytics_xp_tile.dart index 13440c695..66cb57527 100644 --- a/lib/pangea/widgets/chat_list/analytics_summary/analytics_popup/analytics_xp_tile.dart +++ b/lib/pangea/widgets/chat_list/analytics_summary/analytics_popup/analytics_xp_tile.dart @@ -1,9 +1,10 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:fluffychat/pangea/enum/progress_indicators_enum.dart'; import 'package:fluffychat/pangea/models/analytics/construct_use_model.dart'; import 'package:fluffychat/pangea/utils/grammar/get_grammar_copy.dart'; -import 'package:flutter/material.dart'; class ConstructUsesXPTile extends StatelessWidget { final ConstructUses constructUses; diff --git a/lib/pangea/widgets/chat_list/analytics_summary/learning_progress_bar.dart b/lib/pangea/widgets/chat_list/analytics_summary/learning_progress_bar.dart index f3a9e7fcc..74cbf315d 100644 --- a/lib/pangea/widgets/chat_list/analytics_summary/learning_progress_bar.dart +++ b/lib/pangea/widgets/chat_list/analytics_summary/learning_progress_bar.dart @@ -1,7 +1,8 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/widgets/animations/progress_bar/progress_bar.dart'; import 'package:fluffychat/pangea/widgets/animations/progress_bar/progress_bar_details.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; class LearningProgressBar extends StatelessWidget { final int level; diff --git a/lib/pangea/widgets/chat_list/analytics_summary/learning_progress_indicators.dart b/lib/pangea/widgets/chat_list/analytics_summary/learning_progress_indicators.dart index 37321701c..da8859dbd 100644 --- a/lib/pangea/widgets/chat_list/analytics_summary/learning_progress_indicators.dart +++ b/lib/pangea/widgets/chat_list/analytics_summary/learning_progress_indicators.dart @@ -1,5 +1,9 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pages/chat_list/client_chooser_button.dart'; import 'package:fluffychat/pangea/controllers/get_analytics_controller.dart'; import 'package:fluffychat/pangea/enum/progress_indicators_enum.dart'; @@ -12,8 +16,6 @@ import 'package:fluffychat/pangea/widgets/chat_list/analytics_summary/level_badg import 'package:fluffychat/pangea/widgets/chat_list/analytics_summary/level_bar_popup.dart'; import 'package:fluffychat/pangea/widgets/chat_list/analytics_summary/progress_indicator.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; /// A summary of "My Analytics" shown at the top of the chat list /// It shows a variety of progress indicators such as diff --git a/lib/pangea/widgets/chat_list/analytics_summary/learning_settings_button.dart b/lib/pangea/widgets/chat_list/analytics_summary/learning_settings_button.dart index 7d8e6e0b7..3eba99953 100644 --- a/lib/pangea/widgets/chat_list/analytics_summary/learning_settings_button.dart +++ b/lib/pangea/widgets/chat_list/analytics_summary/learning_settings_button.dart @@ -1,7 +1,9 @@ -import 'package:fluffychat/pangea/widgets/pressable_button.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/widgets/pressable_button.dart'; + /// A badge that represents one learning progress indicator (i.e., construct uses) class LearningSettingsButton extends StatelessWidget { final String? l2; diff --git a/lib/pangea/widgets/chat_list/analytics_summary/level_badge.dart b/lib/pangea/widgets/chat_list/analytics_summary/level_badge.dart index 1254ebfe4..9643d75b4 100644 --- a/lib/pangea/widgets/chat_list/analytics_summary/level_badge.dart +++ b/lib/pangea/widgets/chat_list/analytics_summary/level_badge.dart @@ -1,8 +1,10 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/widgets/chat_list/analytics_summary/level_bar_popup.dart'; import 'package:fluffychat/pangea/widgets/pressable_button.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class LevelBadge extends StatelessWidget { final int level; diff --git a/lib/pangea/widgets/chat_list/analytics_summary/level_bar_popup.dart b/lib/pangea/widgets/chat_list/analytics_summary/level_bar_popup.dart index fdf556820..bf35b215e 100644 --- a/lib/pangea/widgets/chat_list/analytics_summary/level_bar_popup.dart +++ b/lib/pangea/widgets/chat_list/analytics_summary/level_bar_popup.dart @@ -1,3 +1,7 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/get_analytics_controller.dart'; import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; @@ -6,8 +10,6 @@ import 'package:fluffychat/pangea/models/analytics/constructs_model.dart'; import 'package:fluffychat/pangea/utils/grammar/get_grammar_copy.dart'; import 'package:fluffychat/pangea/widgets/chat_list/analytics_summary/learning_progress_bar.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class LevelBarPopup extends StatelessWidget { const LevelBarPopup({ diff --git a/lib/pangea/widgets/chat_list/analytics_summary/progress_indicator.dart b/lib/pangea/widgets/chat_list/analytics_summary/progress_indicator.dart index 1dcbc8344..bcacbb733 100644 --- a/lib/pangea/widgets/chat_list/analytics_summary/progress_indicator.dart +++ b/lib/pangea/widgets/chat_list/analytics_summary/progress_indicator.dart @@ -1,6 +1,7 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/enum/progress_indicators_enum.dart'; import 'package:fluffychat/pangea/widgets/pressable_button.dart'; -import 'package:flutter/material.dart'; /// A badge that represents one learning progress indicator (i.e., construct uses) class ProgressIndicatorBadge extends StatelessWidget { 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 6637d5204..aec056de6 100644 --- a/lib/pangea/widgets/chat_list/chat_list_body_text.dart +++ b/lib/pangea/widgets/chat_list/chat_list_body_text.dart @@ -1,7 +1,8 @@ -import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import '../../../pages/chat_list/chat_list.dart'; import '../../../widgets/matrix.dart'; import '../../extensions/pangea_room_extension/pangea_room_extension.dart'; diff --git a/lib/pangea/widgets/chat_list/pangea_chat_list_header.dart b/lib/pangea/widgets/chat_list/pangea_chat_list_header.dart index d581827bf..9f8881586 100644 --- a/lib/pangea/widgets/chat_list/pangea_chat_list_header.dart +++ b/lib/pangea/widgets/chat_list/pangea_chat_list_header.dart @@ -1,7 +1,9 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pangea/widgets/chat_list/analytics_summary/learning_progress_indicators.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class PangeaChatListHeader extends StatelessWidget implements PreferredSizeWidget { diff --git a/lib/pangea/widgets/class/join_with_link.dart b/lib/pangea/widgets/class/join_with_link.dart index fbfbf331d..6c44cb517 100644 --- a/lib/pangea/widgets/class/join_with_link.dart +++ b/lib/pangea/widgets/class/join_with_link.dart @@ -1,10 +1,12 @@ +import 'package:flutter/material.dart'; + +import 'package:go_router/go_router.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/constants/url_query_parameter_keys.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; -import 'package:sentry_flutter/sentry_flutter.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 diff --git a/lib/pangea/widgets/common/bot_face_svg.dart b/lib/pangea/widgets/common/bot_face_svg.dart index 13eac0298..10376445f 100644 --- a/lib/pangea/widgets/common/bot_face_svg.dart +++ b/lib/pangea/widgets/common/bot_face_svg.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:math'; import 'package:flutter/material.dart'; + import 'package:rive/rive.dart'; enum BotExpression { gold, nonGold, addled, idle, surprised } diff --git a/lib/pangea/widgets/common/pangea_logo_svg.dart b/lib/pangea/widgets/common/pangea_logo_svg.dart index 485f08b65..c1e30678c 100644 --- a/lib/pangea/widgets/common/pangea_logo_svg.dart +++ b/lib/pangea/widgets/common/pangea_logo_svg.dart @@ -14,10 +14,13 @@ class PangeaLogoSvg extends StatelessWidget { 'assets/pangea/pangea_logo.svg', width: width, height: width, - color: forceColor ?? - (Theme.of(context).brightness == Brightness.light - ? Theme.of(context).colorScheme.primary - : Theme.of(context).colorScheme.primary), + colorFilter: ColorFilter.mode( + forceColor ?? + (Theme.of(context).brightness == Brightness.light + ? Theme.of(context).colorScheme.primary + : Theme.of(context).colorScheme.primary), + BlendMode.srcIn, + ), ); } } diff --git a/lib/pangea/widgets/common_widgets/edit_list_tile.dart b/lib/pangea/widgets/common_widgets/edit_list_tile.dart deleted file mode 100644 index 38d1db883..000000000 --- a/lib/pangea/widgets/common_widgets/edit_list_tile.dart +++ /dev/null @@ -1,48 +0,0 @@ -import 'package:flutter/material.dart'; - -import '../../../widgets/avatar.dart'; - -class EditClassListTile extends StatefulWidget { - String title = ''; - Function() onTap; - String subtitle = ""; - EditClassListTile({ - super.key, - required this.title, - required this.onTap, - required this.subtitle, - }); - - @override - State createState() => _EditClassListTileState(); -} - -class _EditClassListTileState extends State { - @override - Widget build(BuildContext context) { - final iconColor = Theme.of(context).textTheme.bodyLarge!.color; - return ListTile( - leading: CircleAvatar( - backgroundColor: Theme.of(context).scaffoldBackgroundColor, - foregroundColor: iconColor, - 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, - ), - ), - subtitle: Text( - widget.subtitle, - style: TextStyle( - fontSize: 14, - color: Theme.of(context).textTheme.bodyMedium!.color, - ), - ), - onTap: widget.onTap, - ); - } -} diff --git a/lib/pangea/widgets/content_issue_button.dart b/lib/pangea/widgets/content_issue_button.dart index 55979fe6d..ba644fdb1 100644 --- a/lib/pangea/widgets/content_issue_button.dart +++ b/lib/pangea/widgets/content_issue_button.dart @@ -1,7 +1,9 @@ -import 'package:fluffychat/pangea/widgets/common/bot_face_svg.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/widgets/common/bot_face_svg.dart'; + class ContentIssueButton extends StatelessWidget { final bool isActive; final void Function(String) submitFeedback; diff --git a/lib/pangea/widgets/conversation_bot/conversation_bot_mode_dynamic_zone.dart b/lib/pangea/widgets/conversation_bot/conversation_bot_mode_dynamic_zone.dart index 5f4e1bd12..ebf7cae7b 100644 --- a/lib/pangea/widgets/conversation_bot/conversation_bot_mode_dynamic_zone.dart +++ b/lib/pangea/widgets/conversation_bot/conversation_bot_mode_dynamic_zone.dart @@ -1,7 +1,9 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/constants/bot_mode.dart'; import 'package:fluffychat/pangea/widgets/conversation_bot/conversation_bot_no_permission_dialog.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class ConversationBotModeDynamicZone extends StatelessWidget { final String? mode; diff --git a/lib/pangea/widgets/conversation_bot/conversation_bot_mode_select.dart b/lib/pangea/widgets/conversation_bot/conversation_bot_mode_select.dart index dbc32b1eb..3ca5f1be1 100644 --- a/lib/pangea/widgets/conversation_bot/conversation_bot_mode_select.dart +++ b/lib/pangea/widgets/conversation_bot/conversation_bot_mode_select.dart @@ -1,8 +1,10 @@ -import 'package:dropdown_button2/dropdown_button2.dart'; -import 'package:fluffychat/pangea/constants/bot_mode.dart'; import 'package:flutter/material.dart'; + +import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/constants/bot_mode.dart'; + class ConversationBotModeSelect extends StatelessWidget { final String? initialMode; final void Function(String?)? onChanged; diff --git a/lib/pangea/widgets/conversation_bot/conversation_bot_no_permission_dialog.dart b/lib/pangea/widgets/conversation_bot/conversation_bot_no_permission_dialog.dart index 4ec90782b..3a25d1376 100644 --- a/lib/pangea/widgets/conversation_bot/conversation_bot_no_permission_dialog.dart +++ b/lib/pangea/widgets/conversation_bot/conversation_bot_no_permission_dialog.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; Future showNoPermissionDialog(BuildContext context) { diff --git a/lib/pangea/widgets/conversation_bot/conversation_bot_settings.dart b/lib/pangea/widgets/conversation_bot/conversation_bot_settings.dart index 6775bb24d..db0a8e602 100644 --- a/lib/pangea/widgets/conversation_bot/conversation_bot_settings.dart +++ b/lib/pangea/widgets/conversation_bot/conversation_bot_settings.dart @@ -1,5 +1,11 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/constants/bot_mode.dart'; import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; @@ -11,10 +17,6 @@ import 'package:fluffychat/pangea/widgets/common/bot_face_svg.dart'; import 'package:fluffychat/pangea/widgets/conversation_bot/conversation_bot_no_permission_dialog.dart'; import 'package:fluffychat/pangea/widgets/conversation_bot/conversation_bot_settings_form.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; class ConversationBotSettings extends StatefulWidget { final Room room; diff --git a/lib/pangea/widgets/conversation_bot/conversation_bot_settings_form.dart b/lib/pangea/widgets/conversation_bot/conversation_bot_settings_form.dart index 93e9b890e..9f90338be 100644 --- a/lib/pangea/widgets/conversation_bot/conversation_bot_settings_form.dart +++ b/lib/pangea/widgets/conversation_bot/conversation_bot_settings_form.dart @@ -1,12 +1,14 @@ +import 'package:flutter/material.dart'; + import 'package:dropdown_button2/dropdown_button2.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/models/bot_options_model.dart'; import 'package:fluffychat/pangea/widgets/conversation_bot/conversation_bot_mode_dynamic_zone.dart'; import 'package:fluffychat/pangea/widgets/conversation_bot/conversation_bot_mode_select.dart'; import 'package:fluffychat/pangea/widgets/conversation_bot/conversation_bot_no_permission_dialog.dart'; import 'package:fluffychat/pangea/widgets/space/language_level_dropdown.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class ConversationBotSettingsForm extends StatelessWidget { final BotOptionsModel botOptions; diff --git a/lib/pangea/widgets/conversation_bot/conversation_bot_text_adventure_game_master_instruction_input.dart b/lib/pangea/widgets/conversation_bot/conversation_bot_text_adventure_game_master_instruction_input.dart index 68fe10121..c24d5841c 100644 --- a/lib/pangea/widgets/conversation_bot/conversation_bot_text_adventure_game_master_instruction_input.dart +++ b/lib/pangea/widgets/conversation_bot/conversation_bot_text_adventure_game_master_instruction_input.dart @@ -1,7 +1,9 @@ -import 'package:fluffychat/pangea/models/bot_options_model.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/models/bot_options_model.dart'; + class ConversationBotGameMasterInstructionsInput extends StatelessWidget { final BotOptionsModel initialBotOptions; // call this to update propagate changes to parents diff --git a/lib/pangea/widgets/conversation_bot/conversation_bot_text_adventure_zone.dart b/lib/pangea/widgets/conversation_bot/conversation_bot_text_adventure_zone.dart index ed2c41486..aa004962e 100644 --- a/lib/pangea/widgets/conversation_bot/conversation_bot_text_adventure_zone.dart +++ b/lib/pangea/widgets/conversation_bot/conversation_bot_text_adventure_zone.dart @@ -1,6 +1,7 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/models/bot_options_model.dart'; import 'package:fluffychat/pangea/widgets/conversation_bot/conversation_bot_text_adventure_game_master_instruction_input.dart'; -import 'package:flutter/material.dart'; // TODO check how this looks class ConversationBotTextAdventureZone extends StatelessWidget { diff --git a/lib/pangea/widgets/flag.dart b/lib/pangea/widgets/flag.dart index 08327530d..0b8e6526b 100644 --- a/lib/pangea/widgets/flag.dart +++ b/lib/pangea/widgets/flag.dart @@ -18,37 +18,5 @@ class LanguageFlag extends StatelessWidget { name: language?.langCode, size: size, ); - - // return Center( - // child: Container( - // decoration: BoxDecoration( - // borderRadius: BorderRadius.circular(size / 2), - // boxShadow: [ - // BoxShadow( - // color: Colors.grey.withOpacity(0.2), - // spreadRadius: 1, - // blurRadius: 15, - // offset: const Offset(0, 4), // changes position of shadow - // ), - // ], - // ), - // child: ClipRRect( - // borderRadius: BorderRadius.circular(50), - // child: SizedBox( - // height: size, - // width: size, - // child: language?.languageFlag != null - // ? language!.languageFlag.contains("media/flags") - // ? Image.network(language!.languageFlag) - // : Image.asset( - // language!.languageFlag, - // width: size, - // height: size, - // ) - // : const SizedBox.expand(), - // ), - // ), - // ), - // ); } } diff --git a/lib/pangea/widgets/igc/card_error_widget.dart b/lib/pangea/widgets/igc/card_error_widget.dart index f8d13bf90..58b1e1774 100644 --- a/lib/pangea/widgets/igc/card_error_widget.dart +++ b/lib/pangea/widgets/igc/card_error_widget.dart @@ -1,9 +1,10 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; import 'package:fluffychat/pangea/utils/bot_style.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/widgets/common/bot_face_svg.dart'; import 'package:fluffychat/pangea/widgets/igc/card_header.dart'; -import 'package:flutter/material.dart'; class CardErrorWidget extends StatelessWidget { final Object error; diff --git a/lib/pangea/widgets/igc/card_header.dart b/lib/pangea/widgets/igc/card_header.dart index 0063c9638..152f2910d 100644 --- a/lib/pangea/widgets/igc/card_header.dart +++ b/lib/pangea/widgets/igc/card_header.dart @@ -1,8 +1,8 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/utils/bot_style.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; - import '../common/bot_face_svg.dart'; class CardHeader extends StatelessWidget { diff --git a/lib/pangea/widgets/igc/pangea_rich_text.dart b/lib/pangea/widgets/igc/pangea_rich_text.dart index f8ccc6001..fc2ae24f6 100644 --- a/lib/pangea/widgets/igc/pangea_rich_text.dart +++ b/lib/pangea/widgets/igc/pangea_rich_text.dart @@ -1,6 +1,11 @@ import 'dart:developer'; import 'dart:ui'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; @@ -10,10 +15,6 @@ import 'package:fluffychat/pangea/models/representation_content_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/widgets/chat/message_toolbar_selection_area.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; - import '../../models/pangea_match_model.dart'; class PangeaRichText extends StatefulWidget { diff --git a/lib/pangea/widgets/igc/pangea_text_controller.dart b/lib/pangea/widgets/igc/pangea_text_controller.dart index 15258667d..70eff4bb5 100644 --- a/lib/pangea/widgets/igc/pangea_text_controller.dart +++ b/lib/pangea/widgets/igc/pangea_text_controller.dart @@ -1,12 +1,12 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:fluffychat/pangea/models/igc_text_data_model.dart'; import 'package:fluffychat/pangea/widgets/igc/paywall_card.dart'; import 'package:fluffychat/pangea/widgets/igc/span_card.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; - import '../../choreographer/controllers/choreographer.dart'; import '../../enum/edit_type.dart'; import '../../models/span_card_model.dart'; diff --git a/lib/pangea/widgets/igc/paywall_card.dart b/lib/pangea/widgets/igc/paywall_card.dart index 73a269ebb..b7e1a2517 100644 --- a/lib/pangea/widgets/igc/paywall_card.dart +++ b/lib/pangea/widgets/igc/paywall_card.dart @@ -1,11 +1,13 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pangea/utils/bot_style.dart'; import 'package:fluffychat/pangea/widgets/common/bot_face_svg.dart'; import 'package:fluffychat/pangea/widgets/igc/card_header.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class PaywallCard extends StatelessWidget { final ChatController chatController; @@ -60,7 +62,7 @@ class PaywallCard extends StatelessWidget { }, style: ButtonStyle( backgroundColor: WidgetStateProperty.all( - (AppConfig.primaryColor).withOpacity(0.1), + (AppConfig.primaryColor).withAlpha(25), ), ), child: Text(L10n.of(context).activateTrial), @@ -78,31 +80,12 @@ class PaywallCard extends StatelessWidget { }, style: ButtonStyle( backgroundColor: WidgetStateProperty.all( - (AppConfig.primaryColor).withOpacity(0.1), + (AppConfig.primaryColor).withAlpha(25), ), ), child: Text(L10n.of(context).getAccess), ), ), - // const SizedBox(height: 5.0), - // SizedBox( - // width: double.infinity, - // child: TextButton( - // style: ButtonStyle( - // backgroundColor: WidgetStateProperty.all( - // AppConfig.primaryColor.withOpacity(0.1), - // ), - // ), - // onPressed: () { - // MatrixState.pangeaController.subscriptionController - // .dismissPaywall(); - // MatrixState.pAnyState.closeOverlay(); - // }, - // child: Center( - // child: Text(L10n.of(context).continuedWithoutSubscription), - // ), - // ), - // ), ], ), ), diff --git a/lib/pangea/widgets/igc/span_card.dart b/lib/pangea/widgets/igc/span_card.dart index c0308b8be..65789442a 100644 --- a/lib/pangea/widgets/igc/span_card.dart +++ b/lib/pangea/widgets/igc/span_card.dart @@ -1,5 +1,10 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/put_analytics_controller.dart'; import 'package:fluffychat/pangea/enum/construct_use_type_enum.dart'; @@ -11,10 +16,6 @@ import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/match_copy.dart'; import 'package:fluffychat/pangea/widgets/animations/gain_points.dart'; import 'package:fluffychat/pangea/widgets/igc/card_error_widget.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - import '../../../widgets/matrix.dart'; import '../../choreographer/widgets/choice_array.dart'; import '../../controllers/pangea_controller.dart'; @@ -304,7 +305,7 @@ class WordMatchContent extends StatelessWidget { child: TextButton( style: ButtonStyle( backgroundColor: WidgetStateProperty.all( - AppConfig.primaryColor.withOpacity(0.1), + AppConfig.primaryColor.withAlpha(25), ), ), onPressed: controller.onIgnoreMatch, @@ -329,7 +330,7 @@ class WordMatchContent extends StatelessWidget { (controller.selectedChoice != null ? controller.selectedChoice!.color : AppConfig.primaryColor) - .withOpacity(0.2), + .withAlpha(50), ), // Outline if Replace button enabled side: controller.selectedChoice != null @@ -359,7 +360,7 @@ class WordMatchContent extends StatelessWidget { }, style: ButtonStyle( backgroundColor: WidgetStateProperty.all( - (AppConfig.primaryColor).withOpacity(0.1), + (AppConfig.primaryColor).withAlpha(25), ), ), child: Text(L10n.of(context).helpMeTranslate), @@ -458,10 +459,10 @@ class LoadingText extends StatefulWidget { }); @override - _LoadingTextState createState() => _LoadingTextState(); + LoadingTextState createState() => LoadingTextState(); } -class _LoadingTextState extends State +class LoadingTextState extends State with SingleTickerProviderStateMixin { late final AnimationController _controller = AnimationController( duration: const Duration(seconds: 1), diff --git a/lib/pangea/widgets/igc/why_button.dart b/lib/pangea/widgets/igc/why_button.dart index ce930d83a..d0ef24cf0 100644 --- a/lib/pangea/widgets/igc/why_button.dart +++ b/lib/pangea/widgets/igc/why_button.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../../../config/app_config.dart'; @@ -19,7 +20,7 @@ class WhyButton extends StatelessWidget { onPressed: loading ? null : onPress, style: ButtonStyle( backgroundColor: WidgetStateProperty.all( - AppConfig.primaryColor.withOpacity(0.1), + AppConfig.primaryColor.withAlpha(25), ), shape: WidgetStateProperty.all( RoundedRectangleBorder( diff --git a/lib/pangea/widgets/igc/word_data_card.dart b/lib/pangea/widgets/igc/word_data_card.dart index 1353458f4..fc2d55646 100644 --- a/lib/pangea/widgets/igc/word_data_card.dart +++ b/lib/pangea/widgets/igc/word_data_card.dart @@ -1,5 +1,12 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:http/http.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/controllers/contextual_definition_controller.dart'; @@ -10,12 +17,6 @@ import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/pangea/widgets/chat/toolbar_content_loading_indicator.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:http/http.dart'; -import 'package:matrix/matrix.dart'; - import '../../models/word_data_model.dart'; import '../flag.dart'; import 'card_error_widget.dart'; diff --git a/lib/pangea/widgets/message_display_card.dart b/lib/pangea/widgets/message_display_card.dart index 8536f2c99..fd605903b 100644 --- a/lib/pangea/widgets/message_display_card.dart +++ b/lib/pangea/widgets/message_display_card.dart @@ -1,6 +1,7 @@ -import 'package:fluffychat/pangea/utils/bot_style.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/pangea/utils/bot_style.dart'; + class MessageDisplayCard extends StatelessWidget { final String displayText; diff --git a/lib/pangea/widgets/new_group/vocab_list.dart b/lib/pangea/widgets/new_group/vocab_list.dart index c685cbd6e..4943baa1d 100644 --- a/lib/pangea/widgets/new_group/vocab_list.dart +++ b/lib/pangea/widgets/new_group/vocab_list.dart @@ -1,8 +1,9 @@ -import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; +import 'package:fluffychat/widgets/matrix.dart'; import '../../models/chat_topic_model.dart'; import '../../models/lemma.dart'; import '../../repo/topic_data_repo.dart'; diff --git a/lib/pangea/widgets/practice_activity/emoji_practice_button.dart b/lib/pangea/widgets/practice_activity/emoji_practice_button.dart index cda8df4bb..9d0d2fed5 100644 --- a/lib/pangea/widgets/practice_activity/emoji_practice_button.dart +++ b/lib/pangea/widgets/practice_activity/emoji_practice_button.dart @@ -1,7 +1,8 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/widgets/practice_activity/word_zoom_activity_button.dart'; -import 'package:flutter/material.dart'; class EmojiPracticeButton extends StatelessWidget { final PangeaToken token; diff --git a/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart b/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart index adaae3869..c75338035 100644 --- a/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart +++ b/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart @@ -1,5 +1,10 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/choreographer/widgets/choice_array.dart'; import 'package:fluffychat/pangea/controllers/put_analytics_controller.dart'; @@ -14,9 +19,6 @@ import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart'; import 'package:fluffychat/pangea/widgets/practice_activity/practice_activity_card.dart'; import 'package:fluffychat/pangea/widgets/practice_activity/word_audio_button.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; /// The multiple choice activity view class MultipleChoiceActivity extends StatefulWidget { diff --git a/lib/pangea/widgets/practice_activity/no_more_practice_card.dart b/lib/pangea/widgets/practice_activity/no_more_practice_card.dart index dfefb0276..dda5443a1 100644 --- a/lib/pangea/widgets/practice_activity/no_more_practice_card.dart +++ b/lib/pangea/widgets/practice_activity/no_more_practice_card.dart @@ -1,16 +1,17 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/enum/instructions_enum.dart'; import 'package:fluffychat/pangea/utils/inline_tooltip.dart'; -import 'package:flutter/material.dart'; class StarAnimationWidget extends StatefulWidget { const StarAnimationWidget({super.key}); @override - _StarAnimationWidgetState createState() => _StarAnimationWidgetState(); + StarAnimationWidgetState createState() => StarAnimationWidgetState(); } -class _StarAnimationWidgetState extends State +class StarAnimationWidgetState extends State with SingleTickerProviderStateMixin { late AnimationController _controller; late Animation _opacityAnimation; diff --git a/lib/pangea/widgets/practice_activity/practice_activity_card.dart b/lib/pangea/widgets/practice_activity/practice_activity_card.dart index a491aa13a..f2d9ec9d3 100644 --- a/lib/pangea/widgets/practice_activity/practice_activity_card.dart +++ b/lib/pangea/widgets/practice_activity/practice_activity_card.dart @@ -1,7 +1,11 @@ import 'dart:async'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; + import 'package:fluffychat/pangea/controllers/message_analytics_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/controllers/put_analytics_controller.dart'; @@ -22,8 +26,6 @@ import 'package:fluffychat/pangea/widgets/igc/card_error_widget.dart'; import 'package:fluffychat/pangea/widgets/practice_activity/multiple_choice_activity.dart'; import 'package:fluffychat/pangea/widgets/word_zoom/word_zoom_widget.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; /// The wrapper for practice activity content. /// Handles the activities associated with a message, diff --git a/lib/pangea/widgets/practice_activity/word_audio_button.dart b/lib/pangea/widgets/practice_activity/word_audio_button.dart index 3ee582bd0..b3f54d161 100644 --- a/lib/pangea/widgets/practice_activity/word_audio_button.dart +++ b/lib/pangea/widgets/practice_activity/word_audio_button.dart @@ -1,7 +1,9 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class WordAudioButton extends StatefulWidget { final String text; diff --git a/lib/pangea/widgets/practice_activity/word_focus_listening_activity.dart b/lib/pangea/widgets/practice_activity/word_focus_listening_activity.dart index 112abce16..fcf643f96 100644 --- a/lib/pangea/widgets/practice_activity/word_focus_listening_activity.dart +++ b/lib/pangea/widgets/practice_activity/word_focus_listening_activity.dart @@ -1,5 +1,8 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/put_analytics_controller.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart'; @@ -8,8 +11,6 @@ import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activ import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart'; import 'package:fluffychat/pangea/widgets/practice_activity/practice_activity_card.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; class WordFocusListeningActivity extends StatefulWidget { final PracticeActivityModel activity; @@ -113,7 +114,7 @@ class WordFocusListeningActivityState decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: AppConfig.primaryColor.withOpacity(0.4), + color: AppConfig.primaryColor.withAlpha(100), width: 2, style: BorderStyle.solid, ), @@ -155,11 +156,11 @@ class WordFocusListeningActivityState Color buttonColor; if (selectedChoiceIndex == index) { buttonColor = isAnswerCorrect - ? theme.colorScheme.secondary.withOpacity(0.7) // Correct: Green - : theme.colorScheme.error.withOpacity(0.7); // Incorrect: Red + ? theme.colorScheme.secondary.withAlpha(180) // Correct: Green + : theme.colorScheme.error.withAlpha(180); // Incorrect: Red } else { buttonColor = - AppConfig.primaryColor.withOpacity(0.4); // Default: Primary color + AppConfig.primaryColor.withAlpha(100); // Default: Primary color } return GestureDetector( @@ -170,7 +171,7 @@ class WordFocusListeningActivityState ), child: CircleAvatar( radius: buttonSize, - backgroundColor: dragging ? Colors.grey.withOpacity(0.5) : buttonColor, + backgroundColor: dragging ? Colors.grey.withAlpha(128) : buttonColor, child: const Icon(Icons.play_arrow), ), ); diff --git a/lib/pangea/widgets/practice_activity/word_text_with_audio_button.dart b/lib/pangea/widgets/practice_activity/word_text_with_audio_button.dart index 7a92cd6c6..7eab84be1 100644 --- a/lib/pangea/widgets/practice_activity/word_text_with_audio_button.dart +++ b/lib/pangea/widgets/practice_activity/word_text_with_audio_button.dart @@ -1,6 +1,7 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart'; -import 'package:flutter/material.dart'; class WordTextWithAudioButton extends StatefulWidget { final String text; diff --git a/lib/pangea/widgets/pressable_button.dart b/lib/pangea/widgets/pressable_button.dart index acf99be02..0f16e4c27 100644 --- a/lib/pangea/widgets/pressable_button.dart +++ b/lib/pangea/widgets/pressable_button.dart @@ -1,10 +1,11 @@ import 'dart:async'; -import 'package:fluffychat/pangea/utils/play_click_sound.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:fluffychat/pangea/utils/play_click_sound.dart'; + class PressableButton extends StatefulWidget { final BorderRadius borderRadius; final double buttonHeight; @@ -152,8 +153,8 @@ class PressableButtonState extends State decoration: BoxDecoration( color: Color.alphaBlend( _isShadow - ? Colors.black.withOpacity(0.25) - : Colors.white.withOpacity(0.25), + ? Colors.black.withAlpha(65) + : Colors.white.withAlpha(65), widget.color, ), borderRadius: widget.borderRadius, diff --git a/lib/pangea/widgets/signup/tos_checkbox.dart b/lib/pangea/widgets/signup/tos_checkbox.dart index 031808aa1..c7bab801a 100644 --- a/lib/pangea/widgets/signup/tos_checkbox.dart +++ b/lib/pangea/widgets/signup/tos_checkbox.dart @@ -1,10 +1,12 @@ // Flutter imports: +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/utils/url_launcher.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class TosCheckbox extends StatefulWidget { final bool value; diff --git a/lib/pangea/widgets/space/language_level_dropdown.dart b/lib/pangea/widgets/space/language_level_dropdown.dart index 2ddef6e6b..3723a23f5 100644 --- a/lib/pangea/widgets/space/language_level_dropdown.dart +++ b/lib/pangea/widgets/space/language_level_dropdown.dart @@ -1,8 +1,10 @@ +import 'package:flutter/material.dart'; + import 'package:dropdown_button2/dropdown_button2.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/utils/language_level_copy.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class LanguageLevelDropdown extends StatelessWidget { final int? initialLevel; diff --git a/lib/pangea/widgets/subscription/subscription_buttons.dart b/lib/pangea/widgets/subscription/subscription_buttons.dart index f7f528e79..66b021f62 100644 --- a/lib/pangea/widgets/subscription/subscription_buttons.dart +++ b/lib/pangea/widgets/subscription/subscription_buttons.dart @@ -1,9 +1,11 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + 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'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class SubscriptionButtons extends StatelessWidget { final SubscriptionManagementController controller; diff --git a/lib/pangea/widgets/subscription/subscription_options.dart b/lib/pangea/widgets/subscription/subscription_options.dart index 07bbbf21c..a6b790027 100644 --- a/lib/pangea/widgets/subscription/subscription_options.dart +++ b/lib/pangea/widgets/subscription/subscription_options.dart @@ -1,10 +1,12 @@ // Flutter imports: +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + 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'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class SubscriptionOptions extends StatelessWidget { final PangeaController pangeaController; diff --git a/lib/pangea/widgets/subscription/subscription_paywall.dart b/lib/pangea/widgets/subscription/subscription_paywall.dart index 81d3e3476..870067202 100644 --- a/lib/pangea/widgets/subscription/subscription_paywall.dart +++ b/lib/pangea/widgets/subscription/subscription_paywall.dart @@ -1,9 +1,11 @@ // Flutter imports: +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/widgets/subscription/subscription_options.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class SubscriptionPaywall extends StatelessWidget { final PangeaController pangeaController; diff --git a/lib/pangea/widgets/subscription/subscription_snackbar.dart b/lib/pangea/widgets/subscription/subscription_snackbar.dart index 447f61180..d7b414dfd 100644 --- a/lib/pangea/widgets/subscription/subscription_snackbar.dart +++ b/lib/pangea/widgets/subscription/subscription_snackbar.dart @@ -1,9 +1,11 @@ -import 'package:fluffychat/config/app_config.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; +import 'package:fluffychat/config/app_config.dart'; + void showSubscribedSnackbar(BuildContext context) { final Widget text = RichText( text: TextSpan( diff --git a/lib/pangea/widgets/user_settings/country_picker_tile.dart b/lib/pangea/widgets/user_settings/country_picker_tile.dart index de458493d..f0773e47d 100644 --- a/lib/pangea/widgets/user_settings/country_picker_tile.dart +++ b/lib/pangea/widgets/user_settings/country_picker_tile.dart @@ -1,11 +1,12 @@ +import 'package:flutter/material.dart'; + import 'package:country_picker/country_picker.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/pages/settings_learning/settings_learning.dart'; import 'package:fluffychat/pangea/utils/country_display.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - import '../../models/user_model.dart'; class CountryPickerTile extends StatelessWidget { diff --git a/lib/pangea/widgets/user_settings/language_tile.dart b/lib/pangea/widgets/user_settings/language_tile.dart index 571d1b726..3d6a8b5fa 100644 --- a/lib/pangea/widgets/user_settings/language_tile.dart +++ b/lib/pangea/widgets/user_settings/language_tile.dart @@ -1,10 +1,11 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:fluffychat/pangea/pages/settings_learning/settings_learning.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - import '../flag.dart'; //PTODO - move this to settings_learning_view.dart and make callback a setState diff --git a/lib/pangea/widgets/user_settings/p_language_dialog.dart b/lib/pangea/widgets/user_settings/p_language_dialog.dart index bac52d6bf..83c0faf7c 100644 --- a/lib/pangea/widgets/user_settings/p_language_dialog.dart +++ b/lib/pangea/widgets/user_settings/p_language_dialog.dart @@ -1,15 +1,16 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/controllers/language_list_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - import '../../../config/themes.dart'; import '../../../widgets/matrix.dart'; import 'p_language_dropdown.dart'; diff --git a/lib/pangea/widgets/user_settings/p_language_dropdown.dart b/lib/pangea/widgets/user_settings/p_language_dropdown.dart index 04fbe4e4f..15e01b9c0 100644 --- a/lib/pangea/widgets/user_settings/p_language_dropdown.dart +++ b/lib/pangea/widgets/user_settings/p_language_dropdown.dart @@ -1,11 +1,12 @@ // Flutter imports: +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/enum/l2_support_enum.dart'; import 'package:fluffychat/pangea/models/language_model.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - import '../../widgets/flag.dart'; class PLanguageDropdown extends StatefulWidget { 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 5e6a45a7c..7bad9b650 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,6 +1,7 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/material.dart'; class ProfileSettingsSwitchListTile extends StatefulWidget { final bool defaultValue; diff --git a/lib/pangea/widgets/word_zoom/contextual_translation_widget.dart b/lib/pangea/widgets/word_zoom/contextual_translation_widget.dart index 8b7f94f26..a3281552c 100644 --- a/lib/pangea/widgets/word_zoom/contextual_translation_widget.dart +++ b/lib/pangea/widgets/word_zoom/contextual_translation_widget.dart @@ -1,10 +1,12 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/repo/lemma_definition_repo.dart'; import 'package:fluffychat/pangea/widgets/igc/card_error_widget.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class ContextualTranslationWidget extends StatelessWidget { final PangeaToken token; diff --git a/lib/pangea/widgets/word_zoom/lemma_definition_widget.dart b/lib/pangea/widgets/word_zoom/lemma_definition_widget.dart index 8030d905f..780de5ea7 100644 --- a/lib/pangea/widgets/word_zoom/lemma_definition_widget.dart +++ b/lib/pangea/widgets/word_zoom/lemma_definition_widget.dart @@ -1,8 +1,9 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/constants/language_constants.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/repo/lemma_definition_repo.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; class LemmaDefinitionWidget extends StatefulWidget { final PangeaToken token; diff --git a/lib/pangea/widgets/word_zoom/lemma_widget.dart b/lib/pangea/widgets/word_zoom/lemma_widget.dart index 44a80ca66..165fddc38 100644 --- a/lib/pangea/widgets/word_zoom/lemma_widget.dart +++ b/lib/pangea/widgets/word_zoom/lemma_widget.dart @@ -1,6 +1,7 @@ -import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/pangea/models/pangea_token_model.dart'; + class LemmaWidget extends StatelessWidget { final PangeaToken token; diff --git a/lib/pangea/widgets/word_zoom/morphological_widget.dart b/lib/pangea/widgets/word_zoom/morphological_widget.dart index fbb0f2d4d..5f95bd987 100644 --- a/lib/pangea/widgets/word_zoom/morphological_widget.dart +++ b/lib/pangea/widgets/word_zoom/morphological_widget.dart @@ -1,8 +1,9 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/pangea/constants/morph_categories_and_labels.dart'; import 'package:fluffychat/pangea/enum/analytics/morph_categories_enum.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/widgets/practice_activity/word_zoom_activity_button.dart'; -import 'package:flutter/material.dart'; class ActivityMorph { final String morphFeature; diff --git a/lib/pangea/widgets/word_zoom/word_zoom_widget.dart b/lib/pangea/widgets/word_zoom/word_zoom_widget.dart index 0c260f58c..6fedb5c64 100644 --- a/lib/pangea/widgets/word_zoom/word_zoom_widget.dart +++ b/lib/pangea/widgets/word_zoom/word_zoom_widget.dart @@ -1,5 +1,7 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/message_analytics_controller.dart'; import 'package:fluffychat/pangea/enum/activity_type_enum.dart'; @@ -16,7 +18,6 @@ import 'package:fluffychat/pangea/widgets/practice_activity/word_text_with_audio import 'package:fluffychat/pangea/widgets/word_zoom/contextual_translation_widget.dart'; import 'package:fluffychat/pangea/widgets/word_zoom/lemma_widget.dart'; import 'package:fluffychat/pangea/widgets/word_zoom/morphological_widget.dart'; -import 'package:flutter/material.dart'; enum WordZoomSelection { translation, diff --git a/lib/utils/background_push.dart b/lib/utils/background_push.dart index 86edc409d..658266cf0 100644 --- a/lib/utils/background_push.dart +++ b/lib/utils/background_push.dart @@ -21,15 +21,12 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:fcm_shared_isolate/fcm_shared_isolate.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; -import 'package:fluffychat/pangea/constants/language_constants.dart'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:fluffychat/utils/push_helper.dart'; -import 'package:fluffychat/widgets/fluffy_chat_app.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; import 'package:flutter_app_badger/flutter_app_badger.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; @@ -38,6 +35,10 @@ import 'package:matrix/matrix.dart'; import 'package:unifiedpush/unifiedpush.dart'; import 'package:unifiedpush_ui/unifiedpush_ui.dart'; +import 'package:fluffychat/pangea/constants/language_constants.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; +import 'package:fluffychat/utils/push_helper.dart'; +import 'package:fluffychat/widgets/fluffy_chat_app.dart'; import '../config/app_config.dart'; import '../config/setting_keys.dart'; import '../widgets/matrix.dart'; diff --git a/lib/utils/client_manager.dart b/lib/utils/client_manager.dart index 33175f4e4..d73d3bb21 100644 --- a/lib/utils/client_manager.dart +++ b/lib/utils/client_manager.dart @@ -1,14 +1,8 @@ import 'dart:io'; -import 'package:desktop_notifications/desktop_notifications.dart'; -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/pangea/constants/model_keys.dart'; -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'; -import 'package:fluffychat/utils/init_with_restore.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; import 'package:flutter/foundation.dart'; + +import 'package:desktop_notifications/desktop_notifications.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:hive_flutter/hive_flutter.dart'; import 'package:matrix/encryption/utils/key_verification.dart'; @@ -17,6 +11,13 @@ import 'package:path_provider/path_provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:universal_html/html.dart' as html; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pangea/constants/model_keys.dart'; +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'; +import 'package:fluffychat/utils/init_with_restore.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; import 'matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart'; abstract class ClientManager { diff --git a/lib/utils/color_value.dart b/lib/utils/color_value.dart new file mode 100644 index 000000000..49195779d --- /dev/null +++ b/lib/utils/color_value.dart @@ -0,0 +1,14 @@ +import 'package:flutter/widgets.dart'; + +extension ColorValue on Color { + int get hexValue { + return _floatToInt8(a) << 24 | + _floatToInt8(r) << 16 | + _floatToInt8(g) << 8 | + _floatToInt8(b) << 0; + } + + static int _floatToInt8(double x) { + return (x * 255.0).round() & 0xff; + } +} diff --git a/lib/utils/error_reporter.dart b/lib/utils/error_reporter.dart index a5d0884a7..f2f6461ea 100644 --- a/lib/utils/error_reporter.dart +++ b/lib/utils/error_reporter.dart @@ -1,8 +1,10 @@ -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; + class ErrorReporter { final BuildContext context; final String? message; diff --git a/lib/utils/file_selector.dart b/lib/utils/file_selector.dart index e9d36652c..f528f2cfd 100644 --- a/lib/utils/file_selector.dart +++ b/lib/utils/file_selector.dart @@ -1,8 +1,10 @@ +import 'package:flutter/widgets.dart'; + import 'package:file_picker/file_picker.dart'; import 'package:file_selector/file_selector.dart'; + import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/app_lock.dart'; -import 'package:flutter/widgets.dart'; Future> selectFiles( BuildContext context, { diff --git a/lib/utils/init_with_restore.dart b/lib/utils/init_with_restore.dart index f979adbe8..5870e4b11 100644 --- a/lib/utils/init_with_restore.dart +++ b/lib/utils/init_with_restore.dart @@ -70,7 +70,9 @@ extension InitWithRestoreExtension on Client { try { await init( - onMigration: onMigration, + onInitStateChanged: (state) { + if (state == InitState.migratingDatabase) onMigration?.call(); + }, waitForFirstSync: false, waitUntilLoadCompletedLoaded: false, ); @@ -122,7 +124,9 @@ extension InitWithRestoreExtension on Client { newUserID: sessionBackup.userId, waitForFirstSync: false, waitUntilLoadCompletedLoaded: false, - onMigration: onMigration, + onInitStateChanged: (state) { + if (state == InitState.migratingDatabase) onMigration?.call(); + }, ); ClientManager.sendInitNotification( l10n.initAppError, diff --git a/lib/utils/localized_exception_extension.dart b/lib/utils/localized_exception_extension.dart index 79dda91c1..8bd493246 100644 --- a/lib/utils/localized_exception_extension.dart +++ b/lib/utils/localized_exception_extension.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'dart:math'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:http/http.dart'; import 'package:matrix/encryption.dart'; diff --git a/lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart b/lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart index 4075bf9ee..61b127df4 100644 --- a/lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart +++ b/lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart @@ -1,6 +1,6 @@ -import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/constants/model_keys.dart'; import '../../config/app_config.dart'; extension VisibleInGuiExtension on List { diff --git a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart index 225650bde..44dc270ad 100644 --- a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart +++ b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart @@ -1,9 +1,7 @@ import 'dart:io'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:fluffychat/utils/matrix_sdk_extensions/flutter_hive_collections_database.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; import 'package:flutter/foundation.dart'; + import 'package:matrix/matrix.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; @@ -11,7 +9,11 @@ import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; import 'package:universal_html/html.dart' as html; +import 'package:fluffychat/pangea/utils/error_handler.dart'; +import 'package:fluffychat/utils/matrix_sdk_extensions/flutter_hive_collections_database.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; import 'cipher.dart'; + import 'sqlcipher_stub.dart' if (dart.library.io) 'package:sqlcipher_flutter_libs/sqlcipher_flutter_libs.dart'; diff --git a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart index 889d210b8..f1c4ff332 100644 --- a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart +++ b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart @@ -1,13 +1,15 @@ import 'dart:convert'; import 'dart:math'; -import 'package:fluffychat/config/setting_keys.dart'; import 'package:flutter/services.dart'; + import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:matrix/matrix.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:fluffychat/config/setting_keys.dart'; + const _passwordStorageKey = 'database_password'; Future getDatabaseCipher() async { diff --git a/lib/utils/platform_infos.dart b/lib/utils/platform_infos.dart index dbae48db0..2c73e4b15 100644 --- a/lib/utils/platform_infos.dart +++ b/lib/utils/platform_infos.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:package_info_plus/package_info_plus.dart'; diff --git a/lib/utils/push_helper.dart b/lib/utils/push_helper.dart index 3a2ce1989..97011f7f5 100644 --- a/lib/utils/push_helper.dart +++ b/lib/utils/push_helper.dart @@ -1,6 +1,15 @@ import 'dart:ui'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:flutter_shortcuts/flutter_shortcuts.dart'; +import 'package:matrix/matrix.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/utils/client_download_content_extension.dart'; @@ -8,13 +17,6 @@ import 'package:fluffychat/utils/client_manager.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/utils/voip/callkeep_manager.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:flutter_local_notifications/flutter_local_notifications.dart'; -import 'package:flutter_shortcuts/flutter_shortcuts.dart'; -import 'package:matrix/matrix.dart'; -import 'package:shared_preferences/shared_preferences.dart'; Future pushHelper( PushNotification notification, { diff --git a/lib/utils/show_update_snackbar.dart b/lib/utils/show_update_snackbar.dart index 19356dc4c..c5cc170eb 100644 --- a/lib/utils/show_update_snackbar.dart +++ b/lib/utils/show_update_snackbar.dart @@ -1,8 +1,10 @@ -import 'package:fluffychat/utils/platform_infos.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; + abstract class UpdateNotifier { static const String versionStoreKey = 'last_known_version'; diff --git a/lib/utils/url_launcher.dart b/lib/utils/url_launcher.dart index 43413b0a4..9f7f436e5 100644 --- a/lib/utils/url_launcher.dart +++ b/lib/utils/url_launcher.dart @@ -1,5 +1,13 @@ +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart' show IterableExtension; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; +import 'package:punycode/punycode.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/user_bottom_sheet/user_bottom_sheet.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; @@ -7,13 +15,6 @@ import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:fluffychat/widgets/public_room_bottom_sheet.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; -import 'package:punycode/punycode.dart'; -import 'package:url_launcher/url_launcher_string.dart'; - import 'platform_infos.dart'; class UrlLauncher { diff --git a/lib/utils/voip/video_renderer.dart b/lib/utils/voip/video_renderer.dart index 46171fdb5..893553497 100644 --- a/lib/utils/voip/video_renderer.dart +++ b/lib/utils/voip/video_renderer.dart @@ -79,7 +79,7 @@ class _VideoRendererState extends State { filterQuality: FilterQuality.medium, objectFit: widget.fit, placeholderBuilder: (_) => - Container(color: Colors.white.withOpacity(0.18)), + Container(color: Colors.white.withAlpha(50)), ); }, ); diff --git a/lib/utils/voip_plugin.dart b/lib/utils/voip_plugin.dart index 540debebf..6d0c06dcd 100644 --- a/lib/utils/voip_plugin.dart +++ b/lib/utils/voip_plugin.dart @@ -1,15 +1,16 @@ import 'dart:core'; -import 'package:fluffychat/pages/chat_list/chat_list.dart'; -import 'package:fluffychat/pages/dialer/dialer.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; + 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; +import 'package:fluffychat/pages/chat_list/chat_list.dart'; +import 'package:fluffychat/pages/dialer/dialer.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; import '../../utils/voip/callkeep_manager.dart'; import '../../utils/voip/user_media_manager.dart'; import '../widgets/matrix.dart'; diff --git a/lib/widgets/avatar.dart b/lib/widgets/avatar.dart index 68dec26ed..e57ccebc3 100644 --- a/lib/widgets/avatar.dart +++ b/lib/widgets/avatar.dart @@ -1,10 +1,12 @@ +import 'package:flutter/material.dart'; + +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/pangea/utils/bot_name.dart'; import 'package:fluffychat/pangea/widgets/common/bot_face_svg.dart'; import 'package:fluffychat/utils/string_color.dart'; import 'package:fluffychat/widgets/mxc_image.dart'; import 'package:fluffychat/widgets/presence_builder.dart'; -import 'package:flutter/material.dart'; -import 'package:matrix/matrix.dart'; class Avatar extends StatelessWidget { final Uri? mxContent; diff --git a/lib/widgets/chat_settings_popup_menu.dart b/lib/widgets/chat_settings_popup_menu.dart index 74a92623b..ea10dffac 100644 --- a/lib/widgets/chat_settings_popup_menu.dart +++ b/lib/widgets/chat_settings_popup_menu.dart @@ -1,14 +1,15 @@ import 'dart:async'; -import 'package:adaptive_dialog/adaptive_dialog.dart'; -import 'package:fluffychat/pangea/pages/settings_learning/settings_learning.dart'; -import 'package:fluffychat/pangea/utils/download_chat.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:flutter/material.dart'; + +import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/pages/settings_learning/settings_learning.dart'; +import 'package:fluffychat/pangea/utils/download_chat.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'matrix.dart'; enum ChatPopupMenuActions { diff --git a/lib/widgets/connection_status_header.dart b/lib/widgets/connection_status_header.dart index 27c393759..d12e252d4 100644 --- a/lib/widgets/connection_status_header.dart +++ b/lib/widgets/connection_status_header.dart @@ -86,7 +86,6 @@ extension on SyncStatusUpdate { case SyncStatus.processing: case SyncStatus.cleaningUp: case SyncStatus.finished: - default: return L10n.of(context).synchronizingPleaseWait; } } diff --git a/lib/widgets/error_widget.dart b/lib/widgets/error_widget.dart index 436262945..af3f90248 100644 --- a/lib/widgets/error_widget.dart +++ b/lib/widgets/error_widget.dart @@ -1,6 +1,7 @@ -import 'package:fluffychat/utils/error_reporter.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/utils/error_reporter.dart'; + class FluffyChatErrorWidget extends StatefulWidget { final FlutterErrorDetails details; const FluffyChatErrorWidget(this.details, {super.key}); @@ -38,7 +39,7 @@ class _FluffyChatErrorWidgetState extends State { child: Placeholder( child: Center( child: Material( - color: Colors.white.withOpacity(0.9), + color: Colors.white.withAlpha(225), borderRadius: BorderRadius.circular(8), ), ), diff --git a/lib/widgets/fluffy_chat_app.dart b/lib/widgets/fluffy_chat_app.dart index a486374df..247d7997a 100644 --- a/lib/widgets/fluffy_chat_app.dart +++ b/lib/widgets/fluffy_chat_app.dart @@ -1,16 +1,17 @@ -import 'package:country_picker/country_picker.dart'; -import 'package:fluffychat/config/routes.dart'; -import 'package:fluffychat/config/themes.dart'; -import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; -import 'package:fluffychat/widgets/app_lock.dart'; -import 'package:fluffychat/widgets/theme_builder.dart'; import 'package:flutter/material.dart'; + +import 'package:country_picker/country_picker.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:fluffychat/config/routes.dart'; +import 'package:fluffychat/config/themes.dart'; +import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; +import 'package:fluffychat/widgets/app_lock.dart'; +import 'package:fluffychat/widgets/theme_builder.dart'; import '../config/app_config.dart'; import '../utils/custom_scroll_behaviour.dart'; import 'matrix.dart'; diff --git a/lib/widgets/layouts/empty_page.dart b/lib/widgets/layouts/empty_page.dart index 70457c5a6..45e7ebd86 100644 --- a/lib/widgets/layouts/empty_page.dart +++ b/lib/widgets/layouts/empty_page.dart @@ -1,15 +1,18 @@ import 'dart:math'; -import 'package:fluffychat/pangea/widgets/common/pangea_logo_svg.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/pangea/widgets/common/pangea_logo_svg.dart'; + class EmptyPage extends StatelessWidget { static const double _width = 400; const EmptyPage({super.key}); @override Widget build(BuildContext context) { final width = min(MediaQuery.of(context).size.width, EmptyPage._width) / 2; - final theme = Theme.of(context); + // #Pangea + // final theme = Theme.of(context); + // Pangea# return Scaffold( // Add invisible appbar to make status bar on Android tablets bright. appBar: AppBar( diff --git a/lib/widgets/layouts/login_scaffold.dart b/lib/widgets/layouts/login_scaffold.dart index fd6f859dc..9ccd7b3fe 100644 --- a/lib/widgets/layouts/login_scaffold.dart +++ b/lib/widgets/layouts/login_scaffold.dart @@ -1,9 +1,11 @@ -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/config/themes.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:url_launcher/url_launcher_string.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/config/themes.dart'; + class LoginScaffold extends StatelessWidget { final Widget body; final AppBar? appBar; diff --git a/lib/widgets/local_notifications_extension.dart b/lib/widgets/local_notifications_extension.dart index c389d8ddc..a59a540fa 100644 --- a/lib/widgets/local_notifications_extension.dart +++ b/lib/widgets/local_notifications_extension.dart @@ -1,17 +1,19 @@ import 'dart:io'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:desktop_notifications/desktop_notifications.dart'; +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; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/utils/client_download_content_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; -import 'package:universal_html/html.dart' as html; extension LocalNotificationsExtension on MatrixState { static final html.AudioElement _audioPlayer = html.AudioElement() diff --git a/lib/widgets/log_view.dart b/lib/widgets/log_view.dart index 6e5e31882..caeaeee44 100644 --- a/lib/widgets/log_view.dart +++ b/lib/widgets/log_view.dart @@ -78,7 +78,6 @@ extension on LogEvent { case Level.debug: return Colors.white; case Level.verbose: - default: return Colors.grey; } } diff --git a/lib/widgets/matrix.dart b/lib/widgets/matrix.dart index 6d5032aff..d1a62aea7 100644 --- a/lib/widgets/matrix.dart +++ b/lib/widgets/matrix.dart @@ -1,21 +1,12 @@ import 'dart:async'; import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; import 'package:desktop_notifications/desktop_notifications.dart'; -import 'package:fluffychat/pangea/constants/model_keys.dart'; -import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; -import 'package:fluffychat/pangea/utils/any_state_holder.dart'; -import 'package:fluffychat/utils/client_manager.dart'; -import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:fluffychat/utils/uia_request_manager.dart'; -import 'package:fluffychat/utils/voip_plugin.dart'; -import 'package:fluffychat/widgets/fluffy_chat_app.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:http/http.dart' as http; import 'package:image_picker/image_picker.dart'; @@ -28,6 +19,16 @@ import 'package:shared_preferences/shared_preferences.dart'; import 'package:universal_html/html.dart' as html; import 'package:url_launcher/url_launcher_string.dart'; +import 'package:fluffychat/pangea/constants/model_keys.dart'; +import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; +import 'package:fluffychat/pangea/utils/any_state_holder.dart'; +import 'package:fluffychat/utils/client_manager.dart'; +import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; +import 'package:fluffychat/utils/uia_request_manager.dart'; +import 'package:fluffychat/utils/voip_plugin.dart'; +import 'package:fluffychat/widgets/fluffy_chat_app.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; import '../config/app_config.dart'; import '../config/setting_keys.dart'; import '../pages/key_verification/key_verification_dialog.dart'; diff --git a/lib/widgets/profile_bottom_sheet.dart b/lib/widgets/profile_bottom_sheet.dart index aececcb3c..b59777af0 100644 --- a/lib/widgets/profile_bottom_sheet.dart +++ b/lib/widgets/profile_bottom_sheet.dart @@ -1,11 +1,13 @@ -import 'package:fluffychat/widgets/avatar.dart'; -import 'package:fluffychat/widgets/future_loading_dialog.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/widgets/avatar.dart'; +import 'package:fluffychat/widgets/future_loading_dialog.dart'; +import 'package:fluffychat/widgets/matrix.dart'; + class ProfileBottomSheet extends StatelessWidget { final String userId; final BuildContext outerContext; diff --git a/lib/widgets/public_room_bottom_sheet.dart b/lib/widgets/public_room_bottom_sheet.dart index 9c4bf4946..4ca5ecc6b 100644 --- a/lib/widgets/public_room_bottom_sheet.dart +++ b/lib/widgets/public_room_bottom_sheet.dart @@ -1,3 +1,10 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; @@ -6,11 +13,6 @@ import 'package:fluffychat/utils/url_launcher.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:flutter_linkify/flutter_linkify.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; // #Pangea // class PublicRoomBottomSheet extends StatelessWidget { diff --git a/lib/widgets/theme_builder.dart b/lib/widgets/theme_builder.dart index b35a0b449..1ce0a6f05 100644 --- a/lib/widgets/theme_builder.dart +++ b/lib/widgets/theme_builder.dart @@ -5,6 +5,8 @@ import 'package:dynamic_color/dynamic_color.dart'; import 'package:provider/provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:fluffychat/utils/color_value.dart'; + class ThemeBuilder extends StatefulWidget { final Widget Function( BuildContext context, @@ -72,7 +74,7 @@ class ThemeController extends State { } else { await preferences.setInt( widget.primaryColorSettingsKey, - newPrimaryColor.value, + newPrimaryColor.hexValue, ); } setState(() { diff --git a/lib/widgets/unread_rooms_badge.dart b/lib/widgets/unread_rooms_badge.dart index d2d47ba6a..e3661f601 100644 --- a/lib/widgets/unread_rooms_badge.dart +++ b/lib/widgets/unread_rooms_badge.dart @@ -1,8 +1,9 @@ -import 'package:badges/badges.dart' as b; -import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:flutter/material.dart'; + +import 'package:badges/badges.dart' as b; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'matrix.dart'; class UnreadRoomsBadge extends StatelessWidget { diff --git a/pangea_packages/fcm_shared_isolate/test/fcm_shared_isolate_test.dart b/pangea_packages/fcm_shared_isolate/test/fcm_shared_isolate_test.dart index ca85293d8..322ec0bd4 100644 --- a/pangea_packages/fcm_shared_isolate/test/fcm_shared_isolate_test.dart +++ b/pangea_packages/fcm_shared_isolate/test/fcm_shared_isolate_test.dart @@ -6,12 +6,14 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); setUp(() { + // ignore: deprecated_member_use channel.setMockMethodCallHandler((MethodCall methodCall) async { return '42'; }); }); tearDown(() { + // ignore: deprecated_member_use channel.setMockMethodCallHandler(null); }); diff --git a/pubspec.lock b/pubspec.lock index b21406f4f..f0416ed1c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -458,6 +458,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.5" + excel: + dependency: "direct main" + description: + name: excel + sha256: "1a15327dcad260d5db21d1f6e04f04838109b39a2f6a84ea486ceda36e468780" + url: "https://pub.dev" + source: hosted + version: "4.0.6" fake_async: dependency: transitive description: @@ -1318,14 +1326,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" - jiffy: - dependency: transitive - description: - name: jiffy - sha256: "3497caaa36d36a29033e66803c9739ce6bccbc7e241ca46070f76ee9e6f6eb0c" - url: "https://pub.dev" - source: hosted - version: "6.3.1" js: dependency: transitive description: @@ -1711,6 +1711,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" + pedantic: + dependency: "direct dev" + description: + name: pedantic + sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602" + url: "https://pub.dev" + source: hosted + version: "1.11.1" permission_handler: dependency: "direct main" description: @@ -2324,30 +2332,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.1" - syncfusion_flutter_core: - dependency: transitive - description: - name: syncfusion_flutter_core - sha256: fc61878342caee6da7979ca0ca9bb178f1eb5ca9b836dada34b83caa39e4bfed - url: "https://pub.dev" - source: hosted - version: "25.1.42" - syncfusion_flutter_xlsio: - dependency: "direct main" - description: - name: syncfusion_flutter_xlsio - sha256: "92e37c48fcbf20d87d5f7355d9434b004772bd9d9813c2243a48bce3b6a9e8a9" - url: "https://pub.dev" - source: hosted - version: "25.1.42" - syncfusion_officecore: - dependency: transitive - description: - name: syncfusion_officecore - sha256: b9115cebc37a452f97ab80de17fdafb7b0cedc4b38e90e588871c47d4fb9e91d - url: "https://pub.dev" - source: hosted - version: "25.1.42" synchronized: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 27892a391..ecf049362 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -121,6 +121,7 @@ dependencies: country_picker: ^2.0.25 csv: ^6.0.0 dropdown_button2: ^2.3.9 + excel: ^4.0.6 fl_chart: ^0.67.0 firebase_analytics: ^11.0.1 firebase_core: ^3.1.0 @@ -138,7 +139,6 @@ dependencies: purchases_flutter: ^6.26.0 sentry_flutter: ^8.2.0 shimmer: ^3.0.0 - syncfusion_flutter_xlsio: ^25.1.40 rive: 0.11.11 text_to_speech: ^0.2.3 flutter_tts: ^4.2.0 @@ -155,6 +155,7 @@ dev_dependencies: sdk: flutter license_checker: ^1.6.0 msix: ^3.6.2 + pedantic: ^1.11.0 sentry_dart_plugin: ^1.0.0 translations_cleaner: ^0.0.5 diff --git a/test/choreographer_test.dart b/test/choreographer_test.dart deleted file mode 100644 index 8b1378917..000000000 --- a/test/choreographer_test.dart +++ /dev/null @@ -1 +0,0 @@ -