From 1ab544afbb8e661c140afb87e5d7c5ae90947977 Mon Sep 17 00:00:00 2001 From: anhtunz Date: Fri, 4 Apr 2025 10:32:50 +0700 Subject: [PATCH] Fix(ui): Fix some ui bugs Find Button In DeviceLogsScreen Fix offlineText when in DarkMode Update offlineIcons --- assets/icons/offline_icon.png | Bin 18918 -> 36686 bytes .../device_log/device_logs_screen.dart | 11 +- .../device_detail/device_detail_screen.dart | 50 ++--- .../devices/devices_manager_screen.dart | 193 +++++++++--------- .../group_detail/group_detail_screen.dart | 2 +- .../map/widget/on_tap_marker_widget.dart | 8 +- lib/product/utils/device_utils.dart | 4 +- 7 files changed, 131 insertions(+), 137 deletions(-) diff --git a/assets/icons/offline_icon.png b/assets/icons/offline_icon.png index 0d4cbc902324e96584c0c5e5a8d3cf30ec5572f1..9f000773d9eeec0d4cc21cd40f24e64dd0926edb 100644 GIT binary patch literal 36686 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 literal 18918 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 diff --git a/lib/feature/device_log/device_logs_screen.dart b/lib/feature/device_log/device_logs_screen.dart index 1e7bf60..d12c218 100644 --- a/lib/feature/device_log/device_logs_screen.dart +++ b/lib/feature/device_log/device_logs_screen.dart @@ -2,10 +2,10 @@ import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; -import 'package:sfm_app/product/constant/app/app_constants.dart'; import 'widgets/tag_widget.dart'; import '../devices/device_model.dart'; import '../../bloc/device_logs_bloc.dart'; +import '../../product/constant/app/app_constants.dart'; import '../../product/constant/icon/icon_constants.dart'; import '../../product/extension/context_extension.dart'; import '../../product/services/language_services.dart'; @@ -175,11 +175,11 @@ class _DeviceLogsScreenState extends State { ), Center( child: TextButton.icon( - style: const ButtonStyle( + style: ButtonStyle( backgroundColor: - WidgetStatePropertyAll(Colors.green), + WidgetStatePropertyAll(Theme.of(context).primaryColor), foregroundColor: - WidgetStatePropertyAll(Colors.white), + WidgetStatePropertyAll(Theme.of(context).colorScheme.surfaceBright), ), onPressed: () { if (fromDateApi.isEmpty) { @@ -200,8 +200,7 @@ class _DeviceLogsScreenState extends State { // log("ThingID: $thingID"); // log("From Date: ${DateTimeUtils.instance.formatDateTimeToString(dateTime!)}"); }, - icon: IconConstants.instance - .getMaterialIcon(Icons.search), + icon: Icon(Icons.search,color: Theme.of(context).colorScheme.surfaceBright,), label: Text( appLocalization(context) .find_button_content, diff --git a/lib/feature/devices/device_detail/device_detail_screen.dart b/lib/feature/devices/device_detail/device_detail_screen.dart index 33e6c92..f5c0dcc 100644 --- a/lib/feature/devices/device_detail/device_detail_screen.dart +++ b/lib/feature/devices/device_detail/device_detail_screen.dart @@ -100,7 +100,7 @@ class _DetailDeviceScreenState extends State { if (sensorSnapshot.data != null) { return Scaffold( appBar: AppBar( - title: Text(appLocalization(context).detail_message), + title: Text(deviceSnapshot.data?.name ?? ""), centerTitle: true, ), body: SingleChildScrollView( @@ -122,28 +122,28 @@ class _DetailDeviceScreenState extends State { fit: BoxFit.fill, ), ), - Center( - child: Container( - height: 50, - width: 400, - // color: Colors.blueAccent, - alignment: Alignment.centerRight, - margin: const EdgeInsets.fromLTRB(0, 0, 0, 50), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - const SizedBox(), - Text( - deviceSnapshot.data?.name ?? "", - style: const TextStyle( - fontSize: 25, - fontWeight: FontWeight.w600, - ), - ), - ], - ), - ), - ), + // Center( + // child: Container( + // height: 50, + // width: 400, + // // color: Colors.blueAccent, + // alignment: Alignment.centerRight, + // margin: const EdgeInsets.fromLTRB(0, 0, 0, 50), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.spaceBetween, + // children: [ + // const SizedBox(), + // Text( + // deviceSnapshot.data?.name ?? "", + // style: const TextStyle( + // fontSize: 25, + // fontWeight: FontWeight.w600, + // ), + // ), + // ], + // ), + // ), + // ), ], ), ), @@ -157,7 +157,7 @@ class _DetailDeviceScreenState extends State { width: context.dynamicWidth(0.5), decoration: BoxDecoration( color: DeviceUtils.instance - .getTableRowColor(deviceSnapshot.data?.state ?? 3), + .getTableRowColor(context,deviceSnapshot.data?.state ?? 3), borderRadius: BorderRadius.circular(50), ), alignment: Alignment.bottomCenter, @@ -192,7 +192,7 @@ class _DetailDeviceScreenState extends State { ) : CircleAvatar( backgroundColor: - DeviceUtils.instance.getTableRowColor( + DeviceUtils.instance.getTableRowColor(context, deviceSnapshot.data?.state ?? 3, ), minRadius: context.mediumValue, diff --git a/lib/feature/devices/devices_manager_screen.dart b/lib/feature/devices/devices_manager_screen.dart index 12844f7..6772f56 100644 --- a/lib/feature/devices/devices_manager_screen.dart +++ b/lib/feature/devices/devices_manager_screen.dart @@ -89,103 +89,98 @@ class _DevicesManagerScreenState extends State { builder: (context, roleSnapshot) { return SizedBox( height: context.dynamicHeight(0.4), - child: CardTheme( - color: Theme.of(context).colorScheme.onPrimary, - shadowColor: - Theme.of(context).colorScheme.onPrimary, - child: PaginatedDataTable2( - headingRowHeight: 30, - columnSpacing: 30, - horizontalMargin: 10, - fixedLeftColumns: 1, - autoRowsToHeight: true, - renderEmptyRowsInTheEnd: false, - dragStartBehavior: DragStartBehavior.down, - minWidth: 950, - header: Center( - child: Text( - appLocalization(context) - .paginated_data_table_title, - style: context.headlineMediumTextStyle, - ), + child: PaginatedDataTable2( + headingRowHeight: 30, + columnSpacing: 30, + horizontalMargin: 10, + fixedLeftColumns: 1, + autoRowsToHeight: true, + renderEmptyRowsInTheEnd: false, + dragStartBehavior: DragStartBehavior.down, + minWidth: 950, + header: Center( + child: Text( + appLocalization(context) + .paginated_data_table_title, + style: context.headlineMediumTextStyle, ), - columns: [ - if (roleSnapshot.data == - RoleEnums.ADMIN.name || - roleSnapshot.data == - RoleEnums.USER.name) - DataColumn( - label: Text(appLocalization(context) - .paginated_data_table_column_deviceName), - ), + ), + columns: [ + if (roleSnapshot.data == + RoleEnums.ADMIN.name || + roleSnapshot.data == + RoleEnums.USER.name) DataColumn( label: Text(appLocalization(context) - .paginated_data_table_column_deviceStatus), + .paginated_data_table_column_deviceName), ), - DataColumn( - label: Text(appLocalization(context) - .paginated_data_table_column_deviceBaterry), - ), - DataColumn( - label: Text(appLocalization(context) - .paginated_data_table_column_deviceSignal), - ), - DataColumn( - label: Text(appLocalization(context) - .paginated_data_table_column_deviceTemperature), - ), - DataColumn( - label: Text(appLocalization(context) - .paginated_data_table_column_deviceHump), - ), - DataColumn( - label: Text(appLocalization(context) - .paginated_data_table_column_devicePower), - ), - DataColumn( - label: Text(appLocalization(context) - .paginated_data_table_column_action), - ), - ], - onPageChanged: (int pageIndex) { - // log('Chuyen page: $pageIndex'); - }, - // rowsPerPage: - // (allDeviceSnapshot.data?.length ?? 1) < 6 - // ? (allDeviceSnapshot.data?.length ?? - // 0) - // : 5, + DataColumn( + label: Text(appLocalization(context) + .paginated_data_table_column_deviceStatus), + ), + DataColumn( + label: Text(appLocalization(context) + .paginated_data_table_column_deviceBaterry), + ), + DataColumn( + label: Text(appLocalization(context) + .paginated_data_table_column_deviceSignal), + ), + DataColumn( + label: Text(appLocalization(context) + .paginated_data_table_column_deviceTemperature), + ), + DataColumn( + label: Text(appLocalization(context) + .paginated_data_table_column_deviceHump), + ), + DataColumn( + label: Text(appLocalization(context) + .paginated_data_table_column_devicePower), + ), + DataColumn( + label: Text(appLocalization(context) + .paginated_data_table_column_action), + ), + ], + onPageChanged: (int pageIndex) { + // log('Chuyen page: $pageIndex'); + }, + // rowsPerPage: + // (allDeviceSnapshot.data?.length ?? 1) < 6 + // ? (allDeviceSnapshot.data?.length ?? + // 0) + // : 5, - actions: [ - if (roleSnapshot.data == - RoleEnums.USER.name || - roleSnapshot.data == - RoleEnums.ADMIN.name) - IconButton( - style: ButtonStyle( - backgroundColor: - WidgetStateProperty.all( - Colors.green), - iconColor: - WidgetStateProperty.all( - Colors.white, - ), + actions: [ + if (roleSnapshot.data == + RoleEnums.USER.name || + roleSnapshot.data == + RoleEnums.ADMIN.name) + IconButton( + style: ButtonStyle( + backgroundColor: + WidgetStateProperty.all( + Colors.green), + iconColor: + WidgetStateProperty.all( + Colors.white, ), - onPressed: () { - ScaffoldMessenger.of(context) - .clearSnackBars(); - addNewDevice(context, - roleSnapshot.data ?? role); - }, - icon: IconConstants.instance - .getMaterialIcon(Icons.add)) - ], - source: DeviceSource( - devices: allDeviceSnapshot.data ?? devices, - context: context, - devicesBloc: devicesManagerBloc, - role: role, - ), + ), + onPressed: () { + ScaffoldMessenger.of(context) + .clearSnackBars(); + addNewDevice(context, + roleSnapshot.data ?? role); + }, + icon: IconConstants.instance + .getMaterialIcon(Icons.add)) + ], + source: DeviceSource( + devices: allDeviceSnapshot.data ?? devices, + context: context, + devicesBloc: devicesManagerBloc, + role: role, ), ), ); @@ -265,7 +260,7 @@ class DeviceSource extends DataTableSource { Text(device.name!, style: TextStyle( color: DeviceUtils.instance - .getTableRowColor(device.state!))), onTap: () { + .getTableRowColor(context,device.state!))), onTap: () { context.pushNamed(AppRoutes.DEVICE_DETAIL.name, pathParameters: {'thingID': device.thingId!}); }), @@ -273,36 +268,36 @@ class DeviceSource extends DataTableSource { Text(deviceState, style: TextStyle( color: DeviceUtils.instance - .getTableRowColor(device.state!))), onTap: () { + .getTableRowColor(context,device.state!))), onTap: () { context.pushNamed(AppRoutes.DEVICE_DETAIL.name, pathParameters: {'thingID': device.thingId!}); }), DataCell( Text(sensorMap['sensorBattery'] + "%", style: TextStyle( - color: DeviceUtils.instance.getTableRowColor(device.state!))), + color: DeviceUtils.instance.getTableRowColor(context,device.state!))), onTap: () => context.pushNamed(AppRoutes.DEVICE_DETAIL.name, pathParameters: {'thingID': device.thingId!}), ), DataCell( Text(sensorMap['sensorCsq'], style: TextStyle( - color: DeviceUtils.instance.getTableRowColor(device.state!))), + color: DeviceUtils.instance.getTableRowColor(context,device.state!))), ), DataCell( Text("${sensorMap['sensorTemp']}°C", style: TextStyle( - color: DeviceUtils.instance.getTableRowColor(device.state!))), + color: DeviceUtils.instance.getTableRowColor(context,device.state!))), ), DataCell( Text("${sensorMap['sensorHum']}%", style: TextStyle( - color: DeviceUtils.instance.getTableRowColor(device.state!))), + color: DeviceUtils.instance.getTableRowColor(context,device.state!))), ), DataCell( Text("${sensorMap['sensorVolt']}V", style: TextStyle( - color: DeviceUtils.instance.getTableRowColor(device.state!))), + color: DeviceUtils.instance.getTableRowColor(context,device.state!))), ), DataCell( Center( @@ -354,7 +349,7 @@ class TagState extends StatelessWidget { height: context.mediumValue, width: context.dynamicWidth(0.35), decoration: BoxDecoration( - color: DeviceUtils.instance.getTableRowColor(state), + color: DeviceUtils.instance.getTableRowColor(context,state), borderRadius: BorderRadius.circular(context.mediumValue), ), child: Row( diff --git a/lib/feature/inter_family/group_detail/group_detail_screen.dart b/lib/feature/inter_family/group_detail/group_detail_screen.dart index 80f788a..8ee2552 100644 --- a/lib/feature/inter_family/group_detail/group_detail_screen.dart +++ b/lib/feature/inter_family/group_detail/group_detail_screen.dart @@ -461,7 +461,7 @@ class _DetailGroupScreenState extends State { DeviceUtils.instance.checkStateDevice( context, devices[index].state!), style: TextStyle( - color: DeviceUtils.instance.getTableRowColor( + color: DeviceUtils.instance.getTableRowColor(context, devices[index].state!, ), ), diff --git a/lib/feature/map/widget/on_tap_marker_widget.dart b/lib/feature/map/widget/on_tap_marker_widget.dart index 45c5a31..8dc8940 100644 --- a/lib/feature/map/widget/on_tap_marker_widget.dart +++ b/lib/feature/map/widget/on_tap_marker_widget.dart @@ -294,7 +294,7 @@ class DeviceSource extends DataTableSource { device.name!, style: TextStyle( color: - DeviceUtils.instance.getTableRowColor(device.state ?? -1)), + DeviceUtils.instance.getTableRowColor(context,device.state ?? -1)), ), onTap: () { mapBloc.updateCameraPosition( @@ -311,7 +311,7 @@ class DeviceSource extends DataTableSource { deviceState, style: TextStyle( color: - DeviceUtils.instance.getTableRowColor(device.state ?? -1)), + DeviceUtils.instance.getTableRowColor(context,device.state ?? -1)), ), onTap: () { mapBloc.updateCameraPosition( @@ -327,7 +327,7 @@ class DeviceSource extends DataTableSource { sensorMap['sensorBattery'] + "%", style: TextStyle( color: - DeviceUtils.instance.getTableRowColor(device.state ?? -1)), + DeviceUtils.instance.getTableRowColor(context,device.state ?? -1)), ), onTap: () { mapBloc.updateCameraPosition( @@ -343,7 +343,7 @@ class DeviceSource extends DataTableSource { sensorMap['sensorCsq'], style: TextStyle( color: - DeviceUtils.instance.getTableRowColor(device.state ?? -1)), + DeviceUtils.instance.getTableRowColor(context,device.state ?? -1)), ), onTap: () { mapBloc.updateCameraPosition( diff --git a/lib/product/utils/device_utils.dart b/lib/product/utils/device_utils.dart index 473a97a..ed45cb5 100644 --- a/lib/product/utils/device_utils.dart +++ b/lib/product/utils/device_utils.dart @@ -151,7 +151,7 @@ class DeviceUtils { return devices..sort((a, b) => (a.name ?? '').compareTo(b.name ?? '')); } - Color getTableRowColor(int state) { + Color getTableRowColor(BuildContext context, int state) { if (state == 1) { return Colors.red; } else if (state == 0) { @@ -161,7 +161,7 @@ class DeviceUtils { } else if (state == -1) { return Colors.grey; } else { - return Colors.black87; + return Theme.of(context).colorScheme.onSurface; } }