WIP #102 Moving all colors to theme

This commit is contained in:
Yegor Vialov 2020-04-06 21:39:16 +00:00
parent 524d195800
commit 007d12719c
10 changed files with 45 additions and 37 deletions

View File

@ -7,8 +7,7 @@ class BadgeWidget extends StatelessWidget {
double iconSize = 26.0;
Widget badgeIcon;
String onBadgeTextValue;
Color iconColor = HAClientTheme.badgeColors[entityModel.entityWrapper.entity.domain] ??
HAClientTheme.badgeColors["default"];
Color iconColor = HAClientTheme().getBadgeColor(entityModel.entityWrapper.entity.domain);
switch (entityModel.entityWrapper.entity.domain) {
case "sun":
{
@ -80,7 +79,7 @@ class BadgeWidget extends StatelessWidget {
padding: EdgeInsets.fromLTRB(6.0, 2.0, 6.0, 2.0),
child: Text("$onBadgeTextValue",
style: Theme.of(context).textTheme.overline.copyWith(
color: Colors.white
color: HAClientTheme().getOnBadgeTextColor()
),
textAlign: TextAlign.center,
softWrap: false,

View File

@ -151,7 +151,7 @@ class _CameraStreamViewState extends State<CameraStreamView> {
child: IconButton(
icon: Icon((_videoPlayerController != null && _videoPlayerController.value.isPlaying) ? Icons.pause_circle_outline : Icons.play_circle_outline),
iconSize: 60,
color: Colors.amberAccent,
color: Theme.of(context).accentColor,
onPressed: (_videoPlayerController == null || _videoPlayerController.value.hasError || !_isLoaded) ? null :
() {
setState(() {
@ -175,7 +175,7 @@ class _CameraStreamViewState extends State<CameraStreamView> {
IconButton(
icon: Icon(Icons.refresh),
iconSize: 40,
color: Colors.amberAccent,
color: Theme.of(context).accentColor,
onPressed: _isLoaded ? () {
setState(() {
_isLoaded = false;
@ -188,7 +188,7 @@ class _CameraStreamViewState extends State<CameraStreamView> {
IconButton(
icon: Icon(Icons.fullscreen),
iconSize: 40,
color: Colors.amberAccent,
color: Theme.of(context).accentColor,
onPressed: _isLoaded ? () {
_videoPlayerController?.pause();
eventBus.fire(ShowEntityPageEvent());

View File

@ -15,22 +15,18 @@ class DefaultEntityContainer extends StatelessWidget {
return MissedEntityWidget();
}
if (entityModel.entityWrapper.entity.statelessType == StatelessEntityType.DIVIDER) {
return Divider(
color: Colors.black45,
);
return Divider();
}
if (entityModel.entityWrapper.entity.statelessType == StatelessEntityType.SECTION) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Divider(
color: Colors.black45,
),
Divider(),
Text(
"${entityModel.entityWrapper.entity.displayName}",
style: Theme.of(context).textTheme.body1.copyWith(
color: Colors.blue
color: Theme.of(context).primaryColor
),
)
],

View File

@ -16,9 +16,10 @@ class EntityName extends StatelessWidget {
final EntityWrapper entityWrapper = EntityModel.of(context).entityWrapper;
TextStyle tStyle;
if (textStyle == null) {
tStyle = Theme.of(context).textTheme.body1;
if (entityWrapper.entity.statelessType == StatelessEntityType.WEBLINK) {
tStyle = tStyle.apply(color: Colors.blue, decoration: TextDecoration.underline);
tStyle = HAClientTheme().getLinkTextStyle(context);
} else {
tStyle = Theme.of(context).textTheme.body1;
}
}
return Padding(

View File

@ -16,7 +16,7 @@ class EntityPageLayout extends StatelessWidget {
children: <Widget>[
showClose ?
Container(
color: Theme.of(context).primaryColorLight,
color: Theme.of(context).primaryColor,
height: 40,
child: Row(
children: <Widget>[
@ -25,16 +25,14 @@ class EntityPageLayout extends StatelessWidget {
padding: EdgeInsets.only(left: 8),
child: Text(
entity.displayName,
style: Theme.of(context).textTheme.headline.copyWith(
color: Colors.white
),
style: Theme.of(context).primaryTextTheme.headline
),
),
),
IconButton(
padding: EdgeInsets.all(0),
icon: Icon(Icons.close),
color: Colors.white,
color: Theme.of(context).primaryTextTheme.headline.color,
iconSize: 36.0,
onPressed: () {
eventBus.fire(ShowEntityPageEvent());

View File

@ -30,9 +30,7 @@ class FlatServiceButton extends StatelessWidget {
child: Text(
text,
textAlign: TextAlign.right,
style: Theme.of(context).textTheme.subhead.copyWith(
color: Colors.blue
),
style: HAClientTheme().getActionTextStyle(context),
),
)
);

View File

@ -224,7 +224,7 @@ class _LightControlsWidgetState extends State<LightControlsWidget> {
},
),
FlatButton(
color: savedColor?.toColor() ?? Colors.transparent,
color: savedColor?.toColor() ?? Theme.of(context).backgroundColor,
child: Text('Paste color'),
onPressed: savedColor == null ? null : () {
_setColor(entity, savedColor);

View File

@ -28,9 +28,7 @@ class LockStateWidget extends StatelessWidget {
onPressed: () => _unlock(entity),
child: Text("UNLOCK",
textAlign: TextAlign.right,
style: Theme.of(context).textTheme.subhead.copyWith(
color: Colors.blue
)
style: HAClientTheme().getActionTextStyle(context)
),
)
),
@ -40,9 +38,7 @@ class LockStateWidget extends StatelessWidget {
onPressed: () => _lock(entity),
child: Text("LOCK",
textAlign: TextAlign.right,
style: Theme.of(context).textTheme.subhead.copyWith(
color: Colors.blue
),
style: HAClientTheme().getActionTextStyle(context),
),
)
)
@ -58,9 +54,7 @@ class LockStateWidget extends StatelessWidget {
child: Text(
entity.isLocked ? "UNLOCK" : "LOCK",
textAlign: TextAlign.right,
style: Theme.of(context).textTheme.subhead.copyWith(
color: Colors.blue
),
style: HAClientTheme().getActionTextStyle(context),
),
)
);

View File

@ -47,8 +47,7 @@ class _MediaPlayerSeekBarState extends State<MediaPlayerSeekBar> {
buttons.add(
RaisedButton(
child: Text("Jump to ${Duration(seconds: _savedPosition).toString().split('.')[0]}"),
color: Colors.orange,
focusColor: Colors.white,
color: Theme.of(context).accentColor,
onPressed: () {
ConnectionManager().callService(
domain: "media_player",
@ -87,8 +86,7 @@ class _MediaPlayerSeekBarState extends State<MediaPlayerSeekBar> {
Container(height: 10,),
Slider(
min: 0,
activeColor: Colors.amber,
inactiveColor: Colors.black26,
activeColor: Theme.of(context).accentColor,
max: entity.durationSeconds.toDouble(),
value: _currentPosition,
onChangeStart: (val) {

View File

@ -154,6 +154,30 @@ class HAClientTheme {
}
}
TextStyle getLinkTextStyle(BuildContext context) {
ThemeData theme = Theme.of(context);
return theme.textTheme.body1.copyWith(
color: Colors.blue,
decoration: TextDecoration.underline
);
}
TextStyle getActionTextStyle(BuildContext context) {
ThemeData theme = Theme.of(context);
return theme.textTheme.subhead.copyWith(
color: Colors.blue
);
}
Color getBadgeColor(String entityDomain) {
return badgeColors[entityDomain] ??
badgeColors["default"];
}
Color getOnBadgeTextColor() {
return Colors.white;
}
charts.Color chartHistoryStateColor(String state, int id, BuildContext context) {
Color c = getColorByEntityState(state, context);
if (c != null) {