mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-09 22:57:21 +00:00
push sos basic device implementation
This commit is contained in:
23
assets/icons/sos.svg
Normal file
23
assets/icons/sos.svg
Normal file
@ -0,0 +1,23 @@
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17.9985 35.3366C13.3686 35.3366 9.01577 33.5305 5.74189 30.2509C2.46802 26.9714 0.665039 22.611 0.665039 17.973C0.665039 13.3351 2.46802 8.97466 5.74197 5.69509C9.01577 2.41552 13.3686 0.609375 17.9985 0.609375C22.6284 0.609375 26.9813 2.41552 30.2552 5.69509C33.5291 8.97459 35.3321 13.3351 35.3321 17.973C35.3321 22.611 33.5291 26.9714 30.2552 30.251C26.9814 33.5305 22.6285 35.3366 17.9985 35.3366Z" fill="#CBC4CC"/>
|
||||
<path d="M17.9971 32.1589C25.8176 32.1589 32.1574 25.8081 32.1574 17.974C32.1574 10.1399 25.8176 3.78906 17.9971 3.78906C10.1767 3.78906 3.83691 10.1399 3.83691 17.974C3.83691 25.8081 10.1767 32.1589 17.9971 32.1589Z" fill="#F3F0F3"/>
|
||||
<path d="M17.9987 29.9667C24.6119 29.9667 29.9729 24.5963 29.9729 17.9716C29.9729 11.3469 24.6119 5.97656 17.9987 5.97656C11.3855 5.97656 6.02441 11.3469 6.02441 17.9716C6.02441 24.5963 11.3855 29.9667 17.9987 29.9667Z" fill="#FD4755"/>
|
||||
<path d="M17.998 5.97656C17.5223 5.97656 17.0532 6.00539 16.5918 6.05967C22.5342 6.75926 27.1598 11.8341 27.1598 17.9716C27.1598 24.1091 22.5342 29.184 16.5918 29.8835C17.0532 29.9379 17.5223 29.9666 17.998 29.9666C24.6007 29.9666 29.9723 24.5857 29.9723 17.9716C29.9723 11.3574 24.6007 5.97656 17.998 5.97656Z" fill="#FB2B3A"/>
|
||||
<path d="M11.9123 11.6183C11.7669 11.6183 11.6221 11.5585 11.5179 11.4412C11.3245 11.2235 11.3441 10.8903 11.5618 10.6968C13.3402 9.1164 15.6268 8.24609 18.0005 8.24609C18.2918 8.24609 18.5278 8.4822 18.5278 8.77342C18.5278 9.06465 18.2918 9.30075 18.0005 9.30075C15.8853 9.30075 13.8475 10.0766 12.2624 11.4852C12.162 11.5744 12.0369 11.6183 11.9123 11.6183Z" fill="#FD8087"/>
|
||||
<path d="M18 27.6995C17.7087 27.6995 17.4727 27.4634 17.4727 27.1722C17.4727 26.881 17.7087 26.6449 18 26.6449C20.0643 26.6449 22.0648 25.9017 23.6329 24.5524C23.8537 24.3625 24.1866 24.3874 24.3765 24.6082C24.5665 24.8289 24.5416 25.1619 24.3208 25.3518C22.5614 26.8658 20.3167 27.6995 18 27.6995Z" fill="#FD8087"/>
|
||||
<path d="M12.6912 17.52C12.5691 17.4748 12.4351 17.4321 12.2934 17.3867C11.8625 17.2491 11.2115 17.041 11.0522 16.7438C10.9746 16.5988 10.9675 16.4474 11.0312 16.2938C11.1145 16.0925 11.3047 15.9258 11.5275 15.8585C12.368 15.605 13.1315 16.2164 13.1479 16.2296C13.3707 16.4153 13.7018 16.3863 13.8889 16.1642C14.0765 15.9414 14.0479 15.6087 13.8252 15.4211C13.7768 15.3804 12.6225 14.4266 11.2228 14.8488C10.6971 15.0074 10.2613 15.3967 10.0569 15.89C9.87159 16.3369 9.89493 16.8171 10.1227 17.242C10.4838 17.9157 11.3442 18.1906 11.9724 18.3913C12.1027 18.433 12.2257 18.4723 12.3257 18.5093C12.8999 18.7215 13.1921 19.0502 13.1275 19.4114C13.0627 19.7734 12.6382 20.148 12.0399 20.148C11.4628 20.148 10.9059 19.9133 10.5502 19.5201C10.3549 19.3041 10.0214 19.2875 9.80543 19.4828C9.58943 19.6782 9.5727 20.0116 9.76816 20.2276C10.3204 20.8382 11.1697 21.2027 12.0399 21.2027C13.088 21.2027 14.0019 20.5124 14.1656 19.5971C14.2899 18.9022 13.9679 17.9917 12.6912 17.52Z" fill="white"/>
|
||||
<path d="M24.8679 17.52C24.7458 17.4749 24.6119 17.4321 24.4701 17.3868C24.0393 17.2491 23.3882 17.0411 23.2289 16.7438C23.1512 16.5989 23.1441 16.4475 23.2078 16.2938C23.2912 16.0926 23.4814 15.9258 23.7042 15.8586C24.5432 15.6052 25.3058 16.2145 25.3245 16.2296C25.5472 16.4154 25.8785 16.3864 26.0655 16.1642C26.2531 15.9415 26.2246 15.6088 26.0019 15.4212C25.9535 15.3804 24.7992 14.4266 23.3995 14.8488C22.8739 15.0075 22.438 15.3967 22.2335 15.89C22.0483 16.337 22.0716 16.8171 22.2994 17.242C22.6605 17.9157 23.5209 18.1906 24.1492 18.3914C24.2795 18.4331 24.4025 18.4724 24.5025 18.5094C25.0766 18.7216 25.3688 19.0503 25.3042 19.4114C25.2395 19.7735 24.8149 20.1481 24.2166 20.1481C23.6396 20.1481 23.0827 19.9134 22.727 19.5202C22.5317 19.3042 22.1982 19.2876 21.9822 19.4829C21.7662 19.6783 21.7495 20.0117 21.9449 20.2277C22.4971 20.8383 23.3464 21.2027 24.2166 21.2027C25.2648 21.2027 26.1787 20.5125 26.3424 19.5972C26.4666 18.9022 26.1446 17.9917 24.8679 17.52Z" fill="white"/>
|
||||
<path d="M18.0001 14.7412C16.2214 14.7412 14.7744 16.1905 14.7744 17.9718C14.7744 19.7532 16.2214 21.2025 18.0001 21.2025C19.7787 21.2025 21.2257 19.7532 21.2257 17.9718C21.2257 16.1905 19.7787 14.7412 18.0001 14.7412ZM18.0001 20.1478C16.803 20.1478 15.8291 19.1717 15.8291 17.9718C15.8291 16.772 16.803 15.7959 18.0001 15.7959C19.1971 15.7959 20.171 16.772 20.171 17.9718C20.171 19.1717 19.1972 20.1478 18.0001 20.1478Z" fill="white"/>
|
||||
<path d="M3.46424 31.8394L1.62871 33.6782C1.42298 33.8844 1.42327 34.2182 1.62942 34.4239C1.73242 34.5267 1.86721 34.578 2.00199 34.578C2.13713 34.578 2.27227 34.5264 2.3752 34.4232L4.21073 32.5844C4.41646 32.3782 4.41618 32.0444 4.21003 31.8387C4.00374 31.6329 3.66983 31.6332 3.46424 31.8394Z" fill="#F3F0F3"/>
|
||||
<path d="M2.02488 29.2304C1.85768 28.992 1.5287 28.9343 1.29041 29.1015L0.224575 29.8492C-0.0139194 30.0165 -0.0715742 30.3453 0.095695 30.5837C0.198278 30.73 0.361751 30.8082 0.527825 30.8082C0.632377 30.8082 0.738054 30.7772 0.830161 30.7126L1.896 29.9649C2.1345 29.7977 2.19215 29.4688 2.02488 29.2304Z" fill="#F3F0F3"/>
|
||||
<path d="M6.81289 34.0297C6.57418 33.8629 6.24555 33.9212 6.07856 34.1598L5.37152 35.1714C5.20467 35.4101 5.26296 35.7389 5.50166 35.9057C5.5937 35.97 5.69902 36.0008 5.80329 36.0008C5.96965 36.0008 6.1334 35.9223 6.23599 35.7756L6.94303 34.764C7.10988 34.5253 7.05159 34.1965 6.81289 34.0297Z" fill="#F3F0F3"/>
|
||||
<path d="M32.5324 31.8394C32.3266 31.6333 31.9927 31.6329 31.7866 31.8387C31.5805 32.0444 31.5802 32.3783 31.7859 32.5844L33.6215 34.4233C33.7245 34.5265 33.8595 34.5781 33.9947 34.5781C34.1295 34.5781 34.2643 34.5267 34.3673 34.424C34.5734 34.2182 34.5737 33.8843 34.368 33.6782L32.5324 31.8394Z" fill="#F3F0F3"/>
|
||||
<path d="M35.77 29.8492L34.7042 29.1015C34.4656 28.9343 34.1369 28.992 33.9697 29.2304C33.8024 29.4688 33.8601 29.7977 34.0986 29.9649L35.1644 30.7126C35.2566 30.7772 35.3622 30.8082 35.4668 30.8082C35.6328 30.8082 35.7964 30.73 35.8989 30.5837C36.0661 30.3453 36.0084 30.0165 35.77 29.8492Z" fill="#F3F0F3"/>
|
||||
<path d="M29.9157 34.1579C29.7488 33.9193 29.4202 33.8609 29.1813 34.0277C28.9426 34.1946 28.8844 34.5234 29.0512 34.7621L29.7582 35.7736C29.8608 35.9203 30.0245 35.9989 30.1909 35.9989C30.2952 35.9989 30.4005 35.968 30.4926 35.9038C30.7313 35.7369 30.7896 35.4082 30.6227 35.1695L29.9157 34.1579Z" fill="#F3F0F3"/>
|
||||
<path d="M32.1591 4.31343C32.2943 4.31343 32.4294 4.26182 32.5324 4.1586L34.3679 2.31977C34.5736 2.11362 34.5733 1.77978 34.3672 1.57405C34.1609 1.36825 33.827 1.3686 33.6215 1.57476L31.7859 3.41359C31.5802 3.61974 31.5805 3.95358 31.7866 4.15931C31.8896 4.2621 32.0244 4.31343 32.1591 4.31343Z" fill="#F3F0F3"/>
|
||||
<path d="M33.9697 6.76829C34.0723 6.91461 34.2358 6.9928 34.4018 6.9928C34.5064 6.9928 34.6121 6.96179 34.7042 6.89717L35.77 6.14949C36.0085 5.98222 36.0662 5.65338 35.8989 5.41495C35.7317 5.17653 35.4027 5.11888 35.1644 5.28607L34.0986 6.03376C33.8601 6.20103 33.8024 6.52987 33.9697 6.76829Z" fill="#F3F0F3"/>
|
||||
<path d="M30.4926 0.0950873C30.2538 -0.0716194 29.9252 -0.0134724 29.7582 0.225232L29.0512 1.23672C28.8844 1.47543 28.9426 1.8042 29.1813 1.97105C29.2734 2.03531 29.3787 2.06618 29.483 2.06618C29.6493 2.06618 29.8131 1.98764 29.9157 1.8409L30.6227 0.829342C30.7895 0.590707 30.7312 0.261935 30.4926 0.0950873Z" fill="#F3F0F3"/>
|
||||
<path d="M2.37513 1.57476C2.16933 1.3686 1.83543 1.36825 1.62942 1.57405C1.42327 1.77978 1.42298 2.11369 1.62871 2.31977L3.46424 4.1586C3.56725 4.26182 3.70232 4.31343 3.83745 4.31343C3.97224 4.31343 4.1071 4.2621 4.21003 4.15931C4.41618 3.95358 4.41646 3.61967 4.21073 3.41359L2.37513 1.57476Z" fill="#F3F0F3"/>
|
||||
<path d="M0.224575 6.14949L1.29041 6.89717C1.38259 6.96179 1.48813 6.9928 1.59275 6.9928C1.75882 6.9928 1.92237 6.91454 2.02488 6.76829C2.19215 6.52987 2.1345 6.20103 1.896 6.03376L0.830161 5.28607C0.591737 5.11888 0.262894 5.17653 0.095695 5.41495C-0.0715742 5.65338 -0.0139194 5.98222 0.224575 6.14949Z" fill="#F3F0F3"/>
|
||||
<path d="M6.23599 0.225178C6.06914 -0.0133866 5.74051 -0.0716742 5.50166 0.0951028C5.26296 0.26195 5.20467 0.590723 5.37152 0.829428L6.07856 1.84099C6.18114 1.98766 6.34483 2.06626 6.51125 2.06626C6.61552 2.06626 6.72085 2.0354 6.81289 1.97113C7.05159 1.80429 7.10988 1.47551 6.94303 1.23681L6.23599 0.225178Z" fill="#F3F0F3"/>
|
||||
</svg>
|
After Width: | Height: | Size: 8.1 KiB |
23
assets/icons/sos_normal.svg
Normal file
23
assets/icons/sos_normal.svg
Normal file
@ -0,0 +1,23 @@
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17.9974 35.3421C13.3675 35.3421 9.0147 33.536 5.74086 30.2564C2.46702 26.977 0.664062 22.6166 0.664062 17.9787C0.664062 13.3408 2.46702 8.98043 5.74093 5.70089C9.0147 2.42136 13.3675 0.615234 17.9974 0.615234C22.6272 0.615234 26.98 2.42136 30.2539 5.70089C33.5278 8.98036 35.3307 13.3408 35.3307 17.9787C35.3307 22.6166 33.5278 26.977 30.2539 30.2565C26.9801 33.536 22.6273 35.3421 17.9974 35.3421Z" fill="#CBC4CC"/>
|
||||
<path d="M17.998 32.1683C25.8184 32.1683 32.158 25.8176 32.158 17.9836C32.158 10.1496 25.8184 3.79883 17.998 3.79883C10.1776 3.79883 3.83789 10.1496 3.83789 17.9836C3.83789 25.8176 10.1776 32.1683 17.998 32.1683Z" fill="#F3F0F3"/>
|
||||
<path d="M17.9995 29.9762C24.6127 29.9762 29.9737 24.6059 29.9737 17.9813C29.9737 11.3566 24.6127 5.98633 17.9995 5.98633C11.3864 5.98633 6.02539 11.3566 6.02539 17.9813C6.02539 24.6059 11.3864 29.9762 17.9995 29.9762Z" fill="#97D729"/>
|
||||
<path d="M17.998 5.98633C17.5223 5.98633 17.0532 6.01516 16.5918 6.06943C22.5341 6.76902 27.1597 11.8438 27.1597 17.9812C27.1597 24.1186 22.5341 29.1935 16.5918 29.893C17.0532 29.9474 17.5223 29.9761 17.998 29.9761C24.6006 29.9761 29.9721 24.5953 29.9721 17.9812C29.9721 11.3671 24.6006 5.98633 17.998 5.98633Z" fill="#8BC727"/>
|
||||
<path d="M11.9045 11.6241C11.7591 11.6241 11.6143 11.5643 11.5101 11.447C11.3167 11.2294 11.3363 10.8961 11.554 10.7026C13.3324 9.12225 15.6189 8.25195 17.9926 8.25195C18.2839 8.25195 18.5199 8.48805 18.5199 8.77928C18.5199 9.0705 18.2839 9.3066 17.9926 9.3066C15.8775 9.3066 13.8397 10.0824 12.2546 11.491C12.1541 11.5802 12.0291 11.6241 11.9045 11.6241Z" fill="#8BC727"/>
|
||||
<path d="M17.9883 27.7083C17.697 27.7083 17.4609 27.4722 17.4609 27.1809C17.4609 26.8897 17.697 26.6536 17.9883 26.6536C20.0526 26.6536 22.053 25.9105 23.6211 24.5612C23.8419 24.3713 24.1748 24.3962 24.3647 24.617C24.5547 24.8377 24.5298 25.1706 24.309 25.3606C22.5496 26.8745 20.3049 27.7083 17.9883 27.7083Z" fill="#8BC727"/>
|
||||
<path d="M12.6882 17.5248C12.5661 17.4797 12.4322 17.437 12.2904 17.3916C11.8596 17.2539 11.2086 17.0459 11.0492 16.7486C10.9716 16.6037 10.9645 16.4523 11.0282 16.2986C11.1116 16.0974 11.3018 15.9306 11.5245 15.8634C12.365 15.6099 13.1285 16.2213 13.145 16.2345C13.3677 16.4202 13.6989 16.3912 13.8859 16.1691C14.0735 15.9463 14.0449 15.6136 13.8222 15.426C13.7738 15.3852 12.6195 14.4315 11.2198 14.8537C10.6942 15.0123 10.2583 15.4015 10.0539 15.8948C9.86866 16.3418 9.892 16.822 10.1197 17.2468C10.4808 17.9205 11.3412 18.1955 11.9694 18.3962C12.0997 18.4378 12.2227 18.4771 12.3228 18.5141C12.8969 18.7263 13.1891 19.0551 13.1245 19.4162C13.0597 19.7783 12.6353 20.1528 12.0369 20.1528C11.4598 20.1528 10.903 19.9181 10.5473 19.5249C10.352 19.309 10.0185 19.2924 9.8025 19.4876C9.58651 19.683 9.56977 20.0164 9.76523 20.2324C10.3174 20.843 11.1668 21.2075 12.0369 21.2075C13.0851 21.2075 13.9989 20.5172 14.1626 19.6019C14.2869 18.9071 13.9649 17.9965 12.6882 17.5248Z" fill="white"/>
|
||||
<path d="M24.866 17.5249C24.7438 17.4797 24.6099 17.437 24.4681 17.3916C24.0373 17.254 23.3862 17.0459 23.2269 16.7486C23.1493 16.6037 23.1422 16.4524 23.2059 16.2987C23.2893 16.0974 23.4795 15.9307 23.7023 15.8634C24.5412 15.6101 25.3038 16.2193 25.3225 16.2345C25.5452 16.4202 25.8765 16.3913 26.0635 16.1691C26.2511 15.9463 26.2226 15.6137 25.9999 15.426C25.9515 15.3853 24.7972 14.4314 23.3975 14.8537C22.8719 15.0123 22.4361 15.4016 22.2316 15.8949C22.0463 16.3418 22.0697 16.822 22.2974 17.2469C22.6585 17.9206 23.519 18.1955 24.1473 18.3963C24.2775 18.4379 24.4005 18.4772 24.5005 18.5142C25.0746 18.7264 25.3669 19.0552 25.3022 19.4163C25.2375 19.7784 24.8129 20.1529 24.2146 20.1529C23.6376 20.1529 23.0807 19.9182 22.725 19.525C22.5297 19.309 22.1962 19.2925 21.9802 19.4877C21.7642 19.6831 21.7475 20.0165 21.943 20.2325C22.4952 20.8431 23.3445 21.2076 24.2146 21.2076C25.2628 21.2076 26.1767 20.5173 26.3404 19.602C26.4646 18.9071 26.1426 17.9966 24.866 17.5249Z" fill="white"/>
|
||||
<path d="M18.001 14.7461C16.2224 14.7461 14.7754 16.1953 14.7754 17.9767C14.7754 19.7581 16.2224 21.2073 18.001 21.2073C19.7796 21.2073 21.2266 19.7581 21.2266 17.9767C21.2266 16.1953 19.7796 14.7461 18.001 14.7461ZM18.001 20.1526C16.804 20.1526 15.83 19.1765 15.83 17.9767C15.83 16.7769 16.804 15.8007 18.001 15.8007C19.198 15.8007 20.172 16.7769 20.172 17.9767C20.172 19.1765 19.1981 20.1526 18.001 20.1526Z" fill="white"/>
|
||||
<path d="M3.46422 31.8345L1.62871 33.6733C1.42298 33.8795 1.42327 34.2133 1.62941 34.419C1.73242 34.5217 1.8672 34.5731 2.00199 34.5731C2.13712 34.5731 2.27226 34.5215 2.37519 34.4183L4.2107 32.5795C4.41643 32.3733 4.41615 32.0395 4.21 31.8338C4.00371 31.6281 3.66981 31.6283 3.46422 31.8345Z" fill="#F3F0F3"/>
|
||||
<path d="M2.02486 29.2284C1.85766 28.99 1.52868 28.9324 1.2904 29.0996L0.224572 29.8472C-0.0139193 30.0145 -0.0715734 30.3433 0.0956939 30.5818C0.198276 30.7281 0.361747 30.8063 0.527819 30.8063C0.63237 30.8063 0.738045 30.7752 0.830151 30.7106L1.89598 29.963C2.13447 29.7957 2.19213 29.4668 2.02486 29.2284Z" fill="#F3F0F3"/>
|
||||
<path d="M6.80994 34.0306C6.57124 33.8639 6.24261 33.9222 6.07562 34.1608L5.36859 35.1723C5.20174 35.411 5.26003 35.7398 5.49873 35.9067C5.59076 35.9709 5.69609 36.0018 5.80036 36.0018C5.96671 36.0018 6.13046 35.9232 6.23305 35.7765L6.94008 34.765C7.10693 34.5263 7.04864 34.1975 6.80994 34.0306Z" fill="#F3F0F3"/>
|
||||
<path d="M32.5314 31.8345C32.3256 31.6284 31.9917 31.628 31.7857 31.8338C31.5795 32.0395 31.5792 32.3734 31.785 32.5795L33.6205 34.4183C33.7235 34.5216 33.8585 34.5732 33.9937 34.5732C34.1285 34.5732 34.2633 34.5218 34.3662 34.419C34.5724 34.2133 34.5727 33.8794 34.367 33.6733L32.5314 31.8345Z" fill="#F3F0F3"/>
|
||||
<path d="M35.7729 29.8472L34.7071 29.0996C34.4685 28.9324 34.1398 28.99 33.9726 29.2284C33.8054 29.4668 33.863 29.7957 34.1015 29.963L35.1674 30.7106C35.2595 30.7752 35.3651 30.8063 35.4697 30.8063C35.6358 30.8063 35.7993 30.728 35.9018 30.5818C36.069 30.3433 36.0114 30.0145 35.7729 29.8472Z" fill="#F3F0F3"/>
|
||||
<path d="M29.9147 34.1608C29.7478 33.9222 29.4192 33.8638 29.1804 34.0307C28.9417 34.1975 28.8834 34.5263 29.0502 34.765L29.7573 35.7765C29.8598 35.9232 30.0235 36.0018 30.1899 36.0018C30.2942 36.0018 30.3995 35.9709 30.4916 35.9067C30.7303 35.7398 30.7886 35.4111 30.6217 35.1724L29.9147 34.1608Z" fill="#F3F0F3"/>
|
||||
<path d="M32.1582 4.30949C32.2933 4.30949 32.4284 4.25788 32.5314 4.15467L34.3669 2.31585C34.5726 2.1097 34.5723 1.77587 34.3662 1.57014C34.1599 1.36435 33.826 1.3647 33.6205 1.57085L31.785 3.40966C31.5792 3.61581 31.5795 3.94964 31.7857 4.15537C31.8886 4.25816 32.0234 4.30949 32.1582 4.30949Z" fill="#F3F0F3"/>
|
||||
<path d="M33.9726 6.76339C34.0752 6.90971 34.2387 6.98789 34.4048 6.98789C34.5093 6.98789 34.615 6.95689 34.7071 6.89227L35.7729 6.1446C36.0114 5.97733 36.0691 5.64849 35.9018 5.41007C35.7346 5.17165 35.4056 5.11399 35.1674 5.28119L34.1015 6.02887C33.863 6.19613 33.8054 6.52497 33.9726 6.76339Z" fill="#F3F0F3"/>
|
||||
<path d="M30.4916 0.0950863C30.2528 -0.0716186 29.9242 -0.0134723 29.7573 0.22523L29.0502 1.23671C28.8834 1.47541 28.9417 1.80418 29.1804 1.97103C29.2724 2.03529 29.3777 2.06615 29.482 2.06615C29.6484 2.06615 29.8121 1.98762 29.9147 1.84088L30.6217 0.829333C30.7885 0.590701 30.7302 0.261932 30.4916 0.0950863Z" fill="#F3F0F3"/>
|
||||
<path d="M2.37512 1.57085C2.16932 1.3647 1.83542 1.36435 1.62941 1.57014C1.42327 1.77587 1.42298 2.10977 1.62871 2.31585L3.46422 4.15467C3.56723 4.25788 3.70229 4.30949 3.83743 4.30949C3.97221 4.30949 4.10707 4.25816 4.21 4.15537C4.41615 3.94964 4.41643 3.61574 4.2107 3.40966L2.37512 1.57085Z" fill="#F3F0F3"/>
|
||||
<path d="M0.224572 6.1446L1.2904 6.89227C1.38258 6.95689 1.48811 6.98789 1.59273 6.98789C1.75881 6.98789 1.92235 6.90964 2.02486 6.76339C2.19213 6.52497 2.13447 6.19613 1.89598 6.02887L0.830151 5.28119C0.59173 5.11399 0.262891 5.17165 0.0956939 5.41007C-0.0715734 5.64849 -0.0139193 5.97733 0.224572 6.1446Z" fill="#F3F0F3"/>
|
||||
<path d="M6.23305 0.225175C6.0662 -0.0133865 5.73757 -0.0716734 5.49873 0.0951017C5.26003 0.261947 5.20174 0.590716 5.36859 0.829419L6.07562 1.84097C6.1782 1.98763 6.34189 2.06624 6.50831 2.06624C6.61258 2.06624 6.7179 2.03537 6.80994 1.97111C7.04864 1.80427 7.10693 1.4755 6.94008 1.23679L6.23305 0.225175Z" fill="#F3F0F3"/>
|
||||
</svg>
|
After Width: | Height: | Size: 8.1 KiB |
@ -20,6 +20,8 @@ import 'package:syncrow_web/pages/device_managment/one_gang_switch/view/wall_lig
|
||||
import 'package:syncrow_web/pages/device_managment/one_gang_switch/view/wall_light_device_control.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/power_clamp/view/power_clamp_batch_control_view.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/power_clamp/view/smart_power_device_control.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/sos/view/sos_batch_control_view.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/sos/view/sos_device_control_view.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/three_g_glass_switch/view/three_gang_glass_switch_batch_control_view.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/three_g_glass_switch/view/three_gang_glass_switch_control_view.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/three_gang_switch/view/living_room_batch_controls.dart';
|
||||
@ -100,6 +102,8 @@ mixin RouteControlsBasedCode {
|
||||
return SmartPowerDeviceControl(
|
||||
deviceId: device.uuid!,
|
||||
);
|
||||
case 'SOS':
|
||||
return SosDeviceControlsView(device: device);
|
||||
default:
|
||||
return const SizedBox();
|
||||
}
|
||||
@ -123,119 +127,72 @@ mixin RouteControlsBasedCode {
|
||||
switch (devices.first.productType) {
|
||||
case '1G':
|
||||
return WallLightBatchControlView(
|
||||
deviceIds: devices
|
||||
.where((e) => (e.productType == '1G'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
deviceIds: devices.where((e) => (e.productType == '1G')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case '2G':
|
||||
return TwoGangBatchControlView(
|
||||
deviceIds: devices
|
||||
.where((e) => (e.productType == '2G'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
deviceIds: devices.where((e) => (e.productType == '2G')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case '3G':
|
||||
return LivingRoomBatchControlsView(
|
||||
deviceIds: devices
|
||||
.where((e) => (e.productType == '3G'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
deviceIds: devices.where((e) => (e.productType == '3G')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case '1GT':
|
||||
return OneGangGlassSwitchBatchControlView(
|
||||
deviceIds: devices
|
||||
.where((e) => (e.productType == '1GT'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
deviceIds: devices.where((e) => (e.productType == '1GT')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case '2GT':
|
||||
return TwoGangGlassSwitchBatchControlView(
|
||||
deviceIds: devices
|
||||
.where((e) => (e.productType == '2GT'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
deviceIds: devices.where((e) => (e.productType == '2GT')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case '3GT':
|
||||
return ThreeGangGlassSwitchBatchControlView(
|
||||
deviceIds: devices
|
||||
.where((e) => (e.productType == '3GT'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
deviceIds: devices.where((e) => (e.productType == '3GT')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case 'GW':
|
||||
return GatewayBatchControlView(
|
||||
gatewayIds: devices
|
||||
.where((e) => (e.productType == 'GW'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
gatewayIds: devices.where((e) => (e.productType == 'GW')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case 'DL':
|
||||
return DoorLockBatchControlView(
|
||||
devicesIds: devices
|
||||
.where((e) => (e.productType == 'DL'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList());
|
||||
devicesIds: devices.where((e) => (e.productType == 'DL')).map((e) => e.uuid!).toList());
|
||||
case 'WPS':
|
||||
return WallSensorBatchControlView(
|
||||
devicesIds: devices
|
||||
.where((e) => (e.productType == 'WPS'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList());
|
||||
devicesIds: devices.where((e) => (e.productType == 'WPS')).map((e) => e.uuid!).toList());
|
||||
case 'CPS':
|
||||
return CeilingSensorBatchControlView(
|
||||
devicesIds: devices
|
||||
.where((e) => (e.productType == 'CPS'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
devicesIds: devices.where((e) => (e.productType == 'CPS')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case 'CUR':
|
||||
return CurtainBatchStatusView(
|
||||
devicesIds: devices
|
||||
.where((e) => (e.productType == 'CUR'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
devicesIds: devices.where((e) => (e.productType == 'CUR')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case 'AC':
|
||||
return AcDeviceBatchControlView(
|
||||
devicesIds: devices
|
||||
.where((e) => (e.productType == 'AC'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList());
|
||||
devicesIds: devices.where((e) => (e.productType == 'AC')).map((e) => e.uuid!).toList());
|
||||
case 'WH':
|
||||
return WaterHEaterBatchControlView(
|
||||
deviceIds: devices
|
||||
.where((e) => (e.productType == 'WH'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
deviceIds: devices.where((e) => (e.productType == 'WH')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case 'DS':
|
||||
return MainDoorSensorBatchView(
|
||||
devicesIds: devices
|
||||
.where((e) => (e.productType == 'DS'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
devicesIds: devices.where((e) => (e.productType == 'DS')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case 'GD':
|
||||
return GarageDoorBatchControlView(
|
||||
deviceIds: devices
|
||||
.where((e) => (e.productType == 'GD'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
deviceIds: devices.where((e) => (e.productType == 'GD')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case 'WL':
|
||||
return WaterLeakBatchControlView(
|
||||
deviceIds: devices
|
||||
.where((e) => (e.productType == 'WL'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
deviceIds: devices.where((e) => (e.productType == 'WL')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case 'PC':
|
||||
return PowerClampBatchControlView(
|
||||
deviceIds: devices
|
||||
.where((e) => (e.productType == 'PC'))
|
||||
.map((e) => e.uuid!)
|
||||
.toList(),
|
||||
deviceIds: devices.where((e) => (e.productType == 'PC')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
case 'SOS':
|
||||
return SOSBatchControlView(
|
||||
deviceIds: devices.where((e) => (e.productType == 'sos')).map((e) => e.uuid!).toList(),
|
||||
);
|
||||
default:
|
||||
return const SizedBox();
|
||||
|
74
lib/pages/device_managment/sos/bloc/sos_device_bloc.dart
Normal file
74
lib/pages/device_managment/sos/bloc/sos_device_bloc.dart
Normal file
@ -0,0 +1,74 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/all_devices/models/device_reports.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/sos/models/sos_status_model.dart';
|
||||
import 'package:syncrow_web/services/devices_mang_api.dart';
|
||||
|
||||
part 'sos_device_event.dart';
|
||||
part 'sos_device_state.dart';
|
||||
|
||||
class SosDeviceBloc extends Bloc<SosDeviceEvent, SosDeviceState> {
|
||||
SosDeviceBloc() : super(SosDeviceInitial()) {
|
||||
on<GetDeviceStatus>(_getDeviceStatus);
|
||||
on<GetBatchStatus>(_getBatchStatus);
|
||||
on<GetDeviceRecords>(_getDeviceRecords);
|
||||
on<GetDeviceAutomationRecords>(_getDeviceAutomationRecords);
|
||||
on<BackToSosStatusView>(_backToSosStatusView);
|
||||
}
|
||||
|
||||
late SosStatusModel deviceStatus;
|
||||
|
||||
FutureOr<void> _getDeviceStatus(GetDeviceStatus event, Emitter<SosDeviceState> emit) async {
|
||||
emit(SosDeviceLoadingState());
|
||||
try {
|
||||
final status = await DevicesManagementApi().getDeviceStatus(event.uuid);
|
||||
deviceStatus = SosStatusModel.fromJson(event.uuid, status.status);
|
||||
emit(SosDeviceLoadedState(deviceStatus));
|
||||
} catch (e) {
|
||||
emit(SosDeviceErrorState(e.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
FutureOr<void> _getBatchStatus(GetBatchStatus event, Emitter<SosDeviceState> emit) async {
|
||||
emit(SosDeviceLoadingState());
|
||||
try {
|
||||
final status = await DevicesManagementApi().getBatchStatus(event.uuids);
|
||||
deviceStatus = SosStatusModel.fromJson(event.uuids.first, status.status);
|
||||
emit(SosDeviceLoadedState(deviceStatus));
|
||||
} catch (e) {
|
||||
emit(SosDeviceErrorState(e.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
FutureOr<void> _getDeviceRecords(GetDeviceRecords event, Emitter<SosDeviceState> emit) async {
|
||||
emit(SosReportLoadingState());
|
||||
try {
|
||||
final from = DateTime.now().subtract(const Duration(days: 30)).millisecondsSinceEpoch;
|
||||
final to = DateTime.now().millisecondsSinceEpoch;
|
||||
final DeviceReport records =
|
||||
await DevicesManagementApi.getDeviceReportsByDate(event.uuid, 'sos', from.toString(), to.toString());
|
||||
emit(SosReportLoadedState(records));
|
||||
} catch (e) {
|
||||
emit(SosReportErrorState(e.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
FutureOr<void> _getDeviceAutomationRecords(GetDeviceAutomationRecords event, Emitter<SosDeviceState> emit) async {
|
||||
emit(SosAutomationReportLoadingState());
|
||||
try {
|
||||
final from = DateTime.now().subtract(const Duration(days: 30)).millisecondsSinceEpoch;
|
||||
final to = DateTime.now().millisecondsSinceEpoch;
|
||||
final DeviceReport records = await DevicesManagementApi.getDeviceReportsByDate(
|
||||
event.uuid, 'sos_automation', from.toString(), to.toString());
|
||||
emit(SosAutomationReportLoadedState(records));
|
||||
} catch (e) {
|
||||
emit(SosAutomationReportErrorState(e.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
FutureOr<void> _backToSosStatusView(BackToSosStatusView event, Emitter<SosDeviceState> emit) {
|
||||
emit(SosDeviceLoadedState(deviceStatus));
|
||||
}
|
||||
}
|
39
lib/pages/device_managment/sos/bloc/sos_device_event.dart
Normal file
39
lib/pages/device_managment/sos/bloc/sos_device_event.dart
Normal file
@ -0,0 +1,39 @@
|
||||
part of 'sos_device_bloc.dart';
|
||||
|
||||
sealed class SosDeviceEvent extends Equatable {
|
||||
const SosDeviceEvent();
|
||||
}
|
||||
|
||||
class GetDeviceStatus extends SosDeviceEvent {
|
||||
final String uuid;
|
||||
const GetDeviceStatus(this.uuid);
|
||||
@override
|
||||
List<Object?> get props => [uuid];
|
||||
}
|
||||
|
||||
class GetBatchStatus extends SosDeviceEvent {
|
||||
final List<String> uuids;
|
||||
const GetBatchStatus(this.uuids);
|
||||
@override
|
||||
List<Object?> get props => [uuids];
|
||||
}
|
||||
|
||||
class GetDeviceRecords extends SosDeviceEvent {
|
||||
final String uuid;
|
||||
|
||||
const GetDeviceRecords(this.uuid);
|
||||
@override
|
||||
List<Object?> get props => [uuid];
|
||||
}
|
||||
|
||||
class GetDeviceAutomationRecords extends SosDeviceEvent {
|
||||
final String uuid;
|
||||
const GetDeviceAutomationRecords(this.uuid);
|
||||
@override
|
||||
List<Object?> get props => [uuid];
|
||||
}
|
||||
|
||||
class BackToSosStatusView extends SosDeviceEvent {
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
82
lib/pages/device_managment/sos/bloc/sos_device_state.dart
Normal file
82
lib/pages/device_managment/sos/bloc/sos_device_state.dart
Normal file
@ -0,0 +1,82 @@
|
||||
part of 'sos_device_bloc.dart';
|
||||
|
||||
sealed class SosDeviceState extends Equatable {
|
||||
const SosDeviceState();
|
||||
}
|
||||
|
||||
final class SosDeviceInitial extends SosDeviceState {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
final class SosDeviceLoadingState extends SosDeviceState {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
final class SosDeviceLoadedState extends SosDeviceState {
|
||||
final SosStatusModel sosStatusModel;
|
||||
|
||||
const SosDeviceLoadedState(this.sosStatusModel);
|
||||
|
||||
@override
|
||||
List<Object> get props => [sosStatusModel];
|
||||
}
|
||||
|
||||
final class SosDeviceErrorState extends SosDeviceState {
|
||||
final String message;
|
||||
|
||||
const SosDeviceErrorState(this.message);
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
||||
|
||||
/// report state
|
||||
final class SosReportLoadingState extends SosDeviceState {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
final class SosReportLoadedState extends SosDeviceState {
|
||||
final DeviceReport sosReport;
|
||||
|
||||
const SosReportLoadedState(this.sosReport);
|
||||
|
||||
@override
|
||||
List<Object> get props => [sosReport];
|
||||
}
|
||||
|
||||
final class SosReportErrorState extends SosDeviceState {
|
||||
final String message;
|
||||
|
||||
const SosReportErrorState(this.message);
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
||||
|
||||
/// automation reports
|
||||
|
||||
final class SosAutomationReportLoadingState extends SosDeviceState {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
final class SosAutomationReportLoadedState extends SosDeviceState {
|
||||
final DeviceReport automationReport;
|
||||
|
||||
const SosAutomationReportLoadedState(this.automationReport);
|
||||
|
||||
@override
|
||||
List<Object> get props => [automationReport];
|
||||
}
|
||||
|
||||
final class SosAutomationReportErrorState extends SosDeviceState {
|
||||
final String message;
|
||||
|
||||
const SosAutomationReportErrorState(this.message);
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
34
lib/pages/device_managment/sos/models/sos_status_model.dart
Normal file
34
lib/pages/device_managment/sos/models/sos_status_model.dart
Normal file
@ -0,0 +1,34 @@
|
||||
import 'package:syncrow_web/pages/device_managment/all_devices/models/device_status.dart';
|
||||
|
||||
class SosStatusModel {
|
||||
final int batteryLevel;
|
||||
final String sosStatus;
|
||||
final String deviceId;
|
||||
|
||||
SosStatusModel({
|
||||
required this.batteryLevel,
|
||||
required this.sosStatus,
|
||||
required this.deviceId,
|
||||
});
|
||||
|
||||
factory SosStatusModel.fromJson(String deviceId, List<Status> statuses) {
|
||||
late int batteryLevel;
|
||||
late String sosStatus;
|
||||
|
||||
for (var status in statuses) {
|
||||
switch (status.code) {
|
||||
case 'battery_percentage':
|
||||
batteryLevel = status.value;
|
||||
break;
|
||||
case 'sos':
|
||||
sosStatus = status.value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return SosStatusModel(
|
||||
deviceId: deviceId,
|
||||
batteryLevel: batteryLevel,
|
||||
sosStatus: sosStatus,
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SOSBatchControlView extends StatelessWidget {
|
||||
const SOSBatchControlView({
|
||||
super.key,
|
||||
required this.deviceIds,
|
||||
});
|
||||
|
||||
final List<String> deviceIds;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const Placeholder();
|
||||
}
|
||||
}
|
137
lib/pages/device_managment/sos/view/sos_device_control_view.dart
Normal file
137
lib/pages/device_managment/sos/view/sos_device_control_view.dart
Normal file
@ -0,0 +1,137 @@
|
||||
// sos device control view
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/all_devices/models/devices_model.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/main_door_sensor/view/main_door_control_view.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/shared/table/report_table.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/sos/bloc/sos_device_bloc.dart';
|
||||
import 'package:syncrow_web/utils/color_manager.dart';
|
||||
import 'package:syncrow_web/utils/constants/assets.dart';
|
||||
import 'package:syncrow_web/utils/helpers/responsice_layout_helper/responsive_layout_helper.dart';
|
||||
|
||||
import '../models/sos_status_model.dart';
|
||||
|
||||
class SosDeviceControlsView extends StatelessWidget with HelperResponsiveLayout {
|
||||
const SosDeviceControlsView({
|
||||
super.key,
|
||||
required this.device,
|
||||
});
|
||||
|
||||
final AllDevicesModel device;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocProvider(
|
||||
create: (context) => SosDeviceBloc()..add(GetDeviceStatus(device.uuid!)),
|
||||
child: BlocBuilder<SosDeviceBloc, SosDeviceState>(
|
||||
builder: (context, state) {
|
||||
if (state is SosDeviceLoadingState) {
|
||||
return const Center(child: CircularProgressIndicator());
|
||||
} else if (state is SosDeviceLoadedState) {
|
||||
return _buildStatusControls(context, state.sosStatusModel);
|
||||
} else if (state is SosReportLoadedState) {
|
||||
return ReportsTable(
|
||||
report: state.sosReport,
|
||||
hideValueShowDescription: true,
|
||||
garageDoorSensor: true,
|
||||
onRowTap: (index) {},
|
||||
onClose: () {
|
||||
context.read<SosDeviceBloc>().add(BackToSosStatusView());
|
||||
},
|
||||
);
|
||||
} else if (state is SosAutomationReportLoadedState) {
|
||||
return ReportsTable(
|
||||
report: state.automationReport,
|
||||
hideValueShowDescription: true,
|
||||
garageDoorSensor: true,
|
||||
onRowTap: (index) {},
|
||||
onClose: () {
|
||||
context.read<SosDeviceBloc>().add(BackToSosStatusView());
|
||||
},
|
||||
);
|
||||
} else if (state is SosDeviceErrorState) {
|
||||
return const Center(child: Text('Error fetching status'));
|
||||
} else if (state is SosAutomationReportErrorState) {
|
||||
return Center(child: Text('Error: ${state.message.toString()}'));
|
||||
} else if (state is SosReportErrorState) {
|
||||
return Center(child: Text('Error: ${state.message.toString()}'));
|
||||
}
|
||||
return const Center(child: CircularProgressIndicator());
|
||||
},
|
||||
));
|
||||
}
|
||||
|
||||
Widget _buildStatusControls(BuildContext context, SosStatusModel deviceStatus) {
|
||||
final isExtraLarge = isExtraLargeScreenSize(context);
|
||||
final isLarge = isLargeScreenSize(context);
|
||||
final isMedium = isMediumScreenSize(context);
|
||||
return GridView(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 50),
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
||||
crossAxisCount: isLarge || isExtraLarge
|
||||
? 3
|
||||
: isMedium
|
||||
? 2
|
||||
: 1,
|
||||
mainAxisExtent: 140,
|
||||
crossAxisSpacing: 12,
|
||||
mainAxisSpacing: 12,
|
||||
),
|
||||
children: [
|
||||
IconNameStatusContainer(
|
||||
isFullIcon: false,
|
||||
name: deviceStatus.sosStatus == 'sos' ? 'SOS' : 'normal',
|
||||
icon: deviceStatus.sosStatus == 'sos' ? Assets.sos : Assets.sosNormal,
|
||||
onTap: () {},
|
||||
status: false,
|
||||
textColor: ColorsManager.blackColor,
|
||||
),
|
||||
IconNameStatusContainer(
|
||||
isFullIcon: false,
|
||||
name: 'SOS Records',
|
||||
icon: Assets.records,
|
||||
onTap: () {
|
||||
context.read<SosDeviceBloc>().add(
|
||||
GetDeviceRecords(
|
||||
device.uuid!,
|
||||
),
|
||||
);
|
||||
},
|
||||
status: false,
|
||||
textColor: ColorsManager.blackColor,
|
||||
),
|
||||
IconNameStatusContainer(
|
||||
isFullIcon: false,
|
||||
name: 'Automation Record',
|
||||
icon: Assets.automationRecords,
|
||||
onTap: () {
|
||||
context.read<SosDeviceBloc>().add(
|
||||
GetDeviceAutomationRecords(
|
||||
device.uuid!,
|
||||
),
|
||||
);
|
||||
},
|
||||
status: false,
|
||||
textColor: ColorsManager.blackColor,
|
||||
),
|
||||
IconNameStatusContainer(
|
||||
isFullIcon: false,
|
||||
name: 'Alarm Settings',
|
||||
icon: Assets.mainDoorNotifi,
|
||||
onTap: () {
|
||||
// showDialog(
|
||||
// context: context,
|
||||
// builder: (context) => const NotificationDialog(),
|
||||
// );
|
||||
},
|
||||
status: false,
|
||||
textColor: ColorsManager.blackColor,
|
||||
paddingAmount: 14,
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
@ -60,29 +60,23 @@ class Assets {
|
||||
static const String nobodyTime = "assets/icons/nobody_time.svg";
|
||||
|
||||
// Automation functions
|
||||
static const String tempPasswordUnlock =
|
||||
"assets/icons/automation_functions/temp_password_unlock.svg";
|
||||
static const String doorlockNormalOpen =
|
||||
"assets/icons/automation_functions/doorlock_normal_open.svg";
|
||||
static const String tempPasswordUnlock = "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 remoteUnlockViaApp =
|
||||
"assets/icons/automation_functions/remote_unlock_via_app.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 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 residualElectricity =
|
||||
"assets/icons/automation_functions/residual_electricity.svg";
|
||||
static const String residualElectricity = "assets/icons/automation_functions/residual_electricity.svg";
|
||||
static const String hijackAlarm = "assets/icons/automation_functions/hijack_alarm.svg";
|
||||
static const String passwordUnlock = "assets/icons/automation_functions/password_unlock.svg";
|
||||
static const String remoteUnlockRequest =
|
||||
"assets/icons/automation_functions/remote_unlock_req.svg";
|
||||
static const String remoteUnlockRequest = "assets/icons/automation_functions/remote_unlock_req.svg";
|
||||
static const String cardUnlock = "assets/icons/automation_functions/card_unlock.svg";
|
||||
static const String motion = "assets/icons/automation_functions/motion.svg";
|
||||
static const String fingerprintUnlock =
|
||||
"assets/icons/automation_functions/fingerprint_unlock.svg";
|
||||
static const String fingerprintUnlock = "assets/icons/automation_functions/fingerprint_unlock.svg";
|
||||
|
||||
// Presence Sensor Assets
|
||||
static const String sensorMotionIcon = "assets/icons/sensor_motion_ic.svg";
|
||||
@ -192,4 +186,10 @@ class Assets {
|
||||
|
||||
//assets/icons/logo_grey.svg
|
||||
static const String logoGrey = 'assets/icons/logo-grey.svg';
|
||||
|
||||
//assets/icons/sos.svg
|
||||
static const String sos = 'assets/icons/sos.svg';
|
||||
|
||||
//assets/icons/sos_normal.svg
|
||||
static const String sosNormal = 'assets/icons/sos_normal.svg';
|
||||
}
|
||||
|
Reference in New Issue
Block a user