diff --git a/lib/providers/color_provider.dart b/lib/providers/color_provider.dart index bef5023b..c72c5fcd 100644 --- a/lib/providers/color_provider.dart +++ b/lib/providers/color_provider.dart @@ -27,7 +27,7 @@ class ColorProvider extends DeviceProvider { String get displayName => deviceDetail?.displayName ?? _DEFAULT_DISPLAY_NAME; ColorTrait? get getColorTrait { - final color = ColorTrait(HSBColor(130, 50, 50)); + final color = trait(); if (color is ColorTrait) { return color; } else { diff --git a/lib/traits/color_widget.dart b/lib/traits/color_widget.dart index 1c8e50aa..b0dc9cf6 100644 --- a/lib/traits/color_widget.dart +++ b/lib/traits/color_widget.dart @@ -86,6 +86,7 @@ class ColorWidget extends StatelessWidget { SimpleDialog(backgroundColor: Colors.white, children: [ SlidePicker( showParams: false, + showSliderText: false, pickerColor: pickedColor.toColor(), enableAlpha: false, onColorChanged: (color) { diff --git a/lib/traits/detail_screen.dart b/lib/traits/detail_screen.dart index 3879bd21..e695a40f 100644 --- a/lib/traits/detail_screen.dart +++ b/lib/traits/detail_screen.dart @@ -69,7 +69,8 @@ class DetailScreenWidget extends StatelessWidget { .withTraits(displayTraits.skip(1).toList()) .build(); - return Container( - alignment: Alignment.center, child: Center(child: deviceWidget)); + return SingleChildScrollView( + child: Container( + alignment: Alignment.center, child: Center(child: deviceWidget))); } } diff --git a/lib/traits/slim/base_slim_widget.dart b/lib/traits/slim/base_slim_widget.dart index 0d9826df..3cd5258a 100644 --- a/lib/traits/slim/base_slim_widget.dart +++ b/lib/traits/slim/base_slim_widget.dart @@ -28,7 +28,8 @@ class BaseSlimWidget extends StatelessWidget with ToastNotifications { if ((provider?.isLoading ?? false)) { return ListTile( tileColor: backgroundColor, - title: CircularProgressIndicator(), + title: + SizedBox(child: CircularProgressIndicator(), height: 20, width: 20), horizontalTitleGap: 16.0, key: key, ); @@ -37,7 +38,7 @@ class BaseSlimWidget extends StatelessWidget with ToastNotifications { context, provider?.getErrorMessage ?? 'An unknown error occurred'); return ListTile( tileColor: backgroundColor, - title: Icon(Icons.error), + title: Icon(Icons.error, size: 20), horizontalTitleGap: 16.0, key: key, ); @@ -53,7 +54,7 @@ class BaseSlimWidget extends StatelessWidget with ToastNotifications { return ExpansionTile( childrenPadding: EdgeInsets.all(8.0), leading: (provider?.isPerformingAction ?? false) - ? CircularProgressIndicator() + ? SizedBox(child: CircularProgressIndicator(), height: 20, width: 20) : leftIcon, trailing: rightIcon, backgroundColor: backgroundColor, @@ -70,7 +71,7 @@ class BaseSlimWidget extends StatelessWidget with ToastNotifications { return ListTile( tileColor: backgroundColor, leading: (provider?.isPerformingAction ?? false) - ? CircularProgressIndicator() + ? SizedBox(child: CircularProgressIndicator(), height: 20, width: 20) : leftIcon, trailing: rightIcon, title: headerText, diff --git a/lib/traits/slim/color_slim_widget.dart b/lib/traits/slim/color_slim_widget.dart index 1826e9e6..97a3bff7 100644 --- a/lib/traits/slim/color_slim_widget.dart +++ b/lib/traits/slim/color_slim_widget.dart @@ -1,7 +1,6 @@ import 'package:bootstrap_icons/bootstrap_icons.dart'; import 'package:flutter/material.dart'; import 'package:flutter_colorpicker/flutter_colorpicker.dart'; -import 'package:yonomi_device_widgets/assets/traits/unknown_item_icon.dart'; import 'package:yonomi_device_widgets/providers/color_provider.dart'; import 'package:yonomi_device_widgets/traits/slim/base_slim_widget.dart'; import 'package:yonomi_device_widgets/ui/widget_style_constants.dart'; @@ -10,13 +9,19 @@ import 'package:yonomi_platform_sdk/yonomi-sdk.dart'; class ColorSlimWidget extends BaseSlimWidget { ColorSlimWidget(ColorProvider _colorTraitProvider, - {Key? key, Color backgroundColor = Colors.white70}) + {Key? key, + Color backgroundColor = Colors.white70, + Color textColor = WidgetStyleConstants.darkTextColor}) : super( key: key, backgroundColor: backgroundColor, provider: _colorTraitProvider, - leftIcon: Icon(BootstrapIcons.lightbulb, color: WidgetStyleConstants.deviceIconColor,), - headerText: Text('Color'), + leftIcon: Icon( + BootstrapIcons.lightbulb, + color: WidgetStyleConstants.deviceIconColor, + ), + headerText: + Text('Color', style: TextStyle(fontSize: 20, color: textColor)), rightIcon: Builder(builder: ((context) { return TextButton( onPressed: () { @@ -27,16 +32,23 @@ class ColorSlimWidget extends BaseSlimWidget { backgroundColor: Colors.white, children: [ SlidePicker( - pickerColor: _hsbToColor(pickedColor), - onColorChanged: (color) { - final calculatedColor = - HSVColor.fromColor(color); - _colorTraitProvider.setColorAction(HSBColor( - calculatedColor.hue.toInt(), - (calculatedColor.saturation * 100).toInt(), - (calculatedColor.value * 100).toInt())); - }, - colorModel: ColorModel.hsv, + showParams: false, + displayThumbColor: true, + showSliderText: false, + pickerColor: _hsbToColor(pickedColor), + enableAlpha: false, + onColorChanged: (color) { + final calculatedColor = + HSVColor.fromColor(color); + _colorTraitProvider.setColorAction( + HSBColor( + calculatedColor.hue.toInt(), + (calculatedColor.saturation * 100) + .toInt(), + (calculatedColor.value * 100) + .toInt())); + }, + colorModel: ColorModel.hsv, ) ])); }, @@ -44,21 +56,23 @@ class ColorSlimWidget extends BaseSlimWidget { child: SingleChildScrollView( scrollDirection: Axis.horizontal, child: Row( + mainAxisAlignment: MainAxisAlignment.end, children: [ CircleAvatar( backgroundColor: _hsbToColor( _colorTraitProvider.getColorState), radius: 14, ), + Padding(padding: EdgeInsets.all(4)), Icon( BootstrapIcons.pencil, color: WidgetStyleConstants.globalSuccessColor, - size: 14.0, + size: 20.0, ) ], ), ), - width: 28, + width: 60, height: 28)); }))); diff --git a/test/providers/color_provider_test.dart b/test/providers/color_provider_test.dart index b8ace021..a81b898a 100644 --- a/test/providers/color_provider_test.dart +++ b/test/providers/color_provider_test.dart @@ -45,6 +45,7 @@ void main() { expect(colorProvider.displayName, defaultColorDevice.displayName); expect(colorProvider.deviceDetail?.id, equals(deviceId)); expect(colorProvider.getColorState, isA()); + expect(colorProvider.getColorTrait, isA()); }); test('Calling setColorAction calls repository method', () async { diff --git a/test/traits/detail_screen_test.dart b/test/traits/detail_screen_test.dart index c838f0e3..295917fa 100644 --- a/test/traits/detail_screen_test.dart +++ b/test/traits/detail_screen_test.dart @@ -14,6 +14,7 @@ import 'package:yonomi_device_widgets/providers/thermostat_provider.dart'; import 'package:yonomi_device_widgets/providers/trait_detail_provider.dart'; import 'package:yonomi_device_widgets/traits/battery_widget.dart'; import 'package:yonomi_device_widgets/traits/brightness_widget.dart'; +import 'package:yonomi_device_widgets/traits/color_widget.dart'; import 'package:yonomi_device_widgets/traits/detail_screen.dart'; import 'package:yonomi_device_widgets/traits/lock_widget.dart'; import 'package:yonomi_device_widgets/traits/power_widget.dart'; @@ -31,10 +32,9 @@ import 'package:yonomi_platform_sdk/yonomi-sdk.dart'; import '../components/modes_toolbar_test.mocks.dart'; import '../mixins/brightness_testing.dart'; import '../mixins/brightness_testing.mocks.dart'; -import '../mixins/color_testing.dart'; -import '../mixins/color_testing.mocks.dart'; import 'detail_screen_test.mocks.dart'; import '../mixins/battery_testing.dart'; +import '../mixins/color_testing.dart'; import '../mixins/device_testing.dart'; import '../mixins/lock_testing.dart'; import '../mixins/power_testing.dart'; @@ -251,6 +251,19 @@ void main() { expect(find.byType(BatteryWidget), findsOneWidget); }); + + testWidgets('For the Color Trait, Detail screen should show the Color Widget', + (WidgetTester tester) async { + final request = Request('', {}); + await tester.pumpWidget(test.createDetailScreenWidgetForTraits([ + TestColorDevice(test.device(id: testedDeviceId), + colorTrait: ColorTrait(HSBColor(0, 0, 0))) + ], request, testedDeviceId)); + + expect(find.byType(ColorWidget), findsOneWidget); + }); + + testWidgets( 'For the Thermostat Trait, Detail screen should show the target temperature', (WidgetTester tester) async { diff --git a/test/traits/detail_screen_test.mocks.dart b/test/traits/detail_screen_test.mocks.dart index 9972f259..4c6b7977 100644 --- a/test/traits/detail_screen_test.mocks.dart +++ b/test/traits/detail_screen_test.mocks.dart @@ -2,27 +2,29 @@ // in yonomi_device_widgets/test/traits/detail_screen_test.dart. // Do not manually edit this file. -import 'dart:async' as _i6; -import 'dart:ui' as _i9; +import 'dart:async' as _i7; +import 'dart:ui' as _i10; -import 'package:flutter/material.dart' as _i2; -import 'package:flutter/src/foundation/diagnostics.dart' as _i3; +import 'package:flutter/material.dart' as _i3; +import 'package:flutter/src/foundation/diagnostics.dart' as _i4; import 'package:mockito/mockito.dart' as _i1; import 'package:yonomi_device_widgets/providers/battery_level_provider.dart' - as _i14; -import 'package:yonomi_device_widgets/providers/device_provider.dart' as _i7; -import 'package:yonomi_device_widgets/providers/lock_provider.dart' as _i10; + as _i15; +import 'package:yonomi_device_widgets/providers/color_provider.dart' as _i16; +import 'package:yonomi_device_widgets/providers/device_provider.dart' as _i8; +import 'package:yonomi_device_widgets/providers/lock_provider.dart' as _i11; import 'package:yonomi_device_widgets/providers/power_trait_provider.dart' - as _i12; + as _i13; import 'package:yonomi_device_widgets/providers/trait_detail_provider.dart' - as _i4; -import 'package:yonomi_device_widgets/providers/widget_state.dart' as _i5; + as _i5; +import 'package:yonomi_device_widgets/providers/widget_state.dart' as _i6; import 'package:yonomi_platform_sdk/src/repository/devices_repository.dart' - as _i8; + as _i9; import 'package:yonomi_platform_sdk/src/repository/traits/lock_repository.dart' - as _i11; + as _i12; import 'package:yonomi_platform_sdk/src/repository/traits/power_repository.dart' - as _i13; + as _i14; +import 'package:yonomi_platform_sdk/yonomi-sdk.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters @@ -32,23 +34,25 @@ import 'package:yonomi_platform_sdk/src/repository/traits/power_repository.dart' // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis -class _FakeWidget_0 extends _i1.Fake implements _i2.Widget { +class _FakeDevice_0 extends _i1.Fake implements _i2.Device {} + +class _FakeWidget_1 extends _i1.Fake implements _i3.Widget { @override - String toString({_i2.DiagnosticLevel? minLevel = _i2.DiagnosticLevel.info}) => + String toString({_i3.DiagnosticLevel? minLevel = _i3.DiagnosticLevel.info}) => super.toString(); } -class _FakeInheritedWidget_1 extends _i1.Fake implements _i2.InheritedWidget { +class _FakeInheritedWidget_2 extends _i1.Fake implements _i3.InheritedWidget { @override - String toString({_i2.DiagnosticLevel? minLevel = _i2.DiagnosticLevel.info}) => + String toString({_i3.DiagnosticLevel? minLevel = _i3.DiagnosticLevel.info}) => super.toString(); } -class _FakeDiagnosticsNode_2 extends _i1.Fake implements _i2.DiagnosticsNode { +class _FakeDiagnosticsNode_3 extends _i1.Fake implements _i3.DiagnosticsNode { @override String toString( - {_i3.TextTreeConfiguration? parentConfiguration, - _i2.DiagnosticLevel? minLevel = _i2.DiagnosticLevel.info}) => + {_i4.TextTreeConfiguration? parentConfiguration, + _i3.DiagnosticLevel? minLevel = _i3.DiagnosticLevel.info}) => super.toString(); } @@ -56,7 +60,7 @@ class _FakeDiagnosticsNode_2 extends _i1.Fake implements _i2.DiagnosticsNode { /// /// See the documentation for Mockito's code generation for more information. class MockTraitDetailProvider extends _i1.Mock - implements _i4.TraitDetailProvider { + implements _i5.TraitDetailProvider { MockTraitDetailProvider() { _i1.throwOnMissingStub(this); } @@ -66,7 +70,7 @@ class MockTraitDetailProvider extends _i1.Mock (super.noSuchMethod(Invocation.getter(#displayName), returnValue: '') as String); @override - set setState(_i5.WidgetState? newState) => + set setState(_i6.WidgetState? newState) => super.noSuchMethod(Invocation.setter(#setState, newState), returnValueForMissingStub: null); @override @@ -94,33 +98,33 @@ class MockTraitDetailProvider extends _i1.Mock (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) as bool); @override - _i6.Future fetchData( - {_i7.GetDeviceDetailsMethod? getDetails = - _i8.DevicesRepository.getDeviceDetails}) => + _i7.Future fetchData( + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails}) => (super.noSuchMethod( Invocation.method(#fetchData, [], {#getDetails: getDetails}), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i6.Future); + returnValueForMissingStub: Future.value()) as _i7.Future); @override void setErrorState(String? errorMsg) => super.noSuchMethod(Invocation.method(#setErrorState, [errorMsg]), returnValueForMissingStub: null); @override - _i6.Future performAction( + _i7.Future performAction( T? desiredState, Function? getState, Function? action, - {_i7.GetDeviceDetailsMethod? getDetails = - _i8.DevicesRepository.getDeviceDetails}) => + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails}) => (super.noSuchMethod( Invocation.method(#performAction, [desiredState, getState, action], {#getDetails: getDetails}), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i6.Future); + returnValueForMissingStub: Future.value()) as _i7.Future); @override - void addListener(_i9.VoidCallback? listener) => + void addListener(_i10.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#addListener, [listener]), returnValueForMissingStub: null); @override - void removeListener(_i9.VoidCallback? listener) => + void removeListener(_i10.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#removeListener, [listener]), returnValueForMissingStub: null); @override @@ -137,7 +141,7 @@ class MockTraitDetailProvider extends _i1.Mock /// A class which mocks [LockProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockLockProvider extends _i1.Mock implements _i10.LockProvider { +class MockLockProvider extends _i1.Mock implements _i11.LockProvider { MockLockProvider() { _i1.throwOnMissingStub(this); } @@ -155,7 +159,7 @@ class MockLockProvider extends _i1.Mock implements _i10.LockProvider { (super.noSuchMethod(Invocation.getter(#displayName), returnValue: '') as String); @override - set setState(_i5.WidgetState? newState) => + set setState(_i6.WidgetState? newState) => super.noSuchMethod(Invocation.setter(#setState, newState), returnValueForMissingStub: null); @override @@ -183,44 +187,44 @@ class MockLockProvider extends _i1.Mock implements _i10.LockProvider { (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) as bool); @override - _i6.Future setLockUnlockAction(String? deviceId, bool? setLock, - {_i7.GetDeviceDetailsMethod? getDetails = - _i8.DevicesRepository.getDeviceDetails, - _i10.SendLockUnlockFunction? sendLockUnlock = - _i11.LockRepository.sendLockUnlockAction}) => + _i7.Future setLockUnlockAction(String? deviceId, bool? setLock, + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails, + _i11.SendLockUnlockFunction? sendLockUnlock = + _i12.LockRepository.sendLockUnlockAction}) => (super.noSuchMethod( Invocation.method(#setLockUnlockAction, [deviceId, setLock], {#getDetails: getDetails, #sendLockUnlock: sendLockUnlock}), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i6.Future); + returnValueForMissingStub: Future.value()) as _i7.Future); @override - _i6.Future fetchData( - {_i7.GetDeviceDetailsMethod? getDetails = - _i8.DevicesRepository.getDeviceDetails}) => + _i7.Future fetchData( + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails}) => (super.noSuchMethod( Invocation.method(#fetchData, [], {#getDetails: getDetails}), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i6.Future); + returnValueForMissingStub: Future.value()) as _i7.Future); @override void setErrorState(String? errorMsg) => super.noSuchMethod(Invocation.method(#setErrorState, [errorMsg]), returnValueForMissingStub: null); @override - _i6.Future performAction( + _i7.Future performAction( T? desiredState, Function? getState, Function? action, - {_i7.GetDeviceDetailsMethod? getDetails = - _i8.DevicesRepository.getDeviceDetails}) => + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails}) => (super.noSuchMethod( Invocation.method(#performAction, [desiredState, getState, action], {#getDetails: getDetails}), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i6.Future); + returnValueForMissingStub: Future.value()) as _i7.Future); @override - void addListener(_i9.VoidCallback? listener) => + void addListener(_i10.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#addListener, [listener]), returnValueForMissingStub: null); @override - void removeListener(_i9.VoidCallback? listener) => + void removeListener(_i10.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#removeListener, [listener]), returnValueForMissingStub: null); @override @@ -238,7 +242,7 @@ class MockLockProvider extends _i1.Mock implements _i10.LockProvider { /// /// See the documentation for Mockito's code generation for more information. class MockPowerTraitProvider extends _i1.Mock - implements _i12.PowerTraitProvider { + implements _i13.PowerTraitProvider { MockPowerTraitProvider() { _i1.throwOnMissingStub(this); } @@ -256,7 +260,7 @@ class MockPowerTraitProvider extends _i1.Mock (super.noSuchMethod(Invocation.getter(#displayName), returnValue: '') as String); @override - set setState(_i5.WidgetState? newState) => + set setState(_i6.WidgetState? newState) => super.noSuchMethod(Invocation.setter(#setState, newState), returnValueForMissingStub: null); @override @@ -284,44 +288,44 @@ class MockPowerTraitProvider extends _i1.Mock (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) as bool); @override - _i6.Future sendPowerOnOffAction(bool? desiredOnOffState, - {_i7.GetDeviceDetailsMethod? getDetails = - _i8.DevicesRepository.getDeviceDetails, - _i12.SendPowerMethod? sendPowerMethod = - _i13.PowerRepository.sendPowerAction}) => + _i7.Future sendPowerOnOffAction(bool? desiredOnOffState, + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails, + _i13.SendPowerMethod? sendPowerMethod = + _i14.PowerRepository.sendPowerAction}) => (super.noSuchMethod( Invocation.method(#sendPowerOnOffAction, [desiredOnOffState], {#getDetails: getDetails, #sendPowerMethod: sendPowerMethod}), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i6.Future); + returnValueForMissingStub: Future.value()) as _i7.Future); @override - _i6.Future fetchData( - {_i7.GetDeviceDetailsMethod? getDetails = - _i8.DevicesRepository.getDeviceDetails}) => + _i7.Future fetchData( + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails}) => (super.noSuchMethod( Invocation.method(#fetchData, [], {#getDetails: getDetails}), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i6.Future); + returnValueForMissingStub: Future.value()) as _i7.Future); @override void setErrorState(String? errorMsg) => super.noSuchMethod(Invocation.method(#setErrorState, [errorMsg]), returnValueForMissingStub: null); @override - _i6.Future performAction( + _i7.Future performAction( T? desiredState, Function? getState, Function? action, - {_i7.GetDeviceDetailsMethod? getDetails = - _i8.DevicesRepository.getDeviceDetails}) => + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails}) => (super.noSuchMethod( Invocation.method(#performAction, [desiredState, getState, action], {#getDetails: getDetails}), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i6.Future); + returnValueForMissingStub: Future.value()) as _i7.Future); @override - void addListener(_i9.VoidCallback? listener) => + void addListener(_i10.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#addListener, [listener]), returnValueForMissingStub: null); @override - void removeListener(_i9.VoidCallback? listener) => + void removeListener(_i10.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#removeListener, [listener]), returnValueForMissingStub: null); @override @@ -339,7 +343,7 @@ class MockPowerTraitProvider extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockBatteryLevelProvider extends _i1.Mock - implements _i14.BatteryLevelProvider { + implements _i15.BatteryLevelProvider { MockBatteryLevelProvider() { _i1.throwOnMissingStub(this); } @@ -353,7 +357,99 @@ class MockBatteryLevelProvider extends _i1.Mock (super.noSuchMethod(Invocation.getter(#displayName), returnValue: '') as String); @override - set setState(_i5.WidgetState? newState) => + set setState(_i6.WidgetState? newState) => + super.noSuchMethod(Invocation.setter(#setState, newState), + returnValueForMissingStub: null); + @override + bool get isLoading => + (super.noSuchMethod(Invocation.getter(#isLoading), returnValue: false) + as bool); + @override + bool get isPerformingAction => + (super.noSuchMethod(Invocation.getter(#isPerformingAction), + returnValue: false) as bool); + @override + bool get isBusy => + (super.noSuchMethod(Invocation.getter(#isBusy), returnValue: false) + as bool); + @override + bool get isInErrorState => (super + .noSuchMethod(Invocation.getter(#isInErrorState), returnValue: false) + as bool); + @override + String get getErrorMessage => + (super.noSuchMethod(Invocation.getter(#getErrorMessage), returnValue: '') + as String); + @override + bool get hasListeners => + (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) + as bool); + @override + _i7.Future fetchData( + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails}) => + (super.noSuchMethod( + Invocation.method(#fetchData, [], {#getDetails: getDetails}), + returnValue: Future.value(), + returnValueForMissingStub: Future.value()) as _i7.Future); + @override + void setErrorState(String? errorMsg) => + super.noSuchMethod(Invocation.method(#setErrorState, [errorMsg]), + returnValueForMissingStub: null); + @override + _i7.Future performAction( + T? desiredState, Function? getState, Function? action, + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails}) => + (super.noSuchMethod( + Invocation.method(#performAction, [desiredState, getState, action], + {#getDetails: getDetails}), + returnValue: Future.value(), + returnValueForMissingStub: Future.value()) as _i7.Future); + @override + void addListener(_i10.VoidCallback? listener) => + super.noSuchMethod(Invocation.method(#addListener, [listener]), + returnValueForMissingStub: null); + @override + void removeListener(_i10.VoidCallback? listener) => + super.noSuchMethod(Invocation.method(#removeListener, [listener]), + returnValueForMissingStub: null); + @override + void dispose() => super.noSuchMethod(Invocation.method(#dispose, []), + returnValueForMissingStub: null); + @override + void notifyListeners() => + super.noSuchMethod(Invocation.method(#notifyListeners, []), + returnValueForMissingStub: null); + @override + String toString() => super.toString(); +} + +/// A class which mocks [ColorProvider]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockColorProvider extends _i1.Mock implements _i16.ColorProvider { + MockColorProvider() { + _i1.throwOnMissingStub(this); + } + + @override + _i8.GetDeviceDetailsMethod get getDetails => + (super.noSuchMethod(Invocation.getter(#getDetails), + returnValue: (_i2.Request request, String id) => + Future<_i2.Device>.value(_FakeDevice_0())) + as _i8.GetDeviceDetailsMethod); + @override + _i16.SendSetColorActionFunction get sendSetColorAction => (super.noSuchMethod( + Invocation.getter(#sendSetColorAction), + returnValue: (_i2.Request request, String id, _i2.HSBColor hsbColor) => + Future.value()) as _i16.SendSetColorActionFunction); + @override + String get displayName => + (super.noSuchMethod(Invocation.getter(#displayName), returnValue: '') + as String); + @override + set setState(_i6.WidgetState? newState) => super.noSuchMethod(Invocation.setter(#setState, newState), returnValueForMissingStub: null); @override @@ -381,33 +477,38 @@ class MockBatteryLevelProvider extends _i1.Mock (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) as bool); @override - _i6.Future fetchData( - {_i7.GetDeviceDetailsMethod? getDetails = - _i8.DevicesRepository.getDeviceDetails}) => + _i7.Future setColorAction(_i2.HSBColor? color) => + (super.noSuchMethod(Invocation.method(#setColorAction, [color]), + returnValue: Future.value(), + returnValueForMissingStub: Future.value()) as _i7.Future); + @override + _i7.Future fetchData( + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails}) => (super.noSuchMethod( Invocation.method(#fetchData, [], {#getDetails: getDetails}), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i6.Future); + returnValueForMissingStub: Future.value()) as _i7.Future); @override void setErrorState(String? errorMsg) => super.noSuchMethod(Invocation.method(#setErrorState, [errorMsg]), returnValueForMissingStub: null); @override - _i6.Future performAction( + _i7.Future performAction( T? desiredState, Function? getState, Function? action, - {_i7.GetDeviceDetailsMethod? getDetails = - _i8.DevicesRepository.getDeviceDetails}) => + {_i8.GetDeviceDetailsMethod? getDetails = + _i9.DevicesRepository.getDeviceDetails}) => (super.noSuchMethod( Invocation.method(#performAction, [desiredState, getState, action], {#getDetails: getDetails}), returnValue: Future.value(), - returnValueForMissingStub: Future.value()) as _i6.Future); + returnValueForMissingStub: Future.value()) as _i7.Future); @override - void addListener(_i9.VoidCallback? listener) => + void addListener(_i10.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#addListener, [listener]), returnValueForMissingStub: null); @override - void removeListener(_i9.VoidCallback? listener) => + void removeListener(_i10.VoidCallback? listener) => super.noSuchMethod(Invocation.method(#removeListener, [listener]), returnValueForMissingStub: null); @override @@ -424,58 +525,58 @@ class MockBatteryLevelProvider extends _i1.Mock /// A class which mocks [BuildContext]. /// /// See the documentation for Mockito's code generation for more information. -class MockBuildContext extends _i1.Mock implements _i2.BuildContext { +class MockBuildContext extends _i1.Mock implements _i3.BuildContext { MockBuildContext() { _i1.throwOnMissingStub(this); } @override - _i2.Widget get widget => (super.noSuchMethod(Invocation.getter(#widget), - returnValue: _FakeWidget_0()) as _i2.Widget); + _i3.Widget get widget => (super.noSuchMethod(Invocation.getter(#widget), + returnValue: _FakeWidget_1()) as _i3.Widget); @override bool get debugDoingBuild => (super .noSuchMethod(Invocation.getter(#debugDoingBuild), returnValue: false) as bool); @override - _i2.InheritedWidget dependOnInheritedElement(_i2.InheritedElement? ancestor, + _i3.InheritedWidget dependOnInheritedElement(_i3.InheritedElement? ancestor, {Object? aspect}) => (super.noSuchMethod( Invocation.method( #dependOnInheritedElement, [ancestor], {#aspect: aspect}), - returnValue: _FakeInheritedWidget_1()) as _i2.InheritedWidget); + returnValue: _FakeInheritedWidget_2()) as _i3.InheritedWidget); @override - void visitAncestorElements(bool Function(_i2.Element)? visitor) => + void visitAncestorElements(bool Function(_i3.Element)? visitor) => super.noSuchMethod(Invocation.method(#visitAncestorElements, [visitor]), returnValueForMissingStub: null); @override - void visitChildElements(_i2.ElementVisitor? visitor) => + void visitChildElements(_i3.ElementVisitor? visitor) => super.noSuchMethod(Invocation.method(#visitChildElements, [visitor]), returnValueForMissingStub: null); @override - _i2.DiagnosticsNode describeElement(String? name, - {_i3.DiagnosticsTreeStyle? style = - _i3.DiagnosticsTreeStyle.errorProperty}) => + _i3.DiagnosticsNode describeElement(String? name, + {_i4.DiagnosticsTreeStyle? style = + _i4.DiagnosticsTreeStyle.errorProperty}) => (super.noSuchMethod( Invocation.method(#describeElement, [name], {#style: style}), - returnValue: _FakeDiagnosticsNode_2()) as _i2.DiagnosticsNode); + returnValue: _FakeDiagnosticsNode_3()) as _i3.DiagnosticsNode); @override - _i2.DiagnosticsNode describeWidget(String? name, - {_i3.DiagnosticsTreeStyle? style = - _i3.DiagnosticsTreeStyle.errorProperty}) => + _i3.DiagnosticsNode describeWidget(String? name, + {_i4.DiagnosticsTreeStyle? style = + _i4.DiagnosticsTreeStyle.errorProperty}) => (super.noSuchMethod( Invocation.method(#describeWidget, [name], {#style: style}), - returnValue: _FakeDiagnosticsNode_2()) as _i2.DiagnosticsNode); + returnValue: _FakeDiagnosticsNode_3()) as _i3.DiagnosticsNode); @override - List<_i2.DiagnosticsNode> describeMissingAncestor( + List<_i3.DiagnosticsNode> describeMissingAncestor( {Type? expectedAncestorType}) => (super.noSuchMethod( Invocation.method(#describeMissingAncestor, [], {#expectedAncestorType: expectedAncestorType}), - returnValue: <_i2.DiagnosticsNode>[]) as List<_i2.DiagnosticsNode>); + returnValue: <_i3.DiagnosticsNode>[]) as List<_i3.DiagnosticsNode>); @override - _i2.DiagnosticsNode describeOwnershipChain(String? name) => + _i3.DiagnosticsNode describeOwnershipChain(String? name) => (super.noSuchMethod(Invocation.method(#describeOwnershipChain, [name]), - returnValue: _FakeDiagnosticsNode_2()) as _i2.DiagnosticsNode); + returnValue: _FakeDiagnosticsNode_3()) as _i3.DiagnosticsNode); @override String toString() => super.toString(); }