chore(dart): Fix warnings that appeared at Dart 2.18 SDK

pull/143/head
NaiJi ✨ 2022-10-26 20:26:09 +04:00
parent f703e2c055
commit aa3dee585b
90 changed files with 191 additions and 206 deletions

View File

@ -16,7 +16,7 @@ import 'package:selfprivacy/logic/cubit/users/users_cubit.dart';
import 'package:selfprivacy/logic/cubit/provider_volumes/provider_volume_cubit.dart';
class BlocAndProviderConfig extends StatelessWidget {
const BlocAndProviderConfig({final super.key, this.child});
const BlocAndProviderConfig({super.key, this.child});
final Widget? child;

View File

@ -4,16 +4,4 @@ import 'package:flutter_bloc/flutter_bloc.dart';
class SimpleBlocObserver extends BlocObserver {
SimpleBlocObserver();
@override
void onError(
final BlocBase<dynamic> bloc,
final Object error,
final StackTrace stackTrace,
) {
// getIt<NavigationService>().showSnackBar(
// 'Bloc error: ${error.toString()}',
// );
super.onError(bloc, error, stackTrace);
}
}

View File

@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
class Localization extends StatelessWidget {
const Localization({
final super.key,
super.key,
this.child,
});

View File

@ -35,9 +35,9 @@ class GenericMutationResult {
class GenericJobMutationReturn extends GenericMutationResult {
GenericJobMutationReturn({
required final super.success,
required final super.code,
final super.message,
required super.success,
required super.code,
super.message,
this.job,
});
final ServerJob? job;

View File

@ -2,9 +2,9 @@ part of 'server.dart';
class UserMutationResult extends GenericMutationResult {
UserMutationResult({
required final super.success,
required final super.code,
final super.message,
required super.success,
required super.code,
super.message,
this.user,
});

View File

@ -2,9 +2,9 @@ part of 'server.dart';
class MigrateToBindsMutationReturn extends GenericMutationResult {
MigrateToBindsMutationReturn({
required final super.success,
required final super.code,
final super.message,
required super.success,
required super.code,
super.message,
this.jobUid,
});
final String? jobUid;

View File

@ -3,9 +3,9 @@ import 'package:selfprivacy/logic/api_maps/rest_maps/provider_api_settings.dart'
class DnsProviderApiSettings extends ProviderApiSettings {
const DnsProviderApiSettings({
final super.hasLogger = false,
final super.isWithToken = true,
final this.customToken,
super.hasLogger = false,
super.isWithToken = true,
this.customToken,
});
final String? customToken;
}

View File

@ -5,7 +5,6 @@ import 'dart:io';
import 'package:dio/dio.dart';
import 'package:selfprivacy/config/get_it_config.dart';
import 'package:selfprivacy/logic/api_maps/rest_maps/api_map.dart';
import 'package:selfprivacy/logic/common_enum/common_enum.dart';
import 'package:selfprivacy/logic/models/hive/backblaze_bucket.dart';
import 'package:selfprivacy/logic/models/hive/server_domain.dart';
import 'package:selfprivacy/logic/models/hive/user.dart';

View File

@ -13,7 +13,7 @@ import 'package:selfprivacy/logic/models/server_basic_info.dart';
import 'package:selfprivacy/utils/password_generator.dart';
class HetznerApi extends ServerProviderApi with VolumeProviderApi {
HetznerApi({final this.hasLogger = false, final this.isWithToken = true});
HetznerApi({this.hasLogger = false, this.isWithToken = true});
@override
bool hasLogger;
@override

View File

@ -11,7 +11,7 @@ class UserFormCubit extends FormCubit {
UserFormCubit({
required this.jobsCubit,
required final FieldCubitFactory fieldFactory,
final this.initialUser,
this.initialUser,
}) {
if (initialUser == null) {
login = fieldFactory.createUserLoginField();

View File

@ -76,7 +76,7 @@ abstract class ServerInstallationState extends Equatable {
class TimerState extends ServerInstallationNotFinished {
TimerState({
required this.dataState,
required final super.isLoading,
required super.isLoading,
this.timerStart,
this.duration,
}) : super(
@ -119,17 +119,17 @@ enum ServerSetupProgress {
class ServerInstallationNotFinished extends ServerInstallationState {
const ServerInstallationNotFinished({
required final super.isServerStarted,
required final super.isServerResetedFirstTime,
required final super.isServerResetedSecondTime,
required final this.isLoading,
required super.isServerStarted,
required super.isServerResetedFirstTime,
required super.isServerResetedSecondTime,
required this.isLoading,
required this.dnsMatches,
final super.providerApiToken,
final super.cloudFlareKey,
final super.backblazeCredential,
final super.serverDomain,
final super.rootUser,
final super.serverDetails,
super.providerApiToken,
super.cloudFlareKey,
super.backblazeCredential,
super.serverDomain,
super.rootUser,
super.serverDetails,
});
final bool isLoading;
final Map<String, bool>? dnsMatches;
@ -209,15 +209,15 @@ class ServerInstallationEmpty extends ServerInstallationNotFinished {
class ServerInstallationFinished extends ServerInstallationState {
const ServerInstallationFinished({
required final String super.providerApiToken,
required final String super.cloudFlareKey,
required final BackblazeCredential super.backblazeCredential,
required final ServerDomain super.serverDomain,
required final User super.rootUser,
required final ServerHostingDetails super.serverDetails,
required final super.isServerStarted,
required final super.isServerResetedFirstTime,
required final super.isServerResetedSecondTime,
required String super.providerApiToken,
required String super.cloudFlareKey,
required BackblazeCredential super.backblazeCredential,
required ServerDomain super.serverDomain,
required User super.rootUser,
required ServerHostingDetails super.serverDetails,
required super.isServerStarted,
required super.isServerResetedFirstTime,
required super.isServerResetedSecondTime,
});
@override
@ -260,12 +260,12 @@ class ServerInstallationRecovery extends ServerInstallationState {
const ServerInstallationRecovery({
required this.currentStep,
required this.recoveryCapabilities,
final super.providerApiToken,
final super.cloudFlareKey,
final super.backblazeCredential,
final super.serverDomain,
final super.rootUser,
final super.serverDetails,
super.providerApiToken,
super.cloudFlareKey,
super.backblazeCredential,
super.serverDomain,
super.rootUser,
super.serverDetails,
}) : super(
isServerStarted: true,
isServerResetedFirstTime: true,

View File

@ -1,7 +1,7 @@
import 'package:easy_localization/easy_localization.dart';
class DiskSize {
const DiskSize({final this.byte = 0});
const DiskSize({this.byte = 0});
DiskSize.fromKibibyte(final double kibibyte)
: this(byte: (kibibyte * 1024).round());

View File

@ -14,11 +14,11 @@ class ServerJob {
required this.uid,
required this.updatedAt,
required this.createdAt,
final this.error,
final this.progress,
final this.result,
final this.statusText,
final this.finishedAt,
this.error,
this.progress,
this.result,
this.statusText,
this.finishedAt,
});
ServerJob.fromGraphQL(final Query$GetApiJobs$jobs$getJobs serverJob)

View File

@ -32,12 +32,12 @@ class ServerBasicInfoWithValidators extends ServerBasicInfo {
);
ServerBasicInfoWithValidators({
required final super.id,
required final super.name,
required final super.reverseDns,
required final super.ip,
required final super.created,
required final super.volumeId,
required super.id,
required super.name,
required super.reverseDns,
required super.ip,
required super.created,
required super.volumeId,
required this.isIpValid,
required this.isReverseDnsValid,
});

View File

@ -7,6 +7,27 @@ import 'package:selfprivacy/logic/models/disk_size.dart';
import 'package:selfprivacy/logic/models/json/dns_records.dart';
class Service {
Service.fromGraphQL(final Query$AllServices$services$allServices service)
: this(
id: service.id,
displayName: service.displayName,
description: service.description,
isEnabled: service.isEnabled,
isRequired: service.isRequired,
isMovable: service.isMovable,
status: ServiceStatus.fromGraphQL(service.status),
storageUsage: ServiceStorageUsage(
used: DiskSize(byte: int.parse(service.storageUsage.usedSpace)),
volume: service.storageUsage.volume?.name,
),
// Decode the base64 encoded svg icon to text.
svgIcon: utf8.decode(base64.decode(service.svgIcon)),
dnsRecords: service.dnsRecords
?.map((final record) => DnsRecord.fromGraphQL(record))
.toList() ??
[],
url: service.url,
);
Service({
required this.id,
required this.displayName,
@ -40,28 +61,6 @@ class Service {
return '';
}
Service.fromGraphQL(final Query$AllServices$services$allServices service)
: this(
id: service.id,
displayName: service.displayName,
description: service.description,
isEnabled: service.isEnabled,
isRequired: service.isRequired,
isMovable: service.isMovable,
status: ServiceStatus.fromGraphQL(service.status),
storageUsage: ServiceStorageUsage(
used: DiskSize(byte: int.parse(service.storageUsage.usedSpace)),
volume: service.storageUsage.volume?.name,
),
// Decode the base64 encoded svg icon to text.
svgIcon: utf8.decode(base64.decode(service.svgIcon)),
dnsRecords: service.dnsRecords
?.map((final record) => DnsRecord.fromGraphQL(record))
.toList() ??
[],
url: service.url,
);
static Service empty = Service(
id: 'empty',
displayName: '',

View File

@ -60,7 +60,7 @@ class MyApp extends StatelessWidget {
const MyApp({
required this.lightThemeData,
required this.darkThemeData,
final super.key,
super.key,
});
final ThemeData lightThemeData;

View File

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
class ActionButton extends StatelessWidget {
const ActionButton({
final super.key,
super.key,
this.text,
this.onPressed,
this.isRed = false,

View File

@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
class BrandAlert extends AlertDialog {
BrandAlert({
final super.key,
super.key,
final String? title,
final String? contentText,
final super.actions,
super.actions,
}) : super(
title: title != null ? Text(title) : null,
content: title != null ? Text(contentText!) : null,

View File

@ -4,7 +4,7 @@ import 'package:selfprivacy/config/brand_colors.dart';
class BrandBottomSheet extends StatelessWidget {
const BrandBottomSheet({
required this.child,
final super.key,
super.key,
this.isExpended = false,
});

View File

@ -56,7 +56,7 @@ class BrandButton {
class IconTextButton extends StatelessWidget {
const IconTextButton({
final super.key,
super.key,
this.onPressed,
this.title,
this.icon,

View File

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
class FilledButton extends StatelessWidget {
const FilledButton({
final super.key,
super.key,
this.onPressed,
this.title,
this.child,
@ -17,13 +17,13 @@ class FilledButton extends StatelessWidget {
@override
Widget build(final BuildContext context) {
final ButtonStyle enabledStyle = ElevatedButton.styleFrom(
onPrimary: Theme.of(context).colorScheme.onPrimary,
primary: Theme.of(context).colorScheme.primary,
foregroundColor: Theme.of(context).colorScheme.onPrimary,
backgroundColor: Theme.of(context).colorScheme.primary,
).copyWith(elevation: ButtonStyleButton.allOrNull(0.0));
final ButtonStyle disabledStyle = ElevatedButton.styleFrom(
onPrimary: Theme.of(context).colorScheme.onSurface.withAlpha(30),
primary: Theme.of(context).colorScheme.onSurface.withAlpha(98),
foregroundColor: Theme.of(context).colorScheme.onSurface.withAlpha(30),
backgroundColor: Theme.of(context).colorScheme.onSurface.withAlpha(98),
).copyWith(elevation: ButtonStyleButton.allOrNull(0.0));
return ConstrainedBox(

View File

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
class BrandOutlinedButton extends StatelessWidget {
const BrandOutlinedButton({
final super.key,
super.key,
this.onPressed,
this.title,
this.child,

View File

@ -5,7 +5,7 @@ class SegmentedButtons extends StatelessWidget {
required this.isSelected,
required this.onPressed,
required this.titles,
final super.key,
super.key,
});
final List<bool> isSelected;

View File

@ -7,7 +7,7 @@ class FilledCard extends StatelessWidget {
this.tertiary = false,
this.error = false,
this.clipped = true,
final super.key,
super.key,
});
final Widget child;

View File

@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
class OutlinedCard extends StatelessWidget {
const OutlinedCard({
required this.child,
final super.key,
super.key,
});
final Widget child;

View File

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
class BrandHeader extends StatelessWidget {
const BrandHeader({
final super.key,
super.key,
this.title = '',
this.hasBackButton = false,
this.onBackButtonPressed,

View File

@ -5,7 +5,7 @@ import 'package:selfprivacy/ui/helpers/widget_size.dart';
class BrandHeroScreen extends StatelessWidget {
const BrandHeroScreen({
required this.children,
final super.key,
super.key,
this.hasBackButton = true,
this.hasFlashButton = true,
this.heroIcon,
@ -82,7 +82,7 @@ class HeroSliverAppBar extends StatefulWidget {
required this.hasBackButton,
required this.onBackButtonPressed,
required this.heroIconWidget,
final super.key,
super.key,
});
final String heroTitle;

View File

@ -6,7 +6,7 @@ class BrandLinearIndicator extends StatelessWidget {
required this.color,
required this.backgroundColor,
required this.height,
final super.key,
super.key,
});
final double value;

View File

@ -6,7 +6,7 @@ class BrandLoader {
}
class HorizontalLoader extends StatelessWidget {
const HorizontalLoader({final super.key});
const HorizontalLoader({super.key});
@override
Widget build(final BuildContext context) => Column(

View File

@ -9,7 +9,7 @@ import 'package:url_launcher/url_launcher_string.dart';
class BrandMarkdown extends StatefulWidget {
const BrandMarkdown({
required this.fileName,
final super.key,
super.key,
});
final String fileName;

View File

@ -6,7 +6,7 @@ import 'package:selfprivacy/config/brand_colors.dart';
class BrandRadio extends StatelessWidget {
const BrandRadio({
required this.isChecked,
final super.key,
super.key,
});
final bool isChecked;

View File

@ -4,7 +4,7 @@ class BrandSwitch extends StatelessWidget {
const BrandSwitch({
required this.onChanged,
required this.value,
final super.key,
super.key,
});
final ValueChanged<bool> onChanged;

View File

@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:selfprivacy/ui/components/brand_icons/brand_icons.dart';
class BrandTabBar extends StatefulWidget {
const BrandTabBar({final super.key, this.controller});
const BrandTabBar({super.key, this.controller});
final TabController? controller;
@override

View File

@ -147,7 +147,7 @@ class BrandText extends StatelessWidget {
const BrandText(
this.text, {
required this.type,
final super.key,
super.key,
this.style,
this.overflow,
this.softWrap,

View File

@ -9,7 +9,7 @@ class BrandTimer extends StatefulWidget {
const BrandTimer({
required this.startDateTime,
required this.duration,
final super.key,
super.key,
});
final DateTime startDateTime;

View File

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
class BrandError extends StatelessWidget {
const BrandError({final super.key, this.error, this.stackTrace});
const BrandError({super.key, this.error, this.stackTrace});
final Object? error;
final StackTrace? stackTrace;

View File

@ -6,7 +6,7 @@ class IconStatusMask extends StatelessWidget {
const IconStatusMask({
required this.icon,
required this.status,
final super.key,
super.key,
});
final Widget icon;

View File

@ -4,7 +4,7 @@ class InfoBox extends StatelessWidget {
const InfoBox({
required this.text,
this.isWarning = false,
final super.key,
super.key,
});
final String text;

View File

@ -16,7 +16,7 @@ import 'package:selfprivacy/ui/components/brand_text/brand_text.dart';
import 'package:selfprivacy/ui/components/jobs_content/server_job_card.dart';
class JobsContent extends StatelessWidget {
const JobsContent({final super.key});
const JobsContent({super.key});
@override
Widget build(final BuildContext context) {
@ -89,7 +89,8 @@ class JobsContent extends StatelessWidget {
const SizedBox(width: 10),
ElevatedButton(
style: ElevatedButton.styleFrom(
primary: Theme.of(context).colorScheme.errorContainer,
backgroundColor:
Theme.of(context).colorScheme.errorContainer,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),

View File

@ -4,8 +4,8 @@ import 'package:selfprivacy/ui/components/brand_linear_indicator/brand_linear_in
class ServerJobCard extends StatelessWidget {
const ServerJobCard({
required final this.serverJob,
final super.key,
required this.serverJob,
super.key,
});
final ServerJob serverJob;

View File

@ -7,7 +7,7 @@ class ListTileOnSurfaceVariant extends StatelessWidget {
this.leadingIcon,
this.onTap,
this.disableSubtitleOverflow = false,
final super.key,
super.key,
});
final String title;

View File

@ -6,7 +6,7 @@ import 'package:selfprivacy/utils/route_transitions/basic.dart';
import 'package:easy_localization/easy_localization.dart';
class NotReadyCard extends StatelessWidget {
const NotReadyCard({final super.key});
const NotReadyCard({super.key});
@override
Widget build(final BuildContext context) => Container(

View File

@ -7,7 +7,7 @@ import 'package:selfprivacy/ui/components/jobs_content/jobs_content.dart';
import 'package:selfprivacy/ui/helpers/modals.dart';
class BrandFab extends StatefulWidget {
const BrandFab({final super.key});
const BrandFab({super.key});
@override
State<BrandFab> createState() => _BrandFabState();

View File

@ -8,7 +8,7 @@ class ProgressBar extends StatefulWidget {
const ProgressBar({
required this.steps,
required this.activeIndex,
final super.key,
super.key,
});
final int activeIndex;

View File

@ -6,9 +6,9 @@ import 'package:selfprivacy/logic/models/disk_status.dart';
class ServerStorageListItem extends StatelessWidget {
const ServerStorageListItem({
required this.volume,
final this.showIcon = true,
final this.dense = false,
final super.key,
this.showIcon = true,
this.dense = false,
super.key,
});
final DiskVolume volume;
@ -52,7 +52,7 @@ class ConsumptionListItem extends StatelessWidget {
this.rightSideText,
this.icon,
this.dense = false,
final super.key,
super.key,
});
final String title;

View File

@ -9,7 +9,7 @@ class ServiceMigrationListItem extends StatelessWidget {
required this.diskStatus,
required this.selectedVolume,
required this.onChange,
final super.key,
super.key,
});
final Service service;
@ -54,7 +54,7 @@ class ServiceMigrationListItem extends StatelessWidget {
class ServiceConsumptionTitle extends StatelessWidget {
const ServiceConsumptionTitle({
required this.service,
final super.key,
super.key,
});
final Service service;

View File

@ -8,7 +8,7 @@ class ServiceStorageConsumptionListItem extends StatelessWidget {
required this.storageConsumptionText,
required this.color,
required this.icon,
final super.key,
super.key,
});
final String title;

View File

@ -8,7 +8,7 @@ class SwitcherBlock extends StatelessWidget {
required this.child,
required this.isActive,
required this.onChange,
final super.key,
super.key,
});
final Widget child;

View File

@ -5,7 +5,7 @@ class WidgetSize extends StatefulWidget {
const WidgetSize({
required this.onChange,
required this.child,
final super.key,
super.key,
});
final Widget child;
final Function onChange;
@ -27,12 +27,11 @@ class _WidgetSizeState extends State<WidgetSize> {
var widgetKey = GlobalKey();
Size? oldSize;
void postFrameCallback(_) {
void postFrameCallback(final _) {
final context = widgetKey.currentContext;
if (context == null) {
return;
}
;
final newSize = context.size;
if (oldSize == newSize) {

View File

@ -16,7 +16,7 @@ import 'package:selfprivacy/ui/components/brand_text/brand_text.dart';
GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
class BackupDetails extends StatefulWidget {
const BackupDetails({final super.key});
const BackupDetails({super.key});
@override
State<BackupDetails> createState() => _BackupDetailsState();

View File

@ -11,7 +11,7 @@ import 'package:selfprivacy/ui/pages/devices/new_device.dart';
import 'package:selfprivacy/utils/route_transitions/basic.dart';
class DevicesScreen extends StatefulWidget {
const DevicesScreen({final super.key});
const DevicesScreen({super.key});
@override
State<DevicesScreen> createState() => _DevicesScreenState();

View File

@ -7,7 +7,7 @@ import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
class NewDeviceScreen extends StatelessWidget {
const NewDeviceScreen({final super.key});
const NewDeviceScreen({super.key});
@override
Widget build(final BuildContext context) => BrandHeroScreen(

View File

@ -8,7 +8,7 @@ import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.da
import 'package:selfprivacy/ui/components/brand_icons/brand_icons.dart';
class DnsDetailsPage extends StatefulWidget {
const DnsDetailsPage({final super.key});
const DnsDetailsPage({super.key});
@override
State<DnsDetailsPage> createState() => _DnsDetailsPageState();

View File

@ -7,7 +7,7 @@ import 'package:package_info/package_info.dart';
import 'package:easy_localization/easy_localization.dart';
class AboutApplicationPage extends StatelessWidget {
const AboutApplicationPage({final super.key});
const AboutApplicationPage({super.key});
@override
Widget build(final BuildContext context) => SafeArea(

View File

@ -5,7 +5,7 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:selfprivacy/ui/components/brand_md/brand_md.dart';
class AboutUsPage extends StatelessWidget {
const AboutUsPage({final super.key});
const AboutUsPage({super.key});
@override
Widget build(final BuildContext context) => SafeArea(

View File

@ -12,7 +12,7 @@ import 'package:selfprivacy/utils/named_font_weight.dart';
import 'package:easy_localization/easy_localization.dart';
class AppSettingsPage extends StatefulWidget {
const AppSettingsPage({final super.key});
const AppSettingsPage({super.key});
@override
State<AppSettingsPage> createState() => _AppSettingsPageState();
@ -80,7 +80,7 @@ class _AppSettingsPageState extends State<AppSettingsPage> {
const SizedBox(width: 5),
ElevatedButton(
style: ElevatedButton.styleFrom(
primary: BrandColors.red1,
backgroundColor: BrandColors.red1,
),
child: Text(
'basis.reset'.tr(),
@ -145,7 +145,7 @@ class _AppSettingsPageState extends State<AppSettingsPage> {
const SizedBox(width: 5),
ElevatedButton(
style: ElevatedButton.styleFrom(
primary: BrandColors.red1,
backgroundColor: BrandColors.red1,
),
onPressed: isDisabled
? null

View File

@ -8,7 +8,7 @@ import 'package:selfprivacy/logic/models/message.dart';
import 'package:selfprivacy/ui/components/brand_header/brand_header.dart';
class Console extends StatefulWidget {
const Console({final super.key});
const Console({super.key});
@override
State<Console> createState() => _ConsoleState();

View File

@ -23,7 +23,7 @@ import 'package:selfprivacy/ui/pages/more/console.dart';
import 'package:selfprivacy/ui/pages/more/about_application.dart';
class MorePage extends StatelessWidget {
const MorePage({final super.key});
const MorePage({super.key});
@override
Widget build(final BuildContext context) {

View File

@ -6,7 +6,7 @@ import 'package:selfprivacy/utils/route_transitions/basic.dart';
import 'package:easy_localization/easy_localization.dart';
class OnboardingPage extends StatefulWidget {
const OnboardingPage({required this.nextPage, final super.key});
const OnboardingPage({required this.nextPage, super.key});
final Widget nextPage;
@override

View File

@ -18,7 +18,7 @@ import 'package:selfprivacy/utils/route_transitions/basic.dart';
GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
class ProvidersPage extends StatefulWidget {
const ProvidersPage({final super.key});
const ProvidersPage({super.key});
@override
State<ProvidersPage> createState() => _ProvidersPageState();
@ -119,11 +119,11 @@ class _ProvidersPageState extends State<ProvidersPage> {
class _Card extends StatelessWidget {
const _Card({
required final this.state,
required final this.icon,
required final this.title,
required final this.subtitle,
final this.onTap,
required this.state,
required this.icon,
required this.title,
required this.subtitle,
this.onTap,
});
final Function()? onTap;

View File

@ -14,7 +14,7 @@ import 'package:selfprivacy/ui/pages/recovery_key/recovery_key_receiving.dart';
import 'package:selfprivacy/utils/route_transitions/basic.dart';
class RecoveryKey extends StatefulWidget {
const RecoveryKey({final super.key});
const RecoveryKey({super.key});
@override
State<RecoveryKey> createState() => _RecoveryKeyState();
@ -61,7 +61,7 @@ class _RecoveryKeyState extends State<RecoveryKey> {
}
class RecoveryKeyContent extends StatefulWidget {
const RecoveryKeyContent({final super.key});
const RecoveryKeyContent({super.key});
@override
State<RecoveryKeyContent> createState() => _RecoveryKeyContentState();
@ -107,7 +107,7 @@ class _RecoveryKeyContentState extends State<RecoveryKeyContent> {
}
class RecoveryKeyStatusCard extends StatelessWidget {
const RecoveryKeyStatusCard({required this.isValid, final super.key});
const RecoveryKeyStatusCard({required this.isValid, super.key});
final bool isValid;
@ -144,7 +144,7 @@ class RecoveryKeyStatusCard extends StatelessWidget {
}
class RecoveryKeyInformation extends StatelessWidget {
const RecoveryKeyInformation({required this.state, final super.key});
const RecoveryKeyInformation({required this.state, super.key});
final RecoveryKeyState state;
@ -201,7 +201,7 @@ class RecoveryKeyInformation extends StatelessWidget {
}
class RecoveryKeyConfiguration extends StatefulWidget {
const RecoveryKeyConfiguration({final super.key});
const RecoveryKeyConfiguration({super.key});
@override
State<StatefulWidget> createState() => _RecoveryKeyConfigurationState();

View File

@ -5,7 +5,7 @@ import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.da
import 'package:selfprivacy/ui/components/info_box/info_box.dart';
class RecoveryKeyReceiving extends StatelessWidget {
const RecoveryKeyReceiving({required this.recoveryKey, final super.key});
const RecoveryKeyReceiving({required this.recoveryKey, super.key});
final String recoveryKey;

View File

@ -9,7 +9,7 @@ import 'package:selfprivacy/ui/pages/users/users.dart';
import 'package:selfprivacy/ui/components/pre_styled_buttons/flash_fab.dart';
class RootPage extends StatefulWidget {
const RootPage({final super.key});
const RootPage({super.key});
@override
State<RootPage> createState() => _RootPageState();

View File

@ -164,7 +164,7 @@ class Legend extends StatelessWidget {
const Legend({
required this.color,
required this.text,
final super.key,
super.key,
});
final String text;

View File

@ -10,7 +10,7 @@ class CpuChart extends StatelessWidget {
required this.data,
required this.period,
required this.start,
final super.key,
super.key,
});
final List<TimeSeriesData> data;

View File

@ -13,7 +13,7 @@ class NetworkChart extends StatelessWidget {
required this.listData,
required this.period,
required this.start,
final super.key,
super.key,
});
final List<List<TimeSeriesData>> listData;

View File

@ -34,7 +34,7 @@ part 'time_zone/time_zone.dart';
var navigatorKey = GlobalKey<NavigatorState>();
class ServerDetailsScreen extends StatefulWidget {
const ServerDetailsScreen({final super.key});
const ServerDetailsScreen({super.key});
@override
State<ServerDetailsScreen> createState() => _ServerDetailsScreenState();

View File

@ -7,7 +7,7 @@ final List<Location> locations = timeZoneDatabase.locations.values.toList()
);
class SelectTimezone extends StatefulWidget {
const SelectTimezone({final super.key});
const SelectTimezone({super.key});
@override
State<SelectTimezone> createState() => _SelectTimezoneState();
@ -117,7 +117,9 @@ class _SelectTimezoneState extends State<SelectTimezone> {
);
MapEntry<int, Container> locationToListTile(
final int key, final Location location) {
final int key,
final Location location,
) {
final duration = Duration(milliseconds: location.currentTimeZone.offset);
final area = location.currentTimeZone.abbreviation
.replaceAll(RegExp(r'[\d+()-]'), '');

View File

@ -9,9 +9,7 @@ import 'package:selfprivacy/ui/pages/root_route.dart';
import 'package:selfprivacy/utils/route_transitions/basic.dart';
class MigrationProcessPage extends StatefulWidget {
const MigrationProcessPage({
final super.key,
});
const MigrationProcessPage({super.key});
@override
State<MigrationProcessPage> createState() => _MigrationProcessPageState();

View File

@ -21,7 +21,7 @@ class ServicesMigrationPage extends StatefulWidget {
required this.services,
required this.diskStatus,
required this.isMigration,
final super.key,
super.key,
});
final DiskStatus diskStatus;

View File

@ -14,7 +14,7 @@ class ExtendingVolumePage extends StatefulWidget {
const ExtendingVolumePage({
required this.diskVolumeToResize,
required this.diskStatus,
final super.key,
super.key,
});
final DiskVolume diskVolumeToResize;

View File

@ -12,7 +12,10 @@ import 'package:selfprivacy/ui/components/storage_list_items/server_storage_list
import 'package:selfprivacy/utils/route_transitions/basic.dart';
class ServerStoragePage extends StatefulWidget {
const ServerStoragePage({required this.diskStatus, final super.key});
const ServerStoragePage({
required this.diskStatus,
super.key,
});
final DiskStatus diskStatus;
@ -75,7 +78,7 @@ class ServerStorageSection extends StatelessWidget {
required this.volume,
required this.diskStatus,
required this.services,
final super.key,
super.key,
});
final DiskVolume volume;
@ -120,7 +123,7 @@ class ServerConsumptionListTile extends StatelessWidget {
const ServerConsumptionListTile({
required this.service,
required this.volume,
final super.key,
super.key,
});
final Service service;

View File

@ -10,8 +10,8 @@ import 'package:selfprivacy/utils/route_transitions/basic.dart';
class StorageCard extends StatelessWidget {
const StorageCard({
required final this.diskStatus,
final super.key,
required this.diskStatus,
super.key,
});
final DiskStatus diskStatus;

View File

@ -1,7 +1,6 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:selfprivacy/logic/common_enum/common_enum.dart';
import 'package:selfprivacy/logic/cubit/client_jobs/client_jobs_cubit.dart';
import 'package:selfprivacy/logic/cubit/server_volumes/server_volume_cubit.dart';
import 'package:selfprivacy/logic/cubit/services/services_cubit.dart';
@ -14,7 +13,7 @@ import 'package:selfprivacy/utils/route_transitions/basic.dart';
import 'package:url_launcher/url_launcher.dart';
class ServicePage extends StatefulWidget {
const ServicePage({required this.serviceId, final super.key});
const ServicePage({required this.serviceId, super.key});
final String serviceId;
@ -147,7 +146,7 @@ class _ServicePageState extends State<ServicePage> {
class ServiceStatusCard extends StatelessWidget {
const ServiceStatusCard({
required this.status,
final super.key,
super.key,
});
final ServiceStatus status;

View File

@ -3,7 +3,6 @@ import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:selfprivacy/config/brand_theme.dart';
import 'package:selfprivacy/logic/common_enum/common_enum.dart';
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
import 'package:selfprivacy/logic/cubit/client_jobs/client_jobs_cubit.dart';
import 'package:selfprivacy/logic/cubit/services/services_cubit.dart';
@ -31,7 +30,7 @@ const switchableServices = [
];
class ServicesPage extends StatefulWidget {
const ServicesPage({final super.key});
const ServicesPage({super.key});
@override
State<ServicesPage> createState() => _ServicesPageState();

View File

@ -21,9 +21,7 @@ import 'package:selfprivacy/ui/pages/setup/recovering/recovery_routing.dart';
import 'package:selfprivacy/utils/route_transitions/basic.dart';
class InitializingPage extends StatelessWidget {
const InitializingPage({
final super.key,
});
const InitializingPage({super.key});
@override
Widget build(final BuildContext context) {

View File

@ -9,7 +9,7 @@ import 'package:selfprivacy/logic/cubit/server_installation/server_installation_
import 'package:selfprivacy/logic/cubit/forms/factories/field_cubit_factory.dart';
class RecoverByNewDeviceKeyInstruction extends StatelessWidget {
const RecoverByNewDeviceKeyInstruction({final super.key});
const RecoverByNewDeviceKeyInstruction({super.key});
@override
Widget build(final BuildContext context) => BrandHeroScreen(
@ -30,7 +30,7 @@ class RecoverByNewDeviceKeyInstruction extends StatelessWidget {
}
class RecoverByNewDeviceKeyInput extends StatelessWidget {
const RecoverByNewDeviceKeyInput({final super.key});
const RecoverByNewDeviceKeyInput({super.key});
@override
Widget build(final BuildContext context) {

View File

@ -12,7 +12,7 @@ class RecoverByOldTokenInstruction extends StatelessWidget {
@override
const RecoverByOldTokenInstruction({
required this.instructionFilename,
final super.key,
super.key,
});
@override
@ -49,7 +49,7 @@ class RecoverByOldTokenInstruction extends StatelessWidget {
}
class RecoverByOldToken extends StatelessWidget {
const RecoverByOldToken({final super.key});
const RecoverByOldToken({super.key});
@override
Widget build(final BuildContext context) {

View File

@ -8,7 +8,7 @@ import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
class RecoverByRecoveryKey extends StatelessWidget {
const RecoverByRecoveryKey({final super.key});
const RecoverByRecoveryKey({super.key});
@override
Widget build(final BuildContext context) {

View File

@ -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 super.key});
const RecoveryConfirmBackblaze({super.key});
@override
Widget build(final BuildContext context) {

View File

@ -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 RecoveryConfirmCloudflare extends StatelessWidget {
const RecoveryConfirmCloudflare({final super.key});
const RecoveryConfirmCloudflare({super.key});
@override
Widget build(final BuildContext context) {

View File

@ -8,7 +8,7 @@ import 'package:selfprivacy/ui/components/brand_cards/filled_card.dart';
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
class RecoveryConfirmServer extends StatefulWidget {
const RecoveryConfirmServer({final super.key});
const RecoveryConfirmServer({super.key});
@override
State<RecoveryConfirmServer> createState() => _RecoveryConfirmServerState();
@ -265,7 +265,7 @@ class IsValidStringDisplay extends StatelessWidget {
required this.isValid,
required this.textIfValid,
required this.textIfInvalid,
final super.key,
super.key,
});
final bool isValid;

View File

@ -11,7 +11,7 @@ import 'package:selfprivacy/logic/cubit/server_installation/server_installation_
import 'package:selfprivacy/ui/components/brand_md/brand_md.dart';
class RecoveryHetznerConnected extends StatelessWidget {
const RecoveryHetznerConnected({final super.key});
const RecoveryHetznerConnected({super.key});
@override
Widget build(final BuildContext context) {

View File

@ -9,7 +9,7 @@ import 'package:selfprivacy/ui/pages/setup/recovering/recover_by_old_token.dart'
import 'package:selfprivacy/utils/route_transitions/basic.dart';
class RecoveryMethodSelect extends StatelessWidget {
const RecoveryMethodSelect({final super.key});
const RecoveryMethodSelect({super.key});
@override
Widget build(final BuildContext context) => BrandHeroScreen(
@ -56,7 +56,7 @@ class RecoveryMethodSelect extends StatelessWidget {
}
class RecoveryFallbackMethodSelect extends StatelessWidget {
const RecoveryFallbackMethodSelect({final super.key});
const RecoveryFallbackMethodSelect({super.key});
@override
Widget build(final BuildContext context) =>

View File

@ -18,7 +18,7 @@ import 'package:selfprivacy/ui/pages/setup/recovering/recovery_method_select.dar
import 'package:selfprivacy/utils/route_transitions/basic.dart';
class RecoveryRouting extends StatelessWidget {
const RecoveryRouting({final super.key});
const RecoveryRouting({super.key});
@override
Widget build(final BuildContext context) {
@ -77,7 +77,7 @@ class RecoveryRouting extends StatelessWidget {
}
class SelectDomainToRecover extends StatelessWidget {
const SelectDomainToRecover({final super.key});
const SelectDomainToRecover({super.key});
@override
Widget build(final BuildContext context) {

View File

@ -1,7 +1,7 @@
part of 'users.dart';
class AddUserFab extends StatelessWidget {
const AddUserFab({final super.key});
const AddUserFab({super.key});
@override
Widget build(final BuildContext context) => FloatingActionButton.small(

View File

@ -1,7 +1,7 @@
part of 'users.dart';
class NewUser extends StatelessWidget {
const NewUser({final super.key});
const NewUser({super.key});
@override
Widget build(final BuildContext context) {

View File

@ -3,7 +3,7 @@ part of 'users.dart';
class ResetPassword extends StatelessWidget {
const ResetPassword({
required this.user,
final super.key,
super.key,
});
final User user;

View File

@ -3,7 +3,7 @@ part of 'users.dart';
class UserDetails extends StatelessWidget {
const UserDetails({
required this.login,
final super.key,
super.key,
});
final String login;
@ -249,7 +249,7 @@ class _SshKeysCard extends StatelessWidget {
}
class NewSshKey extends StatelessWidget {
const NewSshKey(this.user, {final super.key});
const NewSshKey(this.user, {super.key});
final User user;
@override

View File

@ -34,7 +34,7 @@ part 'add_user_fab.dart';
part 'reset_password.dart';
class UsersPage extends StatelessWidget {
const UsersPage({final super.key});
const UsersPage({super.key});
@override
Widget build(final BuildContext context) {