added new icons
This commit is contained in:
parent
ec4a95f906
commit
301faf4387
3
flutter/assets/audio.svg
Normal file
3
flutter/assets/audio.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Gravit.io -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="-132.5 51.6 32 32" width="32pt" height="32pt"><g><path d=" M -132.5 51.6 L -100.5 51.6 L -100.5 83.6 L -132.5 83.6 L -132.5 51.6 Z " fill="none"/><path d=" M -121.174 62.931 L -124.45 62.931 C -126.106 62.931 -127.45 64.275 -127.45 65.931 L -127.45 69.269 C -127.45 70.925 -126.106 72.269 -124.45 72.269 L -121.174 72.269 L -117.5 75.112 C -116.368 75.987 -115.45 75.537 -115.45 74.106 L -115.45 61.094 C -115.45 59.663 -116.368 59.213 -117.5 60.088 L -121.174 62.931 Z M -112.94 65.028 C -113.17 64.898 -113.34 64.678 -113.41 64.428 C -113.48 64.168 -113.45 63.898 -113.32 63.668 C -113.19 63.438 -112.97 63.268 -112.72 63.198 C -112.46 63.128 -112.19 63.158 -111.96 63.288 C -110.41 64.168 -109.45 65.818 -109.45 67.598 C -109.45 69.378 -110.41 71.038 -111.96 71.908 C -112.19 72.048 -112.46 72.078 -112.72 72.008 C -112.97 71.938 -113.19 71.768 -113.32 71.538 C -113.45 71.308 -113.48 71.028 -113.41 70.778 C -113.34 70.518 -113.17 70.308 -112.94 70.168 C -112.02 69.648 -111.45 68.668 -111.45 67.598 C -111.45 66.538 -112.02 65.548 -112.94 65.028 Z M -110.85 61.908 C -111.08 61.778 -111.25 61.568 -111.32 61.308 C -111.39 61.058 -111.36 60.778 -111.22 60.548 C -111.09 60.318 -110.88 60.148 -110.62 60.078 C -110.37 60.008 -110.09 60.038 -109.86 60.168 C -107.19 61.688 -105.54 64.528 -105.55 67.598 C -105.54 70.668 -107.19 73.518 -109.86 75.028 C -110.09 75.158 -110.37 75.188 -110.62 75.118 C -110.88 75.048 -111.09 74.878 -111.22 74.648 C -111.36 74.418 -111.39 74.148 -111.32 73.888 C -111.25 73.638 -111.08 73.418 -110.85 73.288 C -108.8 72.128 -107.54 69.948 -107.55 67.598 C -107.54 65.248 -108.8 63.068 -110.85 61.908 Z " fill-rule="evenodd" fill="rgb(0,0,0)"/></g></svg>
|
After Width: | Height: | Size: 1.8 KiB |
3
flutter/assets/clipboard.svg
Normal file
3
flutter/assets/clipboard.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Gravit.io -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="-132.5 17.8 32 32" width="32pt" height="32pt"><g><path d=" M -132.5 17.8 L -100.5 17.8 L -100.5 49.8 L -132.5 49.8 L -132.5 17.8 Z " fill="none"/><path d=" M -119.871 37.416 L -113.129 37.416 C -112.72 37.416 -112.388 37.748 -112.388 38.157 L -112.388 38.157 C -112.388 38.566 -112.72 38.898 -113.129 38.898 L -119.871 38.898 C -120.28 38.898 -120.612 38.566 -120.612 38.157 L -120.612 38.157 C -120.612 37.748 -120.28 37.416 -119.871 37.416 L -119.871 37.416 L -119.871 37.416 Z M -119.871 34.431 L -113.129 34.431 C -112.72 34.431 -112.388 34.763 -112.388 35.172 L -112.388 35.172 C -112.388 35.581 -112.72 35.913 -113.129 35.913 L -119.871 35.913 C -120.28 35.913 -120.612 35.581 -120.612 35.172 L -120.612 35.172 C -120.612 34.763 -120.28 34.431 -119.871 34.431 L -119.871 34.431 Z M -119.871 31.446 L -113.129 31.446 C -112.72 31.446 -112.388 31.778 -112.388 32.187 L -112.388 32.187 C -112.388 32.596 -112.72 32.928 -113.129 32.928 L -119.871 32.928 C -120.28 32.928 -120.612 32.596 -120.612 32.187 L -120.612 32.187 C -120.612 31.778 -120.28 31.446 -119.871 31.446 Z M -119.124 26.359 L -120.052 26.359 L -120.052 26.359 C -120.971 26.359 -121.846 26.718 -122.494 27.365 C -123.141 28.013 -123.5 28.888 -123.5 29.806 L -123.5 39.711 C -123.5 40.621 -123.141 41.505 -122.494 42.153 C -121.846 42.791 -120.971 43.159 -120.052 43.159 L -112.947 43.159 C -112.037 43.159 -111.154 42.791 -110.515 42.153 C -109.867 41.505 -109.5 40.621 -109.5 39.711 L -109.5 29.806 C -109.5 28.888 -109.867 28.013 -110.515 27.365 C -111.154 26.718 -112.037 26.359 -112.947 26.359 L -113.876 26.359 C -113.903 25.296 -114.774 24.441 -115.844 24.441 L -117.156 24.441 C -118.226 24.441 -119.097 25.296 -119.124 26.359 Z M -119.087 28.109 L -120.052 28.109 L -120.052 28.109 C -120.507 28.109 -120.936 28.284 -121.251 28.608 C -121.575 28.923 -121.75 29.351 -121.75 29.806 L -121.75 39.711 C -121.75 40.158 -121.575 40.595 -121.251 40.91 C -120.936 41.234 -120.507 41.409 -120.052 41.409 L -112.947 41.409 C -112.501 41.409 -112.064 41.234 -111.749 40.91 C -111.434 40.595 -111.25 40.158 -111.25 39.711 L -111.25 29.806 C -111.25 29.351 -111.434 28.923 -111.749 28.608 C -112.064 28.284 -112.501 28.109 -112.947 28.109 L -113.913 28.109 C -114.093 29.011 -114.89 29.691 -115.844 29.691 L -117.156 29.691 C -118.11 29.691 -118.907 29.011 -119.087 28.109 Z " fill-rule="evenodd" fill="rgb(0,0,0)"/></g></svg>
|
After Width: | Height: | Size: 2.5 KiB |
3
flutter/assets/restart.svg
Normal file
3
flutter/assets/restart.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Gravit.io -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="-132.5 119.2 32 32" width="32pt" height="32pt"><g><path d=" M -113.503 139.238 L -111.549 139.238 C -110.597 139.238 -109.68 138.876 -109.006 138.231 C -108.327 137.59 -107.947 136.719 -107.947 135.813 L -107.947 129.787 C -107.947 128.882 -108.327 128.01 -109.006 127.369 C -109.68 126.724 -110.597 126.363 -111.549 126.363 L -121.451 126.363 L -121.451 126.363 C -122.403 126.363 -123.32 126.724 -123.994 127.369 C -124.673 128.01 -125.053 128.882 -125.053 129.787 L -125.053 135.813 C -125.053 136.719 -124.673 137.59 -123.994 138.231 C -123.32 138.876 -122.403 139.238 -121.451 139.238 L -119.497 139.238 L -113.503 139.238 L -113.503 139.238 L -113.503 139.238 Z M -112.689 141.551 L -110.206 141.551 C -108.994 141.551 -107.828 141.068 -106.972 140.204 C -106.108 139.347 -105.625 138.181 -105.625 136.97 L -105.625 128.91 C -105.625 127.699 -106.108 126.533 -106.972 125.676 C -107.828 124.813 -108.994 124.33 -110.206 124.33 L -122.794 124.33 L -122.794 124.33 C -124.006 124.33 -125.172 124.813 -126.029 125.676 C -126.892 126.533 -127.375 127.699 -127.375 128.91 L -127.375 136.97 C -127.375 138.181 -126.892 139.347 -126.029 140.204 C -125.172 141.068 -124.006 141.551 -122.794 141.551 L -120.311 141.551 L -120.311 144.887 C -120.311 146.465 -112.689 146.465 -112.689 144.887 L -112.689 141.551 L -112.689 141.551 L -112.689 141.551 Z M -119.529 132.648 C -119.529 132.961 -119.782 133.215 -120.095 133.215 C -120.408 133.215 -120.662 132.961 -120.662 132.648 C -120.661 131.029 -119.721 129.557 -118.251 128.876 C -116.782 128.195 -115.051 128.429 -113.815 129.476 L -113.815 129.035 C -113.815 128.722 -113.561 128.468 -113.248 128.468 C -112.935 128.468 -112.681 128.722 -112.681 129.035 L -112.681 130.822 C -112.681 131.133 -112.934 131.386 -113.245 131.386 L -114.965 131.546 C -115.275 131.574 -115.55 131.345 -115.578 131.034 C -115.606 130.724 -115.377 130.449 -115.066 130.421 L -114.502 130.37 C -115.397 129.588 -116.666 129.401 -117.749 129.891 C -118.831 130.382 -119.527 131.46 -119.529 132.648 L -119.529 132.648 Z M -117.923 134.03 C -117.612 134.002 -117.337 134.232 -117.309 134.543 C -117.281 134.855 -117.51 135.13 -117.822 135.158 L -118.532 135.222 C -117.644 136.027 -116.365 136.232 -115.269 135.745 C -114.174 135.258 -113.469 134.171 -113.471 132.973 C -113.471 132.66 -113.218 132.406 -112.905 132.406 C -112.592 132.406 -112.338 132.66 -112.338 132.973 C -112.338 134.57 -113.253 136.027 -114.692 136.72 C -116.131 137.414 -117.841 137.221 -119.09 136.225 L -119.09 136.52 C -119.09 136.833 -119.344 137.087 -119.657 137.087 C -119.97 137.087 -120.224 136.833 -120.224 136.52 L -120.224 134.755 L -120.224 134.755 C -120.225 134.462 -120.001 134.217 -119.71 134.191 L -117.925 134.029 L -117.923 134.03 L -117.923 134.03 Z " fill-rule="evenodd" fill="rgb(0,0,0)"/><path d=" M -132.5 119.2 L -100.5 119.2 L -100.5 151.2 L -132.5 151.2 L -132.5 119.2 Z " fill="none"/></g></svg>
|
After Width: | Height: | Size: 3.0 KiB |
@ -68,19 +68,6 @@ typedef F = String Function(String);
|
||||
typedef FMethod = String Function(String, dynamic);
|
||||
|
||||
typedef StreamEventHandler = Future<void> Function(Map<String, dynamic>);
|
||||
|
||||
final iconKeyboard = MemoryImage(Uint8List.fromList(base64Decode(
|
||||
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAgVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9d3yJTAAAAKnRSTlMA0Gd/0y8ILZgbJffDPUwV2nvzt+TMqZxyU7CMb1pYQyzsvKunkXE4AwJnNC24AAAA+0lEQVQ4y83O2U7DMBCF4ZMxk9rZk26kpQs7nPd/QJy4EiLbLf01N5Y/2YP/qxDFQvGB5NPC/ZpVnfJx4b5xyGfF95rkHvNCWH1u+N6J6T0sC7gqRy8uGPfBLEbozPXUjlkQKwGaFPNizwQbwkx0TDvhCii34ExZCSQVBdzIOEOyeclSHgBGXkpeygXSQgStACtWx4Z8rr8COHOvfEP/IbbsQAToFUAAV1M408IIjIGYAPoCSNRP7DQutfQTqxuAiH7UUg1FaJR2AGrrx52sK2ye28LZ0wBAEyR6y8X+NADhm1B4fgiiHXbRrTrxpwEY9RdM9wsepnvFHfUDwYEeiwAJr/gAAAAASUVORK5CYII=")));
|
||||
final iconClipboard = MemoryImage(Uint8List.fromList(base64Decode(
|
||||
'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAjVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8DizOFAAAALnRSTlMAnIsyZy8YZF3NSAuabRL34cq6trCScyZ4qI9CQDwV+fPl2tnTwzkeB+m/pIFK/Xx0ewAAAQlJREFUOMudktduhDAQRWep69iY3tle0+7/f16Qg7MsJUQ5Dwh8jzRzhemJPIaf3GiW7eFQfOwDPp1ek/iMnKgBi5PrhJAhZAa1lCxE9pw5KWMswOMAQXuQOvqTB7tLFJ36wimKLrufZTzUaoRtdthqRA2vEwS+tR4qguiElRKk1YMrYfUQRkwLmwVBYDMvJKF8R0o3V2MOhNrfo+hXSYYjPn1L/S+n438t8gWh+q1F+cYFBMm1Jh8Ia7y2OWXQxMMRLqr2eTc1crSD84cWfEGwYM4LlaACEee2ZjsQXJxR3qmYb+GpC8ZfNM5oh3yxxbxgQE7lEkb3ZvvH1BiRHn1bu02ICcKGWr4AudUkyYxmvywAAAAASUVORK5CYII=')));
|
||||
final iconAudio = MemoryImage(Uint8List.fromList(base64Decode(
|
||||
'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAk1BMVEUAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ROyVeAAAAMHRSTlMAgfz08DDqCAThvraZjEcoGA751JxzbGdfTRP25NrIpaGTcEM+HAvMuKinhXhWNx9Yzm/gAAABFUlEQVQ4y82S2XLCMAxFheMsQNghCQFalkL39vz/11V4GpNk0r629+Va1pmxPFfyh1ravOP2Y1ydJmBO0lYP3r+PyQ62s2Y7fgF6VRXOYdToT++ogIuoVhCUtX7YpwJG3F8f6V8rr3WABwwUahlEvr8y3IBniGKdKYBQ5OGQpukQakBpIVcfwptIhJcf8hWGakdndAAhBInIGHbdQGJg6jjbDUgEE5EpmB+AAM4uj6gb+AQT6wdhITLvAHJ4VCtgoAlG1tpNA0gWON/f4ioHdSADc1bfgt+PZFkDlD6ojWF+kVoaHlhvFjPHuVRrefohY1GdcFm1N8JvwEyrJ/X2Th2rIoVgIi3Fo6Xf0z5k8psKu5f/oi+nHjjI92o36AAAAABJRU5ErkJggg==')));
|
||||
final iconFile = MemoryImage(Uint8List.fromList(base64Decode(
|
||||
'iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAUVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////8IN+deAAAAGnRSTlMAH+CAESEN8jyZkcIb5N/ONy3vmHhmiGjUm7UwS+YAAAHZSURBVGje7dnbboMwDIBhBwgQoFAO7Ta//4NOqCAXYZQstatq4r+r5ubrgQSpg8iyC4ZURa+PlIpQYGiwrzyeHtYZjAL8T05O4H8BbbKvFgRa4NoBU8pXeYEkDDgaaLQBcwJrmeErJQB/7wes3QBWGnCIX0+AQycL1PO6BMwPa0nA4ZxbgTvOjUYMGPHRnZkQAY4mxPZBjmy53E7ukSkFKYB/D4XsWZQx64sCeYebOogGsoOBYvv6/UCb8F0IOBZ0TlP6lEYdANY350AJqB9/qPVuOI5evw4A1hgLigAlepnyxW80bcCcwN++A2s82Vcu02ta+ceq9BoL5KGTTRwQPlpqA3gCnwWU2kCDgeWRQPj2jAPCDxgCMjhI6uZnToDpvd/BJeFrJQB/fsAa02gCt3mi1wNuy8GgBNDZlysBNNSrADVSjcJl6vCpUn6jOdx0kz0q6PMhQRa4465SFKhx35cgUCBTwj2/NHwZAb71qR8GEP2H1XcmAtBPTEO67GP6FUUAIKGABbDLQ0EArhN2sAIGesRO+iyy+RMAjckVTlMCKFVAbh/4Af9OPgG61SkDVco3BQGT3GXaDAnTIAcYZDuBTwGsAGDxuBFeAQqIqwoFMlAVLrHr/wId5MPt0nilGgAAAABJRU5ErkJggg==')));
|
||||
final iconRestart = MemoryImage(Uint8List.fromList(base64Decode(
|
||||
'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAB7BAAAewQHDaVRTAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAbhJREFUWIXVlrFqFGEUhb+7UYxaWCQKlrKKxaZSQVGDJih2tj6MD2DnMwiWvoAIRnENIpZiYxEro6IooiS7SPwsMgNLkk3mjmYmnmb45/73nMNwz/x/qH3gMu2gH6rAU+Blw+Lngau4jpmGxVF7qp1iPWjaQKnZ2WnXbuP/NqAeUPc3ZkA9XDwvqc+BVWCgPlJ7tRwUKThZce819b46VH+pfXVRXVO/q2cSul3VOgZUl0ejq86r39TXI8mqZKDuDEwCw3IREQvAbWAGmMsQZQ0sAl3gHPB1Q+0e8BuYzRDuy2yOiFVgaUxtRf0ETGc4syk4rc6PqU0Cx9j8Zf6dAeAK8Fi9sUXtFjABvEgxJlNwRP2svlNPjbw/q35U36oTFbnyMSwabxb/gB/qA3VBHagrauV7RW0DRfP1IvMlXqkXkhz1DYyQTKtHa/Z2VVMx3IiI+PI3/bCHjuOpFrSnAMpL6QfgTcMGesDx0kBr2BMzsNyi/vtQu8CJlgwsRbZDnWP90NkKaxHxJMOXMqAeAn5u0ydwMCKGY+qbkB3C2W3EKWoXk5zVoHbUZ+6Mh7tl4G4F8RJ3qvL+AfV3r5Vdpj70AAAAAElFTkSuQmCC')));
|
||||
final iconRecording = MemoryImage(Uint8List.fromList(base64Decode(
|
||||
'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAANpJREFUWEftltENAiEMhtsJ1NcynG6gI+gGugEOR591gppeQoIYSDBILxEeydH/57u2FMF4obE+TAOTwLoIhBDOAHBExG2n6rgR0akW640AM0sn4SWMiDycc7s8JjN7Ijro/k8NqAAR5RoeAPZxv2ggP9hCJiWZxtGbq3hqbJiBVHy4gVx8qAER8Yi4JFy6huVAKXemgb8icI+1b5KEitq0DOO/Nm1EEX1TK27p/bVvv36MOhl4EtHHbFF7jq8AoG1z08OAiFycczrkFNe6RrIet26NMQlMAuYEXiayryF/QQktAAAAAElFTkSuQmCC')));
|
||||
final iconHardDrive = MemoryImage(Uint8List.fromList(base64Decode(
|
||||
'iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAAmVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjHWqVAAAAMnRSTlMAv0BmzLJNXlhiUu2fxXDgu7WuSUUe29LJvpqUjX53VTstD7ilNujCqTEk5IYH+vEoFjKvAagAAAPpSURBVHja7d0JbhpBEIXhB3jYzb5vBgzYgO04df/DJXGUKMwU9ECmZ6pQfSfw028LCXW3YYwxxhhjjDHGGGOM0eZ9VV1MckdKWLM1bRQ/35GW/WxHHu1me6ShuyHvNl34VhlTKsYVeDWj1EzgUZ1S1DrAk/UDparZgxd9Sl0BHnxSBhpI3jfKQG2FpLUpE69I2ILikv1nsvygjBwPSNKYMlNHggqUoSKS80AZCnwHqQ1zCRvW+CRegwRFeFAMKKrtM8gTPJlzSfwFgT9dJom3IDN4VGaSeAryAK8m0SSeghTg1ZYiql6CjBDhO8mzlyAVhKhIwgXxrh5NojGIhyRckEdwpCdhgpSQgiWTRGMQNonGIGySp0SDvMDBX5KWxiB8Eo1BgE00SYJBykhNnkmSWJAcLpGaJNMgfJKyxiDAK4WNEwryhMtkJsk8CJtEYxA+icYgQIfCcgkEqcJNXhIRQdgkGoPwSTQG+e8khdu/7JOVREwQIKCwF41B2CQljUH4JLcH6SI+OUlEBQHa0SQag/BJNAbhkjxqDMIn0RgEeI4muSlID9eSkERgEKAVTaIxCJ9EYxA2ydVB8hCASVLRGAQYR5NoDMIn0RgEyFHYSGMQPonGII4kziCNvBgNJonEk4u3GAk8Sprk6eYaqbMDY0oKvUm5jfC/viGiSypV7+M3i2iDsAGpNEDYjlTa3W8RdR/r544g50ilnA0RxoZIE2NIXqQbhkAkGyKNDZHGhkhjQ6SxIdLYEGlsiDQ2JGTVeD0264U9zipPh7XOooffpA6pfNCXjxl4/c3pUzlChwzor53zwYYVfpI5pOV6LWFF/2jiJ5FDSs5jdY/0rwUAkUMeXWdBqnSqD0DikBqdqCHsjTvELm9In0IOri/0pwAEDtlSyNaRjAIAAoesKWTtuusxByBwCJp0oomwBXcYUuCQgE50ENajE4OvZAKHLB1/68Br5NqiyCGYOY8YRd77kTkEb64n7lZN+mOIX4QOwb5FX0ZVx3uOxwW+SB0CbBubemWP8/rlaaeRX+M3uUOuZENsiA25zIbYkPsZElBIHwL13U/PTjJ/cyOOEoVM3I+hziDQlELm7pPxw3eI8/7gPh1fpLA6xGnEeDDgO0UcIAzzM35HxLPIq5SXe9BLzOsj9eUaQqyXzxS1QFSfWM2cCANiHcAISJ0AnCKpUwTuIkkA3EeSInAXSQKcs1V18e24wlllUmQp9v9zXKeHi+akRAMOPVKhAqdPBZeUmnnEsO6QcJ0+4qmOSbBxFfGVRiTUqITrdKcCbyYO3/K4wX4+aQ+FfNjXhu3JfAVjjDHGGGOMMcYYY4xIPwCgfqT6TbhCLAAAAABJRU5ErkJggg==')));
|
||||
|
||||
|
@ -70,25 +70,28 @@ class _DesktopServerPageState extends State<DesktopServerPage>
|
||||
Widget build(BuildContext context) {
|
||||
super.build(context);
|
||||
return MultiProvider(
|
||||
providers: [
|
||||
ChangeNotifierProvider.value(value: gFFI.serverModel),
|
||||
ChangeNotifierProvider.value(value: gFFI.chatModel),
|
||||
],
|
||||
child: Consumer<ServerModel>(
|
||||
builder: (context, serverModel, child) => Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(color: MyTheme.color(context).border!)),
|
||||
child: Scaffold(
|
||||
backgroundColor: Theme.of(context).colorScheme.background,
|
||||
body: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(child: ConnectionManager()),
|
||||
],
|
||||
),
|
||||
),
|
||||
))));
|
||||
providers: [
|
||||
ChangeNotifierProvider.value(value: gFFI.serverModel),
|
||||
ChangeNotifierProvider.value(value: gFFI.chatModel),
|
||||
],
|
||||
child: Consumer<ServerModel>(
|
||||
builder: (context, serverModel, child) => Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(color: MyTheme.color(context).border!)),
|
||||
child: Scaffold(
|
||||
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
|
||||
body: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(child: ConnectionManager()),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
@ -408,23 +411,39 @@ class _PrivilegeBoard extends StatefulWidget {
|
||||
|
||||
class _PrivilegeBoardState extends State<_PrivilegeBoard> {
|
||||
late final client = widget.client;
|
||||
Widget buildPermissionTile(bool enabled, ImageProvider icon,
|
||||
Function(bool)? onTap, String tooltipText) {
|
||||
Widget buildPermissionTile(bool enabled, String assetPath,
|
||||
Function(bool)? onTap, String permissionText, String tooltipText) {
|
||||
return Row(
|
||||
children: [
|
||||
Tooltip(
|
||||
message: tooltipText,
|
||||
child: Image(
|
||||
image: icon,
|
||||
width: 50,
|
||||
height: 50,
|
||||
fit: BoxFit.scaleDown,
|
||||
),
|
||||
),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: MyTheme.accent,
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(10.0),
|
||||
),
|
||||
),
|
||||
child: SvgPicture.asset(
|
||||
assetPath,
|
||||
color: Colors.white,
|
||||
width: 40.0,
|
||||
height: 40.0,
|
||||
),
|
||||
).paddingOnly(left: 5.0, bottom: 5.0),
|
||||
).paddingOnly(right: 8.0),
|
||||
SizedBox(
|
||||
child: Text(
|
||||
permissionText,
|
||||
style: TextStyle(fontSize: 18),
|
||||
),
|
||||
width: 250),
|
||||
Switch(
|
||||
value: enabled,
|
||||
onChanged: (v) =>
|
||||
checkClickTime(widget.client.id, () => onTap?.call(v)),
|
||||
onChanged: (v) => checkClickTime(
|
||||
widget.client.id,
|
||||
() => onTap?.call(v),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
@ -433,62 +452,113 @@ class _PrivilegeBoardState extends State<_PrivilegeBoard> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
margin: EdgeInsets.only(top: 16.0, bottom: 8.0),
|
||||
margin: EdgeInsets.only(top: 16.0, bottom: 8.0, left: 5.0, right: 5.0),
|
||||
padding: EdgeInsets.all(5.0),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10.0),
|
||||
color: Theme.of(context).colorScheme.background,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.black.withOpacity(0.2),
|
||||
spreadRadius: 1,
|
||||
blurRadius: 1,
|
||||
offset: Offset(0, 1.5), // changes position of shadow
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
translate("Permissions"),
|
||||
style: TextStyle(fontSize: 16),
|
||||
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
|
||||
textAlign: TextAlign.center,
|
||||
).marginOnly(left: 4.0),
|
||||
SizedBox(
|
||||
height: 8.0,
|
||||
),
|
||||
FittedBox(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
buildPermissionTile(client.keyboard, iconKeyboard, (enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "keyboard", enabled: enabled);
|
||||
setState(() {
|
||||
client.keyboard = enabled;
|
||||
});
|
||||
}, translate('Allow using keyboard and mouse')),
|
||||
buildPermissionTile(client.clipboard, iconClipboard, (enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "clipboard", enabled: enabled);
|
||||
setState(() {
|
||||
client.clipboard = enabled;
|
||||
});
|
||||
}, translate('Allow using clipboard')),
|
||||
buildPermissionTile(client.audio, iconAudio, (enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "audio", enabled: enabled);
|
||||
setState(() {
|
||||
client.audio = enabled;
|
||||
});
|
||||
}, translate('Allow hearing sound')),
|
||||
buildPermissionTile(client.file, iconFile, (enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "file", enabled: enabled);
|
||||
setState(() {
|
||||
client.file = enabled;
|
||||
});
|
||||
}, translate('Allow file copy and paste')),
|
||||
buildPermissionTile(client.restart, iconRestart, (enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "restart", enabled: enabled);
|
||||
setState(() {
|
||||
client.restart = enabled;
|
||||
});
|
||||
}, translate('Allow remote restart')),
|
||||
buildPermissionTile(client.recording, iconRecording, (enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "recording", enabled: enabled);
|
||||
setState(() {
|
||||
client.recording = enabled;
|
||||
});
|
||||
}, translate('Allow recording session'))
|
||||
buildPermissionTile(
|
||||
client.keyboard,
|
||||
"assets/keyboard.svg",
|
||||
(enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "keyboard", enabled: enabled);
|
||||
setState(() {
|
||||
client.keyboard = enabled;
|
||||
});
|
||||
},
|
||||
translate("Input Control"),
|
||||
translate('Allow using keyboard and mouse'),
|
||||
),
|
||||
buildPermissionTile(
|
||||
client.clipboard,
|
||||
"assets/clipboard.svg",
|
||||
(enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "clipboard", enabled: enabled);
|
||||
setState(() {
|
||||
client.clipboard = enabled;
|
||||
});
|
||||
},
|
||||
translate("Clipboard"),
|
||||
translate('Allow using clipboard'),
|
||||
),
|
||||
buildPermissionTile(
|
||||
client.audio,
|
||||
"assets/audio.svg",
|
||||
(enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "audio", enabled: enabled);
|
||||
setState(() {
|
||||
client.audio = enabled;
|
||||
});
|
||||
},
|
||||
translate("Audio"),
|
||||
translate('Allow hearing sound'),
|
||||
),
|
||||
buildPermissionTile(
|
||||
client.file,
|
||||
"assets/file.svg",
|
||||
(enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "file", enabled: enabled);
|
||||
setState(() {
|
||||
client.file = enabled;
|
||||
});
|
||||
},
|
||||
translate("File"),
|
||||
translate('Allow file copy and paste'),
|
||||
),
|
||||
buildPermissionTile(
|
||||
client.restart,
|
||||
"assets/restart.svg",
|
||||
(enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "restart", enabled: enabled);
|
||||
setState(() {
|
||||
client.restart = enabled;
|
||||
});
|
||||
},
|
||||
translate("Restart"),
|
||||
translate('Allow remote restart'),
|
||||
),
|
||||
buildPermissionTile(
|
||||
client.recording,
|
||||
"assets/rec.svg",
|
||||
(enabled) {
|
||||
bind.cmSwitchPermission(
|
||||
connId: client.id, name: "recording", enabled: enabled);
|
||||
setState(() {
|
||||
client.recording = enabled;
|
||||
});
|
||||
},
|
||||
translate("Recording"),
|
||||
translate('Allow recording session'),
|
||||
)
|
||||
],
|
||||
)),
|
||||
],
|
||||
|
Loading…
x
Reference in New Issue
Block a user