From a196b0d8d479ab43e0bcc24dd41debe59a46da4b Mon Sep 17 00:00:00 2001 From: estevez Date: Sat, 29 Sep 2018 18:09:17 +0300 Subject: [PATCH] Close entity view after setting input value --- lib/entity.class.dart | 29 +++++++++++++++-------------- lib/entity.page.dart | 2 +- lib/main.dart | 2 +- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/lib/entity.class.dart b/lib/entity.class.dart index 586b93a..eea1b20 100644 --- a/lib/entity.class.dart +++ b/lib/entity.class.dart @@ -72,7 +72,7 @@ class Entity { eventBus.fire(new ShowEntityPageEvent(this)); } - Widget buildWidget() { + Widget buildWidget(BuildContext context) { return SizedBox( height: Entity.WIDGET_HEIGHT, child: Row( @@ -87,13 +87,13 @@ class Entity { onTap: openEntityPage, ), ), - _buildActionWidget() + _buildActionWidget(context) ], ), ); } - Widget buildExtendedWidget(String staticState) { + Widget buildExtendedWidget(BuildContext context, String staticState) { return Row( children: [ _buildIconWidget(), @@ -106,7 +106,7 @@ class Entity { Expanded( child: _buildNameWidget(), ), - _buildExtendedActionWidget(staticState) + _buildExtendedActionWidget(context, staticState) ], ), _buildLastUpdatedWidget() @@ -149,7 +149,7 @@ class Entity { ); } - Widget _buildActionWidget() { + Widget _buildActionWidget(BuildContext context) { return Padding( padding: EdgeInsets.fromLTRB(0.0, 0.0, Entity.RIGTH_WIDGET_PADDING, 0.0), child: GestureDetector( @@ -166,8 +166,8 @@ class Entity { ); } - Widget _buildExtendedActionWidget(String staticState) { - return _buildActionWidget(); + Widget _buildExtendedActionWidget(BuildContext context, String staticState) { + return _buildActionWidget(context); } } @@ -176,7 +176,7 @@ class SwitchEntity extends Entity { SwitchEntity(Map rawData) : super(rawData); @override - Widget _buildActionWidget() { + Widget _buildActionWidget(BuildContext context) { return Switch( value: this.isOn, onChanged: ((switchState) { @@ -192,7 +192,7 @@ class ButtonEntity extends Entity { ButtonEntity(Map rawData) : super(rawData); @override - Widget _buildActionWidget() { + Widget _buildActionWidget(BuildContext context) { return FlatButton( onPressed: (() { eventBus.fire(new ServiceCallEvent(_domain, "turn_on", _entityId, null)); @@ -212,7 +212,7 @@ class InputEntity extends Entity { InputEntity(Map rawData) : super(rawData); @override - Widget buildExtendedWidget(String staticState) { + Widget buildExtendedWidget(BuildContext context, String staticState) { return Column( children: [ SizedBox( @@ -229,14 +229,14 @@ class InputEntity extends Entity { ), SizedBox( height: Entity.EXTENDED_WIDGET_HEIGHT, - child: _buildExtendedActionWidget(staticState), + child: _buildExtendedActionWidget(context, staticState), ) ], ); } @override - Widget _buildActionWidget() { + Widget _buildActionWidget(BuildContext context) { if (this.isSliderField) { return Container( width: 200.0, @@ -270,12 +270,12 @@ class InputEntity extends Entity { ), ); } else { - return super._buildActionWidget(); + return super._buildActionWidget(context); } } @override - Widget _buildExtendedActionWidget(String staticState) { + Widget _buildExtendedActionWidget(BuildContext context, String staticState) { return Padding( padding: EdgeInsets.fromLTRB(Entity.LEFT_WIDGET_PADDING, 0.0, Entity.RIGTH_WIDGET_PADDING, 0.0), child: Row( @@ -297,6 +297,7 @@ class InputEntity extends Entity { child: FlatButton( onPressed: () { eventBus.fire(new ServiceCallEvent(_domain, "set_value", _entityId,{"value": "$staticState"})); + Navigator.pop(context); }, child: Text( "SET", diff --git a/lib/entity.page.dart b/lib/entity.page.dart index ad693a9..1314440 100644 --- a/lib/entity.page.dart +++ b/lib/entity.page.dart @@ -50,7 +50,7 @@ class _EntityViewPageState extends State { padding: EdgeInsets.all(10.0), child: ListView( children: [ - _entity.buildExtendedWidget(_lastState) + _entity.buildExtendedWidget(context, _lastState) ], ), ), diff --git a/lib/main.dart b/lib/main.dart index ad34b1d..1aac4ec 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -409,7 +409,7 @@ class _MainPageState extends State with WidgetsBindingObserver { entities.add( Padding( padding: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0), - child: entity.buildWidget(), + child: entity.buildWidget(context), )); } });