diff --git a/app/assets/i18n/en.json b/app/assets/i18n/en.json index 938d3737..d4d994ea 100644 --- a/app/assets/i18n/en.json +++ b/app/assets/i18n/en.json @@ -52,7 +52,8 @@ "off": "@:general.off", "favorites": "Favorites", "on": "@:general.on" - } + }, + "link": "Receive via link" }, "sendTab": { "title": "Send", @@ -97,7 +98,8 @@ "color": "Color", "colorOptions": { "system": "System", - "oled": "OLED" + "oled": "OLED", + "custom": "Custom" }, "language": "Language", "languageOptions": { diff --git a/app/lib/config/theme.dart b/app/lib/config/theme.dart index 8af28ef8..2961aacc 100644 --- a/app/lib/config/theme.dart +++ b/app/lib/config/theme.dart @@ -10,12 +10,12 @@ import 'package:yaru/yaru.dart' as yaru; final _borderRadius = BorderRadius.circular(5); -ThemeData getTheme(ColorMode colorMode, Brightness brightness, DynamicColors? dynamicColors) { +ThemeData getTheme(ColorMode colorMode, Color customColor, Brightness brightness, DynamicColors? dynamicColors) { if (colorMode == ColorMode.yaru) { return _getYaruTheme(brightness); } - final colorScheme = _determineColorScheme(colorMode, brightness, dynamicColors); + final colorScheme = _determineColorScheme(colorMode, customColor, brightness, dynamicColors); final lightInputBorder = OutlineInputBorder( borderSide: BorderSide(color: colorScheme.secondaryContainer), @@ -140,7 +140,7 @@ extension InputDecorationThemeExt on InputDecorationThemeData { BorderRadius get borderRadius => _borderRadius; } -ColorScheme _determineColorScheme(ColorMode mode, Brightness brightness, DynamicColors? dynamicColors) { +ColorScheme _determineColorScheme(ColorMode mode, Color customColor, Brightness brightness, DynamicColors? dynamicColors) { final defaultColorScheme = ColorScheme.fromSeed( seedColor: Colors.teal, brightness: brightness, @@ -153,6 +153,10 @@ ColorScheme _determineColorScheme(ColorMode mode, Brightness brightness, Dynamic surface: Colors.black, ), ColorMode.yaru => throw 'Should reach here', + ColorMode.custom => ColorScheme.fromSeed( + seedColor: customColor, + brightness: brightness, + ), }; return colorScheme ?? defaultColorScheme; diff --git a/app/lib/gen/strings.g.dart b/app/lib/gen/strings.g.dart index 16fb89e1..a97a4d97 100644 --- a/app/lib/gen/strings.g.dart +++ b/app/lib/gen/strings.g.dart @@ -4,7 +4,7 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 55 -/// Strings: 18453 (335 per locale) +/// Strings: 18455 (335 per locale) // coverage:ignore-file // ignore_for_file: type=lint, unused_import diff --git a/app/lib/gen/strings_en.g.dart b/app/lib/gen/strings_en.g.dart index 6eeb6aa6..3e9e7680 100644 --- a/app/lib/gen/strings_en.g.dart +++ b/app/lib/gen/strings_en.g.dart @@ -212,6 +212,9 @@ class Translations$receiveTab$en { late final Translations$receiveTab$infoBox$en infoBox = Translations$receiveTab$infoBox$en.internal(_root); late final Translations$receiveTab$quickSave$en quickSave = Translations$receiveTab$quickSave$en.internal(_root); + + /// en: 'Receive via link' + String get link => 'Receive via link'; } // Path: sendTab @@ -1769,6 +1772,9 @@ class Translations$settingsTab$general$colorOptions$en { /// en: 'OLED' String get oled => 'OLED'; + + /// en: 'Custom' + String get custom => 'Custom'; } // Path: settingsTab.general.languageOptions diff --git a/app/lib/main.dart b/app/lib/main.dart index 832e7e85..47ac3a62 100644 --- a/app/lib/main.dart +++ b/app/lib/main.dart @@ -46,7 +46,9 @@ class LocalSendApp extends StatelessWidget { @override Widget build(BuildContext context) { final ref = context.ref; - final (themeMode, colorMode) = ref.watch(settingsProvider.select((settings) => (settings.theme, settings.colorMode))); + final (themeMode, colorMode, customColor) = ref.watch( + settingsProvider.select((settings) => (settings.theme, settings.colorMode, settings.customColor)), + ); final dynamicColors = ref.watch(dynamicColorsProvider); return TrayWatcher( child: WindowWatcher( @@ -72,8 +74,8 @@ class LocalSendApp extends StatelessWidget { supportedLocales: AppLocaleUtils.supportedLocales, localizationsDelegates: GlobalMaterialLocalizations.delegates, debugShowCheckedModeBanner: false, - theme: getTheme(colorMode, Brightness.light, dynamicColors), - darkTheme: getTheme(colorMode, Brightness.dark, dynamicColors), + theme: getTheme(colorMode, customColor, Brightness.light, dynamicColors), + darkTheme: getTheme(colorMode, customColor, Brightness.dark, dynamicColors), themeMode: colorMode == ColorMode.oled ? ThemeMode.dark : themeMode, navigatorKey: context.read(navigationProvider).key, home: RouterinoHome( diff --git a/app/lib/model/persistence/color_mode.dart b/app/lib/model/persistence/color_mode.dart index 29bf8162..aa39f456 100644 --- a/app/lib/model/persistence/color_mode.dart +++ b/app/lib/model/persistence/color_mode.dart @@ -3,4 +3,5 @@ enum ColorMode { localsend, oled, yaru, + custom, // user-defined seed color } diff --git a/app/lib/model/state/settings_state.dart b/app/lib/model/state/settings_state.dart index e81e1775..b45dee53 100644 --- a/app/lib/model/state/settings_state.dart +++ b/app/lib/model/state/settings_state.dart @@ -13,6 +13,7 @@ class SettingsState with SettingsStateMappable { final String alias; final ThemeMode theme; final ColorMode colorMode; + final Color customColor; // seed color for ColorMode.custom final AppLocale? locale; final int port; final List? networkWhitelist; // null = disabled @@ -44,6 +45,7 @@ class SettingsState with SettingsStateMappable { required this.alias, required this.theme, required this.colorMode, + required this.customColor, required this.locale, required this.port, required this.networkWhitelist, diff --git a/app/lib/model/state/settings_state.mapper.dart b/app/lib/model/state/settings_state.mapper.dart index 9f38b0d7..c3f2e177 100644 --- a/app/lib/model/state/settings_state.mapper.dart +++ b/app/lib/model/state/settings_state.mapper.dart @@ -40,6 +40,11 @@ class SettingsStateMapper extends ClassMapperBase { 'colorMode', _$colorMode, ); + static Color _$customColor(SettingsState v) => v.customColor; + static const Field _f$customColor = Field( + 'customColor', + _$customColor, + ); static AppLocale? _$locale(SettingsState v) => v.locale; static const Field _f$locale = Field( 'locale', @@ -171,6 +176,7 @@ class SettingsStateMapper extends ClassMapperBase { #alias: _f$alias, #theme: _f$theme, #colorMode: _f$colorMode, + #customColor: _f$customColor, #locale: _f$locale, #port: _f$port, #networkWhitelist: _f$networkWhitelist, @@ -204,6 +210,7 @@ class SettingsStateMapper extends ClassMapperBase { alias: data.dec(_f$alias), theme: data.dec(_f$theme), colorMode: data.dec(_f$colorMode), + customColor: data.dec(_f$customColor), locale: data.dec(_f$locale), port: data.dec(_f$port), networkWhitelist: data.dec(_f$networkWhitelist), @@ -303,6 +310,7 @@ abstract class SettingsStateCopyWith<$R, $In extends SettingsState, $Out> String? alias, ThemeMode? theme, ColorMode? colorMode, + Color? customColor, AppLocale? locale, int? port, List? networkWhitelist, @@ -364,6 +372,7 @@ class _SettingsStateCopyWithImpl<$R, $Out> String? alias, ThemeMode? theme, ColorMode? colorMode, + Color? customColor, Object? locale = $none, int? port, Object? networkWhitelist = $none, @@ -395,6 +404,7 @@ class _SettingsStateCopyWithImpl<$R, $Out> if (alias != null) #alias: alias, if (theme != null) #theme: theme, if (colorMode != null) #colorMode: colorMode, + if (customColor != null) #customColor: customColor, if (locale != $none) #locale: locale, if (port != null) #port: port, if (networkWhitelist != $none) #networkWhitelist: networkWhitelist, @@ -432,6 +442,7 @@ class _SettingsStateCopyWithImpl<$R, $Out> alias: data.get(#alias, or: $value.alias), theme: data.get(#theme, or: $value.theme), colorMode: data.get(#colorMode, or: $value.colorMode), + customColor: data.get(#customColor, or: $value.customColor), locale: data.get(#locale, or: $value.locale), port: data.get(#port, or: $value.port), networkWhitelist: data.get(#networkWhitelist, or: $value.networkWhitelist), diff --git a/app/lib/pages/tabs/receive_tab.dart b/app/lib/pages/tabs/receive_tab.dart index 9ef48c73..6731616f 100644 --- a/app/lib/pages/tabs/receive_tab.dart +++ b/app/lib/pages/tabs/receive_tab.dart @@ -110,7 +110,7 @@ class _ReceiveTabState extends State { await context.global.dispatchAsync(NavigateAction.push(const WebSharePage())); }, icon: Icon(Icons.language), - label: Text(t.$wip.receiveTab.link('Receive via link')), + label: Text(t.receiveTab.link), ), ), ), diff --git a/app/lib/pages/tabs/settings_tab.dart b/app/lib/pages/tabs/settings_tab.dart index 6813ba44..68b4dd94 100644 --- a/app/lib/pages/tabs/settings_tab.dart +++ b/app/lib/pages/tabs/settings_tab.dart @@ -80,7 +80,7 @@ class SettingsTab extends StatelessWidget { child: Text(colorMode.humanName), ); }).toList(), - onChanged: vm.onChangeColorMode, + onChanged: (colorMode) => vm.onChangeColorMode(context, colorMode), ), ), _ButtonEntry( @@ -768,6 +768,7 @@ extension on ColorMode { ColorMode.localsend => t.appName, ColorMode.oled => t.settingsTab.general.colorOptions.oled, ColorMode.yaru => 'Yaru', + ColorMode.custom => t.settingsTab.general.colorOptions.custom, }; } } diff --git a/app/lib/pages/tabs/settings_tab_controller.dart b/app/lib/pages/tabs/settings_tab_controller.dart index f4966f8b..3e36f242 100644 --- a/app/lib/pages/tabs/settings_tab_controller.dart +++ b/app/lib/pages/tabs/settings_tab_controller.dart @@ -11,6 +11,7 @@ import 'package:localsend_app/util/native/autostart_helper.dart'; import 'package:localsend_app/util/native/context_menu_helper.dart'; import 'package:localsend_app/util/ui/dynamic_colors.dart'; import 'package:localsend_app/util/ui/snackbar.dart'; +import 'package:localsend_app/widget/dialogs/custom_color_dialog.dart'; import 'package:localsend_isolates/isolate.dart'; import 'package:localsend_isolates/model/device_info_result.dart'; import 'package:localsend_isolates/util/sleep.dart'; @@ -80,7 +81,17 @@ class SettingsTabController extends ReduxNotifier { await updateSystemOverlayStyle(context); } }, - onChangeColorMode: (colorMode) async { + onChangeColorMode: (context, colorMode) async { + if (colorMode == ColorMode.custom) { + final color = await showDialog( + context: context, + builder: (_) => CustomColorDialog(initialColor: _settingsService.state.customColor), + ); + if (color == null) { + return; + } + await _settingsService.setCustomColor(color); + } await _settingsService.setColorMode(colorMode); if (colorMode == ColorMode.oled) { await _settingsService.setTheme(ThemeMode.dark); diff --git a/app/lib/pages/tabs/settings_tab_vm.dart b/app/lib/pages/tabs/settings_tab_vm.dart index 0cebe5b0..1ee73525 100644 --- a/app/lib/pages/tabs/settings_tab_vm.dart +++ b/app/lib/pages/tabs/settings_tab_vm.dart @@ -25,7 +25,7 @@ class SettingsTabVm with SettingsTabVmMappable { final bool autoStartLaunchHidden; final bool showInContextMenu; final void Function(BuildContext context, ThemeMode mode) onChangeTheme; - final void Function(ColorMode mode) onChangeColorMode; + final void Function(BuildContext context, ColorMode mode) onChangeColorMode; final void Function(BuildContext context) onTapLanguage; final void Function(BuildContext context) onToggleAutoStart; final void Function(BuildContext context) onToggleAutoStartLaunchHidden; diff --git a/app/lib/pages/tabs/settings_tab_vm.mapper.dart b/app/lib/pages/tabs/settings_tab_vm.mapper.dart index 85576ce0..f156522a 100644 --- a/app/lib/pages/tabs/settings_tab_vm.mapper.dart +++ b/app/lib/pages/tabs/settings_tab_vm.mapper.dart @@ -99,7 +99,8 @@ class SettingsTabVmMapper extends ClassMapperBase { ); static Function _$onChangeColorMode(SettingsTabVm v) => (v as dynamic).onChangeColorMode as Function; - static dynamic _arg$onChangeColorMode(f) => f(); + static dynamic _arg$onChangeColorMode(f) => + f(); static const Field _f$onChangeColorMode = Field( 'onChangeColorMode', _$onChangeColorMode, @@ -317,7 +318,7 @@ abstract class SettingsTabVmCopyWith<$R, $In extends SettingsTabVm, $Out> bool? autoStartLaunchHidden, bool? showInContextMenu, void Function(BuildContext, ThemeMode)? onChangeTheme, - void Function(ColorMode)? onChangeColorMode, + void Function(BuildContext, ColorMode)? onChangeColorMode, void Function(BuildContext)? onTapLanguage, void Function(BuildContext)? onToggleAutoStart, void Function(BuildContext)? onToggleAutoStartLaunchHidden, @@ -367,7 +368,7 @@ class _SettingsTabVmCopyWithImpl<$R, $Out> bool? autoStartLaunchHidden, bool? showInContextMenu, void Function(BuildContext, ThemeMode)? onChangeTheme, - void Function(ColorMode)? onChangeColorMode, + void Function(BuildContext, ColorMode)? onChangeColorMode, void Function(BuildContext)? onTapLanguage, void Function(BuildContext)? onToggleAutoStart, void Function(BuildContext)? onToggleAutoStartLaunchHidden, diff --git a/app/lib/provider/persistence_provider.dart b/app/lib/provider/persistence_provider.dart index 8c4f1425..55a6f18d 100644 --- a/app/lib/provider/persistence_provider.dart +++ b/app/lib/provider/persistence_provider.dart @@ -70,6 +70,7 @@ const _showToken = 'ls_show_token'; const _aliasKey = 'ls_alias'; const _themeKey = 'ls_theme'; // now called brightness const _colorKey = 'ls_color'; +const _customColorKey = 'ls_custom_color'; // RRGGBB hex, used by ColorMode.custom const _localeKey = 'ls_locale'; const _portKey = 'ls_port'; const _networkWhitelistKey = 'ls_network_whitelist'; @@ -307,6 +308,19 @@ class PersistenceService { await _prefs.setString(_colorKey, color.name); } + Color getCustomColor() { + final value = _prefs.getString(_customColorKey); + final rgb = value == null ? null : int.tryParse(value, radix: 16); + if (rgb == null) { + return Colors.teal; + } + return Color(0xff000000 | rgb); + } + + Future setCustomColor(Color color) async { + await _prefs.setString(_customColorKey, color.toARGB32().toRadixString(16).padLeft(8, '0').substring(2)); + } + AppLocale? getLocale() { final value = _prefs.getString(_localeKey); if (value == null) { diff --git a/app/lib/provider/settings_provider.dart b/app/lib/provider/settings_provider.dart index eb1a9d7f..8aa4aaa5 100644 --- a/app/lib/provider/settings_provider.dart +++ b/app/lib/provider/settings_provider.dart @@ -49,6 +49,7 @@ class SettingsService extends PureNotifier { alias: _persistence.getAlias(), theme: _persistence.getTheme(), colorMode: _persistence.getColorMode(), + customColor: _persistence.getCustomColor(), locale: _persistence.getLocale(), port: _persistence.getPort(), networkWhitelist: _persistence.getNetworkWhitelist(), @@ -97,6 +98,13 @@ class SettingsService extends PureNotifier { ); } + Future setCustomColor(Color color) async { + await _persistence.setCustomColor(color); + state = state.copyWith( + customColor: color, + ); + } + Future setAdvancedSettingsEnabled(bool isEnabled) async { await _persistence.setAdvancedSettingsEnabled(isEnabled); state = state.copyWith( diff --git a/app/lib/widget/dialogs/custom_color_dialog.dart b/app/lib/widget/dialogs/custom_color_dialog.dart new file mode 100644 index 00000000..f8938cdc --- /dev/null +++ b/app/lib/widget/dialogs/custom_color_dialog.dart @@ -0,0 +1,60 @@ +import 'package:flex_color_picker/flex_color_picker.dart'; +import 'package:flutter/material.dart'; +import 'package:localsend_app/gen/strings.g.dart'; +import 'package:refena_flutter/addons.dart'; +import 'package:refena_flutter/refena_flutter.dart'; +import 'package:routerino/routerino.dart'; + +/// Lets the user pick a color visually or enter a HEX code (RRGGBB). +/// Pops with the selected [Color] or null when cancelled. +class CustomColorDialog extends StatefulWidget { + final Color initialColor; + + const CustomColorDialog({required this.initialColor}); + + @override + State createState() => _CustomColorDialogState(); +} + +class _CustomColorDialogState extends State { + late Color _color = widget.initialColor; + + @override + Widget build(BuildContext context) { + return AlertDialog( + title: Text(t.settingsTab.general.colorOptions.custom), + content: SingleChildScrollView( + child: ColorPicker( + color: _color, + onColorChanged: (color) => setState(() => _color = color), + pickersEnabled: const { + ColorPickerType.primary: false, + ColorPickerType.accent: false, + ColorPickerType.wheel: true, + }, + showColorCode: true, // editable field, so manual HEX input stays possible + colorCodeHasColor: true, + enableShadesSelection: false, + copyPasteBehavior: const ColorPickerCopyPasteBehavior( + copyFormat: ColorPickerCopyFormat.hexRRGGBB, + parseShortHexCode: true, + ), + ), + ), + actions: [ + TextButton( + onPressed: () => context.pop(), + child: Text(t.general.cancel), + ), + ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: Theme.of(context).colorScheme.primary, + foregroundColor: Theme.of(context).colorScheme.onPrimary, + ), + onPressed: () => context.global.dispatch(NavigateAction.pop(_color)), + child: Text(t.general.confirm), + ), + ], + ); + } +} diff --git a/app/pubspec.lock b/app/pubspec.lock index a1b03af4..6b6fa76d 100644 --- a/app/pubspec.lock +++ b/app/pubspec.lock @@ -458,6 +458,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + flex_color_picker: + dependency: "direct main" + description: + name: flex_color_picker + sha256: a0979dd61f21b634717b98eb4ceaed2bfe009fe020ce8597aaf164b9eeb57aaa + url: "https://pub.dev" + source: hosted + version: "3.8.0" + flex_seed_scheme: + dependency: transitive + description: + name: flex_seed_scheme + sha256: a3183753bbcfc3af106224bff3ab3e1844b73f58062136b7499919f49f3667e7 + url: "https://pub.dev" + source: hosted + version: "4.0.1" flutter: dependency: "direct main" description: flutter diff --git a/app/pubspec.yaml b/app/pubspec.yaml index 4b5b3d7b..43e8efb0 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -19,6 +19,7 @@ dependencies: dynamic_color: 1.8.1 file_picker: 11.0.2 file_selector: 1.1.0 + flex_color_picker: 3.8.0 flutter: sdk: flutter flutter_displaymode: 0.7.0 diff --git a/app/test/mocks.mocks.dart b/app/test/mocks.mocks.dart index a12d0dda..f2c0ccd0 100644 --- a/app/test/mocks.mocks.dart +++ b/app/test/mocks.mocks.dart @@ -3,21 +3,22 @@ // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i4; +import 'dart:async' as _i5; +import 'dart:ui' as _i3; -import 'package:flutter/material.dart' as _i8; -import 'package:localsend_app/gen/strings.g.dart' as _i10; -import 'package:localsend_app/model/persistence/color_mode.dart' as _i9; -import 'package:localsend_app/model/persistence/favorite_device.dart' as _i6; -import 'package:localsend_app/model/persistence/quick_save_mode.dart' as _i11; -import 'package:localsend_app/model/persistence/receive_history_entry.dart' as _i5; -import 'package:localsend_app/model/send_mode.dart' as _i12; -import 'package:localsend_app/provider/persistence_provider.dart' as _i3; -import 'package:localsend_isolates/model/device.dart' as _i13; +import 'package:flutter/material.dart' as _i9; +import 'package:localsend_app/gen/strings.g.dart' as _i11; +import 'package:localsend_app/model/persistence/color_mode.dart' as _i10; +import 'package:localsend_app/model/persistence/favorite_device.dart' as _i7; +import 'package:localsend_app/model/persistence/quick_save_mode.dart' as _i12; +import 'package:localsend_app/model/persistence/receive_history_entry.dart' as _i6; +import 'package:localsend_app/model/send_mode.dart' as _i13; +import 'package:localsend_app/provider/persistence_provider.dart' as _i4; +import 'package:localsend_isolates/model/device.dart' as _i14; import 'package:localsend_isolates/model/stored_security_context.dart' as _i2; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i7; -import 'package:shared_preferences/shared_preferences.dart' as _i14; +import 'package:mockito/src/dummies.dart' as _i8; +import 'package:shared_preferences/shared_preferences.dart' as _i15; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -38,10 +39,14 @@ class _FakeStoredSecurityContext_0 extends _i1.SmartFake implements _i2.StoredSe _FakeStoredSecurityContext_0(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } +class _FakeColor_1 extends _i1.SmartFake implements _i3.Color { + _FakeColor_1(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); +} + /// A class which mocks [PersistenceService]. /// /// See the documentation for Mockito's code generation for more information. -class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService { +class MockPersistenceService extends _i1.Mock implements _i4.PersistenceService { @override bool get isFirstAppStart => (super.noSuchMethod( @@ -76,77 +81,77 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as _i2.StoredSecurityContext); @override - _i4.Future setSecurityContext(_i2.StoredSecurityContext? context) => + _i5.Future setSecurityContext(_i2.StoredSecurityContext? context) => (super.noSuchMethod( Invocation.method(#setSecurityContext, [context]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setSignalingServers(List? servers) => + _i5.Future setSignalingServers(List? servers) => (super.noSuchMethod( Invocation.method(#setSignalingServers, [servers]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setStunServers(List? servers) => + _i5.Future setStunServers(List? servers) => (super.noSuchMethod( Invocation.method(#setStunServers, [servers]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - List<_i5.ReceiveHistoryEntry> getReceiveHistory() => + List<_i6.ReceiveHistoryEntry> getReceiveHistory() => (super.noSuchMethod( Invocation.method(#getReceiveHistory, []), - returnValue: <_i5.ReceiveHistoryEntry>[], - returnValueForMissingStub: <_i5.ReceiveHistoryEntry>[], + returnValue: <_i6.ReceiveHistoryEntry>[], + returnValueForMissingStub: <_i6.ReceiveHistoryEntry>[], ) - as List<_i5.ReceiveHistoryEntry>); + as List<_i6.ReceiveHistoryEntry>); @override - _i4.Future setReceiveHistory(List<_i5.ReceiveHistoryEntry>? entries) => + _i5.Future setReceiveHistory(List<_i6.ReceiveHistoryEntry>? entries) => (super.noSuchMethod( Invocation.method(#setReceiveHistory, [entries]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - List<_i6.FavoriteDevice> getFavorites() => + List<_i7.FavoriteDevice> getFavorites() => (super.noSuchMethod( Invocation.method(#getFavorites, []), - returnValue: <_i6.FavoriteDevice>[], - returnValueForMissingStub: <_i6.FavoriteDevice>[], + returnValue: <_i7.FavoriteDevice>[], + returnValueForMissingStub: <_i7.FavoriteDevice>[], ) - as List<_i6.FavoriteDevice>); + as List<_i7.FavoriteDevice>); @override - _i4.Future setFavorites(List<_i6.FavoriteDevice>? entries) => + _i5.Future setFavorites(List<_i7.FavoriteDevice>? entries) => (super.noSuchMethod( Invocation.method(#setFavorites, [entries]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override String getShowToken() => (super.noSuchMethod( Invocation.method(#getShowToken, []), - returnValue: _i7.dummyValue( + returnValue: _i8.dummyValue( this, Invocation.method(#getShowToken, []), ), - returnValueForMissingStub: _i7.dummyValue( + returnValueForMissingStub: _i8.dummyValue( this, Invocation.method(#getShowToken, []), ), @@ -157,11 +162,11 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService String getAlias() => (super.noSuchMethod( Invocation.method(#getAlias, []), - returnValue: _i7.dummyValue( + returnValue: _i8.dummyValue( this, Invocation.method(#getAlias, []), ), - returnValueForMissingStub: _i7.dummyValue( + returnValueForMissingStub: _i8.dummyValue( this, Invocation.method(#getAlias, []), ), @@ -169,58 +174,82 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as String); @override - _i4.Future setAlias(String? alias) => + _i5.Future setAlias(String? alias) => (super.noSuchMethod( Invocation.method(#setAlias, [alias]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i8.ThemeMode getTheme() => + _i9.ThemeMode getTheme() => (super.noSuchMethod( Invocation.method(#getTheme, []), - returnValue: _i8.ThemeMode.system, - returnValueForMissingStub: _i8.ThemeMode.system, + returnValue: _i9.ThemeMode.system, + returnValueForMissingStub: _i9.ThemeMode.system, ) - as _i8.ThemeMode); + as _i9.ThemeMode); @override - _i4.Future setTheme(_i8.ThemeMode? theme) => + _i5.Future setTheme(_i9.ThemeMode? theme) => (super.noSuchMethod( Invocation.method(#setTheme, [theme]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i9.ColorMode getColorMode() => + _i10.ColorMode getColorMode() => (super.noSuchMethod( Invocation.method(#getColorMode, []), - returnValue: _i9.ColorMode.system, - returnValueForMissingStub: _i9.ColorMode.system, + returnValue: _i10.ColorMode.system, + returnValueForMissingStub: _i10.ColorMode.system, ) - as _i9.ColorMode); + as _i10.ColorMode); @override - _i4.Future setColorMode(_i9.ColorMode? color) => + _i5.Future setColorMode(_i10.ColorMode? color) => (super.noSuchMethod( Invocation.method(#setColorMode, [color]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setLocale(_i10.AppLocale? locale) => + _i3.Color getCustomColor() => + (super.noSuchMethod( + Invocation.method(#getCustomColor, []), + returnValue: _FakeColor_1( + this, + Invocation.method(#getCustomColor, []), + ), + returnValueForMissingStub: _FakeColor_1( + this, + Invocation.method(#getCustomColor, []), + ), + ) + as _i3.Color); + + @override + _i5.Future setCustomColor(_i3.Color? color) => + (super.noSuchMethod( + Invocation.method(#setCustomColor, [color]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future setLocale(_i11.AppLocale? locale) => (super.noSuchMethod( Invocation.method(#setLocale, [locale]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override int getPort() => @@ -232,31 +261,31 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as int); @override - _i4.Future setPort(int? port) => + _i5.Future setPort(int? port) => (super.noSuchMethod( Invocation.method(#setPort, [port]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setNetworkWhitelist(List? whitelist) => + _i5.Future setNetworkWhitelist(List? whitelist) => (super.noSuchMethod( Invocation.method(#setNetworkWhitelist, [whitelist]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setNetworkBlacklist(List? blacklist) => + _i5.Future setNetworkBlacklist(List? blacklist) => (super.noSuchMethod( Invocation.method(#setNetworkBlacklist, [blacklist]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override int getDiscoveryTimeout() => @@ -268,13 +297,13 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as int); @override - _i4.Future setDiscoveryTimeout(int? timeout) => + _i5.Future setDiscoveryTimeout(int? timeout) => (super.noSuchMethod( Invocation.method(#setDiscoveryTimeout, [timeout]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool getShareViaLinkAutoAccept() => @@ -286,15 +315,15 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setShareViaLinkAutoAccept(bool? shareViaLinkAutoAccept) => + _i5.Future setShareViaLinkAutoAccept(bool? shareViaLinkAutoAccept) => (super.noSuchMethod( Invocation.method(#setShareViaLinkAutoAccept, [ shareViaLinkAutoAccept, ]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool getReceiveViaLinkAutoAccept() => @@ -306,17 +335,17 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setReceiveViaLinkAutoAccept( + _i5.Future setReceiveViaLinkAutoAccept( bool? receiveViaLinkAutoAccept, ) => (super.noSuchMethod( Invocation.method(#setReceiveViaLinkAutoAccept, [ receiveViaLinkAutoAccept, ]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool getCreateChecksums() => @@ -328,13 +357,13 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setCreateChecksums(bool? createChecksums) => + _i5.Future setCreateChecksums(bool? createChecksums) => (super.noSuchMethod( Invocation.method(#setCreateChecksums, [createChecksums]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool getVerifyChecksums() => @@ -346,23 +375,23 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setVerifyChecksums(bool? verifyChecksums) => + _i5.Future setVerifyChecksums(bool? verifyChecksums) => (super.noSuchMethod( Invocation.method(#setVerifyChecksums, [verifyChecksums]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override String getMulticastGroup() => (super.noSuchMethod( Invocation.method(#getMulticastGroup, []), - returnValue: _i7.dummyValue( + returnValue: _i8.dummyValue( this, Invocation.method(#getMulticastGroup, []), ), - returnValueForMissingStub: _i7.dummyValue( + returnValueForMissingStub: _i8.dummyValue( this, Invocation.method(#getMulticastGroup, []), ), @@ -370,22 +399,22 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as String); @override - _i4.Future setMulticastGroup(String? group) => + _i5.Future setMulticastGroup(String? group) => (super.noSuchMethod( Invocation.method(#setMulticastGroup, [group]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setDestination(String? destination) => + _i5.Future setDestination(String? destination) => (super.noSuchMethod( Invocation.method(#setDestination, [destination]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool isSaveToGallery() => @@ -397,13 +426,13 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setSaveToGallery(bool? saveToGallery) => + _i5.Future setSaveToGallery(bool? saveToGallery) => (super.noSuchMethod( Invocation.method(#setSaveToGallery, [saveToGallery]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool isSaveToHistory() => @@ -415,13 +444,13 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setSaveToHistory(bool? saveToHistory) => + _i5.Future setSaveToHistory(bool? saveToHistory) => (super.noSuchMethod( Invocation.method(#setSaveToHistory, [saveToHistory]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool getAdvancedSettingsEnabled() => @@ -433,40 +462,40 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setAdvancedSettingsEnabled(bool? isEnabled) => + _i5.Future setAdvancedSettingsEnabled(bool? isEnabled) => (super.noSuchMethod( Invocation.method(#setAdvancedSettingsEnabled, [isEnabled]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i11.QuickSaveMode getQuickSave() => + _i12.QuickSaveMode getQuickSave() => (super.noSuchMethod( Invocation.method(#getQuickSave, []), - returnValue: _i11.QuickSaveMode.off, - returnValueForMissingStub: _i11.QuickSaveMode.off, + returnValue: _i12.QuickSaveMode.off, + returnValueForMissingStub: _i12.QuickSaveMode.off, ) - as _i11.QuickSaveMode); + as _i12.QuickSaveMode); @override - _i4.Future setQuickSave(_i11.QuickSaveMode? mode) => + _i5.Future setQuickSave(_i12.QuickSaveMode? mode) => (super.noSuchMethod( Invocation.method(#setQuickSave, [mode]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setReceivePin(String? pin) => + _i5.Future setReceivePin(String? pin) => (super.noSuchMethod( Invocation.method(#setReceivePin, [pin]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool isAutoFinish() => @@ -478,13 +507,13 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setAutoFinish(bool? autoFinish) => + _i5.Future setAutoFinish(bool? autoFinish) => (super.noSuchMethod( Invocation.method(#setAutoFinish, [autoFinish]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool isMinimizeToTray() => @@ -496,13 +525,13 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setMinimizeToTray(bool? minimizeToTray) => + _i5.Future setMinimizeToTray(bool? minimizeToTray) => (super.noSuchMethod( Invocation.method(#setMinimizeToTray, [minimizeToTray]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool isHttps() => @@ -514,76 +543,76 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setHttps(bool? https) => + _i5.Future setHttps(bool? https) => (super.noSuchMethod( Invocation.method(#setHttps, [https]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i12.SendMode getSendMode() => + _i13.SendMode getSendMode() => (super.noSuchMethod( Invocation.method(#getSendMode, []), - returnValue: _i12.SendMode.single, - returnValueForMissingStub: _i12.SendMode.single, + returnValue: _i13.SendMode.single, + returnValueForMissingStub: _i13.SendMode.single, ) - as _i12.SendMode); + as _i13.SendMode); @override - _i4.Future setSendMode(_i12.SendMode? mode) => + _i5.Future setSendMode(_i13.SendMode? mode) => (super.noSuchMethod( Invocation.method(#setSendMode, [mode]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setWindowOffsetX(double? x) => + _i5.Future setWindowOffsetX(double? x) => (super.noSuchMethod( Invocation.method(#setWindowOffsetX, [x]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setWindowOffsetY(double? y) => + _i5.Future setWindowOffsetY(double? y) => (super.noSuchMethod( Invocation.method(#setWindowOffsetY, [y]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setWindowHeight(double? height) => + _i5.Future setWindowHeight(double? height) => (super.noSuchMethod( Invocation.method(#setWindowHeight, [height]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setWindowWidth(double? width) => + _i5.Future setWindowWidth(double? width) => (super.noSuchMethod( Invocation.method(#setWindowWidth, [width]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setSaveWindowPlacement(bool? savePlacement) => + _i5.Future setSaveWindowPlacement(bool? savePlacement) => (super.noSuchMethod( Invocation.method(#setSaveWindowPlacement, [savePlacement]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool getSaveWindowPlacement() => @@ -595,13 +624,13 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setEnableAnimations(bool? enableAnimations) => + _i5.Future setEnableAnimations(bool? enableAnimations) => (super.noSuchMethod( Invocation.method(#setEnableAnimations, [enableAnimations]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override bool getEnableAnimations() => @@ -613,46 +642,46 @@ class MockPersistenceService extends _i1.Mock implements _i3.PersistenceService as bool); @override - _i4.Future setDeviceType(_i13.DeviceType? deviceType) => + _i5.Future setDeviceType(_i14.DeviceType? deviceType) => (super.noSuchMethod( Invocation.method(#setDeviceType, [deviceType]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setDeviceModel(String? deviceModel) => + _i5.Future setDeviceModel(String? deviceModel) => (super.noSuchMethod( Invocation.method(#setDeviceModel, [deviceModel]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setWhatsNew(String? version) => + _i5.Future setWhatsNew(String? version) => (super.noSuchMethod( Invocation.method(#setWhatsNew, [version]), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future clear() => + _i5.Future clear() => (super.noSuchMethod( Invocation.method(#clear, []), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); } /// A class which mocks [SharedPreferences]. /// /// See the documentation for Mockito's code generation for more information. -class MockSharedPreferences extends _i1.Mock implements _i14.SharedPreferences { +class MockSharedPreferences extends _i1.Mock implements _i15.SharedPreferences { @override Set getKeys() => (super.noSuchMethod( @@ -720,83 +749,83 @@ class MockSharedPreferences extends _i1.Mock implements _i14.SharedPreferences { as List?); @override - _i4.Future setBool(String? key, bool? value) => + _i5.Future setBool(String? key, bool? value) => (super.noSuchMethod( Invocation.method(#setBool, [key, value]), - returnValue: _i4.Future.value(false), - returnValueForMissingStub: _i4.Future.value(false), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setInt(String? key, int? value) => + _i5.Future setInt(String? key, int? value) => (super.noSuchMethod( Invocation.method(#setInt, [key, value]), - returnValue: _i4.Future.value(false), - returnValueForMissingStub: _i4.Future.value(false), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setDouble(String? key, double? value) => + _i5.Future setDouble(String? key, double? value) => (super.noSuchMethod( Invocation.method(#setDouble, [key, value]), - returnValue: _i4.Future.value(false), - returnValueForMissingStub: _i4.Future.value(false), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setString(String? key, String? value) => + _i5.Future setString(String? key, String? value) => (super.noSuchMethod( Invocation.method(#setString, [key, value]), - returnValue: _i4.Future.value(false), - returnValueForMissingStub: _i4.Future.value(false), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future setStringList(String? key, List? value) => + _i5.Future setStringList(String? key, List? value) => (super.noSuchMethod( Invocation.method(#setStringList, [key, value]), - returnValue: _i4.Future.value(false), - returnValueForMissingStub: _i4.Future.value(false), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future remove(String? key) => + _i5.Future remove(String? key) => (super.noSuchMethod( Invocation.method(#remove, [key]), - returnValue: _i4.Future.value(false), - returnValueForMissingStub: _i4.Future.value(false), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future commit() => + _i5.Future commit() => (super.noSuchMethod( Invocation.method(#commit, []), - returnValue: _i4.Future.value(false), - returnValueForMissingStub: _i4.Future.value(false), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future clear() => + _i5.Future clear() => (super.noSuchMethod( Invocation.method(#clear, []), - returnValue: _i4.Future.value(false), - returnValueForMissingStub: _i4.Future.value(false), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), ) - as _i4.Future); + as _i5.Future); @override - _i4.Future reload() => + _i5.Future reload() => (super.noSuchMethod( Invocation.method(#reload, []), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), ) - as _i4.Future); + as _i5.Future); }