diff --git a/assets/icons/settings_button.svg b/assets/icons/settings_button.svg
new file mode 100644
index 00000000..43cad368
--- /dev/null
+++ b/assets/icons/settings_button.svg
@@ -0,0 +1,24 @@
+
diff --git a/lib/pages/common/custom_table.dart b/lib/pages/common/custom_table.dart
index 0abe075b..f23daa45 100644
--- a/lib/pages/common/custom_table.dart
+++ b/lib/pages/common/custom_table.dart
@@ -162,31 +162,34 @@ class _DynamicTableState extends State {
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
controller: _horizontalBodyScrollController,
- child: SizedBox(
- width: widget.size.width,
- child: widget.isEmpty
- ? _buildEmptyState()
- : Column(
- children:
- List.generate(widget.data.length, (rowIndex) {
- final row = widget.data[rowIndex];
- return Row(
- children: [
- if (widget.withCheckBox)
- _buildRowCheckbox(
- rowIndex, widget.size.height * 0.08),
- ...row.asMap().entries.map((entry) {
- return _buildTableCell(
- entry.value.toString(),
- widget.size.height * 0.08,
- rowIndex: rowIndex,
- columnIndex: entry.key,
- );
- }).toList(),
- ],
- );
- }),
- ),
+ child: Container(
+ color: ColorsManager.whiteColors,
+ child: SizedBox(
+ width: widget.size.width,
+ child: widget.isEmpty
+ ? _buildEmptyState()
+ : Column(
+ children: List.generate(widget.data.length,
+ (rowIndex) {
+ final row = widget.data[rowIndex];
+ return Row(
+ children: [
+ if (widget.withCheckBox)
+ _buildRowCheckbox(rowIndex,
+ widget.size.height * 0.08),
+ ...row.asMap().entries.map((entry) {
+ return _buildTableCell(
+ entry.value.toString(),
+ widget.size.height * 0.08,
+ rowIndex: rowIndex,
+ columnIndex: entry.key,
+ );
+ }).toList(),
+ ],
+ );
+ }),
+ ),
+ ),
),
),
),
@@ -211,7 +214,6 @@ class _DynamicTableState extends State {
onChanged: widget.withSelectAll && widget.data.isNotEmpty
? _toggleSelectAll
: null,
-
),
);
}
@@ -282,7 +284,6 @@ class _DynamicTableState extends State {
padding: EdgeInsets.symmetric(
horizontal: index == widget.headers.length - 1 ? 12 : 8.0,
vertical: 4),
-
child: Text(
title,
style: context.textTheme.titleSmall!.copyWith(
@@ -303,7 +304,6 @@ class _DynamicTableState extends State {
required int rowIndex,
required int columnIndex,
}) {
-
bool isBatteryLevel = content.endsWith('%');
double? batteryLevel;
@@ -313,9 +313,13 @@ class _DynamicTableState extends State {
bool isSettingsColumn = widget.headers[columnIndex] == 'Settings';
if (isSettingsColumn) {
- return _buildSettingsIcon(rowIndex, size);
+ return buildSettingsIcon(
+ width: 120,
+ height: 60,
+ iconSize: 40,
+ onTap: () => widget.onSettingsPressed?.call(rowIndex),
+ );
}
-
Color? statusColor;
switch (content) {
@@ -368,22 +372,63 @@ class _DynamicTableState extends State {
);
}
- Widget _buildSettingsIcon(int rowIndex, double size) {
- return Container(
- height: size,
- width: 120,
- padding: const EdgeInsets.all(5.0),
- decoration: const BoxDecoration(
- border: Border(
- bottom: BorderSide(color: ColorsManager.boxDivider, width: 1.0),
+ Widget buildSettingsIcon(
+ {double width = 120,
+ double height = 60,
+ double iconSize = 40,
+ VoidCallback? onTap}) {
+ return Column(
+ children: [
+ Container(
+ padding: const EdgeInsets.only(top: 10, bottom: 15, left: 10),
+ margin: const EdgeInsets.only(right: 15),
+ decoration: const BoxDecoration(
+ color: ColorsManager.whiteColors,
+ border: Border(
+ bottom: BorderSide(
+ color: ColorsManager.boxDivider,
+ width: 1.0,
+ ),
+ ),
+ ),
+ width: width,
+ child: Padding(
+ padding: const EdgeInsets.only(
+ right: 16.0,
+ left: 17.0,
+ ),
+ child: Container(
+ width: 50,
+ decoration: BoxDecoration(
+ color: const Color(0xFFF7F8FA),
+ borderRadius: BorderRadius.circular(height / 2),
+ boxShadow: [
+ BoxShadow(
+ color: Colors.black.withOpacity(0.17),
+ blurRadius: 14,
+ offset: const Offset(0, 4),
+ ),
+ ],
+ ),
+ child: InkWell(
+ onTap: onTap,
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Center(
+ child: SvgPicture.asset(
+ Assets.settings, // ضع المسار الصحيح هنا
+ width: 40,
+ height: 22,
+ color: ColorsManager
+ .primaryColor, // نفس لون الأيقونة في الصورة
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
),
- color: Colors.white,
- ),
- alignment: Alignment.center,
- child: IconButton(
- icon: SvgPicture.asset(Assets.settings),
- onPressed: () => widget.onSettingsPressed?.call(rowIndex),
- ),
+ ],
);
}
}
diff --git a/lib/utils/constants/assets.dart b/lib/utils/constants/assets.dart
index 5eb0eb05..dfc0b394 100644
--- a/lib/utils/constants/assets.dart
+++ b/lib/utils/constants/assets.dart
@@ -14,7 +14,8 @@ class Assets {
static const String rightLine = "assets/images/right_line.png";
static const String google = "assets/images/google.svg";
static const String facebook = "assets/images/facebook.svg";
- static const String invisiblePassword = "assets/images/Password_invisible.svg";
+ static const String invisiblePassword =
+ "assets/images/Password_invisible.svg";
static const String visiblePassword = "assets/images/password_visible.svg";
static const String accessIcon = "assets/images/access_icon.svg";
static const String spaseManagementIcon =
@@ -33,7 +34,8 @@ class Assets {
static const String emptyTable = "assets/images/empty_table.svg";
// General assets
- static const String motionlessDetection = "assets/icons/motionless_detection.svg";
+ static const String motionlessDetection =
+ "assets/icons/motionless_detection.svg";
static const String acHeating = "assets/icons/ac_heating.svg";
static const String acPowerOff = "assets/icons/ac_power_off.svg";
static const String acFanMiddle = "assets/icons/ac_fan_middle.svg";
@@ -70,19 +72,22 @@ class Assets {
"assets/icons/automation_functions/temp_password_unlock.svg";
static const String doorlockNormalOpen =
"assets/icons/automation_functions/doorlock_normal_open.svg";
- static const String doorbell = "assets/icons/automation_functions/doorbell.svg";
+ static const String doorbell =
+ "assets/icons/automation_functions/doorbell.svg";
static const String remoteUnlockViaApp =
"assets/icons/automation_functions/remote_unlock_via_app.svg";
static const String doubleLock =
"assets/icons/automation_functions/double_lock.svg";
static const String selfTestResult =
"assets/icons/automation_functions/self_test_result.svg";
- static const String lockAlarm = "assets/icons/automation_functions/lock_alarm.svg";
+ static const String lockAlarm =
+ "assets/icons/automation_functions/lock_alarm.svg";
static const String presenceState =
"assets/icons/automation_functions/presence_state.svg";
static const String currentTemp =
"assets/icons/automation_functions/current_temp.svg";
- static const String presence = "assets/icons/automation_functions/presence.svg";
+ static const String presence =
+ "assets/icons/automation_functions/presence.svg";
static const String residualElectricity =
"assets/icons/automation_functions/residual_electricity.svg";
static const String hijackAlarm =
@@ -99,12 +104,15 @@ class Assets {
// Presence Sensor Assets
static const String sensorMotionIcon = "assets/icons/sensor_motion_ic.svg";
- static const String sensorPresenceIcon = "assets/icons/sensor_presence_ic.svg";
+ static const String sensorPresenceIcon =
+ "assets/icons/sensor_presence_ic.svg";
static const String sensorVacantIcon = "assets/icons/sensor_vacant_ic.svg";
static const String illuminanceRecordIcon =
"assets/icons/illuminance_record_ic.svg";
- static const String presenceRecordIcon = "assets/icons/presence_record_ic.svg";
- static const String helpDescriptionIcon = "assets/icons/help_description_ic.svg";
+ static const String presenceRecordIcon =
+ "assets/icons/presence_record_ic.svg";
+ static const String helpDescriptionIcon =
+ "assets/icons/help_description_ic.svg";
static const String lightPulp = "assets/icons/light_pulb.svg";
static const String acDevice = "assets/icons/ac_device.svg";
@@ -154,10 +162,12 @@ class Assets {
static const String unit = 'assets/icons/unit_icon.svg';
static const String villa = 'assets/icons/villa_icon.svg';
static const String iconEdit = 'assets/icons/icon_edit_icon.svg';
- static const String textFieldSearch = 'assets/icons/textfield_search_icon.svg';
+ static const String textFieldSearch =
+ 'assets/icons/textfield_search_icon.svg';
static const String roundedAddIcon = 'assets/icons/rounded_add_icon.svg';
static const String addIcon = 'assets/icons/add_icon.svg';
- static const String smartThermostatIcon = 'assets/icons/smart_thermostat_icon.svg';
+ static const String smartThermostatIcon =
+ 'assets/icons/smart_thermostat_icon.svg';
static const String smartLightIcon = 'assets/icons/smart_light_icon.svg';
static const String presenceSensor = 'assets/icons/presence_sensor.svg';
static const String Gang3SwitchIcon = 'assets/icons/3_Gang_switch_icon.svg';
@@ -205,7 +215,8 @@ class Assets {
//assets/icons/water_leak_normal.svg
static const String waterLeakNormal = 'assets/icons/water_leak_normal.svg';
//assets/icons/water_leak_detected.svg
- static const String waterLeakDetected = 'assets/icons/water_leak_detected.svg';
+ static const String waterLeakDetected =
+ 'assets/icons/water_leak_detected.svg';
//assets/icons/automation_records.svg
static const String automationRecords = 'assets/icons/automation_records.svg';
@@ -276,13 +287,16 @@ class Assets {
"assets/icons/functions_icons/sensitivity.svg";
static const String assetsSensitivityOperationIcon =
"assets/icons/functions_icons/sesitivity_operation_icon.svg";
- static const String assetsAcPower = "assets/icons/functions_icons/ac_power.svg";
+ static const String assetsAcPower =
+ "assets/icons/functions_icons/ac_power.svg";
static const String assetsAcPowerOFF =
"assets/icons/functions_icons/ac_power_off.svg";
static const String assetsChildLock =
"assets/icons/functions_icons/child_lock.svg";
- static const String assetsFreezing = "assets/icons/functions_icons/freezing.svg";
- static const String assetsFanSpeed = "assets/icons/functions_icons/fan_speed.svg";
+ static const String assetsFreezing =
+ "assets/icons/functions_icons/freezing.svg";
+ static const String assetsFanSpeed =
+ "assets/icons/functions_icons/fan_speed.svg";
static const String assetsAcCooling =
"assets/icons/functions_icons/ac_cooling.svg";
static const String assetsAcHeating =
@@ -291,7 +305,8 @@ class Assets {
"assets/icons/functions_icons/celsius_degrees.svg";
static const String assetsTempreture =
"assets/icons/functions_icons/tempreture.svg";
- static const String assetsAcFanLow = "assets/icons/functions_icons/ac_fan_low.svg";
+ static const String assetsAcFanLow =
+ "assets/icons/functions_icons/ac_fan_low.svg";
static const String assetsAcFanMiddle =
"assets/icons/functions_icons/ac_fan_middle.svg";
static const String assetsAcFanHigh =
@@ -310,7 +325,8 @@ class Assets {
"assets/icons/functions_icons/far_detection.svg";
static const String assetsFarDetectionFunction =
"assets/icons/functions_icons/far_detection_function.svg";
- static const String assetsIndicator = "assets/icons/functions_icons/indicator.svg";
+ static const String assetsIndicator =
+ "assets/icons/functions_icons/indicator.svg";
static const String assetsMotionDetection =
"assets/icons/functions_icons/motion_detection.svg";
static const String assetsMotionlessDetection =
@@ -323,7 +339,8 @@ class Assets {
"assets/icons/functions_icons/master_state.svg";
static const String assetsSwitchAlarmSound =
"assets/icons/functions_icons/switch_alarm_sound.svg";
- static const String assetsResetOff = "assets/icons/functions_icons/reset_off.svg";
+ static const String assetsResetOff =
+ "assets/icons/functions_icons/reset_off.svg";
// Assets for automation_functions
static const String assetsCardUnlock =
@@ -367,12 +384,14 @@ class Assets {
static const String activeUser = 'assets/icons/active_user.svg';
static const String deActiveUser = 'assets/icons/deactive_user.svg';
static const String invitedIcon = 'assets/icons/invited_icon.svg';
- static const String rectangleCheckBox = 'assets/icons/rectangle_check_box.png';
+ static const String rectangleCheckBox =
+ 'assets/icons/rectangle_check_box.png';
static const String CheckBoxChecked = 'assets/icons/box_checked.png';
static const String emptyBox = 'assets/icons/empty_box.png';
static const String completeProcessIcon =
'assets/icons/compleate_process_icon.svg';
- static const String currentProcessIcon = 'assets/icons/current_process_icon.svg';
+ static const String currentProcessIcon =
+ 'assets/icons/current_process_icon.svg';
static const String uncomplete_ProcessIcon =
'assets/icons/uncompleate_process_icon.svg';
static const String wrongProcessIcon = 'assets/icons/wrong_process_icon.svg';
@@ -393,9 +412,11 @@ class Assets {
static const String successIcon = 'assets/icons/success_icon.svg';
static const String spaceLocationIcon = 'assets/icons/spaseLocationIcon.svg';
static const String scenesPlayIcon = 'assets/icons/scenesPlayIcon.png';
- static const String scenesPlayIconCheck = 'assets/icons/scenesPlayIconCheck.png';
+ static const String scenesPlayIconCheck =
+ 'assets/icons/scenesPlayIconCheck.png';
static const String presenceStateIcon = 'assets/icons/presence_state.svg';
- static const String currentDistanceIcon = 'assets/icons/current_distance_icon.svg';
+ static const String currentDistanceIcon =
+ 'assets/icons/current_distance_icon.svg';
static const String farDetectionIcon = 'assets/icons/far_detection_icon.svg';
static const String motionDetectionSensitivityIcon =
@@ -418,29 +439,44 @@ class Assets {
static const String cpsMode4 = 'assets/icons/cps_mode4.svg';
static const String closeToMotion = 'assets/icons/close_to_motion.svg';
static const String farAwayMotion = 'assets/icons/far_away_motion.svg';
- static const String communicationFault = 'assets/icons/communication_fault.svg';
+ static const String communicationFault =
+ 'assets/icons/communication_fault.svg';
static const String radarFault = 'assets/icons/radar_fault.svg';
- static const String selfTestingSuccess = 'assets/icons/self_testing_success.svg';
- static const String selfTestingFailure = 'assets/icons/self_testing_failure.svg';
- static const String selfTestingTimeout = 'assets/icons/self_testing_timeout.svg';
+ static const String selfTestingSuccess =
+ 'assets/icons/self_testing_success.svg';
+ static const String selfTestingFailure =
+ 'assets/icons/self_testing_failure.svg';
+ static const String selfTestingTimeout =
+ 'assets/icons/self_testing_timeout.svg';
static const String movingSpeed = 'assets/icons/moving_speed.svg';
static const String boundary = 'assets/icons/boundary.svg';
static const String motionMeter = 'assets/icons/motion_meter.svg';
- static const String spatialStaticValue = 'assets/icons/spatial_static_value.svg';
- static const String spatialMotionValue = 'assets/icons/spatial_motion_value.svg';
+ static const String spatialStaticValue =
+ 'assets/icons/spatial_static_value.svg';
+ static const String spatialMotionValue =
+ 'assets/icons/spatial_motion_value.svg';
static const String presenceJudgementThrshold =
'assets/icons/presence_judgement_threshold.svg';
static const String spaceType = 'assets/icons/space_type.svg';
static const String sportsPara = 'assets/icons/sports_para.svg';
- static const String sensitivityFeature1 = 'assets/icons/sensitivity_feature_1.svg';
- static const String sensitivityFeature2 = 'assets/icons/sensitivity_feature_2.svg';
- static const String sensitivityFeature3 = 'assets/icons/sensitivity_feature_3.svg';
- static const String sensitivityFeature4 = 'assets/icons/sensitivity_feature_4.svg';
- static const String sensitivityFeature5 = 'assets/icons/sensitivity_feature_5.svg';
- static const String sensitivityFeature6 = 'assets/icons/sensitivity_feature_6.svg';
- static const String sensitivityFeature7 = 'assets/icons/sensitivity_feature_7.svg';
- static const String sensitivityFeature8 = 'assets/icons/sensitivity_feature_8.svg';
- static const String sensitivityFeature9 = 'assets/icons/sensitivity_feature_9.svg';
+ static const String sensitivityFeature1 =
+ 'assets/icons/sensitivity_feature_1.svg';
+ static const String sensitivityFeature2 =
+ 'assets/icons/sensitivity_feature_2.svg';
+ static const String sensitivityFeature3 =
+ 'assets/icons/sensitivity_feature_3.svg';
+ static const String sensitivityFeature4 =
+ 'assets/icons/sensitivity_feature_4.svg';
+ static const String sensitivityFeature5 =
+ 'assets/icons/sensitivity_feature_5.svg';
+ static const String sensitivityFeature6 =
+ 'assets/icons/sensitivity_feature_6.svg';
+ static const String sensitivityFeature7 =
+ 'assets/icons/sensitivity_feature_7.svg';
+ static const String sensitivityFeature8 =
+ 'assets/icons/sensitivity_feature_8.svg';
+ static const String sensitivityFeature9 =
+ 'assets/icons/sensitivity_feature_9.svg';
static const String deviceTagIcon = 'assets/icons/device_tag_ic.svg';
static const String targetConfirmTimeIcon =
'assets/icons/target_confirm_time_icon.svg';