This commit is contained in:
Yegor Vialov
2018-11-18 13:19:00 +02:00
parent f248268984
commit d9ca55c3b7
3 changed files with 18 additions and 11 deletions

View File

@ -1,9 +1,9 @@
part of 'main.dart';
class EntityViewPage extends StatefulWidget {
EntityViewPage({Key key, @required this.entity, @required this.homeAssistant }) : super(key: key);
EntityViewPage({Key key, @required this.entityId, @required this.homeAssistant }) : super(key: key);
final Entity entity;
final String entityId;
final HomeAssistant homeAssistant;
@override
@ -12,21 +12,26 @@ class EntityViewPage extends StatefulWidget {
class _EntityViewPageState extends State<EntityViewPage> {
String _title;
StreamSubscription _refreshDataSubscription;
StreamSubscription _stateSubscription;
@override
void initState() {
super.initState();
_stateSubscription = eventBus.on<StateChangedEvent>().listen((event) {
if (event.entityId == widget.entity.entityId) {
TheLogger.debug("State change event handled by entity page: ${event.entityId}");
if (event.entityId == widget.entityId) {
setState(() {});
}
});
_refreshDataSubscription = eventBus.on<RefreshDataFinishedEvent>().listen((event) {
setState(() {});
});
_prepareData();
}
void _prepareData() async {
_title = widget.entity.displayName;
_title = widget.homeAssistant.entities.get(widget.entityId).displayName;
}
@ -45,7 +50,7 @@ class _EntityViewPageState extends State<EntityViewPage> {
padding: EdgeInsets.all(10.0),
child: HomeAssistantModel(
homeAssistant: widget.homeAssistant,
child: widget.entity.buildEntityPageWidget(context)
child: widget.homeAssistant.entities.get(widget.entityId).buildEntityPageWidget(context)
)
),
);
@ -54,6 +59,7 @@ class _EntityViewPageState extends State<EntityViewPage> {
@override
void dispose(){
if (_stateSubscription != null) _stateSubscription.cancel();
if (_refreshDataSubscription != null) _refreshDataSubscription.cancel();
super.dispose();
}
}

View File

@ -24,7 +24,7 @@ class _SwitchStateWidgetState extends State<SwitchStateWidget> {
setState(() {
newState = entity.state;
updatedHere = true;
TheLogger.debug("Timer@!!");
//TheLogger.debug("Timer@!!");
});
});
eventBus.fire(new ServiceCallEvent(

View File

@ -156,6 +156,7 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver {
_settingsLoaded = false;
WidgetsBinding.instance.addObserver(this);
TheLogger.debug("<!!!> Creating new HomeAssistant instance");
_homeAssistant = HomeAssistant();
_settingsSubscription = eventBus.on<SettingsChangedEvent>().listen((event) {
@ -221,7 +222,7 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver {
if (_showEntityPageSubscription == null) {
_showEntityPageSubscription =
eventBus.on<ShowEntityPageEvent>().listen((event) {
_showEntityPage(event.entity);
_showEntityPage(event.entity.entityId);
});
}
@ -241,7 +242,7 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver {
_refreshData() async {
_homeAssistant.updateSettings(_webSocketApiEndpoint, _password, _authType, _useLovelaceUI);
_hideBottomBar();
_showInfoBottomBar(message: "Refreshing data...");
_showInfoBottomBar(message: "Refreshing...");
await _homeAssistant.fetch().then((result) {
_hideBottomBar();
}).catchError((e) {
@ -270,11 +271,11 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver {
_homeAssistant.callService(domain, service, entityId, additionalParams).catchError((e) => _setErrorState(e));
}
void _showEntityPage(Entity entity) {
void _showEntityPage(String entityId) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => EntityViewPage(entity: entity, homeAssistant: _homeAssistant),
builder: (context) => EntityViewPage(entityId: entityId, homeAssistant: _homeAssistant),
)
);
}
@ -386,7 +387,7 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver {
void _showInfoBottomBar({@required String message}) {
_bottomBarAction = Container(height: 0.0, width: 0.0,);
_bottomBarColor = Colors.blue.shade100;
_bottomBarColor = Colors.grey.shade50;
setState(() {
_bottomBarText = "$message";
_showBottomBar = true;