From 007d12719cea4f77a4417277c321ebfba45024d2 Mon Sep 17 00:00:00 2001 From: Yegor Vialov Date: Mon, 6 Apr 2020 21:39:16 +0000 Subject: [PATCH] WIP #102 Moving all colors to theme --- lib/entities/badge.widget.dart | 5 ++-- .../camera/widgets/camera_stream_view.dart | 6 ++--- .../default_entity_container.widget.dart | 10 +++----- lib/entities/entity_name.widget.dart | 5 ++-- lib/entities/entity_page_layout.widget.dart | 8 +++---- lib/entities/flat_service_button.widget.dart | 4 +--- .../light/widgets/light_controls.dart | 2 +- lib/entities/lock/widgets/lock_state.dart | 12 +++------- .../widgets/media_player_seek_bar.widget.dart | 6 ++--- lib/managers/theme_manager.dart | 24 +++++++++++++++++++ 10 files changed, 45 insertions(+), 37 deletions(-) diff --git a/lib/entities/badge.widget.dart b/lib/entities/badge.widget.dart index f02bbbc..5bf20b3 100644 --- a/lib/entities/badge.widget.dart +++ b/lib/entities/badge.widget.dart @@ -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, diff --git a/lib/entities/camera/widgets/camera_stream_view.dart b/lib/entities/camera/widgets/camera_stream_view.dart index 55170c5..8acc605 100644 --- a/lib/entities/camera/widgets/camera_stream_view.dart +++ b/lib/entities/camera/widgets/camera_stream_view.dart @@ -151,7 +151,7 @@ class _CameraStreamViewState extends State { 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 { 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 { IconButton( icon: Icon(Icons.fullscreen), iconSize: 40, - color: Colors.amberAccent, + color: Theme.of(context).accentColor, onPressed: _isLoaded ? () { _videoPlayerController?.pause(); eventBus.fire(ShowEntityPageEvent()); diff --git a/lib/entities/default_entity_container.widget.dart b/lib/entities/default_entity_container.widget.dart index 8eff0a9..753cf78 100644 --- a/lib/entities/default_entity_container.widget.dart +++ b/lib/entities/default_entity_container.widget.dart @@ -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: [ - 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 ), ) ], diff --git a/lib/entities/entity_name.widget.dart b/lib/entities/entity_name.widget.dart index 5ecd3aa..efdc775 100644 --- a/lib/entities/entity_name.widget.dart +++ b/lib/entities/entity_name.widget.dart @@ -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( diff --git a/lib/entities/entity_page_layout.widget.dart b/lib/entities/entity_page_layout.widget.dart index b96166f..ae9ddd3 100644 --- a/lib/entities/entity_page_layout.widget.dart +++ b/lib/entities/entity_page_layout.widget.dart @@ -16,7 +16,7 @@ class EntityPageLayout extends StatelessWidget { children: [ showClose ? Container( - color: Theme.of(context).primaryColorLight, + color: Theme.of(context).primaryColor, height: 40, child: Row( children: [ @@ -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()); diff --git a/lib/entities/flat_service_button.widget.dart b/lib/entities/flat_service_button.widget.dart index e4025f2..676ec5e 100644 --- a/lib/entities/flat_service_button.widget.dart +++ b/lib/entities/flat_service_button.widget.dart @@ -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), ), ) ); diff --git a/lib/entities/light/widgets/light_controls.dart b/lib/entities/light/widgets/light_controls.dart index 86cb02b..0f7783a 100644 --- a/lib/entities/light/widgets/light_controls.dart +++ b/lib/entities/light/widgets/light_controls.dart @@ -224,7 +224,7 @@ class _LightControlsWidgetState extends State { }, ), FlatButton( - color: savedColor?.toColor() ?? Colors.transparent, + color: savedColor?.toColor() ?? Theme.of(context).backgroundColor, child: Text('Paste color'), onPressed: savedColor == null ? null : () { _setColor(entity, savedColor); diff --git a/lib/entities/lock/widgets/lock_state.dart b/lib/entities/lock/widgets/lock_state.dart index 7a1d6a7..8fb5bc0 100644 --- a/lib/entities/lock/widgets/lock_state.dart +++ b/lib/entities/lock/widgets/lock_state.dart @@ -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), ), ) ); diff --git a/lib/entities/media_player/widgets/media_player_seek_bar.widget.dart b/lib/entities/media_player/widgets/media_player_seek_bar.widget.dart index da8a36d..195c4cf 100644 --- a/lib/entities/media_player/widgets/media_player_seek_bar.widget.dart +++ b/lib/entities/media_player/widgets/media_player_seek_bar.widget.dart @@ -47,8 +47,7 @@ class _MediaPlayerSeekBarState extends State { 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 { 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) { diff --git a/lib/managers/theme_manager.dart b/lib/managers/theme_manager.dart index ae51101..8e25c2d 100644 --- a/lib/managers/theme_manager.dart +++ b/lib/managers/theme_manager.dart @@ -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) {