diff --git a/lib/core/utils/comparator.dart b/lib/core/utils/comparator.dart index 5985daac..7b874da7 100644 --- a/lib/core/utils/comparator.dart +++ b/lib/core/utils/comparator.dart @@ -51,7 +51,7 @@ class ChainComparator { } ChainComparator reversed() { - return ChainComparator._create(null, (a, b) => this.compare(b, a)); + return ChainComparator._create(null, (a, b) => compare(b, a)); } } diff --git a/lib/core/utils/ssh_auth.dart b/lib/core/utils/ssh_auth.dart index 1280be9a..55587118 100644 --- a/lib/core/utils/ssh_auth.dart +++ b/lib/core/utils/ssh_auth.dart @@ -3,15 +3,11 @@ import 'dart:async'; import 'package:fl_lib/fl_lib.dart'; import 'package:flutter/material.dart'; import 'package:server_box/data/model/server/server_private_info.dart'; -import 'package:server_box/data/provider/app.dart'; abstract final class KeybordInteractive { - static FutureOr?> defaultHandle( - Spi spi, { - BuildContext? ctx, - }) async { + static FutureOr?> defaultHandle(Spi spi, {BuildContext? ctx}) async { try { - final res = await (ctx ?? AppProvider.ctx)?.showPwdDialog( + final res = await (ctx ?? WidgetsBinding.instance.focusManager.primaryFocus?.context)?.showPwdDialog( title: libL10n.pwd, id: spi.id, label: spi.id, diff --git a/lib/data/model/app/bak/backup2.freezed.dart b/lib/data/model/app/bak/backup2.freezed.dart index c6d7af5e..622e0479 100644 --- a/lib/data/model/app/bak/backup2.freezed.dart +++ b/lib/data/model/app/bak/backup2.freezed.dart @@ -1,6 +1,5 @@ -// dart format width=80 -// coverage:ignore-file // GENERATED CODE - DO NOT MODIFY BY HAND +// coverage:ignore-file // ignore_for_file: type=lint // ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark @@ -83,6 +82,136 @@ as Map, } +/// Adds pattern-matching-related methods to [BackupV2]. +extension BackupV2Patterns on BackupV2 { +/// A variant of `map` that fallback to returning `orElse`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeMap(TResult Function( _BackupV2 value)? $default,{required TResult orElse(),}){ +final _that = this; +switch (_that) { +case _BackupV2() when $default != null: +return $default(_that);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// Callbacks receives the raw object, upcasted. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case final Subclass2 value: +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult map(TResult Function( _BackupV2 value) $default,){ +final _that = this; +switch (_that) { +case _BackupV2(): +return $default(_that);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `map` that fallback to returning `null`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? mapOrNull(TResult? Function( _BackupV2 value)? $default,){ +final _that = this; +switch (_that) { +case _BackupV2() when $default != null: +return $default(_that);case _: + return null; + +} +} +/// A variant of `when` that fallback to an `orElse` callback. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeWhen(TResult Function( int version, int date, Map spis, Map snippets, Map keys, Map container, Map history, Map settings)? $default,{required TResult orElse(),}) {final _that = this; +switch (_that) { +case _BackupV2() when $default != null: +return $default(_that.version,_that.date,_that.spis,_that.snippets,_that.keys,_that.container,_that.history,_that.settings);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// As opposed to `map`, this offers destructuring. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case Subclass2(:final field2): +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult when(TResult Function( int version, int date, Map spis, Map snippets, Map keys, Map container, Map history, Map settings) $default,) {final _that = this; +switch (_that) { +case _BackupV2(): +return $default(_that.version,_that.date,_that.spis,_that.snippets,_that.keys,_that.container,_that.history,_that.settings);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `when` that fallback to returning `null` +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? whenOrNull(TResult? Function( int version, int date, Map spis, Map snippets, Map keys, Map container, Map history, Map settings)? $default,) {final _that = this; +switch (_that) { +case _BackupV2() when $default != null: +return $default(_that.version,_that.date,_that.spis,_that.snippets,_that.keys,_that.container,_that.history,_that.settings);case _: + return null; + +} +} + +} + /// @nodoc @JsonSerializable() diff --git a/lib/data/model/server/custom.g.dart b/lib/data/model/server/custom.g.dart index f204a733..c67bbeb4 100644 --- a/lib/data/model/server/custom.g.dart +++ b/lib/data/model/server/custom.g.dart @@ -20,11 +20,11 @@ ServerCustom _$ServerCustomFromJson(Map json) => ServerCustom( Map _$ServerCustomToJson(ServerCustom instance) => { - if (instance.pveAddr case final value?) 'pveAddr': value, + 'pveAddr': ?instance.pveAddr, 'pveIgnoreCert': instance.pveIgnoreCert, - if (instance.cmds case final value?) 'cmds': value, - if (instance.preferTempDev case final value?) 'preferTempDev': value, - if (instance.logoUrl case final value?) 'logoUrl': value, - if (instance.netDev case final value?) 'netDev': value, - if (instance.scriptDir case final value?) 'scriptDir': value, + 'cmds': ?instance.cmds, + 'preferTempDev': ?instance.preferTempDev, + 'logoUrl': ?instance.logoUrl, + 'netDev': ?instance.netDev, + 'scriptDir': ?instance.scriptDir, }; diff --git a/lib/data/model/server/disk_smart.freezed.dart b/lib/data/model/server/disk_smart.freezed.dart index d661243e..b521f241 100644 --- a/lib/data/model/server/disk_smart.freezed.dart +++ b/lib/data/model/server/disk_smart.freezed.dart @@ -1,6 +1,5 @@ -// dart format width=80 -// coverage:ignore-file // GENERATED CODE - DO NOT MODIFY BY HAND +// coverage:ignore-file // ignore_for_file: type=lint // ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark @@ -80,6 +79,136 @@ as Map, } +/// Adds pattern-matching-related methods to [DiskSmart]. +extension DiskSmartPatterns on DiskSmart { +/// A variant of `map` that fallback to returning `orElse`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeMap(TResult Function( _DiskSmart value)? $default,{required TResult orElse(),}){ +final _that = this; +switch (_that) { +case _DiskSmart() when $default != null: +return $default(_that);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// Callbacks receives the raw object, upcasted. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case final Subclass2 value: +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult map(TResult Function( _DiskSmart value) $default,){ +final _that = this; +switch (_that) { +case _DiskSmart(): +return $default(_that);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `map` that fallback to returning `null`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? mapOrNull(TResult? Function( _DiskSmart value)? $default,){ +final _that = this; +switch (_that) { +case _DiskSmart() when $default != null: +return $default(_that);case _: + return null; + +} +} +/// A variant of `when` that fallback to an `orElse` callback. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeWhen(TResult Function( String device, bool? healthy, double? temperature, String? model, String? serial, int? powerOnHours, int? powerCycleCount, Map rawData, Map smartAttributes)? $default,{required TResult orElse(),}) {final _that = this; +switch (_that) { +case _DiskSmart() when $default != null: +return $default(_that.device,_that.healthy,_that.temperature,_that.model,_that.serial,_that.powerOnHours,_that.powerCycleCount,_that.rawData,_that.smartAttributes);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// As opposed to `map`, this offers destructuring. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case Subclass2(:final field2): +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult when(TResult Function( String device, bool? healthy, double? temperature, String? model, String? serial, int? powerOnHours, int? powerCycleCount, Map rawData, Map smartAttributes) $default,) {final _that = this; +switch (_that) { +case _DiskSmart(): +return $default(_that.device,_that.healthy,_that.temperature,_that.model,_that.serial,_that.powerOnHours,_that.powerCycleCount,_that.rawData,_that.smartAttributes);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `when` that fallback to returning `null` +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? whenOrNull(TResult? Function( String device, bool? healthy, double? temperature, String? model, String? serial, int? powerOnHours, int? powerCycleCount, Map rawData, Map smartAttributes)? $default,) {final _that = this; +switch (_that) { +case _DiskSmart() when $default != null: +return $default(_that.device,_that.healthy,_that.temperature,_that.model,_that.serial,_that.powerOnHours,_that.powerCycleCount,_that.rawData,_that.smartAttributes);case _: + return null; + +} +} + +} + /// @nodoc @JsonSerializable() @@ -250,6 +379,136 @@ $SmartAttributeFlagsCopyWith<$Res> get flags { } +/// Adds pattern-matching-related methods to [SmartAttribute]. +extension SmartAttributePatterns on SmartAttribute { +/// A variant of `map` that fallback to returning `orElse`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeMap(TResult Function( _SmartAttribute value)? $default,{required TResult orElse(),}){ +final _that = this; +switch (_that) { +case _SmartAttribute() when $default != null: +return $default(_that);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// Callbacks receives the raw object, upcasted. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case final Subclass2 value: +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult map(TResult Function( _SmartAttribute value) $default,){ +final _that = this; +switch (_that) { +case _SmartAttribute(): +return $default(_that);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `map` that fallback to returning `null`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? mapOrNull(TResult? Function( _SmartAttribute value)? $default,){ +final _that = this; +switch (_that) { +case _SmartAttribute() when $default != null: +return $default(_that);case _: + return null; + +} +} +/// A variant of `when` that fallback to an `orElse` callback. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeWhen(TResult Function( int? id, String name, int? value, int? worst, int? thresh, String? whenFailed, dynamic rawValue, String? rawString, SmartAttributeFlags flags)? $default,{required TResult orElse(),}) {final _that = this; +switch (_that) { +case _SmartAttribute() when $default != null: +return $default(_that.id,_that.name,_that.value,_that.worst,_that.thresh,_that.whenFailed,_that.rawValue,_that.rawString,_that.flags);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// As opposed to `map`, this offers destructuring. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case Subclass2(:final field2): +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult when(TResult Function( int? id, String name, int? value, int? worst, int? thresh, String? whenFailed, dynamic rawValue, String? rawString, SmartAttributeFlags flags) $default,) {final _that = this; +switch (_that) { +case _SmartAttribute(): +return $default(_that.id,_that.name,_that.value,_that.worst,_that.thresh,_that.whenFailed,_that.rawValue,_that.rawString,_that.flags);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `when` that fallback to returning `null` +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? whenOrNull(TResult? Function( int? id, String name, int? value, int? worst, int? thresh, String? whenFailed, dynamic rawValue, String? rawString, SmartAttributeFlags flags)? $default,) {final _that = this; +switch (_that) { +case _SmartAttribute() when $default != null: +return $default(_that.id,_that.name,_that.value,_that.worst,_that.thresh,_that.whenFailed,_that.rawValue,_that.rawString,_that.flags);case _: + return null; + +} +} + +} + /// @nodoc @JsonSerializable() @@ -407,6 +666,136 @@ as bool, } +/// Adds pattern-matching-related methods to [SmartAttributeFlags]. +extension SmartAttributeFlagsPatterns on SmartAttributeFlags { +/// A variant of `map` that fallback to returning `orElse`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeMap(TResult Function( _SmartAttributeFlags value)? $default,{required TResult orElse(),}){ +final _that = this; +switch (_that) { +case _SmartAttributeFlags() when $default != null: +return $default(_that);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// Callbacks receives the raw object, upcasted. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case final Subclass2 value: +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult map(TResult Function( _SmartAttributeFlags value) $default,){ +final _that = this; +switch (_that) { +case _SmartAttributeFlags(): +return $default(_that);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `map` that fallback to returning `null`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? mapOrNull(TResult? Function( _SmartAttributeFlags value)? $default,){ +final _that = this; +switch (_that) { +case _SmartAttributeFlags() when $default != null: +return $default(_that);case _: + return null; + +} +} +/// A variant of `when` that fallback to an `orElse` callback. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeWhen(TResult Function( int? value, String? string, bool prefailure, bool updatedOnline, bool performance, bool errorRate, bool eventCount, bool autoKeep)? $default,{required TResult orElse(),}) {final _that = this; +switch (_that) { +case _SmartAttributeFlags() when $default != null: +return $default(_that.value,_that.string,_that.prefailure,_that.updatedOnline,_that.performance,_that.errorRate,_that.eventCount,_that.autoKeep);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// As opposed to `map`, this offers destructuring. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case Subclass2(:final field2): +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult when(TResult Function( int? value, String? string, bool prefailure, bool updatedOnline, bool performance, bool errorRate, bool eventCount, bool autoKeep) $default,) {final _that = this; +switch (_that) { +case _SmartAttributeFlags(): +return $default(_that.value,_that.string,_that.prefailure,_that.updatedOnline,_that.performance,_that.errorRate,_that.eventCount,_that.autoKeep);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `when` that fallback to returning `null` +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? whenOrNull(TResult? Function( int? value, String? string, bool prefailure, bool updatedOnline, bool performance, bool errorRate, bool eventCount, bool autoKeep)? $default,) {final _that = this; +switch (_that) { +case _SmartAttributeFlags() when $default != null: +return $default(_that.value,_that.string,_that.prefailure,_that.updatedOnline,_that.performance,_that.errorRate,_that.eventCount,_that.autoKeep);case _: + return null; + +} +} + +} + /// @nodoc @JsonSerializable() diff --git a/lib/data/model/server/server_private_info.freezed.dart b/lib/data/model/server/server_private_info.freezed.dart index 0b35516d..89db2a0c 100644 --- a/lib/data/model/server/server_private_info.freezed.dart +++ b/lib/data/model/server/server_private_info.freezed.dart @@ -1,6 +1,5 @@ -// dart format width=80 -// coverage:ignore-file // GENERATED CODE - DO NOT MODIFY BY HAND +// coverage:ignore-file // ignore_for_file: type=lint // ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark @@ -92,6 +91,136 @@ as List?, } +/// Adds pattern-matching-related methods to [Spi]. +extension SpiPatterns on Spi { +/// A variant of `map` that fallback to returning `orElse`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeMap(TResult Function( _Spi value)? $default,{required TResult orElse(),}){ +final _that = this; +switch (_that) { +case _Spi() when $default != null: +return $default(_that);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// Callbacks receives the raw object, upcasted. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case final Subclass2 value: +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult map(TResult Function( _Spi value) $default,){ +final _that = this; +switch (_that) { +case _Spi(): +return $default(_that);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `map` that fallback to returning `null`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? mapOrNull(TResult? Function( _Spi value)? $default,){ +final _that = this; +switch (_that) { +case _Spi() when $default != null: +return $default(_that);case _: + return null; + +} +} +/// A variant of `when` that fallback to an `orElse` callback. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeWhen(TResult Function( String name, String ip, int port, String user, String? pwd, @JsonKey(name: 'pubKeyId') String? keyId, List? tags, String? alterUrl, bool autoConnect, String? jumpId, ServerCustom? custom, WakeOnLanCfg? wolCfg, Map? envs, @JsonKey(fromJson: Spi.parseId) String id, @JsonKey(includeIfNull: false) SystemType? customSystemType, @JsonKey(includeIfNull: false) List? disabledCmdTypes)? $default,{required TResult orElse(),}) {final _that = this; +switch (_that) { +case _Spi() when $default != null: +return $default(_that.name,_that.ip,_that.port,_that.user,_that.pwd,_that.keyId,_that.tags,_that.alterUrl,_that.autoConnect,_that.jumpId,_that.custom,_that.wolCfg,_that.envs,_that.id,_that.customSystemType,_that.disabledCmdTypes);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// As opposed to `map`, this offers destructuring. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case Subclass2(:final field2): +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult when(TResult Function( String name, String ip, int port, String user, String? pwd, @JsonKey(name: 'pubKeyId') String? keyId, List? tags, String? alterUrl, bool autoConnect, String? jumpId, ServerCustom? custom, WakeOnLanCfg? wolCfg, Map? envs, @JsonKey(fromJson: Spi.parseId) String id, @JsonKey(includeIfNull: false) SystemType? customSystemType, @JsonKey(includeIfNull: false) List? disabledCmdTypes) $default,) {final _that = this; +switch (_that) { +case _Spi(): +return $default(_that.name,_that.ip,_that.port,_that.user,_that.pwd,_that.keyId,_that.tags,_that.alterUrl,_that.autoConnect,_that.jumpId,_that.custom,_that.wolCfg,_that.envs,_that.id,_that.customSystemType,_that.disabledCmdTypes);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `when` that fallback to returning `null` +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? whenOrNull(TResult? Function( String name, String ip, int port, String user, String? pwd, @JsonKey(name: 'pubKeyId') String? keyId, List? tags, String? alterUrl, bool autoConnect, String? jumpId, ServerCustom? custom, WakeOnLanCfg? wolCfg, Map? envs, @JsonKey(fromJson: Spi.parseId) String id, @JsonKey(includeIfNull: false) SystemType? customSystemType, @JsonKey(includeIfNull: false) List? disabledCmdTypes)? $default,) {final _that = this; +switch (_that) { +case _Spi() when $default != null: +return $default(_that.name,_that.ip,_that.port,_that.user,_that.pwd,_that.keyId,_that.tags,_that.alterUrl,_that.autoConnect,_that.jumpId,_that.custom,_that.wolCfg,_that.envs,_that.id,_that.customSystemType,_that.disabledCmdTypes);case _: + return null; + +} +} + +} + /// @nodoc @JsonSerializable(includeIfNull: false) diff --git a/lib/data/model/server/server_private_info.g.dart b/lib/data/model/server/server_private_info.g.dart index fc255435..a3fc1653 100644 --- a/lib/data/model/server/server_private_info.g.dart +++ b/lib/data/model/server/server_private_info.g.dart @@ -41,19 +41,18 @@ Map _$SpiToJson(_Spi instance) => { 'ip': instance.ip, 'port': instance.port, 'user': instance.user, - if (instance.pwd case final value?) 'pwd': value, - if (instance.keyId case final value?) 'pubKeyId': value, - if (instance.tags case final value?) 'tags': value, - if (instance.alterUrl case final value?) 'alterUrl': value, + 'pwd': ?instance.pwd, + 'pubKeyId': ?instance.keyId, + 'tags': ?instance.tags, + 'alterUrl': ?instance.alterUrl, 'autoConnect': instance.autoConnect, - if (instance.jumpId case final value?) 'jumpId': value, - if (instance.custom case final value?) 'custom': value, - if (instance.wolCfg case final value?) 'wolCfg': value, - if (instance.envs case final value?) 'envs': value, + 'jumpId': ?instance.jumpId, + 'custom': ?instance.custom, + 'wolCfg': ?instance.wolCfg, + 'envs': ?instance.envs, 'id': instance.id, - if (_$SystemTypeEnumMap[instance.customSystemType] case final value?) - 'customSystemType': value, - if (instance.disabledCmdTypes case final value?) 'disabledCmdTypes': value, + 'customSystemType': ?_$SystemTypeEnumMap[instance.customSystemType], + 'disabledCmdTypes': ?instance.disabledCmdTypes, }; const _$SystemTypeEnumMap = { diff --git a/lib/data/model/server/snippet.freezed.dart b/lib/data/model/server/snippet.freezed.dart index b45f113c..4620aca3 100644 --- a/lib/data/model/server/snippet.freezed.dart +++ b/lib/data/model/server/snippet.freezed.dart @@ -1,6 +1,5 @@ -// dart format width=80 -// coverage:ignore-file // GENERATED CODE - DO NOT MODIFY BY HAND +// coverage:ignore-file // ignore_for_file: type=lint // ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark @@ -81,6 +80,136 @@ as List?, } +/// Adds pattern-matching-related methods to [Snippet]. +extension SnippetPatterns on Snippet { +/// A variant of `map` that fallback to returning `orElse`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeMap(TResult Function( _Snippet value)? $default,{required TResult orElse(),}){ +final _that = this; +switch (_that) { +case _Snippet() when $default != null: +return $default(_that);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// Callbacks receives the raw object, upcasted. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case final Subclass2 value: +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult map(TResult Function( _Snippet value) $default,){ +final _that = this; +switch (_that) { +case _Snippet(): +return $default(_that);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `map` that fallback to returning `null`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? mapOrNull(TResult? Function( _Snippet value)? $default,){ +final _that = this; +switch (_that) { +case _Snippet() when $default != null: +return $default(_that);case _: + return null; + +} +} +/// A variant of `when` that fallback to an `orElse` callback. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeWhen(TResult Function( String name, String script, List? tags, String? note, List? autoRunOn)? $default,{required TResult orElse(),}) {final _that = this; +switch (_that) { +case _Snippet() when $default != null: +return $default(_that.name,_that.script,_that.tags,_that.note,_that.autoRunOn);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// As opposed to `map`, this offers destructuring. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case Subclass2(:final field2): +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult when(TResult Function( String name, String script, List? tags, String? note, List? autoRunOn) $default,) {final _that = this; +switch (_that) { +case _Snippet(): +return $default(_that.name,_that.script,_that.tags,_that.note,_that.autoRunOn);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `when` that fallback to returning `null` +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? whenOrNull(TResult? Function( String name, String script, List? tags, String? note, List? autoRunOn)? $default,) {final _that = this; +switch (_that) { +case _Snippet() when $default != null: +return $default(_that.name,_that.script,_that.tags,_that.note,_that.autoRunOn);case _: + return null; + +} +} + +} + /// @nodoc @JsonSerializable() diff --git a/lib/data/model/server/wol_cfg.g.dart b/lib/data/model/server/wol_cfg.g.dart index c83fe845..f7049c84 100644 --- a/lib/data/model/server/wol_cfg.g.dart +++ b/lib/data/model/server/wol_cfg.g.dart @@ -16,5 +16,5 @@ Map _$WakeOnLanCfgToJson(WakeOnLanCfg instance) => { 'mac': instance.mac, 'ip': instance.ip, - if (instance.pwd case final value?) 'pwd': value, + 'pwd': ?instance.pwd, }; diff --git a/lib/data/provider/app.dart b/lib/data/provider/app.dart index 09028857..eb3b2f69 100644 --- a/lib/data/provider/app.dart +++ b/lib/data/provider/app.dart @@ -7,19 +7,15 @@ part 'app.freezed.dart'; @freezed abstract class AppState with _$AppState { - const factory AppState({@Default(false) bool desktopMode}) = _AppState; + const factory AppState() = _AppState; } @Riverpod(keepAlive: true) -class AppProvider extends _$AppProvider { +class AppStates extends _$AppStates { static BuildContext? ctx; @override AppState build() { return const AppState(); } - - void setDesktop(bool desktopMode) { - state = state.copyWith(desktopMode: desktopMode); - } } diff --git a/lib/data/provider/app.freezed.dart b/lib/data/provider/app.freezed.dart index 16b2b9a2..4394db85 100644 --- a/lib/data/provider/app.freezed.dart +++ b/lib/data/provider/app.freezed.dart @@ -1,6 +1,5 @@ -// dart format width=80 -// coverage:ignore-file // GENERATED CODE - DO NOT MODIFY BY HAND +// coverage:ignore-file // ignore_for_file: type=lint // ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark @@ -15,128 +14,193 @@ T _$identity(T value) => value; /// @nodoc mixin _$AppState { - bool get desktopMode; -/// Create a copy of AppState -/// with the given fields replaced by the non-null parameter values. -@JsonKey(includeFromJson: false, includeToJson: false) -@pragma('vm:prefer-inline') -$AppStateCopyWith get copyWith => _$AppStateCopyWithImpl(this as AppState, _$identity); + @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is AppState&&(identical(other.desktopMode, desktopMode) || other.desktopMode == desktopMode)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is AppState); } @override -int get hashCode => Object.hash(runtimeType,desktopMode); +int get hashCode => runtimeType.hashCode; @override String toString() { - return 'AppState(desktopMode: $desktopMode)'; + return 'AppState()'; } } /// @nodoc -abstract mixin class $AppStateCopyWith<$Res> { - factory $AppStateCopyWith(AppState value, $Res Function(AppState) _then) = _$AppStateCopyWithImpl; -@useResult -$Res call({ - bool desktopMode -}); +class $AppStateCopyWith<$Res> { +$AppStateCopyWith(AppState _, $Res Function(AppState) __); +} +/// Adds pattern-matching-related methods to [AppState]. +extension AppStatePatterns on AppState { +/// A variant of `map` that fallback to returning `orElse`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` +@optionalTypeArgs TResult maybeMap(TResult Function( _AppState value)? $default,{required TResult orElse(),}){ +final _that = this; +switch (_that) { +case _AppState() when $default != null: +return $default(_that);case _: + return orElse(); } -/// @nodoc -class _$AppStateCopyWithImpl<$Res> - implements $AppStateCopyWith<$Res> { - _$AppStateCopyWithImpl(this._self, this._then); +} +/// A `switch`-like method, using callbacks. +/// +/// Callbacks receives the raw object, upcasted. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case final Subclass2 value: +/// return ...; +/// } +/// ``` - final AppState _self; - final $Res Function(AppState) _then; +@optionalTypeArgs TResult map(TResult Function( _AppState value) $default,){ +final _that = this; +switch (_that) { +case _AppState(): +return $default(_that);case _: + throw StateError('Unexpected subclass'); -/// Create a copy of AppState -/// with the given fields replaced by the non-null parameter values. -@pragma('vm:prefer-inline') @override $Res call({Object? desktopMode = null,}) { - return _then(_self.copyWith( -desktopMode: null == desktopMode ? _self.desktopMode : desktopMode // ignore: cast_nullable_to_non_nullable -as bool, - )); +} +} +/// A variant of `map` that fallback to returning `null`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? mapOrNull(TResult? Function( _AppState value)? $default,){ +final _that = this; +switch (_that) { +case _AppState() when $default != null: +return $default(_that);case _: + return null; + +} +} +/// A variant of `when` that fallback to an `orElse` callback. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeWhen(TResult Function()? $default,{required TResult orElse(),}) {final _that = this; +switch (_that) { +case _AppState() when $default != null: +return $default();case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// As opposed to `map`, this offers destructuring. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case Subclass2(:final field2): +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult when(TResult Function() $default,) {final _that = this; +switch (_that) { +case _AppState(): +return $default();case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `when` that fallback to returning `null` +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? whenOrNull(TResult? Function()? $default,) {final _that = this; +switch (_that) { +case _AppState() when $default != null: +return $default();case _: + return null; + +} } } - /// @nodoc class _AppState implements AppState { - const _AppState({this.desktopMode = false}); + const _AppState(); -@override@JsonKey() final bool desktopMode; -/// Create a copy of AppState -/// with the given fields replaced by the non-null parameter values. -@override @JsonKey(includeFromJson: false, includeToJson: false) -@pragma('vm:prefer-inline') -_$AppStateCopyWith<_AppState> get copyWith => __$AppStateCopyWithImpl<_AppState>(this, _$identity); + @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is _AppState&&(identical(other.desktopMode, desktopMode) || other.desktopMode == desktopMode)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is _AppState); } @override -int get hashCode => Object.hash(runtimeType,desktopMode); +int get hashCode => runtimeType.hashCode; @override String toString() { - return 'AppState(desktopMode: $desktopMode)'; + return 'AppState()'; } } -/// @nodoc -abstract mixin class _$AppStateCopyWith<$Res> implements $AppStateCopyWith<$Res> { - factory _$AppStateCopyWith(_AppState value, $Res Function(_AppState) _then) = __$AppStateCopyWithImpl; -@override @useResult -$Res call({ - bool desktopMode -}); - -} -/// @nodoc -class __$AppStateCopyWithImpl<$Res> - implements _$AppStateCopyWith<$Res> { - __$AppStateCopyWithImpl(this._self, this._then); - - final _AppState _self; - final $Res Function(_AppState) _then; - -/// Create a copy of AppState -/// with the given fields replaced by the non-null parameter values. -@override @pragma('vm:prefer-inline') $Res call({Object? desktopMode = null,}) { - return _then(_AppState( -desktopMode: null == desktopMode ? _self.desktopMode : desktopMode // ignore: cast_nullable_to_non_nullable -as bool, - )); -} - - -} - // dart format on diff --git a/lib/data/provider/app.g.dart b/lib/data/provider/app.g.dart index 66f790de..660396b2 100644 --- a/lib/data/provider/app.g.dart +++ b/lib/data/provider/app.g.dart @@ -6,20 +6,57 @@ part of 'app.dart'; // RiverpodGenerator // ************************************************************************** -String _$appProviderHash() => r'8378ec9d0a9c8d99cc05805047cd2d52ac4dbb56'; +@ProviderFor(AppStates) +const appStatesProvider = AppStatesProvider._(); -/// See also [AppProvider]. -@ProviderFor(AppProvider) -final appProviderProvider = NotifierProvider.internal( - AppProvider.new, - name: r'appProviderProvider', - debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') - ? null - : _$appProviderHash, - dependencies: null, - allTransitiveDependencies: null, -); +final class AppStatesProvider extends $NotifierProvider { + const AppStatesProvider._() + : super( + from: null, + argument: null, + retry: null, + name: r'appStatesProvider', + isAutoDispose: false, + dependencies: null, + $allTransitiveDependencies: null, + ); + + @override + String debugGetCreateSourceHash() => _$appStatesHash(); + + @$internal + @override + AppStates create() => AppStates(); + + /// {@macro riverpod.override_with_value} + Override overrideWithValue(AppState value) { + return $ProviderOverride( + origin: this, + providerOverride: $SyncValueProvider(value), + ); + } +} + +String _$appStatesHash() => r'ef96f10f6fff0f3dd6d3128ebf070ad79cbc8bc9'; + +abstract class _$AppStates extends $Notifier { + AppState build(); + @$mustCallSuper + @override + void runBuild() { + final created = build(); + final ref = this.ref as $Ref; + final element = + ref.element + as $ClassProviderElement< + AnyNotifier, + AppState, + Object?, + Object? + >; + element.handleValue(ref, created); + } +} -typedef _$AppProvider = Notifier; // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/lib/data/store/setting.dart b/lib/data/store/setting.dart index 8a9dfe2c..4e365139 100644 --- a/lib/data/store/setting.dart +++ b/lib/data/store/setting.dart @@ -140,6 +140,10 @@ class SettingStore extends HiveStore { /// Only valid on iOS / Android / Windows late final useBioAuth = propertyDefault('useBioAuth', false); + /// Delay to lock the App with BioAuth, in seconds. + /// Set to `0` to disable this feature. + late final delayBioAuthLock = propertyDefault('delayBioAuthLock', 0); + /// The performance of highlight is bad late final editorHighlight = propertyDefault('editorHighlight', true); diff --git a/lib/view/page/home.dart b/lib/view/page/home.dart index 0844058d..0eafb614 100644 --- a/lib/view/page/home.dart +++ b/lib/view/page/home.dart @@ -3,7 +3,6 @@ import 'package:flutter/material.dart'; import 'package:responsive_framework/responsive_framework.dart'; import 'package:server_box/core/chan.dart'; import 'package:server_box/data/model/app/tab.dart'; -import 'package:server_box/data/provider/app.dart'; import 'package:server_box/data/provider/server.dart'; import 'package:server_box/data/res/build_data.dart'; import 'package:server_box/data/res/store.dart'; @@ -28,6 +27,7 @@ class _HomePageState extends State bool _switchingPage = false; bool _shouldAuth = false; + DateTime? _pausedTime; @override void dispose() { @@ -62,13 +62,27 @@ class _HomePageState extends State switch (state) { case AppLifecycleState.resumed: - if (_shouldAuth) _goAuth(); + if (_shouldAuth) { + final delay = Stores.setting.delayBioAuthLock.fetch(); + if (delay > 0 && _pausedTime != null) { + final now = DateTime.now(); + if (now.difference(_pausedTime ?? now).inSeconds > delay) { + _goAuth(); + } else { + _shouldAuth = false; + } + _pausedTime = null; + } else { + _goAuth(); + } + } if (!ServerProvider.isAutoRefreshOn) { ServerProvider.startAutoRefresh(); } MethodChans.updateHomeWidget(); break; case AppLifecycleState.paused: + _pausedTime = DateTime.now(); _shouldAuth = true; // Keep running in background on Android device if (isAndroid && Stores.setting.bgRun.fetch()) { @@ -89,7 +103,6 @@ class _HomePageState extends State @override Widget build(BuildContext context) { super.build(context); - AppProvider.ctx = context; final isMobile = ResponsiveBreakpoints.of(context).isMobile; return Scaffold( diff --git a/lib/view/page/server/edit.dart b/lib/view/page/server/edit.dart index 0f39b683..67596a97 100644 --- a/lib/view/page/server/edit.dart +++ b/lib/view/page/server/edit.dart @@ -232,11 +232,7 @@ class _ServerEditPageState extends State with AfterLayoutMixin { final e = pkis[index]; return ListTile( contentPadding: const EdgeInsets.only(left: 10, right: 15), - leading: Radio( - value: index, - groupValue: _keyIdx.value, - onChanged: (value) => _keyIdx.value = value, - ), + leading: Radio(value: index), title: Text(e.id, textAlign: TextAlign.start), subtitle: Text(e.type ?? l10n.unknown, textAlign: TextAlign.start, style: UIs.textGrey), trailing: Btn.icon( @@ -254,7 +250,10 @@ class _ServerEditPageState extends State with AfterLayoutMixin { onTap: () => PrivateKeyEditPage.route.go(context), ), ); - return _keyIdx.listenVal((_) => Column(children: tiles)).cardx; + return RadioGroup( + onChanged: (val) => _keyIdx.value = val, + child: _keyIdx.listenVal((_) => Column(children: tiles)).cardx, + ); }); } diff --git a/lib/view/page/setting/entries/app.dart b/lib/view/page/setting/entries/app.dart index 0e5bbf7b..b8beb865 100644 --- a/lib/view/page/setting/entries/app.dart +++ b/lib/view/page/setting/entries/app.dart @@ -8,7 +8,7 @@ extension _App on _AppSettingsPageState { _buildThemeMode(), _buildAppColor(), _buildCheckUpdate(), - PlatformPublicSettings.buildBioAuth(), + PlatformPublicSettings.buildBioAuth, if (specific != null) specific, _buildAppMore(), ]; diff --git a/lib/view/page/setting/platform/platform_pub.dart b/lib/view/page/setting/platform/platform_pub.dart index c37fbc60..0fea6921 100644 --- a/lib/view/page/setting/platform/platform_pub.dart +++ b/lib/view/page/setting/platform/platform_pub.dart @@ -3,23 +3,47 @@ import 'package:flutter/material.dart'; import 'package:server_box/data/res/store.dart'; abstract final class PlatformPublicSettings { - static Widget buildBioAuth() { + static Widget get buildBioAuth { + return ExpandTile(title: Text(libL10n.bioAuth), children: [_buildBioAuth(), _buildBioAuthDelay()]); + } + + static Widget _buildBioAuthDelay() { + return FutureWidget( + future: LocalAuth.isAvail, + loading: ListTile( + title: Text(libL10n.delay), + subtitle: const Text('...', style: UIs.textGrey), + ), + error: (e, _) => ListTile( + title: Text(libL10n.delay), + subtitle: Text('${libL10n.fail}: $e', style: UIs.textGrey), + ), + success: (can) { + return ListTile( + title: Text(libL10n.delay), + trailing: can == true ? Stores.setting.delayBioAuthLock.fieldWidget() : null, + ); + }, + ); + } + + static Widget _buildBioAuth() { return FutureWidget( future: LocalAuth.isAvail, loading: ListTile( leading: const Icon(Icons.fingerprint), - title: Text(libL10n.bioAuth), + title: Text(libL10n.switch_), subtitle: const Text('...', style: UIs.textGrey), ), error: (e, _) => ListTile( - title: Text(libL10n.bioAuth), + title: Text(libL10n.switch_), subtitle: Text('${libL10n.fail}: $e', style: UIs.textGrey), ), success: (can) { can ??= false; return ListTile( leading: const Icon(Icons.fingerprint), - title: Text(libL10n.bioAuth), + title: Text(libL10n.switch_), subtitle: can ? null : Text(libL10n.notExistFmt(libL10n.bioAuth), style: UIs.textGrey), trailing: can ? StoreSwitch( diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 35ec590b..788ab2b9 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -26,7 +26,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin")) FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) IcloudStoragePlugin.register(with: registry.registrar(forPlugin: "IcloudStoragePlugin")) - FLALocalAuthPlugin.register(with: registry.registrar(forPlugin: "FLALocalAuthPlugin")) + LocalAuthPlugin.register(with: registry.registrar(forPlugin: "LocalAuthPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) ScreenRetrieverMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverMacosPlugin")) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 35ccd2c6..c572383f 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - app_links (1.0.0): + - app_links (6.4.1): - FlutterMacOS - dynamic_color (0.0.2): - FlutterMacOS @@ -82,13 +82,13 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos SPEC CHECKSUMS: - app_links: afe860c55c7ef176cea7fb630a2b7d7736de591d - dynamic_color: b820c000cc68df65e7ba7ff177cb98404ce56651 + app_links: 05a6ec2341985eb05e9f97dc63f5837c39895c3f + dynamic_color: cb7c2a300ee67ed3bd96c3e852df3af0300bf610 file_picker: 7584aae6fa07a041af2b36a2655122d42f578c1a flutter_secure_storage_macos: 7f45e30f838cf2659862a4e4e3ee1c347c2b3b54 - FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 + FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 icloud_storage: eb5b0f20687cf5a4fabc0b541f3b079cd6df7dcb - local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391 + local_auth_darwin: d2e8c53ef0c4f43c646462e3415432c4dab3ae19 package_info_plus: f0052d280d17aa382b932f399edf32507174e870 path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 screen_retriever_macos: 452e51764a9e1cdb74b3c541238795849f21557f diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index ab26d336..cfca878c 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -453,7 +453,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; @@ -542,7 +542,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -590,7 +590,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; diff --git a/pubspec.lock b/pubspec.lock index da9db2b9..317883d6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,26 +5,26 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: e55636ed79578b9abca5fecf9437947798f5ef7456308b5cb85720b793eac92f + sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f url: "https://pub.dev" source: hosted - version: "82.0.0" + version: "85.0.0" analyzer: dependency: "direct dev" description: name: analyzer - sha256: "904ae5bb474d32c38fb9482e2d925d5454cda04ddd0e55d2e6826bc72f6ba8c0" + sha256: f4ad0fea5f102201015c9aae9d93bc02f75dd9491529a8c21f88d17a8523d44c url: "https://pub.dev" source: hosted - version: "7.4.5" + version: "7.6.0" analyzer_plugin: dependency: transitive description: name: analyzer_plugin - sha256: ee188b6df6c85f1441497c7171c84f1392affadc0384f71089cb10a3bc508cef + sha256: a5ab7590c27b779f3d4de67f31c4109dbe13dd7339f86461a6f2a8ab2594d8ce url: "https://pub.dev" source: hosted - version: "0.13.1" + version: "0.13.4" animations: dependency: transitive description: @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: app_links - sha256: "85ed8fc1d25a76475914fff28cc994653bd900bc2c26e4b57a49e097febb54ba" + sha256: "5f88447519add627fe1cbcab4fd1da3d4fed15b9baf29f28b22535c95ecee3e8" url: "https://pub.dev" source: hosted - version: "6.4.0" + version: "6.4.1" app_links_linux: dependency: transitive description: @@ -93,10 +93,10 @@ packages: dependency: transitive description: name: asn1lib - sha256: "0511d6be23b007e95105ae023db599aea731df604608978dada7f9faf2637623" + sha256: "9a8f69025044eb466b9b60ef3bc3ac99b4dc6c158ae9c56d25eeccf5bc56d024" url: "https://pub.dev" source: hosted - version: "1.6.4" + version: "1.6.5" async: dependency: transitive description: @@ -117,18 +117,18 @@ packages: dependency: transitive description: name: build - sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 + sha256: "6439a9c71a4e6eca8d9490c1b380a25b02675aa688137dfbe66d2062884a23ac" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "3.0.2" build_config: dependency: transitive description: name: build_config - sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + sha256: "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.2.0" build_daemon: dependency: transitive description: @@ -141,26 +141,26 @@ packages: dependency: transitive description: name: build_resolvers - sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 + sha256: "2b21a125d66a86b9511cc3fb6c668c42e9a1185083922bf60e46d483a81a9712" url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "3.0.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" + sha256: fd3c09f4bbff7fa6e8d8ef688a0b2e8a6384e6483a25af0dac75fef362bcfe6f url: "https://pub.dev" source: hosted - version: "2.4.15" + version: "2.7.0" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" + sha256: ab27e46c8aa233e610cf6084ee6d8a22c6f873a0a9929241d8855b7a72978ae7 url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "9.3.0" built_collection: dependency: transitive description: @@ -173,34 +173,34 @@ packages: dependency: transitive description: name: built_value - sha256: "082001b5c3dc495d4a42f1d5789990505df20d8547d42507c29050af6933ee27" + sha256: ba95c961bafcd8686d1cf63be864eb59447e795e124d98d6a27d91fcd13602fb url: "https://pub.dev" source: hosted - version: "8.10.1" + version: "8.11.1" camera: dependency: transitive description: name: camera - sha256: "413d2b34fe28496c35c69ede5b232fb9dd5ca2c3a4cb606b14efc1c7546cc8cb" + sha256: d6ec2cbdbe2fa8f5e0d07d8c06368fe4effa985a4a5ddade9cc58a8cd849557d url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.11.2" camera_android_camerax: dependency: transitive description: name: camera_android_camerax - sha256: "68d7ec97439108ac22cfba34bb74d0ab53adbc017175116d2cbc5a3d8fc8ea5e" + sha256: "58b8fe843a3c83fd1273c00cb35f5a8ae507f6cc9b2029bcf7e2abba499e28d8" url: "https://pub.dev" source: hosted - version: "0.6.18+2" + version: "0.6.19+1" camera_avfoundation: dependency: transitive description: name: camera_avfoundation - sha256: a33cd9a250296271cdf556891b7c0986a93772426f286595eccd5f45b185933c + sha256: e4aca5bccaf897b70cac87e5fdd789393310985202442837922fd40325e2733b url: "https://pub.dev" source: hosted - version: "0.9.18+14" + version: "0.9.21+1" camera_platform_interface: dependency: transitive description: @@ -311,10 +311,10 @@ packages: dependency: transitive description: name: coverage - sha256: aa07dbe5f2294c827b7edb9a87bba44a9c15a3cc81bc8da2ca19b37322d30080 + sha256: "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d" url: "https://pub.dev" source: hosted - version: "1.14.1" + version: "1.15.0" cross_file: dependency: transitive description: @@ -343,26 +343,26 @@ packages: dependency: transitive description: name: custom_lint_core - sha256: "31110af3dde9d29fb10828ca33f1dce24d2798477b167675543ce3d208dee8be" + sha256: cc4684d22ca05bf0a4a51127e19a8aea576b42079ed2bc9e956f11aaebe35dd1 url: "https://pub.dev" source: hosted - version: "0.7.5" + version: "0.8.0" custom_lint_visitor: dependency: transitive description: name: custom_lint_visitor - sha256: cba5b6d7a6217312472bf4468cdf68c949488aed7ffb0eab792cd0b6c435054d + sha256: "4a86a0d8415a91fbb8298d6ef03e9034dc8e323a599ddc4120a0e36c433983a2" url: "https://pub.dev" source: hosted - version: "1.0.0+7.4.5" + version: "1.0.0+7.7.0" dart_style: dependency: transitive description: name: dart_style - sha256: "5b236382b47ee411741447c1f1e111459c941ea1b3f2b540dde54c210a3662af" + sha256: "8a0e5fba27e8ee025d2ffb4ee820b4e6e2cf5e4246a6b1a477eb66866947e0bb" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.1" dartssh2: dependency: "direct main" description: @@ -384,10 +384,10 @@ packages: dependency: "direct main" description: name: dio - sha256: "253a18bbd4851fecba42f7343a1df3a9a4c1d31a2c1b37e221086b4fa8c8dbc9" + sha256: d90ee57923d1828ac14e492ca49440f65477f4bb1263575900be731a3dac66a9 url: "https://pub.dev" source: hosted - version: "5.8.0+1" + version: "5.9.0" dio_web_adapter: dependency: transitive description: @@ -400,10 +400,10 @@ packages: dependency: "direct main" description: name: dynamic_color - sha256: eae98052fa6e2826bdac3dd2e921c6ce2903be15c6b7f8b6d8a5d49b5086298d + sha256: "43a5a6679649a7731ab860334a5812f2067c2d9ce6452cf069c5e0c25336c17c" url: "https://pub.dev" source: hosted - version: "1.7.0" + version: "1.8.1" easy_isolate: dependency: "direct main" description: @@ -464,10 +464,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: "77f8e81d22d2a07d0dee2c62e1dda71dc1da73bf43bb2d45af09727406167964" + sha256: ef7d2a085c1b1d69d17b6842d0734aad90156de08df6bd3c12496d0bd6ddf8e2 url: "https://pub.dev" source: hosted - version: "10.1.9" + version: "10.3.1" fixnum: dependency: transitive description: @@ -497,8 +497,8 @@ packages: dependency: "direct main" description: path: "." - ref: "v1.0.333" - resolved-ref: d73f37c7e7232847d29507ac0df24d38db64a9dc + ref: "v1.0.336" + resolved-ref: "403ec409389521b12f5ab278a7f306daab0504d3" url: "https://github.com/lppcg/fl_lib" source: git version: "0.0.1" @@ -572,18 +572,18 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: f948e346c12f8d5480d2825e03de228d0eb8c3a737e4cdaa122267b89c022b5e + sha256: "6382ce712ff69b0f719640ce957559dde459e55ecd433c767e06d139ddf16cab" url: "https://pub.dev" source: hosted - version: "2.0.28" + version: "2.0.29" flutter_riverpod: dependency: "direct main" description: name: flutter_riverpod - sha256: "9532ee6db4a943a1ed8383072a2e3eeda041db5657cdf6d2acecf3c21ecbe7e1" + sha256: "56c3cc75d04c34fc824ce1d52ec9076c431e3c47ed55fd8cbf9756ca6d50479e" url: "https://pub.dev" source: hosted - version: "2.6.1" + version: "3.0.0-dev.17" flutter_secure_storage: dependency: transitive description: @@ -636,10 +636,10 @@ packages: dependency: transitive description: name: flutter_svg - sha256: d44bf546b13025ec7353091516f6881f1d4c633993cb109c3916c3a0159dadf1 + sha256: de82e6bf958cec7190fbc1c5298282c851228e35ae2b14e2b103e7f777818c64 url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.0.13" flutter_test: dependency: "direct dev" description: flutter @@ -654,18 +654,18 @@ packages: dependency: "direct dev" description: name: freezed - sha256: "6022db4c7bfa626841b2a10f34dd1e1b68e8f8f9650db6112dcdeeca45ca793c" + sha256: da32f8ba8cfcd4ec71d9decc8cbf28bd2c31b5283d9887eb51eb4a0659d8110c url: "https://pub.dev" source: hosted - version: "3.0.6" + version: "3.2.0" freezed_annotation: dependency: "direct main" description: name: freezed_annotation - sha256: c87ff004c8aa6af2d531668b46a4ea379f7191dc6dfa066acd53d506da6e044b + sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.1.0" frontend_server_client: dependency: transitive description: @@ -691,12 +691,13 @@ packages: source: hosted version: "2.3.2" gtk: - dependency: transitive + dependency: "direct overridden" description: - name: gtk - sha256: e8ce9ca4b1df106e4d72dad201d345ea1a036cc12c360f1a7d5a758f78ffa42c - url: "https://pub.dev" - source: hosted + path: "." + ref: "v0.0.36" + resolved-ref: c62c45857fb4f60ca3d6b5fc7fa2a26df8ba9fa7 + url: "https://github.com/lollipopkit/gtk.dart" + source: git version: "2.1.0" highlight: dependency: "direct main" @@ -726,10 +727,10 @@ packages: dependency: "direct dev" description: name: hive_ce_generator - sha256: "609678c10ebee7503505a0007050af40a0a4f498b1fb7def3220df341e573a89" + sha256: a169feeff2da9cc2c417ce5ae9bcebf7c8a95d7a700492b276909016ad70a786 url: "https://pub.dev" source: hosted - version: "1.9.2" + version: "1.9.3" html: dependency: transitive description: @@ -742,10 +743,10 @@ packages: dependency: transitive description: name: http - sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" + sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007 url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.0" http_client_helper: dependency: transitive description: @@ -854,34 +855,34 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: c50ef5fc083d5b5e12eef489503ba3bf5ccc899e487d691584699b4bdefeea8c + sha256: ce2cf974ccdee13be2a510832d7fba0b94b364e0b0395dee42abaa51b855be27 url: "https://pub.dev" source: hosted - version: "6.9.5" + version: "6.10.0" leak_tracker: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "8dcda04c3fc16c14f48a7bb586d4be1f0d1572731b6d81d51772ef47c02081e0" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.1" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: @@ -902,18 +903,18 @@ packages: dependency: transitive description: name: local_auth_android - sha256: "63ad7ca6396290626dc0cb34725a939e4cfe965d80d36112f08d49cf13a8136e" + sha256: "316503f6772dea9c0c038bb7aac4f68ab00112d707d258c770f7fc3c250a2d88" url: "https://pub.dev" source: hosted - version: "1.0.49" + version: "1.0.51" local_auth_darwin: dependency: transitive description: name: local_auth_darwin - sha256: "630996cd7b7f28f5ab92432c4b35d055dd03a747bc319e5ffbb3c4806a3e50d2" + sha256: "0e9706a8543a4a2eee60346294d6a633dd7c3ee60fae6b752570457c4ff32055" url: "https://pub.dev" source: hosted - version: "1.4.3" + version: "1.6.0" local_auth_platform_interface: dependency: transitive description: @@ -986,14 +987,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + mockito: + dependency: transitive + description: + name: mockito + sha256: "2314cbe9165bcd16106513df9cf3c3224713087f09723b128928dc11a4379f99" + url: "https://pub.dev" + source: hosted + version: "5.5.0" multi_split_view: dependency: transitive description: name: multi_split_view - sha256: "99c02f128e7423818d13b8f2e01e3027e953b35508019dcee214791bd0525db5" + sha256: "06f5126a65d3010ce0a9d5c003e793041fe99377b23e3534bb05059f79a580e9" url: "https://pub.dev" source: hosted - version: "3.6.0" + version: "3.6.1" nested: dependency: transitive description: @@ -1022,18 +1031,18 @@ packages: dependency: transitive description: name: package_info_plus - sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191" + sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968" url: "https://pub.dev" source: hosted - version: "8.3.0" + version: "8.3.1" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c" + sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" path: dependency: transitive description: @@ -1070,10 +1079,10 @@ packages: dependency: transitive description: name: path_provider_foundation - sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" + sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" path_provider_linux: dependency: transitive description: @@ -1102,10 +1111,10 @@ packages: dependency: transitive description: name: petitparser - sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" + sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "7.0.1" pinenacl: dependency: transitive description: @@ -1159,18 +1168,18 @@ packages: dependency: transitive description: name: posix - sha256: f0d7856b6ca1887cfa6d1d394056a296ae33489db914e365e2044fdada449e62 + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "6.0.3" pretty_qr_code: dependency: transitive description: name: pretty_qr_code - sha256: b078bd5d51956dea4342378af1b092ad962b81bdbb55b10fffce03461da8db74 + sha256: "2291db3f68d70a3dcd46c6bd599f30991ae4c02f27f36215fbb3f4865a609259" url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.5.0" provider: dependency: transitive description: @@ -1215,10 +1224,10 @@ packages: dependency: transitive description: name: qr_code_dart_scan - sha256: "8c9a63dac44ea51c82e72c0fed28b850d22be26348c582f77486f128cf1c2760" + sha256: b23879821242bc2c1b2d3a035d96d453a5554c86894a69e10726b559206bcafb url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.11.2" quiver: dependency: transitive description: @@ -1255,34 +1264,34 @@ packages: dependency: transitive description: name: riverpod - sha256: "59062512288d3056b2321804332a13ffdd1bf16df70dcc8e506e411280a72959" + sha256: "82507cfb140c044f12e929c054dcdfc478359f473bcd2976af26908318e91b8e" url: "https://pub.dev" source: hosted - version: "2.6.1" + version: "3.0.0-dev.17" riverpod_analyzer_utils: dependency: transitive description: name: riverpod_analyzer_utils - sha256: "03a17170088c63aab6c54c44456f5ab78876a1ddb6032ffde1662ddab4959611" + sha256: ce9dfa8dccc5029535a09d1582681c894c8853613aaca5869d372348cf432114 url: "https://pub.dev" source: hosted - version: "0.5.10" + version: "1.0.0-dev.4" riverpod_annotation: dependency: "direct main" description: name: riverpod_annotation - sha256: e14b0bf45b71326654e2705d462f21b958f987087be850afd60578fcd502d1b8 + sha256: d4449ce911fe1e211a2f6fbc110c907859b01419f720f604791fe8583a06620e url: "https://pub.dev" source: hosted - version: "2.6.1" + version: "3.0.0-dev.17" riverpod_generator: dependency: "direct dev" description: name: riverpod_generator - sha256: "44a0992d54473eb199ede00e2260bd3c262a86560e3c6f6374503d86d0580e36" + sha256: "16569af989111e5087da6cfd71660eb0dbcfb87e5395cfa5181ce089ff4f7729" url: "https://pub.dev" source: hosted - version: "2.6.5" + version: "3.0.0-dev.17" screen_retriever: dependency: transitive description: @@ -1335,18 +1344,18 @@ packages: dependency: transitive description: name: share_plus - sha256: b2961506569e28948d75ec346c28775bb111986bb69dc6a20754a457e3d97fa0 + sha256: d7dc0630a923883c6328ca31b89aa682bacbf2f8304162d29f7c6aaff03a27a1 url: "https://pub.dev" source: hosted - version: "11.0.0" + version: "11.1.0" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "1032d392bc5d2095a77447a805aa3f804d2ae6a4d5eef5e6ebb3bd94c1bc19ef" + sha256: "88023e53a13429bd65d8e85e11a9b484f49d4c190abbd96c7932b74d6927cc9a" url: "https://pub.dev" source: hosted - version: "6.0.0" + version: "6.1.0" shared_preferences: dependency: "direct main" description: @@ -1359,10 +1368,10 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac" + sha256: "5bcf0772a761b04f8c6bf814721713de6f3e5d9d89caf8d3fe031b02a342379e" url: "https://pub.dev" source: hosted - version: "2.4.10" + version: "2.4.11" shared_preferences_foundation: dependency: transitive description: @@ -1444,18 +1453,18 @@ packages: dependency: transitive description: name: source_gen - sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b" + sha256: "7b19d6ba131c6eb98bfcbf8d56c1a7002eba438af2e7ae6f8398b2b0f4f381e3" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "3.1.0" source_helper: dependency: transitive description: name: source_helper - sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" + sha256: a447acb083d3a5ef17f983dd36201aeea33fedadb3228fa831f2f0c92f0f3aca url: "https://pub.dev" source: hosted - version: "1.3.5" + version: "1.3.7" source_map_stack_trace: dependency: transitive description: @@ -1540,26 +1549,26 @@ packages: dependency: "direct dev" description: name: test - sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" + sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb" url: "https://pub.dev" source: hosted - version: "1.25.15" + version: "1.26.2" test_api: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.6" test_core: dependency: transitive description: name: test_core - sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" + sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a" url: "https://pub.dev" source: hosted - version: "0.6.8" + version: "0.6.11" timing: dependency: transitive description: @@ -1596,26 +1605,26 @@ packages: dependency: transitive description: name: url_launcher - sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "8582d7f6fe14d2652b4c45c9b6c14c0b678c2af2d083a11b604caeba51930d79" + sha256: "0aedad096a85b49df2e4725fa32118f9fa580f3b14af7a2d2221896a02cd5656" url: "https://pub.dev" source: hosted - version: "6.3.16" + version: "6.3.17" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb" + sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 url: "https://pub.dev" source: hosted - version: "6.3.3" + version: "6.3.4" url_launcher_linux: dependency: transitive description: @@ -1628,10 +1637,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" + sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f url: "https://pub.dev" source: hosted - version: "3.2.2" + version: "3.2.3" url_launcher_platform_interface: dependency: transitive description: @@ -1668,42 +1677,42 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de" + sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6 url: "https://pub.dev" source: hosted - version: "1.1.18" + version: "1.1.19" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" + sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da url: "https://pub.dev" source: hosted - version: "1.1.13" + version: "1.1.11+1" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331" + sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" url: "https://pub.dev" source: hosted - version: "1.1.17" + version: "1.1.11+1" vector_math: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" url: "https://pub.dev" source: hosted - version: "15.0.0" + version: "15.0.2" wake_on_lan: dependency: "direct main" description: @@ -1741,10 +1750,10 @@ packages: dependency: transitive description: name: watcher - sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" + sha256: "0b7fd4a0bbc4b92641dbf20adfd7e3fd1398fe17102d94b674234563e110088a" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" web: dependency: transitive description: @@ -1789,18 +1798,18 @@ packages: dependency: transitive description: name: win32 - sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba" + sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03" url: "https://pub.dev" source: hosted - version: "5.13.0" + version: "5.14.0" window_manager: dependency: transitive description: name: window_manager - sha256: "51d50168ab267d344b975b15390426b1243600d436770d3f13de67e55b05ec16" + sha256: "7eb6d6c4164ec08e1bf978d6e733f3cebe792e2a23fb07cbca25c2872bfdbdcd" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.5.1" xdg_directories: dependency: transitive description: @@ -1813,10 +1822,10 @@ packages: dependency: "direct main" description: name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" url: "https://pub.dev" source: hosted - version: "6.5.0" + version: "6.6.1" xterm: dependency: "direct main" description: @@ -1859,5 +1868,5 @@ packages: source: hosted version: "1.1.4" sdks: - dart: ">=3.8.0 <4.0.0" - flutter: ">=3.32.1" + dart: ">=3.9.0 <4.0.0" + flutter: ">=3.35.0" diff --git a/pubspec.yaml b/pubspec.yaml index 921db8a4..57bf4b14 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -4,8 +4,8 @@ publish_to: "none" version: 1.0.1206+1206 environment: - sdk: ">=3.8.0" - flutter: ">=3.32.1" + sdk: ">=3.9.0" + flutter: ">=3.35.0" dependencies: flutter: @@ -19,7 +19,7 @@ dependencies: easy_isolate: ^1.3.0 extended_image: ^10.0.0 file_picker: ^10.1.9 - flutter_riverpod: ^2.6.1 + flutter_riverpod: ^3.0.0-dev.17 flutter_highlight: ^0.7.0 flutter_displaymode: ^0.6.0 fl_chart: ^1.0.0 @@ -30,7 +30,7 @@ dependencies: json_annotation: ^4.9.0 responsive_framework: ^1.5.1 re_editor: ^0.7.0 - riverpod_annotation: ^2.6.1 + riverpod_annotation: ^3.0.0-dev.17 shared_preferences: ^2.1.1 wakelock_plus: ^1.2.4 wake_on_lan: ^4.1.1+3 @@ -63,7 +63,7 @@ dependencies: fl_lib: git: url: https://github.com/lppcg/fl_lib - ref: v1.0.333 + ref: v1.0.336 dependency_overrides: # webdav_client_plus: @@ -76,6 +76,10 @@ dependency_overrides: # path: ../fl_lib # fl_build: # path: ../fl_build + gtk: + git: + url: https://github.com/lollipopkit/gtk.dart + ref: v0.0.36 dev_dependencies: analyzer: ^7.3.0 @@ -85,7 +89,7 @@ dev_dependencies: flutter_lints: ^6.0.0 json_serializable: ^6.8.0 freezed: ^3.0.0 - riverpod_generator: ^2.6.3 + riverpod_generator: ^3.0.0-dev.17 test: ^1.24.0 flutter_test: sdk: flutter