From 0044e33a1c553da9f6ba85080d301120e467b717 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Mon, 12 Jul 2021 19:44:45 +0300 Subject: [PATCH] Improve placeholder images --- assets/images/dashboard-placeholder.png | Bin 5285 -> 0 bytes assets/images/dashboard-placeholder.svg | 37 +++++++++++++++++++ assets/images/device-profile-placeholder.png | Bin 6525 -> 0 bytes assets/images/device-profile-placeholder.svg | 14 +++++++ lib/constants/assets_path.dart | 4 +- lib/modules/dashboard/dashboards_base.dart | 6 ++- lib/modules/device/device_profiles_base.dart | 6 ++- lib/modules/device/devices_base.dart | 11 +++++- 8 files changed, 72 insertions(+), 6 deletions(-) delete mode 100644 assets/images/dashboard-placeholder.png create mode 100644 assets/images/dashboard-placeholder.svg delete mode 100644 assets/images/device-profile-placeholder.png create mode 100644 assets/images/device-profile-placeholder.svg diff --git a/assets/images/dashboard-placeholder.png b/assets/images/dashboard-placeholder.png deleted file mode 100644 index f08a22b27a8a36a98ebfbcbfca49c1d031eef3e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5285 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/device-profile-placeholder.png b/assets/images/device-profile-placeholder.png deleted file mode 100644 index 908525b4f28cf01ec391d9edc7a64e4d2afbba6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6525 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 + + + + + + + + + + + + + diff --git a/lib/constants/assets_path.dart b/lib/constants/assets_path.dart index c4b446d..f8ac2cc 100644 --- a/lib/constants/assets_path.dart +++ b/lib/constants/assets_path.dart @@ -3,8 +3,8 @@ abstract class ThingsboardImage { static final thingsboard = 'assets/images/thingsboard.svg'; static final thingsboardOuter = 'assets/images/thingsboard_outer.svg'; static final thingsboardCenter = 'assets/images/thingsboard_center.svg'; - static final dashboardPlaceholder = 'assets/images/dashboard-placeholder.png'; - static final deviceProfilePlaceholder = 'assets/images/device-profile-placeholder.png'; + static final dashboardPlaceholder = 'assets/images/dashboard-placeholder.svg'; + static final deviceProfilePlaceholder = 'assets/images/device-profile-placeholder.svg'; static final oauth2Logos = { 'google-logo': 'assets/images/google-logo.svg', diff --git a/lib/modules/dashboard/dashboards_base.dart b/lib/modules/dashboard/dashboards_base.dart index 7cb9cea..cc89a13 100644 --- a/lib/modules/dashboard/dashboards_base.dart +++ b/lib/modules/dashboard/dashboards_base.dart @@ -1,6 +1,7 @@ import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'package:thingsboard_app/constants/assets_path.dart'; import 'package:thingsboard_app/core/context/tb_context.dart'; import 'package:thingsboard_app/core/context/tb_context_widget.dart'; @@ -158,7 +159,10 @@ class _DashboardGridCardState extends TbContextState { image = Utils.imageFromBase64(profile.image!); imageFit = BoxFit.contain; } else { - image = Image.asset(ThingsboardImage.deviceProfilePlaceholder); + image = SvgPicture.asset(ThingsboardImage.deviceProfilePlaceholder, + color: Theme.of(context).primaryColor, + colorBlendMode: BlendMode.color, + semanticsLabel: 'Device'); imageFit = BoxFit.cover; } return Row( @@ -298,7 +302,10 @@ class _DeviceCardState extends TbContextState { image = Utils.imageFromBase64(profile.image!); imageFit = BoxFit.contain; } else { - image = Image.asset(ThingsboardImage.deviceProfilePlaceholder); + image = SvgPicture.asset(ThingsboardImage.deviceProfilePlaceholder, + color: Theme.of(context).primaryColor, + colorBlendMode: BlendMode.color, + semanticsLabel: 'Device'); imageFit = BoxFit.cover; } return ClipRRect(