|
9 | 9 | #include <string.h> |
10 | 10 |
|
11 | 11 | #include "custom/ui/pages/ui_page_rooms.h" |
| 12 | +#include "integration/rooms_provider.h" |
12 | 13 | #include "lvgl.h" |
13 | 14 |
|
14 | 15 | #define TEST_SCREEN_WIDTH 1280 |
@@ -101,6 +102,8 @@ int main(void) |
101 | 102 | lv_obj_t* screen = lv_screen_active(); |
102 | 103 | lv_obj_clean(screen); |
103 | 104 |
|
| 105 | + rooms_provider_reset_state(); |
| 106 | + |
104 | 107 | lv_obj_t* page = ui_page_rooms_create(screen); |
105 | 108 | if (page == NULL) |
106 | 109 | { |
@@ -142,6 +145,76 @@ int main(void) |
142 | 145 | } |
143 | 146 | } |
144 | 147 |
|
| 148 | + room_entity_t bakery_main = { |
| 149 | + .entity_id = "light.bakery_main", |
| 150 | + .kind = ROOM_ENTITY_LIGHT, |
| 151 | + .available = true, |
| 152 | + .on = true, |
| 153 | + .value = 10, |
| 154 | + }; |
| 155 | + room_entity_t bedroom_main = { |
| 156 | + .entity_id = "light.bedroom_main", |
| 157 | + .kind = ROOM_ENTITY_LIGHT, |
| 158 | + .available = true, |
| 159 | + .on = false, |
| 160 | + .value = -1, |
| 161 | + }; |
| 162 | + room_entity_t living_scene = { |
| 163 | + .entity_id = "switch.living_scene", |
| 164 | + .kind = ROOM_ENTITY_SWITCH, |
| 165 | + .available = true, |
| 166 | + .on = true, |
| 167 | + .value = -1, |
| 168 | + }; |
| 169 | + |
| 170 | + room_entity_t* bakery_entities[] = {&bakery_main}; |
| 171 | + room_entity_t* bedroom_entities[] = {&bedroom_main}; |
| 172 | + room_entity_t* living_entities[] = {&living_scene}; |
| 173 | + |
| 174 | + room_t updated_rooms[] = { |
| 175 | + {.room_id = "bakery", |
| 176 | + .name = "Bakery", |
| 177 | + .entities = bakery_entities, |
| 178 | + .entity_count = 1, |
| 179 | + .temp_c = 22, |
| 180 | + .humidity = 41}, |
| 181 | + {.room_id = "bedroom", |
| 182 | + .name = "Bedroom", |
| 183 | + .entities = bedroom_entities, |
| 184 | + .entity_count = 1, |
| 185 | + .temp_c = 21, |
| 186 | + .humidity = 46}, |
| 187 | + {.room_id = "living", |
| 188 | + .name = "Living Room", |
| 189 | + .entities = living_entities, |
| 190 | + .entity_count = 1, |
| 191 | + .temp_c = 24, |
| 192 | + .humidity = 44}, |
| 193 | + }; |
| 194 | + |
| 195 | + rooms_state_t updated_state = { |
| 196 | + .rooms = updated_rooms, |
| 197 | + .room_count = sizeof(updated_rooms) / sizeof(updated_rooms[0]), |
| 198 | + }; |
| 199 | + |
| 200 | + rooms_provider_set_state(&updated_state); |
| 201 | + ui_page_rooms_set_state(rooms_provider_get_state()); |
| 202 | + |
| 203 | + lv_obj_t* living_toggle = ui_page_rooms_get_toggle("living"); |
| 204 | + if (!ensure(living_toggle != NULL, "Living toggle missing after update")) |
| 205 | + { |
| 206 | + return 1; |
| 207 | + } |
| 208 | + lv_obj_send_event(living_toggle, LV_EVENT_CLICKED, NULL); |
| 209 | + if (!ensure(capture.last_entity != NULL |
| 210 | + && strcmp(capture.last_entity, "switch.living_scene") == 0, |
| 211 | + "Updated entity id not reflected")) |
| 212 | + { |
| 213 | + return 1; |
| 214 | + } |
| 215 | + |
| 216 | + rooms_provider_reset_state(); |
| 217 | + |
145 | 218 | for (size_t i = 0; i < k_room_count; i++) |
146 | 219 | { |
147 | 220 | lv_obj_t* card = ui_page_rooms_get_card(room_ids[i]); |
|
0 commit comments