Compare commits

...

6 Commits
0.3.4 ... 0.3.5

Author SHA1 Message Date
71c4ac7fed v.0.3.5 2018-11-04 18:28:02 +02:00
3f7e21e97e Fix Lovelace views int id issue 2018-11-04 18:26:31 +02:00
e24c47b041 Error handling improvements 2018-11-04 18:20:06 +02:00
73b32b30a8 Build number inc 2018-11-04 12:01:41 +02:00
5b6155057c Fix views count issue on app loading 2018-11-04 11:23:21 +02:00
ff4185effe internal build version 2018-11-03 23:33:12 +02:00
4 changed files with 86 additions and 9 deletions

View File

@ -0,0 +1,51 @@
part of '../main.dart';
class MediaPlayerEntity extends Entity {
static const SUPPORT_PAUSE = 1;
static const SUPPORT_SEEK = 2;
static const SUPPORT_VOLUME_SET = 4;
static const SUPPORT_VOLUME_MUTE = 8;
static const SUPPORT_PREVIOUS_TRACK = 16;
static const SUPPORT_NEXT_TRACK = 32;
static const SUPPORT_TURN_ON = 128;
static const SUPPORT_TURN_OFF = 256;
static const SUPPORT_PLAY_MEDIA = 512;
static const SUPPORT_VOLUME_STEP = 1024;
static const SUPPORT_SELECT_SOURCE = 2048;
static const SUPPORT_STOP = 4096;
static const SUPPORT_CLEAR_PLAYLIST = 8192;
static const SUPPORT_PLAY = 16384;
static const SUPPORT_SHUFFLE_SET = 32768;
static const SUPPORT_SELECT_SOUND_MODE = 65536;
MediaPlayerEntity(Map rawData) : super(rawData);
bool get supportPause => ((attributes["supported_features"] &
MediaPlayerEntity.SUPPORT_PAUSE) ==
MediaPlayerEntity.SUPPORT_PAUSE);
bool get supportSeek => ((attributes["supported_features"] &
MediaPlayerEntity.SUPPORT_SEEK) ==
MediaPlayerEntity.SUPPORT_SEEK);
bool get supportVolumeSet => ((attributes["supported_features"] &
MediaPlayerEntity.SUPPORT_VOLUME_SET) ==
MediaPlayerEntity.SUPPORT_VOLUME_SET);
bool get supportVolumeMute => ((attributes["supported_features"] &
MediaPlayerEntity.SUPPORT_VOLUME_MUTE) ==
MediaPlayerEntity.SUPPORT_VOLUME_MUTE);
bool get supportPreviousTrack => ((attributes["supported_features"] &
MediaPlayerEntity.SUPPORT_PREVIOUS_TRACK) ==
MediaPlayerEntity.SUPPORT_PREVIOUS_TRACK);
bool get supportNextTrack => ((attributes["supported_features"] &
MediaPlayerEntity.SUPPORT_NEXT_TRACK) ==
MediaPlayerEntity.SUPPORT_NEXT_TRACK);
bool get supportTurnOn => ((attributes["supported_features"] &
MediaPlayerEntity.SUPPORT_TURN_ON) ==
MediaPlayerEntity.SUPPORT_TURN_ON);
bool get supportTurnOff => ((attributes["supported_features"] &
MediaPlayerEntity.SUPPORT_TURN_OFF) ==
MediaPlayerEntity.SUPPORT_TURN_OFF);
}

View File

@ -195,8 +195,13 @@ class HomeAssistant {
_connectionCompleter.complete();
}
} else if (error != null) {
if (error is Error) {
eventBus.fire(ShowErrorEvent(error.toString(), 12));
} else {
eventBus.fire(ShowErrorEvent(error["errorMessage"], error["errorCode"]));
}
}
}
_handleMessage(String message) {
@ -379,7 +384,7 @@ class HomeAssistant {
TheLogger.debug("----view id: ${rawView['id']}");
HAView view = HAView(
count: viewCounter,
id: rawView['id'],
id: "${rawView['id']}",
name: rawView['title'],
iconName: rawView['icon']
);

View File

@ -26,6 +26,7 @@ part 'entity_class/light_entity.class.dart';
part 'entity_class/select_entity.class.dart';
part 'entity_class/other_entity.class.dart';
part 'entity_class/slider_entity.dart';
part 'entity_class/media_player_entity.class.dart';
part 'entity_widgets/badge.dart';
part 'entity_widgets/model_widgets.dart';
part 'entity_widgets/default_entity_container.dart';
@ -74,7 +75,7 @@ part 'ui_widgets/card_header_widget.dart';
EventBus eventBus = new EventBus();
const String appName = "HA Client";
const appVersion = "0.3.4";
const appVersion = "0.3.5";
String homeAssistantWebHost;
@ -267,11 +268,20 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver {
setState(() {
_isLoading = 2;
});
if (e is Error) {
TheLogger.error(e.toString());
TheLogger.error("${e.stackTrace}");
_showErrorSnackBar(
message: "There was some error",
errorCode: 13
);
} else {
_showErrorSnackBar(
message: e != null ? e["errorMessage"] ?? "$e" : "Unknown error",
errorCode: e["errorCode"] != null ? e["errorCode"] : 99
);
}
}
void _callService(String domain, String service, String entityId, Map<String, dynamic> additionalParams) {
_homeAssistant.callService(domain, service, entityId, additionalParams).catchError((e) => _setErrorState(e));
@ -477,6 +487,17 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver {
);
break;
}
default: {
action = SnackBarAction(
label: "Reload",
onPressed: () {
_scaffoldKey?.currentState?.hideCurrentSnackBar();
_refreshData();
},
);
break;
}
}
_scaffoldKey.currentState.hideCurrentSnackBar();
_scaffoldKey.currentState.showSnackBar(
@ -532,7 +553,7 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver {
@override
Widget build(BuildContext context) {
// This method is rerun every time setState is called.
if (_homeAssistant.entities.isEmpty) {
if (_homeAssistant.ui == null || _homeAssistant.ui.views == null) {
return _buildScaffold(true);
} else {
return DefaultTabController(

View File

@ -1,7 +1,7 @@
name: hass_client
description: Home Assistant Android Client
version: 0.3.4+52
version: 0.3.5+55
environment:
sdk: ">=2.0.0-dev.68.0 <3.0.0"