mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2025-02-02 14:16:58 +00:00
Linting
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
This commit is contained in:
parent
14acfdec6b
commit
5dcaa060a1
|
@ -9,6 +9,10 @@
|
|||
# packages, and plugins designed to encourage good coding practices.
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
analyzer:
|
||||
exclude:
|
||||
- lib/generated_plugin_registrant.dart
|
||||
|
||||
linter:
|
||||
# The lint rules applied to this project can be customized in the
|
||||
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
|
||||
|
|
|
@ -6,10 +6,10 @@ abstract class LengthStringValidation extends ValidationModel<String> {
|
|||
: super(predicate, errorMessage);
|
||||
|
||||
@override
|
||||
String? check(String value) {
|
||||
var length = value.length;
|
||||
String? check(String val) {
|
||||
var length = val.length;
|
||||
var errorMessage = errorMassage.replaceAll('[]', length.toString());
|
||||
return test(value) ? errorMessage : null;
|
||||
return test(val) ? errorMessage : null;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ import 'package:selfprivacy/config/hive_config.dart';
|
|||
import 'package:selfprivacy/theming/factory/app_theme_factory.dart';
|
||||
import 'package:selfprivacy/ui/pages/setup/initializing.dart';
|
||||
import 'package:selfprivacy/ui/pages/onboarding/onboarding.dart';
|
||||
import 'package:selfprivacy/ui/pages/rootRoute.dart';
|
||||
import 'package:selfprivacy/ui/pages/root_route.dart';
|
||||
import 'package:wakelock/wakelock.dart';
|
||||
import 'package:timezone/data/latest.dart' as tz;
|
||||
|
||||
|
@ -55,9 +55,10 @@ void main() async {
|
|||
|
||||
class MyApp extends StatelessWidget {
|
||||
const MyApp({
|
||||
Key? key,
|
||||
required this.lightThemeData,
|
||||
required this.darkThemeData,
|
||||
});
|
||||
}) : super(key: key);
|
||||
|
||||
final ThemeData lightThemeData;
|
||||
final ThemeData darkThemeData;
|
||||
|
@ -84,7 +85,7 @@ class MyApp extends StatelessWidget {
|
|||
themeMode:
|
||||
appSettings.isDarkModeOn ? ThemeMode.dark : ThemeMode.light,
|
||||
home: appSettings.isOnboardingShowing
|
||||
? OnboardingPage(nextPage: InitializingPage())
|
||||
? const OnboardingPage(nextPage: InitializingPage())
|
||||
: const RootPage(),
|
||||
builder: (BuildContext context, Widget? widget) {
|
||||
Widget error = const Text('...rendering error...');
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/FilledButton.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_text/brand_text.dart';
|
||||
|
||||
enum BrandButtonTypes { rised, text, iconText }
|
||||
|
|
|
@ -15,7 +15,7 @@ class BrandMarkdown extends StatefulWidget {
|
|||
final String fileName;
|
||||
|
||||
@override
|
||||
_BrandMarkdownState createState() => _BrandMarkdownState();
|
||||
State<BrandMarkdown> createState() => _BrandMarkdownState();
|
||||
}
|
||||
|
||||
class _BrandMarkdownState extends State<BrandMarkdown> {
|
||||
|
|
|
@ -7,7 +7,7 @@ class BrandTabBar extends StatefulWidget {
|
|||
|
||||
final TabController? controller;
|
||||
@override
|
||||
_BrandTabBarState createState() => _BrandTabBarState();
|
||||
State<BrandTabBar> createState() => _BrandTabBarState();
|
||||
}
|
||||
|
||||
class _BrandTabBarState extends State<BrandTabBar> {
|
||||
|
|
|
@ -16,7 +16,7 @@ class BrandTimer extends StatefulWidget {
|
|||
final Duration duration;
|
||||
|
||||
@override
|
||||
_BrandTimerState createState() => _BrandTimerState();
|
||||
State<BrandTimer> createState() => _BrandTimerState();
|
||||
}
|
||||
|
||||
class _BrandTimerState extends State<BrandTimer> {
|
||||
|
|
|
@ -3,7 +3,11 @@ import 'package:selfprivacy/config/brand_colors.dart';
|
|||
import 'package:selfprivacy/logic/models/state_types.dart';
|
||||
|
||||
class IconStatusMask extends StatelessWidget {
|
||||
const IconStatusMask({required this.child, required this.status});
|
||||
const IconStatusMask({
|
||||
Key? key,
|
||||
required this.child,
|
||||
required this.status,
|
||||
}) : super(key: key);
|
||||
final Icon child;
|
||||
|
||||
final StateType status;
|
||||
|
|
|
@ -27,7 +27,7 @@ class NotReadyCard extends StatelessWidget {
|
|||
child: GestureDetector(
|
||||
onTap: () => Navigator.of(context).push(
|
||||
materialRoute(
|
||||
InitializingPage(),
|
||||
const InitializingPage(),
|
||||
),
|
||||
),
|
||||
child: Text(
|
||||
|
|
|
@ -11,7 +11,7 @@ class BrandFab extends StatefulWidget {
|
|||
const BrandFab({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_BrandFabState createState() => _BrandFabState();
|
||||
State<BrandFab> createState() => _BrandFabState();
|
||||
}
|
||||
|
||||
class _BrandFabState extends State<BrandFab>
|
||||
|
|
|
@ -17,7 +17,7 @@ class ProgressBar extends StatefulWidget {
|
|||
final List<String> steps;
|
||||
|
||||
@override
|
||||
_ProgressBarState createState() => _ProgressBarState();
|
||||
State<ProgressBar> createState() => _ProgressBarState();
|
||||
}
|
||||
|
||||
class _ProgressBarState extends State<ProgressBar> {
|
||||
|
|
|
@ -21,7 +21,7 @@ class BackupDetails extends StatefulWidget {
|
|||
const BackupDetails({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_BackupDetailsState createState() => _BackupDetailsState();
|
||||
State<BackupDetails> createState() => _BackupDetailsState();
|
||||
}
|
||||
|
||||
class _BackupDetailsState extends State<BackupDetails>
|
||||
|
|
|
@ -8,8 +8,10 @@ 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({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_DnsDetailsPageState createState() => _DnsDetailsPageState();
|
||||
State<DnsDetailsPage> createState() => _DnsDetailsPageState();
|
||||
}
|
||||
|
||||
class _DnsDetailsPageState extends State<DnsDetailsPage> {
|
||||
|
|
|
@ -16,7 +16,7 @@ class AppSettingsPage extends StatefulWidget {
|
|||
const AppSettingsPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_AppSettingsPageState createState() => _AppSettingsPageState();
|
||||
State<AppSettingsPage> createState() => _AppSettingsPageState();
|
||||
}
|
||||
|
||||
class _AppSettingsPageState extends State<AppSettingsPage> {
|
||||
|
@ -50,6 +50,7 @@ class _AppSettingsPageState extends State<AppSettingsPage> {
|
|||
child: _TextColumn(
|
||||
title: 'more.settings.1'.tr(),
|
||||
value: 'more.settings.2'.tr(),
|
||||
hasWarning: false,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
|
@ -76,6 +77,7 @@ class _AppSettingsPageState extends State<AppSettingsPage> {
|
|||
child: _TextColumn(
|
||||
title: 'more.settings.3'.tr(),
|
||||
value: 'more.settings.4'.tr(),
|
||||
hasWarning: false,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
|
@ -144,6 +146,7 @@ class _AppSettingsPageState extends State<AppSettingsPage> {
|
|||
child: _TextColumn(
|
||||
title: 'more.settings.5'.tr(),
|
||||
value: 'more.settings.6'.tr(),
|
||||
hasWarning: false,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
|
@ -177,6 +180,7 @@ class _AppSettingsPageState extends State<AppSettingsPage> {
|
|||
await context
|
||||
.read<ServerInstallationCubit>()
|
||||
.serverDelete();
|
||||
if (!mounted) return;
|
||||
Navigator.of(context).pop();
|
||||
}),
|
||||
ActionButton(
|
||||
|
|
|
@ -11,7 +11,7 @@ class Console extends StatefulWidget {
|
|||
const Console({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_ConsoleState createState() => _ConsoleState();
|
||||
State<Console> createState() => _ConsoleState();
|
||||
}
|
||||
|
||||
class _ConsoleState extends State<Console> {
|
||||
|
|
|
@ -10,7 +10,7 @@ import 'package:selfprivacy/ui/components/brand_icons/brand_icons.dart';
|
|||
import 'package:selfprivacy/ui/components/brand_text/brand_text.dart';
|
||||
import 'package:selfprivacy/ui/pages/setup/initializing.dart';
|
||||
import 'package:selfprivacy/ui/pages/onboarding/onboarding.dart';
|
||||
import 'package:selfprivacy/ui/pages/rootRoute.dart';
|
||||
import 'package:selfprivacy/ui/pages/root_route.dart';
|
||||
import 'package:selfprivacy/ui/pages/ssh_keys/ssh_keys.dart';
|
||||
import 'package:selfprivacy/utils/route_transitions/basic.dart';
|
||||
|
||||
|
@ -43,7 +43,7 @@ class MorePage extends StatelessWidget {
|
|||
_NavItem(
|
||||
title: 'more.configuration_wizard'.tr(),
|
||||
iconData: BrandIcons.triangle,
|
||||
goTo: InitializingPage(),
|
||||
goTo: const InitializingPage(),
|
||||
),
|
||||
_NavItem(
|
||||
title: 'more.settings.title'.tr(),
|
||||
|
|
|
@ -10,7 +10,7 @@ class OnboardingPage extends StatefulWidget {
|
|||
|
||||
final Widget nextPage;
|
||||
@override
|
||||
_OnboardingPageState createState() => _OnboardingPageState();
|
||||
State<OnboardingPage> createState() => _OnboardingPageState();
|
||||
}
|
||||
|
||||
class _OnboardingPageState extends State<OnboardingPage> {
|
||||
|
|
|
@ -24,7 +24,7 @@ class ProvidersPage extends StatefulWidget {
|
|||
const ProvidersPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_ProvidersPageState createState() => _ProvidersPageState();
|
||||
State<ProvidersPage> createState() => _ProvidersPageState();
|
||||
}
|
||||
|
||||
class _ProvidersPageState extends State<ProvidersPage> {
|
||||
|
@ -124,7 +124,7 @@ class _Card extends StatelessWidget {
|
|||
stableText = 'providers.domain.status'.tr();
|
||||
|
||||
onTap = () => Navigator.of(context).push(materialRoute(
|
||||
DnsDetailsPage(),
|
||||
const DnsDetailsPage(),
|
||||
));
|
||||
break;
|
||||
case ProviderType.backup:
|
||||
|
|
|
@ -13,7 +13,7 @@ class RootPage extends StatefulWidget {
|
|||
const RootPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_RootPageState createState() => _RootPageState();
|
||||
State<RootPage> createState() => _RootPageState();
|
||||
}
|
||||
|
||||
class _RootPageState extends State<RootPage>
|
||||
|
|
|
@ -90,7 +90,11 @@ class _Chart extends StatelessWidget {
|
|||
|
||||
return SizedBox(
|
||||
height: 200,
|
||||
child: CpuChart(data, state.period, state.start),
|
||||
child: CpuChart(
|
||||
data: data,
|
||||
period: state.period,
|
||||
start: state.start,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -101,9 +105,9 @@ class _Chart extends StatelessWidget {
|
|||
return SizedBox(
|
||||
height: 200,
|
||||
child: NetworkChart(
|
||||
[ppsIn, ppsOut],
|
||||
state.period,
|
||||
state.start,
|
||||
listData: [ppsIn, ppsOut],
|
||||
period: state.period,
|
||||
start: state.start,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@ -115,9 +119,9 @@ class _Chart extends StatelessWidget {
|
|||
return SizedBox(
|
||||
height: 200,
|
||||
child: NetworkChart(
|
||||
[ppsIn, ppsOut],
|
||||
state.period,
|
||||
state.start,
|
||||
listData: [ppsIn, ppsOut],
|
||||
period: state.period,
|
||||
start: state.start,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -7,7 +7,12 @@ import 'package:selfprivacy/logic/models/hetzner_metrics.dart';
|
|||
import 'package:intl/intl.dart';
|
||||
|
||||
class CpuChart extends StatelessWidget {
|
||||
const CpuChart(this.data, this.period, this.start);
|
||||
const CpuChart({
|
||||
Key? key,
|
||||
required this.data,
|
||||
required this.period,
|
||||
required this.start,
|
||||
}) : super(key: key);
|
||||
|
||||
final List<TimeSeriesData> data;
|
||||
final Period period;
|
||||
|
@ -103,8 +108,8 @@ class CpuChart extends StatelessWidget {
|
|||
} else if (value == 0) {
|
||||
return true;
|
||||
}
|
||||
var _value = value - minValue;
|
||||
var v = _value / 20;
|
||||
var localValue = value - minValue;
|
||||
var v = localValue / 20;
|
||||
return v - v.floor() == 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,11 +9,12 @@ import 'package:selfprivacy/logic/models/hetzner_metrics.dart';
|
|||
import 'package:intl/intl.dart';
|
||||
|
||||
class NetworkChart extends StatelessWidget {
|
||||
const NetworkChart(
|
||||
this.listData,
|
||||
this.period,
|
||||
this.start,
|
||||
);
|
||||
const NetworkChart({
|
||||
Key? key,
|
||||
required this.listData,
|
||||
required this.period,
|
||||
required this.start,
|
||||
}) : super(key: key);
|
||||
|
||||
final List<List<TimeSeriesData>> listData;
|
||||
final Period period;
|
||||
|
@ -132,9 +133,9 @@ class NetworkChart extends StatelessWidget {
|
|||
} else if (value == 0) {
|
||||
return true;
|
||||
}
|
||||
var _value = value - minValue;
|
||||
var v = _value / 20;
|
||||
return v - v.floor() == 0;
|
||||
var diff = value - minValue;
|
||||
var finalValue = diff / 20;
|
||||
return finalValue - finalValue.floor() == 0;
|
||||
}
|
||||
|
||||
String bottomTitle(int value) {
|
||||
|
|
|
@ -37,7 +37,7 @@ class ServerDetailsScreen extends StatefulWidget {
|
|||
const ServerDetailsScreen({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_ServerDetailsScreenState createState() => _ServerDetailsScreenState();
|
||||
State<ServerDetailsScreen> createState() => _ServerDetailsScreenState();
|
||||
}
|
||||
|
||||
class _ServerDetailsScreenState extends State<ServerDetailsScreen>
|
||||
|
|
|
@ -42,6 +42,7 @@ class _ServerSettings extends StatelessWidget {
|
|||
child: const _TextColumn(
|
||||
title: 'Allow Auto-upgrade',
|
||||
value: 'Wether to allow automatic packages upgrades',
|
||||
hasWarning: false,
|
||||
),
|
||||
),
|
||||
SwitcherBlock(
|
||||
|
@ -50,15 +51,17 @@ class _ServerSettings extends StatelessWidget {
|
|||
child: const _TextColumn(
|
||||
title: 'Reboot after upgrade',
|
||||
value: 'Reboot without prompt after applying updates',
|
||||
hasWarning: false,
|
||||
),
|
||||
),
|
||||
_Button(
|
||||
onTap: () {
|
||||
Navigator.of(context).push(materialRoute(SelectTimezone()));
|
||||
Navigator.of(context).push(materialRoute(const SelectTimezone()));
|
||||
},
|
||||
child: _TextColumn(
|
||||
title: 'Server Timezone',
|
||||
value: serverDetailsState.serverTimezone.timezone.name,
|
||||
hasWarning: false,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
|
|
@ -8,7 +8,7 @@ class SelectTimezone extends StatefulWidget {
|
|||
const SelectTimezone({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_SelectTimezoneState createState() => _SelectTimezoneState();
|
||||
State<SelectTimezone> createState() => _SelectTimezoneState();
|
||||
}
|
||||
|
||||
class _SelectTimezoneState extends State<SelectTimezone> {
|
||||
|
|
|
@ -35,13 +35,13 @@ class ServicesPage extends StatefulWidget {
|
|||
const ServicesPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_ServicesPageState createState() => _ServicesPageState();
|
||||
State<ServicesPage> createState() => _ServicesPageState();
|
||||
}
|
||||
|
||||
void _launchURL(url) async {
|
||||
var _possible = await canLaunchUrlString(url);
|
||||
var canLaunch = await canLaunchUrlString(url);
|
||||
|
||||
if (_possible) {
|
||||
if (canLaunch) {
|
||||
try {
|
||||
await launchUrlString(
|
||||
url,
|
||||
|
|
|
@ -21,6 +21,8 @@ import 'package:selfprivacy/ui/pages/setup/recovering/recovery_routing.dart';
|
|||
import 'package:selfprivacy/utils/route_transitions/basic.dart';
|
||||
|
||||
class InitializingPage extends StatelessWidget {
|
||||
const InitializingPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var cubit = context.watch<ServerInstallationCubit>();
|
||||
|
|
|
@ -10,7 +10,9 @@ import 'package:selfprivacy/logic/cubit/forms/factories/field_cubit_factory.dart
|
|||
|
||||
class RecoverByOldTokenInstruction extends StatelessWidget {
|
||||
@override
|
||||
const RecoverByOldTokenInstruction({required this.instructionFilename});
|
||||
const RecoverByOldTokenInstruction(
|
||||
{Key? key, required this.instructionFilename})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
@ -11,7 +11,7 @@ class RecoveryConfirmServer extends StatefulWidget {
|
|||
const RecoveryConfirmServer({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_RecoveryConfirmServerState createState() => _RecoveryConfirmServerState();
|
||||
State<RecoveryConfirmServer> createState() => _RecoveryConfirmServerState();
|
||||
}
|
||||
|
||||
class _RecoveryConfirmServerState extends State<RecoveryConfirmServer> {
|
||||
|
@ -57,11 +57,11 @@ class _RecoveryConfirmServerState extends State<RecoveryConfirmServer> {
|
|||
children: [
|
||||
if (servers.length == 1 ||
|
||||
(!_isExtended && _isServerFound(servers)))
|
||||
_ConfirmServer(context, _firstValidServer(servers),
|
||||
confirmServer(context, _firstValidServer(servers),
|
||||
servers.length > 1),
|
||||
if (servers.length > 1 &&
|
||||
(_isExtended || !_isServerFound(servers)))
|
||||
_ChooseServer(context, servers),
|
||||
chooseServer(context, servers),
|
||||
],
|
||||
),
|
||||
if (servers?.isEmpty ?? true)
|
||||
|
@ -84,14 +84,14 @@ class _RecoveryConfirmServerState extends State<RecoveryConfirmServer> {
|
|||
);
|
||||
}
|
||||
|
||||
Widget _ConfirmServer(
|
||||
Widget confirmServer(
|
||||
BuildContext context,
|
||||
ServerBasicInfoWithValidators server,
|
||||
bool showMoreServersButton,
|
||||
) {
|
||||
return Column(
|
||||
children: [
|
||||
_ServerCard(
|
||||
serverCard(
|
||||
context: context,
|
||||
server: server,
|
||||
),
|
||||
|
@ -110,14 +110,14 @@ class _RecoveryConfirmServerState extends State<RecoveryConfirmServer> {
|
|||
);
|
||||
}
|
||||
|
||||
Widget _ChooseServer(
|
||||
Widget chooseServer(
|
||||
BuildContext context, List<ServerBasicInfoWithValidators> servers) {
|
||||
return Column(
|
||||
children: [
|
||||
for (final server in servers)
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 8.0),
|
||||
child: _ServerCard(
|
||||
child: serverCard(
|
||||
context: context,
|
||||
server: server,
|
||||
onTap: () => _showConfirmationDialog(context, server),
|
||||
|
@ -127,7 +127,7 @@ class _RecoveryConfirmServerState extends State<RecoveryConfirmServer> {
|
|||
);
|
||||
}
|
||||
|
||||
Widget _ServerCard(
|
||||
Widget serverCard(
|
||||
{required BuildContext context,
|
||||
required ServerBasicInfoWithValidators server,
|
||||
VoidCallback? onTap}) {
|
||||
|
|
|
@ -47,7 +47,7 @@ class RecoveryMethodSelect extends StatelessWidget {
|
|||
BrandButton.text(
|
||||
title: 'recovering.method_select_nothing'.tr(),
|
||||
onPressed: () => Navigator.of(context)
|
||||
.push(materialRoute(RecoveryFallbackMethodSelect())),
|
||||
.push(materialRoute(const RecoveryFallbackMethodSelect())),
|
||||
)
|
||||
],
|
||||
);
|
||||
|
|
|
@ -36,10 +36,10 @@ class RecoveryRouting extends StatelessWidget {
|
|||
currentPage = const RecoverByRecoveryKey();
|
||||
break;
|
||||
case RecoveryStep.newDeviceKey:
|
||||
currentPage = RecoverByNewDeviceKeyInstruction();
|
||||
currentPage = const RecoverByNewDeviceKeyInstruction();
|
||||
break;
|
||||
case RecoveryStep.oldToken:
|
||||
currentPage = RecoverByOldToken();
|
||||
currentPage = const RecoverByOldToken();
|
||||
break;
|
||||
case RecoveryStep.hetznerToken:
|
||||
currentPage = const RecoveryHetznerConnected();
|
||||
|
|
|
@ -24,7 +24,7 @@ class SshKeysPage extends StatefulWidget {
|
|||
const SshKeysPage({Key? key, required this.user}) : super(key: key);
|
||||
|
||||
@override
|
||||
_SshKeysPageState createState() => _SshKeysPageState();
|
||||
State<SshKeysPage> createState() => _SshKeysPageState();
|
||||
}
|
||||
|
||||
class _SshKeysPageState extends State<SshKeysPage> {
|
||||
|
|
Loading…
Reference in a new issue