From 1bd6173f9f5b0bf80a3ace0862eca8a920d8dcf5 Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Sat, 26 Apr 2025 19:37:49 -0500 Subject: [PATCH] fix(#1787): handle unknown hardware details crash (#1789) --- .idea/codeStyles/Project.xml | 35 + app/build.gradle | 2 +- app/src/main/assets/device_hardware.json | 173 +- app/src/main/assets/device_hardware/diy.svg | 1 + .../heltec-ht62-esp32c3-sx1262.svg | 1 + .../heltec-mesh-node-t114-case.svg | 1 + .../device_hardware/heltec-mesh-node-t114.svg | 1 + .../assets/device_hardware/heltec-v3-case.svg | 1 + .../main/assets/device_hardware/heltec-v3.svg | 1 + .../heltec-vision-master-e213.svg | 1 + .../heltec-vision-master-e290.svg | 1 + .../heltec-vision-master-t190.svg | 1 + .../heltec-wireless-paper-V1_0.svg | 1 + .../device_hardware/heltec-wireless-paper.svg | 1 + .../heltec-wireless-tracker-V1-0.svg | 1 + .../heltec-wireless-tracker.svg | 1 + .../assets/device_hardware/heltec-wsl-v3.svg | 1 + .../assets/device_hardware/nano-g2-ultra.svg | 1 + app/src/main/assets/device_hardware/pico.svg | 2956 +++++++++ .../main/assets/device_hardware/promicro.svg | 1 + .../assets/device_hardware/rak-wismeshtap.svg | 1 + .../main/assets/device_hardware/rak11200.svg | 5374 +++++++++++++++++ .../main/assets/device_hardware/rak11310.svg | 2339 +++++++ .../main/assets/device_hardware/rak2560.svg | 1 + .../main/assets/device_hardware/rak4631.svg | 3514 +++++++++++ .../assets/device_hardware/rak4631_case.svg | 1 + .../main/assets/device_hardware/rpipicow.svg | 1 + .../seeed-sensecap-indicator.svg | 1 + .../assets/device_hardware/seeed-xiao-s3.svg | 1 + .../device_hardware/seeed_xiao_nrf52_kit.svg | 1 + .../assets/device_hardware/station-g2.svg | 1 + .../main/assets/device_hardware/t-deck.svg | 1 + .../main/assets/device_hardware/t-echo.svg | 1 + .../assets/device_hardware/t-watch-s3.svg | 1 + .../assets/device_hardware/tbeam-s3-core.svg | 1 + app/src/main/assets/device_hardware/tbeam.svg | 1 + .../assets/device_hardware/thinknode_m1.svg | 109 + .../assets/device_hardware/thinknode_m2.svg | 391 ++ .../main/assets/device_hardware/tlora-c6.svg | 1 + .../device_hardware/tlora-t3s3-epaper.svg | 1 + .../assets/device_hardware/tlora-t3s3-v1.svg | 1 + .../assets/device_hardware/tlora-v2-1-1_6.svg | 1 + .../assets/device_hardware/tlora-v2-1-1_8.svg | 1 + .../device_hardware/tracker-t1000-e.svg | 1 + .../main/assets/device_hardware/unknown.svg | 160 + .../device_hardware/wio-tracker-wm1110.svg | 1 + .../assets/device_hardware/wm1110_dev_kit.svg | 1 + .../geeksville/mesh/model/DeviceHardware.kt | 91 +- .../geeksville/mesh/model/MetricsViewModel.kt | 15 +- .../java/com/geeksville/mesh/ui/NodeDetail.kt | 34 +- app/src/main/res/drawable/hw_diy.xml | 1631 ----- .../hw_heltec_ht62_esp32c3_sx1262.xml | 1714 ------ .../res/drawable/hw_heltec_mesh_node_t114.xml | 277 - .../hw_heltec_mesh_node_t114_case.xml | 179 - app/src/main/res/drawable/hw_heltec_v3.xml | 1141 ---- .../main/res/drawable/hw_heltec_v3_case.xml | 49 - .../drawable/hw_heltec_vision_master_e213.xml | 117 - .../drawable/hw_heltec_vision_master_e290.xml | 162 - .../drawable/hw_heltec_vision_master_t190.xml | 146 - .../res/drawable/hw_heltec_wireless_paper.xml | 428 -- .../hw_heltec_wireless_paper_v1_0.xml | 428 -- .../drawable/hw_heltec_wireless_tracker.xml | 1619 ----- .../hw_heltec_wireless_tracker_v1_0.xml | 1619 ----- .../main/res/drawable/hw_heltec_wsl_v3.xml | 1496 ----- .../main/res/drawable/hw_nano_g2_ultra.xml | 185 - app/src/main/res/drawable/hw_pico.xml | 1717 ------ app/src/main/res/drawable/hw_promicro.xml | 1555 ----- app/src/main/res/drawable/hw_rak11310.xml | 1228 ---- app/src/main/res/drawable/hw_rak2560.xml | 264 - app/src/main/res/drawable/hw_rak4631.xml | 1999 ------ app/src/main/res/drawable/hw_rak4631_case.xml | 263 - .../main/res/drawable/hw_rak_wismeshtap.xml | 180 - app/src/main/res/drawable/hw_rpipicow.xml | 1645 ----- .../drawable/hw_seeed_sensecap_indicator.xml | 292 - .../main/res/drawable/hw_seeed_xiao_s3.xml | 711 --- app/src/main/res/drawable/hw_station_g2.xml | 437 -- app/src/main/res/drawable/hw_t_deck.xml | 658 -- app/src/main/res/drawable/hw_t_echo.xml | 247 - app/src/main/res/drawable/hw_t_watch_s3.xml | 80 - app/src/main/res/drawable/hw_tbeam.xml | 2693 --------- .../main/res/drawable/hw_tbeam_s3_core.xml | 1583 ----- app/src/main/res/drawable/hw_tlora_c6.xml | 515 -- .../res/drawable/hw_tlora_t3s3_epaper.xml | 226 - .../main/res/drawable/hw_tlora_t3s3_v1.xml | 932 --- .../main/res/drawable/hw_tlora_v2_1_1_6.xml | 880 --- .../main/res/drawable/hw_tlora_v2_1_1_8.xml | 880 --- .../main/res/drawable/hw_tracker_t1000_e.xml | 259 - .../res/drawable/hw_wio_tracker_wm1110.xml | 2178 ------- .../main/res/drawable/hw_wm1110_dev_kit.xml | 3080 ---------- gradle/libs.versions.toml | 6 + 90 files changed, 15108 insertions(+), 35821 deletions(-) create mode 100644 app/src/main/assets/device_hardware/diy.svg create mode 100644 app/src/main/assets/device_hardware/heltec-ht62-esp32c3-sx1262.svg create mode 100644 app/src/main/assets/device_hardware/heltec-mesh-node-t114-case.svg create mode 100644 app/src/main/assets/device_hardware/heltec-mesh-node-t114.svg create mode 100644 app/src/main/assets/device_hardware/heltec-v3-case.svg create mode 100644 app/src/main/assets/device_hardware/heltec-v3.svg create mode 100644 app/src/main/assets/device_hardware/heltec-vision-master-e213.svg create mode 100644 app/src/main/assets/device_hardware/heltec-vision-master-e290.svg create mode 100644 app/src/main/assets/device_hardware/heltec-vision-master-t190.svg create mode 100644 app/src/main/assets/device_hardware/heltec-wireless-paper-V1_0.svg create mode 100644 app/src/main/assets/device_hardware/heltec-wireless-paper.svg create mode 100644 app/src/main/assets/device_hardware/heltec-wireless-tracker-V1-0.svg create mode 100644 app/src/main/assets/device_hardware/heltec-wireless-tracker.svg create mode 100644 app/src/main/assets/device_hardware/heltec-wsl-v3.svg create mode 100644 app/src/main/assets/device_hardware/nano-g2-ultra.svg create mode 100644 app/src/main/assets/device_hardware/pico.svg create mode 100644 app/src/main/assets/device_hardware/promicro.svg create mode 100644 app/src/main/assets/device_hardware/rak-wismeshtap.svg create mode 100644 app/src/main/assets/device_hardware/rak11200.svg create mode 100644 app/src/main/assets/device_hardware/rak11310.svg create mode 100644 app/src/main/assets/device_hardware/rak2560.svg create mode 100644 app/src/main/assets/device_hardware/rak4631.svg create mode 100644 app/src/main/assets/device_hardware/rak4631_case.svg create mode 100644 app/src/main/assets/device_hardware/rpipicow.svg create mode 100644 app/src/main/assets/device_hardware/seeed-sensecap-indicator.svg create mode 100644 app/src/main/assets/device_hardware/seeed-xiao-s3.svg create mode 100644 app/src/main/assets/device_hardware/seeed_xiao_nrf52_kit.svg create mode 100644 app/src/main/assets/device_hardware/station-g2.svg create mode 100644 app/src/main/assets/device_hardware/t-deck.svg create mode 100644 app/src/main/assets/device_hardware/t-echo.svg create mode 100644 app/src/main/assets/device_hardware/t-watch-s3.svg create mode 100644 app/src/main/assets/device_hardware/tbeam-s3-core.svg create mode 100644 app/src/main/assets/device_hardware/tbeam.svg create mode 100644 app/src/main/assets/device_hardware/thinknode_m1.svg create mode 100644 app/src/main/assets/device_hardware/thinknode_m2.svg create mode 100644 app/src/main/assets/device_hardware/tlora-c6.svg create mode 100644 app/src/main/assets/device_hardware/tlora-t3s3-epaper.svg create mode 100644 app/src/main/assets/device_hardware/tlora-t3s3-v1.svg create mode 100644 app/src/main/assets/device_hardware/tlora-v2-1-1_6.svg create mode 100644 app/src/main/assets/device_hardware/tlora-v2-1-1_8.svg create mode 100644 app/src/main/assets/device_hardware/tracker-t1000-e.svg create mode 100644 app/src/main/assets/device_hardware/unknown.svg create mode 100644 app/src/main/assets/device_hardware/wio-tracker-wm1110.svg create mode 100644 app/src/main/assets/device_hardware/wm1110_dev_kit.svg delete mode 100644 app/src/main/res/drawable/hw_diy.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_ht62_esp32c3_sx1262.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_mesh_node_t114.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_mesh_node_t114_case.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_v3.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_v3_case.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_vision_master_e213.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_vision_master_e290.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_vision_master_t190.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_wireless_paper.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_wireless_paper_v1_0.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_wireless_tracker.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_wireless_tracker_v1_0.xml delete mode 100644 app/src/main/res/drawable/hw_heltec_wsl_v3.xml delete mode 100644 app/src/main/res/drawable/hw_nano_g2_ultra.xml delete mode 100644 app/src/main/res/drawable/hw_pico.xml delete mode 100644 app/src/main/res/drawable/hw_promicro.xml delete mode 100644 app/src/main/res/drawable/hw_rak11310.xml delete mode 100644 app/src/main/res/drawable/hw_rak2560.xml delete mode 100644 app/src/main/res/drawable/hw_rak4631.xml delete mode 100644 app/src/main/res/drawable/hw_rak4631_case.xml delete mode 100644 app/src/main/res/drawable/hw_rak_wismeshtap.xml delete mode 100644 app/src/main/res/drawable/hw_rpipicow.xml delete mode 100644 app/src/main/res/drawable/hw_seeed_sensecap_indicator.xml delete mode 100644 app/src/main/res/drawable/hw_seeed_xiao_s3.xml delete mode 100644 app/src/main/res/drawable/hw_station_g2.xml delete mode 100644 app/src/main/res/drawable/hw_t_deck.xml delete mode 100644 app/src/main/res/drawable/hw_t_echo.xml delete mode 100644 app/src/main/res/drawable/hw_t_watch_s3.xml delete mode 100644 app/src/main/res/drawable/hw_tbeam.xml delete mode 100644 app/src/main/res/drawable/hw_tbeam_s3_core.xml delete mode 100644 app/src/main/res/drawable/hw_tlora_c6.xml delete mode 100644 app/src/main/res/drawable/hw_tlora_t3s3_epaper.xml delete mode 100644 app/src/main/res/drawable/hw_tlora_t3s3_v1.xml delete mode 100644 app/src/main/res/drawable/hw_tlora_v2_1_1_6.xml delete mode 100644 app/src/main/res/drawable/hw_tlora_v2_1_1_8.xml delete mode 100644 app/src/main/res/drawable/hw_tracker_t1000_e.xml delete mode 100644 app/src/main/res/drawable/hw_wio_tracker_wm1110.xml delete mode 100644 app/src/main/res/drawable/hw_wm1110_dev_kit.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index f69257a71..5f6f66925 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -1,5 +1,40 @@ + + + diff --git a/app/build.gradle b/app/build.gradle index 8d443c814..f9f04f9b4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -157,7 +157,7 @@ dependencies { implementation(libs.bundles.room) implementation(libs.bundles.hilt) implementation(libs.bundles.protobuf) - + implementation(libs.bundles.coil) //OSM implementation(libs.bundles.osm) implementation(libs.osmdroid.geopackage){ exclude group: "com.j256.ormlite" } diff --git a/app/src/main/assets/device_hardware.json b/app/src/main/assets/device_hardware.json index ef52decdd..8af931bba 100644 --- a/app/src/main/assets/device_hardware.json +++ b/app/src/main/assets/device_hardware.json @@ -87,7 +87,8 @@ "images": [ "t-echo.svg" ], - "requiresDfu": true + "requiresDfu": true, + "hasInkHud": true }, { "hwModel": 8, @@ -153,17 +154,21 @@ "images": [ "tbeam-s3-core.svg" ], - "requiresDfu": true + "requiresDfu": true, + "partitionScheme": "8MB" }, { "hwModel": 13, "hwModelSlug": "RAK11200", "platformioTarget": "rak11200", "architecture": "esp32", - "activelySupported": false, + "activelySupported": true, "displayName": "RAK WisBlock 11200", "tags": [ "RAK" + ], + "images": [ + "rak11200.svg" ] }, { @@ -270,22 +275,6 @@ ], "requiresDfu": true }, - { - "hwModel": 22, - "hwModelSlug": "WISMESH_HUB", - "platformioTarget": "rak2560", - "architecture": "nrf52840", - "activelySupported": true, - "supportLevel": 1, - "displayName": "RAK WisMesh Repeater", - "tags": [ - "RAK" - ], - "images": [ - "rak2560.svg" - ], - "requiresDfu": true - }, { "hwModel": 25, "hwModelSlug": "STATION_G1", @@ -354,7 +343,8 @@ "requiresDfu": true, "images": [ "station-g2.svg" - ] + ], + "partitionScheme": "16MB" }, { "hwModel": 39, @@ -420,7 +410,8 @@ "images": [ "heltec-v3.svg", "heltec-v3-case.svg" - ] + ], + "partitionScheme": "8MB" }, { "hwModel": 44, @@ -435,7 +426,8 @@ ], "images": [ "heltec-wsl-v3.svg" - ] + ], + "partitionScheme": "8MB" }, { "hwModel": 47, @@ -485,7 +477,8 @@ "images": [ "heltec-wireless-tracker.svg" ], - "requiresDfu": true + "requiresDfu": true, + "partitionScheme": "8MB" }, { "hwModel": 58, @@ -498,7 +491,8 @@ "images": [ "heltec-wireless-tracker.svg" ], - "requiresDfu": true + "requiresDfu": true, + "partitionScheme": "8MB" }, { "hwModel": 49, @@ -513,7 +507,9 @@ ], "images": [ "heltec-wireless-paper.svg" - ] + ], + "hasInkHud": true, + "partitionScheme": "8MB" }, { "hwModel": 50, @@ -529,7 +525,9 @@ "images": [ "t-deck.svg" ], - "requiresDfu": true + "requiresDfu": true, + "hasMui": true, + "partitionScheme": "16MB" }, { "hwModel": 51, @@ -544,7 +542,8 @@ ], "images": [ "t-watch-s3.svg" - ] + ], + "partitionScheme": "8MB" }, { "hwModel": 52, @@ -553,7 +552,9 @@ "architecture": "esp32-s3", "activelySupported": true, "supportLevel": 3, - "displayName": "Pi Computer S3" + "displayName": "Pi Computer S3", + "hasMui": true, + "partitionScheme": "8MB" }, { "hwModel": 53, @@ -583,7 +584,8 @@ "displayName": "Heltec Wireless Paper V1.0", "images": [ "heltec-wireless-paper-v1_0.svg" - ] + ], + "partitionScheme": "8MB" }, { "hwModel": 59, @@ -593,17 +595,20 @@ "activelySupported": true, "supportLevel": 3, "displayName": "unPhone", - "requiresDfu": true + "requiresDfu": true, + "hasMui": true, + "partitionScheme": "8MB" }, { "hwModel": 48, "hwModelSlug": "HELTEC_WIRELESS_TRACKER", "platformioTarget": "tracksenger", "architecture": "esp32-s3", - "activelySupported": false, + "activelySupported": true, "supportLevel": 3, "displayName": "TrackSenger (small TFT)", - "requiresDfu": true + "requiresDfu": true, + "partitionScheme": "8MB" }, { "hwModel": 48, @@ -613,16 +618,18 @@ "activelySupported": false, "supportLevel": 3, "displayName": "TrackSenger (big TFT)", - "requiresDfu": true + "requiresDfu": true, + "partitionScheme": "8MB" }, { "hwModel": 48, "hwModelSlug": "HELTEC_WIRELESS_TRACKER", "platformioTarget": "tracksenger-oled", "architecture": "esp32-s3", - "activelySupported": false, + "activelySupported": true, "supportLevel": 3, - "displayName": "TrackSenger (big OLED)" + "displayName": "TrackSenger (big OLED)", + "partitionScheme": "8MB" }, { "hwModel": 61, @@ -663,7 +670,8 @@ "images": [ "heltec-vision-master-t190.svg" ], - "requiresDfu": true + "requiresDfu": true, + "partitionScheme": "8MB" }, { "hwModel": 67, @@ -679,7 +687,9 @@ "images": [ "heltec-vision-master-e213.svg" ], - "requiresDfu": true + "requiresDfu": true, + "hasInkHud": true, + "partitionScheme": "8MB" }, { "hwModel": 68, @@ -695,7 +705,9 @@ "images": [ "heltec-vision-master-e290.svg" ], - "requiresDfu": true + "requiresDfu": true, + "hasInkHud": true, + "partitionScheme": "8MB" }, { "hwModel": 69, @@ -727,7 +739,9 @@ ], "images": [ "seeed-sensecap-indicator.svg" - ] + ], + "hasMui": true, + "partitionScheme": "8MB" }, { "hwModel": 71, @@ -759,7 +773,8 @@ "images": [ "seeed-xiao-s3.svg" ], - "requiresDfu": true + "requiresDfu": true, + "partitionScheme": "8MB" }, { "hwModel": 84, @@ -777,6 +792,22 @@ ], "requiresDfu": true }, + { + "hwModel": 22, + "hwModelSlug": "WISMESH_HUB", + "platformioTarget": "rak2560", + "architecture": "nrf52840", + "activelySupported": true, + "supportLevel": 1, + "displayName": "RAK WisMesh Repeater", + "tags": [ + "RAK" + ], + "images": [ + "rak2560.svg" + ], + "requiresDfu": true + }, { "hwModel": 63, "hwModelSlug": "NRF52_PROMICRO_DIY", @@ -792,5 +823,67 @@ "promicro.svg" ], "requiresDfu": true + }, + { + "hwModel": 88, + "hwModelSlug": "XIAO_NRF52_KIT", + "platformioTarget": "seeed_xiao_nrf52840_kit", + "architecture": "nrf52840", + "activelySupported": true, + "supportLevel": 1, + "displayName": "Seeed Xiao NRF52840 Kit", + "tags": [ + "Seeed" + ], + "requiresDfu": true, + "images": [ + "seeed_xiao_nrf52_kit.svg" + ] + }, + { + "hwModel": 89, + "hwModelSlug": "THINKNODE_M1", + "platformioTarget": "thinknode_m1", + "architecture": "nrf52840", + "activelySupported": true, + "supportLevel": 1, + "displayName": "ThinkNode M1", + "tags": [ + "Elecrow" + ], + "requiresDfu": true, + "images": [ + "thinknode_m1.svg" + ], + "hasInkHud": true + }, + { + "hwModel": 90, + "hwModelSlug": "THINKNODE_M2", + "platformioTarget": "thinknode_m2", + "architecture": "esp32-s3", + "activelySupported": true, + "supportLevel": 1, + "displayName": "ThinkNode M2", + "tags": [ + "Elecrow" + ], + "requiresDfu": false, + "images": [ + "thinknode_m2.svg" + ] + }, + { + "hwModel": 94, + "hwModelSlug": "HELTEC_MESH_POCKET", + "platformioTarget": "heltec_mesh_pocket", + "architecture": "nrf52840", + "activelySupported": false, + "supportLevel": 1, + "displayName": "Heltec MeshPocket", + "tags": [ + "Heltec" + ], + "requiresDfu": true } ] diff --git a/app/src/main/assets/device_hardware/diy.svg b/app/src/main/assets/device_hardware/diy.svg new file mode 100644 index 000000000..823467edf --- /dev/null +++ b/app/src/main/assets/device_hardware/diy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/heltec-ht62-esp32c3-sx1262.svg b/app/src/main/assets/device_hardware/heltec-ht62-esp32c3-sx1262.svg new file mode 100644 index 000000000..c52534efd --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-ht62-esp32c3-sx1262.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/heltec-mesh-node-t114-case.svg b/app/src/main/assets/device_hardware/heltec-mesh-node-t114-case.svg new file mode 100644 index 000000000..b2abe6392 --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-mesh-node-t114-case.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/heltec-mesh-node-t114.svg b/app/src/main/assets/device_hardware/heltec-mesh-node-t114.svg new file mode 100644 index 000000000..779a8f6a6 --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-mesh-node-t114.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/heltec-v3-case.svg b/app/src/main/assets/device_hardware/heltec-v3-case.svg new file mode 100644 index 000000000..1b1d3c55f --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-v3-case.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/heltec-v3.svg b/app/src/main/assets/device_hardware/heltec-v3.svg new file mode 100644 index 000000000..13a5fa645 --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-v3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/heltec-vision-master-e213.svg b/app/src/main/assets/device_hardware/heltec-vision-master-e213.svg new file mode 100644 index 000000000..2c1cca095 --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-vision-master-e213.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/heltec-vision-master-e290.svg b/app/src/main/assets/device_hardware/heltec-vision-master-e290.svg new file mode 100644 index 000000000..ca7d296af --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-vision-master-e290.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/heltec-vision-master-t190.svg b/app/src/main/assets/device_hardware/heltec-vision-master-t190.svg new file mode 100644 index 000000000..55db34f9b --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-vision-master-t190.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/heltec-wireless-paper-V1_0.svg b/app/src/main/assets/device_hardware/heltec-wireless-paper-V1_0.svg new file mode 100644 index 000000000..cb3f188d8 --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-wireless-paper-V1_0.svg @@ -0,0 +1 @@ + diff --git a/app/src/main/assets/device_hardware/heltec-wireless-paper.svg b/app/src/main/assets/device_hardware/heltec-wireless-paper.svg new file mode 100644 index 000000000..cb3f188d8 --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-wireless-paper.svg @@ -0,0 +1 @@ + diff --git a/app/src/main/assets/device_hardware/heltec-wireless-tracker-V1-0.svg b/app/src/main/assets/device_hardware/heltec-wireless-tracker-V1-0.svg new file mode 100644 index 000000000..a5392595d --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-wireless-tracker-V1-0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/heltec-wireless-tracker.svg b/app/src/main/assets/device_hardware/heltec-wireless-tracker.svg new file mode 100644 index 000000000..a5392595d --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-wireless-tracker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/heltec-wsl-v3.svg b/app/src/main/assets/device_hardware/heltec-wsl-v3.svg new file mode 100644 index 000000000..1741223eb --- /dev/null +++ b/app/src/main/assets/device_hardware/heltec-wsl-v3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/nano-g2-ultra.svg b/app/src/main/assets/device_hardware/nano-g2-ultra.svg new file mode 100644 index 000000000..6dbe47afb --- /dev/null +++ b/app/src/main/assets/device_hardware/nano-g2-ultra.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/pico.svg b/app/src/main/assets/device_hardware/pico.svg new file mode 100644 index 000000000..82ce65261 --- /dev/null +++ b/app/src/main/assets/device_hardware/pico.svg @@ -0,0 +1,2956 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/device_hardware/promicro.svg b/app/src/main/assets/device_hardware/promicro.svg new file mode 100644 index 000000000..3dc26021b --- /dev/null +++ b/app/src/main/assets/device_hardware/promicro.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/rak-wismeshtap.svg b/app/src/main/assets/device_hardware/rak-wismeshtap.svg new file mode 100644 index 000000000..34e77876a --- /dev/null +++ b/app/src/main/assets/device_hardware/rak-wismeshtap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/rak11200.svg b/app/src/main/assets/device_hardware/rak11200.svg new file mode 100644 index 000000000..cac91a24a --- /dev/null +++ b/app/src/main/assets/device_hardware/rak11200.svg @@ -0,0 +1,5374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/device_hardware/rak11310.svg b/app/src/main/assets/device_hardware/rak11310.svg new file mode 100644 index 000000000..8f526a471 --- /dev/null +++ b/app/src/main/assets/device_hardware/rak11310.svg @@ -0,0 +1,2339 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/device_hardware/rak2560.svg b/app/src/main/assets/device_hardware/rak2560.svg new file mode 100644 index 000000000..b8514f016 --- /dev/null +++ b/app/src/main/assets/device_hardware/rak2560.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/rak4631.svg b/app/src/main/assets/device_hardware/rak4631.svg new file mode 100644 index 000000000..6dc2957a2 --- /dev/null +++ b/app/src/main/assets/device_hardware/rak4631.svg @@ -0,0 +1,3514 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/device_hardware/rak4631_case.svg b/app/src/main/assets/device_hardware/rak4631_case.svg new file mode 100644 index 000000000..a0b2bbb82 --- /dev/null +++ b/app/src/main/assets/device_hardware/rak4631_case.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/rpipicow.svg b/app/src/main/assets/device_hardware/rpipicow.svg new file mode 100644 index 000000000..cb4b1f68b --- /dev/null +++ b/app/src/main/assets/device_hardware/rpipicow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/seeed-sensecap-indicator.svg b/app/src/main/assets/device_hardware/seeed-sensecap-indicator.svg new file mode 100644 index 000000000..f7bf9db02 --- /dev/null +++ b/app/src/main/assets/device_hardware/seeed-sensecap-indicator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/seeed-xiao-s3.svg b/app/src/main/assets/device_hardware/seeed-xiao-s3.svg new file mode 100644 index 000000000..04e97fe00 --- /dev/null +++ b/app/src/main/assets/device_hardware/seeed-xiao-s3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/seeed_xiao_nrf52_kit.svg b/app/src/main/assets/device_hardware/seeed_xiao_nrf52_kit.svg new file mode 100644 index 000000000..95f7211ba --- /dev/null +++ b/app/src/main/assets/device_hardware/seeed_xiao_nrf52_kit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/station-g2.svg b/app/src/main/assets/device_hardware/station-g2.svg new file mode 100644 index 000000000..8d2e0aed2 --- /dev/null +++ b/app/src/main/assets/device_hardware/station-g2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/t-deck.svg b/app/src/main/assets/device_hardware/t-deck.svg new file mode 100644 index 000000000..cdc53c5d3 --- /dev/null +++ b/app/src/main/assets/device_hardware/t-deck.svg @@ -0,0 +1 @@ +QWERTYIUPOASDFGHKJLaltZXCVBMN \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/t-echo.svg b/app/src/main/assets/device_hardware/t-echo.svg new file mode 100644 index 000000000..e178a50f4 --- /dev/null +++ b/app/src/main/assets/device_hardware/t-echo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/t-watch-s3.svg b/app/src/main/assets/device_hardware/t-watch-s3.svg new file mode 100644 index 000000000..19084c197 --- /dev/null +++ b/app/src/main/assets/device_hardware/t-watch-s3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/tbeam-s3-core.svg b/app/src/main/assets/device_hardware/tbeam-s3-core.svg new file mode 100644 index 000000000..f42e6d2cc --- /dev/null +++ b/app/src/main/assets/device_hardware/tbeam-s3-core.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/tbeam.svg b/app/src/main/assets/device_hardware/tbeam.svg new file mode 100644 index 000000000..cd0475c6d --- /dev/null +++ b/app/src/main/assets/device_hardware/tbeam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/thinknode_m1.svg b/app/src/main/assets/device_hardware/thinknode_m1.svg new file mode 100644 index 000000000..27e21a0bf --- /dev/null +++ b/app/src/main/assets/device_hardware/thinknode_m1.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/thinknode_m2.svg b/app/src/main/assets/device_hardware/thinknode_m2.svg new file mode 100644 index 000000000..5e5a0e3cd --- /dev/null +++ b/app/src/main/assets/device_hardware/thinknode_m2.svg @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/device_hardware/tlora-c6.svg b/app/src/main/assets/device_hardware/tlora-c6.svg new file mode 100644 index 000000000..8b6266387 --- /dev/null +++ b/app/src/main/assets/device_hardware/tlora-c6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/tlora-t3s3-epaper.svg b/app/src/main/assets/device_hardware/tlora-t3s3-epaper.svg new file mode 100644 index 000000000..6f2e84520 --- /dev/null +++ b/app/src/main/assets/device_hardware/tlora-t3s3-epaper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/tlora-t3s3-v1.svg b/app/src/main/assets/device_hardware/tlora-t3s3-v1.svg new file mode 100644 index 000000000..1f8847d44 --- /dev/null +++ b/app/src/main/assets/device_hardware/tlora-t3s3-v1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/tlora-v2-1-1_6.svg b/app/src/main/assets/device_hardware/tlora-v2-1-1_6.svg new file mode 100644 index 000000000..dbe36ef5e --- /dev/null +++ b/app/src/main/assets/device_hardware/tlora-v2-1-1_6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/tlora-v2-1-1_8.svg b/app/src/main/assets/device_hardware/tlora-v2-1-1_8.svg new file mode 100644 index 000000000..dbe36ef5e --- /dev/null +++ b/app/src/main/assets/device_hardware/tlora-v2-1-1_8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/tracker-t1000-e.svg b/app/src/main/assets/device_hardware/tracker-t1000-e.svg new file mode 100644 index 000000000..6f7a06c96 --- /dev/null +++ b/app/src/main/assets/device_hardware/tracker-t1000-e.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/unknown.svg b/app/src/main/assets/device_hardware/unknown.svg new file mode 100644 index 000000000..1d2cd87b7 --- /dev/null +++ b/app/src/main/assets/device_hardware/unknown.svg @@ -0,0 +1,160 @@ + + diff --git a/app/src/main/assets/device_hardware/wio-tracker-wm1110.svg b/app/src/main/assets/device_hardware/wio-tracker-wm1110.svg new file mode 100644 index 000000000..15ace5c5f --- /dev/null +++ b/app/src/main/assets/device_hardware/wio-tracker-wm1110.svg @@ -0,0 +1 @@ +LoRaWI FILEDRESETGNSSBLE \ No newline at end of file diff --git a/app/src/main/assets/device_hardware/wm1110_dev_kit.svg b/app/src/main/assets/device_hardware/wm1110_dev_kit.svg new file mode 100644 index 000000000..94aefe308 --- /dev/null +++ b/app/src/main/assets/device_hardware/wm1110_dev_kit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/geeksville/mesh/model/DeviceHardware.kt b/app/src/main/java/com/geeksville/mesh/model/DeviceHardware.kt index 73a412f9f..b0524e280 100644 --- a/app/src/main/java/com/geeksville/mesh/model/DeviceHardware.kt +++ b/app/src/main/java/com/geeksville/mesh/model/DeviceHardware.kt @@ -17,84 +17,21 @@ package com.geeksville.mesh.model -import androidx.annotation.DrawableRes -import com.geeksville.mesh.MeshProtos.HardwareModel -import com.geeksville.mesh.R import kotlinx.serialization.Serializable -data class DeviceHardware( - val hwModel: Int, - val hwModelSlug: String, - val architecture: String, - val activelySupported: Boolean, - val supportLevel: Int? = null, - val displayName: String, - val tags: List? = listOf(), - @DrawableRes val image: Int, - val requiresDfu: Boolean? = null, -) - @Serializable -data class DeviceHardwareDto( - val hwModel: Int, - val hwModelSlug: String, - val platformioTarget: String, - val architecture: String, - val activelySupported: Boolean, - val supportLevel: Int? = null, - val displayName: String, - val tags: List? = listOf(), - val images: List? = listOf(), +data class DeviceHardware( + val activelySupported: Boolean = false, + val architecture: String = "", + val displayName: String = "", + val hasInkHud: Boolean? = null, + val hasMui: Boolean? = null, + val hwModel: Int = 0, + val hwModelSlug: String = "", + val images: List? = null, + val partitionScheme: String? = null, + val platformioTarget: String = "", val requiresDfu: Boolean? = null, -) { - fun toDeviceHardware() = DeviceHardware( - hwModel = hwModel, - hwModelSlug = hwModelSlug, - architecture = architecture, - activelySupported = activelySupported, - supportLevel = supportLevel, - displayName = displayName, - tags = tags, - image = getDrawableFrom(hwModel), - requiresDfu = requiresDfu - ) -} - -@Suppress("CyclomaticComplexMethod") -@DrawableRes -private fun getDrawableFrom(hwModel: Int): Int = when (hwModel) { - HardwareModel.DIY_V1_VALUE -> R.drawable.hw_diy - HardwareModel.HELTEC_HT62_VALUE -> R.drawable.hw_heltec_ht62_esp32c3_sx1262 - HardwareModel.HELTEC_MESH_NODE_T114_VALUE -> R.drawable.hw_heltec_mesh_node_t114 - HardwareModel.HELTEC_V3_VALUE -> R.drawable.hw_heltec_v3_case - HardwareModel.HELTEC_VISION_MASTER_E213_VALUE -> R.drawable.hw_heltec_vision_master_e213 - HardwareModel.HELTEC_VISION_MASTER_E290_VALUE -> R.drawable.hw_heltec_vision_master_e290 - HardwareModel.HELTEC_VISION_MASTER_T190_VALUE -> R.drawable.hw_heltec_vision_master_t190 - HardwareModel.HELTEC_WIRELESS_PAPER_VALUE -> R.drawable.hw_heltec_wireless_paper - HardwareModel.HELTEC_WIRELESS_TRACKER_VALUE -> R.drawable.hw_heltec_wireless_tracker - HardwareModel.HELTEC_WIRELESS_TRACKER_V1_0_VALUE -> R.drawable.hw_heltec_wireless_tracker_v1_0 - HardwareModel.HELTEC_WSL_V3_VALUE -> R.drawable.hw_heltec_wsl_v3 - HardwareModel.NANO_G2_ULTRA_VALUE -> R.drawable.hw_nano_g2_ultra - HardwareModel.RPI_PICO_VALUE -> R.drawable.hw_pico - HardwareModel.NRF52_PROMICRO_DIY_VALUE -> R.drawable.hw_promicro - HardwareModel.RAK11310_VALUE -> R.drawable.hw_rak11310 - HardwareModel.RAK2560_VALUE -> R.drawable.hw_rak2560 - HardwareModel.RAK4631_VALUE -> R.drawable.hw_rak4631_case - HardwareModel.RPI_PICO2_VALUE -> R.drawable.hw_rpipicow - HardwareModel.SENSECAP_INDICATOR_VALUE -> R.drawable.hw_seeed_sensecap_indicator - HardwareModel.SEEED_XIAO_S3_VALUE -> R.drawable.hw_seeed_xiao_s3 - HardwareModel.STATION_G2_VALUE -> R.drawable.hw_station_g2 - HardwareModel.T_DECK_VALUE -> R.drawable.hw_t_deck - HardwareModel.T_ECHO_VALUE -> R.drawable.hw_t_echo - HardwareModel.T_WATCH_S3_VALUE -> R.drawable.hw_t_watch_s3 - HardwareModel.TBEAM_VALUE -> R.drawable.hw_tbeam - HardwareModel.LILYGO_TBEAM_S3_CORE_VALUE -> R.drawable.hw_tbeam_s3_core - HardwareModel.TLORA_C6_VALUE -> R.drawable.hw_tlora_c6 - HardwareModel.TLORA_T3_S3_VALUE -> R.drawable.hw_tlora_t3s3_v1 - HardwareModel.TLORA_V2_1_1P6_VALUE -> R.drawable.hw_tlora_v2_1_1_6 - HardwareModel.TLORA_V2_1_1P8_VALUE -> R.drawable.hw_tlora_v2_1_1_8 - HardwareModel.TRACKER_T1000_E_VALUE -> R.drawable.hw_tracker_t1000_e - HardwareModel.WIO_WM1110_VALUE -> R.drawable.hw_wio_tracker_wm1110 - HardwareModel.WISMESH_TAP_VALUE -> R.drawable.hw_rak_wismeshtap - else -> R.drawable.hw_unknown -} + val supportLevel: Int? = null, + val tags: List? = null +) diff --git a/app/src/main/java/com/geeksville/mesh/model/MetricsViewModel.kt b/app/src/main/java/com/geeksville/mesh/model/MetricsViewModel.kt index eb2a396b9..f0d910b57 100644 --- a/app/src/main/java/com/geeksville/mesh/model/MetricsViewModel.kt +++ b/app/src/main/java/com/geeksville/mesh/model/MetricsViewModel.kt @@ -229,8 +229,11 @@ class MetricsViewModel @Inject constructor( .onEach { node -> _state.update { state -> state.copy(node = node) } node?.user?.hwModel?.let { hwModel -> - _state.update { state -> - state.copy(deviceHardware = getDeviceHardwareFromHardwareModel(hwModel)) + val deviceHardware = getDeviceHardwareFromHardwareModel(hwModel) + deviceHardware?.let { + _state.update { state -> + state.copy(deviceHardware = it) + } } } } @@ -348,12 +351,14 @@ class MetricsViewModel @Inject constructor( try { val json = app.assets.open("device_hardware.json").bufferedReader().use { it.readText() } - deviceHardwareList = Json.decodeFromString>(json) - .map { it.toDeviceHardware() } + deviceHardwareList = Json.decodeFromString>(json) + return deviceHardwareList.find { it.hwModel == hwModel.number } } catch (ex: IOException) { errormsg("Can't read device_hardware.json error: ${ex.message}") + } catch (ex: IllegalArgumentException) { + errormsg(ex.message.toString()) } } - return deviceHardwareList.find { it.hwModel == hwModel.number } + return null } } diff --git a/app/src/main/java/com/geeksville/mesh/ui/NodeDetail.kt b/app/src/main/java/com/geeksville/mesh/ui/NodeDetail.kt index e416af9ec..99cf68999 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/NodeDetail.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/NodeDetail.kt @@ -19,7 +19,6 @@ package com.geeksville.mesh.ui -import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -81,6 +80,8 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.rotate import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.style.TextAlign @@ -90,8 +91,10 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import coil3.compose.AsyncImage import com.geeksville.mesh.ConfigProtos.Config.DisplayConfig.DisplayUnits import com.geeksville.mesh.R +import com.geeksville.mesh.model.DeviceHardware import com.geeksville.mesh.model.MetricsState import com.geeksville.mesh.model.MetricsViewModel import com.geeksville.mesh.model.Node @@ -237,10 +240,10 @@ private fun DeviceDetailsContent( ), contentAlignment = Alignment.Center ) { - Image( - modifier = Modifier.padding(16.dp), - imageVector = ImageVector.vectorResource(deviceHardware.image), - contentDescription = hwModelName, + DeviceHardwareImage( + deviceHardware = deviceHardware, + modifier = Modifier + .size(100.dp) ) } NodeDetailRow( @@ -258,6 +261,27 @@ private fun DeviceDetailsContent( } } +@Composable +fun DeviceHardwareImage( + deviceHardware: DeviceHardware, + modifier: Modifier = Modifier, +) { + val hwImg = deviceHardware.images?.lastOrNull() + if (hwImg != null) { + val imageUrl = "file:///android_asset/device_hardware/$hwImg" + AsyncImage( + model = imageUrl, + contentScale = ContentScale.Inside, + contentDescription = deviceHardware.displayName, + placeholder = painterResource(R.drawable.hw_unknown), + error = painterResource(R.drawable.hw_unknown), + fallback = painterResource(R.drawable.hw_unknown), + modifier = modifier + .padding(16.dp) + ) + } +} + @Composable private fun NodeDetailsContent( node: Node, diff --git a/app/src/main/res/drawable/hw_diy.xml b/app/src/main/res/drawable/hw_diy.xml deleted file mode 100644 index feedd56c7..000000000 --- a/app/src/main/res/drawable/hw_diy.xml +++ /dev/null @@ -1,1631 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_ht62_esp32c3_sx1262.xml b/app/src/main/res/drawable/hw_heltec_ht62_esp32c3_sx1262.xml deleted file mode 100644 index 1a0c19777..000000000 --- a/app/src/main/res/drawable/hw_heltec_ht62_esp32c3_sx1262.xml +++ /dev/null @@ -1,1714 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_mesh_node_t114.xml b/app/src/main/res/drawable/hw_heltec_mesh_node_t114.xml deleted file mode 100644 index 457ffd6cd..000000000 --- a/app/src/main/res/drawable/hw_heltec_mesh_node_t114.xml +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_mesh_node_t114_case.xml b/app/src/main/res/drawable/hw_heltec_mesh_node_t114_case.xml deleted file mode 100644 index e95e13e6c..000000000 --- a/app/src/main/res/drawable/hw_heltec_mesh_node_t114_case.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_v3.xml b/app/src/main/res/drawable/hw_heltec_v3.xml deleted file mode 100644 index 2031cb196..000000000 --- a/app/src/main/res/drawable/hw_heltec_v3.xml +++ /dev/null @@ -1,1141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_v3_case.xml b/app/src/main/res/drawable/hw_heltec_v3_case.xml deleted file mode 100644 index 5e444b6f0..000000000 --- a/app/src/main/res/drawable/hw_heltec_v3_case.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_vision_master_e213.xml b/app/src/main/res/drawable/hw_heltec_vision_master_e213.xml deleted file mode 100644 index 017b80bdd..000000000 --- a/app/src/main/res/drawable/hw_heltec_vision_master_e213.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_vision_master_e290.xml b/app/src/main/res/drawable/hw_heltec_vision_master_e290.xml deleted file mode 100644 index f617ecd74..000000000 --- a/app/src/main/res/drawable/hw_heltec_vision_master_e290.xml +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_vision_master_t190.xml b/app/src/main/res/drawable/hw_heltec_vision_master_t190.xml deleted file mode 100644 index 6fd688f1d..000000000 --- a/app/src/main/res/drawable/hw_heltec_vision_master_t190.xml +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_wireless_paper.xml b/app/src/main/res/drawable/hw_heltec_wireless_paper.xml deleted file mode 100644 index 66db18fc7..000000000 --- a/app/src/main/res/drawable/hw_heltec_wireless_paper.xml +++ /dev/null @@ -1,428 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_wireless_paper_v1_0.xml b/app/src/main/res/drawable/hw_heltec_wireless_paper_v1_0.xml deleted file mode 100644 index 66db18fc7..000000000 --- a/app/src/main/res/drawable/hw_heltec_wireless_paper_v1_0.xml +++ /dev/null @@ -1,428 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_wireless_tracker.xml b/app/src/main/res/drawable/hw_heltec_wireless_tracker.xml deleted file mode 100644 index 74d14932d..000000000 --- a/app/src/main/res/drawable/hw_heltec_wireless_tracker.xml +++ /dev/null @@ -1,1619 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_wireless_tracker_v1_0.xml b/app/src/main/res/drawable/hw_heltec_wireless_tracker_v1_0.xml deleted file mode 100644 index 74d14932d..000000000 --- a/app/src/main/res/drawable/hw_heltec_wireless_tracker_v1_0.xml +++ /dev/null @@ -1,1619 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_heltec_wsl_v3.xml b/app/src/main/res/drawable/hw_heltec_wsl_v3.xml deleted file mode 100644 index f4246b21b..000000000 --- a/app/src/main/res/drawable/hw_heltec_wsl_v3.xml +++ /dev/null @@ -1,1496 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_nano_g2_ultra.xml b/app/src/main/res/drawable/hw_nano_g2_ultra.xml deleted file mode 100644 index 60bfb06db..000000000 --- a/app/src/main/res/drawable/hw_nano_g2_ultra.xml +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_pico.xml b/app/src/main/res/drawable/hw_pico.xml deleted file mode 100644 index eb3935ab3..000000000 --- a/app/src/main/res/drawable/hw_pico.xml +++ /dev/null @@ -1,1717 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_promicro.xml b/app/src/main/res/drawable/hw_promicro.xml deleted file mode 100644 index 2f69e14ca..000000000 --- a/app/src/main/res/drawable/hw_promicro.xml +++ /dev/null @@ -1,1555 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_rak11310.xml b/app/src/main/res/drawable/hw_rak11310.xml deleted file mode 100644 index 5d39943f8..000000000 --- a/app/src/main/res/drawable/hw_rak11310.xml +++ /dev/null @@ -1,1228 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_rak2560.xml b/app/src/main/res/drawable/hw_rak2560.xml deleted file mode 100644 index 219e40a01..000000000 --- a/app/src/main/res/drawable/hw_rak2560.xml +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_rak4631.xml b/app/src/main/res/drawable/hw_rak4631.xml deleted file mode 100644 index ff6225c06..000000000 --- a/app/src/main/res/drawable/hw_rak4631.xml +++ /dev/null @@ -1,1999 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_rak4631_case.xml b/app/src/main/res/drawable/hw_rak4631_case.xml deleted file mode 100644 index d937ffbc7..000000000 --- a/app/src/main/res/drawable/hw_rak4631_case.xml +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_rak_wismeshtap.xml b/app/src/main/res/drawable/hw_rak_wismeshtap.xml deleted file mode 100644 index fb9084b49..000000000 --- a/app/src/main/res/drawable/hw_rak_wismeshtap.xml +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_rpipicow.xml b/app/src/main/res/drawable/hw_rpipicow.xml deleted file mode 100644 index 961078561..000000000 --- a/app/src/main/res/drawable/hw_rpipicow.xml +++ /dev/null @@ -1,1645 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_seeed_sensecap_indicator.xml b/app/src/main/res/drawable/hw_seeed_sensecap_indicator.xml deleted file mode 100644 index 9aecd2b97..000000000 --- a/app/src/main/res/drawable/hw_seeed_sensecap_indicator.xml +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_seeed_xiao_s3.xml b/app/src/main/res/drawable/hw_seeed_xiao_s3.xml deleted file mode 100644 index 242e2d734..000000000 --- a/app/src/main/res/drawable/hw_seeed_xiao_s3.xml +++ /dev/null @@ -1,711 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_station_g2.xml b/app/src/main/res/drawable/hw_station_g2.xml deleted file mode 100644 index 72f187ae5..000000000 --- a/app/src/main/res/drawable/hw_station_g2.xml +++ /dev/null @@ -1,437 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_t_deck.xml b/app/src/main/res/drawable/hw_t_deck.xml deleted file mode 100644 index d13a6f1e2..000000000 --- a/app/src/main/res/drawable/hw_t_deck.xml +++ /dev/null @@ -1,658 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_t_echo.xml b/app/src/main/res/drawable/hw_t_echo.xml deleted file mode 100644 index c9642c1bc..000000000 --- a/app/src/main/res/drawable/hw_t_echo.xml +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_t_watch_s3.xml b/app/src/main/res/drawable/hw_t_watch_s3.xml deleted file mode 100644 index 9da42a48d..000000000 --- a/app/src/main/res/drawable/hw_t_watch_s3.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_tbeam.xml b/app/src/main/res/drawable/hw_tbeam.xml deleted file mode 100644 index 1ab61b314..000000000 --- a/app/src/main/res/drawable/hw_tbeam.xml +++ /dev/null @@ -1,2693 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_tbeam_s3_core.xml b/app/src/main/res/drawable/hw_tbeam_s3_core.xml deleted file mode 100644 index 8387e402d..000000000 --- a/app/src/main/res/drawable/hw_tbeam_s3_core.xml +++ /dev/null @@ -1,1583 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_tlora_c6.xml b/app/src/main/res/drawable/hw_tlora_c6.xml deleted file mode 100644 index dad87ed5c..000000000 --- a/app/src/main/res/drawable/hw_tlora_c6.xml +++ /dev/null @@ -1,515 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_tlora_t3s3_epaper.xml b/app/src/main/res/drawable/hw_tlora_t3s3_epaper.xml deleted file mode 100644 index 37cc0e043..000000000 --- a/app/src/main/res/drawable/hw_tlora_t3s3_epaper.xml +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_tlora_t3s3_v1.xml b/app/src/main/res/drawable/hw_tlora_t3s3_v1.xml deleted file mode 100644 index 42e5695ab..000000000 --- a/app/src/main/res/drawable/hw_tlora_t3s3_v1.xml +++ /dev/null @@ -1,932 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_tlora_v2_1_1_6.xml b/app/src/main/res/drawable/hw_tlora_v2_1_1_6.xml deleted file mode 100644 index 123a78383..000000000 --- a/app/src/main/res/drawable/hw_tlora_v2_1_1_6.xml +++ /dev/null @@ -1,880 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_tlora_v2_1_1_8.xml b/app/src/main/res/drawable/hw_tlora_v2_1_1_8.xml deleted file mode 100644 index 123a78383..000000000 --- a/app/src/main/res/drawable/hw_tlora_v2_1_1_8.xml +++ /dev/null @@ -1,880 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_tracker_t1000_e.xml b/app/src/main/res/drawable/hw_tracker_t1000_e.xml deleted file mode 100644 index 2efed4673..000000000 --- a/app/src/main/res/drawable/hw_tracker_t1000_e.xml +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_wio_tracker_wm1110.xml b/app/src/main/res/drawable/hw_wio_tracker_wm1110.xml deleted file mode 100644 index 27ac4e7dc..000000000 --- a/app/src/main/res/drawable/hw_wio_tracker_wm1110.xml +++ /dev/null @@ -1,2178 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/hw_wm1110_dev_kit.xml b/app/src/main/res/drawable/hw_wm1110_dev_kit.xml deleted file mode 100644 index 94c9bdf22..000000000 --- a/app/src/main/res/drawable/hw_wm1110_dev_kit.xml +++ /dev/null @@ -1,3080 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 447a146c6..e4db2ff88 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,6 +4,7 @@ appcompat = "1.7.0" appintro = "6.3.1" awesome-app-rating = "2.8.0" cardview = "1.0.0" +coil = "3.1.0" compose-bom = "2025.04.01" constraintlayout = "2.2.1" core-ktx = "1.16.0" @@ -52,6 +53,8 @@ appcompat-resources = { group = "androidx.appcompat", name = "appcompat-resource appintro = { group = "com.github.AppIntro", name = "AppIntro", version.ref = "appintro" } awesome-app-rating = { group = "com.suddenh4x.ratingdialog", name = "awesome-app-rating", version.ref = "awesome-app-rating" } cardview = { group = "androidx.cardview", name = "cardview", version.ref = "cardview" } +coil = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil" } +coil-svg = { group = "io.coil-kt.coil3", name = "coil-svg", version.ref = "coil" } compose-material = { group = "androidx.compose.material", name = "material" } compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" } compose-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended" } @@ -158,6 +161,9 @@ firebase = ["firebase-analytics", "firebase-crashlytics"] #Protobuf protobuf = ["protobuf-kotlin"] +# coil +coil = ["coil", "coil-svg"] + [plugins] android-application = { id = "com.android.application" } compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }