diff --git a/mobile/packages/accounts/analysis_options.yaml b/mobile/packages/accounts/analysis_options.yaml index f9b303465f..1bd78bc1b0 100644 --- a/mobile/packages/accounts/analysis_options.yaml +++ b/mobile/packages/accounts/analysis_options.yaml @@ -1 +1,72 @@ +# For more linters, we can check https://dart-lang.github.io/linter/lints/index.html +# or https://pub.dev/packages/lint (Effective dart) +# use "flutter analyze ." or "dart analyze ." for running lint checks + include: package:flutter_lints/flutter.yaml +linter: + rules: + # Ref https://github.com/flutter/packages/blob/master/packages/flutter_lints/lib/flutter.yaml + # Ref https://dart-lang.github.io/linter/lints/ + - avoid_print + - avoid_unnecessary_containers + - avoid_web_libraries_in_flutter + - no_logic_in_create_state + - prefer_const_constructors + - prefer_const_constructors_in_immutables + - prefer_const_declarations + - prefer_const_literals_to_create_immutables + - prefer_final_locals + - require_trailing_commas + - sized_box_for_whitespace + - use_full_hex_values_for_flutter_colors + - use_key_in_widget_constructors + - cancel_subscriptions + + + - avoid_empty_else + - exhaustive_cases + + # just style suggestions + - sort_pub_dependencies + - use_rethrow_when_possible + - prefer_double_quotes + - directives_ordering + - always_use_package_imports + - sort_child_properties_last + - unawaited_futures + +analyzer: + errors: + avoid_empty_else: error + exhaustive_cases: error + curly_braces_in_flow_control_structures: error + directives_ordering: error + require_trailing_commas: error + always_use_package_imports: warning + prefer_final_fields: error + unused_import: error + camel_case_types: error + prefer_is_empty: warning + use_rethrow_when_possible: info + unused_field: warning + use_key_in_widget_constructors: warning + sort_child_properties_last: warning + sort_pub_dependencies: warning + library_private_types_in_public_api: warning + constant_identifier_names: ignore + prefer_const_constructors: warning + prefer_const_declarations: warning + prefer_const_constructors_in_immutables: warning + prefer_final_locals: warning + unnecessary_const: error + cancel_subscriptions: error + unrelated_type_equality_checks: error + unnecessary_cast: info + + + unawaited_futures: warning # convert to warning after fixing existing issues + invalid_dependency: info + use_build_context_synchronously: ignore # experimental lint, requires many changes + prefer_interpolation_to_compose_strings: ignore # later too many warnings + prefer_double_quotes: ignore # too many warnings + avoid_renaming_method_parameters: ignore # incorrect warnings for `equals` overrides diff --git a/mobile/packages/accounts/lib/ente_accounts.dart b/mobile/packages/accounts/lib/ente_accounts.dart index e7865b2f1b..858677e3f9 100644 --- a/mobile/packages/accounts/lib/ente_accounts.dart +++ b/mobile/packages/accounts/lib/ente_accounts.dart @@ -1,21 +1,16 @@ /// A Flutter package containing account-related functionality for Ente apps library ente_accounts; -// Models -export 'models/user_details.dart'; -export 'models/sessions.dart'; -export 'models/two_factor.dart'; -export 'models/srp.dart'; +export 'models/bonus.dart'; export 'models/delete_account.dart'; +export 'models/sessions.dart'; export 'models/set_keys_request.dart'; export 'models/set_recovery_key_request.dart'; -export 'models/bonus.dart'; +export 'models/srp.dart'; export 'models/subscription.dart'; +export 'models/two_factor.dart'; +export 'models/user_details.dart'; -// Services -export 'services/user_service.dart'; - -// Pages export 'pages/change_email_dialog.dart'; export 'pages/delete_account_page.dart'; export 'pages/email_entry_page.dart'; @@ -31,3 +26,6 @@ export 'pages/request_pwd_verification_page.dart'; export 'pages/sessions_page.dart'; export 'pages/two_factor_authentication_page.dart'; export 'pages/two_factor_recovery_page.dart'; + +export 'services/passkey_service.dart'; +export 'services/user_service.dart'; diff --git a/mobile/packages/accounts/lib/models/user_details.dart b/mobile/packages/accounts/lib/models/user_details.dart index bae0311a7f..7fe5f8e60f 100644 --- a/mobile/packages/accounts/lib/models/user_details.dart +++ b/mobile/packages/accounts/lib/models/user_details.dart @@ -1,8 +1,8 @@ import 'dart:convert'; import 'dart:math'; -import 'bonus.dart'; -import 'subscription.dart'; +import 'package:ente_accounts/models/bonus.dart'; +import 'package:ente_accounts/models/subscription.dart'; class UserDetails { final String email; diff --git a/mobile/packages/accounts/lib/pages/change_email_dialog.dart b/mobile/packages/accounts/lib/pages/change_email_dialog.dart index 0cc49f25bc..860b627918 100644 --- a/mobile/packages/accounts/lib/pages/change_email_dialog.dart +++ b/mobile/packages/accounts/lib/pages/change_email_dialog.dart @@ -1,7 +1,7 @@ import 'package:ente_accounts/ente_accounts.dart'; +import 'package:ente_strings/ente_strings.dart'; import 'package:ente_ui/utils/dialog_util.dart'; import 'package:ente_utils/email_util.dart'; -import 'package:ente_strings/ente_strings.dart'; import 'package:flutter/material.dart'; class ChangeEmailDialog extends StatefulWidget { diff --git a/mobile/packages/accounts/lib/pages/delete_account_page.dart b/mobile/packages/accounts/lib/pages/delete_account_page.dart index b06ac5e4d5..66963914d7 100644 --- a/mobile/packages/accounts/lib/pages/delete_account_page.dart +++ b/mobile/packages/accounts/lib/pages/delete_account_page.dart @@ -4,13 +4,13 @@ import 'package:ente_accounts/ente_accounts.dart'; import 'package:ente_configuration/base_configuration.dart'; import 'package:ente_crypto_dart/ente_crypto_dart.dart'; import 'package:ente_lock_screen/local_authentication_service.dart'; +import 'package:ente_strings/ente_strings.dart'; +import 'package:ente_ui/components/buttons/gradient_button.dart'; +import 'package:ente_ui/components/dialogs.dart'; import 'package:ente_ui/theme/ente_theme.dart'; import 'package:ente_utils/email_util.dart'; import 'package:ente_utils/platform_util.dart'; -import 'package:ente_strings/ente_strings.dart'; import 'package:flutter/material.dart'; -import 'package:ente_ui/components/buttons/gradient_button.dart'; -import 'package:ente_ui/components/dialogs.dart'; class DeleteAccountPage extends StatelessWidget { final BaseConfiguration configuration; diff --git a/mobile/packages/accounts/lib/pages/login_page.dart b/mobile/packages/accounts/lib/pages/login_page.dart index 17737cc0e0..c51b74e8a4 100644 --- a/mobile/packages/accounts/lib/pages/login_page.dart +++ b/mobile/packages/accounts/lib/pages/login_page.dart @@ -2,10 +2,10 @@ import 'package:email_validator/email_validator.dart'; import 'package:ente_accounts/ente_accounts.dart'; import 'package:ente_accounts/models/errors.dart'; import 'package:ente_configuration/base_configuration.dart'; +import "package:ente_strings/ente_strings.dart"; import 'package:ente_ui/components/buttons/dynamic_fab.dart'; import 'package:ente_ui/theme/ente_theme.dart'; import 'package:ente_utils/platform_util.dart'; -import "package:ente_strings/ente_strings.dart"; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import "package:styled_text/styled_text.dart"; diff --git a/mobile/packages/accounts/lib/pages/login_pwd_verification_page.dart b/mobile/packages/accounts/lib/pages/login_pwd_verification_page.dart index 6c0144f3b0..e23064d389 100644 --- a/mobile/packages/accounts/lib/pages/login_pwd_verification_page.dart +++ b/mobile/packages/accounts/lib/pages/login_pwd_verification_page.dart @@ -1,13 +1,13 @@ import "package:dio/dio.dart"; import "package:ente_accounts/ente_accounts.dart"; import "package:ente_configuration/base_configuration.dart"; +import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_strings/ente_strings.dart"; import "package:ente_ui/components/buttons/button_widget.dart"; import "package:ente_ui/components/buttons/dynamic_fab.dart"; import "package:ente_ui/theme/ente_theme.dart"; import "package:ente_ui/utils/dialog_util.dart"; import "package:ente_utils/email_util.dart"; -import "package:ente_strings/ente_strings.dart"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; import 'package:flutter/material.dart'; import "package:logging/logging.dart"; diff --git a/mobile/packages/accounts/lib/pages/ott_verification_page.dart b/mobile/packages/accounts/lib/pages/ott_verification_page.dart index 442401fbd7..cc49d1f88d 100644 --- a/mobile/packages/accounts/lib/pages/ott_verification_page.dart +++ b/mobile/packages/accounts/lib/pages/ott_verification_page.dart @@ -1,7 +1,7 @@ import 'package:ente_accounts/ente_accounts.dart'; +import 'package:ente_strings/ente_strings.dart'; import 'package:ente_ui/components/buttons/dynamic_fab.dart'; import 'package:ente_ui/theme/ente_theme.dart'; -import 'package:ente_strings/ente_strings.dart'; import 'package:flutter/material.dart'; import 'package:step_progress_indicator/step_progress_indicator.dart'; import 'package:styled_text/styled_text.dart'; diff --git a/mobile/packages/accounts/lib/pages/passkey_page.dart b/mobile/packages/accounts/lib/pages/passkey_page.dart index 584be1bceb..f7470939da 100644 --- a/mobile/packages/accounts/lib/pages/passkey_page.dart +++ b/mobile/packages/accounts/lib/pages/passkey_page.dart @@ -4,12 +4,12 @@ import 'package:app_links/app_links.dart'; import 'package:ente_accounts/ente_accounts.dart'; import 'package:ente_accounts/models/errors.dart'; import 'package:ente_configuration/base_configuration.dart'; +import 'package:ente_strings/ente_strings.dart'; import 'package:ente_ui/components/buttons/button_widget.dart'; import 'package:ente_ui/components/buttons/models/button_type.dart'; import 'package:ente_ui/utils/dialog_util.dart'; import 'package:ente_ui/utils/toast_util.dart'; import 'package:ente_utils/navigation_util.dart'; -import 'package:ente_strings/ente_strings.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:url_launcher/url_launcher_string.dart'; diff --git a/mobile/packages/accounts/lib/pages/password_entry_page.dart b/mobile/packages/accounts/lib/pages/password_entry_page.dart index bf171e3cc3..36152d883b 100644 --- a/mobile/packages/accounts/lib/pages/password_entry_page.dart +++ b/mobile/packages/accounts/lib/pages/password_entry_page.dart @@ -1,5 +1,6 @@ import 'package:ente_accounts/ente_accounts.dart'; import 'package:ente_configuration/base_configuration.dart'; +import 'package:ente_strings/ente_strings.dart'; import 'package:ente_ui/components/buttons/dynamic_fab.dart'; import 'package:ente_ui/components/buttons/models/button_type.dart'; import 'package:ente_ui/pages/base_home_page.dart'; @@ -8,7 +9,6 @@ import 'package:ente_ui/utils/dialog_util.dart'; import 'package:ente_ui/utils/toast_util.dart'; import 'package:ente_utils/navigation_util.dart'; import 'package:ente_utils/platform_util.dart'; -import 'package:ente_strings/ente_strings.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:logging/logging.dart'; @@ -448,7 +448,9 @@ class _PasswordEntryPageState extends State { bool usingVolatilePassword = false, }) async { final dialog = createProgressDialog( - context, context.strings.generatingEncryptionKeysTitle); + context, + context.strings.generatingEncryptionKeysTitle, + ); await dialog.show(); try { if (usingVolatilePassword) { diff --git a/mobile/packages/accounts/lib/pages/password_reentry_page.dart b/mobile/packages/accounts/lib/pages/password_reentry_page.dart index 0de41c1992..7e081c9a5c 100644 --- a/mobile/packages/accounts/lib/pages/password_reentry_page.dart +++ b/mobile/packages/accounts/lib/pages/password_reentry_page.dart @@ -4,17 +4,16 @@ import 'dart:typed_data'; import 'package:ente_accounts/ente_accounts.dart'; import 'package:ente_accounts/models/errors.dart'; import 'package:ente_configuration/base_configuration.dart'; +import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_strings/ente_strings.dart'; import 'package:ente_ui/components/buttons/button_widget.dart'; import 'package:ente_ui/components/buttons/dynamic_fab.dart'; import 'package:ente_ui/pages/base_home_page.dart'; import 'package:ente_ui/utils/dialog_util.dart'; import 'package:ente_utils/email_util.dart'; import 'package:flutter/material.dart'; -import 'package:ente_strings/ente_strings.dart'; import 'package:logging/logging.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; - class PasswordReentryPage extends StatefulWidget { final BaseHomePage homePage; final BaseConfiguration config; diff --git a/mobile/packages/accounts/lib/pages/recovery_key_page.dart b/mobile/packages/accounts/lib/pages/recovery_key_page.dart index 20f49b8f52..3cf2249771 100644 --- a/mobile/packages/accounts/lib/pages/recovery_key_page.dart +++ b/mobile/packages/accounts/lib/pages/recovery_key_page.dart @@ -5,12 +5,12 @@ import 'package:bip39/bip39.dart' as bip39; import 'package:dotted_border/dotted_border.dart'; import 'package:ente_configuration/base_configuration.dart'; import 'package:ente_configuration/constants.dart'; +import 'package:ente_strings/ente_strings.dart'; import 'package:ente_ui/components/buttons/gradient_button.dart'; import 'package:ente_ui/theme/ente_theme.dart'; import 'package:ente_ui/utils/toast_util.dart'; import 'package:ente_utils/platform_util.dart'; import 'package:ente_utils/share_utils.dart'; -import 'package:ente_strings/ente_strings.dart'; import 'package:file_saver/file_saver.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; diff --git a/mobile/packages/accounts/lib/pages/recovery_page.dart b/mobile/packages/accounts/lib/pages/recovery_page.dart index 0901452a11..cc889bc34c 100644 --- a/mobile/packages/accounts/lib/pages/recovery_page.dart +++ b/mobile/packages/accounts/lib/pages/recovery_page.dart @@ -1,10 +1,10 @@ import 'package:ente_accounts/ente_accounts.dart'; import 'package:ente_configuration/base_configuration.dart'; +import 'package:ente_strings/ente_strings.dart'; import 'package:ente_ui/components/buttons/dynamic_fab.dart'; import 'package:ente_ui/pages/base_home_page.dart'; import 'package:ente_ui/utils/dialog_util.dart'; import 'package:ente_ui/utils/toast_util.dart'; -import 'package:ente_strings/ente_strings.dart'; import 'package:flutter/material.dart'; class RecoveryPage extends StatefulWidget { diff --git a/mobile/packages/accounts/lib/pages/request_pwd_verification_page.dart b/mobile/packages/accounts/lib/pages/request_pwd_verification_page.dart index 0fa74243ad..d3d23a1096 100644 --- a/mobile/packages/accounts/lib/pages/request_pwd_verification_page.dart +++ b/mobile/packages/accounts/lib/pages/request_pwd_verification_page.dart @@ -2,11 +2,11 @@ import "dart:convert"; import "dart:typed_data"; import "package:ente_configuration/base_configuration.dart"; +import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import "package:ente_strings/ente_strings.dart"; import "package:ente_ui/components/buttons/dynamic_fab.dart"; import "package:ente_ui/theme/ente_theme.dart"; import "package:ente_ui/utils/dialog_util.dart"; -import "package:ente_strings/ente_strings.dart"; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; import 'package:flutter/material.dart'; import "package:logging/logging.dart"; diff --git a/mobile/packages/accounts/lib/pages/sessions_page.dart b/mobile/packages/accounts/lib/pages/sessions_page.dart index 29774497ee..dbbcb9bf98 100644 --- a/mobile/packages/accounts/lib/pages/sessions_page.dart +++ b/mobile/packages/accounts/lib/pages/sessions_page.dart @@ -1,13 +1,13 @@ import 'package:ente_accounts/ente_accounts.dart'; import 'package:ente_configuration/base_configuration.dart'; +import 'package:ente_strings/ente_strings.dart'; import 'package:ente_ui/components/loading_widget.dart'; import 'package:ente_ui/theme/ente_theme.dart'; import 'package:ente_ui/utils/dialog_util.dart'; import 'package:ente_ui/utils/toast_util.dart'; -import 'package:ente_strings/ente_strings.dart'; +import 'package:ente_utils/date_time_util.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; -import 'package:ente_utils/date_time_util.dart'; class SessionsPage extends StatefulWidget { final BaseConfiguration config; diff --git a/mobile/packages/accounts/lib/pages/two_factor_authentication_page.dart b/mobile/packages/accounts/lib/pages/two_factor_authentication_page.dart index 58a7312e5a..f1fa4f327e 100644 --- a/mobile/packages/accounts/lib/pages/two_factor_authentication_page.dart +++ b/mobile/packages/accounts/lib/pages/two_factor_authentication_page.dart @@ -1,10 +1,10 @@ import 'package:ente_accounts/ente_accounts.dart'; -import 'package:ente_ui/theme/ente_theme.dart'; import 'package:ente_strings/ente_strings.dart'; +import 'package:ente_ui/lifecycle_event_handler.dart'; +import 'package:ente_ui/theme/ente_theme.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:pinput/pinput.dart'; -import 'package:ente_ui/lifecycle_event_handler.dart'; class TwoFactorAuthenticationPage extends StatefulWidget { final String sessionID; diff --git a/mobile/packages/accounts/lib/pages/two_factor_recovery_page.dart b/mobile/packages/accounts/lib/pages/two_factor_recovery_page.dart index 12c6da59aa..878a8a2ba8 100644 --- a/mobile/packages/accounts/lib/pages/two_factor_recovery_page.dart +++ b/mobile/packages/accounts/lib/pages/two_factor_recovery_page.dart @@ -1,7 +1,7 @@ import 'package:ente_accounts/ente_accounts.dart'; +import 'package:ente_strings/ente_strings.dart'; import 'package:ente_ui/theme/ente_theme.dart'; import 'package:ente_utils/email_util.dart'; -import 'package:ente_strings/ente_strings.dart'; import 'package:flutter/material.dart'; class TwoFactorRecoveryPage extends StatefulWidget { diff --git a/mobile/packages/accounts/lib/services/user_service.dart b/mobile/packages/accounts/lib/services/user_service.dart index 8af3d55973..f127fe50be 100644 --- a/mobile/packages/accounts/lib/services/user_service.dart +++ b/mobile/packages/accounts/lib/services/user_service.dart @@ -20,19 +20,19 @@ import 'package:ente_accounts/pages/password_reentry_page.dart'; import 'package:ente_accounts/pages/recovery_page.dart'; import 'package:ente_accounts/pages/two_factor_authentication_page.dart'; import 'package:ente_accounts/pages/two_factor_recovery_page.dart'; +import 'package:ente_base/models/key_attributes.dart'; +import 'package:ente_base/models/key_gen_result.dart'; import 'package:ente_configuration/base_configuration.dart'; import 'package:ente_configuration/constants.dart'; +import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_events/event_bus.dart'; +import 'package:ente_events/models/user_details_changed_event.dart'; import 'package:ente_network/network.dart'; +import 'package:ente_strings/ente_strings.dart'; import 'package:ente_ui/components/progress_dialog.dart'; import 'package:ente_ui/pages/base_home_page.dart'; import 'package:ente_ui/utils/dialog_util.dart'; import 'package:ente_ui/utils/toast_util.dart'; -import 'package:ente_base/models/key_attributes.dart'; -import 'package:ente_base/models/key_gen_result.dart'; -import 'package:ente_events/event_bus.dart'; -import 'package:ente_events/models/user_details_changed_event.dart'; -import 'package:ente_strings/ente_strings.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; import "package:flutter/foundation.dart"; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; diff --git a/mobile/packages/accounts/pubspec.lock b/mobile/packages/accounts/pubspec.lock index 8fee60bb47..1dd9150ce5 100644 --- a/mobile/packages/accounts/pubspec.lock +++ b/mobile/packages/accounts/pubspec.lock @@ -409,10 +409,11 @@ packages: flutter_local_authentication: dependency: transitive description: - name: flutter_local_authentication - sha256: eb2e471ba77fbc42b6ce8b358939dc9878dc71fcce5a482a8ddcb045563d87cd - url: "https://pub.dev" - source: hosted + path: "." + ref: "1ac346a04592a05fd75acccf2e01fa3c7e955d96" + resolved-ref: "1ac346a04592a05fd75acccf2e01fa3c7e955d96" + url: "https://github.com/eaceto/flutter_local_authentication" + source: git version: "1.2.0" flutter_localizations: dependency: transitive diff --git a/mobile/packages/accounts/pubspec.yaml b/mobile/packages/accounts/pubspec.yaml index eca03a2a01..1d4064ac75 100644 --- a/mobile/packages/accounts/pubspec.yaml +++ b/mobile/packages/accounts/pubspec.yaml @@ -7,54 +7,50 @@ environment: flutter: ">=1.17.0" dependencies: - flutter: - sdk: flutter - - # Ente packages + app_links: ^6.3.3 + bip39: ^1.0.6 + collection: ^1.18.0 + dio: ^5.4.0 + dotted_border: ^3.1.0 + email_validator: ^3.0.0 + ente_base: + path: ../base + ente_configuration: + path: ../configuration + ente_crypto_dart: + git: + url: https://github.com/ente-io/ente_crypto_dart.git + ente_events: + path: ../events + ente_lock_screen: + path: ../lock_screen + ente_network: + path: ../network ente_strings: path: ../strings ente_ui: path: ../ui ente_utils: path: ../utils - ente_base: - path: ../base - ente_configuration: - path: ../configuration - ente_network: - path: ../network - ente_events: - path: ../events - ente_crypto_dart: - git: - url: https://github.com/ente-io/ente_crypto_dart.git - ente_lock_screen: - path: ../lock_screen - - # Third-party dependencies - bip39: ^1.0.6 - dio: ^5.4.0 - logging: ^1.2.0 - pointycastle: ^3.7.3 - shared_preferences: ^2.2.2 file_saver: ^0.3.0 - share_plus: ^11.0.0 - uuid: ^4.2.1 - collection: ^1.18.0 - dotted_border: ^3.1.0 + flutter: + sdk: flutter + logging: ^1.2.0 password_strength: ^0.2.0 + pinput: ^5.0.1 + pointycastle: ^3.7.3 + share_plus: ^11.0.0 + shared_preferences: ^2.2.2 step_progress_indicator: ^1.0.2 styled_text: ^8.1.0 - email_validator: ^3.0.0 - pinput: ^5.0.1 - app_links: ^6.3.3 url_launcher: ^6.3.1 url_launcher_ios: ^6.3.1 + uuid: ^4.2.1 dev_dependencies: + flutter_lints: ^5.0.0 flutter_test: sdk: flutter - flutter_lints: ^5.0.0 flutter: