From 798d1130baed9999dda58d32c8d97c3543f0fc83 Mon Sep 17 00:00:00 2001 From: Matt Pietal Date: Mon, 1 Jun 2020 09:47:42 -0400 Subject: [PATCH] Controls UI - Animated icons Use StateListDrawable to handle state and animation changes for all default icons Fixes: 154116758 Test: manual Change-Id: Iee315f30c32905a365b3c2154f85a6b3b485a71d --- .../res/drawable/ic_device_air_freshener.xml | 27 ++ .../res/drawable/ic_device_air_purifier.xml | 27 ++ .../res/drawable/ic_device_blinds.xml | 35 ++ .../drawable/ic_device_blinds_off_anim.xml | 140 ++++++++ .../res/drawable/ic_device_blinds_on_anim.xml | 141 ++++++++ .../res/drawable/ic_device_camera.xml | 35 ++ .../drawable/ic_device_camera_off_anim.xml | 58 ++++ .../res/drawable/ic_device_camera_on_anim.xml | 60 ++++ .../res/drawable/ic_device_cooking.xml | 27 ++ .../res/drawable/ic_device_dishwasher.xml | 27 ++ .../res/drawable/ic_device_display.xml | 27 ++ .../SystemUI/res/drawable/ic_device_door.xml | 27 ++ .../res/drawable/ic_device_doorbell.xml | 27 ++ .../res/drawable/ic_device_drawer.xml | 27 ++ .../SystemUI/res/drawable/ic_device_fan.xml | 35 ++ .../res/drawable/ic_device_fan_off_anim.xml | 91 ++++++ .../res/drawable/ic_device_fan_on_anim.xml | 80 +++++ .../res/drawable/ic_device_garage.xml | 35 ++ .../drawable/ic_device_garage_off_anim.xml | 290 +++++++++++++++++ .../res/drawable/ic_device_garage_on_anim.xml | 295 +++++++++++++++++ .../SystemUI/res/drawable/ic_device_gate.xml | 27 ++ .../SystemUI/res/drawable/ic_device_hood.xml | 27 ++ .../res/drawable/ic_device_kettle.xml | 27 ++ .../SystemUI/res/drawable/ic_device_light.xml | 35 ++ .../res/drawable/ic_device_light_off_anim.xml | 65 ++++ .../res/drawable/ic_device_light_on_anim.xml | 58 ++++ .../SystemUI/res/drawable/ic_device_lock.xml | 35 ++ .../res/drawable/ic_device_lock_off_anim.xml | 164 ++++++++++ .../res/drawable/ic_device_lock_on_anim.xml | 159 ++++++++++ .../res/drawable/ic_device_microwave.xml | 27 ++ .../SystemUI/res/drawable/ic_device_mop.xml | 27 ++ .../res/drawable/ic_device_multicooker.xml | 27 ++ .../res/drawable/ic_device_outdoor_garden.xml | 27 ++ .../res/drawable/ic_device_outlet.xml | 35 ++ .../drawable/ic_device_outlet_off_anim.xml | 86 +++++ .../res/drawable/ic_device_outlet_on_anim.xml | 107 +++++++ .../res/drawable/ic_device_pergola.xml | 27 ++ .../res/drawable/ic_device_refrigerator.xml | 27 ++ .../res/drawable/ic_device_remote_control.xml | 27 ++ .../drawable/ic_device_security_system.xml | 35 ++ .../ic_device_security_system_off_anim.xml | 91 ++++++ .../ic_device_security_system_on_anim.xml | 91 ++++++ .../res/drawable/ic_device_set_top.xml | 27 ++ .../res/drawable/ic_device_sprinkler.xml | 27 ++ .../res/drawable/ic_device_styler.xml | 27 ++ .../res/drawable/ic_device_switch.xml | 35 ++ .../drawable/ic_device_switch_off_anim.xml | 106 +++++++ .../res/drawable/ic_device_switch_on_anim.xml | 106 +++++++ .../res/drawable/ic_device_thermostat.xml | 35 ++ .../ic_device_thermostat_off_anim.xml | 56 ++++ .../drawable/ic_device_thermostat_on_anim.xml | 56 ++++ .../SystemUI/res/drawable/ic_device_tv.xml | 35 ++ .../res/drawable/ic_device_tv_off_anim.xml | 56 ++++ .../res/drawable/ic_device_tv_on_anim.xml | 56 ++++ .../res/drawable/ic_device_unknown.xml | 27 ++ .../res/drawable/ic_device_vacuum.xml | 35 ++ .../drawable/ic_device_vacuum_off_anim.xml | 72 +++++ .../res/drawable/ic_device_vacuum_on_anim.xml | 72 +++++ .../SystemUI/res/drawable/ic_device_valve.xml | 27 ++ .../res/drawable/ic_device_washer.xml | 27 ++ .../SystemUI/res/drawable/ic_device_water.xml | 27 ++ .../res/drawable/ic_device_water_heater.xml | 27 ++ .../res/drawable/ic_device_window.xml | 27 ++ .../controls/management/ControlAdapter.kt | 2 +- .../management/ControlsRequestDialog.kt | 2 +- .../systemui/controls/ui/ControlViewHolder.kt | 18 +- .../systemui/controls/ui/RenderInfo.kt | 300 ++++-------------- 67 files changed, 3784 insertions(+), 243 deletions(-) create mode 100644 packages/SystemUI/res/drawable/ic_device_air_freshener.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_air_purifier.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_blinds.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_blinds_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_blinds_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_camera.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_camera_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_camera_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_cooking.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_dishwasher.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_display.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_door.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_doorbell.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_drawer.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_fan.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_fan_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_fan_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_garage.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_garage_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_garage_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_gate.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_hood.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_kettle.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_light.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_light_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_light_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_lock.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_lock_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_lock_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_microwave.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_mop.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_multicooker.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_outdoor_garden.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_outlet.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_outlet_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_outlet_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_pergola.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_refrigerator.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_remote_control.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_security_system.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_security_system_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_security_system_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_set_top.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_sprinkler.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_styler.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_switch.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_switch_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_switch_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_thermostat.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_thermostat_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_thermostat_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_tv.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_tv_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_tv_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_unknown.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_vacuum.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_vacuum_off_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_vacuum_on_anim.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_valve.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_washer.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_water.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_water_heater.xml create mode 100644 packages/SystemUI/res/drawable/ic_device_window.xml diff --git a/packages/SystemUI/res/drawable/ic_device_air_freshener.xml b/packages/SystemUI/res/drawable/ic_device_air_freshener.xml new file mode 100644 index 0000000000000..5050223302b32 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_air_freshener.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_air_purifier.xml b/packages/SystemUI/res/drawable/ic_device_air_purifier.xml new file mode 100644 index 0000000000000..7de46bf24be4b --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_air_purifier.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_blinds.xml b/packages/SystemUI/res/drawable/ic_device_blinds.xml new file mode 100644 index 0000000000000..104da7e668876 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_blinds.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_blinds_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_blinds_off_anim.xml new file mode 100644 index 0000000000000..1eaccf58ac9f5 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_blinds_off_anim.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_blinds_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_blinds_on_anim.xml new file mode 100644 index 0000000000000..de87f8112a9b7 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_blinds_on_anim.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_camera.xml b/packages/SystemUI/res/drawable/ic_device_camera.xml new file mode 100644 index 0000000000000..a76142ab2cc12 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_camera.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_camera_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_camera_off_anim.xml new file mode 100644 index 0000000000000..32d1a0eb755aa --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_camera_off_anim.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_camera_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_camera_on_anim.xml new file mode 100644 index 0000000000000..1a1a3ffe48555 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_camera_on_anim.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_cooking.xml b/packages/SystemUI/res/drawable/ic_device_cooking.xml new file mode 100644 index 0000000000000..e3922e2f11ea3 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_cooking.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_dishwasher.xml b/packages/SystemUI/res/drawable/ic_device_dishwasher.xml new file mode 100644 index 0000000000000..cc7f7f98d07e5 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_dishwasher.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_display.xml b/packages/SystemUI/res/drawable/ic_device_display.xml new file mode 100644 index 0000000000000..9a2ee2995de81 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_display.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_door.xml b/packages/SystemUI/res/drawable/ic_device_door.xml new file mode 100644 index 0000000000000..367f97f2d3eea --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_door.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_doorbell.xml b/packages/SystemUI/res/drawable/ic_device_doorbell.xml new file mode 100644 index 0000000000000..6f96a1b719d32 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_doorbell.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_drawer.xml b/packages/SystemUI/res/drawable/ic_device_drawer.xml new file mode 100644 index 0000000000000..0f86f90d997a1 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_drawer.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_fan.xml b/packages/SystemUI/res/drawable/ic_device_fan.xml new file mode 100644 index 0000000000000..34dc712ace65e --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_fan.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_fan_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_fan_off_anim.xml new file mode 100644 index 0000000000000..189d85a70f790 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_fan_off_anim.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_fan_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_fan_on_anim.xml new file mode 100644 index 0000000000000..5987b076ca701 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_fan_on_anim.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_garage.xml b/packages/SystemUI/res/drawable/ic_device_garage.xml new file mode 100644 index 0000000000000..9a31f332fd3eb --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_garage.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_garage_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_garage_off_anim.xml new file mode 100644 index 0000000000000..1a5bd286fde8c --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_garage_off_anim.xml @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_garage_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_garage_on_anim.xml new file mode 100644 index 0000000000000..a1999e03436de --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_garage_on_anim.xml @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_gate.xml b/packages/SystemUI/res/drawable/ic_device_gate.xml new file mode 100644 index 0000000000000..8fbf08bfeb48e --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_gate.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_hood.xml b/packages/SystemUI/res/drawable/ic_device_hood.xml new file mode 100644 index 0000000000000..e376db872884d --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_hood.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_kettle.xml b/packages/SystemUI/res/drawable/ic_device_kettle.xml new file mode 100644 index 0000000000000..81ea3901e9dec --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_kettle.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_light.xml b/packages/SystemUI/res/drawable/ic_device_light.xml new file mode 100644 index 0000000000000..ebd6c18b96991 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_light.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_light_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_light_off_anim.xml new file mode 100644 index 0000000000000..213aa4e4413a9 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_light_off_anim.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_light_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_light_on_anim.xml new file mode 100644 index 0000000000000..bb9c58bf99589 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_light_on_anim.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_lock.xml b/packages/SystemUI/res/drawable/ic_device_lock.xml new file mode 100644 index 0000000000000..d291ba452852a --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_lock.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_lock_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_lock_off_anim.xml new file mode 100644 index 0000000000000..321bf1033fec5 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_lock_off_anim.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_lock_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_lock_on_anim.xml new file mode 100644 index 0000000000000..3c19a7b24794a --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_lock_on_anim.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_microwave.xml b/packages/SystemUI/res/drawable/ic_device_microwave.xml new file mode 100644 index 0000000000000..59d9284ac552d --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_microwave.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_mop.xml b/packages/SystemUI/res/drawable/ic_device_mop.xml new file mode 100644 index 0000000000000..7b36078c31982 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_mop.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_multicooker.xml b/packages/SystemUI/res/drawable/ic_device_multicooker.xml new file mode 100644 index 0000000000000..8c9f60836eb5f --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_multicooker.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_outdoor_garden.xml b/packages/SystemUI/res/drawable/ic_device_outdoor_garden.xml new file mode 100644 index 0000000000000..a6cb2d8cbd044 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_outdoor_garden.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_outlet.xml b/packages/SystemUI/res/drawable/ic_device_outlet.xml new file mode 100644 index 0000000000000..17f140e71ffaa --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_outlet.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_outlet_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_outlet_off_anim.xml new file mode 100644 index 0000000000000..85d645ebb3833 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_outlet_off_anim.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_outlet_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_outlet_on_anim.xml new file mode 100644 index 0000000000000..756f0282e9a4e --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_outlet_on_anim.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_pergola.xml b/packages/SystemUI/res/drawable/ic_device_pergola.xml new file mode 100644 index 0000000000000..347ed3df6d55b --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_pergola.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_refrigerator.xml b/packages/SystemUI/res/drawable/ic_device_refrigerator.xml new file mode 100644 index 0000000000000..d9d73a3e30bdc --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_refrigerator.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_remote_control.xml b/packages/SystemUI/res/drawable/ic_device_remote_control.xml new file mode 100644 index 0000000000000..a950238899d2e --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_remote_control.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_security_system.xml b/packages/SystemUI/res/drawable/ic_device_security_system.xml new file mode 100644 index 0000000000000..a607c108ab5b3 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_security_system.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_security_system_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_security_system_off_anim.xml new file mode 100644 index 0000000000000..5d6c014c7b444 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_security_system_off_anim.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_security_system_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_security_system_on_anim.xml new file mode 100644 index 0000000000000..445c6758dc411 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_security_system_on_anim.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_set_top.xml b/packages/SystemUI/res/drawable/ic_device_set_top.xml new file mode 100644 index 0000000000000..23a58c1b1a16b --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_set_top.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_sprinkler.xml b/packages/SystemUI/res/drawable/ic_device_sprinkler.xml new file mode 100644 index 0000000000000..e1a1e0460f358 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_sprinkler.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_styler.xml b/packages/SystemUI/res/drawable/ic_device_styler.xml new file mode 100644 index 0000000000000..4862905590917 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_styler.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_switch.xml b/packages/SystemUI/res/drawable/ic_device_switch.xml new file mode 100644 index 0000000000000..554612d4b4b30 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_switch.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_switch_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_switch_off_anim.xml new file mode 100644 index 0000000000000..ecfc5c1635dfc --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_switch_off_anim.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_switch_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_switch_on_anim.xml new file mode 100644 index 0000000000000..bd2851970b4f7 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_switch_on_anim.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_thermostat.xml b/packages/SystemUI/res/drawable/ic_device_thermostat.xml new file mode 100644 index 0000000000000..f73387dcbbd7e --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_thermostat.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_thermostat_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_thermostat_off_anim.xml new file mode 100644 index 0000000000000..28ac6150ee634 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_thermostat_off_anim.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_thermostat_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_thermostat_on_anim.xml new file mode 100644 index 0000000000000..36acf3359aa8b --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_thermostat_on_anim.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_tv.xml b/packages/SystemUI/res/drawable/ic_device_tv.xml new file mode 100644 index 0000000000000..4baf8a11b5ebb --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_tv.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_tv_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_tv_off_anim.xml new file mode 100644 index 0000000000000..0f5a5f5fd1998 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_tv_off_anim.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_tv_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_tv_on_anim.xml new file mode 100644 index 0000000000000..0bd7cf2c526ef --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_tv_on_anim.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_unknown.xml b/packages/SystemUI/res/drawable/ic_device_unknown.xml new file mode 100644 index 0000000000000..b8bfe242277e6 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_unknown.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_vacuum.xml b/packages/SystemUI/res/drawable/ic_device_vacuum.xml new file mode 100644 index 0000000000000..cbe42b9d12aa3 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_vacuum.xml @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_vacuum_off_anim.xml b/packages/SystemUI/res/drawable/ic_device_vacuum_off_anim.xml new file mode 100644 index 0000000000000..7e2d1df3357a6 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_vacuum_off_anim.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_vacuum_on_anim.xml b/packages/SystemUI/res/drawable/ic_device_vacuum_on_anim.xml new file mode 100644 index 0000000000000..3c101d3c123a4 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_vacuum_on_anim.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_valve.xml b/packages/SystemUI/res/drawable/ic_device_valve.xml new file mode 100644 index 0000000000000..ce8342a153dd2 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_valve.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_washer.xml b/packages/SystemUI/res/drawable/ic_device_washer.xml new file mode 100644 index 0000000000000..5cc82d9cb1f9c --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_washer.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_water.xml b/packages/SystemUI/res/drawable/ic_device_water.xml new file mode 100644 index 0000000000000..2ec76dffc2f46 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_water.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_water_heater.xml b/packages/SystemUI/res/drawable/ic_device_water_heater.xml new file mode 100644 index 0000000000000..71eddf9eaca30 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_water_heater.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_device_window.xml b/packages/SystemUI/res/drawable/ic_device_window.xml new file mode 100644 index 0000000000000..4ec61c1bb3723 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_device_window.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt index 2f917107cc231..26124f7f32854 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt @@ -251,7 +251,7 @@ internal class ControlHolder( component: ComponentName, @DeviceTypes.DeviceType deviceType: Int ): RenderInfo { - return RenderInfo.lookup(itemView.context, component, deviceType, true) + return RenderInfo.lookup(itemView.context, component, deviceType) } private fun applyRenderInfo(ri: RenderInfo) { diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsRequestDialog.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsRequestDialog.kt index 9b8c036659cd4..15d15e8ffbc73 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsRequestDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsRequestDialog.kt @@ -136,7 +136,7 @@ class ControlsRequestDialog @Inject constructor( } fun createDialog(label: CharSequence): Dialog { - val renderInfo = RenderInfo.lookup(this, component, control.deviceType, true) + val renderInfo = RenderInfo.lookup(this, component, control.deviceType) val frame = LayoutInflater.from(this).inflate(R.layout.controls_dialog, null).apply { requireViewById(R.id.icon).apply { setImageDrawable(renderInfo.icon) diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt index f979bbb7af35d..f07f3168d2460 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt @@ -29,6 +29,7 @@ import android.graphics.drawable.ClipDrawable import android.graphics.drawable.Drawable import android.graphics.drawable.GradientDrawable import android.graphics.drawable.LayerDrawable +import android.graphics.drawable.StateListDrawable import android.service.controls.Control import android.service.controls.DeviceTypes import android.service.controls.actions.ControlAction @@ -75,7 +76,8 @@ class ControlViewHolder( DeviceTypes.TYPE_THERMOSTAT, DeviceTypes.TYPE_CAMERA ) - + private val ATTR_ENABLED = intArrayOf(android.R.attr.state_enabled) + private val ATTR_DISABLED = intArrayOf(-android.R.attr.state_enabled) const val MIN_LEVEL = 0 const val MAX_LEVEL = 10000 @@ -243,7 +245,7 @@ class ControlViewHolder( } internal fun applyRenderInfo(enabled: Boolean, offset: Int, animated: Boolean = true) { - val ri = RenderInfo.lookup(context, cws.componentName, deviceType, enabled, offset) + val ri = RenderInfo.lookup(context, cws.componentName, deviceType, offset) val fg = context.resources.getColorStateList(ri.foreground, context.theme) val newText = nextStatusText nextStatusText = "" @@ -394,7 +396,17 @@ class ControlViewHolder( icon.imageTintList = null icon.setImageIcon(it) } ?: run { - icon.setImageDrawable(drawable) + if (drawable is StateListDrawable) { + // Only reset the drawable if it is a different resource, as it will interfere + // with the image state and animation. + if (icon.drawable == null || !(icon.drawable is StateListDrawable)) { + icon.setImageDrawable(drawable) + } + val state = if (enabled) ATTR_ENABLED else ATTR_DISABLED + icon.setImageState(state, true) + } else { + icon.setImageDrawable(drawable) + } // do not color app icons if (deviceType != DeviceTypes.TYPE_ROUTINE) { diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt index ba331f459a0d9..09d41bdd6927f 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt @@ -28,16 +28,6 @@ import android.util.SparseArray import com.android.systemui.R -data class IconState(val disabledResourceId: Int, val enabledResourceId: Int) { - operator fun get(state: Boolean): Int { - return if (state) { - enabledResourceId - } else { - disabledResourceId - } - } -} - data class RenderInfo( val icon: Drawable, val foreground: Int, @@ -53,7 +43,6 @@ data class RenderInfo( context: Context, componentName: ComponentName, deviceType: Int, - enabled: Boolean, offset: Int = 0 ): RenderInfo { val key = if (offset > 0) { @@ -61,8 +50,7 @@ data class RenderInfo( } else deviceType val (fg, bg) = deviceColorMap.getValue(key) - val iconState = deviceIconMap.getValue(key) - val resourceId = iconState[enabled] + val resourceId = deviceIconMap.getValue(key) var icon: Drawable? if (resourceId == APP_ICON_ID) { icon = appIconMap.get(componentName) @@ -75,11 +63,10 @@ data class RenderInfo( icon = iconMap.get(resourceId) if (icon == null) { icon = context.resources.getDrawable(resourceId, null) - icon.mutate() iconMap.put(resourceId, icon) } } - return RenderInfo(icon!!, fg, bg) + return RenderInfo(icon!!.constantState.newDrawable(context.resources), fg, bg) } fun registerComponentIcon(componentName: ComponentName, icon: Drawable) { @@ -109,230 +96,67 @@ private val deviceColorMap = mapOf>( Pair(R.color.control_foreground, R.color.control_enabled_default_background) } -private val deviceIconMap = mapOf( - (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_OFF) to IconState( +private val deviceIconMap = mapOf( + (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_OFF) to R.drawable.ic_device_thermostat_off, - R.drawable.ic_device_thermostat_off - ), - (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_HEAT) to IconState( + (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_HEAT) to + R.drawable.ic_device_thermostat, + (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_COOL) to + R.drawable.ic_device_thermostat, + (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_HEAT_COOL) to + R.drawable.ic_device_thermostat, + (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_ECO) to R.drawable.ic_device_thermostat_off, - R.drawable.ic_device_thermostat_on - ), - (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_COOL) to IconState( - R.drawable.ic_device_thermostat_off, - R.drawable.ic_device_thermostat_on - ), - (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_HEAT_COOL) to IconState( - R.drawable.ic_device_thermostat_off, - R.drawable.ic_device_thermostat_on - ), - (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_ECO) to IconState( - R.drawable.ic_device_thermostat_off, - R.drawable.ic_device_thermostat_off - ), - DeviceTypes.TYPE_THERMOSTAT to IconState( - R.drawable.ic_device_thermostat_off, - R.drawable.ic_device_thermostat_on - ), - DeviceTypes.TYPE_LIGHT to IconState( - R.drawable.ic_device_light_off, - R.drawable.ic_device_light_on - ), - DeviceTypes.TYPE_CAMERA to IconState( - R.drawable.ic_device_camera_off, - R.drawable.ic_device_camera_on - ), - DeviceTypes.TYPE_LOCK to IconState( - R.drawable.ic_device_lock_off, - R.drawable.ic_device_lock_on - ), - DeviceTypes.TYPE_SWITCH to IconState( - R.drawable.ic_device_switch_off, - R.drawable.ic_device_switch_on - ), - DeviceTypes.TYPE_OUTLET to IconState( - R.drawable.ic_device_outlet_off, - R.drawable.ic_device_outlet_on - ), - DeviceTypes.TYPE_VACUUM to IconState( - R.drawable.ic_device_vacuum_off, - R.drawable.ic_device_vacuum_on - ), - DeviceTypes.TYPE_MOP to IconState( - R.drawable.ic_device_mop_off, - R.drawable.ic_device_mop_on - ), - DeviceTypes.TYPE_AIR_FRESHENER to IconState( - R.drawable.ic_device_air_freshener_off, - R.drawable.ic_device_air_freshener_on - ), - DeviceTypes.TYPE_AIR_PURIFIER to IconState( - R.drawable.ic_device_air_purifier_off, - R.drawable.ic_device_air_purifier_on - ), - DeviceTypes.TYPE_FAN to IconState( - R.drawable.ic_device_fan_off, - R.drawable.ic_device_fan_on - ), - DeviceTypes.TYPE_HOOD to IconState( - R.drawable.ic_device_hood_off, - R.drawable.ic_device_hood_on - ), - DeviceTypes.TYPE_KETTLE to IconState( - R.drawable.ic_device_kettle_off, - R.drawable.ic_device_kettle_on - ), - DeviceTypes.TYPE_MICROWAVE to IconState( - R.drawable.ic_device_microwave_off, - R.drawable.ic_device_microwave_on - ), - DeviceTypes.TYPE_REMOTE_CONTROL to IconState( - R.drawable.ic_device_remote_control_off, - R.drawable.ic_device_remote_control_on - ), - DeviceTypes.TYPE_SET_TOP to IconState( - R.drawable.ic_device_set_top_off, - R.drawable.ic_device_set_top_on - ), - DeviceTypes.TYPE_STYLER to IconState( - R.drawable.ic_device_styler_off, - R.drawable.ic_device_styler_on - ), - DeviceTypes.TYPE_TV to IconState( - R.drawable.ic_device_tv_off, - R.drawable.ic_device_tv_on - ), - DeviceTypes.TYPE_WATER_HEATER to IconState( - R.drawable.ic_device_water_heater_off, - R.drawable.ic_device_water_heater_on - ), - DeviceTypes.TYPE_DISHWASHER to IconState( - R.drawable.ic_device_dishwasher_off, - R.drawable.ic_device_dishwasher_on - ), - DeviceTypes.TYPE_MULTICOOKER to IconState( - R.drawable.ic_device_multicooker_off, - R.drawable.ic_device_multicooker_on - ), - DeviceTypes.TYPE_SPRINKLER to IconState( - R.drawable.ic_device_sprinkler_off, - R.drawable.ic_device_sprinkler_on - ), - DeviceTypes.TYPE_WASHER to IconState( - R.drawable.ic_device_washer_off, - R.drawable.ic_device_washer_on - ), - DeviceTypes.TYPE_BLINDS to IconState( - R.drawable.ic_device_blinds_off, - R.drawable.ic_device_blinds_on - ), - DeviceTypes.TYPE_DRAWER to IconState( - R.drawable.ic_device_drawer_off, - R.drawable.ic_device_drawer_on - ), - DeviceTypes.TYPE_GARAGE to IconState( - R.drawable.ic_device_garage_off, - R.drawable.ic_device_garage_on - ), - DeviceTypes.TYPE_GATE to IconState( - R.drawable.ic_device_gate_off, - R.drawable.ic_device_gate_on - ), - DeviceTypes.TYPE_PERGOLA to IconState( - R.drawable.ic_device_pergola_off, - R.drawable.ic_device_pergola_on - ), - DeviceTypes.TYPE_WINDOW to IconState( - R.drawable.ic_device_window_off, - R.drawable.ic_device_window_on - ), - DeviceTypes.TYPE_VALVE to IconState( - R.drawable.ic_device_valve_off, - R.drawable.ic_device_valve_on - ), - DeviceTypes.TYPE_SECURITY_SYSTEM to IconState( - R.drawable.ic_device_security_system_off, - R.drawable.ic_device_security_system_on - ), - DeviceTypes.TYPE_REFRIGERATOR to IconState( - R.drawable.ic_device_refrigerator_off, - R.drawable.ic_device_refrigerator_on - ), - DeviceTypes.TYPE_DOORBELL to IconState( - R.drawable.ic_device_doorbell_off, - R.drawable.ic_device_doorbell_on - ), - DeviceTypes.TYPE_ROUTINE to IconState( - RenderInfo.APP_ICON_ID, - RenderInfo.APP_ICON_ID - ), - DeviceTypes.TYPE_AC_HEATER to IconState( - R.drawable.ic_device_thermostat_off, - R.drawable.ic_device_thermostat_on - ), - DeviceTypes.TYPE_AC_UNIT to IconState( - R.drawable.ic_device_thermostat_off, - R.drawable.ic_device_thermostat_on - ), - DeviceTypes.TYPE_COFFEE_MAKER to IconState( - R.drawable.ic_device_kettle_off, - R.drawable.ic_device_kettle_on - ), - DeviceTypes.TYPE_DEHUMIDIFIER to IconState( - R.drawable.ic_device_air_freshener_off, - R.drawable.ic_device_air_freshener_on - ), - DeviceTypes.TYPE_RADIATOR to IconState( - R.drawable.ic_device_thermostat_off, - R.drawable.ic_device_thermostat_on - ), - DeviceTypes.TYPE_STANDMIXER to IconState( - R.drawable.ic_device_cooking_off, - R.drawable.ic_device_cooking_on - ), - DeviceTypes.TYPE_DISPLAY to IconState( - R.drawable.ic_device_display_off, - R.drawable.ic_device_display_on - ), - DeviceTypes.TYPE_DRYER to IconState( - R.drawable.ic_device_washer_off, - R.drawable.ic_device_washer_on - ), - DeviceTypes.TYPE_MOWER to IconState( - R.drawable.ic_device_outdoor_garden_off, - R.drawable.ic_device_outdoor_garden_on - ), - DeviceTypes.TYPE_SHOWER to IconState( - R.drawable.ic_device_water_off, - R.drawable.ic_device_water_on - ), - DeviceTypes.TYPE_AWNING to IconState( - R.drawable.ic_device_pergola_off, - R.drawable.ic_device_pergola_on - ), - DeviceTypes.TYPE_CLOSET to IconState( - R.drawable.ic_device_drawer_off, - R.drawable.ic_device_drawer_on - ), - DeviceTypes.TYPE_CURTAIN to IconState( - R.drawable.ic_device_blinds_off, - R.drawable.ic_device_blinds_on - ), - DeviceTypes.TYPE_DOOR to IconState( - R.drawable.ic_device_door_off, - R.drawable.ic_device_door_on - ), - DeviceTypes.TYPE_SHUTTER to IconState( - R.drawable.ic_device_window_off, - R.drawable.ic_device_window_on - ), - DeviceTypes.TYPE_HEATER to IconState( - R.drawable.ic_device_thermostat_off, - R.drawable.ic_device_thermostat_on - ) + DeviceTypes.TYPE_THERMOSTAT to R.drawable.ic_device_thermostat, + DeviceTypes.TYPE_LIGHT to R.drawable.ic_device_light, + DeviceTypes.TYPE_CAMERA to R.drawable.ic_device_camera, + DeviceTypes.TYPE_LOCK to R.drawable.ic_device_lock, + DeviceTypes.TYPE_SWITCH to R.drawable.ic_device_switch, + DeviceTypes.TYPE_OUTLET to R.drawable.ic_device_outlet, + DeviceTypes.TYPE_VACUUM to R.drawable.ic_device_vacuum, + DeviceTypes.TYPE_MOP to R.drawable.ic_device_mop, + DeviceTypes.TYPE_AIR_FRESHENER to R.drawable.ic_device_air_freshener, + DeviceTypes.TYPE_AIR_PURIFIER to R.drawable.ic_device_air_purifier, + DeviceTypes.TYPE_FAN to R.drawable.ic_device_fan, + DeviceTypes.TYPE_HOOD to R.drawable.ic_device_hood, + DeviceTypes.TYPE_KETTLE to R.drawable.ic_device_kettle, + DeviceTypes.TYPE_MICROWAVE to R.drawable.ic_device_microwave, + DeviceTypes.TYPE_REMOTE_CONTROL to R.drawable.ic_device_remote_control, + DeviceTypes.TYPE_SET_TOP to R.drawable.ic_device_set_top, + DeviceTypes.TYPE_STYLER to R.drawable.ic_device_styler, + DeviceTypes.TYPE_TV to R.drawable.ic_device_tv, + DeviceTypes.TYPE_WATER_HEATER to R.drawable.ic_device_water_heater, + DeviceTypes.TYPE_DISHWASHER to R.drawable.ic_device_dishwasher, + DeviceTypes.TYPE_MULTICOOKER to R.drawable.ic_device_multicooker, + DeviceTypes.TYPE_SPRINKLER to R.drawable.ic_device_sprinkler, + DeviceTypes.TYPE_WASHER to R.drawable.ic_device_washer, + DeviceTypes.TYPE_BLINDS to R.drawable.ic_device_blinds, + DeviceTypes.TYPE_DRAWER to R.drawable.ic_device_drawer, + DeviceTypes.TYPE_GARAGE to R.drawable.ic_device_garage, + DeviceTypes.TYPE_GATE to R.drawable.ic_device_gate, + DeviceTypes.TYPE_PERGOLA to R.drawable.ic_device_pergola, + DeviceTypes.TYPE_WINDOW to R.drawable.ic_device_window, + DeviceTypes.TYPE_VALVE to R.drawable.ic_device_valve, + DeviceTypes.TYPE_SECURITY_SYSTEM to R.drawable.ic_device_security_system, + DeviceTypes.TYPE_REFRIGERATOR to R.drawable.ic_device_refrigerator, + DeviceTypes.TYPE_DOORBELL to R.drawable.ic_device_doorbell, + DeviceTypes.TYPE_ROUTINE to RenderInfo.APP_ICON_ID, + DeviceTypes.TYPE_AC_HEATER to R.drawable.ic_device_thermostat, + DeviceTypes.TYPE_AC_UNIT to R.drawable.ic_device_thermostat, + DeviceTypes.TYPE_COFFEE_MAKER to R.drawable.ic_device_kettle, + DeviceTypes.TYPE_DEHUMIDIFIER to R.drawable.ic_device_air_freshener, + DeviceTypes.TYPE_RADIATOR to R.drawable.ic_device_thermostat, + DeviceTypes.TYPE_STANDMIXER to R.drawable.ic_device_cooking, + DeviceTypes.TYPE_DISPLAY to R.drawable.ic_device_display, + DeviceTypes.TYPE_DRYER to R.drawable.ic_device_washer, + DeviceTypes.TYPE_MOWER to R.drawable.ic_device_outdoor_garden, + DeviceTypes.TYPE_SHOWER to R.drawable.ic_device_water, + DeviceTypes.TYPE_AWNING to R.drawable.ic_device_pergola, + DeviceTypes.TYPE_CLOSET to R.drawable.ic_device_drawer, + DeviceTypes.TYPE_CURTAIN to R.drawable.ic_device_blinds, + DeviceTypes.TYPE_DOOR to R.drawable.ic_device_door, + DeviceTypes.TYPE_SHUTTER to R.drawable.ic_device_window, + DeviceTypes.TYPE_HEATER to R.drawable.ic_device_thermostat ).withDefault { - IconState( - R.drawable.ic_device_unknown_off, - R.drawable.ic_device_unknown_on - ) + R.drawable.ic_device_unknown }