Merge pull request 'refactor: Migrate to Flutter 3.7' (#194) from flutter-3.7 into master

Reviewed-on: kherel/selfprivacy.org.app#194
Reviewed-by: NaiJi  <naiji@udongein.xyz>
pull/207/head
Inex Code 2023-03-28 17:46:23 +03:00
commit fb8fdad0c5
24 changed files with 650 additions and 656 deletions

View File

@ -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

View File

@ -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);

View File

@ -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 ?? ''),
),
);
}

View File

@ -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 ?? ''),
),
);
}
}

View File

@ -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,
),
),

View File

@ -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(

View File

@ -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(),
),

View File

@ -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()),
),
],
);

View File

@ -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);
},

View File

@ -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()),

View File

@ -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(

View File

@ -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(

View File

@ -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);

View File

@ -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()),
)
],
);

View File

@ -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()),
)
],
);

View File

@ -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()),
)
],
);

View File

@ -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),

View File

@ -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()),
)
],
),

View File

@ -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(

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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:

View File

@ -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"));
}

View File

@ -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
)