Resolves #121 Markdown card support

This commit is contained in:
Yegor Vialov
2019-01-23 23:34:45 +02:00
parent be5ea55f6b
commit 1c8f770f10
9 changed files with 54 additions and 14 deletions

View File

@ -94,4 +94,5 @@ class CardType {
static const entityButton = "entity-button";
static const conditional = "conditional";
static const alarmPanel = "alarm-panel";
static const markdown = "markdown";
}

View File

@ -439,7 +439,8 @@ class HomeAssistant {
showName: isThereCardOptionsInside ? rawCard["card"]['show_name'] ?? true : rawCard['show_name'] ?? true,
showState: isThereCardOptionsInside ? rawCard["card"]['show_state'] ?? true : rawCard['show_state'] ?? true,
showEmpty: rawCard['show_empty'] ?? true,
stateFilter: rawCard['state_filter'] ?? []
stateFilter: rawCard['state_filter'] ?? [],
content: rawCard['content']
);
if (rawCard["cards"] != null) {
card.childCards = _createLovelaceCards(rawCard["cards"]);

View File

@ -14,6 +14,7 @@ import 'package:http/http.dart' as http;
import 'package:flutter_colorpicker/material_picker.dart';
import 'package:charts_flutter/flutter.dart' as charts;
import 'package:progress_indicators/progress_indicators.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
part 'entity_class/const.dart';
part 'entity_class/entity.class.dart';
@ -85,7 +86,7 @@ part 'ui_widgets/card_header_widget.dart';
EventBus eventBus = new EventBus();
const String appName = "HA Client";
const appVersion = "0.3.13-82";
const appVersion = "0.3.13-83";
String homeAssistantWebHost;

View File

@ -12,6 +12,7 @@ class HACard {
bool showEmpty;
int columnsCount;
List stateFilter;
String content;
HACard({
this.name,
@ -22,6 +23,7 @@ class HACard {
this.showState: true,
this.stateFilter: const [],
this.showEmpty: true,
this.content,
@required this.type
});

View File

@ -11,6 +11,7 @@ class Sizes {
static const nameFontSize = 15.0;
static const smallFontSize = 14.0;
static const largeFontSize = 24.0;
static const mediumFontSize = 21.0;
static const inputWidth = 160.0;
static const rowPadding = 10.0;
}

View File

@ -14,7 +14,7 @@ class CardHeaderWidget extends StatelessWidget {
title: Text("$name",
textAlign: TextAlign.left,
overflow: TextOverflow.ellipsis,
style: new TextStyle(fontWeight: FontWeight.bold, fontSize: Sizes.largeFontSize)),
style: new TextStyle(fontSize: Sizes.mediumFontSize)),
);
} else {
result = new Container(width: 0.0, height: 0.0);

View File

@ -33,6 +33,10 @@ class CardWidget extends StatelessWidget {
return _buildEntityButtonCard(context);
}
case CardType.markdown: {
return _buildMarkdownCard(context);
}
case CardType.horizontalStack: {
if (card.childCards.isNotEmpty) {
List<Widget> children = [];
@ -109,6 +113,21 @@ class CardWidget extends StatelessWidget {
);
}
Widget _buildMarkdownCard(BuildContext context) {
if (card.content == null) {
return Container(height: 0.0, width: 0.0,);
}
List<Widget> body = [];
body.add(CardHeaderWidget(name: card.name));
body.add(MarkdownBody(data: card.content));
return Card(
child: Padding(
padding: EdgeInsets.fromLTRB(Sizes.leftWidgetPadding, Sizes.rowPadding, Sizes.rightWidgetPadding, Sizes.rowPadding),
child: new Column(mainAxisSize: MainAxisSize.min, children: body),
)
);
}
Widget _buildGlanceCard(BuildContext context) {
List<EntityWrapper> entitiesToShow = card.getEntitiesToShow();
if (entitiesToShow.isEmpty && !card.showEmpty) {