From 18d0c2c40fda899f587039609dc511359565e18c Mon Sep 17 00:00:00 2001 From: Inex Code Date: Fri, 10 Jun 2022 00:13:06 +0300 Subject: [PATCH] Bug fixes and linting --- lib/config/brand_theme.dart | 3 +- lib/config/hive_config.dart | 3 +- lib/config/text_themes.dart | 6 ++- .../setup/initializing/domain_cloudflare.dart | 1 - .../cubit/providers/providers_cubit.dart | 3 +- .../recovery_key/recovery_key_cubit.dart | 12 +++-- .../server_detailed_info_cubit.dart | 14 ++--- .../server_detailed_info_repository.dart | 1 - .../server_installation_cubit.dart | 15 ++++-- lib/logic/models/hive/backblaze_bucket.dart | 11 ++-- lib/logic/models/hive/server_details.dart | 19 +++---- lib/logic/models/json/api_token.dart | 1 - lib/logic/models/json/backup.dart | 14 ++--- lib/logic/models/json/device_token.dart | 1 - lib/logic/models/server_status.dart | 9 ++-- lib/ui/components/brand_md/brand_md.dart | 2 +- lib/ui/components/error/error.dart | 24 ++++----- lib/ui/pages/devices/new_device.dart | 2 +- lib/ui/pages/recovery_key/recovery_key.dart | 4 +- lib/ui/pages/server_details/cpu_chart.dart | 4 +- .../pages/server_details/network_charts.dart | 4 +- lib/ui/pages/setup/initializing.dart | 9 +++- .../recovering/recover_by_new_device_key.dart | 4 +- .../recovering/recover_by_old_token.dart | 4 +- .../recovering/recover_by_recovery_key.dart | 4 +- .../recovery_confirm_backblaze.dart | 14 +++-- .../recovery_confirm_cloudflare.dart | 12 +++-- .../recovery_hentzner_connected.dart | 12 +++-- .../recovering/recovery_method_select.dart | 2 + .../setup/recovering/recovery_routing.dart | 4 -- lib/ui/pages/users/user_details.dart | 3 +- lib/utils/extensions/text_extensions.dart | 7 ++- lib/utils/route_transitions/slide_bottom.dart | 39 ++++++++------ lib/utils/route_transitions/slide_right.dart | 39 ++++++++------ test/widget_test.dart | 54 +++++++++++-------- 35 files changed, 208 insertions(+), 152 deletions(-) diff --git a/lib/config/brand_theme.dart b/lib/config/brand_theme.dart index 9487fe5c..3ad0623c 100644 --- a/lib/config/brand_theme.dart +++ b/lib/config/brand_theme.dart @@ -82,6 +82,7 @@ ThemeData darkTheme = lightTheme.copyWith( ), ); -const EdgeInsets paddingH15V30 = EdgeInsets.symmetric(horizontal: 15, vertical: 30); +const EdgeInsets paddingH15V30 = + EdgeInsets.symmetric(horizontal: 15, vertical: 30); const EdgeInsets paddingH15V0 = EdgeInsets.symmetric(horizontal: 15); diff --git a/lib/config/hive_config.dart b/lib/config/hive_config.dart index f4d67c7c..03355311 100644 --- a/lib/config/hive_config.dart +++ b/lib/config/hive_config.dart @@ -25,7 +25,8 @@ class HiveConfig { await Hive.openBox(BNames.appSettingsBox); final HiveAesCipher cipher = HiveAesCipher( - await getEncryptedKey(BNames.serverInstallationEncryptionKey),); + await getEncryptedKey(BNames.serverInstallationEncryptionKey), + ); await Hive.openBox(BNames.usersDeprecated); await Hive.openBox(BNames.usersBox, encryptionCipher: cipher); diff --git a/lib/config/text_themes.dart b/lib/config/text_themes.dart index b7224622..63b4b99c 100644 --- a/lib/config/text_themes.dart +++ b/lib/config/text_themes.dart @@ -63,9 +63,11 @@ final TextStyle buttonTitleText = defaultTextStyle.copyWith( height: 1, ); -final TextStyle mediumStyle = defaultTextStyle.copyWith(fontSize: 13, height: 1.53); +final TextStyle mediumStyle = + defaultTextStyle.copyWith(fontSize: 13, height: 1.53); -final TextStyle smallStyle = defaultTextStyle.copyWith(fontSize: 11, height: 1.45); +final TextStyle smallStyle = + defaultTextStyle.copyWith(fontSize: 11, height: 1.45); const TextStyle progressTextStyleLight = TextStyle( fontSize: 11, diff --git a/lib/logic/cubit/forms/setup/initializing/domain_cloudflare.dart b/lib/logic/cubit/forms/setup/initializing/domain_cloudflare.dart index db7044f4..89b50a62 100644 --- a/lib/logic/cubit/forms/setup/initializing/domain_cloudflare.dart +++ b/lib/logic/cubit/forms/setup/initializing/domain_cloudflare.dart @@ -61,7 +61,6 @@ class Loading extends DomainSetupState { enum LoadingTypes { loadingDomain, saving } class Loaded extends DomainSetupState { - Loaded(this.domain); final String domain; } diff --git a/lib/logic/cubit/providers/providers_cubit.dart b/lib/logic/cubit/providers/providers_cubit.dart index eb33046f..d3ce60b9 100644 --- a/lib/logic/cubit/providers/providers_cubit.dart +++ b/lib/logic/cubit/providers/providers_cubit.dart @@ -12,7 +12,8 @@ class ProvidersCubit extends Cubit { ProvidersCubit() : super(InitialProviderState()); void connect(final ProviderModel provider) { - final ProvidersState newState = state.updateElement(provider, StateType.stable); + final ProvidersState newState = + state.updateElement(provider, StateType.stable); emit(newState); } } diff --git a/lib/logic/cubit/recovery_key/recovery_key_cubit.dart b/lib/logic/cubit/recovery_key/recovery_key_cubit.dart index 032fd31b..abd7b2fa 100644 --- a/lib/logic/cubit/recovery_key/recovery_key_cubit.dart +++ b/lib/logic/cubit/recovery_key/recovery_key_cubit.dart @@ -19,8 +19,12 @@ class RecoveryKeyCubit if (status == null) { emit(state.copyWith(loadingStatus: LoadingStatus.error)); } else { - emit(state.copyWith( - status: status, loadingStatus: LoadingStatus.success,),); + emit( + state.copyWith( + status: status, + loadingStatus: LoadingStatus.success, + ), + ); } } else { emit(state.copyWith(loadingStatus: LoadingStatus.uninitialized)); @@ -44,7 +48,8 @@ class RecoveryKeyCubit emit(state.copyWith(loadingStatus: LoadingStatus.error)); } else { emit( - state.copyWith(status: status, loadingStatus: LoadingStatus.success),); + state.copyWith(status: status, loadingStatus: LoadingStatus.success), + ); } } @@ -69,7 +74,6 @@ class RecoveryKeyCubit } class GenerationError extends Error { - GenerationError(this.message); final String message; } diff --git a/lib/logic/cubit/server_detailed_info/server_detailed_info_cubit.dart b/lib/logic/cubit/server_detailed_info/server_detailed_info_cubit.dart index ac5cbec5..613069b0 100644 --- a/lib/logic/cubit/server_detailed_info/server_detailed_info_cubit.dart +++ b/lib/logic/cubit/server_detailed_info/server_detailed_info_cubit.dart @@ -18,12 +18,14 @@ class ServerDetailsCubit extends Cubit { if (isReadyToCheck) { emit(ServerDetailsLoading()); final ServerDetailsRepositoryDto data = await repository.load(); - emit(Loaded( - serverInfo: data.hetznerServerInfo, - autoUpgradeSettings: data.autoUpgradeSettings, - serverTimezone: data.serverTimezone, - checkTime: DateTime.now(), - ),); + emit( + Loaded( + serverInfo: data.hetznerServerInfo, + autoUpgradeSettings: data.autoUpgradeSettings, + serverTimezone: data.serverTimezone, + checkTime: DateTime.now(), + ), + ); } else { emit(ServerDetailsNotReady()); } diff --git a/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart b/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart index 00bd9ec4..97dc6292 100644 --- a/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart +++ b/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart @@ -19,7 +19,6 @@ class ServerDetailsRepository { } class ServerDetailsRepositoryDto { - ServerDetailsRepositoryDto({ required this.hetznerServerInfo, required this.serverTimezone, diff --git a/lib/logic/cubit/server_installation/server_installation_cubit.dart b/lib/logic/cubit/server_installation/server_installation_cubit.dart index 622abaf7..ef83104d 100644 --- a/lib/logic/cubit/server_installation/server_installation_cubit.dart +++ b/lib/logic/cubit/server_installation/server_installation_cubit.dart @@ -146,8 +146,9 @@ class ServerInstallationCubit extends Cubit { } } - void startServerIfDnsIsOkay( - {final ServerInstallationNotFinished? state,}) async { + void startServerIfDnsIsOkay({ + final ServerInstallationNotFinished? state, + }) async { final ServerInstallationNotFinished dataState = state ?? this.state as ServerInstallationNotFinished; @@ -345,7 +346,9 @@ class ServerInstallationCubit extends Cubit { } void tryToRecover( - final String token, final ServerRecoveryMethods method,) async { + final String token, + final ServerRecoveryMethods method, + ) async { final ServerInstallationRecovery dataState = state as ServerInstallationRecovery; final ServerDomain? serverDomain = dataState.serverDomain; @@ -395,6 +398,9 @@ class ServerInstallationCubit extends Cubit { } void revertRecoveryStep() { + if (state is ServerInstallationEmpty) { + return; + } final ServerInstallationRecovery dataState = state as ServerInstallationRecovery; switch (dataState.currentStep) { @@ -535,7 +541,8 @@ class ServerInstallationCubit extends Cubit { } void finishRecoveryProcess( - final BackblazeCredential backblazeCredential,) async { + final BackblazeCredential backblazeCredential, + ) async { await repository.saveIsServerStarted(true); await repository.saveIsServerResetedFirstTime(true); await repository.saveIsServerResetedSecondTime(true); diff --git a/lib/logic/models/hive/backblaze_bucket.dart b/lib/logic/models/hive/backblaze_bucket.dart index ded04b65..39b98cf5 100644 --- a/lib/logic/models/hive/backblaze_bucket.dart +++ b/lib/logic/models/hive/backblaze_bucket.dart @@ -4,11 +4,12 @@ part 'backblaze_bucket.g.dart'; @HiveType(typeId: 6) class BackblazeBucket { - BackblazeBucket( - {required this.bucketId, - required this.bucketName, - required this.applicationKeyId, - required this.applicationKey,}); + BackblazeBucket({ + required this.bucketId, + required this.bucketName, + required this.applicationKeyId, + required this.applicationKey, + }); @HiveField(0) final String bucketId; diff --git a/lib/logic/models/hive/server_details.dart b/lib/logic/models/hive/server_details.dart index 1924aab7..5188e62e 100644 --- a/lib/logic/models/hive/server_details.dart +++ b/lib/logic/models/hive/server_details.dart @@ -35,15 +35,16 @@ class ServerHostingDetails { @HiveField(6, defaultValue: ServerProvider.hetzner) final ServerProvider provider; - ServerHostingDetails copyWith({final DateTime? startTime}) => ServerHostingDetails( - startTime: startTime ?? this.startTime, - createTime: createTime, - id: id, - ip4: ip4, - volume: volume, - apiToken: apiToken, - provider: provider, - ); + ServerHostingDetails copyWith({final DateTime? startTime}) => + ServerHostingDetails( + startTime: startTime ?? this.startTime, + createTime: createTime, + id: id, + ip4: ip4, + volume: volume, + apiToken: apiToken, + provider: provider, + ); @override String toString() => id.toString(); diff --git a/lib/logic/models/json/api_token.dart b/lib/logic/models/json/api_token.dart index 5e33fd4f..980d5132 100644 --- a/lib/logic/models/json/api_token.dart +++ b/lib/logic/models/json/api_token.dart @@ -4,7 +4,6 @@ part 'api_token.g.dart'; @JsonSerializable() class ApiToken { - factory ApiToken.fromJson(final Map json) => _$ApiTokenFromJson(json); ApiToken({ diff --git a/lib/logic/models/json/backup.dart b/lib/logic/models/json/backup.dart index 7a5ad963..2e1215db 100644 --- a/lib/logic/models/json/backup.dart +++ b/lib/logic/models/json/backup.dart @@ -4,8 +4,8 @@ part 'backup.g.dart'; @JsonSerializable() class Backup { - - factory Backup.fromJson(final Map json) => _$BackupFromJson(json); + factory Backup.fromJson(final Map json) => + _$BackupFromJson(json); Backup({required this.time, required this.id}); // Time of the backup @@ -33,13 +33,13 @@ enum BackupStatusEnum { @JsonSerializable() class BackupStatus { - factory BackupStatus.fromJson(final Map json) => _$BackupStatusFromJson(json); - BackupStatus( - {required this.status, - required this.progress, - required this.errorMessage,}); + BackupStatus({ + required this.status, + required this.progress, + required this.errorMessage, + }); final BackupStatusEnum status; final double progress; diff --git a/lib/logic/models/json/device_token.dart b/lib/logic/models/json/device_token.dart index 53eac22f..2ec23012 100644 --- a/lib/logic/models/json/device_token.dart +++ b/lib/logic/models/json/device_token.dart @@ -4,7 +4,6 @@ part 'device_token.g.dart'; @JsonSerializable() class DeviceToken { - factory DeviceToken.fromJson(final Map json) => _$DeviceTokenFromJson(json); DeviceToken({ diff --git a/lib/logic/models/server_status.dart b/lib/logic/models/server_status.dart index b191ee16..e6b15f25 100644 --- a/lib/logic/models/server_status.dart +++ b/lib/logic/models/server_status.dart @@ -1,5 +1,4 @@ class ServerStatus { - ServerStatus({ required this.http, this.imap = StatusTypes.nodata, @@ -10,10 +9,10 @@ class ServerStatus { final StatusTypes smtp; ServerStatus fromJson(final Map json) => ServerStatus( - http: statusTypeFromNumber(json['http']), - imap: statusTypeFromNumber(json['imap']), - smtp: statusTypeFromNumber(json['smtp']), - ); + http: statusTypeFromNumber(json['http']), + imap: statusTypeFromNumber(json['imap']), + smtp: statusTypeFromNumber(json['smtp']), + ); } StatusTypes statusTypeFromNumber(final int? number) { diff --git a/lib/ui/components/brand_md/brand_md.dart b/lib/ui/components/brand_md/brand_md.dart index 3de9f86a..249895a9 100644 --- a/lib/ui/components/brand_md/brand_md.dart +++ b/lib/ui/components/brand_md/brand_md.dart @@ -55,7 +55,7 @@ class _BrandMarkdownState extends State { color: isDark ? BrandColors.white : null, ), ); - return Markdown( + return MarkdownBody( shrinkWrap: true, styleSheet: markdown, onTapLink: (final String text, final String? href, final String title) { diff --git a/lib/ui/components/error/error.dart b/lib/ui/components/error/error.dart index 9fe651cc..d12af1a3 100644 --- a/lib/ui/components/error/error.dart +++ b/lib/ui/components/error/error.dart @@ -8,19 +8,19 @@ class BrandError extends StatelessWidget { @override Widget build(final BuildContext context) => SafeArea( - child: Scaffold( - body: Center( - child: SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text(error.toString()), - const Text('stackTrace: '), - Text(stackTrace.toString()), - ], + child: Scaffold( + body: Center( + child: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text(error.toString()), + const Text('stackTrace: '), + Text(stackTrace.toString()), + ], + ), ), ), ), - ), - ); + ); } diff --git a/lib/ui/pages/devices/new_device.dart b/lib/ui/pages/devices/new_device.dart index 56f3d47f..e8173db0 100644 --- a/lib/ui/pages/devices/new_device.dart +++ b/lib/ui/pages/devices/new_device.dart @@ -66,7 +66,7 @@ class _KeyDisplay extends StatelessWidget { const SizedBox(height: 16), Text( 'devices.add_new_device_screen.tip'.tr(), - style: Theme.of(context).textTheme.bodyMedium!, + style: Theme.of(context).textTheme.bodyMedium, ), ], ), diff --git a/lib/ui/pages/recovery_key/recovery_key.dart b/lib/ui/pages/recovery_key/recovery_key.dart index f808f1c3..44147f57 100644 --- a/lib/ui/pages/recovery_key/recovery_key.dart +++ b/lib/ui/pages/recovery_key/recovery_key.dart @@ -234,7 +234,9 @@ class _RecoveryKeyConfigurationState extends State { : null, expirationDate: _isExpirationToggled ? _selectedDate : null, ); - if (!mounted) return; + if (!mounted) { + return; + } setState(() { _isLoading = false; }); diff --git a/lib/ui/pages/server_details/cpu_chart.dart b/lib/ui/pages/server_details/cpu_chart.dart index 35d6fff4..11f1eaef 100644 --- a/lib/ui/pages/server_details/cpu_chart.dart +++ b/lib/ui/pages/server_details/cpu_chart.dart @@ -8,11 +8,11 @@ import 'package:intl/intl.dart'; class CpuChart extends StatelessWidget { const CpuChart({ - final Key? key, required this.data, required this.period, required this.start, - }) : super(key: key); + final super.key, + }); final List data; final Period period; diff --git a/lib/ui/pages/server_details/network_charts.dart b/lib/ui/pages/server_details/network_charts.dart index 838b4ebb..d1375ae6 100644 --- a/lib/ui/pages/server_details/network_charts.dart +++ b/lib/ui/pages/server_details/network_charts.dart @@ -10,11 +10,11 @@ import 'package:intl/intl.dart'; class NetworkChart extends StatelessWidget { const NetworkChart({ - final Key? key, required this.listData, required this.period, required this.start, - }) : super(key: key); + final super.key, + }); final List> listData; final Period period; diff --git a/lib/ui/pages/setup/initializing.dart b/lib/ui/pages/setup/initializing.dart index 1710113b..9c92f161 100644 --- a/lib/ui/pages/setup/initializing.dart +++ b/lib/ui/pages/setup/initializing.dart @@ -567,8 +567,13 @@ class _HowTo extends StatelessWidget { isExpended: true, child: Padding( padding: paddingH15V0, - child: BrandMarkdown( - fileName: fileName, + child: ListView( + padding: const EdgeInsets.symmetric(vertical: 16), + children: [ + BrandMarkdown( + fileName: fileName, + ), + ], ), ), ); diff --git a/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart b/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart index d9fb3952..a9f37b19 100644 --- a/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart +++ b/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart @@ -17,8 +17,8 @@ class RecoverByNewDeviceKeyInstruction extends StatelessWidget { heroSubtitle: 'recovering.method_device_description'.tr(), hasBackButton: true, hasFlashButton: false, - onBackButtonPressed: () => - context.read().revertRecoveryStep(), + onBackButtonPressed: + context.read().revertRecoveryStep, children: [ FilledButton( title: 'recovering.method_device_button'.tr(), diff --git a/lib/ui/pages/setup/recovering/recover_by_old_token.dart b/lib/ui/pages/setup/recovering/recover_by_old_token.dart index 6d3831f9..e3507a0e 100644 --- a/lib/ui/pages/setup/recovering/recover_by_old_token.dart +++ b/lib/ui/pages/setup/recovering/recover_by_old_token.dart @@ -28,8 +28,8 @@ class RecoverByOldTokenInstruction extends StatelessWidget { heroTitle: 'recovering.recovery_main_header'.tr(), hasBackButton: true, hasFlashButton: false, - onBackButtonPressed: () => - context.read().revertRecoveryStep(), + onBackButtonPressed: + context.read().revertRecoveryStep, children: [ BrandMarkdown( fileName: instructionFilename, diff --git a/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart b/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart index a6cc44cd..f729524e 100644 --- a/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart +++ b/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart @@ -31,8 +31,8 @@ class RecoverByRecoveryKey extends StatelessWidget { heroSubtitle: 'recovering.method_recovery_input_description'.tr(), hasBackButton: true, hasFlashButton: false, - onBackButtonPressed: () => - context.read().revertRecoveryStep(), + onBackButtonPressed: + context.read().revertRecoveryStep, children: [ CubitFormTextField( formFieldCubit: diff --git a/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart b/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart index 2513b054..2b558727 100644 --- a/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart +++ b/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart @@ -10,7 +10,7 @@ import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.da import 'package:selfprivacy/ui/components/brand_md/brand_md.dart'; class RecoveryConfirmBackblaze extends StatelessWidget { - const RecoveryConfirmBackblaze({final Key? key}) : super(key: key); + const RecoveryConfirmBackblaze({final super.key}); @override Widget build(final BuildContext context) { @@ -59,13 +59,17 @@ class RecoveryConfirmBackblaze extends StatelessWidget { context: context, isScrollControlled: true, backgroundColor: Colors.transparent, - builder: (final BuildContext context) => - const BrandBottomSheet( + builder: (final BuildContext context) => BrandBottomSheet( isExpended: true, child: Padding( padding: paddingH15V0, - child: BrandMarkdown( - fileName: 'how_backblaze', + child: ListView( + padding: const EdgeInsets.symmetric(vertical: 16), + children: const [ + BrandMarkdown( + fileName: 'how_backblaze', + ), + ], ), ), ), diff --git a/lib/ui/pages/setup/recovering/recovery_confirm_cloudflare.dart b/lib/ui/pages/setup/recovering/recovery_confirm_cloudflare.dart index b64ca6ae..8cbdbe6c 100644 --- a/lib/ui/pages/setup/recovering/recovery_confirm_cloudflare.dart +++ b/lib/ui/pages/setup/recovering/recovery_confirm_cloudflare.dart @@ -52,13 +52,17 @@ class RecoveryConfirmCloudflare extends StatelessWidget { context: context, isScrollControlled: true, backgroundColor: Colors.transparent, - builder: (final BuildContext context) => - const BrandBottomSheet( + builder: (final BuildContext context) => BrandBottomSheet( isExpended: true, child: Padding( padding: paddingH15V0, - child: BrandMarkdown( - fileName: 'how_cloudflare', + child: ListView( + padding: const EdgeInsets.symmetric(vertical: 16), + children: const [ + BrandMarkdown( + fileName: 'how_cloudflare', + ), + ], ), ), ), diff --git a/lib/ui/pages/setup/recovering/recovery_hentzner_connected.dart b/lib/ui/pages/setup/recovering/recovery_hentzner_connected.dart index 29506e8b..e1812b32 100644 --- a/lib/ui/pages/setup/recovering/recovery_hentzner_connected.dart +++ b/lib/ui/pages/setup/recovering/recovery_hentzner_connected.dart @@ -54,13 +54,17 @@ class RecoveryHetznerConnected extends StatelessWidget { context: context, isScrollControlled: true, backgroundColor: Colors.transparent, - builder: (final BuildContext context) => - const BrandBottomSheet( + builder: (final BuildContext context) => BrandBottomSheet( isExpended: true, child: Padding( padding: paddingH15V0, - child: BrandMarkdown( - fileName: 'how_hetzner', + child: ListView( + padding: const EdgeInsets.symmetric(vertical: 16), + children: const [ + BrandMarkdown( + fileName: 'how_hetzner', + ), + ], ), ), ), diff --git a/lib/ui/pages/setup/recovering/recovery_method_select.dart b/lib/ui/pages/setup/recovering/recovery_method_select.dart index 8abe3a27..fe622acb 100644 --- a/lib/ui/pages/setup/recovering/recovery_method_select.dart +++ b/lib/ui/pages/setup/recovering/recovery_method_select.dart @@ -17,6 +17,8 @@ class RecoveryMethodSelect extends StatelessWidget { heroSubtitle: 'recovering.method_select_description'.tr(), hasBackButton: true, hasFlashButton: false, + onBackButtonPressed: + context.read().revertRecoveryStep, children: [ BrandCards.outlined( child: ListTile( diff --git a/lib/ui/pages/setup/recovering/recovery_routing.dart b/lib/ui/pages/setup/recovering/recovery_routing.dart index e5a86074..17c5963f 100644 --- a/lib/ui/pages/setup/recovering/recovery_routing.dart +++ b/lib/ui/pages/setup/recovering/recovery_routing.dart @@ -108,10 +108,6 @@ class SelectDomainToRecover extends StatelessWidget { heroSubtitle: 'recovering.domain_recovery_description'.tr(), hasBackButton: true, hasFlashButton: false, - onBackButtonPressed: - serverInstallation is ServerInstallationRecovery - ? serverInstallation.clearAppConfig - : null, children: [ CubitFormTextField( formFieldCubit: diff --git a/lib/ui/pages/users/user_details.dart b/lib/ui/pages/users/user_details.dart index f7e212c8..d758c1f4 100644 --- a/lib/ui/pages/users/user_details.dart +++ b/lib/ui/pages/users/user_details.dart @@ -2,10 +2,9 @@ part of 'users.dart'; class _UserDetails extends StatelessWidget { const _UserDetails({ - final Key? key, required this.user, required this.isRootUser, - }) : super(key: key); + }); final User user; final bool isRootUser; diff --git a/lib/utils/extensions/text_extensions.dart b/lib/utils/extensions/text_extensions.dart index 6afaee08..bfacc600 100644 --- a/lib/utils/extensions/text_extensions.dart +++ b/lib/utils/extensions/text_extensions.dart @@ -32,7 +32,9 @@ extension TextExtension on Text { final String? semanticsLabel, final TextWidthBasis? textWidthBasis, final TextStyle? style, - }) => Text(data!, + }) => + Text( + data!, key: key ?? this.key, strutStyle: strutStyle ?? this.strutStyle, textAlign: textAlign ?? this.textAlign, @@ -44,5 +46,6 @@ extension TextExtension on Text { maxLines: maxLines ?? this.maxLines, semanticsLabel: semanticsLabel ?? this.semanticsLabel, textWidthBasis: textWidthBasis ?? this.textWidthBasis, - style: style != null ? this.style?.merge(style) ?? style : this.style,); + style: style != null ? this.style?.merge(style) ?? style : this.style, + ); } diff --git a/lib/utils/route_transitions/slide_bottom.dart b/lib/utils/route_transitions/slide_bottom.dart index 374a5e90..e187b4d7 100644 --- a/lib/utils/route_transitions/slide_bottom.dart +++ b/lib/utils/route_transitions/slide_bottom.dart @@ -12,24 +12,25 @@ Function transitionsBuilder = ( final Animation animation, final Animation secondaryAnimation, final Widget child, -) => SlideTransition( - position: Tween( - begin: const Offset(0, 1), - end: Offset.zero, - ).animate(animation), - child: Container( - decoration: animation.isCompleted - ? null - : const BoxDecoration( - border: Border( - bottom: BorderSide( - color: Colors.black, +) => + SlideTransition( + position: Tween( + begin: const Offset(0, 1), + end: Offset.zero, + ).animate(animation), + child: Container( + decoration: animation.isCompleted + ? null + : const BoxDecoration( + border: Border( + bottom: BorderSide( + color: Colors.black, + ), ), ), - ), - child: child, - ), - ); + child: child, + ), + ); class SlideBottomRoute extends PageRouteBuilder { SlideBottomRoute(this.widget) @@ -37,7 +38,11 @@ class SlideBottomRoute extends PageRouteBuilder { transitionDuration: const Duration(milliseconds: 150), pageBuilder: pageBuilder(widget), transitionsBuilder: transitionsBuilder as Widget Function( - BuildContext, Animation, Animation, Widget,), + BuildContext, + Animation, + Animation, + Widget, + ), ); final Widget widget; diff --git a/lib/utils/route_transitions/slide_right.dart b/lib/utils/route_transitions/slide_right.dart index 774dcaff..eae4414d 100644 --- a/lib/utils/route_transitions/slide_right.dart +++ b/lib/utils/route_transitions/slide_right.dart @@ -12,31 +12,36 @@ Function transitionsBuilder = ( final Animation animation, final Animation secondaryAnimation, final Widget child, -) => SlideTransition( - position: Tween( - begin: const Offset(-1, 0), - end: Offset.zero, - ).animate(animation), - child: Container( - decoration: animation.isCompleted - ? null - : const BoxDecoration( - border: Border( - right: BorderSide( - color: Colors.black, +) => + SlideTransition( + position: Tween( + begin: const Offset(-1, 0), + end: Offset.zero, + ).animate(animation), + child: Container( + decoration: animation.isCompleted + ? null + : const BoxDecoration( + border: Border( + right: BorderSide( + color: Colors.black, + ), ), ), - ), - child: child, - ), - ); + child: child, + ), + ); class SlideRightRoute extends PageRouteBuilder { SlideRightRoute(this.widget) : super( pageBuilder: pageBuilder(widget), transitionsBuilder: transitionsBuilder as Widget Function( - BuildContext, Animation, Animation, Widget,), + BuildContext, + Animation, + Animation, + Widget, + ), ); final Widget widget; diff --git a/test/widget_test.dart b/test/widget_test.dart index 72a8e56e..b8799e1f 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -6,9 +6,12 @@ void main() { group('StringGenerators', () { group('Basic', () { test('assert chart empty', () { - expect(() { - StringGenerators.getRandomString(8); - }, throwsAssertionError,); + expect( + () { + StringGenerators.getRandomString(8); + }, + throwsAssertionError, + ); }); test('only lowercase string', () { @@ -27,8 +30,11 @@ void main() { test('only uppercase string', () { const int length = 8; - final String generatedString = StringGenerators.getRandomString(length, - hasLowercaseLetters: false, hasUppercaseLetters: true,); + final String generatedString = StringGenerators.getRandomString( + length, + hasLowercaseLetters: false, + hasUppercaseLetters: true, + ); expect(generatedString, isNot(matches(regExpNewLines))); expect(generatedString, isNot(matches(regExpWhiteSpaces))); @@ -41,10 +47,12 @@ void main() { test('only numbers string', () { const int length = 8; - final String generatedString = StringGenerators.getRandomString(length, - hasLowercaseLetters: false, - hasUppercaseLetters: false, - hasNumbers: true,); + final String generatedString = StringGenerators.getRandomString( + length, + hasLowercaseLetters: false, + hasUppercaseLetters: false, + hasNumbers: true, + ); expect(generatedString, isNot(matches(regExpNewLines))); expect(generatedString, isNot(matches(regExpWhiteSpaces))); @@ -78,12 +86,14 @@ void main() { group('Strict mode', () { test('All', () { const int length = 5; - final String generatedString = StringGenerators.getRandomString(length, - hasLowercaseLetters: true, - hasUppercaseLetters: true, - hasNumbers: true, - hasSymbols: true, - isStrict: true,); + final String generatedString = StringGenerators.getRandomString( + length, + hasLowercaseLetters: true, + hasUppercaseLetters: true, + hasNumbers: true, + hasSymbols: true, + isStrict: true, + ); expect(generatedString, isNot(matches(regExpNewLines))); expect(generatedString, isNot(matches(regExpWhiteSpaces))); @@ -95,12 +105,14 @@ void main() { }); test('Lowercase letters and numbers', () { const int length = 3; - final String generatedString = StringGenerators.getRandomString(length, - hasLowercaseLetters: true, - hasUppercaseLetters: false, - hasNumbers: true, - hasSymbols: false, - isStrict: true,); + final String generatedString = StringGenerators.getRandomString( + length, + hasLowercaseLetters: true, + hasUppercaseLetters: false, + hasNumbers: true, + hasSymbols: false, + isStrict: true, + ); expect(generatedString, isNot(matches(regExpNewLines))); expect(generatedString, isNot(matches(regExpWhiteSpaces)));