diff --git a/analysis_options.yaml b/analysis_options.yaml index 30c0fa95e..7458c0646 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -13,42 +13,5 @@ analyzer: errors: todo: ignore use_build_context_synchronously: ignore - deprecated_member_use: ignore exclude: - - lib/generated_plugin_registrant.dart - lib/l10n/*.dart - - assets/l10n/*.arb - -dart_code_metrics: - metrics: - cyclomatic-complexity: 20 - number-of-arguments: 4 - maximum-nesting-level: 5 - source-lines-of-code: 50 - maintainability-index: 40 - rules: - - no-boolean-literal-compare - - no-empty-block - - prefer-conditional-expressions - - no-equal-then-else - - no-magic-number: - severity: style - - avoid-late-keyword: - severity: style - - avoid-non-null-assertion: - severity: style - - avoid-unused-parameters - - binary-expression-operand-order - - avoid-unnecessary-setstate - - avoid-wrapping-in-padding - - prefer-const-border-radius - - prefer-single-widget-per-file: - ignore-private-widgets: true - - prefer-extracting-callbacks - metrics-exclude: - - test/** - rules-exclude: - - test/** - anti-patterns: - - long-method - - long-parameter-list diff --git a/lib/config/setting_keys.dart b/lib/config/setting_keys.dart index aed48d5d2..0a604f9ab 100644 --- a/lib/config/setting_keys.dart +++ b/lib/config/setting_keys.dart @@ -86,7 +86,7 @@ enum AppSettings { static SharedPreferences get store => _store!; static SharedPreferences? _store; - static Future init({loadWebConfigFile = true}) async { + static Future init({bool loadWebConfigFile = true}) async { if (AppSettings._store != null) return AppSettings.store; final store = AppSettings._store = await SharedPreferences.getInstance(); diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index e16b469b5..06af7d6e7 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -219,9 +219,9 @@ class ChatController extends State // #Pangea // bool dragging = false; - // void onDragEntered(_) => setState(() => dragging = true); + // void onDragEntered(dynamic _) => setState(() => dragging = true); - // void onDragExited(_) => setState(() => dragging = false); + // void onDragExited(dynamic _) => setState(() => dragging = false); // void onDragDone(DropDoneDetails details) async { // setState(() => dragging = false); @@ -250,7 +250,8 @@ class ChatController extends State MessageTypes.File, }.contains(selectedEvents.single.messageType); - void saveSelectedEvent(context) => selectedEvents.single.saveFile(context); + void saveSelectedEvent(BuildContext context) => + selectedEvents.single.saveFile(context); List selectedEvents = []; @@ -324,7 +325,7 @@ class ChatController extends State } // #Pangea - // void requestHistory([_]) async { + // void requestHistory([dynamic _]) async { Future requestHistory() async { if (timeline == null) return; if (!timeline!.canRequestHistory) return; @@ -374,7 +375,7 @@ class ChatController extends State } } - void _shareItems([_]) { + void _shareItems([dynamic _]) { final shareItems = widget.shareItems; if (shareItems == null || shareItems.isEmpty) return; if (!room.otherPartyCanReceiveMessages) { @@ -1671,7 +1672,7 @@ class ChatController extends State scrollController.jumpTo(0); } - void onEmojiSelected(_, Emoji? emoji) { + void onEmojiSelected(dynamic _, Emoji? emoji) { typeEmoji(emoji); onInputBarChanged(sendController.text); } @@ -1839,14 +1840,14 @@ class ChatController extends State // #Pangea // void onInputBarSubmitted(String _) { + // send(); + // FocusScope.of(context).requestFocus(inputFocus); Future onInputBarSubmitted() async { - // send(); if (MatrixState.pangeaController.subscriptionController.shouldShowPaywall) { PaywallCard.show(context, ChoreoConstants.inputTransformTargetKey); return; } await onRequestWritingAssistance(manual: false, autosend: true); - // FocusScope.of(context).requestFocus(inputFocus); // Pangea# } @@ -1881,7 +1882,7 @@ class ChatController extends State } } - unpinEvent(String eventId) async { + void unpinEvent(String eventId) async { final response = await showOkCancelAlertDialog( context: context, title: L10n.of(context).unpin, diff --git a/lib/pages/chat/events/cute_events.dart b/lib/pages/chat/events/cute_events.dart index 9d43021dc..91648e082 100644 --- a/lib/pages/chat/events/cute_events.dart +++ b/lib/pages/chat/events/cute_events.dart @@ -69,7 +69,7 @@ class _CuteContentState extends State { Overlay.of(context).insert(overlay); } - generateLabel(User? user) { + String? generateLabel(User? user) { switch (widget.event.content['cute_type']) { case 'googly_eyes': return L10n.of(context).googlyEyesContent( @@ -90,6 +90,7 @@ class _CuteContentState extends State { '', ); } + return null; } } diff --git a/lib/pages/chat/start_poll_bottom_sheet.dart b/lib/pages/chat/start_poll_bottom_sheet.dart index 3fc5acc6a..5962cd2ed 100644 --- a/lib/pages/chat/start_poll_bottom_sheet.dart +++ b/lib/pages/chat/start_poll_bottom_sheet.dart @@ -56,7 +56,7 @@ class _StartPollBottomSheetState extends State { } } - void _updateCanCreate([_]) { + void _updateCanCreate([dynamic _]) { final newCanCreate = _bodyController.text.trim().isNotEmpty && !_answers.any((controller) => controller.text.trim().isEmpty); if (_canCreate != newCanCreate) { diff --git a/lib/pages/chat_encryption_settings/chat_encryption_settings.dart b/lib/pages/chat_encryption_settings/chat_encryption_settings.dart index 818b6ff87..49b1ad560 100644 --- a/lib/pages/chat_encryption_settings/chat_encryption_settings.dart +++ b/lib/pages/chat_encryption_settings/chat_encryption_settings.dart @@ -36,7 +36,7 @@ class ChatEncryptionSettingsController extends State { } } - void enableEncryption(_) async { + void enableEncryption(dynamic _) async { if (room.encrypted) { showOkAlertDialog( context: context, diff --git a/lib/pages/chat_members/chat_members.dart b/lib/pages/chat_members/chat_members.dart index 971b538f4..a43c2f22a 100644 --- a/lib/pages/chat_members/chat_members.dart +++ b/lib/pages/chat_members/chat_members.dart @@ -55,7 +55,7 @@ class ChatMembersController extends State { setFilter(); } - void setFilter([_]) async { + void setFilter([dynamic _]) async { final filter = filterController.text.toLowerCase().trim(); final members = this @@ -82,7 +82,7 @@ class ChatMembersController extends State { }); } - void refreshMembers([_]) async { + void refreshMembers([dynamic _]) async { Logs().d('Load room members from', widget.roomId); try { setState(() { diff --git a/lib/pages/dialer/pip/pip_view.dart b/lib/pages/dialer/pip/pip_view.dart index 78facfaa0..d8ad23f4c 100644 --- a/lib/pages/dialer/pip/pip_view.dart +++ b/lib/pages/dialer/pip/pip_view.dart @@ -111,7 +111,7 @@ class PIPViewState extends State with TickerProviderStateMixin { }); } - void _onPanEnd(_) { + void _onPanEnd(dynamic _) { if (!_isDragging) return; final nearestCorner = _calculateNearestCorner( @@ -128,7 +128,7 @@ class PIPViewState extends State with TickerProviderStateMixin { }); } - void _onPanStart(_) { + void _onPanStart(dynamic _) { if (_isAnimating()) return; setState(() { _dragOffset = _offsets[_corner]!; diff --git a/lib/pages/new_group/new_group.dart b/lib/pages/new_group/new_group.dart index b30d78046..0de58fbe0 100644 --- a/lib/pages/new_group/new_group.dart +++ b/lib/pages/new_group/new_group.dart @@ -215,7 +215,7 @@ class NewGroupController extends State { // Pangea# } - void submitAction([_]) async { + void submitAction([dynamic _]) async { final client = Matrix.of(context).client; try { diff --git a/lib/pages/settings/settings.dart b/lib/pages/settings/settings.dart index af7cd3b06..aa9c5126a 100644 --- a/lib/pages/settings/settings.dart +++ b/lib/pages/settings/settings.dart @@ -193,7 +193,7 @@ class SettingsController extends State { bool? crossSigningCached; bool? showChatBackupBanner; - void firstRunBootstrapAction([_]) async { + void firstRunBootstrapAction([dynamic _]) async { // #Pangea // if (showChatBackupBanner != true) { // showOkAlertDialog( diff --git a/lib/pages/settings_emotes/import_archive_dialog.dart b/lib/pages/settings_emotes/import_archive_dialog.dart index 1e0c2e880..12bc0a09c 100644 --- a/lib/pages/settings_emotes/import_archive_dialog.dart +++ b/lib/pages/settings_emotes/import_archive_dialog.dart @@ -303,7 +303,7 @@ class _EmojiImportPreviewState extends State<_EmojiImportPreview> { ); } - _setRenderError() { + void _setRenderError() { hasErrorNotifier.value = true; widget.onRemove.call(); } diff --git a/lib/widgets/app_lock.dart b/lib/widgets/app_lock.dart index c4682d9f4..ff379c5d8 100644 --- a/lib/widgets/app_lock.dart +++ b/lib/widgets/app_lock.dart @@ -41,7 +41,7 @@ class AppLock extends State with WidgetsBindingObserver { WidgetsBinding.instance.addPostFrameCallback(_checkLoggedIn); } - void _checkLoggedIn(_) async { + void _checkLoggedIn(dynamic _) async { if (widget.clients.any((client) => client.isLogged())) return; await changePincode(null); diff --git a/lib/widgets/theme_builder.dart b/lib/widgets/theme_builder.dart index 1ce0a6f05..b526aadfd 100644 --- a/lib/widgets/theme_builder.dart +++ b/lib/widgets/theme_builder.dart @@ -43,7 +43,7 @@ class ThemeController extends State { listen: false, ); - void _loadData(_) async { + void _loadData(dynamic _) async { final preferences = _sharedPreferences ??= await SharedPreferences.getInstance(); diff --git a/pubspec.lock b/pubspec.lock index 9dd6087aa..9df46cf1d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" + sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d url: "https://pub.dev" source: hosted - version: "67.0.0" + version: "91.0.0" _flutterfire_internals: dependency: transitive description: @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: analyzer - sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" + sha256: f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08 url: "https://pub.dev" source: hosted - version: "6.4.1" + version: "8.4.1" android_intent_plus: dependency: "direct main" description: @@ -512,7 +512,7 @@ packages: sha256: "984d3e9b9cf3175df9a868ce4a2d9611491e80e5d3b8e2b1e8991a4998972885" url: "https://pub.dev" source: hosted - version: "4.3.0" + version: "4.4.0" equatable: dependency: transitive description: @@ -760,10 +760,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" + sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "6.0.0" flutter_local_notifications: dependency: "direct main" description: @@ -1384,10 +1384,11 @@ packages: license_checker: dependency: "direct dev" description: - name: license_checker - sha256: eea27638e42bc98fd91a6a8187eb57e5617e2c3c8b313a5d51b14bec7a8685e1 - url: "https://pub.dev" - source: hosted + path: "." + ref: HEAD + resolved-ref: "38a65ff5b4b65db092b11dad999081388f75ece8" + url: "https://github.com/krille-chan/license_checker.git" + source: git version: "1.6.0" linkify: dependency: "direct main" @@ -1401,10 +1402,10 @@ packages: dependency: transitive description: name: lints - sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 + sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "6.1.0" list_counter: dependency: transitive description: @@ -1632,10 +1633,10 @@ packages: dependency: transitive description: name: pana - sha256: "3fc3fe8e7a9fd4827fa4d625a423eec95d305b2bc3538a3adf7fd6c49217af97" + sha256: eb816d35b80d3880335c3f2d139b376e81fd98a9ea273faf39f2c8914c4afba5 url: "https://pub.dev" source: hosted - version: "0.21.45" + version: "0.23.3" path: dependency: "direct main" description: @@ -2377,14 +2378,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.0" - tar: - dependency: transitive - description: - name: tar - sha256: "22f67e2d77b51050436620b2a5de521c58ca6f0b75af1d9ab3c8cae2eae58fcd" - url: "https://pub.dev" - source: hosted - version: "1.0.5" term_glyph: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 7ef01602c..3ab765b8f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -127,14 +127,16 @@ dependencies: # Pangea# dev_dependencies: - flutter_lints: ^3.0.0 + flutter_lints: ^6.0.0 flutter_native_splash: ^2.4.7 flutter_test: sdk: flutter import_sorter: ^4.6.0 integration_test: sdk: flutter - license_checker: ^1.6.0 + # Waiting for https://github.com/rufman/license_checker/pull/47 + license_checker: + git: https://github.com/krille-chan/license_checker.git pedantic: ^1.11.0 sentry_dart_plugin: ^1.0.0 translations_cleaner: ^0.0.5 @@ -168,4 +170,4 @@ flutter: # 1. Don't do it if you can avoid it or fix it upstream in a manageable time # 2. Always link an (upstream?) issue # 3. Explain how and when this can be removed (overrides must be temporarily) -dependency_overrides: +dependency_overrides: \ No newline at end of file