part of '../../main.dart'; class VacuumEntity extends Entity { static const SUPPORT_TURN_ON = 1; static const SUPPORT_TURN_OFF = 2; static const SUPPORT_PAUSE = 4; static const SUPPORT_STOP = 8; static const SUPPORT_RETURN_HOME = 16; static const SUPPORT_FAN_SPEED = 32; static const SUPPORT_BATTERY = 64; static const SUPPORT_STATUS = 128; static const SUPPORT_SEND_COMMAND = 256; static const SUPPORT_LOCATE = 512; static const SUPPORT_CLEAN_SPOT = 1024; static const SUPPORT_MAP = 2048; static const SUPPORT_STATE = 4096; static const SUPPORT_START = 8192; VacuumEntity(Map rawData, String webHost) : super(rawData, webHost); bool get supportTurnOn => ((supportedFeatures & VacuumEntity.SUPPORT_TURN_ON) == VacuumEntity.SUPPORT_TURN_ON); bool get supportTurnOff => ((supportedFeatures & VacuumEntity.SUPPORT_TURN_OFF) == VacuumEntity.SUPPORT_TURN_OFF); bool get supportPause => ((supportedFeatures & VacuumEntity.SUPPORT_PAUSE) == VacuumEntity.SUPPORT_PAUSE); bool get supportStop => ((supportedFeatures & VacuumEntity.SUPPORT_STOP) == VacuumEntity.SUPPORT_STOP); bool get supportReturnHome => ((supportedFeatures & VacuumEntity.SUPPORT_RETURN_HOME) == VacuumEntity.SUPPORT_RETURN_HOME); bool get supportFanSpeed => ((supportedFeatures & VacuumEntity.SUPPORT_FAN_SPEED) == VacuumEntity.SUPPORT_FAN_SPEED); bool get supportBattery => ((supportedFeatures & VacuumEntity.SUPPORT_BATTERY) == VacuumEntity.SUPPORT_BATTERY); bool get supportStatus => ((supportedFeatures & VacuumEntity.SUPPORT_STATUS) == VacuumEntity.SUPPORT_STATUS); bool get supportSendCommand => ((supportedFeatures & VacuumEntity.SUPPORT_SEND_COMMAND) == VacuumEntity.SUPPORT_SEND_COMMAND); bool get supportLocate => ((supportedFeatures & VacuumEntity.SUPPORT_LOCATE) == VacuumEntity.SUPPORT_LOCATE); bool get supportCleanSpot => ((supportedFeatures & VacuumEntity.SUPPORT_CLEAN_SPOT) == VacuumEntity.SUPPORT_CLEAN_SPOT); bool get supportMap => ((supportedFeatures & VacuumEntity.SUPPORT_MAP) == VacuumEntity.SUPPORT_MAP); bool get supportState => ((supportedFeatures & VacuumEntity.SUPPORT_STATE) == VacuumEntity.SUPPORT_STATE); bool get supportStart => ((supportedFeatures & VacuumEntity.SUPPORT_START) == VacuumEntity.SUPPORT_START); List get fanSpeedList => getStringListAttributeValue("fan_speed_list"); String get fanSpeed => getAttribute("fan_speed"); String get status => getAttribute("status"); int get batteryLevel => _getIntAttributeValue("battery_level"); String get batteryIcon => getAttribute("battery_icon"); double get cleanedArea => _getDoubleAttributeValue("cleaned_area"); @override Widget _buildStatePart(BuildContext context) { if (supportTurnOn || supportTurnOff) { return SwitchStateWidget( domainForService: "vacuum", ); } else { return SimpleEntityState(); } } @override Widget _buildStatePartForPage(BuildContext context) { return EntityModel( entityWrapper: EntityWrapper( entity: this ), child: VacuumStateButton(), handleTap: false, ); } @override Widget _buildAdditionalControlsForPage(BuildContext context) { return VacuumControls(); } }