Hide unsupported cards

This commit is contained in:
Yegor Vialov 2020-05-07 16:14:23 +00:00
parent 55eb1b5125
commit 1670c8e505
2 changed files with 10 additions and 14 deletions

View File

@ -13,6 +13,11 @@ class CardData {
factory CardData.parse(rawData) { factory CardData.parse(rawData) {
try { try {
if (rawData['type'] == null) {
rawData['type'] = CardType.ENTITIES;
} else if (!(rawData['type'] is String)) {
return CardData(null);
}
switch (rawData['type']) { switch (rawData['type']) {
case CardType.ENTITIES: case CardType.ENTITIES:
return EntitiesCardData(rawData); return EntitiesCardData(rawData);
@ -56,14 +61,10 @@ class CardData {
case CardType.MEDIA_CONTROL: case CardType.MEDIA_CONTROL:
return MediaControlCardData(rawData); return MediaControlCardData(rawData);
break; break;
//TODO make all other official Lovelace cards as Entities
//All other cards should be unsupported and not shown
default: default:
if (rawData.containsKey('entities')) { return CardData(null);
return EntitiesCardData(rawData);
} else if (rawData.containsKey('entity')) {
rawData['entities'] = [rawData['entity']];
return EntitiesCardData(rawData);
}
return CardData(rawData);
} }
} catch (error, stacktrace) { } catch (error, stacktrace) {
Logger.e('Error parsing card $rawData: $error', stacktrace: stacktrace); Logger.e('Error parsing card $rawData: $error', stacktrace: stacktrace);
@ -73,7 +74,7 @@ class CardData {
CardData(rawData) { CardData(rawData) {
if (rawData != null && rawData is Map) { if (rawData != null && rawData is Map) {
type = rawData['type'] ?? CardType.ENTITIES; type = rawData['type'];
conditions = rawData['conditions'] ?? []; conditions = rawData['conditions'] ?? [];
showEmpty = rawData['show_empty'] ?? true; showEmpty = rawData['show_empty'] ?? true;
stateFilter = rawData['state_filter'] ?? []; stateFilter = rawData['state_filter'] ?? [];

View File

@ -7,11 +7,6 @@ class UnsupportedCard extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return CardWrapper( return Container();
child: Padding(
padding: EdgeInsets.fromLTRB(Sizes.leftWidgetPadding, Sizes.rowPadding, Sizes.rightWidgetPadding, Sizes.rowPadding),
child: Text("'${card.type}' card is not supported yet"),
)
);
} }
} }