mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2024-11-18 06:39:14 +00:00
Merge pull request 'refactor: Migrate to Flutter 3.7' (#194) from flutter-3.7 into master
Reviewed-on: https://git.selfprivacy.org/kherel/selfprivacy.org.app/pulls/194 Reviewed-by: NaiJi ✨ <naiji@udongein.xyz>
This commit is contained in:
commit
fb8fdad0c5
|
@ -31,7 +31,6 @@ linter:
|
|||
avoid_print: false # Uncomment to disable the `avoid_print` rule
|
||||
prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
|
||||
always_use_package_imports: true
|
||||
invariant_booleans: true
|
||||
no_adjacent_strings_in_list: true
|
||||
unnecessary_statements: true
|
||||
always_declare_return_types: true
|
||||
|
|
|
@ -1,88 +1,3 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/config/text_themes.dart';
|
||||
|
||||
import 'package:selfprivacy/config/brand_colors.dart';
|
||||
|
||||
final ThemeData lightTheme = ThemeData(
|
||||
useMaterial3: true,
|
||||
primaryColor: BrandColors.primary,
|
||||
fontFamily: 'Inter',
|
||||
brightness: Brightness.light,
|
||||
scaffoldBackgroundColor: BrandColors.scaffoldBackground,
|
||||
inputDecorationTheme: const InputDecorationTheme(
|
||||
border: InputBorder.none,
|
||||
contentPadding: EdgeInsets.all(16),
|
||||
enabledBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(4)),
|
||||
borderSide: BorderSide(color: BrandColors.inputInactive),
|
||||
),
|
||||
focusedBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(4)),
|
||||
borderSide: BorderSide(color: BrandColors.blue),
|
||||
),
|
||||
errorBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(4)),
|
||||
borderSide: BorderSide(
|
||||
width: 1,
|
||||
color: BrandColors.red1,
|
||||
),
|
||||
),
|
||||
focusedErrorBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(4)),
|
||||
borderSide: BorderSide(
|
||||
width: 1,
|
||||
color: BrandColors.red1,
|
||||
),
|
||||
),
|
||||
errorStyle: TextStyle(
|
||||
fontSize: 12,
|
||||
color: BrandColors.red1,
|
||||
),
|
||||
),
|
||||
listTileTheme: const ListTileThemeData(
|
||||
minLeadingWidth: 24.0,
|
||||
),
|
||||
textTheme: TextTheme(
|
||||
headline1: headline1Style,
|
||||
headline2: headline2Style,
|
||||
headline3: headline3Style,
|
||||
headline4: headline4Style,
|
||||
bodyText1: body1Style,
|
||||
subtitle1: const TextStyle(fontSize: 15, height: 1.6), // text input style
|
||||
),
|
||||
);
|
||||
|
||||
ThemeData darkTheme = lightTheme.copyWith(
|
||||
brightness: Brightness.dark,
|
||||
scaffoldBackgroundColor: const Color(0xFF202120),
|
||||
iconTheme: const IconThemeData(color: BrandColors.gray3),
|
||||
cardColor: BrandColors.gray1,
|
||||
dialogBackgroundColor: const Color(0xFF202120),
|
||||
textTheme: TextTheme(
|
||||
headline1: headline1Style.copyWith(color: BrandColors.white),
|
||||
headline2: headline2Style.copyWith(color: BrandColors.white),
|
||||
headline3: headline3Style.copyWith(color: BrandColors.white),
|
||||
headline4: headline4Style.copyWith(color: BrandColors.white),
|
||||
bodyText1: body1Style.copyWith(color: BrandColors.white),
|
||||
subtitle1: const TextStyle(fontSize: 15, height: 1.6), // text input style
|
||||
),
|
||||
inputDecorationTheme: const InputDecorationTheme(
|
||||
labelStyle: TextStyle(color: BrandColors.white),
|
||||
hintStyle: TextStyle(color: BrandColors.white),
|
||||
border: OutlineInputBorder(
|
||||
borderSide: BorderSide(
|
||||
color: BrandColors.white,
|
||||
),
|
||||
),
|
||||
enabledBorder: OutlineInputBorder(
|
||||
borderSide: BorderSide(
|
||||
color: BrandColors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
const EdgeInsets paddingH15V30 =
|
||||
EdgeInsets.symmetric(horizontal: 15, vertical: 30);
|
||||
|
||||
const EdgeInsets paddingH15V0 = EdgeInsets.symmetric(horizontal: 15);
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
import 'package:flutter/material.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 }
|
||||
|
@ -20,9 +19,29 @@ class BrandButton {
|
|||
),
|
||||
child: FilledButton(
|
||||
key: key,
|
||||
title: text,
|
||||
onPressed: onPressed,
|
||||
child: child,
|
||||
child: child ?? Text(text ?? ''),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
static ConstrainedBox filled({
|
||||
required final VoidCallback? onPressed,
|
||||
final Key? key,
|
||||
final String? text,
|
||||
final Widget? child,
|
||||
}) {
|
||||
assert(text == null || child == null, 'required title or child');
|
||||
assert(text != null || child != null, 'required title or child');
|
||||
return ConstrainedBox(
|
||||
constraints: const BoxConstraints(
|
||||
minHeight: 40,
|
||||
minWidth: double.infinity,
|
||||
),
|
||||
child: FilledButton(
|
||||
key: key,
|
||||
onPressed: onPressed,
|
||||
child: child ?? Text(text ?? ''),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class FilledButton extends StatelessWidget {
|
||||
const FilledButton({
|
||||
super.key,
|
||||
this.onPressed,
|
||||
this.title,
|
||||
this.child,
|
||||
this.disabled = false,
|
||||
});
|
||||
|
||||
final VoidCallback? onPressed;
|
||||
final String? title;
|
||||
final Widget? child;
|
||||
final bool disabled;
|
||||
|
||||
@override
|
||||
Widget build(final BuildContext context) {
|
||||
final ButtonStyle enabledStyle = ElevatedButton.styleFrom(
|
||||
foregroundColor: Theme.of(context).colorScheme.onPrimary,
|
||||
backgroundColor: Theme.of(context).colorScheme.primary,
|
||||
).copyWith(elevation: ButtonStyleButton.allOrNull(0.0));
|
||||
|
||||
final ButtonStyle disabledStyle = ElevatedButton.styleFrom(
|
||||
foregroundColor: Theme.of(context).colorScheme.onSurface.withAlpha(30),
|
||||
backgroundColor: Theme.of(context).colorScheme.onSurface.withAlpha(98),
|
||||
).copyWith(elevation: ButtonStyleButton.allOrNull(0.0));
|
||||
|
||||
return ConstrainedBox(
|
||||
constraints: const BoxConstraints(
|
||||
minHeight: 40,
|
||||
minWidth: double.infinity,
|
||||
),
|
||||
child: ElevatedButton(
|
||||
onPressed: onPressed,
|
||||
style: disabled ? disabledStyle : enabledStyle,
|
||||
child: child ?? Text(title ?? ''),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
|
@ -25,7 +25,7 @@ class BrandOutlinedButton extends StatelessWidget {
|
|||
child: child ??
|
||||
Text(
|
||||
title ?? '',
|
||||
style: Theme.of(context).textTheme.button?.copyWith(
|
||||
style: Theme.of(context).textTheme.labelLarge?.copyWith(
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
),
|
||||
|
|
|
@ -76,7 +76,7 @@ class _BackupDetailsState extends State<BackupDetails>
|
|||
),
|
||||
title: Text(
|
||||
'backup.create_new'.tr(),
|
||||
style: Theme.of(context).textTheme.headline6,
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
),
|
||||
if (backupStatus == BackupStatusEnum.backingUp)
|
||||
|
@ -85,7 +85,7 @@ class _BackupDetailsState extends State<BackupDetails>
|
|||
'backup.creating'.tr(
|
||||
args: [(backupProgress * 100).round().toString()],
|
||||
),
|
||||
style: Theme.of(context).textTheme.headline6,
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
subtitle: LinearProgressIndicator(
|
||||
value: backupProgress,
|
||||
|
@ -98,7 +98,7 @@ class _BackupDetailsState extends State<BackupDetails>
|
|||
'backup.restoring'.tr(
|
||||
args: [(backupProgress * 100).round().toString()],
|
||||
),
|
||||
style: Theme.of(context).textTheme.headline6,
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
subtitle: LinearProgressIndicator(
|
||||
backgroundColor: Colors.grey.withOpacity(0.2),
|
||||
|
@ -112,7 +112,7 @@ class _BackupDetailsState extends State<BackupDetails>
|
|||
),
|
||||
title: Text(
|
||||
'backup.error_pending'.tr(),
|
||||
style: Theme.of(context).textTheme.headline6,
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
@ -134,7 +134,7 @@ class _BackupDetailsState extends State<BackupDetails>
|
|||
),
|
||||
title: Text(
|
||||
'backup.restore'.tr(),
|
||||
style: Theme.of(context).textTheme.headline6,
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
),
|
||||
const Divider(
|
||||
|
|
|
@ -3,7 +3,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/logic/cubit/devices/devices_cubit.dart';
|
||||
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
|
||||
|
||||
class NewDeviceScreen extends StatelessWidget {
|
||||
|
@ -71,7 +71,7 @@ class _KeyDisplay extends StatelessWidget {
|
|||
],
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
BrandButton.filled(
|
||||
child: Text(
|
||||
'basis.done'.tr(),
|
||||
),
|
||||
|
|
|
@ -7,7 +7,6 @@ import 'package:selfprivacy/logic/common_enum/common_enum.dart';
|
|||
import 'package:selfprivacy/logic/cubit/recovery_key/recovery_key_cubit.dart';
|
||||
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_cards/filled_card.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
|
||||
import 'package:selfprivacy/ui/pages/recovery_key/recovery_key_receiving.dart';
|
||||
|
@ -104,8 +103,8 @@ class _RecoveryKeyContentState extends State<RecoveryKeyContent> {
|
|||
},
|
||||
),
|
||||
if (!_isConfigurationVisible && !keyStatus.isValid && keyStatus.exists)
|
||||
FilledButton(
|
||||
title: 'recovery_key.key_replace_button'.tr(),
|
||||
BrandButton.filled(
|
||||
child: Text('recovery_key.key_replace_button'.tr()),
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
_isConfigurationVisible = true;
|
||||
|
@ -393,12 +392,11 @@ class _RecoveryKeyConfigurationState extends State<RecoveryKeyConfiguration> {
|
|||
secondChild: Container(),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'recovery_key.key_receive_button'.tr(),
|
||||
disabled: _isAmountError || _isExpirationError || _isLoading,
|
||||
onPressed: !_isAmountError && !_isExpirationError
|
||||
BrandButton.filled(
|
||||
onPressed: !_isAmountError && !_isExpirationError && !_isLoading
|
||||
? _generateRecoveryToken
|
||||
: null,
|
||||
child: Text('recovery_key.key_receive_button'.tr()),
|
||||
),
|
||||
],
|
||||
);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
|
||||
import 'package:selfprivacy/ui/components/info_box/info_box.dart';
|
||||
|
||||
|
@ -33,8 +33,8 @@ class RecoveryKeyReceiving extends StatelessWidget {
|
|||
text: 'recovery_key.key_receiving_info'.tr(),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'recovery_key.key_receiving_done'.tr(),
|
||||
BrandButton.filled(
|
||||
child: Text('recovery_key.key_receiving_done'.tr()),
|
||||
onPressed: () {
|
||||
Navigator.of(context).popUntil((final route) => route.isFirst);
|
||||
},
|
||||
|
|
|
@ -2,7 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/logic/cubit/server_jobs/server_jobs_cubit.dart';
|
||||
import 'package:selfprivacy/logic/models/json/server_job.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_linear_indicator/brand_linear_indicator.dart';
|
||||
import 'package:selfprivacy/ui/pages/root_route.dart';
|
||||
|
@ -50,8 +50,8 @@ class _MigrationProcessPageState extends State<MigrationProcessPage> {
|
|||
),
|
||||
if (job.finishedAt != null) const SizedBox(height: 16),
|
||||
if (job.finishedAt != null)
|
||||
FilledButton(
|
||||
title: 'storage.migration_done'.tr(),
|
||||
BrandButton.filled(
|
||||
child: Text('storage.migration_done'.tr()),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pushAndRemoveUntil(
|
||||
materialRoute(const RootPage()),
|
||||
|
|
|
@ -5,7 +5,7 @@ import 'package:selfprivacy/logic/cubit/services/services_cubit.dart';
|
|||
import 'package:selfprivacy/logic/models/disk_size.dart';
|
||||
import 'package:selfprivacy/logic/models/service.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_bottom_sheet/brand_bottom_sheet.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_header/brand_header.dart';
|
||||
import 'package:selfprivacy/ui/components/info_box/info_box.dart';
|
||||
import 'package:selfprivacy/logic/models/disk_status.dart';
|
||||
|
@ -163,8 +163,8 @@ class _ServicesMigrationPageState extends State<ServicesMigrationPage> {
|
|||
),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'storage.start_migration_button'.tr(),
|
||||
BrandButton.filled(
|
||||
child: Text('storage.start_migration_button'.tr()),
|
||||
onPressed: () {
|
||||
if (widget.isMigration) {
|
||||
context.read<ServerJobsCubit>().migrateToBinds(
|
||||
|
|
|
@ -5,7 +5,7 @@ import 'package:selfprivacy/logic/cubit/provider_volumes/provider_volume_cubit.d
|
|||
import 'package:selfprivacy/logic/cubit/server_volumes/server_volume_cubit.dart';
|
||||
import 'package:selfprivacy/logic/models/disk_size.dart';
|
||||
import 'package:selfprivacy/logic/models/price.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
|
||||
import 'package:selfprivacy/logic/models/disk_status.dart';
|
||||
import 'package:selfprivacy/ui/pages/root_route.dart';
|
||||
|
@ -146,9 +146,8 @@ class _ExtendingVolumePageState extends State<ExtendingVolumePage> {
|
|||
},
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'storage.extend_volume_button.title'.tr(),
|
||||
onPressed: _isError
|
||||
BrandButton.filled(
|
||||
onPressed: _isError || isAlreadyResizing
|
||||
? null
|
||||
: () {
|
||||
context.read<ApiProviderVolumeCubit>().resizeVolume(
|
||||
|
@ -161,7 +160,7 @@ class _ExtendingVolumePageState extends State<ExtendingVolumePage> {
|
|||
(final predicate) => false,
|
||||
);
|
||||
},
|
||||
disabled: _isError || isAlreadyResizing,
|
||||
child: Text('storage.extend_volume_button.title'.tr()),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
const Divider(
|
||||
|
|
|
@ -7,7 +7,7 @@ import 'package:selfprivacy/logic/cubit/app_config_dependent/authentication_depe
|
|||
import 'package:selfprivacy/logic/cubit/forms/setup/initializing/provider_form_cubit.dart';
|
||||
import 'package:selfprivacy/logic/models/hive/server_details.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_bottom_sheet/brand_bottom_sheet.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/outlined_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_cards/outlined_card.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_md/brand_md.dart';
|
||||
|
@ -120,8 +120,8 @@ class ProviderInputDataPage extends StatelessWidget {
|
|||
),
|
||||
),
|
||||
const SizedBox(height: 32),
|
||||
FilledButton(
|
||||
title: 'basis.connect'.tr(),
|
||||
BrandButton.filled(
|
||||
child: Text('basis.connect'.tr()),
|
||||
onPressed: () => providerCubit.trySubmit(),
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
|
@ -238,8 +238,8 @@ class ProviderSelectionPage extends StatelessWidget {
|
|||
style: Theme.of(context).textTheme.bodySmall,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'basis.select'.tr(),
|
||||
BrandButton.filled(
|
||||
child: Text('basis.select'.tr()),
|
||||
onPressed: () {
|
||||
serverInstallationCubit
|
||||
.setServerProviderType(ServerProvider.hetzner);
|
||||
|
@ -312,8 +312,8 @@ class ProviderSelectionPage extends StatelessWidget {
|
|||
style: Theme.of(context).textTheme.bodySmall,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'basis.select'.tr(),
|
||||
BrandButton.filled(
|
||||
child: Text('basis.select'.tr()),
|
||||
onPressed: () {
|
||||
serverInstallationCubit
|
||||
.setServerProviderType(ServerProvider.digitalOcean);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/logic/cubit/forms/setup/recovering/recovery_device_form_cubit.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
|
||||
import 'package:selfprivacy/utils/route_transitions/basic.dart';
|
||||
import 'package:cubit_form/cubit_form.dart';
|
||||
|
@ -20,8 +20,8 @@ class RecoverByNewDeviceKeyInstruction extends StatelessWidget {
|
|||
onBackButtonPressed:
|
||||
context.read<ServerInstallationCubit>().revertRecoveryStep,
|
||||
children: [
|
||||
FilledButton(
|
||||
title: 'recovering.method_device_button'.tr(),
|
||||
BrandButton.filled(
|
||||
child: Text('recovering.method_device_button'.tr()),
|
||||
onPressed: () => Navigator.of(context)
|
||||
.push(materialRoute(const RecoverByNewDeviceKeyInput())),
|
||||
)
|
||||
|
@ -73,11 +73,11 @@ class RecoverByNewDeviceKeyInput extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'basis.continue'.tr(),
|
||||
onPressed: formCubitState.isSubmitting
|
||||
? null
|
||||
: () =>
|
||||
context.read<RecoveryDeviceFormCubit>().trySubmit(),
|
||||
child: Text('basis.continue'.tr()),
|
||||
)
|
||||
],
|
||||
);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/logic/cubit/forms/setup/recovering/recovery_device_form_cubit.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_md/brand_md.dart';
|
||||
import 'package:cubit_form/cubit_form.dart';
|
||||
|
@ -35,8 +35,8 @@ class RecoverByOldTokenInstruction extends StatelessWidget {
|
|||
fileName: instructionFilename,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'recovering.method_device_button'.tr(),
|
||||
BrandButton.filled(
|
||||
child: Text('recovering.method_device_button'.tr()),
|
||||
onPressed: () => context
|
||||
.read<ServerInstallationCubit>()
|
||||
.selectRecoveryMethod(ServerRecoveryMethods.oldToken),
|
||||
|
@ -82,11 +82,11 @@ class RecoverByOldToken extends StatelessWidget {
|
|||
),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'basis.continue'.tr(),
|
||||
BrandButton.filled(
|
||||
onPressed: formCubitState.isSubmitting
|
||||
? null
|
||||
: () => context.read<RecoveryDeviceFormCubit>().trySubmit(),
|
||||
child: Text('basis.continue'.tr()),
|
||||
)
|
||||
],
|
||||
);
|
||||
|
|
|
@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:selfprivacy/logic/cubit/forms/factories/field_cubit_factory.dart';
|
||||
import 'package:selfprivacy/logic/cubit/forms/setup/recovering/recovery_device_form_cubit.dart';
|
||||
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
|
||||
|
||||
class RecoverByRecoveryKey extends StatelessWidget {
|
||||
|
@ -43,11 +43,11 @@ class RecoverByRecoveryKey extends StatelessWidget {
|
|||
),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'basis.continue'.tr(),
|
||||
BrandButton.filled(
|
||||
onPressed: formCubitState.isSubmitting
|
||||
? null
|
||||
: () => context.read<RecoveryDeviceFormCubit>().trySubmit(),
|
||||
child: Text('basis.continue'.tr()),
|
||||
)
|
||||
],
|
||||
);
|
||||
|
|
|
@ -2,7 +2,6 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/logic/cubit/app_config_dependent/authentication_dependend_cubit.dart';
|
||||
import 'package:selfprivacy/logic/models/server_basic_info.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_cards/filled_card.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
|
||||
|
@ -70,7 +69,7 @@ class _RecoveryConfirmServerState extends State<RecoveryConfirmServer> {
|
|||
Center(
|
||||
child: Text(
|
||||
'recovering.no_servers'.tr(),
|
||||
style: Theme.of(context).textTheme.headline6,
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
@ -97,8 +96,8 @@ class _RecoveryConfirmServerState extends State<RecoveryConfirmServer> {
|
|||
server: server,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'recovering.confirm_server_accept'.tr(),
|
||||
BrandButton.filled(
|
||||
child: Text('recovering.confirm_server_accept'.tr()),
|
||||
onPressed: () => _showConfirmationDialog(context, server),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
|
|
|
@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
||||
import 'package:selfprivacy/logic/cubit/forms/factories/field_cubit_factory.dart';
|
||||
import 'package:selfprivacy/logic/cubit/forms/setup/recovering/recovery_domain_form_cubit.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
|
||||
import 'package:selfprivacy/ui/pages/root_route.dart';
|
||||
import 'package:selfprivacy/ui/pages/setup/recovering/recover_by_old_token.dart';
|
||||
|
@ -126,12 +126,12 @@ class SelectDomainToRecover extends StatelessWidget {
|
|||
),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'basis.continue'.tr(),
|
||||
BrandButton.filled(
|
||||
onPressed: formCubitState.isSubmitting
|
||||
? null
|
||||
: () =>
|
||||
context.read<RecoveryDomainFormCubit>().trySubmit(),
|
||||
child: Text('basis.continue'.tr()),
|
||||
)
|
||||
],
|
||||
),
|
||||
|
|
|
@ -3,7 +3,6 @@ import 'package:flutter/material.dart';
|
|||
import 'package:selfprivacy/config/brand_theme.dart';
|
||||
import 'package:selfprivacy/logic/cubit/forms/setup/initializing/provider_form_cubit.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_bottom_sheet/brand_bottom_sheet.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/filled_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_button/brand_button.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.dart';
|
||||
import 'package:cubit_form/cubit_form.dart';
|
||||
|
@ -45,11 +44,11 @@ class RecoveryServerProviderConnected extends StatelessWidget {
|
|||
),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton(
|
||||
title: 'basis.continue'.tr(),
|
||||
BrandButton.filled(
|
||||
onPressed: formCubitState.isSubmitting
|
||||
? null
|
||||
: () => context.read<ProviderFormCubit>().trySubmit(),
|
||||
child: Text('basis.continue'.tr()),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
BrandButton.text(
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
import FlutterMacOS
|
||||
import Foundation
|
||||
|
||||
import connectivity_plus_macos
|
||||
import device_info_plus_macos
|
||||
import connectivity_plus
|
||||
import device_info_plus
|
||||
import dynamic_color
|
||||
import flutter_secure_storage_macos
|
||||
import package_info
|
||||
import path_provider_macos
|
||||
import share_plus_macos
|
||||
import shared_preferences_macos
|
||||
import path_provider_foundation
|
||||
import share_plus
|
||||
import shared_preferences_foundation
|
||||
import url_launcher_macos
|
||||
import wakelock_macos
|
||||
|
||||
|
|
965
pubspec.lock
965
pubspec.lock
File diff suppressed because it is too large
Load diff
56
pubspec.yaml
56
pubspec.yaml
|
@ -4,58 +4,58 @@ publish_to: 'none'
|
|||
version: 0.8.0+17
|
||||
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
flutter: ">=3.0.0"
|
||||
sdk: '>=2.19.0 <3.0.0'
|
||||
flutter: ">=3.7.0"
|
||||
|
||||
dependencies:
|
||||
auto_size_text: ^3.0.0
|
||||
basic_utils: ^4.2.0
|
||||
basic_utils: ^5.4.2
|
||||
crypt: ^4.2.1
|
||||
cubit_form: ^2.0.1
|
||||
device_info_plus: ^4.0.1
|
||||
device_info_plus: ^8.0.0
|
||||
dio: ^4.0.4
|
||||
dynamic_color: ^1.5.4
|
||||
easy_localization: ^3.0.0
|
||||
dynamic_color: ^1.6.2
|
||||
easy_localization: ^3.0.1
|
||||
either_option: ^2.0.1-dev.1
|
||||
equatable: ^2.0.3
|
||||
equatable: ^2.0.5
|
||||
fl_chart: ^0.50.1
|
||||
flutter:
|
||||
sdk: flutter
|
||||
flutter_bloc: ^8.0.1
|
||||
flutter_markdown: ^0.6.9
|
||||
flutter_bloc: ^8.1.1
|
||||
flutter_markdown: ^0.6.13+1
|
||||
flutter_secure_storage: ^7.0.1
|
||||
flutter_svg: ^1.1.4
|
||||
flutter_svg: ^2.0.0+1
|
||||
get_it: ^7.2.0
|
||||
gql: ^0.13.1
|
||||
graphql: ^5.1.1
|
||||
graphql_codegen: ^0.10.2
|
||||
graphql_flutter: ^5.1.0
|
||||
gql: ^0.14.0
|
||||
graphql: ^5.1.2
|
||||
graphql_codegen: ^0.12.0-beta.7
|
||||
graphql_flutter: ^5.1.2
|
||||
hive: ^2.2.3
|
||||
hive_flutter: ^1.1.0
|
||||
http: ^0.13.5
|
||||
intl: ^0.17.0
|
||||
ionicons: ^0.1.2
|
||||
json_annotation: ^4.6.0
|
||||
local_auth: ^2.0.2
|
||||
material_color_utilities: ^0.1.5
|
||||
modal_bottom_sheet: ^2.0.1
|
||||
ionicons: ^0.2.2
|
||||
json_annotation: ^4.8.0
|
||||
local_auth: ^2.1.3
|
||||
material_color_utilities: ^0.2.0
|
||||
modal_bottom_sheet: ^3.0.0-pre
|
||||
nanoid: ^1.0.0
|
||||
package_info: ^2.0.2
|
||||
pretty_dio_logger: ^1.2.0-beta-1
|
||||
provider: ^6.0.2
|
||||
pub_semver: ^2.1.1
|
||||
share_plus: ^4.0.4
|
||||
timezone: ^0.8.0
|
||||
url_launcher: ^6.0.20
|
||||
wakelock: ^0.6.1+1
|
||||
provider: ^6.0.5
|
||||
pub_semver: ^2.1.3
|
||||
share_plus: ^6.3.0
|
||||
timezone: ^0.9.1
|
||||
url_launcher: ^6.1.8
|
||||
wakelock: ^0.6.2
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
build_runner: ^2.2.0
|
||||
build_runner: ^2.3.3
|
||||
flutter_launcher_icons: ^0.9.2
|
||||
hive_generator: ^1.1.3
|
||||
json_serializable: ^6.3.1
|
||||
hive_generator: ^2.0.0
|
||||
json_serializable: ^6.6.1
|
||||
flutter_lints: ^2.0.1
|
||||
|
||||
flutter_icons:
|
||||
|
|
|
@ -6,9 +6,11 @@
|
|||
|
||||
#include "generated_plugin_registrant.h"
|
||||
|
||||
#include <connectivity_plus_windows/connectivity_plus_windows_plugin.h>
|
||||
#include <connectivity_plus/connectivity_plus_windows_plugin.h>
|
||||
#include <dynamic_color/dynamic_color_plugin_c_api.h>
|
||||
#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
|
||||
#include <local_auth_windows/local_auth_plugin.h>
|
||||
#include <share_plus/share_plus_windows_plugin_c_api.h>
|
||||
#include <url_launcher_windows/url_launcher_windows.h>
|
||||
|
||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||
|
@ -18,6 +20,10 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
|
|||
registry->GetRegistrarForPlugin("DynamicColorPluginCApi"));
|
||||
FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
|
||||
LocalAuthPluginRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("LocalAuthPlugin"));
|
||||
SharePlusWindowsPluginCApiRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi"));
|
||||
UrlLauncherWindowsRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
|
||||
}
|
||||
|
|
|
@ -3,9 +3,11 @@
|
|||
#
|
||||
|
||||
list(APPEND FLUTTER_PLUGIN_LIST
|
||||
connectivity_plus_windows
|
||||
connectivity_plus
|
||||
dynamic_color
|
||||
flutter_secure_storage_windows
|
||||
local_auth_windows
|
||||
share_plus
|
||||
url_launcher_windows
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in a new issue