Files
syncrow-app/lib/utils/resource_manager/constants.dart
Mohammad Salameh 81625cd50e Add device icons based on device type and update network exception handling
- Add logic to set device icons based on device type in DeviceModel.fromJson method
- Update network exception handling to parse HTML response in ServerFailure class
- Add html package as a dependency for parsing HTML responses
-Added Devices Icons by updateing device types mapping
2024-04-02 15:11:20 +03:00

132 lines
4.1 KiB
Dart

//ignore_for_file: constant_identifier_names
import 'package:syncrow_app/features/devices/model/function_model.dart';
abstract class Constants {
static const String languageCode = "en";
static const String countryCode = "US";
static const double appBarHeightPercentage = 0.12;
static const double bottomNavBarHeightPercentage = 0.1175;
static late double appBarHeight;
static late double bottomNavBarHeight;
static const double defaultPadding = 16;
static const String token = '';
}
enum DeviceType {
AC,
LightBulb,
DoorLock,
Curtain,
Blind,
ThreeGang,
Gateway,
CeilingSensor,
WallSensor,
Other,
}
// Map<String, DeviceType> devicesTypesMap = {
// "AC": DeviceType.AC,
// "LB": DeviceType.LightBulb,
// "DL": DeviceType.DoorLock,
// "WC": DeviceType.Curtain,
// "WB": DeviceType.Blind,
// "3G": DeviceType.ThreeGang,
// "GW": DeviceType.Gateway,
// "CPS": DeviceType.CeilingSensor,
// "WPS": DeviceType.WallSensor,
// "Other": DeviceType.Other,
// };
//AC wzdcrqh0
// GW wp8ticoo2bhumwgb
// CPS d3ci7gcn
// DL awu7anehyu5q1iu8
// WPS awarhusb
// 3G 1a6vgvyi
Map<String, DeviceType> devicesTypesMap = {
"wzdcrqh0": DeviceType.AC,
"wp8ticoo2bhumwgb": DeviceType.Gateway,
"d3ci7gcn": DeviceType.CeilingSensor,
"awu7anehyu5q1iu8": DeviceType.DoorLock,
"awarhusb": DeviceType.WallSensor,
"1a6vgvyi": DeviceType.ThreeGang,
};
Map<DeviceType, List<FunctionModel>> devicesFunctionsMap = {
DeviceType.AC: [
FunctionModel(code: 'switch', type: 'Boolean', values: '{}'),
FunctionModel(
code: 'mode', type: 'Enum', values: '{"range":["cold","hot","wind"]}'),
FunctionModel(
code: 'temp_set',
type: 'Integer',
values: '{"unit":"℃","min":200,"max":300,"scale":1,"step":5}'),
FunctionModel(
code: 'level',
type: 'Enum',
values: '{"range":["low","middle","high","auto"]}'),
FunctionModel(code: 'child_lock', type: 'Boolean', values: '{}'),
],
DeviceType.Gateway: [
FunctionModel(code: 'switch_alarm_sound', type: 'Boolean', values: '{}'),
FunctionModel(
code: 'master_state',
type: 'Enum',
values: '{"range":["normal","alarm"]}'),
FunctionModel(code: 'factory_reset', type: 'Boolean', values: '{}'),
FunctionModel(
code: 'alarm_active', type: 'String', values: '{"maxlen":255}'),
],
DeviceType.CeilingSensor: [
FunctionModel(
code: 'sensitivity',
type: 'Integer',
values: '{"unit":"","min":1,"max":10,"scale":0,"step":1}'),
],
DeviceType.DoorLock: [
FunctionModel(code: 'remote_no_pd_setkey', type: 'Raw', values: '{}'),
FunctionModel(code: 'remote_no_dp_key', type: 'Raw', values: '{}'),
FunctionModel(code: 'normal_open_switch', type: 'Boolean', values: '{}'),
],
DeviceType.WallSensor: [
FunctionModel(
code: 'far_detection',
type: 'Integer',
values: '{"unit":"cm","min":75,"max":600,"scale":0,"step":75}'),
FunctionModel(
code: 'presence_time',
type: 'Integer',
values: '{"unit":"Min","min":0,"max":65535,"scale":0,"step":1}'),
FunctionModel(
code: 'motion_sensitivity_value',
type: 'Integer',
values: '{"unit":"","min":1,"max":5,"scale":0,"step":1}'),
FunctionModel(
code: 'motionless_sensitivity',
type: 'Integer',
values: '{"unit":"","min":1,"max":5,"scale":0,"step":1}'),
FunctionModel(code: 'indicator', type: 'Boolean', values: '{}'),
],
DeviceType.ThreeGang: [
FunctionModel(code: 'switch_1', type: 'Boolean', values: '{}'),
FunctionModel(code: 'switch_2', type: 'Boolean', values: '{}'),
FunctionModel(code: 'switch_3', type: 'Boolean', values: '{}'),
FunctionModel(
code: 'countdown_1',
type: 'Integer',
values: '{"unit":"s","min":0,"max":43200,"scale":0,"step":1}'),
FunctionModel(
code: 'countdown_2',
type: 'Integer',
values: '{"unit":"s","min":0,"max":43200,"scale":0,"step":1}'),
FunctionModel(
code: 'countdown_3',
type: 'Integer',
values: '{"unit":"s","min":0,"max":43200,"scale":0,"step":1}'),
],
};