From 8e125ffeae9ed31d72ec32c765a630e80b82ed36 Mon Sep 17 00:00:00 2001 From: xiangpl Date: Thu, 14 Mar 2024 17:46:27 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E8=B5=84=E6=BA=90=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=20=E9=97=AE=E9=A2=98=EF=BC=9Acompose=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E4=BC=9A=E6=A0=B9=E6=8D=AECompseApp=E4=B8=8B/composeR?= =?UTF-8?q?esources/=E9=87=8C=E7=9A=84=E6=96=87=E4=BB=B6=E7=94=9F=E6=88=90?= =?UTF-8?q?Res=E7=B1=BB=E5=92=8CResource0=E7=B1=BB=EF=BC=8C=E4=BD=86?= =?UTF-8?q?=E6=98=AF=E5=9C=A8lib-module=E4=B8=8BiosApp=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=BC=9A=E6=8A=A5=E9=94=99MissingResourceException=E3=80=82htt?= =?UTF-8?q?ps://github.com/JetBrains/compose-multiplatform/issues/4392=20?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=EF=BC=9A=E6=9A=82=E6=97=B6=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3HDResProvider=E4=BE=9D=E8=B5=96=E6=B3=A8?= =?UTF-8?q?=E5=85=A5ComposeApp=E7=94=9F=E6=88=90=E7=9A=84=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E3=80=82=E5=90=8C=E6=97=B6=E5=BC=95=E5=85=A5ksp?= =?UTF-8?q?=E6=83=B3=E9=80=9A=E8=BF=87ksp=E8=87=AA=E5=8A=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90HDResProvider=E7=9A=84=E5=AE=9E=E7=8E=B0=E7=B1=BB?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E6=89=8B=E5=8A=A8=E6=B3=A8=E5=85=A5?= =?UTF-8?q?=E3=80=82=202.=E5=BC=95=E5=85=A5voyager=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E5=AF=BC=E8=88=AA=E5=8A=9F=E8=83=BD=E3=80=82=203.=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=AE=BE=E5=A4=87=E5=88=97=E8=A1=A8=E3=80=81=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=AE=BE=E5=A4=87=E9=A1=B5=E9=9D=A2=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composeApp/build.gradle.kts | 11 + .../kotlin/com/yunext/virtuals/HDApp.kt | 2 +- .../com/yunext/virtuals/MainActivity.kt | 1 - .../composeResources/drawable/ic_app.png | Bin 0 -> 15439 bytes .../drawable/ic_launcher.webp | Bin 0 -> 2884 bytes .../drawable/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../drawable/icon_app_hadlinks.png | Bin 0 -> 24654 bytes .../drawable/icon_twins_4g.png | Bin 0 -> 1012 bytes .../drawable/icon_twins_add_btn_click.png | Bin 0 -> 115816 bytes .../drawable/icon_twins_add_btn_nor.png | Bin 0 -> 118039 bytes .../drawable/icon_twins_add_click.png | Bin 0 -> 78779 bytes .../drawable/icon_twins_add_nor.png | Bin 0 -> 79825 bytes .../drawable/icon_twins_body_bg.png | Bin 0 -> 191314 bytes .../drawable/icon_twins_checked.png | Bin 0 -> 2838 bytes .../drawable/icon_twins_close_btn.png | Bin 0 -> 8535 bytes .../drawable/icon_twins_close_click.png | Bin 0 -> 1194 bytes .../drawable/icon_twins_close_nor.png | Bin 0 -> 1227 bytes .../icon_twins_distribution_network.png | Bin 0 -> 4113 bytes .../drawable/icon_twins_fail.png | Bin 0 -> 14340 bytes .../drawable/icon_twins_label_bg.png | Bin 0 -> 8836 bytes .../drawable/icon_twins_label_short_bg.png | Bin 0 -> 7955 bytes .../drawable/icon_twins_log.png | Bin 0 -> 1601 bytes .../drawable/icon_twins_more_click.png | Bin 0 -> 706 bytes .../drawable/icon_twins_more_nor.png | Bin 0 -> 700 bytes .../drawable/icon_twins_no_data.png | Bin 0 -> 18281 bytes .../drawable/icon_twins_no_device.png | Bin 0 -> 36795 bytes .../drawable/icon_twins_offline.png | Bin 0 -> 2211 bytes .../drawable/icon_twins_on_btn.png | Bin 0 -> 13116 bytes .../drawable/icon_twins_refresh.png | Bin 0 -> 3282 bytes .../drawable/icon_twins_return_click.png | Bin 0 -> 984 bytes .../drawable/icon_twins_return_nor.png | Bin 0 -> 996 bytes .../drawable/icon_twins_search.png | Bin 0 -> 2320 bytes .../drawable/icon_twins_search_close.png | Bin 0 -> 3222 bytes .../drawable/icon_twins_set_up.png | Bin 0 -> 2719 bytes .../drawable/icon_twins_success.png | Bin 0 -> 14604 bytes .../drawable/icon_twins_uncheck.png | Bin 0 -> 733 bytes .../drawable/icon_twins_wifi.png | Bin 0 -> 1735 bytes .../kotlin/{ => com/yunext/virtuals}/App.kt | 29 +- .../com/yunext/virtuals/HDResourceProvider.kt | 114 ++ composeApp/src/desktopMain/kotlin/main.kt | 2 +- .../src/iosMain/kotlin/MainViewController.kt | 1 + gradle/libs.versions.toml | 6 +- hdcommon/build.gradle.kts | 1 + .../kmp/common/logger/HDLogger.android.kt | 10 + .../kotlin/com/yunext/kmp/common/TODO.kt | 17 + .../com/yunext/kmp/common/util/Datetimes.kt | 5 + .../yunext/kmp/common/logger/HDLogger.ios.kt | 4 + .../yunext/kmp/common/logger/HDLogger.jvm.kt | 4 + .../kotlin/com/yunext/kmp/http/LoginResp.kt | 8 + .../kotlin/com/yunext/kmp/http/ProductResp.kt | 4 + .../com/yunext/kmp/http/UserInfoResp.kt | 17 + .../com/yunext/kmp/http/core/ApiException.kt | 4 + .../kmp/http/core/HttpResponseParser.kt | 81 ++ .../com/yunext/kmp/http/core/HttpResult.kt | 17 + .../yunext/kmp/http/tsl/TslContainerResp.kt | 8 + .../com/yunext/kmp/http/tsl/TslEventResp.kt | 16 + .../kmp/http/tsl/TslItemPropertyResp.kt | 25 + .../com/yunext/kmp/http/tsl/TslParamResp.kt | 23 + .../yunext/kmp/http/tsl/TslPropertyResp.kt | 29 + .../kotlin/com/yunext/kmp/http/tsl/TslResp.kt | 11 + .../com/yunext/kmp/http/tsl/TslServiceResp.kt | 20 + .../com/yunext/kmp/http/tsl/TslSpecResp.kt | 27 + hdmqtt/build.gradle.kts | 6 + .../com/yunext/kmp/mqtt/data/MQTTMessage.kt | 13 + .../com/yunext/kmp/mqtt/data/MQTTParam.kt | 12 + .../com/yunext/kmp/mqtt/data/MQTTState.kt | 10 + .../kmp/mqtt/protocol/ProtocolMQTTCmd.kt | 56 + .../mqtt/protocol/ProtocolMQTTContainer.kt | 25 + .../kmp/mqtt/protocol/ProtocolMQTTMessage.kt | 207 ++++ .../kmp/mqtt/protocol/ProtocolMQTTRule.kt | 12 + .../kmp/mqtt/protocol/ProtocolMQTTTopic.kt | 98 ++ .../mqtt/protocol/ProtocolMqttDataParam.kt | 15 + .../com/yunext/kmp/mqtt/protocol/Protocols.kt | 0 .../com/yunext/kmp/mqtt/protocol/tsl/Tsl.kt | 13 + .../kmp/mqtt/protocol/tsl/TslCollection.kt | 37 + .../yunext/kmp/mqtt/protocol/tsl/TslEvent.kt | 17 + .../kmp/mqtt/protocol/tsl/TslEventType.kt | 17 + .../kmp/mqtt/protocol/tsl/TslException.kt | 8 + .../kmp/mqtt/protocol/tsl/TslItemProperty.kt | 51 + .../yunext/kmp/mqtt/protocol/tsl/TslParam.kt | 26 + .../kmp/mqtt/protocol/tsl/TslProperty.kt | 75 ++ .../kmp/mqtt/protocol/tsl/TslPropertyType.kt | 44 + .../kmp/mqtt/protocol/tsl/TslService.kt | 20 + .../mqtt/protocol/tsl/TslServiceCallType.kt | 16 + .../yunext/kmp/mqtt/protocol/tsl/TslSpec.kt | 28 + .../com/yunext/kmp/mqtt/protocol/tsl/Tsls.kt | 10 + .../kmp/mqtt/protocol/tsl/event/EventKey.kt | 52 + .../mqtt/protocol/tsl/event/EventKeyExt.kt | 73 ++ .../mqtt/protocol/tsl/property/PropertyKey.kt | 353 ++++++ .../protocol/tsl/property/PropertyValue.kt | 245 ++++ .../protocol/tsl/property/PropertyValueExt.kt | 1029 +++++++++++++++++ .../mqtt/protocol/tsl/service/ServiceKey.kt | 44 + .../protocol/tsl/service/ServiceKeyExt.kt | 71 ++ hdresource-ksp/build.gradle.kts | 17 + .../yunext/kmp/resource/MySymbolProcessor.kt | 22 + .../kmp/resource/MySymbolProcessorProvider.kt | 12 + ...ols.ksp.processing.SymbolProcessorProvider | 1 + .../com/yunext/kmp/resource/HDResource.kt | 5 + .../com/yunext/kmp/ui/compose/HDModifiers.kt | 5 +- .../com/yunext/kmp/ui/compose/HDViews.kt | 17 + .../com/yunext/kmp/ui/compose/TwinsTitle.kt | 229 ---- .../kotlin/com/yunext/kmp/ui/compose/Views.kt | 373 ------ .../EYH9XYDI5AKA/ComposeApp-3JGVIRIUZEK4Z.pcm | Bin 88704 -> 131832 bytes .../Session.modulevalidation | 2 +- ...951bfe8f3cd53c99228b0131e163e.sdkstatcache | Bin 1209384 -> 1209384 bytes iosApp/DerivedData/iosApp/info.plist | 2 +- settings.gradle.kts | 1 + shared/build.gradle.kts | 6 +- .../devicelist/HomeDeviceList.android.kt | 50 + .../drawable/ic_app_debug_uios.png | Bin 0 -> 15439 bytes .../com/yunext/virtuals/data/ProjectInfo.kt | 13 + .../virtuals/data/device/AndroidDevice.kt | 38 + .../virtuals/data/device/DeviceAndMessage.kt | 9 + .../virtuals/data/device/DeviceAndState.kt | 18 + .../yunext/virtuals/data/device/MQTTDevice.kt | 51 + .../virtuals/data/device/TwinsDevice.kt | 88 ++ .../com/yunext/virtuals/module/converts.kt | 118 ++ .../datasource/MemoryDeviceDatasource.kt | 52 + .../module/devicemanager/DeviceInitializer.kt | 30 + .../module/devicemanager/MQTTConvertor.kt | 52 + .../virtuals/module/repository/DeviceDTO.kt | 16 + .../module/repository/DeviceRepository.kt | 107 ++ .../virtuals/module/usecase/DeviceUseCase.kt | 49 + .../com/yunext/virtuals/ui/HDResources.kt | 85 ++ .../com/yunext/virtuals/ui/common/AppViews.kt | 619 ++++++++++ .../yunext/virtuals/ui/common/BasicViews.kt | 59 + .../virtuals/ui/common/ScreenModelExt.kt | 10 + .../ui/common/dialog/CHAlertDialog.kt | 119 ++ .../virtuals/ui/common/dialog/CHDialog.kt | 134 +++ .../ui/common/dialog/CHLoadingDialog.kt | 126 ++ .../virtuals/ui/common/dialog/CHTipsDialog.kt | 107 ++ .../ui/common/dialog/XPopContainer.kt | 34 + .../yunext/virtuals/ui/data/DeviceAndState.kt | 103 ++ .../yunext/virtuals/ui/data/StateHolder.kt | 79 ++ .../basicNavigationScreen/VoyagerDemo.kt | 8 +- .../bottomSheetNavigation/BackScreen.kt | 17 +- .../yunext/virtuals/ui/screen/SplashScreen.kt | 27 +- .../yunext/virtuals/ui/screen/VoyagerApp.kt | 13 + .../ui/screen/adddevice/AddDeviceScreen.kt | 44 +- .../screen/adddevice/AddDeviceScreenModel.kt | 61 + .../ui/screen/adddevice/TwinsAddDevicePage.kt | 206 ++++ .../ui/screen/configwifi/ConfigWiFiScreen.kt | 9 +- .../screen/devicedetail/DeviceDetailScreen.kt | 12 +- .../DeviceDetailSubEventScreen.kt | 9 +- .../DeviceDetailSubPropertityScreen.kt | 13 - .../DeviceDetailSubPropertyScreen.kt | 20 + .../DeviceDetailSubServiceScreen.kt | 9 +- .../ui/screen/devicelist/DeviceListScreen.kt | 49 +- .../devicelist/DeviceListScreenModel.kt | 65 ++ .../devicelist/InternalHomeDeviceList.kt | 132 +++ .../ui/screen/devicelist/InternalHomePage.kt | 258 +++++ .../screen/devicelist/InternalTwinsVersion.kt | 22 + .../virtuals/ui/screen/logger/LoggerScreen.kt | 9 +- .../ui/screen/setting/SettingScreen.kt | 9 +- .../com/yunext/virtuals/ui/theme/Color.kt | 5 + .../yunext/virtuals/ui/theme/ItemDefaults.kt | 64 + .../com/yunext/virtuals/ui/theme/Type.kt | 62 + .../screen/devicelist/HomeDeviceList.ios.kt | 49 + .../screen/devicelist/HomeDeviceList.jvm.kt | 170 +++ 159 files changed, 6723 insertions(+), 657 deletions(-) create mode 100644 composeApp/src/commonMain/composeResources/drawable/ic_app.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/ic_launcher.webp create mode 100644 composeApp/src/commonMain/composeResources/drawable/ic_launcher_round.webp create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_app_hadlinks.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_4g.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_add_btn_click.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_add_btn_nor.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_add_click.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_add_nor.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_body_bg.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_checked.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_close_btn.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_close_click.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_close_nor.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_distribution_network.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_fail.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_label_bg.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_label_short_bg.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_log.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_more_click.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_more_nor.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_no_data.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_no_device.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_offline.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_on_btn.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_refresh.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_return_click.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_return_nor.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_search.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_search_close.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_set_up.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_success.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_uncheck.png create mode 100644 composeApp/src/commonMain/composeResources/drawable/icon_twins_wifi.png rename composeApp/src/commonMain/kotlin/{ => com/yunext/virtuals}/App.kt (62%) create mode 100644 composeApp/src/commonMain/kotlin/com/yunext/virtuals/HDResourceProvider.kt create mode 100644 hdcommon/src/commonMain/kotlin/com/yunext/kmp/common/TODO.kt create mode 100644 hdcommon/src/commonMain/kotlin/com/yunext/kmp/common/util/Datetimes.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/LoginResp.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/ProductResp.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/UserInfoResp.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/ApiException.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/HttpResponseParser.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/HttpResult.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslContainerResp.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslEventResp.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslItemPropertyResp.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslParamResp.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslPropertyResp.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslResp.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslServiceResp.kt create mode 100644 hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslSpecResp.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTMessage.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTParam.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTState.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTCmd.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTContainer.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTMessage.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTRule.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTTopic.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMqttDataParam.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/Protocols.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/Tsl.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslCollection.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslEvent.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslEventType.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslException.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslItemProperty.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslParam.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslProperty.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslPropertyType.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslService.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslServiceCallType.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslSpec.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/Tsls.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/event/EventKey.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/event/EventKeyExt.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyKey.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyValue.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyValueExt.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/service/ServiceKey.kt create mode 100644 hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/service/ServiceKeyExt.kt create mode 100644 hdresource-ksp/build.gradle.kts create mode 100644 hdresource-ksp/src/main/kotlin/com/yunext/kmp/resource/MySymbolProcessor.kt create mode 100644 hdresource-ksp/src/main/kotlin/com/yunext/kmp/resource/MySymbolProcessorProvider.kt create mode 100644 hdresource-ksp/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider create mode 100644 hdresource/src/commonMain/kotlin/com/yunext/kmp/resource/HDResource.kt create mode 100644 hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/HDViews.kt delete mode 100644 hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/TwinsTitle.kt delete mode 100644 hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/Views.kt create mode 100644 shared/src/androidMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.android.kt create mode 100644 shared/src/commonMain/composeResources/drawable/ic_app_debug_uios.png create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/data/ProjectInfo.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/AndroidDevice.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/DeviceAndMessage.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/DeviceAndState.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/MQTTDevice.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/TwinsDevice.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/module/converts.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/module/datasource/MemoryDeviceDatasource.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/module/devicemanager/DeviceInitializer.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/module/devicemanager/MQTTConvertor.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/module/repository/DeviceDTO.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/module/repository/DeviceRepository.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/module/usecase/DeviceUseCase.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/HDResources.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/AppViews.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/BasicViews.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/ScreenModelExt.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHAlertDialog.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHDialog.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHLoadingDialog.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHTipsDialog.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/XPopContainer.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/data/DeviceAndState.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/data/StateHolder.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/AddDeviceScreenModel.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/TwinsAddDevicePage.kt delete mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubPropertityScreen.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubPropertyScreen.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/DeviceListScreenModel.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalHomeDeviceList.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalHomePage.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalTwinsVersion.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/Color.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/ItemDefaults.kt create mode 100644 shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/Type.kt create mode 100644 shared/src/iosMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.ios.kt create mode 100644 shared/src/jvmMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.jvm.kt diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index c9bee0d..a8d7203 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -4,6 +4,7 @@ plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidApplication) alias(libs.plugins.jetbrainsCompose) + alias(libs.plugins.ksp) } kotlin { @@ -33,6 +34,7 @@ kotlin { baseName = "ComposeApp" isStatic = false } + compilations.all { kotlinOptions.freeCompilerArgs += arrayOf("-linker-options", "-lsqlite3") } @@ -45,11 +47,13 @@ kotlin { androidMain.dependencies { implementation(libs.compose.ui.tooling.preview) implementation(libs.androidx.activity.compose) + } commonMain.dependencies { implementation(compose.runtime) implementation(compose.foundation) implementation(compose.material) + implementation(compose.material3) implementation(compose.ui) implementation(compose.components.resources) implementation(compose.components.uiToolingPreview) @@ -57,7 +61,9 @@ kotlin { // implementation(projects.hdcontext) implementation(projects.hdcommon) + implementation(projects.hdresource) } + desktopMain.dependencies { implementation(compose.desktop.currentOs) } @@ -109,3 +115,8 @@ compose.desktop { } } } + +dependencies { + ksp(projects.hdresourceKsp) + implementation(projects.hdresource) +} \ No newline at end of file diff --git a/composeApp/src/androidMain/kotlin/com/yunext/virtuals/HDApp.kt b/composeApp/src/androidMain/kotlin/com/yunext/virtuals/HDApp.kt index 0350f15..e47a935 100644 --- a/composeApp/src/androidMain/kotlin/com/yunext/virtuals/HDApp.kt +++ b/composeApp/src/androidMain/kotlin/com/yunext/virtuals/HDApp.kt @@ -3,12 +3,12 @@ package com.yunext.virtuals import android.app.Application import com.yunext.kmp.common.logger.HDLogger import com.yunext.kmp.context.initHDContext +import com.yunext.virtuals.ui.initHDRes class HDApp : Application() { override fun onCreate() { super.onCreate() initHDContext(){ - HDLogger.debug = true this.init(this@HDApp) } } diff --git a/composeApp/src/androidMain/kotlin/com/yunext/virtuals/MainActivity.kt b/composeApp/src/androidMain/kotlin/com/yunext/virtuals/MainActivity.kt index 0273f2a..00c1691 100644 --- a/composeApp/src/androidMain/kotlin/com/yunext/virtuals/MainActivity.kt +++ b/composeApp/src/androidMain/kotlin/com/yunext/virtuals/MainActivity.kt @@ -1,6 +1,5 @@ package com.yunext.virtuals -import App import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent diff --git a/composeApp/src/commonMain/composeResources/drawable/ic_app.png b/composeApp/src/commonMain/composeResources/drawable/ic_app.png new file mode 100644 index 0000000000000000000000000000000000000000..8aa6a970270d4e7248e3cc09d2527093db742d1c GIT binary patch literal 15439 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 FV1nP6tf&A0 literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/ic_launcher.webp b/composeApp/src/commonMain/composeResources/drawable/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..28d4b77f9f036a47549d47db79c16788749dca10 GIT binary patch literal 2884 zcmV-K3%m4ENk&FI3jhFDMM6+kP&il$0000G0001w0055w06|PpNY()W00EFA*|uso z=UmW3;Ri7@GcyiBW{ey$jes55b5S`|ZVZ{(x$xch{z?D+^{yErVgleVwa9qvGt40r z42;MG=7<0QySlzE=Ig6%01!FBK^$Fsxe@Hfe6aCy?Wh2r0~}@_lQAF90oTUi0FhEr z#(*;kTC(r!tQk6;gxj4h%FdHAt(^M3YvYj(!tOeN)+Hvj6+< zzyJRG?^lZfWuR#t!tUKP&(?%3v&Zd$R2YN>lB(Lq`OInY48%4%yTv2 zYe1{G`3)(PDEio5Y@-I5tUf`c%%OCJMtSW56g3iEg%3`$7XSJJHyA z<|7&N)5Xrlgv~%BO24eFd;Hd;uiK%D`EdK|quUeRZDqbh9l)%j%J#0lfrZumvA<_w zu&=AVvdChf6}eqh(bUz`(`Ue*p01{fBAcTgKyDYLs_I+YyJEk+rM@avU~>fB$n)HS zM7pfJydu`i%gfS<{PF94kZDv$t>06sAkheDzu40NJ$5CMW%n^Lls?8^p^QGWURbKu3ZduZQZ((s2? zzE`}<{;Zt7<$C|9R8A~DJ~@%x>TfP zF>TX8)@v|t)q4GjRt<}5s6hLHwRel7>V@&r-O|Av(yh;Q1A{E>Ir>p+%dHD|=l+lT zpr(Dg&>#Nu=!)6bCLr-ZS%|;h)Ij$+e@r8_{qO19QvDe=&1tmpY*0lcA^Cc-#{9fQ z<~$*<&P$Q<_jy#<$40PMofM7aQ}C=jphI`4kLg}Z7CIN#26D{-4v-_CA-LiE@(%{y!BzsU%gG`Q?sjLUf%qFSl0y)2#ae*+EI>s|i`d^V$Dn)qmzqRq6VJRY|{4ujsIU%#bnqU6MR&-1I_43=|5(6Jr;Jvert) zE?S|Tmn}Tv<-??sxV5@9t}3D=>YZ0JrQe$CO~|EY=Lj9RM&4svQHPQL6%pV5fPFiH zfXDx;l@~et{*{U*#c#Dvzu)|znDO7$#CRx)Z&yp-}SrD{&|(MQtfUz~n35@RLfUy=aqrhCX0M}J_r5QsK~NmRCR|Nm&L z41UdsLjWxSUlL41r^0K&nCCK>fdR-!MYjFg(z9_mF^C|#ZQw?`)f6uVzF^`bRnVY& zo}@M06J&_+>w9@jpaO4snmU;0t-(zYW1qVBHtuD!d?%?AtN7Plp><-1Y8Rqb20ZaP zTCgn*-Sri4Q8Xn>=gNaWQ57%!D35UkA@ksOlPB*Dvw}t02ENAqw|kFhn%ZyyW%+t{ zNdM!uqEM^;2}f+tECHbwLmH*!nZVrb$-az%t50Y2pg(HqhvY-^-lb}>^6l{$jOI6} zo_kBzj%8aX|6H5M0Y<)7pzz_wLkIpRm!;PzY)9+24wk2&TT{w--phDGDCOz{cN_ca zpnm7`$oDy=HX%0i-`769*0M6(e5j-?(?24%)<)&46y0e&6@HCDZAm9W6Ib#Y#BF6- z=30crHGg+RRTe%VBC>T00OV6F+gQDAK38Ne3N9bm|62tPccBJi)5{B z4zc^Db72XiBd}v$CF|yU{Z=M|DZ%-(XarYNclODlb1Kz1_EKLy(NSLCN`eUl(rBCL zT*jx@wNvze0|TSqgE(QArOZU)_?qH(sj#TwzElLs9q)(0u!_P|R%Cy_0JFQxgGV>1 zz4?_uq<8_gM0`c*Hh|;UMz~vrg1gQXp{ufg`hM_qU;U>+zmvc5blCLSq@PrEBSGR# z&8=2Z4uXN`F3p73ueD1l{s{k$WipAvSh5W7ABe?4)t;r@V?y`bNB5FvBuE|0VRTb< zM1Hn^?DSsJY+sX@T5xW=#>T9VEV|?<(=6|ge$X6Sb05!LFdjDcoq*gM(Zq=t;_)Le&jyt(&9jzR73noru`a# zN*<`KwGa^gZU3-)MSLF0aFag#f0<>E(bYTeHmtdbns#|I)-$)mJ`q9ctQ8g0=ET?| zdO}eZ*b_p>ygRTtR^5Ggdam=Zb5wmd{}np+Jn1d_=M`~P=M67jj})fH4ztb5yQqQW z^C|C&^LHAK-u+ooIK)yM)QM?t;|<{P;;{`p=BclzAN#JzL4jCwXkQB1Dy{=^KR`=~ zTrr)y7eiYBzSNs_DvO=4A6#EgGS-zY%Vi)N*Yb`U;6o}KR}dq{r9pT5wqZ@3NOE8- z9-(}D|Nc5732CSYQbL)!gPQ#RbD8BhK3dl{sUuPvei0tkvnJBxDEAYTesU8H$)g(Plra{VH(v3u^CO1~(+ zU0O7#)jaS4{NcwA+LuSm&VBcX2#Im3xg)W}ySNw%->orn1taZ&+d)}8gJTqA!u|5P z{yv?zol_3|(1(%M(EVU=cp?L`{Pi|ixk{U)*guFML3P!OSlz;zGA#T+E@8@cgQ_mv1o7RSU=Zo_82F?&&2r;WE z@wk}JHYEZ9nYUc(Vv~iTCa3u8e4q(yq<29VoNbKk|`mq%I6u)My=gPIDuUb&lzf4`MEA9^g8u z)vp8|$$HE9m_BTV?lOosIGa4jud=jIbw)O2eCMfyw2*S8?hjWw^nqws$O*M$3I1)x zR0PWFb3$ySOcGTe1dz%N0l;RPc`x%05FtT^f^j{YCP}*Q=lvp4$ZXrTZQHhO+w%wJn3c8j%+5C3UAFD&%8dBl_qi9D5g8fry}6Ev z2_Q~)5^N$!IU`BPh1O|=BxQ#*C5*}`lluC515$lxc-vNC)IgW=K|=z7o%cWFpndn= zX}f{`!VK02_kU+Q5a3m37J;c} zTzbxteE{GNf?yLt5X=Bzc-mio^Up0nunMCgp*ZJ;%MJvPM3QK)BryP(_v@ei4UvHr z6+sbCifQaOkL6-;5fL8$W($zZ_;CZp305C;~$hhRquZr-r)jjd1z z31%ZK{-(`P#|Um_Sivn@p$-vz46uqT>QG0B1w9znfS9A8PB2LaHdzA|_)yjXVR*l{ zkcu3@vEf7bxH0nkh`q?8FmoO_Ucui*>_a~P?qQrlZ9@+D7%MTpSnztpylXrt5!-k8_QPB?YL8Kx_On8WD zgT+111d(Op$^$&KLAN5+@?>f7F4~wFi(8TL8+szgVmcMDTp5l&k6~=rA{Dt}!gb^r zSWY<)M7D|Z2P0cEodj6E42PV>&>DFmQpgt)E-|#sSUU@uKed+F680H@<;-x{p|nuH4!_mn85rx>wz;0mPi2ZkL#k6;sznu?cXh!T0S>{w6 zL^gvR05NY64l*<+_L>On$rjx9!US;l;LX6@z}yi#2XHh)F@Oo+l)h%fq$v}DNmF2> zfs^_t0)3N-W<9-N?uedVv{)-J0W5mh#29QM5R5h&KuiRM=0Zvnf#lF=K#WlCgc#9c zS;qvh(P$!_a8JwyhI^ZJV2k+B6Z^64?w|1?5gyo6y{}923CRZfYVe1#?F% z7h2SUiNO3;T#JUOyovSs@@C1GtwipycA=*x5{BpIZ_#GCMuV8XK=x;qCNy{d7?wA~ zC+=vjls;ci&zW=6$H~4^K%v{p}Ab?U%C6Z4p%eC<3ExqU$XR<}LLF67A$Sr20DR_pJ3yeBa~ z^sw{V0FI5;UpwXsScYuhbqGQ`YQ25;6p6W^+tgL&;Ml;>S3CGpSZ>VrTn0m1$y$HU z&65)I!c?oREz};c=nLCliriqQX->4uivHTgd${GqeAlf*!P^B|jkU|*IdNP(&6C>4 zqOW$)Nw9nvjy^&`?E|gotDV{JmJ9Q~vuhy<`^C4XIUDt|j4o6rK^e8_(=YqC zuaR6TRVf@tUFHB079o4MBIh{M~4>WwnGgesQH*3?w(RA%hCZ*7)b!aNV=yOQ%o_Y=Lt0Sl*(9^jfRnC210Om$=y>*o|3z} zAR&vAdrB#mWoaB0fJSw9xw|Am$fzK>rx-~R#7IFSAwdu_EI|SRfB*yl0w8oX09H^q zAjl2?0I)v*odGJ40FVGaF&2qJq9Gv`>V>2r0|c`GX8h>CX8eHcOy>S0@<;M3<_6UM z7yCEpug5NZL!H_0>Hg_HasQGxR`rY&Z{geOy?N92Z z{lER^um|$*?*G63*njwc(R?NT)Bei*3jVzR>FWUDb^gKhtL4A=kE_1p-%Fo2`!8M} z(0AjuCiS;G{?*^1tB-uY%=)SRx&D)pK4u@>f6@KPe3}2j_har$>HqzH;UCR^ssFD0 z7h+VLO4o@_Yt>>AeaZKUxqyvxWCAjKB>qjQ30UA)#w z&=RmdwlT`7a8J8Yae=7*c8XL|{@%wA8uvCqfsNX^?UZsS>wX}QD{K}ad4y~iO*p%4 z_cS{u7Ek%?WV6em2(U9#d8(&JDirb^u~7wK4+xP$iiI6IlD|a&S)6o=kG;59N|>K1 zn(0mUqbG3YIY7dQd+*4~)`!S9m7H6HP6YcKHhBc#b%1L}VIisp%;TckEkcu0>lo@u995$<*Em;XNodjTiCdC%R+TX|_ZR#|1`RR|`^@Teh zl#w@8fI1FTx2Dy+{blUT{`^kY*V-AZUd?ZZqCS4gW(kY5?retkLbF=>p=59Nl|=sf zo1Pc|{{N4>5nt#627ylGF`3n>X%`w%bw-Y~zWM_{Si$dc82|=YhISal{N7OY?O`C4 zD|qb}6nLWJ`hUyL+E>-;ricg9J@ZNYP(x(Sct&OI$Y!QWr*=^VN;G3#i>^1n4e#Je zOVhbFbLpXVu*16enDM+ic;97@R~u&kh__kgP#!R`*rQEnA+_dLkNP~L`0alC|J;c; zeiK=s8;BsLE)KbG3BD&Br@(Ha@SBT&$?xX`=$;eeel=|R_dIr6-Ro?=HEjnsJ_b`1 zK6Yg^-6;^2aW!xeTK)A~3Rm|L^FCHB_I>jIju7ZGo&N_1*QHkxH2!!%@o4iZ?vntS;&zJdPe1dH#04YD93A44o-MpfD zP{rn_aq>U%RDvC2+bp;xPlsOzauIi3*Lf42`jVKKZCRuKdYhi>FDuL2l=v{$BCN#Q6796s%r-AG$Q^t(3c@ zD?w0UhYr11@feiyl9kY_@H8~|xlmO<8PfQmj1!$@WieW@VxR@Psxfe-v9WCi1+f>F4VL?0O~K7T?m4-u|pSkBpUJZZe*16_wAp zSYZ@;k`3;W3UHKUWc8QeI}0jH5Ly=cGWQPw(Kr2fm=-5L(d`lcXofy8tJY3@Tuadz zYWXR{mW7XT!RF#RVCe%}=tM*O6!AD3^(!8un~opNI%Uko7$5t@<8+?; zTxDys(MyyGsUjtSu9$+|_-t!U3fVb1dkK?l`17<+jfl=hrBHnDSV>^R1=TnQeyqbW z>ov#l%!1|S!1>8UUxIdhQq`_klcHVx0{?#>K3#$4GlXncwldt!g17TcvKq-jo_996 z>oA=tH9CqRl6Yw?Uc`am!V?lHJbizOJaVaScf1UP5e7Dbgabq=b!B~T&_F6?ooU>w%x0A zH~&MHJ=q`fCH{U<7MDXE4SD32cDZA)WJeWkllJ`UspWaS#eDe^kg^oU_A14UE9zG-a^g{xaXf$})Wik>gT zl#dkzGr(;h0JZDuFn(+k8wNq?PZ5grQ<+sM?wBGt@JnH6v0#or-5wBQWKU~(S_> zkE!tc*ZJ1Y&*p(xX84POb3cClRMd!^qJ#CAZfIepEj-<`VURS_yCz0(?*Ixcj4 z-!zV1_QZhpm=0<;*(nm+F>T=)o?ep@CK5I%g^VAA+RB25ab?7)A~z~egru=I1S|@v zH7tXV!0wmGS^qj#e+MY;C5eUjEAp$Y?LDkS^QPZ}8WN85?r$u<-Epi;yZ1|J2J`se z$D6DpH~2F=eI0B&=UFAUnJvZAmClJlK)sutJ?M>xpZiWV&0=G4MZP+x+p>EX=HbCz zxls%Mw?*u^;LbHWIWCyq+yi)`GmFn9J112CZda_u@YIP%i;srFg_paU02Ifij*7}l z&CF-(3|>*a|+vbNR`^RP=9G?ymEJ0Z~)d&c*UE$UMepZ zcITr{0WqhxkjUnM15js_gW=e3Uh|y6ZReaXHIz-=p`x5VvB&rH9y>Amv@^WmXFEw) zQXYrk3feir=a{jMQ+wDIkkFnZ$k{sJakHn*?u za%4b!00ev8NVLM1TY=cl?KB&55BY_MU-sg?c>=Dbz_W{(Z~c?HJi*XpYL)C6Bd8WH zt+v-#0&o~@t4qESi*)+eW%@VD0|o^yF)n0hME$UtXF$*Lvh}7sso{`|pn*JDIy5^Fm3s$5*zEE=?u5<=l8FJc3r%+H} zdfoNl2J0^~!-*mOL5o-x32|e0Im*E!yY7F7E5N)W3>+v_LBydlEx?4$RL5f2oYRD# zaR0wv(-p~wO0eLDl3K=%`{5+0Gd$ktO=W)gWlGZJ0`K z$_RNA=ckrfa;H0KA~dR^p�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeN4ySvWWXYaMwUhBWsUVESM)@v)I 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 VorCx7^qT+x002ovPDHLkV1f!62tNP- literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_4g.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_4g.png new file mode 100644 index 0000000000000000000000000000000000000000..f20ce61e44f770c65be0e370a7ea35839ee9fb34 GIT binary patch literal 1012 zcmVK?8YEIdQ1A!qtrYZ< z)S#l^!IKCIB8pfrMO5%$4}t{+@#sPDT1l!>6~s#`UIdA#Rk7*09z-dEUWI~9Nt*GS zO=g*$%w~7HiAyyL?acf8=G(XPc4sC;p|5nFa{&@lk)%@S;^JSrz-z>biN3t*5t>pO z|A$u1lDJ<-3e^PYj?&f?;O5vA;N>U-{@GSdKvNo9-L=s-C7Gp7s#uw?- zZG&Y%Ob$G)swqk)++_2u!_)0CIR^#@%RA|(yw?P#>jHtJMsi>|LJRau2QtYm!83XO zOym@0a>*3zrE3Y!84U^m)SuOQf$4T4E^P)o8e_z&e;JhhnS(>HR>!>2cnVoZiquOmZM#s?i)kZsB2V zG=ZtQV8D$?zHDCqga%dt-1;pUTVIsM``Qh_P2UpOEy$0)^T0PbkBM8y7y7CnMqWNP z;}`d7NH}BfciSt-kKG3L;~d1N^T6?VeI3sjeRX4o^@g=ToXN584WFWD5o5J(ab0~k z1KkWnkpWa}v=?@3Cvg0>t0zv+KMk>xA2yMa#!_$&2Z8-IQAT%XbL@&OyL3AChISdx zp~f;Zr7G}3cF3wt?MF&lB@(2+DoH!G+(GWv%QyR&Z?2Zhmhx{JL&fg~fyvZP8hL$)8PD;; z5H!WEm~?rOrUBSj|6ztMFMOjU47cWVeGbERGF}^X=c+^`patT(UO`0w;(MUQn zHa-V7ljijuri#I0RB_0SU8tgS*l|A8^!lqMnsm+>!?+5*-8GWNc6b8s-(#32Z}2yj zNYKFaY4*d8LMO#24WBWb*?)vMI&+RLs`k<_dx*(*+`?cqDKKWwvY)C?GD&I3_biMU iT`T3714H#)_5DBS7TABH`2%SH0000M6epGNyn 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

c)sDQG>_L(Y`Iku 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

;R&AuUc}C$L?6)QM}^f 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 z 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%0D$@E}8704^FZ{M&6rG9n;%Vm$g&JJf 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 OqbRE;Q}xO0$NvW(eG`cQ literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_add_btn_nor.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_add_btn_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..bb3e0d34d04608ff1c4fbe5f13592c2a7cca5d40 GIT binary patch literal 118039 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

3vbMS{SBtga#_hdVEO{FKwj0t~ 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 *z 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

veOV|rpKJQ73-gThlOP< zex!z4=qLXu-8cn-;WUU)ySUv!DR@xMN39Es*Odo%>nD)Ht{Bx>4UN^?+;++(hY(#C zAyzdaG6m5BDSFGT@$|=%lqRsIA)yFLX~_ZX@uPY^52?)h(egUy_3@m1HIF$wT?Sqd ztZQINZruBN+&$uSW`p!U{f@y)AeKG%Zr3eRXl`otoF98d`)Nq!`CGp4d)>$Y;XtIJ z5~b*y5g~&7PO`#YwGZaNHW9=aW_S?|g4FI`2|>DEx~YivctmUjyd^PbgoSb@4|X_$ zdxSa@90F#ep)gq+A*_@FfTIFIxUyH{n`UpkWBHxu!CZYp!&9!DV4%lfbrw?*Ioe@j zD0GZsb@4DI0qtn>Li~d5%7Gppn~w6Ps{TiJE`|NjTeq^HnK>+k1ww4>ARc)Wv1$ba zSayq1Aw7&q51D4x?cz72379a;xz)lkx+h&Z@OEkv_btC~s)UAy8~9X@sNU2tJR)G+bXc5J ztlSKi-p)tS=ntiv)BPn9x?2uu_h%s_+FT7eH!F5PcH4aUD;i@x7fU<|egRJ6Git=* z#@*rrF~t*6(L8cS$p~{gtZy-WB$LD>+hx2==<;}pyNPI{beSmuHZb6tay!+McIPDx zwA{5N`it;9Y%WXhHJC30SRVNK7}7g8B}9|!Iv(e(ekVIh4VWr37e{LS*AmAJrW2Wb z_PvWAX@Td(>H{s9wGrjoVN=*FN769ft|3(Fcp089dyfkT#Uf5V1D0E>Z7iGXtGc4~ zG+n1XE*R|(5OY=|7ojVGVY>>{B@qMZBMx1rz$))Afo{p0a20(FJl#$BX}lClEw0syyh)`gWj{;U?O9XjV|XrNFfKhgYt-$kttR z3gtJDl>0K-+v?cgco_g0)-rqD9~8v+;1fuWhi~|yLidrxT-fk5iK}!r_Fxlip_NJ2J{l0Pc`)9KHi>^J=JgzrVVp$Mkky4;>HnE_&L-zc<1^!b#72Wwasw( zZuAF(`j}Sk9DZ>|Br95N{VqH5I~y3j7y-h924HYlwIm;_P(1XXXMx;nnuwE&tO2c* z`j!T@_6It9B4`_iFcWoQp@xh*hD2L;d`F@3MlzgMkE2O;Xvj{e3$&N!B#OfJ`Q-j_ zsc9#bD=vmvyq$U03h*t=ZKx&KhsGeEb11G>gU`c+T(~ke8UgXk3zJYi-#&tV9yoRQ zY*z08vmZ{~{AXgN(_lJdA_4abE_Lk1e^|{j6q{^ejdbTw`wCQ90na+LwRi$SEm(f$0mHFm*xqE_d?)Ql@V#1v+h~qtGT|;Dy@11I`ilX`w*T5$pq&<(doskYYO zp`FBv&p#GEM8gU^hFuV8Vni84>>ZdI8)7gXZ`RI+aB?&#| zs96vGb)?O-9pTyPYQ0Vd0MF@aUiX58Co-ABQ}rDP zewOcS0edN205yKOFWf%KqfFe~y0)b5iaZ2?lo;&G-diwR+nDRzT?Bfyk4_WNI|dhz zaT-dq)LrL009w$mZtd}#`5#6sn^zZ+Ijw zJFoV?picM*D=KT3mepgBrHf|c6$Z!EotT1IF3}TP$MkQY5Jde-ZiX_#m~}5z^%}JS zz|ts{igV|s0o(apwex^tYG!MBhlK?%OUXo$J93QJ?v6;H?rBqQK|8p^IU803V;68_ ztQFY4(~pP}V{}zL2J6#l*Px7G>B%>jtz$_m`W;BtqJ&G*Hk7&3ga;APMw5XYd%LJ? zWl(~g(c_K89BZ-OuxHiPen>-zYsGdbd&%*d*oVb!>m3I*U-cn%aw*ztdNWd&?up6A zo5Kfb4o%&N&o}yFM|#)e`!)FE1EMq3y%D-}W4giTcMkqA2cMo0Z2pC&9+7@!`Ci|| zO$1HCJxfz6;+;)YKVAgJT0%IdzO&qXF>E6)o&FFp4TPoPw0!V=3A#dvs;`^dpJEz9 zpwQ}lnS%5NuVS#^QGyyDvuQu1-~@wyYS+a|O6oSTNPgj!IBZI(%NWhwkbPT2u!Zl^ zB&k<2lEX&@JwK#S-JfjVioX?qMl(b92!tH2Hi9BD$Z=1owvX|4#B$R6JiECg>YhA( z0GTm$(SbiE5oqR!u@a<_=3~-OipUFp&Q=e_!wLmS7hBejf|rAVoGmm;*FfU?b|W%jV`8sIb)*J`5FNtIY_V$M*#%@bidJe}^X zkrX(vfBV@u1RqsH{UVW~SEm={Ap8z~=b{40H-L@Ikm9+o7}p@XR8Or7R`h&#)sIGb== z!%KkRfdsbzA-KB}G`Kqq?(Ty-1b26L3GNzfaCg^1XK?3mPM!T5_SdJn>gn$4uI{>f zU2EOMqLyqgtA75}+B?wNKMm9VngVa#I}`SX7=~W!gZy+b8cWiQwupfEMF7W1&liyP z)QjJ5%1L4zNCo4zaV#%v9c8kmOzdA;^@*Cy)bwNcGa9*krOKly9M z5ky5g?P|EB;82x$SLF!lmt5M_91`K2M7A92>YW(Kjn5@%5qukNl-`tcA17|TDXg?Y z-d;BKF5wMpzRsSioyoCs5!|_j0t%nS=>+&F!bhKJ{j+k`0|N86{(W6*7$xU_jl*S* zs_CWm6wAORI~gA)CP1&@$zusuf}ss?$yjHZWUGKg?IHDUC4EQWS3P`x9)|;r(ftH_$_9Tl5q% zE97_k1t312@?N9dx$)`-|A*R9CS<~nb;hYz>?s``);7d7Sr7BWUAlD0@|h5AB~z4- ze84OJ;fDI=zsE*|S?aZigyt)`f zS8{TixKvu}Xzsv0^ue{?bmB^WneyfV?+w_ypDG(1IfkeN^&v`kM$RxQbQ~;{EBCGQ zWGi-G&dNFIf3d3?Mn^pWW}rIExS6bi#XastuuNsC;3rkmqpPfc<5dc1gT;9{c=>kE z@kq#V(cX`TL~AH+8=A^u@U4PiaS(=u!L!V}onq9TB(iqaWt6w`jg`mJDvwZlYi5I# z8Ki-*MuaL(l3u4hrAuHy%g!NZ+rT^{q5gBfg?w9^e{s(3fXyb$9Jc44JejPNXLD5^X|bpd~VT5cin0AI3oCg&DqnMCqh-hwXgd z=lPjMfm6iUb9!tHZ9L>^!qO_tUMboEzqXr^i(lKBKp}XAE&zN&q@w+&hOK&1XPV^3 z4ornKHyM;acKV%vr1&`^-by%fQ^GuI|(bl>Owg07+xCoEb zO?JIeT*`@oJL|^#wwc5adu~3Ima(-szWVQ*4H7H~6D6&? z4o@4}*RW%BKgDKL>|wh`zkH~7$Ugx=g)peoFYUitPCn9U=yCF!F19HW|0WP-W@79& zp1R&?OEyyDpvYVT^)Nov8(X1BLrdgG#XoI1525}F8o846qs9kGQOU;CLjD7rAH}c$?<0KO0qu849zk|tYj;qYX15ca9-Xk>Ud$X0j z4Shr_J4VT#3w@XDSxs?y?dN8SNv6)98ukQOdqbaO9e~r#*^*+wvGx9B`2BKqnj5qFf zDfL%cRiXc6MyW8=W$5G zE0wX&kRD67Y03JNZh6hPTKcbefmKn*f6Jk?2Q_+i zG*ZMJ$VKB_;zX<#EDf&Ic`&4*!XxcLc}gSbwzJsuUW+K`{ z;^lY`KTzQ9^~dB7Z#MrN8GLGw+X|CtNs>7R;Wd`OBRnZ&gSjd&a3-3Q6Mam&*cZOT z_M7o5y3eM*3VVn6m$viGU)=_;U4I++Y05 zCy3wvuOn5vSs0fw4pJA#bbWA%w~n!fucpDb)UdpjcQ>2G@!HJdRl z-?qX#_los9s4R&y&Q0959u5}*rz|0k-84Jn>DN8sRFUQ3-J<&OmC>+n*0YTu>gEEL z*8gNWzsvcL_x;`?&wYuoE@Ya=vES>b{;FwY6;?!EP=xnG+;{McFN%c2!eAb)X#=CI zY-1ORLxO>L`ogSv%C_+QC!nd%I%~WeZb0h%LrL}h$({Fp?E5xH*@Cug zF#9SkHqoD1vUGUW|BeqqlgtWWtYRGntbg!&CWzUVw7yHf_G|QMB1ibZMb6!L2qLF4 zS(_96AB|C?d9ZUJlUVsPzgN(Kf>v=(DBLc}tRc-lp;_Zn{6dp*l5!pwh2F(>TsHUr z;Am3EA8?43{9dxRUVQ1=kH?5*N*|ecGa|fhB1@F$!kvo4tge`o;_A=!@|jc`nle~n zaDj8+z?C3jHk^tlN>cbQ37d1K28co=CG%)MMY#5d2ThUnuZ3+mYdY zqxN~yi(odvV(R%RO(u1#89Gs6)UC)IX@+y5uz54~j=JDz8YY^H9Agjv8JRb0(s5W+ ztXt7cw-=T}@M-cY$(|QmB*X}r4AJ{*aDaa3jl19d*)~s)kLQQM4b8}YECCeET3pez zqRC_Vrz8=g99C6p46+0f8k5HBnimv2K)gAZO ze<`MzxS%g3FZSxLJdGDl+eDZOsN1K%grSX?mVfHda{C*fhGWm5#O8tSG1`C{yB@vR zS1ByCEQz@I)XVrnt}WG={{Xr=S&<>sF$&j|{mDmY?&)yxkf5Sip}xUc$(Gw-@3+{W zn(1u$@kwQyAdYG~=p{M_bvpK1kS4IIocZ$@JF19@F=|MInC0&pQj=r@O@_jMfIBi# zcH&m28fRGEX!@fy*3pDWx1=Wymmdg0_gjx^`d`ZLy6fw;7ihOTSDQT{+juW_`E$bP zP2_G2O}0}SJw02s(S9aH7(`=UT3iU#uzq(r?whmJq``c&XcZr~BV6M6T6#)90@DF4w=P8$_b2sD0%|pT*_33t|{m96-CYrT}v2JWG6oA%&VkgRKz0`0E`uut39=};K)X(i2Eh! z>)R3T@%rZ}u2c(*&y49%2EctH@$B>FdpA=7-AP0!X3}KbD#Xgx{g37*$eOc+!`*CJ zGjw77gkYs_LZCA~8kX8*WGNZpsCGKRTLhvU8)wihtk#+rT!7v;)4z@YbZtYWWXSEr zI%GNsC4%)bUAWr1?t0%RPB*X6(-KfA``XUs_#qJSpq%&NjddG-Fx^Tj?iKQWpQQfg!Obc1g zk(>HYysI0*mhNl!$J&6WlLH!P$dTrtZecZT_%Fw)-tGuJ+j#wel3 zkp6G8h97^YM7~(AoOvzcx?f01(FSx|S$>cS6elj?AfhKU#zquW=!=>_KIX9z z%w$}#V{7_ZAx~DkZH4^xv_(*8vy9&dIYM4j>-@xB?aBVLbdRid=25LG`h`uIJLTW! zA+9Fvg}uQmkBuKbb*moLcb$OQm!sOJGo6f>##CYG&PqKd^;U-@uekaQUi9{D1~Sk2 zyvFfA)Sj_8Z^B^HZ+qgQwagF9Y4k!y%Y<<1#epP`lyVv>?uV;8a zt!egmM&UP$Ym>9*?$^vMkGGe>tv{17G<3X`M;^!ZXUu~a2I2I2_#`D+4LczjO&OMX zb0N<(P2;S8SX2q|k0O)$DC=T>Cw)gl<*lW|R;fYjnid)Ka?fFekK9Y{N9n0C6ZU7S z%b0v9`Z`d%@w7f%o7FH1QXGKrntO}a-ae9?eR?v^Q287&dhh$r)G#N$8xv*klsuGw zK502SmvgsQ#6xTnRitRp;p_3N;dhsMayB6(mri_%9;Qw#K2z?C^g~Zk^94nbnDThq}+~ppmN)`e!&YRQuS_WwTQzj7bx+@=^NrLk!IjM^P|Oy zJ*Xi}8-%UVS!w-Iv7C#iU@b+PEM`S}gxJVa(COGe&K?QoLw}0n5FciAwBc#Fu{#o| zimSMF6gP1OZl}U@s_#&tuk6C>PICr-r%T#Z7d-V3NK;^5f*%XoWcOYZp6;JsWa?}y zLk*%dy?PZl5k;^b8p###IgD}lyX5Ltfx`kv=luTa1QJiZ%|k!Cy5AeFb>~5GZl7Jx zIg6(FP$5Sn#TJf#n%rWNjfF2vop|NtXn;7~xTHw11JLmC>9qjW)EHXiR;G1F^J9xayh*XkBO=*Dz^3-NGMV;oiPtzY@Dr z>ywkcZ@EQ@1O{dHgBH6->Eflec@{{J@`Ov`R858u<+nQCyxcnv(^r1A1~XSM|7oNq zR8eBnI~A%O(57hMauiP>M-8#xXz+#_^K(jTNgG?>#YIye=S9o7I;Lyoe4$Nz(h997 z3%OiJS@}<^##9B6Y>&p(+G}fL^9Hu}JvZ+GnvS^Flk?@U;pZR zZTR>--L(iZ@qMFkIs!`^b--bVaiI(_qr$NQ02ur#%pP&Oo|pJ5 zAqjLqAPeh>m>!X=z6lNygc;D6A4HP$i7Dt(hBl{y5S%f0BXYIvzbY1+hfa z)CId+V_5I#68NM>r-~{ls7;?S@3d*lz`+FaM*0$S|9XM(T3PBzE6SQJU0Oc8u7#KJ zwjM4Y9-3XT4KeuU@e#_Rf%b1X{exo?~&PB{zoq%KeUzp#Jmt| zJ*R0~oWLXgOHz~f?r&#}1t!2t*Vfx`i#M&xIjHVd`8cF6JV#lBuC#anv9^({WQQz> zre%RIuJ3!v`lgHn5dF6Bc~14bdh61s123H2YW?a)#W}imsxI66BIBgI1?nphaOXamtB?3kkjG88i2Z4mqa?GvV`OdLP&8iapWM3Q%3JFH~|p84K|o>K?s?;4z4FX zqQjO{o>}^xSrljFLfsbA_z!;S5tH(|kTzNN=Zl^*DRTDe$(~g}wR@zXf3UZZEz+MKgJV z<21&<-PDWYMAE3-8m^t*e`BDup*7UIMTGRweejgjiM2jd$S1IIeN-hXLv!&f}m^7rY!a z>9Zt!6_%@ArxkG=VC^d{h3eHP;0gt)& zbY5ng;ijP>gF(W5CA2N`#D@R70W3cQ|8n=<5`n?RMgQ}`F5wj9S^s_4-se5j_hQ91 zEEF^TKK8KOYklWRF$W=el!kyifST!2Ipp(O9ITIgG$*$u7U23j>05$5nuf5fs0ONk z9tzyxv8bD%-VEW;rT6KQ@6evc!Gfg*o^HCGmjc^~dCTJk!1&LVCsuV+4uZ#w^VX?p zk1!X_`00`q|FuD*yPI$%O7NS7Kjqf@NjsziF_9nx#lWpA-E4lS5tC1URu>VSXnmhP z65g#>Jx!f6J>odeIpXrMn6&eVnCW%=BXZ|zeo86z#(T%d&yc=91i<*Ue<3lcxpS>&X!&#EdE@Li)D$J}nsDS=rnNQIJ*NxrS77_+6x_}< zj*YhKg)0%;u?^eC*D6dQvb~!~%E-%r?*^Wk34P%k(I?wGs z&fM}no$%8`drj+T##8s?FX8#`KI>|PuX=f|=-PI*v3&&?PS*)miyS%@rY)KYX+aGd za~AsT4R$;1?s>qqe;uCknN7cc8%CT0pQ5txqfobG*|G4uwGvfA{*w?bG`*tjSjSS1 zE!XJXz(CocFrVJANK5uz+lwQW&rp<|$p{6ONMK{*2%UTJI2nRcB^%5}>{+K=x6sU| zw0{&b_6Uz40EM>{Yqx^+biDR)w$jogB8`^zF&C><1zltNZ(pH76q%9;l^P&8WCU+( zwss#;eE}iW;X%TXkHg&y?40ZPu$Sw02G+j^wScf{Zp#wcQIbp_P^i@CuIMHb_^+H2 z42k;FbC5ZZSdl?T!vaxs(gP!1KffV;5Be)c3jSyI`M5mRcVGX#W$o>vM~RS2V;@0- zar^uWeN`tZz{mBRyp{s!>?m>ip}S$}ya67g0;@Y9ZVTE9h%cy5i>Kges}pT|=09(p zbhKE{gT{(5Y*F^)K8W07FnqzFZP4kZgJI*~l7pVL`2JF9wdFN5z7k;|QXIz3 zVcjw&_wg`nPuSgUlyP9-O~GMOZP+N%5UM&cmwY=ViJr2wvH*5 zF;9%ku=sKT^QKKb!ww3HPoYZYPlee+Yc%;4P#G8z4js%kpAT+kyStxdV!4@Dg?% z&v(uoxDGf{9t~Oco>U0rm2My?Q38`_)=&rbTIu-rH~yBF8)^TH)s&d~ zto^V%v~=a7+)x70b@SUu9j{`!;>&bCPmSn%9%RoKH$XZ=c-%ZRi_o&IjCt;b`CJ(k zl&M3P5xVk+D0wL^;A16|+SOR>V((P&YQRiH;O_J6uQ#KE?3m{#b`SyA)$g~jI+^-^ zho=1yJS91G;O9W&CPyJpA$L1b>lrymRJj#lNKu^84T*P_$Ee~ z0b)Vgi5}iA9Dp{FZq|;=hs?~?_SB#HX3Gh%ew$tMw?W^Bb#z3=EAonnA|mb(W_nx5 z%w(lyTIQOvM&2aK+Ti~&pd#7eJwIRHCMEK#wOS6}2>KhZKcwS=|90#B;2o+W{q}9> z^GX41(46U2l2mB>2xQ?WCps&8ynii5Tp#Akv8?U&wM{As;;2O6y~~>5;BRinGrIwZ z6;LP}z!a;oDr(9}aPG2pbb2I-WYIYP1B(rZ$-vu~-`Ickx#?7JWU~MPb^leq;wM*= zBqP_I_r{!YM^p)zO2N6&UJ>F9;k&u zmaPX_#P92RPL3a)?u=Z}ws1bZfvlJC=lk0JaV75SZzB2k)w69*(|P;0NUZe{L6cD1 zA+(RB7>l_xf6+Bwy=rmgJN!0J6C$XM`GxiXL4&U{@MZ_PzEl}SOHfl z94a&Rq5I?wjzo?MOZC1u73Afrw@;Ke=TG?`bdY7ZrPZypoSKGz;xKe@?6V{FdFQNT zTksxlpyP1_MQqc=Hce;2K&u%*jt3Gov*vA$e7AMrO&%1~*x!Z?;2k+2bQ zf^#yvJzJbXvo+ueS(u)^VD?qgA|{kS@BEl;V>#&=PbNnmd@CiD9p%N4(?h z$CvV*=bYcE=m=Eako859!G*9X{@aH?Rrbc``-_K9j`*@bVP1c$Ll#u)-A`eay@ZEa+!(-Na6X|e zn|bw-RJLNaM7UXJ!%b^H%z|8mx0|*D<}U83l#6X4_t`gRb!xY@j8p@(ex zCEMONDN{a}K5s9syon3#GO!rOw_C3JK!mDX3;m_brX5)92dnqWZ>40bc{QE09&Q6A zeIwr>!RbPrts-`{6L3sa+=3;J-Rm|{90nro9L>U8$x{kF@zS zBVd`3lBNuV!)Bn%XYmnQ&v$6CwOt1332>YxtBZSvz{eVZ;AmObCUnm|8J#58uC)3Z zxG@R3iN@hXVx0>dlQM_F^e=%}>V{JIsg^vX2M1J1Dt1Ly5DLo4)~G2`M@(?BI^mB0 z4Pj3-ST&z(}esu@ZT?j(VT2a-6Pl)=ur7w$ZX%p;LUj37t|&kPBMv zki4wBjm@YfSG8wz^rFgT5$%2=hC_~T<-k!E4)6(+iBxwfJ<#J*%M;#tpzCMiQ$j$K zUs2@f(6kb;cVXe$RC=+*_*Qyuo-4(lyJ+v^49#nx;mR!o&?WjMvc%-Li;PU^zo9s= zCG-n{+bVuh`!=8HWm08elBojKDsw%exK}jjj~qNX!QPw!U$M1X^7w5w;(pkgq`8)f zUj@A2C?vsGn}6ce6+Fk;KCRUzMU-eDfG>U@@muam9Q-yP>3?zaT=YTM-Bi9x9vvy~ zJzk;(c_K>yBy(>Xc;Xe&rbXg{bBJ(=wd)I`d*hlvQDx+h; zoM=IPE?Ab zna9Y5FpRBz>1<=fmn6F8P4|;|#Uof9%V6qwNe3Qy6-8%MXXc1Olq&uG_%%;URWDu) zc!}TUwOImH#hKmrCm_*5IuOMuwUb_16xVk^LG=|Ly$FG+*;hdZbWytGuQOH$40B_B znM|WK56Lvd?ElfJSeNkdYR#D2u2_V$@F^be9>AphXtJ9<1_lfS-=24QRQ1o`<}aw+ zDfE_ZNs2f!G-uW|D5lBAoRAJyg=88Q)BB*|Mhe1!Qe9fOoI4 zU4TT{FtwJ#(AU9R_Z_`$%6)4f~dALA7^&MZR);vmdnM zeqy{EukR-Vd@Z6SRM2eQU_)ZeMjaAvr)#Iq!RT^dXzJd9Cg^QBt#pj0`R#C8ck9-@ zQI)C-Ajk=q0;pwaAKDA(ay}~#=w8Y+^)B?DUAPfT6n-dDtSX9JWt-B#6&1CDE6VqQ zLw(|Ff^D;m1TQ@j>d;WLZNiRo<@G@&K(`Z_(?GbzfHo5Co)h0}Bv1$Vx0yK0Fe}mc zlV%CtzoAgU)%?5`gQ~m<#DVEXGKZY#KQW(@(Cx8Vh!O)gE3J?J)Ay@D{e6DG{9yz~ z^0){U#`vP)9izpcO_I!V-fwN6%7+c(`7QnOKrX}Tnj0SEW}Z36F#UN94{&uR(J8v8 z(vvK{)!DQ~4>!J-dgH$d>kOlp!&ibhp6$@G6Lt>UF{fZ7L13?hr@k}^`m%R^d?s4b zwmRl&8us^JXt3IMT>#qMsI(vyYGj^U1{e#V$Tio4{zRU$CPEIn|E`Q7mtnMbo}{T# zva|3cwLwWB+Ybq6qmfW}75oJfZHAH~FlM#0}%Y5QoQ)uZVLj$$H@0umgXymmq01Sm{HF zViY}o4MN>)2@#tgBI=z@Dn28U+w8p5Cw<9t^bk{2j3-`tD`26C6&8{vwLBjIMUJVr z@xNaOjGh za3#LklW>pC+qj3$?#c1V|C%J1q@A9?xPe{->oIpXHYt}XsoJCN}**rAs*fetm71`&$YrE6Lsaf(a?2~6O0 zz;*V&m)!_YtvCg{7ZuF<5ywIlDW2t%yP!4^nIzBHOiz@W3xV5>5Q&d z$j*kfi=Svb{{-9WiBIPf1h2ijMP}1C%V##s{kr1_s(exKvy(b|KgIVaEmL+(eIwQs zYv=0oubj-dLp|ZX65?UuTuIiTJ|wxpQoh^CLi}TIiQj>cv_FtP@dQ2hLULU4Ga?X+ z>7|_NK@i;4D9a=jwiSkCcSp|HQT_f1h1wfb+DrX*E=^Q_ueK~FXr|^tg49S zdM2zs-06*~>5`ZRn!PK$hl?ENc`qs@RO#} z_xit(CFxQ&0{c8xaFs6ZAaD5wK5O!h;p~{f=R`(SbE>7CfnhGHQTUVtXOr1n?Q;9Y zbhr6XNy0hE6K~mVVknnfYT}K&el+}=&O*BJr!_>)oBz%tXVnU{G15d0W>G$453Ey> zO&|W5Bxb2Ila!Unzl0CiK?+xJP#M9fl&tZy*Ec#gZq8H?wI>Z|N|>GYU)Sqx>VvJo zh#GBys}*3E4}w!jWA|s_HOsUdN{uN1J5Xileg>T7YzQWM&Y(#mYZu^zsFqG$qvw?_ z)TjgG2YuiNGKu3QET$YnP^)-x$0zrF_ScE;$EwllIZ_zay6n!3J}4TdXmruStkrF0 z^qlsKxYa}|G{x;fT5&w*)@U`2UGB<&hbj`B^{wY>4dvhE$*;bRHgnZ&Bvp-Jgd+wlVMb_#Pr zHYC~8^tR+IupwA#2(gB@~tlq3Ipy?eId;ezH1#v+*fO+TuSzr%^fJeF(n=iIZ- zTT}!~!_hcSCF(DEc19Ii^Un+uMUHNHu2A(TdPg6OREYPxBfdgv=Nzj2r@qM;mHI!$ zXc$AD;qiftk*&3LmYa1oHg2;2&Z!QpGJM-v0+E$!vFRW&35g&rF#|>>grE-g1;)D# z8lMdYGdb9IEYTXWV$hg$J>CnC zrv2Q*jsJvv?lWHIN*4c3v2|kxXVc*Ha<>2FnGf-MtgFWI8nh9Wn0olZY~%1IgVYce z>v@aDe7c&Q@Kt)9V~7Q=O3IyVg8*P{LW47vax1GTlw%6Kj$$gSFjSdOC|y_e`+7)Z2}4 z$5B@s;DdH%ZScSJi4D!>IdQ;Cz0ju*gA0v+p0n|t>@F;GP#58LBS>GU6;-=QKji;+ zkc}OpIJL-D(HyI-2>0yMnpbf5$Hs54O)_Fb=I?Wm8BXn|2JIG!hlz`q0JK?{T{E%tsdIhdyTM;^|@!dZawwm?$-bNm+h;i-nR&o zN5Ln$yoPstTs%MccH30HZ>Ep=P{_`5B&oN@L!)m`$=ZDH3#svX$+n)sT&&7vm=D_c zOmFvIW>sF;%#{Jg&?A3*i-P*9DQuUmG=pbP9%qOZ;r19v)lAI{P-|Csj-j8T72)~N zY<0xphX*#z5NMz^zHNwJSg|-l?mYWp(;;`Q9*04wl5R$ws;8kBf&8ilfa(q5bjT4_ zuh^wNu9rjtMeyYOUlq_Y=C;c%Tr|U2D$A1rU+?COqkICpCZ{TU3(!_hJpovc*GZ02 zw12}wbcfC}4b9mUee~ogy1Jg!?gXcNeR-M*OQn7N7>Q!0ulak&F z5@EEqy%h0c+Pj;mD<F<8(7&N_Aorrz`13pynv+P0FP^ z2g0nma312!=W(?Ud4TRMB7loM9b&`FH5O@3TM5N4LRDm`e*65sl;~0(qW+4n52)VnV&sd zvcFGcw-aRX6&zyOXuOW54p3iXSau#&Zjn-D2zyzj@Q44=%haT*kS1U0?X^|X19<&$tqi0KohT~$3F+tg9p&biDSg-`Z9N0 zQ=5mAvGcWY=0M-@BA2=#uddL2Z;(0D+reNo+x`0to!#>^qnc#}o(l^$4?L#4qWYW#*J( zirS`yH2hIO%jwzdajH8|t8fuYSwuRe+xA!4xQX3x(Cux$d?%l-W|_Rkl*DKAdQtG) z?>S+L$NLz95?fQ{3))#o95A?hTV%+0&IAIUC94lKBZI5kX9P)?NG)Zo)+B?N<8j-G>67^joGJF;O z)VGpeL_7o&zB~c!)OS1g%EKR96X_n%23pd(0`>(y*AA zOnZrUC8s2M8)ebUxbwsRNSt*`>%vmz6e8byI&S9C<#F~j-s>t|4ns|G^fX;LuaUJjw5@7Z2#-3&nTvbj-k1l3cj-?GA&N$m`L9Hb%C(J&U3KGXMz=`>FMc?NX=ez76(2;g*U>yGcdLAt~)GqW-VI zH*suLR(o)udZKVxBQ)3hWqXxM=q`P#(+5H!WPDbNrXl$B7X|ly&v+{5HDK#0H1#Fb zr2IAsoyE~r_ta-IqRtD|QTeC_%B#pwD_=Tc(m8JBfd5Ri5JI~#n%E|%5jxqTak;`= z17BKhg61YrgR};q>!a!v-ZJ1~O>|@;h=e*rjWaxEe z9KzYCc`U;97iMRSn{ojidZ!yHT=~@k#Hv~eYg#J{A^UEIn5A5!qfPa8b_pBj@^E%o z#8hD_l_dPK&UVZVt$bd0RjzN2wNKC~;P`@u-_}gu;@6d&C;G`C&w99^9%a2fVSlo^ zAs#B>-gdnzG?s#I?G8c1@bH#Cmkp_%#d6zI$|vyFaFqu!OVn1&@hfI$pC|MunHOLT zq#WI>A>Ge{PpM2@r`B&f_NFZNL_7&i3W{HucE6ePiMqimucQgJekjP-aFL2_+J~n{WLMlqb<720J~J`!*5TMOww}hh zFjQ$R^tD@1H`;covKh3W?IU-KF%V(-hx{!mK5lpO$s*bO#1#Cks291eC`(~Ql6`6& zc*|k`)SCNp&<8Id_coG#z2$hX(fyEYt&*jGrzNk8(>$TmWxV|1L6vjLUhj7DxkV*+ zETFVGa-(d@Zj8>=YFyx)ZM&DHDF$4@j&nkGLKh7J=5 ztaN`PBX31!Bv2W5c>%9B6V1EdFy3cy-&7(0vKPMl3@7gS9@|9!QeWHCsuWiDXNlkB zxhESXr~4HlKb&g(-*OdmMf@!Y14vt(j}OP5M*O4S#{E0Y;zrHN$8aacnm22}56uq@ zK}cw%a{dc>Z#EixCB^1^U6~Wj#}#(7CUT5mC&{FKd$&}+7t1H0#5tNG zi4(j7a}tltK{`(k4QBscU71fIu<77qt2cwNd~DslIqzLC6J-Q5GBx%uyMT{S+I_)V&x{jw;;nQkZfv+DD;YX*iqu#{P!KKC9p-f7DmgR!PJ4{PQ#hiTSL8vEqWYrk)s z&pt3ST@xn#c4vAyr0$NP-2z;bKxy=uS*gO|Slby?Y1OLDVz2DbwvbZLUOCXxlY6^a zdVMBsJ=_jp+E`t`(v+m*E}NI%H>MmmK$S%7R^-N7e1 zID_mmf`*D}SNH7RL<)v^}cO4IOe9dUSm^ynegJ^*z(me|v0^Khf|I zT`I6gtok%($6A7vs2;$wa=R!+pp`@K^z}MED z*B%#ga2rBDu8DaO7{%kNaKo89&)6_4BU-+?^kePZhPNAdP(-F!z`0Ctu_RYQe{M&O zL7k`n%%|^tZ27(&>3fS=Svgg(Ld~VmFj`tQ?O}n#lw314DFMg)iW!vpEBj=CrMcE2Tba&ccT(m7otqwtsL|*mL>o|I?QQ33 zjRzh#&+7cA^R3Mxr$4`Mjo~IEReI7EcV~Ngq-^ns%M;PSmu#QkDOUliZjC{y_*l?3@syZH+|o+$R@F14s|xzy*81U(+jkZ8hi z`PoOuVT9lGUP*QG4~wbcX{-U_p<}Qg(`woai_YP8{}%aW_P_f5klk||*Hb}2SzK}W$%m{~ zB0%;pS9(A-fuOI!8#TbBE9GWBGZ$eBJEiB?3enHGpF{ zXu}6+C|Q@tz{lj5wl$xCYScfkxkD8`O8}ALvGij+;abV)>R@TX-qzgkUl3_2jAv)y zwe0@tNPc02p=VHwLlqKNi{j40L@E{ELu64UUIqL{OxfnWbcr`jmnz~mrR=g+1{DGF zCw~9Z`}bLqonjR`@2OT}d!&gz6}z}M9t)!e)!rNQ)$SpP>V3J^`=-Y0!gn**`# zvnULmnAK4})O&i_jn$BE-92!5>&Fq-1VE2t!zn@kA1otpXq>>VdcSQ%7{$i#FWLuU zzV{bR`~L@0K&`(}`~tFTrUl4NvK^i|vg`V4mgqge7|r3X(aUsH8bI==!Q{t^B0pn0 zTdnT;4lh@CDLV}Ngq+=J>+h3{-QYX{oQGqBR1 z1+3-+lEb*Ai$gbL1V_W4y_&))NTJS##Hx&{{MNFADmV*mB?L!ge;eW(`B{7c+hHVa z!ieMCt%g)-gp{&Kj>~Lec8GPo3bi#R&&xj>My}%xxWw*XUhJSMp~|+|G(`w#0?8RUND3;P$XxMN0)7-n@?KJG#jQ+@y~W z-6`8`9bU7t>%E48v%?5$rAwMxl~JvSf|K|770fD3eYo3JC&qgwsQhhAYjg zbjb2kA$f9}i*PWO>A3U>#HIeM5ThlO0p->}6W+)Ft>-`IFHS!9Gk)_w{k_ln9LUd~ zw-}P%4X_%#!MXN^LwsNP=A1)M3EN9Ycy6Gt8Edw|H${bI$0tvw-1bbcmDsKTfz5M* zi;T0BJ<5dQ5t-X6Ku!n^2)$gou$|Jj!!w~prC-31tlr5R0b3$0y2_jF_$I%9H|-S^ zs@GrD0n055X~OyQ*ERZj`cJ*;TOWP+(95#r#F=grf)!wk*RWB>W5zrZ+0c;Cz%o-5 z<#Zt_WJPEUQZW?v9FPrKl2VpnS#!#UX+p@lLIE!!9-<`k1f~K?hn8jfH5=imzh$Ke z7tSpJ2~Np&Mx}x^jh(y$>fD&byhGqGs5MaTVVu}NW zF2oJ^h+Ss?{LIBy-1(BP{1?JDpq4>2>@&^j<@UD!YD%-pt7=oP z>=N8}biiYU$6S4n$*%r}TOaYXPygh19UKfE6K8Qa7o(b6<^d-P2jH{@lT!s@8r@?2 z6i4Mj6b>>67QzdQVq^rMEIK40uua)X03AVxSW$!M{&238%lTcD4_QblCPHSoBD@lT zFnwu>Vd3BkQrJ*N@`r-~8xBz7Xn*m-g^FUEko5=GNL403i=2xKV(__I%X~5=9KkL} z#37S9!5h-O0t6R8LrFU8%7m_q#$A7O=Jtp$R)B5&(B-3#9(dVj{nU?s+1r2ZKYh}J zKl&pN2qZh=ScHecH|Q+zJ{R7xx9T0iw9RyYX}=lgHn@Ea=3dDi|F)PMCyP43WyT1Yajcmj}F z790BcAk9bh`qqDckg-4shP;Z`6v6S6&|CC%%iW`08r!PP*z&lDF@U)J96q zTn(TkVucs8U5(3`v4&+jXVc909Uk!5(#8sp{LzPzze5hbxQ}_mGEN23WqYM;T2yNd&9_9VrvTtw*amm@Y44yb{Z0*H{f zp#(8vh@Dov($gOpoRs<0Sg#TVNc!lBVXPtr%vB_KKOiZx;kOV)xmt!M_2)EsB_4I; zz{_9wvv<7Yci!+D&wSt~e)weV{L;?)PlLtU`IHDY+jo9xgkg^zpSyc*a~AzZl|@&2a|`Sdq(Ri+zOw^|!{c=WLi@lX^4u?6 zxK`bFZt#>J`rc=qxc=HV$x-Rs*@Y;bN}6mqv;eY7!q~~R4ld|`w$3hLZ4BO9XYn#R z8HAZ{oUO|X`M_Ks*CNW#`Xznf5g1{sAfkT2q7hqo184aPC#72gQ79upxCi7FN>N9O zPhLcdd$iiLu2=FYrcDyyt)WSS9-g**9(YJzqLe0N^#Bu^II3^Fl1*Tn3(bb>-GB|F z4TPu}iKtV;SUsYqp>B|7+0nANH`{3O0wGU;enq!{0#HT*4h#m5z4?EA!9D-uQ*OHD zU0?gvZ-aI)xK=AbvvlmQ;{<1He?vz58dmK9!LcaFHyV<5(KyHEyp(!>;fJEOei@vS-%nklGIk zn1d>LgetVbk0ZeeLdQU~$U+k`TNu0d>WoY-bh!X=1DklTnTAw+TwtbiwcrXEp^TWg%7$S zvxuZz+EB734$Aw^T>RGm@}*z$-KDzK_Lm(-*kC%pr0IW2LTB|?j&de#ed8xL+t*-H zUdHoQe~UOiWQ|fFu^)ESfPOl)(udE@7i$@(n3CiJj#5CONv` zy}1!F=}QF0R(Zwo-KZ_Xv~#@vDlb-eO)-OK{rv0hxN2?XMTXE`X_3gQI)DjNOp?%v zmC4W5hRcg?AZ;gUj&OqTnKuQLeC^;MujwjMP{kPrl;P-<1b8)tAdSS77m~VW5%d<- zv^9hT4C;_xB@&o%VQ(TBgiA+&fRxd3ZYC39K{if9c|=|$1i);C?T}Mgk!xg*G{lL1H`WF0P_sHy!rx9fAt4!JLi9kIzHsrVU(Fm^u#wOzby8$ig9%5 z>@r@qf|H!yG#T|u51M+V7iTNXuJzSQdd|Q9iML<18cq*q!HN%O#aWV_2eHW036hR{ zY)_%t5F{K>#?XTg2Nd$c2{tmt2fVpT8LSK`+vQa;d?8aYv>KAo1+8Q&4~^?V>~zE~ zBjpzyj@p+9S*b=nB4*o|Wi@FPYMP8CCwL-Gy=DE^UB@1ekUZt3Zn3JZ%A?)XNjSHu zl%s64MG5m+MpZU^;F|VB7jmrs3G~Pz&|BFC%Qht7O7dTH9kKJkNhmljdCEst)B~Lc z&6Nj+FZ!H+_w#SNcro7z4S3vZnmYg7m?Eto><z@dEM*3pjuNkC=oV*v@7;jqv$z_}RA}Sy_21 za2tMQ&=70PGzMHy9t>@oL9Co+cwi(0SMCBJqYg>qm_iz!!V7DGS&9f*$u;E&SlC1u zDFz$CG^EMuB99DemuG&FkNUD9!vT3?W_qL$5Kw{`VkN0O;1CdT(hvhroCukjyRXK; zPCFnjqT~eQL4x3t-51a5(e+~mr8JRgh>IMYp5X{C=~%f195TOB1I~Z#);S=hGSI2B zkk5^ny1CBE(2u~7m#aT;0Z|M>0q5s(Kq*kq!?Lj#{@l;M^^ITf;^zc({LX`rd=2K% zp(k&hJ$rYNp!ZJ8`QQ6))Ef%2_Ydj?XiLz_FULl`^4rOSk7;9eyv7d=V`=386a2<8_sEdQjG@yX4G|mu0?odI@{(8-DIhN7sh=ntT{6_A8UZsxaUT zc7TS4!vJn)BjSi-U>Gh~!;9$_d5BBd9!x?sbcM$Jri;Rno#lW-79pJ}@;n?}Z!$O* z#r*5aC&f@X*n!|km1E^)fw5A7A?gLCFoi#z2C$(SjfSWSrJ+a=AGA@&gbQN0Yg_oT zG-9*3eA4M;3>VaODKvxCMK_|G*A5T)l^a6D91Gs0d(+&>~LZ&AaugR4hq5H z+xeLxYtz;b{do&b-4wD#E}`hkS{47%m6e-r`PpB1)0_VH&%Xs)Cg1+{7dQd?J#@&m za=x+g;sCLKZ++`=@d1&>5ubVT6HI*iBeuSP-%@b%KlQ;l-tP9dDP#{4yS&wUxA1*km^WB<-sE$Mr|4aa5&%_8u-XNmUB@8TCUvEkueQ)&4tqty=6lU z4+AzFRLFy#@}kTQF@uk7X~=?;y!i_+D;l%U{IZIsgw@frlpeBBq_nE0eO2n=}a*sKG;*Wkcs}u@dGXE|=+wj*PPoD?D`K zr+&~{zt&^GW1F1qLT5^gA!wt{&g(S#ASCmFDF63up^J5x6a1{yx^LFB%X9g@Z_Kg2NX^#21>{@ zp6*OJ#W4j9gHSxGsGW<5p--9A-+V5Ux@FlKv=ZQYKrcEjJD8GYg@nxb1E;)YtGp%# z8#rRO-8h_2(AxP7i>fPh61WkzhA$%lhu2Uni|S$DkQ zmClwM4zSI4ZML4sTbediJ3pW~c3O%^;ru3zHL%mh=CtwLmrZ^dKQW1a1`ORa*B)+l zZy)aZTgfw8wFoLZH$Q=qUnr2gVH}+B-J|P<;`9Pr8`aFhx zzzB8Rp(`|r$63SxVRi?}J)8{v)C_{~V>V}m!UMVJ~1a;ylZDw!5ypv{YHjm<|j8OJI~rEg*+s2=4Yu*`60rsh;j_z z7WFj0+eUe@eNB0#SV(A+x7OvXzgvI*v{SafF=_Me-$%rDgSNf{ZGG?CIw9IT%Z4w%5S8(9Xwd!5U>sn5?g#xP z3Hb&HPkHws?1JN~>QyCidZRt4@FbCwW}teN*ZkOa#ayrQ`mQhRB#ud3}fP{u-qhsboMCsjK)WrdB05AcDHRYdVu%|itoT@1&RM?sN> z$DHI{emE&R8Oe;{0u^NkF)%w%^5Q{&%g~@>6;nW+0w8S;!bE}OAb^?_eAzyOs$0;& z0vB`y>eGyKrv)#1pfOGD;S(x!5ar<1q7LC;Ia_o2r3AlVj7*h-NMg5HvD1PvS!C`WE-*@_AcMW8-R;=p5MQ#S)Ke zLa4tzC0DXOIvIWBV{l>e3?^?~ zg%GJ%91L(WmZ4;n6^_dE-~_a+f^W8t$dLf(qO2l^vc*Fgz?(}Dc;l5Cwv*M!PrCqh^j`GP@WO8z(G^;pm{;``Ero?G6#cn= zF@UWH`iO+}7j?2cfh?c6$WukH_&YEEzr5lb$UgJjPv|Lu9SsjYuIrp*H^ezka_k6^ zW2#+D@Ksk&nz-eiK31cI9OD@`C(L<0~J1<+1Oknc3b0-Y1l1)2pvI_Dz+>b6hmDFgQB|Ct}<=@xSebDeUl|hyKNVj|uf${cAF+9i)S`S0l zld_Q!T$JIY#dd2{kgSTG)Xnu1ZMG57$ww*Pbt+D$0%xqgaAu){bc|VcY-d$V z339(!5ONCzg=Ph!DYlbUfg`Xglp_33<=3` zeOA0xhAuCpddua)ic?gYvSPbREP5*IdX%!LPoZ;6`Q%*={H2ZwSBwN-N?SJV5$x9M zkBm7zfepL$aYszk*0-*Ek%wH$R-D_%pl{pexX?7^HAg-(iPusG`O?9mB4g(c~p^QfLZ8g=ORl^nl9^>i!*^%N2rJyXJ*H z;jDfrk-XET{8-D%0Tg;10utO7rE=lrSsol^DZWf{E*op za~^&Llg|rgB9DQLM%h7%ie)x5+%_u+VFcAC-+h^83~= zitwuY2WtbZ{5bc!Z`wnTbHn!AUgBlv6Dox#zRjmRC{}@Sm0xs_V=lM7yyDWn+#K|m z``J z$A|h71Y^7OS}!C_eUt^Qzd`Tzg+-UZ0A?X2%R-97JnXLMgeLQ*N$ zL>QGE5gAxc2wFD%_Rmeb$ER14^F)rJwq)bs| zmjp345-$OIS+ayA3ytI}`Ks>w&Yii_Gt=Gq|Nh_i?Y;Is`*g+)|xqct@XXu z+Iz3{-`{%d-C3rH)QO)%#+2?hBcgfG^~-3czts0dU;ER)_&uSdeT!zy3R=`}Y#fMla@F5ctU>P@AWVZx>q>Nl@jXHUF(@PlY|@d?R;l{;H> zqWf`;+Y3+4rnarLHEwV0)I!F1cpJKR&(7R-`s?em61R;q+qgvyC=%#8161-v8PjkB zOsrxa_By^3YT|TaiMTB5)1jhcgw4oX7dgu)Mh`g{gU%Lo+iU8AR2J#D>PF{{&Yt$H zLz&bm0YJJ@7e_7+dj#adLn5R9<&MFe3~_Ggxm?K@EEN0PGS9hT+}B5p?)sRIP9(bP zmolz{SeExSLeQqH#5o~DT=xiovOVPdi}Q~(vbvYab2{~1e+uG%{<`bh0b`zT)=y%t zn{|}V0!@SG^ERDp-?1Z|1j;&d`sCMdU%R@teeIeq)ZIhy8$IkX7yTesddUs@2$Vk5 zXsV~Io?5g>2@Wj6f=TO}qP7=cQfP1D(`KkUwO6lJZoAX${!m{>$;7?7p?qkdzriKZ zKK+VzO$}#uHF7kf)5nf|^{#r7ueT1w1ll&C8n@Hr>sS2BD-InxZ|bQd5U@eAvn4Oh zoyErJBq6{NLGqSubiz{Fl8no0?MgHBs~ozh>IBtt*iD0!;Yv|nujfhz$>lRlE0C$- z7hvEzQURIs0Iji=>cc2c#`PnOG3!WMkLRH}wN|j0(f}Fxp6sC|^(r$_rw~ERRjXo9 zRoXU`_Hb5ZdK0sVti_;Hd=gwI{&XY@8{DV(Gm?@rFX-6e+=l@xK?|FqL;bv`&pI+w z6-Qd>xEI_X+2&%17CK?QhQnvnR(I59*N;(?2()JpdzIzkUK^cjwU;TM_{uZ=<9_|_ z)$hE1@m5pq@iT!#?wF{*=+@DnMv3e9_?nYFs@F{>L9Z#7wzG3PZLMocN;?lJ)78qld=iNG(a}mrS*K~Z&^vEHgpg6AwgRU> zV-Fh@7a%&{>7Y}R$g zFm&@MLqBD1|8IWk|9sibwX^d2a;U5JJQ()oR8HIe+xc$#%OcNj+|MX-9O$pB^x3iA zjm%%C$M?p4y_UAjrCsC-&t@;t^=QAg^5X6jI(4Dio57;S5cHO>-ZJm8{h65WV=F*; zdJGfpR_4sP+y1=Ep@BtvjD}o=E3Sq|hjQaf9%(v_1NxclXqhj*LC9c%Yyd%MQ854c z7lC-(=*?sJK;rVLv@Dv;!7F&(_cBWcL5>+z1Q;)8r#j@GUXU<4@{@cB@8 z^hKh6yxNDiWxWKy`qB(-0~_7xM`<>P)!q&{1r)HG_R*ybdwR(aTVmK&)P-UkEZ>(` zbo6gOckbnq`4@NV@bI;BYa7Sd+xM`+@7OaJZ*>XJkDB!1UXpSm1|KxlLI-5t?r5i* zVzHxkTd>FPCHmc`Uxe!8i}v<`4=ZhNslCG2@jBae0$-id(Zuo8XhE<4ZrD_bEXCLA z?G%5C)^1q|{@t_fYoA-&xpv8aUt?qA*mGzJ{^?LLvTeErJsNX^Gj80_s-btf*bv>` zf~?WqFzOEA#!k8cuqre4Fj%sHT!0VuC_!=c23IERCo2SyDcPh%ePBT7!MBy8972DN z@_d9W0SHp`e;p)d$;w-6@u4pxY)}sRu9L4smMo%y%*?P?N#f#>#sFSj8?eIFhzk_g z1&a6MN!||$#aWum#}?PK0F;&A7=ptQPd|oF@Cmi)*+XdCQaSJ}-k%rQIKR-RHepK~ zC3p}KyB$~oo@M%=E@={qAa*(Ex)1tpbg!vYo7G)d>bXWyp7ZG4t6YtW!_@utkT77LQ((n=KzQ zo!Elv1n~V2x}-&jZUoQ5L6<#j5h`{%%jxS<+yDyaIJo%W1&xx!zUxO4hRaWuZ7aPr zL^%aGG2F&-{PVfFz?4wBio&eZ=BxOOgC0^QHS|yj9v15?Y+Z77?U3Uh*ppPcJj&Qn zEGc*@s4k!1v`Br5vsW0!P#ssaz&Qw6cV(!zb`ZpUL79+clH~``VUCOekwgL{S8!u} z;pijh{U%kE5f7GC4#xeW*YKx0`6c#UYj74v` z{B;B0<_f2@Y>10`xxjmw8h8wF9?}{Vjk{wap!_aRkrzGuSeQmd%+hJcvhP^Y*SwD8{ zSe0sCEq0J8@aq>lVwIOKIoD!`l@=W6pQmPb4(v~fR)3!w@)lMs8uD&72H&7G*W)1J zx`FQ?g)Y~5iP-n)M?4(niZBR^HYp=i3mOG_1I5bJCS@;XFvRWmJt4BK;li=m+8x|U z|GJi%d4$A(M<{le&mI)I4L=2l5OG!q>+4PucfaP=7BC@i+0wyIf~1leFr@#{Q$#CZ zL$`=AR00qJBCKMi|M9seX5aj*6J_ja6$8|N`-Nv_|Mvq|W^emb%#n_AE5w~bWejHxsb$C z1oY8?jf6R*lZF&Pys@@^2W^+UrfLus=4oa3*j-8=*I%g|&G#WN3N84JSl#zN>W`O? z`H_#gK0ap9Z*IPCTJ$DRkN#196HaQ;id0vX+{j73R=cJ^&+=-8w47?RG&kpy7IZR} zt|;Wy^x%hq5J@o$+l~*NdM8igFWxR!Ap0^sVpMVvIQRcBL)%yi{B&w@?x zGHZ>n4L!w^l=&1bDC0-Hu>W(OGlC#aDIn7uO|7`T+>nNh#l|C5ePHyB>$JbMFJlA(^clWVs zbW{a6@+GM2KrOq=QoxZkHG0H2Wcw%Qz;MP5UAe9!4ARvRA*QU2Sv_|5I1GbM!UL zQ>=^O>y)(N_95=Eu8XfnTs!OgdT}+PX~H(}=vZkemG(82qVrtZY|5Xg^Ec;IYF#dduZD`JC9j74=i+$thQa7n_HQw^wQDNl)?hqs&85?P+v~w zg4C}|bcBVvx8P8BzOL<(Iox(`Z~O$B*B(*^b9?zp4-Em(E6Hjox=7dK(P#x$m)PaL?hBMLN!>^;ggW8&5~Ad+KJG|NI_7=h*llk0Y!+; z9L8#EN}9CII?1ASfQL#}qT&x|j_lh%cqz(ISq!6Md?r~8*$6cVt0q~7dW2}mgy>Jd z@bv5}&h_6Uk%caN;EC;CAeu8wKOd|Ph`r3EbmG9EfA_S4+uyGD6U#7EZmPmy(# zFHY#{Ot`qn=wHm^p%lUTSr3be%(JD2vtg5Sm832}w@U1r8D+Q&^);5zF- zy|cVsEgQQgS!U3)-5~=#gX@p3gsxrldWNTJYN%Us51RjYSdFacpy-Aq>v?#L|-q<(^IiW z)Wl>gjtv`d4XkfHap{#+c}4 zx!kH_oR3e5bE7V(q>YS}=X@23U|DA%q@9v)V%O7OTj_Pf215PyBUgJWWe|}pC$G6F zD#r}T`dp)2vs5A13!4&h{lbjd9HIsdPyFqj?T2=Dw#}-!zKTP!Z|~&=La+YOj*i;5 zorZl&0NcDI5O(|H*jed0ed>Dq|Mk2uapb^Pt2F)T9(9WCE3t)Tm6Gx$4U5)NSZxJ> zc%sAz;G8s(Fw~mr22atUA>E`*hvng(_R;2wh5MP@^eXSB(cuH<%?#}YVCK* zbsr-3gQ%%Xz(R9QfK^=!3d=I>sTCb^R)C1$`BU*TtE&_?O>kStVXNpt>!MD!>Q;Q7 z61HDP6?3b|*7;i}ZAQJ3fS=`)Hl>dtT)VpMHk+*3*&OPU@7nm_!C#Wg;??`qGApa{ zz>TBCj(rYw->579hTZln%d4KqDsodBmdARFKSXe^L}UBPSZDYI8*;DtW$vCfd@^do z^y82I+U=*G^@{Ke>Is|;O^vJ?URj8IHevYuY8)aVH}+zuvT5Q$?!2btm0icsBuvL6 zlwKE`C_7@?PUb5rxynbJl}W1<(Y=k3b#V15Q+bn;ULaz+*tR4d@_+0srG2h>!te}MrH>5-Fw2&!Uf5N|Jw!zSa6(r! zi*Q0&jH68Zo@Dv1W0OXOp)jJ@s94D^ZQvy*0iT!B$hmyvJeF47RG%=-`DX~V&KA_m zPdxH#<~~Em$DJA+JgwumIfCpJUp`?q5$0ES@0HZ~IZ39U27CHO5;4zrVRn!YmX1sf zv-K87M}5QOd35Yd9J$9gE^yy@R>hm||95NYdl;&T*#YRWeWlsLvaQ#780Oae-Wc>K z;(h2AvedqWEv`$*@x_G*#seVcOaB4W_rg!H_aihA0?!CGTi<1qxR8>T~1e4a>|C{stc8{$3;ScPU`w)Ty^c}lBxPZbEhsHTUdOE zGF2BF2sx=LTXl{O56x#|W~LQ|J_%?&gw*+S0m2^a$W&1VM!2FQA0B?#vOXrufYUnQ z1-h)}`oV)%sGs>(4m&Q-<%B%7wW+F?3&k$?yE%XOrslPflCLpxW~^WMtsnl@cUWk2 z7`Jb?|9iB#QAOR-WYcgadXCQYbV$tnw) z(~3JbiA6tH$nwiNBiofx#iYI?9Vo-#tBzUv_OL`>8d4q$b^VaXZiKu>NdOL<^g%qu z1{dq20S#v8MT}0tp;*?9D3g{BwXkXLEx`xLdiU2b)1KAA6p$&LeGEjQe5($ga&UUbv{X+J{=?=qbZg?dw~$Uo87_%h0lh+h|sf<=xcXbmvfGbffGVpR}`K z`l+18LN<7is?${Gt7I{FUEcQ>$jimR-KR2t^N=Nu}w-4gC35zzk$ zz_TcaR!3={i{dEXCD>Y=V=LSi(x>aXV%ItU|D&1rlmRJ^EwAQZCLW;(&2HbQ7)T^^bqefCe4D&K= zTBhkdUB}4|V!q2yN%R2`Xmm7@<6MHCRS4lKXe0}{x?jc6s$%VRABeeN zRC~NCUfJvFr^>o4*`mILr1a^IS71;8lra|2&0pA)owNtNXeK$2PNN?+%hD|!_NWEr z1J1Hi`s5-L-HX%q1H=N@=6{`Ait65Bx$eJ3%MO|RAw|-%@ChmW$Rm&ZEZLpyGh&}5 z`FRnJ0!xkz_-^JEUv*AmKXv?r*M7$@T;18ZpAM7l%<442t`VA{oMO|+C(Rw#X=vF= ztc!eg+Rzi(!Rqc*$|~c|YGUM(?#fmQ=rE-#M{4L{Eo0Y%yn^YGG#{A?woBQj$trR4 zBhUO*)F8!Vyvir0tgbwzf9exgW>4kYBvlSEGt?D1P$sw=nCxXqDO;<4h+%m{1^yx_XNd1Bx z3EL2b|7p)96+I1cuHE(-Xerwos|VU#IaQwG#~yj~%}sWYq%E(nZ`J9{&d*+p03{+2nW}_iz+oB;+I$atXdL}4kFNq8^ zK!DFv1+&i0DtVw7exaXN!s^kLtx8_DEZ4~1FA)5Ue&$G!xICCnn&B^~tq^ibAZweX z;k1Ezr>rzQY%F<+Sv+<6dc%nFiw^+8w}&ZQ4%x6hUuIu^YKcG!dDWj^Qpm?IbfWzP zDe4_*myal7=!CUUG7)-YIbOPQ<#*rp1K;|Oddk64A#c>4LihjZeR5SbA_$yut-Cx_c^mWCDlHCsnr>?kQrk#=oh zST4Cv_p(tBbi#u3p5&9BEtXZq5;1>gPWFiSOwMG(H74-b{CSbLx=I+cKm{RAY~9NI)f}W7%#1tGHcJ zN>~qqiD6T@2nGr)ir#up_GGe*(#4i-WGUojCAIrbYIzPWIm=O$@)1Wp0LuD@0n!er z6KpFjp>O#pv(6_p(w=olOW5bu%a(21;F@I_QGS+HHK434zmv0kQ;ztdn-&aaeR3^Gl6R;KdLVDR1_yX`P zyE+SaANax7{N|HSUg{>2qw(salgL*?b|Y3ZuUM?=39YYlsq2wzsc{Ji)1s@w}CF(M#CoXo<2GZ8(9w2GQ zWtGjYW+B^@Zw`6nyYnS4tG1ElWvyJ6*maGnu8>GS`P8Mi{oWg2^_%3s5cYQkZVK>C zeR6u0YTthQ?KGQ12>l;j85XJ8!WS5 zoestF!j$ePxOMlq3jeg;R{9a*wVqv4z**LNI^HiXnESGV-Jd^l^z%I@;d zUSI!dw5wo?to`A4zwA3NZ(Vt3G)6bsu5r`RqKO9GjW`=Ee;TnGaJ&@|l0J$DXsIg( zD7cwpD?)UdEDIjx=x0jWEimmm80yJ0&H40D%Wzo8P8W8253v)HRF$1H>?#>lB{Cmz zO1r$`VY_rl!z3Scn4wi43+ODToFiX98gFRl10z^ztL*e;bfu=ZRe*~~f7ymYEBR*apeLul{oq1JcN9}79uLKYZ{zY4#AndFW9qbtXnuT(77 zxS&7TH~m!o{qOn<-?DXW+wbzyK>G&VG;kR-0Gv>m!jt`I3Rs z*C6;^eXv8IOhUy<28W|9HTeR|0=-Zyo8-EhxE@u0(p^Sllf2~wV8rHQCFH|y)+S|x zCwUNx(CMUH(#WMmXSec*IGr{tO?+i*``z#SzL$RsGUHGHx4v;nnp%H5#IQ=AI>h1z zrj7zjjtuw)HUB)%{Qh@-v$eYB5TkyfRWCh zqR>`sp^)XK#ix$4Ln==QJ1OWq+F>C;DtJXJ9ZT5rN?p=*9*~?)J1BKQOzKL>CF8s( zmG5`}Xm10vQ$L$d89w8E6Y{pUq^E1u8MV3&Xvm%Ym)vMRuf8Xm~7JuL#;upe!ufR?lAo8C#Mquv3O1e_bo{#4m85 z2p%5T>^v-J)K4+>vyP&s2AOk|l6^YLf(+Cy?9Cv z%CT|>jLe1}y zWbPe}8xrctXlS(}~d+#g1@vlDd;DbL(Yo`Md+=@V%3^^Z%hw2RU zHK!AtLLPhARj0=`MC1$_N^4?1sBlOZAQV*;s;D20puocOixh}0(c>5TXoel=X~%NI zbl4Tc(r83*D$k+Q7mF&pTqy>CQC`-8>yzgga4dPT3K+22URRev(fky!O}fs}Lssbi zSAvnVE$VDt)kWz7R%j*V^7A}`9t8zJMtP>o6gCHGMDquoUkmJ_`25TxE#b!>e(*=% z^?hIenjXZS%yx(Lbl4aH;*?ah|7M|&{y|WGq2H9_u&-fm+gESlKQ4aD1K+7ri=P^& z^N*dx-5MVEyjc(R^6R5{zVh1z`>tP!KX4Uy@ zm-5X+E_6aSj{s0ws&Yz?b9FlPO5fliM%5td!IAP6yUd{0f&pOD>ovNZPo5{2q8hKS ztLhF3>$+VQQMCyfBe|@U{G7(k~aQTu^ntKtpE#PYn0Qc87 zs?!HJB8e4OKyjSAD7MEr1=n&}hOdp%4vGyvjx#NW&#jBY9`d$^9e5m5KVs3#o+XsA zPRP3sO`du{>yFA`-}NEwazY}mFV|A#LN_lok+4+KdW*%+Yal*1A>^ImPek7TdvAT? zi~jXnUiI)rkB2NWmMp zEBdn=8P9$1ezii6R?1kTB3Aq3D9yvpf0OS{HJpd_68HQ^eenFwbXBME@$z@~@O6G; zc4jyJy492K{jCeX^@>0H)nEB@|Mb=8?z#I%0I+D%bWHlCprrvYC(~mnN%-B+)jD;E zP7>+6FW z?e6m;)?i|)Fn4eZ#q5*7PA ztjl?Yjo`@|^(TYfK(;ss(fp74xlF(WdFQ@)L9nwehZlxO0l;jv$$d0V6H8)MBe=(YUni!E)H^s@dBZY;x&RRM-EdCu%F zlR37G+4FpBBU^W~n46V2yg23po->O-NjIC-)8q0izTrRqqb7jgUVnIqr&#?B4sP=H z?8;hwhNo&yqu_$jAZN|rBCV%qJlxsLOf!$caDBIr#%R5rC-sL9XxPj}#;~{SzvuhE z`R^(H_rCfq|MC}4o;vw;TvaUs6~r|1#^ZlpIP)cuVI$>AZyF|5)X=r|rWn=365 zq1Rm_-YE|;d4VxllRbKVqcht7PQ_Ca2@j`$7Gcu#Rs4-OHD+{QCd*x^H;p`dWWh1$s8l;bK3MXu*kg*#Vw5 zEN^VwDUT4(E(WpX<<(ZLp?Ak%clE#@6K}za%C2}3Y)2lf>@@h`k z5g6hEjM?p(;4TEnK2gKmer_*{YeDb+(Ga)#a=)B zD@}~8vWE>k7Dz z)GKY-PTI^eUEi#m&neUPT}bm&{mX;%`Aaa$iCO_H{SYHdr2sc! zNO9RqU5bDRxh>NWC8Fs_AfILc5i&8$V<(y+9(=@WnaFaPPcf8y8P<`uU9 zr2da5)I-tuce_o=P7iq1u3Et3!Mkx04=yI2i-+yUWa4hctl|=A*X@JdL}>X&6Zz^N z;qBdTk?{1+J3V*cWrC9<>ZxJ=R@%bS*6g~0Z?m!1rW^9CCMg&FwIn7vSNS^}%pY97 zyxQODY|AHo;>1G&zkA#~YrfCmr@6jXmesE9Yo8PCtjTVmIp0UR1HT=&=kDVLJNg68 zt(|zABmN?R!LJz}d)S-cr}6I^L!AeH_2)kGz_0#;mz;X;e{}LIf9Pj_@%V`o{}q7Y zPp{juyRthv?b=FmKljAM|112M#&_O#!N5$WO;o!Ds(=;{}?f)G`S`j@V4iGB6**1PWe@xS`Y(+_=m%QUal z0(i$%znItSKu=V_i}r$Sg#x|G6MJqCyo>3)Zd4I~+Dgu+%hPK)1$wg?xcnt8YvuIR z{N9xEvIWh;iYYy4n+>B)H{_L)*A09tm2yC#@gfIi#^8smU0$D;*EP>q#qqRaQnvC_ zaV>P%>zgs(_pqOg8^_M<9+TIHC+NxHIq=i4cSEy%2E4N!08$1E9&BztQ?1f88nqJD zQ%%G3+uD^2Xz=4Lv&*0P)Yk93`pPG~1)nd5xWxYEUV>&1dNnVOgq%6`pGZv~7r#sp z@<+CJZ@N1BqTbTLx9XX+;8$}HwaOdd7wsGuer};dh19T@d5`f*Z`Gl^y~f)c_?uL<5mlX1uO#iVCmJvc@Y|Auce3kpzyCMB(MjZVw04~!3D$#bMBa5OeKt~>@HU6GQ7(mh>XfOe& z8h|m6PAi!(iIU4BF8c*q1_Ke14Vy?&O&Q2Q8hJkpj84HQumf;hln$k3F^CZKGrgG5 z_2U6Uxqi?j4a-qSQW44)>do^gfKs%mD}cwf$Re|zq3bh{d`Moqy8WR~zVn~I>XX0v zzkg=!ie_h$VOMy&1~ z^)Y>~eD$f4+iPC0#(-?W}v^+u5Y{lQz8y>9oMjjh6P6YsWc1g!DnLIM5 zOw)P&$Xi}|=e;lZNp+VyeCc%<#Of-52{hAPK)YSWgpS$D0T$M&IBie?c=N#=llwV9 zz$!o!l>$P?hL3qGP^t_7g|ZS~=7f=}P^A-B+TezM3OO!j(UdQsE52jfDd7Y)(ZZ7p zqXBVYKf&*@M?d|s|M^32{@%CSd(*P(Jd+_B~q3JuChBuxyB1(kl&h+l|Y0<7{A%DU*}&4fXiyq*ejI zac#Mn7cO+|dCcA;e?Iy5J8l;{3jFN#J*fFUfgjskh#vv~HCzx9t}#i>Vh5APEOgMo zdhlbiMTnOle_Y>)8{Yz-m~O-^%?ln0e(RUD=y9qRJ@BMr$iB9I+C$;$OdojTtKU95 zHG4aA$bV|{SN_uNU-azn(+u3*1{Fv_I75+bgA!-F5!M&Mip zn-W5$Ps|hnp=j2WnEpR};osl?=J)^PU;4**b+yF=xv`g5pl3rmaG#ydw;u!ahI4u) zTXBJ2w69un3vL13crkfF4a+&+veroN)&i3p!d43zmwCXEQ zP(xuk1kovw)d0t3?(S&9Xr1BF=@<@g9NU>)RXyYZe&kKx`781i|FM{}7rg3keZ?Jr z>MQ@(^^M~%!b1T_!t;X5M(Cav{+MoD%1{s(fE=P`{ykv$xm4viQ4xWKcG361UVcuCC5;}qh6NZH%-2qzab3L*~107W2#N&!^ zZ&4}0BUcZQo$Z|uKm36|{Na!O!ykFy+S(OcUfa@Sh3**`Ru3j6bI}4X?>22!>0cGA z`|I|i!n}7+m3Ydpp=sld+6HyHD6fyY5NZ)40FGg==9ZILphw)v^PpCU72KHDBTtx~ z*ZXYlca70d^^?$8;O)uN+i$3TJ=QC*o5F&ztn-^X^1IG({lIsf6_ymH1k~8h3H;bK^$dukP>r&Ny)^dn z_P|E+7xOKTGrOmqpXFxfp{W=q;Q^NS2cM3%dwFNAc18c&pZS6J@1ETGdU&V*lmGe| zU-}(?PI>9YL4wcd`&~q)*9R(b% zhkm6gJAb+ok6nKJ(SP#s|LgC*_3?lG_9tqXYLAZLtSdnoJq(9T%;B{Q7>Eu)k217! zTl0A9TtR_enw*QGEyb3VmO1wF9vA3UTP-D$D;lH8gn)m*ejG@z+Oo1SBd6dXG3X~tuFCIyG?U`v$dMnShUBl z-sQda?=|GrgkP+VJu=(5cGjm_Pud(gH1$5F&VEfYyxx|>Ud{0p_*EmXr}WxRZ-LHT zd;W$CA9S$wS?m4L3D-6Rfb#yZ_0(0RPiVOOZ{GFT2Y>Jn{?_j9rJvm0Ik9&2nO}VT z#jpL_-+lTSU-XwH|Lm@!s$mUFgC;OAjRV7N!(wcmk$@Wt0!oyga$V@oqKJ~ig@FzU zFeBl#lGGVKd5211-%L@9h5-5skPK$7i|Uv%LAQtm$OVvhHdFyNgp==NNhrv3e&F&W z5B}2c{hh!0OD8UT?n+Q4w|+&hg@xA!*qy;E=N?T0o*rOH2Luc3JdbyKziJEMv48>K z5xVxEhavfPXuEL{+PQczidPTRkn6ok@`J!8VK8BI zm;${1wX}o1rLhbXHb>JWKl)ui zFWJ9emj1-|{@|D2@q$17ZO6~t_H`=j9*_X6AyiZHkU2;`0$lzzGX0RZ!zJs}gA;o? z3uV{9nVAkil{YXpwmoFEFeb`FGd4JfiNLYoCCo*^GG={=y9^1JXUE$UTNf|>`eT3m zo`3T3|Km*`;`&hnLAN}Is?Ktu%>%?J@A8)NBr?=}2*A_RH1A7+p6@poR`VQwlSj#D z15b8gx5c5WrwO$EM1^L$*OniCk#_1%}(j+k|?SlvxxL^c2Lq5(Blrbc`G@c*~Ao~dSh zzl3?nKWC^k%GGw48csaUf<`TT$SdGGes?IYMUV9-8Qwmzrsf+R>$YuK?6S6ASrr>kDsuL^$1ffSsIJfZ(on)bC>W)D^9TByIhK)5w1E z7yh>oD&qG;N#H`$k5MQmoVbecW2T zh0bRF*x|qm?r^VOyMl}C$xn|y{5yCvgB=!X(O$)!_VlVBTX1w(=H-n<4?TNRfv?V{ zF2K|TCl_uAexVf?yC3pGUADOye!1}dHW#Q7+7B93Bf0v3UTvFc>0ij@c|VC(!(z)z zebdYq();79F7-6FrZ1Q4i{dy@(r^Qg4_EaO=D{m>?7e2nIdH z&Ihcej~7N=kOiYWiRe5Z+P<>=>8np&eD9N={p4?b?xZwXIw*$P+608p>Kv3m5C_S5>pV8yWDjnD&)3-sGtvExHAa z{je5r)1O(`ctWFvA>biTs3CX%X{jFcs$GU8w$yGP=wCyF-gIB0=^J`iKF^_6`5|H zukrZW{e8%=$L}M}mt6XlUbxR2e9fh{yTGY;drAA<-h1vA&c&WTXgf`sO$QHNxxC&k zd;ntJ_991d`%&#dJQv;{L*U?HMORe$NU0;{5V-Q*|A(Cf!rK35y>1U6IaYx$%1-PD zG+zKl4BqWtQd%+4r-{L?JlFsyaRt1=N)yLE!b^{qZc0g{a+g_O$s>MR@N7+R0~QlYM5F=1zvb_YmHZjYuEFJdhr1PuHpP% zJnWW-7wPz#3hA21s|AcP==Fe?ULK$~dgm59yeHnibK8TSz^#V1Y`@B|XlM&NfREA5 z@U4vV%FlUvdLs(CdN1B-9cq3r=Jf6>@?5+K_{zzdQ&>RYW21w{H^`tgM_6EKNG`34 zhunSVy6Z2^H?GY#djn0fCyr86px25l0>I%`mlt;`9SA0+wz>d(AJ^}B&CnN-81|CV zz*iqNh*TU6fX^0SeJ1w$6|XisljpNm&&Y+3;@7a(e0hUKFAy}p+4Ky55eOEYVQ>$8 zJxI17$Y=6*wQAhH2?C%M49v50Zrv^umaxE|W#G<>+Y zJ=pb>8?Z^a3S+Z!*J~gSG9|U|xU5vXZv#Vx7Wl+zvYSiZ=xA*$1HVPUhkg%!i-B*J zUf|dRtgS9X&kw8n@%{q%(28(Z=KjSTu_rKu?3QoeBky=Y4TFE_b+SZiY%+U9gf3vy4$)9cF8 zTNsu0d>$*dxnB?Zaxahhygux?Wd*=%fUi8f-U6wE1K%nh-zG&I!rK{`Srls0gNxJt z7Reu&zMt>oFS5>sksJjTK(FJx2sgp%gv`zj3;~JNy%pC;ZwA2Y&1fiyc>_{ z8-DuGWBmHz2fEdeY24MoY4EJr9Y4OcQ{VX0kZ{Kyfpmf|??8dh#II--Gmo^Utr8pO zPVB6+WkR4wptJH*U3U1d2oY>qC+tB+mG)J|w%CFU#x7(M6t*A%Tsm_nOw)J*C&#ja1>b14IF0YPj zQu>r%*RAsoxvu(go%wOy0lm5p#C4D2`p3O;n){}o?CVDy_nmu>UeE*RXeZ>+BdiPb zqCJVO_C-5e4fNQUe5$iEZrkHIy>XwI>NnJfA?{RPgSV(}F6z(djKh9#VywGIzQs3x zX?+j*8_TYXM7+rRs|!5#0ON*yEWN+p^Xtx_+;=_EaOrF4+wn6|;KyFSF|W3}KnMKV zc|SKu?R1IZFK>KYbHihk^GrkF0zW*!HsA%)0ayW^J#kKUFYV4Q<_fTeL~W==5NMY) z@3gCB7Zw%M6Wo;-=rYR_M6SL7O`5PX+tT6*o$IPRw)`l<#@6oT<^u`H+4B=1kgniY z1Zs_>h|Rkcy|;)E&((fa8S#O`2w@azfC@QAruA$NK|pDw(q-+%jqcc39yUP7+-J<+ z#ll1^QVh#tKPAR%Rn`S*)!f5biHZC;JsYh2QPk$4l()JOo?zoSKW=&rd+Q0T8S3K! zmFHU4HE(HM+V>+DEbfd|S}tU}7q11q@xw4Yyl45|m(8|4wXdDQp9j3w%VVpJ_BCaw zHeUI$mj|7GQv5bvh6`V3pWQYmxWI(`M}TVJmLZ zb8NO<@vWO$f3ygJy7_$c_DTH>k7^tNfakT(i79}Se$xZ_cKATPg15e~g@7Hf3f}n4 zMpA{?`l6wVzVSz%@BGpAVtXo-MM2xn@chmpIlNWnQPeAOSOAlbClKOkZEy3UnChfH zzO$CwY0}K@lQB2Aex`qw4jbyB!oD8-0K+Idy+e719SBOipEtC&0B*5IHUQNSpFEDe zv`L{P_6s8cbm7Ip5XiE4IEB50kh-SM*@YysWkF(JI?} zc4QO+)O5e}-+!t=f0?R63wUjsm0D_h-1ByvM=V|x;2G>Nf~g0FU^mqsV*vxeJFj1a zYS-jw^R)LiRNrW6{hLxPwNEee_7?ToUi;>zhP~W0e`Wraq&N_ z;V(Wwt@wUvzP3{y;K`E@%KNL$&hvk)yc+_mVG=f;tzmGk0MmeL_zUl`WBQnizViI2 zyto?nPI-XHx`XP|Y#s(HueQIt?FEptum=HIef*$*JgUR)Zs$iE^m%1(jp?@Vrm8$a z`Fg^nUeDhNY%CWLuAKq&dT$Al_4*TV_6VO65cb~_Y)m-0A3z)HMm}EruMNY{dYetX zbWVg8=zDx+xBn9e?W)6lPo{! zRpmxj?BI-OWVO|0SIgA7(z`h!F(xgV?;Fcad4N+ZzO9~zz%&Gf8u~_V{9V7I-YXA~ zJ#xd)Zh`6c|2;co@Bm4*+h52}ee(}`1%|-wN^sE!-vBJ4;&xTI$StTrs}J;cjCu}3%p zK2~mV09sz8nbTu_e0t?}nU~kvs=2+E)}}Yx%-oihmPvZ9tBnN~OoRYTt~01jo(D_b*B#Tj~ma~`0EoGgSKo8|B~H#=q^HHx0^-b;h9A@;k80Z7A4phrX>WJnmulhDF{t=oM-M zvUa4*x)0_lIas(DI+=rcyZ}ACx;~5-FM3X-s!fmSQ~7?H=wnmtJ!yLZ-kt_-kie=? zx~klgY7hF0dQ&e-a@m)gd&x+x;{8o|erSjH7f-bIUEgluqlN(K0ishNSWnRTjnDjD zj~ZqK0Jh#AHaZWGj6$~>{LIML7hv?av9uAIKX!DN87&YpJo5X%q2goj4f2l2;|XqB z3T8D}!!EuH*ob#uhc4PO;6kPaNb<cXwsW1>$MOnN}rI*l0akUGh%`Z#)Z45?x zN4!^0by!%Zr;W$gUdX!0s{mlD*Qdjczi{C_UB^6i>czfDmp`1Jv(HAtkbnjR_*J8- zo$dvIG{UW|`_ooDjq5AVRc7Y_CZXF3lZ~Gz{S&r1Vo^k1 zgm*~D4y(fbpT2xNx_6Y54AqiXR-u}wJ0*~_+ucP@(%3?)`3Z{ z^bE(k;w)@M}zX*yAc6Cv6BY6x_gV^ifiuHikf*n<0 z&aMZ$N0hruKVm|3HGdzErk-eSma|W6!Jwk*-JT-AsX)UW=Rh9v~gH_x{2YsrW~_i;Ms;K(Rk7K%hXeqvlYV`~lBcrxoKpOX-p>*UH^}Q+C&4%bS2PYKYgs>{` zwNLH_vi4Ksv07_#KX!WA^89+r;uJTsz^|2>0zdd20J8ddc(V;pdc|fntmyE}S8X;=#P@ARc+L}M4 z&%4t*(TiSZss+h|f*Dm<254;+r@*cF{k70ZgGc9duEYvqpFwg=uJy8J53Xxa`Xiot z0bqe%EmHJSX@~uwQG^NA23olx=xMa!&qg)wp@iEuSGv_UD_?Q7(4jOSUaQ&t9*gOqjR1?Z{L-l!GC5;t<~YX2SmOUQ*(mM2Qu^`CY1LVx%qt2iCe%5 zQ0%$2h|*K0QfE!v*?vrICDKz;d((1wzQG@qi}W&`fyZfZlk@=GrnSdFhg8w(8WI!2 ztE<-$9}c39b6^Kn>7KQJ(X52WfHwrY@bDPYt}>5@%>n2woX10QdZiXlg;jv>AYivi z0So8!U>*vrv`B){g<(~XZ=r#MGnx|}jdj=FFtoZk%ueR&W-J51x~Tx*A`cMb;r90{ z!1dH*<1^{n0NpmY0>Soa+wVG1wl% zP@O%@r~iIqfNKZ1{71t@=LG{eH9_ z!plS;+WH1_pfT@eP9<@}sC&9&?fI64DH^oyuA#y!)$8-rX~ z7~g;B{l;TZGtRwjPo>+oyP{QGZME{mQ+ruke)Wr%HkGbEHpQEwZMH-*147gPTe%yQ zUeqscQ1ORfOx>JS0B~G-0A4NQ-zPR+#)~_#Zr@Y0@KMZajQ%4>BC-P9HrfEe^J?7v zgn!KiV&lY#pkKLi&!9zA$KlNoW0l{ccr8`~(X+M2MLoH7bdBBiRo?ztqWBWb8qOLR~9&M5?-HK~|u<{k( zp@ou2-&Lgez-pJ9Pb~Eg=f!U*WswKhRw4ikH=1*P#4m@n9|9Q2wr@}*W8l^0=3-cj zfv&Y!Ufua2QMnfAXeR}D)rJP3x8iV?_8SlLVR5T^cxY80S_Swv+hV*aS$%i5=!?mR z02@)>GVo|?G)Nyt>4#urkGdCI^M9Lz>aUhr75uO^1%Opb0b%7^ZxGrX2&UlHR=ze? z$d`1!14#1T%oDXhAGOrN1DbKLguQc9b&27cs94XFCj^(*c&A%(+SA3cN}&DHhX;ls42@4Y%(va13f@~aGI%WlP+H{Qdm zqAP9@p=f)?4|L!y0Th**4vfCzGo_*=RV6yuUKM=xIBCQjdXf zFmEGcbJ}wH|)4j zBCu$(SEom^WC|oxJ)+T8n*p!M)Pg|!jlzaKNFrPE1IAP)w~Vx#f=i5gSKW)YEM9b- zN@r@T3A{!3ru2y0``XegUG1Xs6~`uH-Y@^G7Ac<7boknNP?CLIZMCPYmfCNh=&Uwf z^N{x9b*7IpF{t(-6m;13CaTojf4EJSnw@Xh^#V@XA_%-F=mvj1K~Iw0GKiwfjlK3y7Q0TTgG$;|G}q z7OtDT=QUrYgrlzMQQOx!HrJs^@&?G}Dp#P9*)Q-ls$Fsl44DHgk1*x~=eNal1~M@K z!x3}Y++c}nVbEJ5hzZjGd2hF&x<0cX(yJf$1C*;Dd=f?CvY$WFcvr`)7 z$&dg^1S8@>&fw8lMb=g z^QrX6K)3OFOuw1=^3w!QCTsW!i=cXz!&w^@ZUjHRD^9t>yel&0bi2&R~aOuGSPjgW4X?at=_ z!{AQ0NvsNhrLrmz))T)vN9p%*Y?+w^zFw$Hv4Ohw5_&WBcpThG&L?VH%{*uSlzUfD zIWHOHh_5HGs!H8!b$qFPfqb zd^P53*i%4QpohISO&%Z&TC5yTcRVCx12ufWu|N;H(`=BP*eDAh?+|aNyu_7&1H~0W z{(;J+lFYqKZSGyFw18Q4Z_j7aljB-6p}k(qu5qI>_z=MOz9Bb7EB$I0i}FPu$NOn} zW8KY`(0X^!N8Mm9-z`fd)-ZIg2cT@t+ zT-z!|>=)c>J4x?puTsilnXzZLShD9_57_lq#yBUSTdRkED^=-zHJMV{Z@i>K?$^}* z&`7y8-oDbRYC2+&$Qb5Ds##wLnr&_El^g z1PqtkeM!e|-xAmhBs-;BJkf$#JOJ)fjbEZ4@!^JgU@fy+_xhlKw#;_R+nmdchqSH0 zk$1U89j>j!4ND*S*&foF9C1DOxF^MCI9$v9d19N_ae@VU*I{Cz>R}9-$Hv2X9>Gy?e}%LRj$kRESfB`e-xm&sH~?0{V2fgD7`w~rl{+>v|}8cS>~@d?&^8H zh7MbQ>7_aB!VbyaO{nvd`!{AC@*+ul&5i;DTl-V#!yi^pm2&vB!<=JVrFKUNberP} rG{85%^`sTP;az3i8`{d;QtAI6_1}ZG^Zw|D00000NkvXXu0mjft-Yot literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_add_nor.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_add_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..519ca481bc3111eb2777d73c8f75c312c9e9f240 GIT binary patch literal 79825 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 literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_body_bg.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_body_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..ec4ed05a5ccf440d6cd20b6d3526c51cb32d2f1e GIT binary patch literal 191314 zcmW(+2|UyP8+V7M+%`(?$hCdvCOMa5_0_up&#yq@ppcs|ePd7jVv^L(D~Ye{yt7x{R_d0ALk_$)2V99UR5(9B;n zH#@V&yPf443ky4o9n#61`FMDA^mqSg=iq34?`ZMw(bnG4+TPLX|4SyptlZc=`n`M9 zzk0}Q{rT@`e&>j?a=6SS{vQ4K``-{|Ik)rwf&2dv-~Rm9r*ZA?+@GVqmBVk_|Bap6 z{;z52-+!(BYlj1CN7U8B**{0jFS8G`T;4tUvVHV<>u7l6=;z;~kDEvI^~34yqakMb z=csjM|I7B_=;qPj`eEPdA(P4I#?j{f(buh`_nSw(D@V*eU$>7sRu4*l|9ii2G`V$@ z|7(X?!<-lQ>knh?znY27qvo}Ly{m`MSN`^_9(Hf+F{hi@I{LD8$k^C#S>2!5K76}+ z(7k%tzjDObIAqGuzjg3>^Cf2aVb1E#%%7vK)&In6UpeSpJ^1zS zsD5RS$$xPDKY5runIcuJ?!8*wZ~DDg`+KkG_bziedFy}sejgPq|La*j__%dcId{~u zv43f9^}{A})rZWoV)-Al+sMXI{IBia^#kTCOrDJO!>*M>CQpOeU*U_JOkH)ZA7uR6 zrmr1her+(;kE(v}1}>}*ZXDFE|7%#?XUaoaIihYH%9XELX)AHH7QXKMb- z)=}Qd-=VF8y0!hBuZKNr2k*8HI@k7Ee((3K9aOCTWiB@P=XTrLe#YeCr!A%x4(fjI z4*j14lh45V;rQkeZRMzWWsf<_tJS@ZwS#=7&Nq+BW{zl^2alJxDQky=8;49g)_p(f z+T5cs|ga_N^b*ukJEE@b%&mQ!`boyAJa!w6#N@ zg|)v2|9MF7@*(EO`q<`wOqibY;MXSU^WpcuM|o3+-D?L-XJd|ST>bav=h626J$ZBQ zKZ5C>Tl+^$`qkopZv6Jwe~4r}$NjSsXw4{WmgB=S{;4i^^sZ=!MCS&FyIf65 z$KFl1^zyxIN;-o(pW49($0j;b-36bO5EpbxnQSVSCWCW03sbfA%kWLQblD>6 zS{Uh^p{9^R=)NKqr) zfQQ!Dn1ho}MaGtj1m0@qe~x>8EjwDS;ZA~gV20n-3di!4`lO~(!kK;^1Pj{_R!cKu zr?AP&X9G8`T^6Ps96zNaC>(V{IG*E$l(~5vmRnrO+}Nq4Vpd4GxhclQ_<9k=>2$AC zIjwX&mCg2vmr-2mWK7~+SzDh1pJRoOqICp1xAmqc(lR59AKqAP+R-&M-e0e3+Oe$O z4U3+dXgB=*-j98Yb~dAR`{8rR31judyhl@_KdT;}nfkK7vh{EC$GcqJ;KQx^7qy;0 zKl9Lf>$dfnYS7J8-^Nf5y$3(Xk6m$A>x7N22Ho0;IG|~(RaaJ@(SNl2erb&Kd{Qra zvEatRH@)r2iR{$ot+GX$N&c%)?d^k|=_B3;N6K2m!9`~thRKhZp1c;u-O6%aF5*Mz z%9ocvP!C?bw^nc8>J#&ndY+>nE@8MSw#cPXqK779AX-y9areOPxdZ}{GQP9@E zMXcRkUR5lJZiggrA1M2jItz&FK{6Z*7N=W~bv;k>oou3=L}RQldSTk!Kis z822HWm=FGai}~3?D5%#|McrNigJrujpbKq63!tKS#>Dm~J;jEfgzyGFFwf7MJPurJ zsCb|kMBQMYjWy*W*|P#KxPVmh^P%(R4_JFGSYRY2Uk{+05pym$_;~OoYaCt$FXM1(ZcfzYohOtMB#i~uN;aPQneFl^X{KAjH%7zED9z$ zXNdf4V#q+$%?aLS6`EN&H)J{6>Wf?;O{chWB#97w9bAMpFEql95#`P61 zM3#0~m2j{JGqVytd2r^kC*N&&zp@uBWcV!ys++-mnO}{CE3y!@pyoQ3(y8icQTPp{ z*`NV$;9%jw2-d%C8)s+x*vIcEG=1_LNXeIEAEWiYw3`9OAgt&lVIXKo5giLRhL~V) zV(>(1-`BsQlT%{h`Lw8h8yn&&;LCSjiqwZHhWacDs$oYUP&?B+y0*QLAn1MIvQeQ*Qu`%O|EhT(1cS(RX$EwlAR8vfN$;VFVc4aCJ ze(^JRY>=F6h%25+6>le)a5+$gNp(d$5iluJZ6O>F-C*2nq3fCAX6g_a_vi*@jr87{ z)GCaJ9g9n9B7Ea)SV7524U`~_xG-2=YBV5a7J{~Y^s0r2iigRg8@;SjaF>xkYAUO* zJ@jpyewx3!jhNQ2Yp%cUj5x-*(HIGUN&FCYDuGa#rUc#m#|sILCj9%b=z}kud_X=P zjVuf1K}nf#Jp=Cmgt!GcthIJ|maxhv|0+Tpae=T zd3!=vNWY^D^O~SCasJLCI;z+|JpmZnSG2qx8~7pJ;9JTn>_Np}Vnqc(ljV3l3zyJI zeJeXh4L=3`M$Jm%-61gg8=Aj_A#p2;10L+yL%y{!gj;&?;=x2a@gMGU+g$R@O)Oe4 zdz1$D7uMwTfzrrqFsdfJ_BNZCs6(7%d`6YK?c53A+eQN;|ddq4zt+Y8s6hn>?{ zn<;i%sOj+VyK)e7>%S)3Ici?}L27vs2aC$Q_)I-XkZR`0Wv%URxNhGH&QljDfC-JI zniyO=_XaotSv`;>SKDD)%S|w@yhA$WiP;hkxQZkhH8?aeam}6NZaEt{KKt~m21(;Im;aDr_o>b6NU;%|6-#Sm`MY-y@ zf*}o1iz3b*&@)Chmli?t(C90kDV4Yiecbi2Kxkj2vqy3lqzTqfT>BR0jS|Hul`=9S zz@Bli6j5^1O<>1_@ol7T_UZX%8~)%#TZIo;NKP0VMr&tf1j{lbeAD^bxFo`yBw+_9MBl;&tY+a=GW$U=Ez085h&e zr&P0|83A!fH&tl|x|dx_mahDd@v~D;7YBa{j3o^yD@V9v+3xZS50q-5p}cf{ShyqC zZDU{Tc``e@^w{l%SSS~qTlN!5ZhVK2;Wabja2>tC=#%<9yU=H0%43g5dNIR+e_al| z5XpThzIn!Ny{psj7W2|Xzm)Xb;k^?{BY#p3lz7FSCs*33BqyXuqv91ZV2#_>)WvgY zk#EHu%6f)RnHWjPJV0PsARMBo5|2yXb2IeweDehY-$OIKxvtwb#sNj{t2I|yC6SPe zphh7-u23{p!i{`_LEs&An$Jy-F{4nodgMVf$GN0?nsND1a#px<7bE0uhj4V^`2Mxd z`g{L+8-ye_{SW_Kw7q)Oy(u;cqfp0m3!}^GbNCUb2r~Pz~;O6BJ(hj7MFFG!y>k4JoZtp94M4@==5OPDvzXcZ@UeV3clm z?;-;6aW@MtuLBXaxyQjywWu~hXlnQ+@~b4TKhH4jUVLh;h zWsj0P6yWd@2Fgxhb?_UGr(ovJy@7!?eH_vIWS9jfYO3qDcJWN{n}g)VdLXL|hsc6I zoZbn)2F-;L+#pK_8(<02lA#Bi_g(oQa?RO`5e1B>M_aw0h*#1i8IypkFZR0Bm@!!j zhZFUNHoEary+nCC>}Gu>dFgn#7l>6>z-N<)K!i9b$h3iOO}Vz4sW+f)xdcD{J!ZxJ zjIoAewJ|tx_MP2=^WS3*SA>$1b;wTEUs_x0x@r5zC1W7Vb(dA;dEpH%K?Br1rL2#( z*L_VQWt6;pWIhN8U5%+75x_6etmkl%;@tV$T7%z`I;_3std>FZgaD&VVVho%t|3H^eJ*&Kgoe;RaSei3tF5<+<0VXuWq%kTf17`Fki>QIR! z#W1bcZhg$+YvO`N(YpR~R#_ouOicgB`d8SR8wjE91LU1gC&V53-hru0G2U*JArH)~ z{;Lb)VZ3z$Z3fQ%BN-d=$~B^}Sx!4s>>@${9_Rmd_9i9VXF+}vR_gEj$7+|ZJx&wN z6v>S1lUto#!fVH%1ti$XRWlQgvi%@>Sw6t9Gw>I@rcRn6X1;PBB3Fx-t>1X*Z+9FV z-4$QkN}SS z6u54em7+;cz4iY@TrRkvqFEUhoh6gP2 zb$F%uxRXe(x!w2_uhRE<-4t%uG7B)RAh}L{9bgq6x#BtDE28i1gYs%6Ky}e?N!B57 z5&D-6A4^CcoD*X~ZcV4Pfy&BQdC$sP?!l^Z=y8I(vXnb zdDK5H~P%dV+b2GiKkmCNaX_?l=cH?*yi{Z?9jbRcF! zU`Cm8@Xv2qO-(|X#S)(jkdL;04Rl($QyX`c0l&n4jhw@bM)1IMK^MGcZODIS z98AC*X{6a~kjx~I)TZi49nbL0w5*=(qI&VGWP~ai)_Cmy8R|UJqFz-c-5LE-cZ$zT zkZUsOT;fKla?Cp^)!8%6Iv>kYtd)EZ+KlDxo0zuo_wUd{vi3X>;=`7(qD9v%y`Q1^x09RdY1jAqfJ z-0E>=RR1S7zgt0AgonD)wR;Br6eB?qXUwKWL^r`1ImYerugc$c?k2=~!ax3N)$dF(!u_?b(Y0=@GOJdLnbp4Pv|Q&zU*^&M#8D4fV79Oh1{+1e_29w7# z?xzSkjaOd)MtA};Xr-}3^Mnf+;4dwt^gL_hrT{KBf0Ffvrxl+vg)ci`zaU~7xTrxy&T+iN>M$IZykpE0-6 z@ll!GyK#*N@+V3tDa)0+mjx<*c%Z2n7eiHq-)orp4!gT>ALNG{CwJZ?v??jxdtoEm z*T2#6;NLF?cB``GTX_bxUXEW>d{V?HLfz(@^~)C7_z^U3#<3Y39-#nq^RRdL%lLG3 zgXmt%(pO(^8l-_b7_Sn6nmT(ZqEYom+Vu$dK?ek~15YJKd>}X=9&z_pA;^2DnE_pN zPvC_CNfi(JX3$&Cw9|=7`kh}w!Xf2{r|;$ZT=3ih4mIzYk|)|!O(`Kx$h(QEtTA#I zuY6pqD6uQM@4uB)^XQuEd9Vl8>K!q#S_rTLhoJFOQG8JqXM8hZ_alE0^VPz;;xpxe zvfaz9N~Y`8phxxUh?j1$4#R{CW#?p?0QmkOM@4$en1Jcf@X)@}X3d4w07dx6#$bJV z=>vXmhXmXa`S$s}jm@)_QMS50Z1lrQSna#RlzsoNu8!9k0lworbQXXw$U~cMCfLn^ z4q;QA#eC_emSkF1F{0W?L?r{V_Q!99JmL97o6pVhm3*gK-)pP0ADE?l*>m*55-fGu zss6W^$;ek8*vblbCdg%Ar_}>)l~rGQAurU~r`85Cr^FN2vyptj=-&5s&q9!$gK{=S z6-dg|ExN~L%B!%iP?mpDA!6f9-I2;e%O??JUpMv8`zS>RuIPZZ*uH)mW=@XCd&MHBpi=-=8$_rrGxiS-7-*R^tH9NQ))TVkyH*PI{c=V%n_f`(M z^DWqD;oXH>^GDyo1M=tpxH@~U|G3EtbJq73bIC{;?}9tUVr{KP$BXV_>^-%F3)i&n zS-W1~DiC-p^$kscMv4Fhpb`RXX3Zjl&L4c{F7d69C2--(U;ZcoR?T_PJ#%R^-qL!&cR ziJ4(h4%R!eyPIQ3DQ^4oveI5X*e<6tQ&#A6#O99cn}5eYI~>&(JY{<0`pd+^J^764`z8ZBm1qI+k$GS0GFz?8aXYPsn2FVy%c zEERkg^YMabM!=8pjf(k5*$0KlTPBmh#ZUIItWOV5I(VqqJ1ChCyjtG%QGJH2ru0*B zX|<0OZ_ROfY&^v2gJBx{_X__i0Vw1?CN|*|!0&Llcj;RFmX4)<~o4ASaUiC55vGs{SirZYV{E9$ki&Xn&; zDuHb-<6fp`OH0lkM;Yfb65>lzrRh#(^S#}v?_Zv>6wOHJyF*yZuD8p+MMD^V+KS4L z{QE3!HS|(vKfWk!^}*M%--oga81+*;edE z*6QVxp5lzFp&!YKZMZj(wD&c6Y}H%p9+W07${l=NdNjQ73C2b_AE2GJQ5@T+ep*DA zhe5(-Qvi6B>mY?{!XnDu<2RTsE|2!Ny29mtZpK>57%O;rGC^y>R}fh72alGX`0L24 z)oUSclM{_|ej4(kBE;MqlSgI+zGKYD`D8#KSk9Th z{iw642YNinwSdvW9F=aMN@dgoposH9_Jn^?t7A2nrhG2S&uQ8Ing4oPNI_g03sx%L zmIs?k^)sUGBso~UZLG1-!l$P#ZFKa0L-&Gt?^6E06#_mKEPbD$kX$-N{o*C&j>jjZ z_E`DBRC6LA;LT5ygZt(l3cBz$pA(SlvIn}sLGC3Ago%}L+2urF+qcAfrC8>uHu{_f z72!0w23U%7eMeIVOZ3LU7)Bq<>7@yb;_J$A(cHGRc%8Oi+-5EfH76eE4s^fGk-7XUfk ze>1pqGL>kESp$;DxzLH18L!48Z@sy9Y0C0*<`3p6^QP^`6EE+AKA`@&F#>{iA zlcqYp(cIUD`(|c~3#_%wLKGszH=!N|;-g-ulBuEE%0bBQXwXdsc?L;KG4m-#2Q8%@ zJa6UL`0?~JV)*&rxc4TAXjaTzyJ-2=;Y zXIJ$`f#>UhLB>X?U0M63wwdEipOxa)VB8mEZ4`@Xg1NL9pffXm=eUx^>)609~HAZiP=rp+^}y=y`O90H!;ufYMm$OmJd{d?-n8HA6n>jLX8hmww=Y zk9oI}Pn!v`N9603KDxu{e7EgT7)_@~`LLTJLlVGN*feXYvu|hR--ugqGV@~FJJXr) z(8>z&(r9zYHIDUXig0&7UMke@h5P0ZzxQG)hR=S~B5@?IZ9;r3y~di$$Nyq4h)!57 z%HomjfiBLrKuXbXAD_?fECb1rt9=}^9f1n%HDH-G@T~Jw?dHzsr;@Mtq^m_&JzqR~ zN?Pf7Z1Z+_(ayMd#f+7%xm@}H$lzypJ_X47W=q2_?F~uK*%eAn-i7bznnW|49vvKf z^7K2ryuk<0Vik3c7p+dF+V?gm1S9bFzXTJbD%(JhT6*XjY7SMEf!I zTF7m8qFUKq$Pjz3`mk#zHaoyk!Id2EPNho)cPJ{JR9%~cj~xa%>+vyAxZ%I-$VV|C zw=XJiPYR-;PyQZV$KRx>7j;p7Rk!xWnY^fl3hn7HdtXk16Jf%}*hT4{ylEzS--Q(+ zlS$kq1E|Kfka+}o<$cCwG+J+H5o2Ka?$=2rvH(zi2fqHG+LX)N9YN)PWJ>l-2Fxs* zWsPcO6w5BVkXdjS6_4EoUV`i~?xgk3K`VIKzR)~cL(r?TZ8!T_7ZV>oVRo z5^~1C9e+pH*`PWe7W-rgZ=y;Yu$W~Se~h*Hxl^k#${4gLLat&Al!K>^XR%}x3neQ! zKtTyxPY}Jm11J?~EF$tz+Lz3;Z73XVT8g<3AaSicLU@RhX(tP0Fl*(xVNi^Wx^G&^ z)exI0%0I@f3kIaf4HR0O&J7RYg1o#7oJMnyVLLA?kw%!Mt0){%56+wH z#-#&Vi6hl^BMBy3B>P`(u!S242pImemkU$fw%p58U?Sjs^_^gPjEwhnvbOG9;_foPgJjm!L?=8P0wq( zdx}G4&zPndIlfov@W7J_Q-)_EFM>i1x0Rpl5Paq#v^Np`$C=P}&rA_PqMpOj1%o zNYb?ZjZGhs?=Mr*o;@WP!_`gu`V(QXj5$6Go9sssRC86t)sD%IsPBSz1ZB2E<$TKR;#E5gMV{3h({sqP(YwaJa`)=}$ z;IzJ@ X#4Rgb3Kl`P**@G;piNH=B*G-WR(swsNlx;# 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

iMt;HX+&jCg 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

DzJKMPb) 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 oGXx|ZXo&lKI~%1_jYcS(;pDQ0Yu_FCRQ z-hW}{HqScDaXxjL5vV9NOnhm|6z>`!$=ahLB;LM`_}gr}NWVa%ZW~?7F}tXbKg9?sKKQ(G}W#kWtM1 zvECnGW`4Yv`HVW!%iw0*;%^L~wtK%`+`SECr|qU(%F6&3q?-1h*DnqJQqpcMLLkLV zJO7v38m;DOL9Du}sg5=Myv5DnWv-A8enN%6xN_LQwHELHVg7WOG6Fpay66}aS(%Gq z#v4%Lriqd}<5s;)Ux!IH|53o`TwuJ69NN_9WfU{-2ALHzoY(*DWk#uZUM8zPFXL^5 zhYCnpggr4u2oMd9mmz$(lK~)#78IXxOCeIo5C+rn5};Y!<@2Q49L(rM;FdI88QDSF z6*FdL3^NRAmv1lABUnOH6ZeZmT?`p#3ZB)dFYimltzJgQm@egIk|`oT56pv~atc?Q z9Pd!PBap1vrdhWiPaWX|W?0trUO9uCNqq~xvdJkxqqH%wDGpZtT+5$Y<>1ozUGIEI z$G`Bh;AVD7K?7Ing_p4cTppkN-3*>-dxA!Y<1KOWq?loIzD{vuOwq~8R395UVetQ#^8xk2jA-8QgN8m zVg~SV`DwoG>kV%0%o(#YoC)W9nJ?;X3KxMF0~ryWql~%1zqVUClo&HaeA*a@*tN?h zx2`L`zv3G1)CW^#uIObZhbWu6Od4+TGIsTKm^7X5EFW>EHdtV_Ll~-Un7RGNDJo`X z>X~p2X1=}5e}|vL*ushwE=|qQ8p_y`=_*+vQZu~_T)xB?!wPjf#zdQ47tPB!T_%Oh z7CRH~Ipc2vmX~6sXev$#17Pm%ekN^^SfpK-HNCIbuho;k{f(J#FVm>xFU1F4rHqZi z%UG2duC}6w(Gn8ng+D=jW2l`jf_-T(gqevu=q@FXHVC~8uCKGdq;5vrO>l)mgYRW1 zdCb@hz1nLcIfK5qm)XgdKV7a6$C9~IS{%aI!|k27(<%1Sh184ZWh~Mj(}lf^Nim3& zEBVQJikp$r)C^5B1{v%QOrZ|NUJx>K=00Y=z079LFh1>OW;FIC{oyQTWQu67fAL$? zxmew{0GdmA8O4i2Wh-QwdZU-=+y(-{kXB2S0j3RDypTouT3N4d(W(st!L?6H?d6rF&#gy`8#~_Ei zOW%+)F=;~1u-@Q)oMg4aEl$ZMM*)Z?tbpX+8FFFBOp$1s(w5L0&@=-Wp^gq%PH~}X z4<<<6nkG|>atmfwTBo7>7=dNRiX{!Z?)N^%1Qo>__o`Z^)jx40-bA-U%RtP4zuA!~ z)IvvvtWL9|LF43%^Sx1Sp#yS3;D~8QLEzz76S$5X17N08_c=0`*mM|i-I^p{x;6OC z>80L?K<*P(nhwY#O&35Vrp<2OeR1T8VoX-qLOwz#T9n51RxV~k7z?1QOn!!19h$dcA%LreT zeY8yG9$_0HlPQeTWQOFmOc<@t@&%*xqEn{5udyXsj>h}?R$1o&xwEC4_XUk+s$i=8{MXqfX zJOj;)#+v>&Eu#vg?gz~X^UMbmp>*+DCYxKS1j*1zU2y<*;bKPB)vJ-E?EQWD7?Y7$ zGSrngBjeSka2&I-rjA1NvQUxAnktj#x@XR8)gU&cMBvDrIUfeJ%;V7LdG9XwJEtV0 z$1M;IGk}Zzz!Z^@Nt3*tC(troP8&}%wL!==$!yn2IeM!UVg;&g>g^A5x4E)c)VA8H zL2TGqMvBf%$Mu0ntzVvw77c&xj$}5ZU!l#8p#fl>;E>^qmOE&MPfbiVtywyQU&fY_ zDL!MM!_tCmOi0Dc$Z?R=$;p!?t(ba(eMOqc(2JroA!aswkO+J}HB;!9{|7QHiqma9 z8?ZI1bSwR&ZyBEhoV}TBXt+pyhjjDeF{TZzL&d-^Jwisz9eEXjd#ZJS4fw zCgb;_$UWUn1P$BM%5fIIOv`7ppWW-1@iWb)@h33GFq)FbwO7u>MPp39B2A*1kD!@< zJAr?nO*3z*Wm@r>MyhqrWEWaLe%DTf%r}D_KUq%h0nGDU< zglY=!3>T|qZqJ!wxeEo7sNbPNxE~k;?9!3GBh2lTp?&)$s0UD(BjEW;em()z z;%SByng8B2j%C`JW+K@1i)Ip<+~15#>$t@IM7O9JEcEPSQlpkL;`8-d<`QPK%(*m- z{HL1Olm1X?d)q3LS?d$9=qc6oFqym;o5tm3+CLCA^gd4-(|!V4YBjc}fh2ywd3Q0B zeaEoWX}udhZW<>);r%j+S!ns-Ogz(+Ynr1WRd5B(=xS|abOZ7gAZ&CLGS6O*CF^;b z;R{u5;luFGY_TR5HnE%bFPec+WWX(pXWaT<4${ngTrdEW#kK0||I^PVgtXxi0u7?*HIlNY5auW;cW z2(hFkl5rV?7MSHITm~{*FfpcA&-NW;AQynDtl$_-j_D2=Rl`RgFrTZ3soOGFw@Ng# z1)Hb|oZq=qqZPS!l0mI|vthLS(W06|n1SpX zXgRsUFZ1YT-OLOw=?qXmpdy*1g$+M1%81C9| zWLwEb7J@t$m8-Du%j~VDlVzIm-kIgiw2YK&P%jGum@Pax#*%wx@WqtQH7En+MWRDV_B07txSiGXqi*Rv4M>u<=h|| zC}rO2Nmrp)_mxe|o0j%AnnpQfZ?s&yEBTPZer5}Otp3iRodK_^>xw6$W&FEzzO~qb&W%%O z6t$c=mK>Z9yG7h1zzn`h2la^?d1NOVRvZM;u;PGJU|zDB$5BlG_hMSz4(2h_mc%UL zlJQu@5re9k2A$07VVFje$yCr!ZBo6)wz8>}B&6(f8Dz$B(YNq51An{=Gw z|ZCNI)_1xV3JgrepdN1oNv+uLPwf95EYz$~4lnXhHE=1=q< zjJ5of6Q1E>+DtQh^33=`X9^gtGh544D<~nQDUfn$mVlOuY3TB!rYdmIOs)$2W)r4VUXxqdO!i<+ zs=$&?0b}z4oj^L8SL*HZ%PE86NMOv1opCLL>E;G@N;G4>B*l!g>}(!iDk7jrrwUg{OtV#i(^E+@~+a}?s|g7dWu#?;9x z8G|vR@#EZPJ#Q0gXb3hfv7z>sqnDOYZZw0QX%nsEc#Ij3w#n^*&e8iwIeNphrg0`1x4c0K zqR{FU4J>)A_27J5=*dwTf~3R1*|y#vTyjvS@pWh!x+ca%laJ{WCIwZ;>9&P>*No4gxyU&Ym4kpLx?r&>!4Yf7P#8Iz%3mQv=OI_ij?gz zC1DDhVe;b&GxIrEhlGraEtFBsOfR*T>6SCPu4g~rYRaT>?N)HoqqL01oZ@^IR>&l~ z03;KP=4PBb=jiRpGar&X^E+PPs4MXV=kMJ!E#VD1WkwOL59e_z<2(^Ohe9v4T{`WH zgp~?4bJGnDQ;+*){J_B-a5(SfBeR;J|62YN%=j680aqNsr1 zDQID7QzXwYZPGOdEw0Z<&%K|WZU>Z7Q?JVq2A6`&1_PqT6o`=%6vQ%3%QRirbIv^s z49pI8ttO#yEmMW zG$B}8jFBNNgGu^SF=cwbtC*_?uH=nAqQDh;CS?Qv{ug`aqOLRy1mUI%D!zm7|Cm~0 z&u_jt<91D2IM`uhF5ndyXD>;Xbkn>ZK#mP;Fjw-`Y9`#W73Q_wIVAgO0$LUG?t`B< zJlKmxcscSZLNS5R>C!Sb8qAQMPIyC((;IuJCtoLfp&?7sTCCSLeYt+tgMpVgFm98S z*^ceYoO^X+CTWc!^?U>BA~78Y{cJFkPgTNYO8ke4fp@3nwGI_e`9rMJ>684^_sbda zo7N$-VoYc6XS5FqF&_%WYGvJi``B^bGe@%+x ztrA`N_=9m2lTplcLoqQFEi7cBD+5X9)izpp5RE_RAqf5^V(suusAZ&=cn!1B0!RMG z6C{JYd?@3w0bkujeQp21`?{tWS; z?!NrTAz@1|otIKJ!$8aUBN6@nZB};%0*9XPFL2dZ69(ny;*|{qynF~1!vVk$@LwS-}7vdAI4#N+6`I^r6*50b! zRs**ucKYx6NTwMEvi%-B{UDfRl94ZiqcAUb`^o5Na7oue=cDg&+|8Biamf7P5JJ(3 z{P$h`rcYPWO}I_6xv3}y%bCApmgc6w#a(vBBu&;QNhp!A4kLwmOD9>%sc(S7xI%#i z8K+?Th-91?2>A7+jX--J0^dD@^}5^7a?`fmf-_HB}v_t?84NCYt}C zDlb8;@y&18%ILow4yopalG zMyGlX5891id>7bTXU)!~xEN;SElWiMzU9m@`9fdjwgv#?_jZ^lT)dzTleyM^f6Q(b zhY8Fa4g9s?nHyDl96rO(?cC>7O$eoh3aB=^qEoOJAA+f|1XM5AKCm$^6H5)w(;)V9 zm>BYdFYu17g3w_uP=-hAg({p!E#VS35}=~f{t z44ev4dU<^H%Wvp=sUHeP^g0WYp;-w7%6sFJQ_MY7>9l^F;`2|?m%!}xInxs)nHn@C z0nObpiQ_vQ_ z`JMdr^i1@!LK9DO>o!%sbA~EB~a+U=rkA6^P!!Ufqq}SPo$Xq)X6*IZ!pWFq6Oqp?W(-*3N%^~EKXmEAX z-*Ekz>iw8I9ho!T6;``}!5J6=`i ztUZ;#^c%AbNjKHqP0-Ae*KSXrk?aoIB5eBm(~&#^q~zr{W4aTj;936)-giCB*GS{h zS_YKUFWP0(DBKgcL#zcXRE(+1B=U6wbK_h6eHd=7F+_>FK23FC=r@7#k8Npb8KPS4D$BspaWy1>e-rTZ*+feWy?hdS-rgp4pZiG>?RqiSnGW3Cu-96=zA_29%u3bi9^P5lm~mssIln8uU!fYyVjf zT(@gC`KA}9nb>2}`*Zw>(XoF-pOiBjYhKFf5Dio}!S3vTdSCnQ_UFN86FuVrO$BW* zD$x)JUeFvrvk01dJ@7}QnasX428#Dpt6DJc5;E#%#m7#bOfw?q{Ty0G@27-cnh)~x zY;6MbTm8&c{igN&nHr#Zalfeq?$QRPk=~I^=Mi}6ymUF^GZy-eq-0LCeQBGDjflnM zE*S<&=J8as`c1lz^0o$OYQkxLQO7CH4k~-(waiqqpU9A8{Nh=t*M(x@ULtc2)H3lg z#~#bXXat)#qNPLr^#-s-AblDbaiiDUvn>k2$GS|*P&or&v1 z5c3YtM`zH)=CzF9@uV$F90w82<;sR_4bUtVG%psQndqenxkQe$CmCTNX9nssofj@0 zLL(|5nYu%N#%meOXqjM#6GPj;lxkVb3!1$4Z6TPq`?c=@n$Hgi&`g<@{THgeS2AfW zv!FxE6l0rmOyy*naeR~Zn2OIoVcQsHYns8R8CJm4M2P3=IMq5m3iYHU_!Ojhz;)%m%%n^8Ad$WE^YzhJ&md4!NCwDw%bT>-Qslp^irjIXqPaV z6vt&c9P$*moSP$u!*9IStdlR(i%Vy`(Z^aQxI05~OA8+9FoAg{K(i#aS3#p!I2{-X z?)R0vzr=Lg9)g%>dT%Bu?>2^K;(8yHWED-3>0m7re+&cqY4HSAGb=b3q6(UYXtaW+ zrnWz=p3|j zmu2TcJsRRxvrTM0_*^T3pLy@W6g>2_m?+SjD(@WRA)VKqJQhWTiuy~;({*~@-d}L% zcgp&9q5&zlpdV|-i6ix@pt&^_GzVpzrhjc)iAG1htT(cRI*!Z2Xsn*;>q8K2?vQzQ z(^H;g&@z}+*llZGNnIl~Tc&rgH&4$sKE%wkIs$)J%uNG^HC@Bf(^x*yMD(SI}^Jr+7}&h}KDz(}qX2 zz`@;7%P={)<#|!;iZ9s%IU$3Y*#<46JzNu&)=Y^u3Uw#t)jAEcuq4E zHxhf5=E>GpM#gs4GKJ1KOJ`!~DEQ*Mk~+aBxTq=bHN|lmjJ{cDo?)#+&UF4X1kHMO z=l8dg;9Dh{eM7-L9wQ`fdODFdeoJIR%N*b`o!cW10vzv&#`#zMLI#Vq47T?6GtDrG zeut^{fRbSLY~SwTnZ>BpW7qaDpQ(dsl)|;Adr(}4cKS?DjIH-bc$aCMoDqh|Xc*kTgc^`4(tAq?5PI*;PfDZ+h=4?jQ~?7>S0L2T2_P->A`prc2_>{prHd5l zf^?)QT)+DV?#w+8JF_!8=W%D}%`A%0v9q}9oY{o`RWVPwft-XkE{ir%C~*Fugsi>*vA^M zrL4f1Za?(y^?a;azpQ0;@F~Yj1?lvI&RH7Lts%;n5G?9_|1enPppj%Bvn%iHTAGNv z)*a$uO4S5I3i~FC);~!@f|II|GJ3%?Q3@ zTyXIuk%_XN)UgeH=$ToScj@0m^`#?G@BtBO-ln#wai{TT(>r(NEuWkeO&LkU#O}t8 ztwMe=l&(Hn7DFACtoKhZB)Q4QTFZj}T#52^29qp-LduT@-R&to!Pn*Ui&L z`|Ee2!ug17#{AvJ?C$vn+T6NHVLFfd;>a(Nh-;lvC|ZkWee`K zyph`EsYVIVFPTed6}$cj2)a}YQ*0nO^bBOCTn{X^I17>!sirh@)$iQg?6YKf#7W6= zW(bTFNr!~(*H45|CW|>AIAfi9ILRM9> zRoOmZvL{HuLA~$KYtb(#!e@3d&yreH&(wofv5f30*6MDlh3RY^VXl%dc|*?T2j9m- zDr%7|IekCl_2 z-SYTsDz#QDnu8@{W8HT9!~nOIcMWbP7mcsBja%04lxj^JTvQs` z!~!b#o5tM&d_l#e5z5rrkW5qGH28JTp2HoFvvZ@GiC+&A{``s(*1%$_+g0dbJMg9{Ex7 zlhdRo@*>j1t990~LPu~4i`0Pr#3DPMhw$c9j&BE#2wMT}%UPT?@-`PkpoNZl9mRVB z_rU?8-Hkm9j@=VMnWLdr=|oWm;Q4c~@hs!T1dxZw6-beF*fm8B@hXVNZvbo{hKp2- zj+!88PyC)a>M{2j2dwpV_>Q$Xg+(^LIBoj3iAQJ}gnxHf&TJgqs53I~o)1ovmjqe$ z2Se3AJ81Eap%t_e0@DZy6lRe@a|yLjN**ifqgSWN&c#Z=~%s3zz5N838*2t zmbYjjEA@{s(QO`L#O($%n|=jVh+V%xqZ>~>)=bn`1>Ss;M3mYG9R)ps=QygEjbfk< zUUD{qFPe8vaI=oK^kjVPC1H5XjHGTi*4zVL?Riinx^Q9oM9J>EcA(ABRe55Z}TsEBl90wX|$az?kEXhog_^~({1D+FMRhfp1&R)grI4ig#D*qZZ zX-Gg5r@`5k%#EYYnbdA1{*};!gOy#w7e?yZtwu!4U~f)Ld?N!mi)*gRkz|I)bmH5> z5sf6&=N11`mewdXgL5n=C#EoEj-dNT6k2^tcsaH9op|4NYQS7$r+N}Ec z$aSbMWNtN*dw*3rQL<6jAqTJQvb7c){;EeUEc?ED7{5?NoXg`}4}6LsdN9Aus;mp$ zF}z&xx?V~T9A#lYo4;xmsHc&-iE^6Y_gsVk!Cru!`!yf}lfpOt<{BooYCrkVuZv>(^CRr4~C29)HXk@S4~gHJR( zy^2eqzs&`IXjMKA&bVXiCo^2cO0=NrWkBV{k8()Q-9nxC=oP%?C>PSPl8dYZ)8P)XHbp2N?b>^l%)Wb1czGA8$Q#!N^DB+~&)UlJ` za{a}1Rfo&7Xb56<-<)z*~0RTKny3&+pxf#>6)8?x6rrW^xM73^Y?m8+4N>S z1Z61S(PYU*I;$MJ2M;y$=8iTHyq3X|3D(nlTrI3onC!#_JldBx>n{7=Dx!Wj(rUHH zI)h11`zmDnB0w(ZQoNz#o#o>AXhUd}MMx{}T{qRuuW>u^0Bfy#j)(TLD0Dyc415tD z-NzqXTC2QiQO->$7M6vxH#^-nAewW{7+Li=OfLW2ImDiR5S|$}u7L#;bc|o-_5LUp z=m&iifsO^{WpdBeJ{vvUjbuLMxB|LK=QFAzS!h}_@}sD$Z-e9RMhMR`OH3Jyb5cjz ziYRo2f_hH6sC_okdFk6}MBOK4N5Nz^EE;ng>yW~})T8eboq0OuoC=!6Qeiuf&AOu- z2+^7V$474Jq-WPJ)0vEDCx_sGDjjKHKId4h7Xik`6X0IARA53V;SjH0%55=1&O{kp zSajNBRw9l{fW?T-9VuoNU4Rs=dR&Qy7&$C@s#EBr>92EptG_G2@0PmOhPuR8A^-Fv zFyth`(XNXFGt6=6z1;g;8^az**V&U6uMI`cFK5)_=^@TxSXoQ?t}NLWzDgGKO8?r4 zHTQ&8MBE6WM9AO*)hjI$*d$WlDZEUNiXH!{*8ERRVd%pMj_o(s-x+H;;On!&D`BId z6~{vNXuyWde2V%{xjqo_cjuu%aVeR9hz6zDH(&i+`3iO1#&`Ci3Y^NKA62mW*0IF` zZ*HyAh4?V1zly&pAVK~y$z#lBB>qyPcIMe{;Dg1w@2{>Clon0g)FXJ`&IsNkD`ByT z3+W6+`;~6g^AU5iB_PsgYsfj@Xe9o9pLq`}GSRz5>}4@YVasyiWmS|b)8D*)<@<2M zx!+R6m5M>4JsOexqj=duPyUzjF4;zs#-yG8Z{PucaD3eeI#fSfMk)wbmjOGgovos? z8&(n7$!5{I`H7!8mG-ijvSQ;aa*0%crY{Y@x_P0n@bp%`@ zQuOwzCZO0X5T@J}-S0{lZ1C5myG(IIw(q;}*INGF`1cVE2~vfQ7T;8q<`=KOE7J2a z4nHLO{Af6Kn4-J6n|E9eTnf59-SPNKH#ze-M00ck$C;4fQY%`zbZkMNnKe)Z@KK*f zC`ro7MoWyu!W62|-iQ3INO{creHEU{jXt6wHH3BL6TgNGoz&QO9IujOM`u*#fL=tsk z+@(xqS9k;o)clUKXoR+!vm{rx^8}02rnNEmpF6u0X-^iXViM(TzNX9xx_@BY`#akv zgj7en&b)U6j8Wd6IuegONji0WqH3r>`jI6T`7unOLhIw1gwJfvGb%eM;Q6PLG;Oc^`apb8 zrk%_)ITq4_!O{}P*O$<^#b9fO=V^!dkbyG& zn{&-mF68_HWdXhrTM<&N_4(Xe_jFRlf z0AiQTzMK%GpW5NvLmfRvm zx|u@jbIhvQ4}wSKQC{8eiY*&QHpQZT3bD3>o{wVYa@X~KFDfXzRp?b(Zf?FrMlIi) z8n+itP4+G&r5}P)bR)6;pX!g`I|D1S7fW}U#WRFBoo{MxXBD+`J=x-XqvG)RX@{E6>Wt- z5qHqjewU-<;O~~XS+|f#>ua>ZT$2uFOQ;)L<9O1)6fW@4QbMtn(r{4Th6@-f`Xjj_ zJ%u+{N(>QNeyNdgBc5fHTu{9yxud~(?~^pGlA?22G8{r;YVL_8t`)a6Am6#K+j3}% z62kP`EgO0@h&%!_2x|K!Pl+ks>vd;-WJU!_HMi>X5nU}c;w#_J`<)oKmq9d?;v05% zR~SZK3`Q{-6>;@+vS)?k@3bnh(QfuqKDhecHC@*$Smhc~^{pjd5Ni^T5tJrGq!vw2 z&u>VJ7ob#~KLq66_zr(rxVtuY0(t(bjuo?S+Zj>UF(P5^Zfvj4{Rv1=_?ID0LGQPxXgWCg)@ z{B$9dSy2zG8>%(0&AhJQds^$Jx(xmvLjV&{QyrW6LAvnS)oHj;Ct23%od;H?s;biV z1M_LLG)UFf1F$H`1T|R>0;`v4weI+(*VDM!Q#G>kC7u{GDM{j_5@TI8tSARDslZ76 z#G>YsJ-dCS2~AKkA{C=AePkkCyl2YF=Xb71=kHsUzIJ-a&I5svMRn8Rs}12r#Wc=5 zIFar+ve?eiK?!Qr_7~^hOHDKN|D4U(OBbBUscEXUug#20a;$447Cnf=YVbt0?sqe$ zK&B2uNLL`wHLfKa)=Lt*B*9l@c1X?ah*84XTZyICHK12MWncVddX@HImV4=KhylwM zPVcHzzy9aAo!9JGt_%0BP8)_Y($+Zlz+^gdaVb4{a#1=V>Z&%s{9h%b48`NG`&Pm% z9r@c*`syidZ!a$#6)m_$$ZZGb(vRO>N>82aLIy`AxP>j{%mTHbM?JgDhmJ2pLYL)? zI_7z+>tQr4k*UGd;KHjU|f?5DA$a9~Z zNayaKG~i+Fv@M6`(!v5et=p=sx|be~x;cZLSnXX`r_Pn>X%`aVTTEOfe zv5lApfF(IFvRDIj0n?82o_moCd@h~hQUr!Og+~hY?-(Z;ChsXPf%RWg>s0{ zTgDs-|bg@X*=fz?{9c0ZPW**ng`>di(5tRBsoQ3GKvbp4z!AuXD-Wr^^ zIKBE)k~P)3-_QJJywvQ)VObg(IDp~?=m8MhXOeKE&;A$gSzT9akNu}1qH7ZSAfn55 z83@b>3)7yCd7b?|PW6eQDz*Gp%)k-E?gGk8nF87i;OxqC#JXnBkb{uw;n>!&I7t(1 zb0(Rof#BT+SRQETd%S?;9%B}YzLciV+@R7SYl##B>T4g_IJ2$T)TE-Gv2R1>x~$9k zk$Rro`!)_^k+Q${F*s#lRygU3$EZTe!1@dZ@JQmf@0--$l)m$cQ6>_l2wR@Z2C_{6 zY8bU*anuN+hHRwa+56+5LH4ni=d!KzZN0_RuQpCGqTRc8kiK;b4A>O`M*1T;oz<~d z+SbE!sj*&uWTY{f;4`#ii6S=N*8xns^TUHQ{o6S&#z_0{ExoFhwpHh7ESx~(vwWYL zX%~f3eErRN``$QJr&sSPNq}Y;S$Op`V=pGGc{MN!5i{e5Hx1G=J6V$D zZTrD_ZMC=&&_KeBnaE#o>YG@o<%*Pkc77~}h4l2U4wyGonin=ZFS}uYG(9~|C~z2; zNb~|eH%{}5i|O0D2kF)W3zm5&z*Gjo^7>4xn-9%4r!>}%;&4;DMMOw>dMA6yYLgGy%#3D z2$T|-nmI;ou`i4nyAi|#YqSIssD&NlkXvXK*8LdP^l)XQ|0?BCCH$y<+Wn(ie|+X~ zCG}hZaX^D13374xhcjb%U`P1=U0X0p&pkrGVuw7)t9PKl&(f#~MmfGs7}xx4IyUp3 zyryC&S|vlY0n&d$fl-25jvx~WpKJ7a$L9irsFrc_%>E&=q{Y|FMQ}#iq%zbm#sXj% zP2zbSJHC((9YOsx%s@f3*l0Nw)PB0ff>hW?nP3#LqOzV?7H4kE8J9SLpQeVqwMm`< z7#c!`(Z_9=4TKX1hz5)^AljCI{M<^fN$5ikYHSy*Boj{AB3*QiybM_{Oa1=TggZ|Y zbY(v>_npgt0|+$uVN(Lcs0|i6fOO^75d%m~x(_MptX}dLN-=uX#|rm2iGxogeH_oG z2>~^cE(cpUAdja%r$H=Hw#D8?qLY(#CdfgP4ou!D2ijlz^<(KX8}yQt+vUY3?fT`c zQSoz9nz0pK4B5q4-&9~8dsI>kRJn2|m-0JH>B@7X00xncP*gPbcOk+wEy<&6Xd7o zSI#WRFzms+Hh$3sGxjJWlk8U#S+t!Wtka=8SHvEb=-lOTdgxDc>EC*j3Q{G6XL`}A z()Vs3rRn?=w&2i1@X6DQ;t+{h*OHY#O9HC<%*xADUUu@0;{Deeh6AqI-MG91o|v9Y z?~3pvf1FSM(rXRX=A8TP9jf5_5j>>|g3Vu6ERVe!{p}`woH)5~Yz1!SO|M*O7ZFAs zK!G)MdSp|bp8mLAqDiXPAbkFElkUo&Cwi**j`fB<2$)pAS~&`$+>GjZ=v>I2P9F}g zh%VI&DP}m88!DC|latM(n+NF|w`qZ|A)GPY#YYB~*hqoc;)7j^KwQGpm-zG{FTFY4 zc!ZA;K$cSXoNxxDca8>Pl^*(NoxZtiIbjGsrLQ0mDXqmNI4#GD2~@5jrFdPD2(LNu zZ#tx}w8g79Ib)<|+Jco?KUl566NAcMqe=x@xQye1;p};6BLT)yBu0*S9XoW(&rutb zQ8>lpvjgbP(OU2_@_&)kHf$^B6#zOK!Tpr!Rk9GW&c(_80xS;{dqY|cY@MSqDFXKx zz!s4Fw|mhDX?euiK&BB?VKipx!cWo|`stK2GotOY&c^!VuOdwF*MBFk0k*CvIwt7p z1Kdy+wws+}MdD%?Rm?v4(Q*LefF@(?0uzH)6XT*sC11C^8S(Quub}#MU!Cyp5mnYd z10bWT{Yk)L@EqrYguhKN4iL*2+otog-k9;8-~@WOMIU$~Z~W}9IKe5B)EnLjf7Rac z;^M1XF8>T^^X+F!ny!=!@Zob%W{1sKlNC; z+j`sRad7L;m%gZ@=nGX0s)CpLNqSB2x3446CxO+>l#qw2HY3|%0pRU zmf4w|?bq~UrhED^xBK?J=jHd+xpn(KyU*==y8F)3b^G=?w@y9&`s=H|s{Z<`ju0_8 ztvZcw27xs&Jy#0+0N#PnbzNwhCco9;;I({eZ1kA&lZgaDpiNHC`xB=|m4D53a{4L~ zG-~|#g%h;Pecu`p~{;% z$=IhaPdc}sn`rjD;`jZhpB1T8vVpOzW*uO1H*UH^PhEVb5~2R)drw^!b~4d40fw!B z?a3#fIc}$nMb~r0^X@z^)0vu{6I;ciuzdQZ1Wba_vW&Z5;%Tr076ZQiJI{Gjg|Epk5)g5rBc&Jx?whNH1(m0PH?f_Tj=@X z=0t;U6A#O@n)nK#zwoZRW-nct`iG`Z%bs{Hbfb|{i35g_?cm7^FG?lsuit&=ZI!gb z7HJF1H0v;+t)Ctr>1Du5p$O%R7cXWD1%Cwa%4(Xi>HGHL3tlj>j^^K7&Q&K+$+qr> z3B${nnVEl;(8Z4+&ji|t?5WspS~&=`CCkvhI5INwY^yNJzfub2!R9eNyWsequjO)S zF*wkt9yMHD*AvrM7lgqYX3yCWqR|5!dFa&G$ZuCasl-#=v29u6#OU$rFp=)bmFbxU z0l8aOZ>^&%=|aIE>(NT2*U#=C99kz;`{bD`Gs3hC5YmXi+K}NdiOTPMXCag6aq`VX zTeC<}{4QUa7M4XMM@yS8ZjmTi~ZIUJ0wBQ7|`+svFM0l5QH`-f0ZcG-eCWjm?6@gJDE#C92z$ ztpk16OAO2U@}0MzZIS%$-WR_AjIa}l$gQK&L{-vi{E{CD4g;J*<5Vdsk&U^E1zE(}UZ z^hmo&Oa%Ll@sp!}t}^Y)YXc{$siZW;Z|#B*W^Qirjp$F#2sCO9Oo9K7*vByN$?@^w z9s72bS5qR8xsFck18D2-_gM{9Qx;YQr+D}$uTkY(Pd3>Px2iI(zSa=Ik}obUrVB+s z?_=h6w#g{9Ix@$JvcqDhg-;Y$4@$2 zo)Ad{37DFhyWjVMkDZy=eWcth;b$gig~`@}ZxmNei0sN|XJ?ZoPi&q&-8e~zlAsE6 z<=GjbV;mT@LsW#2Y{T{S&4E5SUR3Gr>B{klnkq#}0O0>R!|529rho&{*PDwHZ`UwP z3)Q=8I0ittm-4D7(>-hHq|N(S+v}7-N7O``h4TeCv9my}iKa(oTTQH8en<%$of(+U?1yWE0A{~GL{#K(v=UN9gpqNh zhA&$5=Aqc1Y5{}(#?t1A93ojK&TqSKpy;u9rS-Hkq&Q zm72xtP~l*Z+m6$1+grmh?MqK#klLx6o}HH}Aoi$o%&|*?mA>PSJMJjt^QHStOoTao z+p8n4wzi7GFgOp5zzI#8RC%#=cmo5;<(q}|yFJerP==~!k*}qaBQ8BNEld!gl0~XLV*!j+m&b z26<2+f`LJZhB-%KYs=_!oXru_PCU;}Sf8VAzFNGK_>N7J-LqhjIg(=EwSQQvF3;9(3Q<15eC)`+-<(M*XRJpFw+3BjS z>w56sPNusgZAYgH{w<8jhh`Rj6NA`4<&cSOg$g0SQ4I9=h~A#vhshLaH&)jws|;jC zs96iiU|R7xZT-~P@Bq?m5D3lkXqhwHC<}jl;rhKn$@zjDGC~oS#j4@ZaV!(W|Dmd$g4iizW?TEVsd6K)HIM0iYamB zjA2amD1ymKMi2$)H!aJ~{59s&Z{VEzwitB%ozgwOa9tEIPNTLX94vO4Vr_giu%s`w zBeK8Nbo+5I;3sKbK=pjLxXr?rm|t9yYr#=R&h5~ym?4oMO#AI*g4<0ZN8gGEMAZc(R;etWM;HI0Y4+Q;== zf8uSS!q}H{rlujg!1FZJx|CgHLd<+%dJn)1!+!v57MV=C3yRyCghaxsAcA;+Y-=5O z4^J=&)`mD(;uNmi-FDG2Y>$~(9nIpKOf#R4cR4g>I`=&}-SbMnOU0JsI{ThkCmAeW zU#>!d)`o^STCVzr<6OmJX26w^*{h4uVjV&#>LNKGA)Ra%an407BXeBW3ijsu%K9A~ zy=`o6qKRxALNRyFl2!)>j8Ul(0tfgPn*&2Xf8s>XlAg`F1ut!^Y~0NM5R3}N?A$eR z<3`gZ)7Ua^Cm~u;P!+0FVRB6`CQg6}{{`LM8%R%Oh`qAn=5)O@l*whk%c-#ki>auZ z%XSJDHEaPxYgimhrL<&(Y!=a!(~9tRn39m4hZ4>>4z}P&(;Tt!UQ*&NxcV3C^;MT zff6DlP9arI$lSs;vAVh*TBFFOfabsje>MaD#n2p@F+kB!VTAJFY?O)_)P@aviLAaA z^y7XcolQLs14B(N^a3dZFhm?3Y2PMLtc2%niR7o638{M#*Si zQ|ahgoAOgG7*%rksAU+MTFdD*{ZVLD^XjVTiF!p6%ehSQTq`4)R_U~4go=OyGK@y1 z4A0J*i=|S+-qez=TTDTDn--Rl4t$UIDHJFP)3O(7x^WCcof@9F6=*4NjKLNaNjuryRKP2JksUQmVoWspj_{?=B~OQnilzNg3Q-PrKf&YkmL zjKU)weu)IOk|TG-fiB@d+f75!U2Y=$DP;(+v)8Ym@eAGyg%O-Uw>t0+z@J!z5Ws z{#9LT@(PPC3odhGcgXBks zUKSkBL^_=mv{9rgZ8x{Jep7Js5aV$*OEHJGA__6Pr4jWxQh#uKeB_a+;af67p@8Fu zq1lB$!yMq(327>N3H9-@k&e`R%b4M=t>@)n3LN2|ba6Hrq!o;x9JX=YRqNE05efxZ z{W25D+ya*U`&f%qr=P|KR!)ZEa@SyYmB+3Lu8N};@sA{h@+7W2pm@6X)QRCocS^5; z5sC@0ReG~rfTuobk=n;W%B z3sE6~5i>Ke@cWr+I*14ja>4BF_n(lNBJ)l(Pt}Qcde7~+G+hEKI!&q}KKS~kYELpk zFBXdyVEAG(VssB%a;p=J^In<*fTnF^#LE!up!tfTm)0_-o$UE6)g#m((=el(-01M} zP*&^Enb_cmB$o}6?5YdMOXVp z45&g@L{Y4?NqVfoxiyAJ*hWU2$p^2+i6!6!ByzVq?4V(dh2NNo#bVTXsb`kVh&l1N zlcTYlqBCX@0aCRS*ltLY<8F0vvq83sG9co&sH1d1ufYp3*WC`svQ<@Ay!4`J%!hh0 zr8(_lUKF<+iHMNIco7VYT`I3d1)|m2TiwE&5;kG7_*Co0iwBladrZm*Cce6Mvs=pC zln#Pc>9*qrux$p9VnC&RfqT_&+*oT$KsR{OxJ@c?LrBC<66`Fl>An*@L{7)ezVJ3Uqw~T>l=M$27JXc8lXeF_!=ViEv$10wKPJfhE9Ks1P9o^@e@y`nQDXt=(K(e+_Ga%(!@IGTd2LA8Q|f^Pq5=Crc!d z0icCVA}$A}zNMK}E`=qfj}Jq12Pa5xdI@nOzkc&a6)d@FgvT8mgyZQlY?6`*&{J+B zfjwsD%s^ouR^4TNd1UHkO)gi%EpAl^fV*$i4IDCOWdB;Yk48GR0Fu*((qQ6)Sx*qYQ&ingpBuo{h;AGl-1U zRgpB!e6A#{ejIr^l*?rP2~8!ONTl#R%Mn2uH!-AHtjk4-p}mK@N}^<&uYC+GN2&m>^f9 z1IVyYi*~W7Ct+fQ-US<1Ol(}?rWIdH8VPgE&`qonc!Q|r98FWvIfG{b4$CrJ6wk$$ zN(YL0=-qT2s)bD}*tlW@cs&Sq>%(vzAlqS)<*<#?6*^E59=u^}ZsttiFMuf+b%+3` zg#`&P11m7T1z`%o&uYdKFu^l)Psa%zD6|vUqJ(0WIOE0d5=XSl6B8abuy6hrhLA>So!@);vc8td7+LP%DcD9bi5)xz6P2!jE`*cxd~`oPcKCSM;p1V) zkB1(~yZi3DS@rxLDg#)UBX`7s1`f21XHqY)VRHPmqn8ju{i9QHajF*rhL z5#tcOw?Nfp3@R>y=x@O?nPKK2$@Gta#)kLBNWU70n8QPx+p@ z2n!}c32c(#Mi~osQ)+rHwb|5Dz;PHZXTX^KQZ3+MrJU-$621G)fMs{$N&be+@iqAT$+oQ3mHCtEsqE7qO?Q3nFaWA2yF<@$dNJN`e4 z=g*g|v0Txz&hd|PQ?j3`3vLn1q*I|XYBx$dcuw$e@$P1RQyw8rpn$m{G$aSA!9ov7 zWYVYL0@0r85}e6IcR1ug$$X= ziVs^p+9Wg&z0hIx;`~9j_HJ;LDr+!{SClTeFMVu zb)%!BlT8D(;Tfrv_0j;{fj&4ni6hdJ?*teB1Y-eBS*voN10BUZ4|q>SP-3=0@4f}) zS+Z27vfH66>r!yTUm;i|G$e57*L@D4WiR+3_N9Jwuhi`bh-V0MVbs_V4=$lHJN% z{hVcM>Z-ej3J`?(ZtNTR136q{mjDp(YuR``8%!yTk7VqQ+*5X1D2)<07o@2WO)dft}U46=w|S;@zK%$-i^eXGL*qUKe=c@ z{roXU`#Z>ipCbq;LkR@FS?1)4;f{_G*^RJne9kujU!7YNE@mwRh8&2pKY^3WH(*hB z4?eX=PmPb^d#t~&t9JqJRM@zlt*+h_ODn5V zGODg5#6_8%T`eudO2W+E(Mp#gOHd649!iLJY~5o9+LthYhioJe_*NN#*K3^kfs+cY zKqTK6K08PDgfkL?fK0+4#~4cK)hhmB`h(5@%Ab2qof!JhdOCRAFG0aW7>z=Izd7jY zuf`((qbw=A3GNG~<`70VT`dml3w98{$)6dV9!|}uviW1nkspbQ?(RYWidUaLIsAAv zuLuaE0*0b^xzK}uVL{nF@XDR0Ja6g9wdMe~3=|0pfPn*S*^N|0MR$V&kb^iu`D%`q6QRFX6z985Fep?C}h%! zk-@=1ZbA?`#|*G{woEhlTY`a-K}iQ5J$2-wae%y1l2!2!GL}7WxSAU+nF9|6@=_a{ zrN>mp*weRR4j9Q_!YieJf&~H^PzYZP4-Y=)6iuqo`*Ee!IC)0ig**(w08H>tPTBV( z-#F3)efLbw&i^vg!h2>s7)J)b&w@yVgZzY*z)EB$j=X-L(jd>sJL+o4O9>AA!VUPq z37dpQxAH_D3as0io_nBYxlK|@dO`F6UJrNV_QnCpJ63$T?$s^ev9|;dDpnxwn3=zR z4_@r7{Y;2vl8g_!48G9y$nA{-YC6PokKDWYK4ELQg9cG{o z$Eqwmz;s2) z4pcq?#Z>S(_e)6eM!F&0Xj6FP_QnD7jyz-+At51o3%-)K{O&E;1Bs;>=3{yxzwtF} z>YpT{z71NP6FcqQ;*X8yot2W<+gDwOEZ7QqH=UBXo30-2zvE4)=r4{^4syF>|Y{LH}w$y8Qqp93>&+?o*dkSkE z@f}N8$KPA(rwauhk6GmuGd!lC@u*eVO;AVx65S*l0Nx#~t}8~i)u2eE?Nc!J_(#0N zFvpg_E%iK)Vfgr<7#wVP1LQ4LnVk~5yu6AN7R#qE^DsfQ7I~;3u4?>M0RsTjWnIP2 z`!Z131aHL*-&iarJiCy>6eDf8IPRe*_XunRe@cOZRzTd+e`aD_z!0-j-riF2sgiyc zU4%Th6x{=6XtJ^;2+G|AJfu9pW2uGeCNO}qXgjwQD7ej^Mz@QlQo_myw(mP>nAc@( z+j^;CB|m}g!z3^W3Q7#V`tUEXmr2?8>zeUaf`UwvSKKGD`}_3x$>*Fc z1$Spn&0G~**!``#0wooyk6)Eth8!fwf9xZ=XUx#a?(Z@vSgOiqUv?od(YIZAJ3qi0gcaGALNa%En(Dh|a-6qM&JZ!VM(`7Rj^Oboz}DoA2;FAH&x2ehvu| zU)Zod9z8K6&yZqb-R^h>)%@HwQFJ(kM0K;$E8~H3w@?NGB?3oY;RGTCL^ntU(6xUj z$W%!SzB^u?9K$^vG}~9ez!-zpxEa&7ZnG`>gBV$y=e7hTHFyO+WNR86?8WS)A7?`2 zsH`qO-_122@owA8gk+Ov$JuyOFet-Fqm z1OJma6hEn3B8P)WUyk*YSApR_jKQc8N)T27Wd|I`AWU8U2mvI2${J;WT1N{c24yRj z)s8FuDC)x~dZ_^pNpPgoXysLKGRa9O$ssv?amY>Rs-dBU zStgG*=6fWP$s_=R_edm@2Hq0^{YJv@la6V79)M!u>zlqwg%@@+;AIT5$1Hn~~#VRVETesVdEXHy*0SNPv5(MJ{jUc&k z!@`>)SM|JQ=>$r_G<9nWFQPGvIx0;!iiYl(B@92{FmerVI2YJ<=yEVrL2fqha73P) z@IBk}0X83!$*+ECN!D@vVzJL37;t=6K9;M4^2$ literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_close_click.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_close_click.png new file mode 100644 index 0000000000000000000000000000000000000000..ddea13908794f6ca1d953b10063d779f101f4d45 GIT binary patch literal 1194 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY#=yX+^s4zHki(Mh=?#UpD9;?M#_4+IEGX(zMXwA z?}~vy+uTsgZ;B30;u=EX741zd%k?^hZTRL0yqUKmmq#yAsd(e5MH^-p2z)i z`saFXyL8TLt!#DLpXc3=OW&+9-2GdoHYYk~?z4?+{1+OTM10+Pho{%!bIkwS+24O; zS2NTv`0ygQS}c^y?b-wHj0Xqz{7JTxzh`>hFe&4WspD)piFeM7UzSK{?htdeJsT@8 zWFWraq+pr&ZqwuK-_Oj=_n)}M!PZW6Ub7X`a`Wf zTdSc@=FU$spY=Z3^U4ahiLak!+G{y2otr6rMqKPavwFh-pBd^)K2$IF5a8YB;cIR3MG->PEp1os1f6Jjax#zR=Z5(aGn7kY~H5gSFuzZ{3aB{H^$BHARGH*!65 zQs_F@&KLHKaoxq%rk950etS#(%J#iU>osvw@ju$Y>CSUwBg;;98*g@*2M6`lwM3YU zv!9>-aeP;bM7!~FIpN?RxT9&%_iZXxfWz~xZ>+J#BfyJ?ZH`u#Zilj)lZbaf=Zuw$BIeH8e4*3H zpj0|%$>QSYE;^29Pwi=M^J3qdcRinb-<_B2H(t3zJU^vDC;%Q3K+Xxl1l_79O$oMp zF5iorZGQLTH9f{X$4qs$O!V8$I+Ne*9p{m@r|t5upXokPwM%N)^F3{a(QX0e>@AlT z$VgQ5zIqnAdtd0gy5RQ{PINFfnFTF+c(s5tzG1(7qBnHx&qZ|LLM7xY--)x#y-OiqrT0U0jA3mNCN zJ$Y8n#BsEAf!|9uvuiuAZ51vGDlj}<{an^LB{Ts5 DqNe7K literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_close_nor.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_close_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..71b993acd027ba96c6c4df956e4b1ecc14d8eb75 GIT binary patch literal 1227 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY#=yX+^s4zHki(Mh=?#UpD9;?M%sD0IEGX(zMXwO zPuNi4nDjpzm&?W;AN2MLs#r{QzQk*V$3D-)DLzulTQ^Zfp=ReSHfJ$Ue6-Q<%g2QQ}1I~}H}Rod*nIx5?(YC`4ezlU?p z=lacmz|XZZJ$|y+#S9y{^CiuuGq!KvKEJ=O@7@OYyA`@EJbN#GsMk2);WhEl&W_$K zj$Ax4g8$+VKm4Hi^!?$JGO;l+F1d?ZFIoD1OE9Q7%9lF#jJj+lYt+J$NoS5r6eL^N z*xK4YPWGSc(8JI>F@0y@lvUBQZ$0?&=g%MYOEVlbZqJavX!o;uVu@JaSuQPdGjPu;nkZ=*Wcm{7qecxvE=A6t5)OK zXUF{xaM~C!?NGeprM2;_-}Rt|IhNbjZoko&W1!ww;PZNme@SuG@zRx7bU64b_8vPI zbZCh{R&>dIO`#)BL5Fs6B;F5gx)H(6{nXXvhWPTE(mLi|ODp8Mukx0KH-ww7c^PxwNE>&N@4JhJ{R7rDDm3x zFrTLGESuK5M$xVw-JG9$D(78NdQxb(aE63d^f}`!pU{a~LQ{kf?|q|nO6P>qvQ~}B z3xo_~U1zeH#?38Ocx@vbw_z>Yu2SC=A(zb`+&MONC4Lk*>Mj2IQ**9uDHAXj5J3Rr z6tVcsma}Bv)b~yBTt@Xr+fyGj>MJTNp4sZ$T$d^*ZB$-fK3(KHOWnr54!7CmqmE{< zam?0HnY4fQ#9wJQ7U%M6y$N|}yz1%lG9v{?qrLf)%vRPIJ8(=8_Py%s@K&j<<*JB) z^}EHwwLen!?%X2oAhW@BdDM>tThq+-4G{sp>e)FKai>ev8zMF=y__MvFY)e-nw6_g z+8nFWdFjWvae?lF9W#B(`P!P_vkI`Yub4f1wth);+};Dvtd>-yO8>LI`sZ%rmi&qJ zcMf^>^2@ohsF!K##s=Lz{j=uZqaQzh{Qmm&>-$+2vAJb-O%gnu_ZgZ6oB34TuEgnW zp38WuQBf^>u6`!>g4%yo>{pgs6C_ZEgv#ao)m+~*xFwSQ5$|*NtU2Hv-$#uf4-0~MQ=Jqpk)z6g`wYm|0 k$7$xhJIEpaAYSnU`##pqTnVQP4}wY*Pgg&ebxsLQ02C|=NB{r; literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_distribution_network.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_distribution_network.png new file mode 100644 index 0000000000000000000000000000000000000000..53c12e65631d6501e104d429115dc12d0698cf14 GIT binary patch literal 4113 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 literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_more_nor.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_more_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..33384d151a216fda2dd7e6547123240c95e20eb8 GIT binary patch literal 700 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY#=yX+^s4zHki(Mh=?#UpD9;?O7uNl978G?-_EiR zIusz#&Z+t0i`tEV3h}jx8ao=UFG!da^*$+i;q(pH`k0dHdQR(D>nmoeSj5lTp8tR2 zPoqlDdqz^cKW3bNKJ`@e+A#C5WiO8{JMsCC->0g*|IA{irE*V}bYFZl>0^!z&w^)i zYi{x<%Np1R8b~TNo)J$K-==eV@x78=id~B|p03Z14h>bj`8(?zBO}KjMaH`e3Pq=# zTYp2#y?FP`wR;{bUkH2sw(NJRoAhhzzXwx#3*Y6k-<(u=xM=5`Upr6wR&6$RVqg+z zU|{(-;lRhQ*Z(h@7rOiIySuMv#nnHa9Cm-k?6c1fANP7U>+_E#-#C*F{gVBA^!8qv zT*GTMi|vlhlvid^U|{5MfEWQ{#!PegbUO6+;cZ)2^Y7X<@$-$4W#2k;yUUGc-ubm| zMgPlL#y_8C9o1M^wGhJxz4i0w*zrk%-Hzr4B2jCd(JZMKLkobp00i_>zopr03#SCG5`Po literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_no_data.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_no_data.png new file mode 100644 index 0000000000000000000000000000000000000000..64ae97863221ce2a2fee7ba71bc916f3c6acfbfe GIT binary patch literal 18281 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%0A_Lc)?=}P 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 literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_no_device.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_no_device.png new file mode 100644 index 0000000000000000000000000000000000000000..09d4a10f06bc159eebdae5f1fdaffd968dfd4715 GIT binary patch literal 36795 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∈|G+F^qP7O^oFlS~p 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

3PN#t@Q4SlA%PmLBFQs$laLAY$<+PrnO1~cL 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 IM6N<$g7;b-ZvX%Q literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_set_up.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_set_up.png new file mode 100644 index 0000000000000000000000000000000000000000..76aeb0cb8b7f3b2d6afdfcdf8a33e5467662e902 GIT binary patch literal 2719 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 Z{{SHrp*~$r<;?&9002ovPDHLkV1m10^uz!F literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_success.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_success.png new file mode 100644 index 0000000000000000000000000000000000000000..e6004f904a165b6cc9e7915f3540f7706536a250 GIT binary patch literal 14604 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 literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_uncheck.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_uncheck.png new file mode 100644 index 0000000000000000000000000000000000000000..ed5d1847c40819b85df04ebfa99645dc88a11162 GIT binary patch literal 733 zcmeAS@N?(olHy`uVBq!ia0vp^S|H59#=yY1>B!HsKn_c~qpu?a!^VE@KZ&eBzC~(; zXPU1sSRn@kV|yk83s961h^2s-fq`iO6I?`V0W*RPlKg(D-4LiGz|+MsB!cs8q@&** z1Cg)aFO*&8KENBmA5iLeB4yd#g>nsEn>D^L*n03ctk4jWVJJQBW8{2e3;PREEAbc0 z4*a-&{;In&$4X}z&cO7~%D;dA{Au~^f0@V4^f~7x!scCXo{}fJNT@GrPu{I(qAD{^ z2b`bx!cC~Vni=-1dDfH7%$h4U&nkVt;hf{EJ?vk1$ZQQifO=$a>GWt*(juf+NC@+WzIwGp9bTJ(cyn`!|D^^!xSBQa^5RyjmP&JU`Fm=slO5uC$m{ zdq3aI;WpKicv`tLJN&SE+Sfg|?k=A4;`fI6dz6&o3SUPS&fl>;*ZKLK#g$9BXCCFS z-gZ}d3wM;BTlg+B?IV2WU0yq?pUU+x(_>?uTId=Os5GZ{R@>#E35%93aJHDCOi5|`=e!wK(pug_N3H9$h7kBEjdDz7+ zEccvrhV$Z0jm_;Ryk_0!yYywXe!%p)8EIxEP06A`!o4C)vbQX6*J-F6WRE$(`ToHQ z)$@kBLBb8CA34+u-lW_uceE1XU7HnRq9qm8c%kB>bZ=K%n1V^%AGiO>u5YJ`xb;Ub zxuCV>=D62>y&Ky$FME6U?T)BD8{3x(ZmO1XXZxG- z;+zkIb7J6}_Y#l3FZt1`a>ds=>vg}fy7sTce!2OZbCU0OraS&;;C%PoiCH(CAC$&C MUHx3vIVCg!0AkuYO8@`> literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/drawable/icon_twins_wifi.png b/composeApp/src/commonMain/composeResources/drawable/icon_twins_wifi.png new file mode 100644 index 0000000000000000000000000000000000000000..bb76a6d367ef192701a97606f40d489678f757fc GIT binary patch literal 1735 zcmV;&1~~bNP)Ae#R#dzUB&o_ zASyIMixl|LT3WZe<9DW=+q?I%y$i({v$xsK%z1os=FFKh=UyV0M`(I^o0Q!5`Do?W z0r9$`m$%DKEx@f78fQ*u#1XZ$BT+M_Y?W2_Y>{cd4bm7(hnI+pjX08Vl^X|za`5kN(Z^0kxmzPH;N;M0u%Xx!EeC*%hf=Tg!1@` z6k)plu?Nnb7pBWfIM4LJGn?R<1`{cQV93y8C5$kAh9o`B#N1Ny?^-BS)Ihll$~8>q z2oezH_BM%6w63vRH61cb2?|=pvy|piW>nG+ zv$9q?vzDWs(VP$sGc@#iA!6LeVw6WTJ=HpUz_#gkd@M8n?4x54pXsdPO5KkAUu@s2pKdaOxwbA45#HY92rvL(4=^jVn83A;(2kyNsJz3n$ZJ zqMg7RVI9MAD?oWr7E^={Tj>ttQMe<^f$j{hlRsu2#Paf-6q!~Xlm(*^wLg=Wgh|-d za+8eeR&0`2+{c&shbh8sm<>EL1P{ zYdHg0N{NdYHIbY=`e6R<6ZA0d)X%koZaL#Y_C=JZ>6!-3Fp8uK9xLGLPC0vYgbrx| zl#B0$n#6s2oT%j-f4rZLz-{>xaw=IVVDmMb>!a*l0ijZ2B0wt-X}K;IqpcJ4q48^4 z(9a+Ya4tv$TGJ&bmu*2tp}y@rK?O{P`yMfTY>`vL1@FiUM}~;9lw4hsydbS}H5Sy)hM__;+1E^XSHnLy(>6&o8=+nx$-frijN{<14KfvGB zV{V;&Cg}ut1tN{^3M~~MniaS|QPPQuHn|(&wgB%HeDnXu9vp~09F{ohYrUA}=wquQ ze0~r~XB;=#o@KOtu5^?$5j_DTGQKc$*y1!=XN+As zo`8`zY5=|g7>A*-Fw`i%b-_!KQyxfpASn-c%0_O8Tsu^5rnw?YH{wQ}i(@(miMj;x zc>vBu7D$(ZhR`1btshtV0kr#(8+!76wCB?X@s}HRBD!az=f5rU#ztucz#he~C=uux z@FH07HvC#}^Y5EVKcUg6NfyNKA4jQy7Y-W3ZwAIQVNeNp zm%`hHiDAGM^f!L389DT9_r2n@Ro-UwZ9$oHa*Toiud@nIj3a2@6n@$mY7jrT$ao@O z-zhIRJxX_DQO!`8?WBao_T%%3L!R^qi+31E1rv% zLohl@&6w*6*kRaa%;lrU!vWE1Fe=++3qs*3Lx6}s8m&WR+G3*pYu&0gIWJ1|0VbT> z0YRri0m?UwW^1@K9{PjI{F&726iaRvtAf9eZia_yg`}&{7Qs_R@D+bpzz`PlBizvkIX?M?=oe#wHzAYc+H@ue(0d8*CQrKY z&2-O3&+m|zjK$RDVAhWzwLKr3MK6SF#ju%?sE@_pg2lICQN?j`f?md9pRz{xY&3)O zCq8^mS_5}xqDFreHTth{lO{PR4@tl8ds=}6a0M2>6=7n$S0xEGJ>u7Gk=eY+=|PJ} zNy^jls`gP;hrA&g!*@3#KjK*8&y3%R^!booD|w0;GaJ!wsT0%}=G6{iw|XECdH_t=E)h(@zmn d9`Npge*m*iBvQ5$*N6ZB002ovPDHLkV1jPP7+U}U literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/kotlin/App.kt b/composeApp/src/commonMain/kotlin/com/yunext/virtuals/App.kt similarity index 62% rename from composeApp/src/commonMain/kotlin/App.kt rename to composeApp/src/commonMain/kotlin/com/yunext/virtuals/App.kt index 7969cfe..9c4ea9c 100644 --- a/composeApp/src/commonMain/kotlin/App.kt +++ b/composeApp/src/commonMain/kotlin/com/yunext/virtuals/App.kt @@ -1,11 +1,24 @@ +package com.yunext.virtuals + +import androidx.compose.animation.AnimatedVisibility import androidx.compose.material.MaterialTheme import androidx.compose.runtime.* +import com.yunext.kmp.common.logger.HDLogger +import com.yunext.virtuals.ui.initHDRes import com.yunext.virtuals.ui.screen.VoyagerApp -import org.jetbrains.compose.ui.tooling.preview.Preview +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch + +private val initApp:CoroutineScope.()->Unit = { + launch { + HDLogger.debug = true + initHDRes(HDResProviderImpl) + } +} @Composable -@Preview fun App() { + MaterialTheme { // var showContent by remember { mutableStateOf(false) } // Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { @@ -25,6 +38,16 @@ fun App() { // } // VoyagerDemoApp() // SplashScreen() - VoyagerApp() + var hasInit by remember { + mutableStateOf(false) + } + + LaunchedEffect(Unit) { + initApp() + hasInit = true + } + AnimatedVisibility(hasInit) { + VoyagerApp() + } } } \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/com/yunext/virtuals/HDResourceProvider.kt b/composeApp/src/commonMain/kotlin/com/yunext/virtuals/HDResourceProvider.kt new file mode 100644 index 0000000..33c1f20 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/com/yunext/virtuals/HDResourceProvider.kt @@ -0,0 +1,114 @@ +package com.yunext.virtuals + +import com.yunext.kmp.resource.color.China +import com.yunext.virtuals.ui.HDRes +import com.yunext.virtuals.ui.HDResProvider +import hdvirtuals.composeapp.generated.resources.Res +import hdvirtuals.composeapp.generated.resources.ic_app +import hdvirtuals.composeapp.generated.resources.icon_app_hadlinks +import hdvirtuals.composeapp.generated.resources.icon_twins_4g +import hdvirtuals.composeapp.generated.resources.icon_twins_add_btn_click +import hdvirtuals.composeapp.generated.resources.icon_twins_add_btn_nor +import hdvirtuals.composeapp.generated.resources.icon_twins_add_click +import hdvirtuals.composeapp.generated.resources.icon_twins_add_nor +import hdvirtuals.composeapp.generated.resources.icon_twins_body_bg +import hdvirtuals.composeapp.generated.resources.icon_twins_checked +import hdvirtuals.composeapp.generated.resources.icon_twins_close_btn +import hdvirtuals.composeapp.generated.resources.icon_twins_close_click +import hdvirtuals.composeapp.generated.resources.icon_twins_close_nor +import hdvirtuals.composeapp.generated.resources.icon_twins_distribution_network +import hdvirtuals.composeapp.generated.resources.icon_twins_fail +import hdvirtuals.composeapp.generated.resources.icon_twins_label_bg +import hdvirtuals.composeapp.generated.resources.icon_twins_label_short_bg +import hdvirtuals.composeapp.generated.resources.icon_twins_log +import hdvirtuals.composeapp.generated.resources.icon_twins_more_click +import hdvirtuals.composeapp.generated.resources.icon_twins_more_nor +import hdvirtuals.composeapp.generated.resources.icon_twins_no_data +import hdvirtuals.composeapp.generated.resources.icon_twins_no_device +import hdvirtuals.composeapp.generated.resources.icon_twins_offline +import hdvirtuals.composeapp.generated.resources.icon_twins_on_btn +import hdvirtuals.composeapp.generated.resources.icon_twins_refresh +import hdvirtuals.composeapp.generated.resources.icon_twins_return_click +import hdvirtuals.composeapp.generated.resources.icon_twins_return_nor +import hdvirtuals.composeapp.generated.resources.icon_twins_search +import hdvirtuals.composeapp.generated.resources.icon_twins_search_close +import hdvirtuals.composeapp.generated.resources.icon_twins_set_up +import hdvirtuals.composeapp.generated.resources.icon_twins_success +import hdvirtuals.composeapp.generated.resources.icon_twins_uncheck +import hdvirtuals.composeapp.generated.resources.icon_twins_wifi +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.ExperimentalResourceApi + + + +//@Deprecated("todo with ksp") +//@HDResource("drawable") +//interface DrawableProvider : HDResProvider + +@OptIn(ExperimentalResourceApi::class) +object HDResProviderImpl : HDResProvider { + override val HDRes.drawable.ic_app: DrawableResource + get() = Res.drawable.ic_app + override val HDRes.drawable.icon_app_hadlinks: DrawableResource + get() = Res.drawable.icon_app_hadlinks + override val HDRes.drawable.icon_twins_4g: DrawableResource + get() = Res.drawable.icon_twins_4g + override val HDRes.drawable.icon_twins_add_btn_click: DrawableResource + get() = Res.drawable.icon_twins_add_btn_click + override val HDRes.drawable.icon_twins_add_btn_nor: DrawableResource + get() = Res.drawable.icon_twins_add_btn_nor + override val HDRes.drawable.icon_twins_add_click: DrawableResource + get() = Res.drawable.icon_twins_add_click + override val HDRes.drawable.icon_twins_add_nor: DrawableResource + get() = Res.drawable.icon_twins_add_nor + override val HDRes.drawable.icon_twins_body_bg: DrawableResource + get() = Res.drawable.icon_twins_body_bg + override val HDRes.drawable.icon_twins_checked: DrawableResource + get() = Res.drawable.icon_twins_checked + override val HDRes.drawable.icon_twins_close_btn: DrawableResource + get() = Res.drawable.icon_twins_close_btn + override val HDRes.drawable.icon_twins_close_click: DrawableResource + get() = Res.drawable.icon_twins_close_click + override val HDRes.drawable.icon_twins_close_nor: DrawableResource + get() = Res.drawable.icon_twins_close_nor + override val HDRes.drawable.icon_twins_distribution_network: DrawableResource + get() = Res.drawable.icon_twins_distribution_network + override val HDRes.drawable.icon_twins_fail: DrawableResource + get() = Res.drawable.icon_twins_fail + override val HDRes.drawable.icon_twins_label_bg: DrawableResource + get() = Res.drawable.icon_twins_label_bg + override val HDRes.drawable.icon_twins_label_short_bg: DrawableResource + get() = Res.drawable.icon_twins_label_short_bg + override val HDRes.drawable.icon_twins_log: DrawableResource + get() = Res.drawable.icon_twins_log + override val HDRes.drawable.icon_twins_more_click: DrawableResource + get() = Res.drawable.icon_twins_more_click + override val HDRes.drawable.icon_twins_more_nor: DrawableResource + get() = Res.drawable.icon_twins_more_nor + override val HDRes.drawable.icon_twins_no_data: DrawableResource + get() = Res.drawable.icon_twins_no_data + override val HDRes.drawable.icon_twins_no_device: DrawableResource + get() = Res.drawable.icon_twins_no_device + override val HDRes.drawable.icon_twins_offline: DrawableResource + get() = Res.drawable.icon_twins_offline + override val HDRes.drawable.icon_twins_on_btn: DrawableResource + get() = Res.drawable.icon_twins_on_btn + override val HDRes.drawable.icon_twins_refresh: DrawableResource + get() = Res.drawable.icon_twins_refresh + override val HDRes.drawable.icon_twins_return_click: DrawableResource + get() = Res.drawable.icon_twins_return_click + override val HDRes.drawable.icon_twins_return_nor: DrawableResource + get() = Res.drawable.icon_twins_return_nor + override val HDRes.drawable.icon_twins_search: DrawableResource + get() = Res.drawable.icon_twins_search + override val HDRes.drawable.icon_twins_search_close: DrawableResource + get() = Res.drawable.icon_twins_search_close + override val HDRes.drawable.icon_twins_set_up: DrawableResource + get() = Res.drawable.icon_twins_set_up + override val HDRes.drawable.icon_twins_success: DrawableResource + get() = Res.drawable.icon_twins_success + override val HDRes.drawable.icon_twins_uncheck: DrawableResource + get() = Res.drawable.icon_twins_uncheck + override val HDRes.drawable.icon_twins_wifi: DrawableResource + get() = Res.drawable.icon_twins_wifi +} \ No newline at end of file diff --git a/composeApp/src/desktopMain/kotlin/main.kt b/composeApp/src/desktopMain/kotlin/main.kt index 984d94c..5810748 100644 --- a/composeApp/src/desktopMain/kotlin/main.kt +++ b/composeApp/src/desktopMain/kotlin/main.kt @@ -1,6 +1,6 @@ -import androidx.compose.runtime.Composable import androidx.compose.ui.window.Window import androidx.compose.ui.window.application +import com.yunext.virtuals.App fun main() = application { Window(onCloseRequest = ::exitApplication, title = "HDVirtuals") { diff --git a/composeApp/src/iosMain/kotlin/MainViewController.kt b/composeApp/src/iosMain/kotlin/MainViewController.kt index fa143d4..0a343bd 100644 --- a/composeApp/src/iosMain/kotlin/MainViewController.kt +++ b/composeApp/src/iosMain/kotlin/MainViewController.kt @@ -1,3 +1,4 @@ import androidx.compose.ui.window.ComposeUIViewController +import com.yunext.virtuals.App fun MainViewController() = ComposeUIViewController { App() } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 62520e0..f6f5544 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,7 +16,7 @@ junit = "4.13.2" kotlin = "1.9.22" ktor = "2.3.9" logback = "1.5.3" -ksp = "1.9.21-1.0.15" # ksp +ksp = "1.9.22-1.0.17" # ksp kotlinpoet-ksp = "1.12.0" kotlinpoet = "1.15.2" nexus-publish = "2.0.0-rc-1" # publish lib @@ -83,6 +83,7 @@ nexus-publish = { module = "io.github.gradle-nexus.publish-plugin:io.github.grad ksp-api = { module = "com.google.devtools.ksp:symbol-processing-api", version.ref = "ksp" } kotlinpoet-ksp = { module = "com.squareup:kotlinpoet-ksp", version.ref = "kotlinpoet-ksp" } kotlinpoet = { module = "com.squareup:kotlinpoet", version.ref = "kotlinpoet" } +kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } # kotlinx kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" } @@ -91,6 +92,9 @@ androidx-core-i18n = { group = "androidx.core", name = "core-i18n", version.ref kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" } +# https://github.com/Kotlin/kotlinx.coroutines/blob/master/ui/coroutines-guide-ui.md +kotlinx-coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" } +kotlinx-coroutines-javax = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-javax", version.ref = "kotlinx-coroutines" } #sqlDelight #sqlDelight-runtime = {module = "com.squareup.sqldelight:runtime", version.ref = "sqlDelight" } diff --git a/hdcommon/build.gradle.kts b/hdcommon/build.gradle.kts index a60d517..4e15615 100644 --- a/hdcommon/build.gradle.kts +++ b/hdcommon/build.gradle.kts @@ -23,6 +23,7 @@ kotlin { val commonMain by getting { dependencies { //put your multiplatform dependencies here + implementation(libs.kotlinx.datetime) } } val commonTest by getting { diff --git a/hdcommon/src/androidMain/kotlin/com/yunext/kmp/common/logger/HDLogger.android.kt b/hdcommon/src/androidMain/kotlin/com/yunext/kmp/common/logger/HDLogger.android.kt index a577676..256b23b 100644 --- a/hdcommon/src/androidMain/kotlin/com/yunext/kmp/common/logger/HDLogger.android.kt +++ b/hdcommon/src/androidMain/kotlin/com/yunext/kmp/common/logger/HDLogger.android.kt @@ -1,5 +1,7 @@ package com.yunext.kmp.common.logger +import android.util.Log + actual interface HDLogger { actual var debug: Boolean actual fun d(tag: String, msg: String) @@ -10,15 +12,23 @@ actual interface HDLogger { actual companion object : HDLogger { override var debug: Boolean = false actual override fun d(tag: String, msg: String) { + if (!debug)return + Log.d(tag,msg) } actual override fun i(tag: String, msg: String) { + if (!debug)return + Log.i(tag,msg) } actual override fun w(tag: String, msg: String) { + if (!debug)return + Log.w(tag,msg) } actual override fun e(tag: String, msg: String) { + if (!debug)return + Log.e(tag,msg) } } diff --git a/hdcommon/src/commonMain/kotlin/com/yunext/kmp/common/TODO.kt b/hdcommon/src/commonMain/kotlin/com/yunext/kmp/common/TODO.kt new file mode 100644 index 0000000..64f6315 --- /dev/null +++ b/hdcommon/src/commonMain/kotlin/com/yunext/kmp/common/TODO.kt @@ -0,0 +1,17 @@ +package com.yunext.kmp.common + +@Retention(AnnotationRetention.SOURCE) +@Target( + AnnotationTarget.EXPRESSION, + AnnotationTarget.CLASS, + AnnotationTarget.FUNCTION, + AnnotationTarget.PROPERTY, + AnnotationTarget.ANNOTATION_CLASS, + AnnotationTarget.CONSTRUCTOR, + AnnotationTarget.PROPERTY_GETTER, + AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.LOCAL_VARIABLE +) +@Repeatable +annotation class TODO( + val msg: String, +) \ No newline at end of file diff --git a/hdcommon/src/commonMain/kotlin/com/yunext/kmp/common/util/Datetimes.kt b/hdcommon/src/commonMain/kotlin/com/yunext/kmp/common/util/Datetimes.kt new file mode 100644 index 0000000..46fadde --- /dev/null +++ b/hdcommon/src/commonMain/kotlin/com/yunext/kmp/common/util/Datetimes.kt @@ -0,0 +1,5 @@ +package com.yunext.kmp.common.util + +import kotlinx.datetime.Clock + +fun currentTime() = Clock.System.now().toEpochMilliseconds() \ No newline at end of file diff --git a/hdcommon/src/iosMain/kotlin/com/yunext/kmp/common/logger/HDLogger.ios.kt b/hdcommon/src/iosMain/kotlin/com/yunext/kmp/common/logger/HDLogger.ios.kt index a912f42..2f281c8 100644 --- a/hdcommon/src/iosMain/kotlin/com/yunext/kmp/common/logger/HDLogger.ios.kt +++ b/hdcommon/src/iosMain/kotlin/com/yunext/kmp/common/logger/HDLogger.ios.kt @@ -13,15 +13,19 @@ actual interface HDLogger { actual companion object : HDLogger { override var debug: Boolean = false actual override fun d(tag: String, msg: String) { + println("[$tag][D] $msg") } actual override fun i(tag: String, msg: String) { + println("[$tag][I] $msg") } actual override fun w(tag: String, msg: String) { + println("[$tag][W] $msg") } actual override fun e(tag: String, msg: String) { + println("[$tag][E] $msg") } } diff --git a/hdcommon/src/jvmMain/kotlin/com/yunext/kmp/common/logger/HDLogger.jvm.kt b/hdcommon/src/jvmMain/kotlin/com/yunext/kmp/common/logger/HDLogger.jvm.kt index a577676..71777a9 100644 --- a/hdcommon/src/jvmMain/kotlin/com/yunext/kmp/common/logger/HDLogger.jvm.kt +++ b/hdcommon/src/jvmMain/kotlin/com/yunext/kmp/common/logger/HDLogger.jvm.kt @@ -10,15 +10,19 @@ actual interface HDLogger { actual companion object : HDLogger { override var debug: Boolean = false actual override fun d(tag: String, msg: String) { + println("[$tag][D] $msg") } actual override fun i(tag: String, msg: String) { + println("[$tag][I] $msg") } actual override fun w(tag: String, msg: String) { + println("[$tag][W] $msg") } actual override fun e(tag: String, msg: String) { + println("[$tag][E] $msg") } } diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/LoginResp.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/LoginResp.kt new file mode 100644 index 0000000..f4c4177 --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/LoginResp.kt @@ -0,0 +1,8 @@ +package com.yunext.kmp.http + +import com.yunext.kmp.http.core.HttpResponse + +data class LoginResp( + val token: String? = "", + val authCode: String? = "", +) : HttpResponse \ No newline at end of file diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/ProductResp.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/ProductResp.kt new file mode 100644 index 0000000..5b68ce5 --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/ProductResp.kt @@ -0,0 +1,4 @@ +package com.yunext.kmp.http + +class ProductResp { +} \ No newline at end of file diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/UserInfoResp.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/UserInfoResp.kt new file mode 100644 index 0000000..7800c38 --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/UserInfoResp.kt @@ -0,0 +1,17 @@ +package com.yunext.kmp.http + +import com.yunext.kmp.http.core.HttpResponse + +data class UserInfoResp( + val fileId: String? = null, + val fileName: String? = null, + val sex: String? = null, + val userNickName: String? = null, + val province: String? = null, + val city: String? = null, + val region: String? = null, + val address: String? = null, + val phone: String? = null +): HttpResponse + + diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/ApiException.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/ApiException.kt new file mode 100644 index 0000000..b40c913 --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/ApiException.kt @@ -0,0 +1,4 @@ +package com.yunext.kmp.http.core + +class ApiException(val code: Int = -1, msg: String = "", cause: Throwable? = null) : + RuntimeException(msg, cause) \ No newline at end of file diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/HttpResponseParser.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/HttpResponseParser.kt new file mode 100644 index 0000000..64644ab --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/HttpResponseParser.kt @@ -0,0 +1,81 @@ +package com.yunext.kmp.http.core + +/* Http接口返回格式比较固定,采用以下方式解析 */ + +// 接口返回的基本数据 +// code msg success +interface HttpResponseContainer + +// 接口数据 +interface HttpResponse + +// 解析器 +interface HttpResponseParser { + // 解析出HttpResult + fun parse(container: Container): HttpResult + + // 解析出HttpResult + fun parseToBoolean(container: Container): HttpResult +} + +// 解析数据过程 +suspend fun HttpResponseParser.suspendParse( + block: suspend () -> Container, +): HttpResult { + return try { + parse(block()) + } catch (e: Throwable) { + httpFail(e) + } +} + +// 解析数据+转换数据 +fun HttpResponseParser.parseToData( + container: Container, + map: (RESP) -> DATA +): HttpResult { + return parse(container).map(map) +} + +// 解析数据过程+转换数据 +suspend fun HttpResponseParser.suspendParseToData( + map: (RESP) -> DATA, + block: suspend () -> Container +): HttpResult { + return try { + parseToData(block(), map) + } catch (e: Throwable) { + httpFail(e) + } +} + +// 解析数据过程+转换数据Boolean +suspend fun HttpResponseParser.suspendParseToBoolean( + block: suspend () -> Container +): HttpResult { + return try { + parseToBoolean(block()) + } catch (e: Throwable) { + httpFail(e) + } +} + + +suspend fun parseData( + convert: (T) -> R, block: suspend () -> T +): HttpResult { + return try { + httpSuccess(convert(block())) + } catch (e: Throwable) { + httpFail(e) + } +} + + + + + + + + + diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/HttpResult.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/HttpResult.kt new file mode 100644 index 0000000..28c1955 --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/core/HttpResult.kt @@ -0,0 +1,17 @@ +package com.yunext.kmp.http.core + +sealed class HttpResult { + data class Success(val data: T) : HttpResult() + data class Fail(val error: Throwable) : HttpResult() +} + +fun httpSuccess(data: T): HttpResult = HttpResult.Success(data) +fun httpFail(e: Throwable, code: Int = -1): HttpResult = + HttpResult.Fail(ApiException(code, e.message ?: "", e)) + +fun HttpResult.map(map: (T) -> R): HttpResult { + return when (this) { + is HttpResult.Fail -> this + is HttpResult.Success -> httpSuccess(map(this.data)) + } +} \ No newline at end of file diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslContainerResp.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslContainerResp.kt new file mode 100644 index 0000000..793766f --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslContainerResp.kt @@ -0,0 +1,8 @@ +package com.yunext.kmp.http.tsl + +class TslContainerResp( + val code: String?, + val msg: String?, + val success: Boolean?, + val data: TslResp? +) \ No newline at end of file diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslEventResp.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslEventResp.kt new file mode 100644 index 0000000..f64a44c --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslEventResp.kt @@ -0,0 +1,16 @@ +package com.yunext.kmp.http.tsl + +class TslEventResp( + /* 唯一标识符(产品下唯一,其中post是默认生成的属性上报事件。)*/ + val identifier: String?, + val name: String?, + /* 事件类型(info、alert、error) */ + val type: String?, + /* 是否是标准功能的必选属性 */ + val required: Boolean?, + val desc: String?, + /* 事件对应的方法名称(根据identifier生成)*/ + val method: String?, + /* 输出参数 */ + val outputData: List?, +) \ No newline at end of file diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslItemPropertyResp.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslItemPropertyResp.kt new file mode 100644 index 0000000..bd5e725 --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslItemPropertyResp.kt @@ -0,0 +1,25 @@ +package com.yunext.kmp.http.tsl + +/** + * inner属性集合 + */ +class TslItemPropertyResp( + + val identifier:String?, + val name:String?, + /* + * DataTypeEnum + * 属性类型 + * int + * float + * double + * text + * date(String类型UTC毫秒) + * bool(0或1的int类型) + * enum(int类型,枚举项定义方法与bool类型定义0和1的值方法相同) + * struct(结构体类型,可包含前面7种类型,下面使用"specs":[{}]描述包含的对象) + * array(数组类型,支持int、double、float、text、struct) + */ + val dataType:String?, + val specs: TslSpecResp?, +) \ No newline at end of file diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslParamResp.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslParamResp.kt new file mode 100644 index 0000000..469ddf0 --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslParamResp.kt @@ -0,0 +1,23 @@ +package com.yunext.kmp.http.tsl + +class TslParamResp( + /* 唯一标识符(产品下唯一) */ + val identifier: String?, + val name: String?, + /* + * DataTypeEnum + * 属性类型 + * int + * float + * double + * text + * date(String类型UTC毫秒) + * bool(0或1的int类型) + * enum(int类型,枚举项定义方法与bool类型定义0和1的值方法相同) + * struct(结构体类型,可包含前面7种类型,下面使用"specs":[{}]描述包含的对象) + * array(数组类型,支持int、double、float、text、struct) + */ + val dataType: String?, + /* 属性约束 */ + val specs: TslSpecResp?, +) \ No newline at end of file diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslPropertyResp.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslPropertyResp.kt new file mode 100644 index 0000000..0f57c20 --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslPropertyResp.kt @@ -0,0 +1,29 @@ +package com.yunext.kmp.http.tsl + +/** + * 属性集合 + */ +class TslPropertyResp( + /* 属性读写类型:只读(r)或读写(rw) */ + val accessMode:String?, + /* 是否是标准功能的必选属性(保留)*/ + val required:Boolean?, + val desc:String?, + val identifier:String?, + val name:String?, + /* + * DataTypeEnum + * 属性类型 + * int + * float + * double + * text + * date(String类型UTC毫秒) + * bool(0或1的int类型) + * enum(int类型,枚举项定义方法与bool类型定义0和1的值方法相同) + * struct(结构体类型,可包含前面7种类型,下面使用"specs":[{}]描述包含的对象) + * array(数组类型,支持int、double、float、text、struct) + */ + val dataType:String?, + val specs: TslSpecResp?, +) \ No newline at end of file diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslResp.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslResp.kt new file mode 100644 index 0000000..b2bc664 --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslResp.kt @@ -0,0 +1,11 @@ +package com.yunext.kmp.http.tsl + +class TslResp( + val id: String?, + val version: String?, + val productKey: String?, + val current: Boolean?, + val events: List?, + val properties: List?, + val services: List? +) \ No newline at end of file diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslServiceResp.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslServiceResp.kt new file mode 100644 index 0000000..6fb4a6f --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslServiceResp.kt @@ -0,0 +1,20 @@ +package com.yunext.kmp.http.tsl + +import com.yunext.kmp.http.tsl.TslParamResp + +class TslServiceResp( + val identifier: String?, + val name: String?, + /* async(异步调用)或sync(同步调用)*/ + val callType: String?, + /* 是否是标准功能的必选属性 */ + val required: Boolean?, + val desc: String?, + /* 事件对应的方法名称(根据identifier生成) */ + val method: String?, + /* 输入参数 */ + val inputData: List?, + /* 输出参数 */ + val outputData: List? + + ) \ No newline at end of file diff --git a/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslSpecResp.kt b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslSpecResp.kt new file mode 100644 index 0000000..30bb0c5 --- /dev/null +++ b/hdhttp/src/commonMain/kotlin/com/yunext/kmp/http/tsl/TslSpecResp.kt @@ -0,0 +1,27 @@ +package com.yunext.kmp.http.tsl + +/** + * 属性约束 + */ +class TslSpecResp( + /* 参数最小值(int、float、double类型特有) */ + val min: Any?, + /* 参数最大值(int、float、double类型特有) */ + val max: Any?, + /* 属性单位(int、float、double类型特有,非必填) */ + val unit: Any?, + /* 单位名称(int、float、double类型特有,非必填) */ + val unitName: Any?, + /* 数组元素的个数,最大512(array类型特有) */ + val size: Int?, + /* 步长,属性值变化的最小粒度(text、enum类型无此参数) */ + val step: Any?, + /* 数据长度,最大10240(text类型特有) */ + val length: Int?, + /* 数组元素的类型(array类型特有) */ + val type: Any?, + /* struct格式的数据有多个properties */ + val item:Any?, + /* 枚举描述:enum和bool类型的参数信息 */ + val enumDesc: Any?, +) \ No newline at end of file diff --git a/hdmqtt/build.gradle.kts b/hdmqtt/build.gradle.kts index 284d2de..8d49d98 100644 --- a/hdmqtt/build.gradle.kts +++ b/hdmqtt/build.gradle.kts @@ -1,7 +1,10 @@ +import com.android.build.gradle.internal.ide.kmp.KotlinAndroidSourceSetMarker.Companion.android + plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidLibrary) //id("module.publication") + alias(libs.plugins.kotlinSerialization) } kotlin { @@ -24,6 +27,9 @@ kotlin { dependencies { //put your multiplatform dependencies here implementation(projects.hdcontext) + implementation(projects.hdcommon) + + implementation(libs.kotlinx.serialization.json) } } val commonTest by getting { diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTMessage.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTMessage.kt new file mode 100644 index 0000000..bc47853 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTMessage.kt @@ -0,0 +1,13 @@ +package com.yunext.kmp.mqtt.data + +import kotlinx.serialization.Serializable + +@Serializable +class MQTTMessage( + val payload: ByteArray, + val retained: Boolean, + val qos: Int, + val messageId: Int, + val dup: Boolean, + val mutable: Boolean = true, +) \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTParam.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTParam.kt new file mode 100644 index 0000000..2304545 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTParam.kt @@ -0,0 +1,12 @@ +package com.yunext.kmp.mqtt.data + +class MQTTParam( + val username: String, + val password: String, + val clientId: String, + val url: String = "", + val ssl: Boolean = true, +) + +val MQTTParam.display: String + get() = "[username]${username} ## [password]${password} ## [clientId]${clientId} ## [url]${url} ## [ssl]${ssl}" diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTState.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTState.kt new file mode 100644 index 0000000..497806f --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/data/MQTTState.kt @@ -0,0 +1,10 @@ +package com.yunext.kmp.mqtt.data + +sealed class MQTTState { + data object Init : MQTTState() + data object Connected : MQTTState() + data object Disconnected : MQTTState() +} + +val MQTTState.isConnected:Boolean + get() = this == MQTTState.Connected \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTCmd.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTCmd.kt new file mode 100644 index 0000000..07512c8 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTCmd.kt @@ -0,0 +1,56 @@ +package com.yunext.kmp.mqtt.protocol + +import kotlin.jvm.JvmStatic + +sealed interface ProtocolMQTTCmd { + val cmd: String + + companion object { + + @JvmStatic + fun from(text: String): ProtocolMQTTCmd { + return when (text) { + ReportCmd.cmd -> ReportCmd + SetCmd.cmd -> SetCmd + OnlineCmd.cmd -> OnlineCmd + InfoUpCmd.cmd -> InfoUpCmd + DataCmd.cmd -> DataCmd + // else -> throw TslCmdException("非默认支持的命令,一般常见于service。 cmd = $text") + else -> ServiceCmd(cmd = text) // 对于设备端来说,其他的都认为是服务器调用服务,并且cmd值为服务的identifier + } + } + } +} + +// cmds +data object ReportCmd : ProtocolMQTTCmd { + override val cmd: String + get() = "report" +} + +data object SetCmd : ProtocolMQTTCmd { + override val cmd: String + get() = "set" +} + +data object OnlineCmd : ProtocolMQTTCmd { + override val cmd: String + get() = "online" +} + +data object InfoUpCmd : ProtocolMQTTCmd { + override val cmd: String + get() = "info" +} + +data object DataCmd : ProtocolMQTTCmd { + override val cmd: String + get() = "data" +} + +data object TimestampCmd : ProtocolMQTTCmd { + override val cmd: String + get() = "timestamp" +} + +data class ServiceCmd(override val cmd: String) : ProtocolMQTTCmd diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTContainer.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTContainer.kt new file mode 100644 index 0000000..4c2e878 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTContainer.kt @@ -0,0 +1,25 @@ +package com.yunext.kmp.mqtt.protocol + +import kotlinx.serialization.Serializable + +@Serializable +class ProtocolMQTTContainer( + val cmd: String?, + val child: String?, + val params: T, +) { + companion object { +// private val TYPE = object : TypeToken>() {}.type +// fun fromJson(json: String): MQTTContainer<*>? { +// return try { +// mqttGson.fromJson(json, TYPE) +// } catch (e: Throwable) { +// null +// } +// } + } +} + +//internal val mqttGson: Gson = GsonBuilder() +// .create() + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTMessage.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTMessage.kt new file mode 100644 index 0000000..a182687 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTMessage.kt @@ -0,0 +1,207 @@ +package com.yunext.kmp.mqtt.protocol + +sealed interface ProtocolMQTTMessage { + // 通道 + val topic: ProtocolMQTTTopic + + // 命令 + val cmd: ProtocolMQTTCmd + + // 数据 + val data: Any + + val qos: Int + get() = 1 + val retain: Int + get() = 0 + + // 描述 + val desc: String + + val pub: Array + val sub: Array +} + +interface UpStream +interface DownStream + +/** + * 1.info + * 设备上电时上报的基本信息 + * 无回复 + */ +class InfoMQTTMessage(override val data: Any) : ProtocolMQTTMessage, UpStream { + override val topic: ProtocolMQTTTopic + get() = ProtocolMQTTTopic.UP + override val cmd: ProtocolMQTTCmd = InfoUpCmd + override val desc: String = "设备上电时上报的基本信息 无回复" + override val pub: Array + get() = arrayOf(ProtocolMQTTRule.Device) + override val sub: Array + get() = arrayOf(ProtocolMQTTRule.Web) +} + +/** + * 2.report + * 设备数据上报 + * 无回复 + */ +class ReportMQTTMessage(override val data: Any) : ProtocolMQTTMessage, UpStream { + override val topic: ProtocolMQTTTopic + get() = ProtocolMQTTTopic.UP + override val cmd: ProtocolMQTTCmd = ReportCmd + override val desc: String = "设备数据上报" + override val pub: Array + get() = arrayOf(ProtocolMQTTRule.Device) + override val sub: Array + get() = arrayOf(ProtocolMQTTRule.Web) +} + + +/** + * 3.set + * 平台下发 + * 有回复 + */ +class SetMQTTMessage(override val data: Any) : ProtocolMQTTMessage, DownStream { + override val topic: ProtocolMQTTTopic + get() = ProtocolMQTTTopic.DOWN + override val cmd: ProtocolMQTTCmd = SetCmd + override val desc: String = "平台下发" + override val pub: Array + get() = arrayOf(ProtocolMQTTRule.Web) + override val sub: Array + get() = arrayOf(ProtocolMQTTRule.Device) +} + +class SetRepayMQTTMessage(override val data: Any) : ProtocolMQTTMessage, UpStream { + override val topic: ProtocolMQTTTopic + get() = ProtocolMQTTTopic.UP + override val cmd: ProtocolMQTTCmd = SetCmd + override val desc: String = "回复平台下发" + override val pub: Array + get() = arrayOf(ProtocolMQTTRule.Web) + override val sub: Array + get() = arrayOf(ProtocolMQTTRule.Device) +} + +/** + * 4.data + * 平台可发出消息查询当前设备参数(包括运行状态与属性) + * 回复 参数值 + */ +class DataMQTTMessage(private val keys: List) : ProtocolMQTTMessage { + override val data: Any + get() = mapOf("keys" to keys) + override val topic: ProtocolMQTTTopic + get() = ProtocolMQTTTopic.DOWN + override val cmd: ProtocolMQTTCmd = DataCmd + override val desc: String = "平台可发出消息查询当前设备参数(包括运行状态与属性)" + override val pub: Array + get() = arrayOf(ProtocolMQTTRule.Web) + override val sub: Array + get() = arrayOf(ProtocolMQTTRule.Device) + + val subTopic: ProtocolMQTTTopic = ProtocolMQTTTopic.UP // 回复topic +} + +class DataReplyMQTTMessage(override val data: Any) : ProtocolMQTTMessage, UpStream { + override val topic: ProtocolMQTTTopic + get() = ProtocolMQTTTopic.UP + override val cmd: ProtocolMQTTCmd = DataCmd + override val desc: String = "平台可发出消息查询当前设备参数(包括运行状态与属性)" + override val pub: Array + get() = arrayOf(ProtocolMQTTRule.Web) + override val sub: Array + get() = arrayOf(ProtocolMQTTRule.Device) + + val subTopic: ProtocolMQTTTopic = ProtocolMQTTTopic.UP // 回复topic +} + + +/** + * 5.设备查询当前时间(cmd=timestamp) + * + * 回复: +{ +"cmd": "timestamp", +"params": { +"timestamp": 1604294613 +} +} + * + */ +class TimestampMQTTMessage(override val data: Any) : ProtocolMQTTMessage { + + override val topic: ProtocolMQTTTopic + get() = ProtocolMQTTTopic.QUERY + override val cmd: ProtocolMQTTCmd = TimestampCmd + override val desc: String = "设备查询当前时间" + override val pub: Array + get() = arrayOf(ProtocolMQTTRule.Web) + override val sub: Array + get() = arrayOf(ProtocolMQTTRule.Device) + + +} + +class TimestampReplyMQTTMessage(override val data: Any) : ProtocolMQTTMessage, UpStream { + + override val topic: ProtocolMQTTTopic + get() = ProtocolMQTTTopic.REPLY + override val cmd: ProtocolMQTTCmd = TimestampCmd + override val desc: String = "回复设备查询当前时间" + override val pub: Array + get() = arrayOf(ProtocolMQTTRule.Device) + override val sub: Array + get() = arrayOf(ProtocolMQTTRule.Web) +} + +/** + * 5.web通知app设备在离线 + */ +class OnlineMQTTMessage(private val online: Boolean) : ProtocolMQTTMessage { + override val cmd: ProtocolMQTTCmd = OnlineCmd + override val data: Any + get() = mapOf("online" to online) + override val desc: String = "" + override val pub: Array + get() = arrayOf(ProtocolMQTTRule.Web) + override val sub: Array + get() = arrayOf( + ProtocolMQTTRule.App.Android, + ProtocolMQTTRule.App.Ios, + ProtocolMQTTRule.App.Mini + ) + override val topic: ProtocolMQTTTopic + get() = ProtocolMQTTTopic.STATUS + override val retain: Int + get() = 1 +} + + +/** + * 6.服务 + * 设备数据上报 + * 无回复 + */ +class ReplyServiceMQTTMessage(override val data: Any, serviceId: String) : ProtocolMQTTMessage, + UpStream { + override val topic: ProtocolMQTTTopic + get() = ProtocolMQTTTopic.UP + override val cmd: ProtocolMQTTCmd = ServiceCmd(serviceId) + override val desc: String = "设备数据上报" + override val pub: Array + get() = arrayOf(ProtocolMQTTRule.Device) + override val sub: Array + get() = arrayOf(ProtocolMQTTRule.Web) +} + + + + + + + + + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTRule.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTRule.kt new file mode 100644 index 0000000..c6c4fd0 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTRule.kt @@ -0,0 +1,12 @@ +package com.yunext.kmp.mqtt.protocol + +sealed class ProtocolMQTTRule { + data object Device : ProtocolMQTTRule() + data object Web : ProtocolMQTTRule() + sealed class App : ProtocolMQTTRule() { + data object Mini : App() + data object H5 : App() + data object Ios : App() + data object Android : App() + } +} \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTTopic.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTTopic.kt new file mode 100644 index 0000000..4ffa51d --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMQTTTopic.kt @@ -0,0 +1,98 @@ +package com.yunext.kmp.mqtt.protocol + +sealed class ProtocolMQTTTopic( + val category: String, + private val pubSupports: Array, + private val subSupports: Array, + private val desc: String +) { + data object UP : ProtocolMQTTTopic( + "up", + arrayOf(ProtocolMQTTRule.Device), + arrayOf( + ProtocolMQTTRule.Web, + ProtocolMQTTRule.App.Mini, + ProtocolMQTTRule.App.H5, + ProtocolMQTTRule.App.Ios, + ProtocolMQTTRule.App.Android + ), + "设备上报属性状态、故障消息" + ) + + data object DOWN : ProtocolMQTTTopic( + "down", + arrayOf( + ProtocolMQTTRule.Web, + ProtocolMQTTRule.App.Mini, + ProtocolMQTTRule.App.H5, + ProtocolMQTTRule.App.Ios, + ProtocolMQTTRule.App.Android + ), + arrayOf(ProtocolMQTTRule.Device), + "下发控制指令至设备" + ) + + data object QUERY : ProtocolMQTTTopic( + "query", + arrayOf(ProtocolMQTTRule.Device), + arrayOf(ProtocolMQTTRule.Web), + "设备主动查询信息" + ) + + data object REPLY : ProtocolMQTTTopic( + "reply", + arrayOf(ProtocolMQTTRule.Web), + arrayOf(ProtocolMQTTRule.Device), + "回复消息给设备" + ) + + data object STATUS : ProtocolMQTTTopic( + "status", + arrayOf(ProtocolMQTTRule.Web), + arrayOf(ProtocolMQTTRule.App.Mini, ProtocolMQTTRule.App.H5, ProtocolMQTTRule.App.Ios, ProtocolMQTTRule.App.Android), + "服务端发布设备状态消息给APP、小程序" + ) + + +// object ALERT : MQTTTopic( +// "alert", +// arrayOf(MQTTRule.Device), +// arrayOf( +// MQTTRule.Web, +// MQTTRule.App.Mini, +// MQTTRule.App.H5, +// MQTTRule.App.Ios, +// MQTTRule.App.Android +// ), +// "设备上报属性状态、故障消息" +// ) +// +// object INFO : MQTTTopic( +// "info", +// arrayOf(MQTTRule.Device), +// arrayOf( +// MQTTRule.Web, +// MQTTRule.App.Mini, +// MQTTRule.App.H5, +// MQTTRule.App.Ios, +// MQTTRule.App.Android +// ), +// "设备上报属性状态、故障消息" +// ) +// +// object ERROR : MQTTTopic( +// "alert", +// arrayOf(MQTTRule.Device), +// arrayOf( +// MQTTRule.Web, +// MQTTRule.App.Mini, +// MQTTRule.App.H5, +// MQTTRule.App.Ios, +// MQTTRule.App.Android +// ), +// "设备上报属性状态、故障消息" +// ) + +} + + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMqttDataParam.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMqttDataParam.kt new file mode 100644 index 0000000..f48b954 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/ProtocolMqttDataParam.kt @@ -0,0 +1,15 @@ +//package com.yunext.twins.data.mqtt +// +//class MqttCmdDataParam(val keys: List) { +// +// companion object { +// fun from(json: String?): MqttCmdDataParam? { +// return try { +// if (json.isNullOrEmpty()) return null +// MQTT_GSON.fromJson(json, MqttCmdDataParam::class.java) +// } catch (e: Throwable) { +// null +// } +// } +// } +//} \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/Protocols.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/Protocols.kt new file mode 100644 index 0000000..e69de29 diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/Tsl.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/Tsl.kt new file mode 100644 index 0000000..fc9d5b8 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/Tsl.kt @@ -0,0 +1,13 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +class Tsl( + val id: String, + val version: String, + val productKey: String, + val current: Boolean, + val events: List, + val properties: List, + val services: List +) + + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslCollection.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslCollection.kt new file mode 100644 index 0000000..402d00a --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslCollection.kt @@ -0,0 +1,37 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +import kotlin.jvm.JvmStatic + +object TslCollection { + + // 设备类型deviceType -> json文件 + private val mMap: MutableMap = mutableMapOf() + + @JvmStatic + fun load(json: String) { + try { + TODO("序列化") +// val jsonArray = JSONArray(json) +// val length = jsonArray.length() +// if (length <= 0) return +// (0 until length).forEach { i -> +// val jsonObject = jsonArray.getJSONObject(i) +// val keys = jsonObject.keys() +// keys.forEach { key -> +// mMap[key] = jsonObject.optString(key) +// } +// } + } catch (e: Throwable) { + e.printStackTrace() + } finally { + println("TslCollection load complete . size = ${mMap.size}") + } + + } + + @JvmStatic + fun findTslFromDeviceType(deviceType: String): String { + if (!mMap.containsKey(deviceType)) throw TslException("[TslCollection]不支持的deviceType$deviceType") + return mMap[deviceType] ?: throw TslException("[TslCollection]${deviceType}不支持的json") + } +} \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslEvent.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslEvent.kt new file mode 100644 index 0000000..5ead17d --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslEvent.kt @@ -0,0 +1,17 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +class TslEvent( + /* 唯一标识符(产品下唯一,其中post是默认生成的属性上报事件。)*/ + val identifier: String, + val name: String, + /* 事件类型(info、alert、error) */ + val type: String, + /* 是否是标准功能的必选属性 */ + val required: Boolean, + val desc: String, + /* 事件对应的方法名称(根据identifier生成)*/ + val method: String, + /* 输出参数 */ + val outputData: List, +) + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslEventType.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslEventType.kt new file mode 100644 index 0000000..44b4762 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslEventType.kt @@ -0,0 +1,17 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +enum class TslEventType(val text: String) { + ALERT("alert"), + INFO("info"), + ERROR("error"); + companion object{ + fun from(text: String): TslEventType { + return when(text){ + ALERT.text-> ALERT + INFO.text-> INFO + ERROR.text-> ERROR + else-> throw TslException("不支持的TslEventType:$text") + } + } + } +} \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslException.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslException.kt new file mode 100644 index 0000000..cb5eaf3 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslException.kt @@ -0,0 +1,8 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +open class TslException( + message: String?, + cause: Throwable? = null, + ) : Throwable(message, cause) { +} +class TslCmdException(message: String?) : TslException(message,null) \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslItemProperty.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslItemProperty.kt new file mode 100644 index 0000000..78aa849 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslItemProperty.kt @@ -0,0 +1,51 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +/** + * Struct内部属性集合 + */ +class TslItemProperty( + + val identifier: String, + val name: String, + /* + * DataTypeEnum + * 属性类型 + * int + * float + * double + * text + * date(String类型UTC毫秒) + * bool(0或1的int类型) + * enum(int类型,枚举项定义方法与bool类型定义0和1的值方法相同) + * struct(结构体类型,可包含前面7种类型,下面使用"specs":[{}]描述包含的对象) + * array(数组类型,支持int、double、float、text、struct) + */ + val dataType: TslPropertyType, + val specs: TslSpec?, +) { + companion object { +// private val gson: Gson = Gson() +// private val TYPE = object : TypeToken>() { +// +// }.type + + fun from(json: String): List { + return try { + TODO("序列化") +// gson.fromJson>(json, TYPE) +// .map(TslItemPropertyResp::convert) + + }catch (e:Throwable){ + listOf() + } + } + } +} + +internal val TslItemProperty.display: String + get() { + return "$name<$identifier> [$dataType] " + } + + + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslParam.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslParam.kt new file mode 100644 index 0000000..ddb9ed7 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslParam.kt @@ -0,0 +1,26 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +class TslParam( + /* 唯一标识符(产品下唯一) */ + val identifier: String, + val name: String, + /* + * DataTypeEnum + * 属性类型 + * int + * float + * double + * text + * date(String类型UTC毫秒) + * bool(0或1的int类型) + * enum(int类型,枚举项定义方法与bool类型定义0和1的值方法相同) + * struct(结构体类型,可包含前面7种类型,下面使用"specs":[{}]描述包含的对象) + * array(数组类型,支持int、double、float、text、struct) + */ + val dataType: String, + /* 属性约束 */ + val specs: TslSpec?, +) + + + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslProperty.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslProperty.kt new file mode 100644 index 0000000..5a92d5a --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslProperty.kt @@ -0,0 +1,75 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +/** + * todo + */ +//sealed class TslPropertyX( +// /* 属性读写类型:只读(r)或读写(rw) */ +// val accessMode: String, +// /* 是否是标准功能的必选属性(保留)*/ +// val required: Boolean, +// val desc: String, +// val identifier: String, +// val name: String, +//) + +/** + * 属性集合 + * 和[TslParam]重叠了 + */ +class TslProperty( + /* 属性读写类型:只读(r)或读写(rw) */ + val accessMode: String, + /* 是否是标准功能的必选属性(保留)*/ + val required: Boolean, + val desc: String, + val identifier: String, + val name: String, + /* + * DataTypeEnum + * 属性类型 + * int + * float + * double + * text + * date(String类型UTC毫秒) + * bool(0或1的int类型) + * enum(int类型,枚举项定义方法与bool类型定义0和1的值方法相同) + * struct(结构体类型,可包含前面7种类型,下面使用"specs":[{}]描述包含的对象) + * array(数组类型,支持int、double、float、text、struct) + */ + val dataType: TslPropertyType, + val specs: TslSpec?, + val inner: Boolean = false +) { + + companion object { + fun from(tslItemProperty: TslItemProperty) = TslProperty( + accessMode = "", + required = false, + desc = "", + identifier = tslItemProperty.identifier, + name = tslItemProperty.name, + dataType = tslItemProperty.dataType, + specs = tslItemProperty.specs, + inner = true + ) + + fun from(tslItemProperty: TslParam) = TslProperty( + accessMode = "", + required = false, + desc = "", + identifier = tslItemProperty.identifier, + name = tslItemProperty.name, + dataType = TslPropertyType.from(tslItemProperty.dataType), + specs = tslItemProperty.specs, + inner = true + ) + } +} + +val TslProperty.display: String + get() { + return "$name<$identifier> [$dataType] required[$required] accessMode[$accessMode] " + } + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslPropertyType.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslPropertyType.kt new file mode 100644 index 0000000..899610e --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslPropertyType.kt @@ -0,0 +1,44 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +/* + * DataTypeEnum + * 属性类型 + * int + * float + * double + * text + * date(String类型UTC毫秒) + * bool(0或1的int类型) + * enum(int类型,枚举项定义方法与bool类型定义0和1的值方法相同) + * struct(结构体类型,可包含前面7种类型,下面使用"specs":[{}]描述包含的对象) + * array(数组类型,支持int、double、float、text、struct) + */ +enum class TslPropertyType( val text: String) { + INT("int"), + FLOAT("float"), + DOUBLE("double"), + TEXT("text"), + DATE("date"), + BOOL("bool"), + ENUM("enum"), + STRUCT("struct"), + ARRAY("array"), + ; + + companion object{ + fun from(text: String): TslPropertyType { + return when(text){ + INT.text-> INT + FLOAT.text-> FLOAT + DOUBLE.text-> DOUBLE + TEXT.text-> TEXT + DATE.text-> DATE + BOOL.text-> BOOL + ENUM.text-> ENUM + STRUCT.text-> STRUCT + ARRAY.text-> ARRAY + else-> throw TslException("不支持的PropertyType:$text") + } + } + } +} \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslService.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslService.kt new file mode 100644 index 0000000..f6e2c0d --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslService.kt @@ -0,0 +1,20 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +class TslService( + val identifier: String, + val name: String, + /* async(异步调用)或sync(同步调用)*/ + val callType: String, + /* 是否是标准功能的必选属性 */ + val required: Boolean, + val desc: String, + /* 事件对应的方法名称(根据identifier生成) */ + val method: String, + /* 输入参数 */ + val inputData: List, + /* 输出参数 */ + val outputData: List + +) + + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslServiceCallType.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslServiceCallType.kt new file mode 100644 index 0000000..8d5169e --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslServiceCallType.kt @@ -0,0 +1,16 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +enum class TslServiceCallType(val text: String) { + ASYNC("async"), + SYNC("sync"); + + companion object { + fun from(text: String): TslServiceCallType { + return when (text) { + ASYNC.text -> ASYNC + SYNC.text -> SYNC + else -> throw TslException("不支持的TslServiceCallType:$text") + } + } + } +} \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslSpec.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslSpec.kt new file mode 100644 index 0000000..0afe664 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/TslSpec.kt @@ -0,0 +1,28 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +/** + * 属性约束 + */ +class TslSpec( + /* 参数最小值(int、float、double类型特有) */ + val min: Any?, + /* 参数最大值(int、float、double类型特有) */ + val max: Any?, + /* 属性单位(int、float、double类型特有,非必填) */ + val unit: Any?, + /* 单位名称(int、float、double类型特有,非必填) */ + val unitName: Any?, + /* 数组元素的个数,最大512(array类型特有) */ + val size: Int?, + /* 步长,属性值变化的最小粒度(text、enum类型无此参数) */ + val step: Any?, + /* 数据长度,最大10240(text类型特有) */ + val length: Int?, // FIXME : 这里不是size吗? + /* 数组元素的类型(array类型特有 另外 enum int/text) */ + val type: Any?, + /* struct格式的数据有多个properties */ + val item: Any?, + /* 枚举描述:enum和bool类型的参数信息 */ + val enumDesc: Any?, +) + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/Tsls.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/Tsls.kt new file mode 100644 index 0000000..cffae30 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/Tsls.kt @@ -0,0 +1,10 @@ +package com.yunext.kmp.mqtt.protocol.tsl + +const val TSL_PATH = "tsl" +private const val TSL_HEAD = "tsl_" +private const val TSL_TAIL = ".json" +//fun Context.extListTsl(): List { +// return assets.list(TSL_PATH)?.filterNotNull()?.filter { +// it.startsWith(TSL_HEAD) && it.endsWith(TSL_TAIL) +// } ?: listOf() +//} \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/event/EventKey.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/event/EventKey.kt new file mode 100644 index 0000000..164903f --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/event/EventKey.kt @@ -0,0 +1,52 @@ +package com.yunext.kmp.mqtt.protocol.tsl.event + +import com.yunext.kmp.mqtt.protocol.tsl.TslEventType +import com.yunext.kmp.mqtt.protocol.tsl.property.PropertyKey + +sealed interface EventKey { + val identifier: String + val name: String + val desc: String + val required: Boolean + val type: TslEventType + val method: String? + val outputData: List +} + +class AlertEventKey( + override val identifier: String, + override val name: String, + override val desc: String, + override val required: Boolean, + override val method: String?, + override val outputData: List, + + ) : EventKey { + override val type: TslEventType + get() = TslEventType.ALERT +} + +class InfoEventKey( + override val identifier: String, + override val name: String, + override val desc: String, + override val required: Boolean, + override val method: String?, + override val outputData: List, +) : EventKey { + override val type: TslEventType + get() = TslEventType.INFO +} + +class ErrorEventKey( + override val identifier: String, + override val name: String, + override val desc: String, + override val required: Boolean, + override val method: String?, + override val outputData: List, + + ) : EventKey { + override val type: TslEventType + get() = TslEventType.ERROR +} diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/event/EventKeyExt.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/event/EventKeyExt.kt new file mode 100644 index 0000000..14a2ac6 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/event/EventKeyExt.kt @@ -0,0 +1,73 @@ +package com.yunext.kmp.mqtt.protocol.tsl.event + +import com.yunext.kmp.mqtt.protocol.tsl.property.ld +import com.yunext.kmp.mqtt.protocol.tsl.Tsl +import com.yunext.kmp.mqtt.protocol.tsl.TslEvent +import com.yunext.kmp.mqtt.protocol.tsl.TslEventType +import com.yunext.kmp.mqtt.protocol.tsl.TslProperty +import com.yunext.kmp.mqtt.protocol.tsl.property.logger +import com.yunext.kmp.mqtt.protocol.tsl.property.tslHandleParsePropertyKey + +fun Tsl.tslHandleTsl2EventKeys(): Map { + logger.ld("tslHandleTsl2EventKeys a") + return try { + val events = events + if (events.isEmpty()) return mapOf() + val all: MutableMap = mutableMapOf() + events.forEach { event -> + val id = event.identifier + val key = tslHandleParseEventKey(event) + all[id] = key + } + all + } catch (e: Throwable) { + e.printStackTrace() + logger.ld("tslHandleTsl2EventKeys error $e") + mapOf() + } finally { + logger.ld("tslHandleTsl2EventKeys z") + } +} + +private fun tslHandleParseEventKey( + tslEvent: TslEvent +): EventKey { + val type = tslEvent.type + return when (TslEventType.from(type)) { + TslEventType.ALERT -> AlertEventKey( + identifier = tslEvent.identifier, + name = tslEvent.name, + required = tslEvent.required, + desc = tslEvent.desc, + method = tslEvent.desc, + outputData = tslEvent.outputData.map { + val tslProperty = TslProperty.from(it) + tslHandleParsePropertyKey(tslProperty) + }.filterNotNull() + ) + TslEventType.INFO -> InfoEventKey( + identifier = tslEvent.identifier, + name = tslEvent.name, + required = tslEvent.required, + desc = tslEvent.desc, + method = tslEvent.desc, + outputData = tslEvent.outputData.map { + val tslProperty = TslProperty.from(it) + tslHandleParsePropertyKey(tslProperty) + }.filterNotNull() + ) + TslEventType.ERROR -> ErrorEventKey( + identifier = tslEvent.identifier, + name = tslEvent.name, + required = tslEvent.required, + desc = tslEvent.desc, + method = tslEvent.desc, + outputData = tslEvent.outputData.map { + val tslProperty = TslProperty.from(it) + tslHandleParsePropertyKey(tslProperty) + }.filterNotNull() + ) + } + + +} \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyKey.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyKey.kt new file mode 100644 index 0000000..6279f6f --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyKey.kt @@ -0,0 +1,353 @@ +package com.yunext.kmp.mqtt.protocol.tsl.property + +import com.yunext.kmp.common.util.currentTime +import com.yunext.kmp.mqtt.protocol.tsl.TslPropertyType + +sealed interface PropertyKey { + /* 属性读写类型:只读(r)或读写(rw) */ + val accessMode: String + + /* 是否是标准功能的必选属性(保留)*/ + val required: Boolean + val desc: String + val identifier: String + val name: String + val item: Boolean + get() = false + val type: TslPropertyType +} + +class IntPropertyKey( + override val item: Boolean = false, + override val accessMode: String, + override val required: Boolean, + override val desc: String, + override val identifier: String, + override val name: String, + val max: Int, + val min: Int, + val unit: String, + val step: String +) : PropertyKey { + override val type: TslPropertyType + get() = TslPropertyType.INT + + companion object { + internal val EMPTY = IntPropertyKey(false, "", false, "", "", "", 0, 0, "", "") + + + } +} + +class FloatPropertyKey( + override val item: Boolean = false, + override val accessMode: String, + override val required: Boolean, + override val desc: String, + override val identifier: String, + override val name: String, + val max: Float, val min: Float, val unit: String, val step: String +) : PropertyKey { + override val type: TslPropertyType + get() = TslPropertyType.FLOAT + + companion object { + internal val EMPTY = FloatPropertyKey(false, "", false, "", "", "", 0f, 0f, "", "") + } +} + +class DoublePropertyKey( + override val item: Boolean = false, + override val accessMode: String, + override val required: Boolean, + override val desc: String, + override val identifier: String, + override val name: String, + val max: Double, val min: Double, val unit: String, val step: String +) : PropertyKey { + override val type: TslPropertyType + get() = TslPropertyType.DOUBLE + + companion object { + internal val EMPTY = DoublePropertyKey(false, "", false, "", "", "", 0.0, 0.0, "", "") + } +} + +class TextPropertyKey( + override val item: Boolean = false, + override val accessMode: String, + override val required: Boolean, + override val desc: String, + override val identifier: String, + override val name: String, + val length: Int +) : PropertyKey { + override val type: TslPropertyType + get() = TslPropertyType.TEXT + + companion object { + internal val EMPTY = TextPropertyKey(false, "", false, "", "", "", 0) + } +} + +class DatePropertyKey( + override val item: Boolean = false, + override val accessMode: String, + override val required: Boolean, + override val desc: String, + override val identifier: String, + override val name: String, +) : PropertyKey { + override val type: TslPropertyType + get() = TslPropertyType.DATE + + companion object { + internal val EMPTY = DatePropertyKey(false, "", false, "", "", "") + } +} + +class BooleanPropertyKey( + override val item: Boolean = false, + override val accessMode: String, + override val required: Boolean, + override val desc: String, + override val identifier: String, + override val name: String, + val specs: List> +) : PropertyKey { + override val type: TslPropertyType + get() = TslPropertyType.BOOL +} + + +sealed class EnumPropertyKey() : PropertyKey { + override val type: TslPropertyType + get() = TslPropertyType.INT + abstract val enumType: TslPropertyType + +} + +class IntEnumPropertyKey( + override val item: Boolean = false, + override val accessMode: String, + override val required: Boolean, + override val desc: String, + override val identifier: String, + override val name: String, + val specs: List +) : EnumPropertyKey() { + override val enumType = TslPropertyType.INT + override val type: TslPropertyType + get() = TslPropertyType.ENUM + + +} + +class TextEnumPropertyKey( + override val item: Boolean = false, + override val accessMode: String, + override val required: Boolean, + override val desc: String, + override val identifier: String, + override val name: String, + val specs: List +) : EnumPropertyKey() { + override val enumType = TslPropertyType.TEXT + override val type: TslPropertyType + get() = TslPropertyType.ENUM +} + +sealed class ArrayPropertyKey( + override val item: Boolean = false, + override val accessMode: String, + override val required: Boolean, + override val desc: String, + override val identifier: String, + override val name: String, + val size: Int +) : PropertyKey { + override val type: TslPropertyType + get() = TslPropertyType.ARRAY + abstract val itemType: TslPropertyType +} + +class IntArrayPropertyKey( + item: Boolean = false, + accessMode: String, + required: Boolean, + desc: String, + identifier: String, + name: String, + size: Int, +// val items: List +) : ArrayPropertyKey(item, accessMode, required, desc, identifier, name, size) { + override val itemType: TslPropertyType = TslPropertyType.INT +} + +class FloatArrayPropertyKey( + + item: Boolean = false, + accessMode: String, + required: Boolean, + desc: String, + identifier: String, + name: String, + size: Int, +) : ArrayPropertyKey(item, accessMode, required, desc, identifier, name, size) { + override val itemType: TslPropertyType = TslPropertyType.FLOAT +} + + +class DoubleArrayPropertyKey( + + item: Boolean = false, + accessMode: String, + required: Boolean, + desc: String, + identifier: String, + name: String, + size: Int, +) : ArrayPropertyKey(item, accessMode, required, desc, identifier, name, size) { + override val itemType: TslPropertyType = TslPropertyType.DOUBLE +} + + +class TextArrayPropertyKey( + item: Boolean = false, + accessMode: String, + required: Boolean, + desc: String, + identifier: String, + name: String, + size: Int, +) : ArrayPropertyKey(item, accessMode, required, desc, identifier, name, size) { + override val itemType: TslPropertyType = TslPropertyType.TEXT +} + +class StructArrayPropertyKey( + item: Boolean = false, + accessMode: String, + required: Boolean, + desc: String, + identifier: String, + name: String, + size: Int, + val itemKeys: List +) : ArrayPropertyKey(item, accessMode, required, desc, identifier, name, size) { + override val itemType: TslPropertyType = TslPropertyType.STRUCT +} + + +class StructPropertyKey( + override val accessMode: String, + override val required: Boolean, + override val desc: String, + override val identifier: String, + override val name: String, + val items: List, + /*构造出来的*/ + val fake: Boolean = false +) : PropertyKey { + override val type: TslPropertyType + get() = TslPropertyType.STRUCT + + companion object { + fun fake(items: List): StructPropertyKey { + return StructPropertyKey( + accessMode = "rw", + required = true, + desc = "fake_StructArrayPropertyKey_desc", + identifier = "fake_StructArrayPropertyKey_identifier_${currentTime()}", + name = "fake_StructArrayPropertyKey_name", + items = items, + fake = true + ) + } + } + +} + +val PropertyKey.display: String + get() { + return "{\n" + + " [identifier]$identifier\n" + + " [name]$name\n" + + " [type]${type.text}\n" + + " [spec]$specDisplay\n" + + "\n}" + } + +val PropertyKey.specDisplay: String + get() { + return when (this) { + is DoubleArrayPropertyKey -> "[大小]${this.size}\n[子类型]${this.itemType.text}" + is FloatArrayPropertyKey -> "[大小]${this.size}\n[类型]${this.itemType.text}" + is IntArrayPropertyKey -> "[大小]${this.size}\n[类型]${this.itemType.text}" + is StructArrayPropertyKey -> "[大小]${this.size}\n[类型]${this.itemType.text}" // todo + is TextArrayPropertyKey -> "[大小]${this.size}\n[类型]${this.itemType.text}" + is BooleanPropertyKey -> "[取值范围]\n${ + this.specs.map { + "[${it.first}]:${it.second}" + }.joinToString("\n") + }" + is DatePropertyKey -> "[说明]\nString类型UTC毫秒" + is DoublePropertyKey -> "[最大值]${this.max}\n[最小值]${this.min}\n[步长]${this.step}\n[单位]${this.unit}" + is IntEnumPropertyKey -> "[子类型]${this.enumType}\n[取值范围]\n${ + this.specs.map { + " [${it.value}]:${it.desc}" + }.joinToString("\n") + }" + is TextEnumPropertyKey -> "[子类型]${this.enumType}\n[取值范围]\n${ + this.specs.map { + " [${it.value}]:${it.desc}" + }.joinToString("\n") + }" + is FloatPropertyKey -> "[最大值]${this.max}\n[最小值]${this.min}\n[步长]${this.step}\n[单位]${this.unit}" + is IntPropertyKey -> "[最大值]${this.max}\n[最小值]${this.min}\n[步长]${this.step}\n[单位]${this.unit}" + is StructPropertyKey -> "结构: ${ + this.items.map { + "[${it.identifier}]:${it.type}" + }.joinToString("\n") + }" + is TextPropertyKey -> "[最大长度]${this.length}" + } + } + +val PropertyKey.specDisplayDebug: String + get() { + return when (this) { + is DoubleArrayPropertyKey -> "[大小]${this.size}\n[子类型]${this.itemType.text}" + is FloatArrayPropertyKey -> "[大小]${this.size}\n[类型]${this.itemType.text}" + is IntArrayPropertyKey -> "[大小]${this.size}\n[类型]${this.itemType.text}" + is StructArrayPropertyKey -> "[大小]${this.size}\n[类型]${this.itemType.text}" // todo + is TextArrayPropertyKey -> "[大小]${this.size}\n[类型]${this.itemType.text}" + is BooleanPropertyKey -> "[取值范围]\n${ + this.specs.map { + "[${it.first}]:${it.second}" + }.joinToString("\n") + }" + is DatePropertyKey -> "[说明]\nString类型UTC毫秒" + is DoublePropertyKey -> "[最大值]${this.max}\n[最小值]${this.min}\n[步长]${this.step}\n[单位]${this.unit}" + is IntEnumPropertyKey -> "[子类型]${this.enumType}\n[取值范围]\n${ + this.specs.map { + " [${it.value}]:${it.desc}" + }.joinToString("\n") + }" + is TextEnumPropertyKey -> "[子类型]${this.enumType}\n[取值范围]\n${ + this.specs.map { + " [${it.value}]:${it.desc}" + }.joinToString("\n") + }" + is FloatPropertyKey -> "[最大值]${this.max}\n[最小值]${this.min}\n[步长]${this.step}\n[单位]${this.unit}" + is IntPropertyKey -> "[最大值]${this.max}\n[最小值]${this.min}\n[步长]${this.step}\n[单位]${this.unit}" + is StructPropertyKey -> "结构: ${ + this.items.map { + "[${it.identifier}]:${it.type}" + }.joinToString("\n") + }" + is TextPropertyKey -> "[最大长度]${this.length}" + } + } + +val PropertyKey.keyDisplay: String + get() = "${name}(${identifier})" \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyValue.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyValue.kt new file mode 100644 index 0000000..22b4630 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyValue.kt @@ -0,0 +1,245 @@ +package com.yunext.kmp.mqtt.protocol.tsl.property + +import com.yunext.kmp.mqtt.protocol.tsl.TslException + +sealed interface PropertyValue : DisplayValue { + val key: KEY +} + +interface DisplayValue { + val displayValue: T +} + +class IntPropertyValue(override val key: IntPropertyKey, val value: Int?) : + PropertyValue { + override val displayValue: String + get() = "${value ?: 0}" + + companion object { + val EMPTY = IntPropertyValue(IntPropertyKey.EMPTY, null) + fun createEmptyValue(source: Int) = IntPropertyValue(IntPropertyKey.EMPTY, source) + } +} + +class BoolPropertyValue( + override val key: BooleanPropertyKey, val value: Boolean? +) : + PropertyValue { + override val displayValue: String + get() = "${value ?: false}" + + data class KeyValue(val value: Int, val desc: String) { + companion object { + val EMPTY = KeyValue(-_NAN_, "") + } + } + + companion object { + internal const val _TRUE_ = 1 + internal const val _FALSE_ = 0 + internal const val _NAN_ = -999 + } +} + +val BoolPropertyValue.KeyValue.boolValue: Boolean + get() = this.value == BoolPropertyValue._TRUE_ + +val BoolPropertyValue.keyValues + get() = this.key.specs.map { + BoolPropertyValue.KeyValue(it.first, it.second) + } + +fun BoolPropertyValue.from(source: Boolean?): BoolPropertyValue.KeyValue { + // 默认0:失败 1:成功 + val specs = key.specs + val trueInt = BoolPropertyValue._TRUE_ + val falseInt = BoolPropertyValue._FALSE_ + return when (source) { + true -> BoolPropertyValue.KeyValue(trueInt, specs.singleOrNull { p -> + p.first == trueInt + }?.second ?: "") + false -> BoolPropertyValue.KeyValue(falseInt, specs.singleOrNull { p -> + p.first == falseInt + }?.second ?: "") + null -> BoolPropertyValue.KeyValue.EMPTY + } +} + +fun BoolPropertyValue.KeyValue.isEmpty(): Boolean { + return this == BoolPropertyValue.KeyValue.EMPTY +} + +class FloatPropertyValue(override val key: FloatPropertyKey, val value: Float?) : + PropertyValue { + override val displayValue: String + get() = "${value ?: 0f}" + + companion object { + fun createEmptyValue(source: Float) = FloatPropertyValue(FloatPropertyKey.EMPTY, source) + } +} + +class DoublePropertyValue(override val key: DoublePropertyKey, val value: Double?) : + PropertyValue { + override val displayValue: String + get() = "${value ?: 0.0}" + + companion object { + fun createEmptyValue(source: Double) = DoublePropertyValue(DoublePropertyKey.EMPTY, source) + } +} + +class TextPropertyValue(override val key: TextPropertyKey, val value: String?) : + PropertyValue { + override val displayValue: String + get() = value ?: "" + + companion object { + fun createEmptyValue(source: String) = TextPropertyValue(TextPropertyKey.EMPTY, source) + } +} + +class DatePropertyValue(override val key: DatePropertyKey, val value: String?) : + PropertyValue { + override val displayValue: String + get() = value ?: "" +} + +class IntEnumPropertyValue(override val key: IntEnumPropertyKey, val keyValue: KeyValue) : + PropertyValue { + override val displayValue: String + get() = if (isEmpty()) "" else "[${keyValue.value}]${keyValue.desc}" + + data class KeyValue(val value: Int, val desc: String) { + companion object { + internal val EMPTY = KeyValue(-999, "") + } + } + + companion object { + fun from(key: IntEnumPropertyKey, value: Int? = null) = + IntEnumPropertyValue(key, key.specs.singleOrNull { + value == it.value + } ?: KeyValue.EMPTY) + } +} + +fun IntEnumPropertyValue.isEmpty(): Boolean { + return keyValue == IntEnumPropertyValue.KeyValue.EMPTY +} + +fun IntEnumPropertyValue.KeyValue.isEmpty(): Boolean { + return this == IntEnumPropertyValue.KeyValue.EMPTY +} + +fun IntEnumPropertyValue.keyValues(): List { + return this.key.specs +} + +class TextEnumPropertyValue(override val key: TextEnumPropertyKey, val keyValue: KeyValue) : + PropertyValue { + override val displayValue: String + get() = if (isEmpty()) "" else "[${keyValue.value}]${keyValue.desc}" + + data class KeyValue(val value: String, val desc: String) { + companion object { + internal val EMPTY = KeyValue("", "") + } + } + + companion object { + fun from(key: TextEnumPropertyKey, value: String? = null) = + TextEnumPropertyValue(key, key.specs.singleOrNull { + value == it.value + } ?: KeyValue.EMPTY) + } + +} + +fun TextEnumPropertyValue.isEmpty(): Boolean { + return keyValue == TextEnumPropertyValue.KeyValue.EMPTY +} + +fun TextEnumPropertyValue.KeyValue.isEmpty(): Boolean { + return this == TextEnumPropertyValue.KeyValue.EMPTY +} + +fun TextEnumPropertyValue.keyValues(): List { + return this.key.specs +} + +sealed class ArrayPropertyValue( + override val key: ArrayPropertyKey, +) : PropertyValue + +class IntArrayPropertyValue( + override val key: IntArrayPropertyKey, + val value: List +) : ArrayPropertyValue(key) { + override val displayValue: String + get() = if (value.isEmpty()) "[]" else "[\n" + value.joinToString(",") + "\n]" +} + +class FloatArrayPropertyValue( + override val key: FloatArrayPropertyKey, + val value: List +) : ArrayPropertyValue(key) { + override val displayValue: String + get() = if (value.isEmpty()) "[]" else "[\n" + value.joinToString(",") + "\n]" +} + +class DoubleArrayPropertyValue( + override val key: DoubleArrayPropertyKey, + val value: List +) : ArrayPropertyValue(key) { + override val displayValue: String + get() = if (value.isEmpty()) "[]" else "[\n" + value.joinToString(",") + "\n]" + +} + + +class TextArrayPropertyValue( + override val key: TextArrayPropertyKey, + val value: List +) : ArrayPropertyValue(key) { + override val displayValue: String + get() = if (value.isEmpty()) "[]" else "[\n" + value.joinToString(",") + "\n]" +} + +class StructArrayPropertyValue( + override val key: StructArrayPropertyKey, + val value: List +) : ArrayPropertyValue(key) { + override val displayValue: String + get() = if (value.isEmpty()) "[]" else "[\n" + value.joinToString("") { + "${it.displayValue}\n" + } + "\n]" +} + +class StructPropertyValue( + override val key: StructPropertyKey, + val itemValues: Map> +) : PropertyValue, DisplayValue { + override val displayValue: String + get() = "{\n" + itemValues.values.map { v -> + "${v.key.identifier} : " + + when (v) { + is DoubleArrayPropertyValue -> throw TslException("StructPropertyValue属性值${this.key.type} 不支持 ${v.key.type}") + is FloatArrayPropertyValue -> throw TslException("StructPropertyValue属性值${this.key.type} 不支持 ${v.key.type}") + is IntArrayPropertyValue -> throw TslException("StructPropertyValue属性值${this.key.type} 不支持 ${v.key.type}") + is TextArrayPropertyValue -> throw TslException("StructPropertyValue属性值${this.key.type} 不支持 ${v.key.type}") + is BoolPropertyValue -> v.displayValue + is DatePropertyValue -> v.displayValue + is DoublePropertyValue -> v.displayValue + is FloatPropertyValue -> v.displayValue + is IntEnumPropertyValue -> v.displayValue + is IntPropertyValue -> v.displayValue + is StructPropertyValue -> throw TslException("StructPropertyValue属性值${this.key.type} 不支持 ${v.key.type}") + is TextEnumPropertyValue -> v.displayValue + is TextPropertyValue -> v.displayValue + is StructArrayPropertyValue -> throw TslException("StructPropertyValue属性值${this.key.type} 不支持 ${v.key.type}") + } + "," + }.toList().joinToString("\n") + "\n}" +} + + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyValueExt.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyValueExt.kt new file mode 100644 index 0000000..c1f9b51 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/property/PropertyValueExt.kt @@ -0,0 +1,1029 @@ +package com.yunext.kmp.mqtt.protocol.tsl.property + +import com.yunext.kmp.common.logger.HDLogger +import com.yunext.kmp.mqtt.protocol.tsl.Tsl +import com.yunext.kmp.mqtt.protocol.tsl.TslException +import com.yunext.kmp.mqtt.protocol.tsl.TslItemProperty +import com.yunext.kmp.mqtt.protocol.tsl.TslProperty +import com.yunext.kmp.mqtt.protocol.tsl.TslPropertyType + + +/** + * ===========================更新Map[1]================================ + * 从Tsl初始化属性值 + * 初始化的数据 用于后面的数据更新,见[tslHandleUpdatePropertyValueFromJson] + * Tsl: 物模型语言 + * + * @return 物的属性值map key为物的属性id 值为PropertyValue + * ============================================================ + */ +fun Tsl.tslHandleTsl2PropertyValues(): Map> { + logger.ld("tslHandleTsl2PropertyValues") + val parseTsl2PropertyKeys = this.tslHandleParsePropertyKeys() + return parseTsl2PropertyKeys.map { + val sIdentifier = it.key + val sPropertyKey = it.value + val result: Pair> = + sIdentifier to sPropertyKey.tslHandleDefaultValue() + result + }.toMap().also { + logger.ld("tslHandleTsl2PropertyValues end. size= ${it.size}") + } +} + +/** + * StructArrayPropertyKey 创建默认的struct对象 + */ +fun StructArrayPropertyKey.defaultItemValue(): StructPropertyValue { + val key: StructPropertyKey = StructPropertyKey.fake(this.itemKeys) + val v = this.itemKeys.map { + it to it.tslHandleDefaultValue() + }.toMap() + return StructPropertyValue(key, v) +} + +/* + * 每个PropertyKey 初始化后的默认值 + * PropertyKey -> PropertyValue + */ +fun PropertyKey.tslHandleDefaultValue(): PropertyValue<*> { + return when (this) { + is ArrayPropertyKey -> { + val arrayPropertyKey: ArrayPropertyKey = this + when (arrayPropertyKey) { + is IntArrayPropertyKey -> IntArrayPropertyValue(arrayPropertyKey, listOf()) + is DoubleArrayPropertyKey -> DoubleArrayPropertyValue( + arrayPropertyKey, + listOf() + ) + + is FloatArrayPropertyKey -> FloatArrayPropertyValue(arrayPropertyKey, listOf()) + is TextArrayPropertyKey -> TextArrayPropertyValue(arrayPropertyKey, listOf()) + is StructArrayPropertyKey -> StructArrayPropertyValue(arrayPropertyKey, listOf()) + } + } + + is BooleanPropertyKey -> BoolPropertyValue(this, null) + is DatePropertyKey -> DatePropertyValue(this, null) + is DoublePropertyKey -> DoublePropertyValue(this, null) + is IntEnumPropertyKey -> IntEnumPropertyValue.from(this) + is TextEnumPropertyKey -> TextEnumPropertyValue.from(this) + is FloatPropertyKey -> FloatPropertyValue(this, null) + is IntPropertyKey -> IntPropertyValue(this, null) + is StructPropertyKey -> { + val items = this.items + val map = items.map { propertyKey -> + propertyKey to propertyKey.tslHandleDefaultValue() + }.toMap() + StructPropertyValue(this, map) + } + + is TextPropertyKey -> TextPropertyValue(this, null) + } +} + + +/** + * =============================更新Map[2]=============================== + * 从json数据更新数据 + * + * @param map 原来的数据 + * @param json json + * @return 更新过后的数据 + 更新的数据 + * ============================================================ + */ +fun tslHandleUpdatePropertyValuesFromJson( + map: Map>, + json: String? = null, +): Pair>, Map>> { + json ?: return map to mapOf() + if (json.isBlank()) return map to mapOf() + fun i(msg: Any?, lows: Boolean = false) { + val prefix = if (lows) "----" else "" + logger.li(prefix + msg) + } + // 原始的数据 + val oldMap = map.toMutableMap() + val temp: MutableMap> = mutableMapOf() + i("###############################################START") + i("tslHandleUpdatePropertyValuesFromJson start...") + i("json = $json") + i("size = " + oldMap.size) + // 从json入手 有什么更新什么。【前提条件】 第一次初始化value都全部包含了,也必须按照TSL严格初始化,设置默认值。 + val iterator = map.iterator() + while (iterator.hasNext()) { + val next = iterator.next() + val identifier = next.key + val propertyKey = next.value.key + val value = next.value + i("【$identifier】${propertyKey.type} -${next.value.key}") + val fromJson = value.tslHandleUpdatePropertyValueFromJson(json) + if (fromJson != null) { + oldMap[identifier] = fromJson + temp[identifier] = fromJson + } + + } + i("###############################################END") + return oldMap to temp +} + +/** + * =============================更新Map[3]=============================== + * 从list中更新map + * @param map 原始的map + * @param list 新的值 需要更新的值 + * @return 得到新的值map + * =========================================================== + */ +fun tslHandleUpdatePropertyValues( + map: Map>, + list: List>, +): Map> { + if (list.isEmpty()) return map + fun i(msg: Any?, lows: Boolean = false) { + val prefix = if (lows) "----" else "" + logger.li(prefix + msg) + } + // 原始的数据 + val oldMap = map.toMutableMap() + i("###############################################START") + i("tslHandleUpdatePropertyValues start...") + i("list = $list") + i("size = " + oldMap.size) + val iterator = map.iterator() + while (iterator.hasNext()) { + val next = iterator.next() + val identifier = next.key + list.forEach { listPV -> + if (listPV.key.identifier == identifier) { + oldMap[identifier] = listPV + } + } + } + i("###############################################END") + return oldMap +} + +/** + * ============================================================ + * 把物的属性值转成键值对,以便生成json数据 + * + * @param structInArray 当是array时候,默认值 + * @return 键值对 key为物的属性id,值为any + * ============================================================ + */ +fun PropertyValue<*>.tslHandleToJsonValue(structInArray: Boolean = false): Pair { + val identifier = this.key.identifier + when (this) { + is DoubleArrayPropertyValue -> { + val propertyKey = this.key + val size = propertyKey.size + return identifier to this.value.take(size) + } + + is FloatArrayPropertyValue -> { + val propertyKey = this.key + val size = propertyKey.size + return identifier to this.value.take(size) + } + + is IntArrayPropertyValue -> { + val propertyKey = this.key + val size = propertyKey.size + return identifier to this.value.take(size) + } + + is TextArrayPropertyValue -> { + val propertyKey = this.key + val size = propertyKey.size + return identifier to this.value.take(size) + } + + is BoolPropertyValue -> { + return identifier to this.value.run { + this ?: if (structInArray) false else null + } + } + + is DatePropertyValue -> { + return identifier to this.value.run { + this ?: if (structInArray) "" else null + } + } + + is DoublePropertyValue -> { + return identifier to this.value.run { + this ?: if (structInArray) 0.0 else null + } + } + + is FloatPropertyValue -> { + return identifier to this.value.run { + this ?: if (structInArray) 0f else null + } + } + + is IntEnumPropertyValue -> { + val v = if (this.isEmpty()) { + if (structInArray) 0 else null + } else { + this.keyValue.value + } + return identifier to v + } + + is IntPropertyValue -> { + return identifier to this.value.run { + this ?: if (structInArray) false else null + } + } + + is StructPropertyValue -> { + val itemValues = this.itemValues + val map: MutableMap = mutableMapOf() + itemValues.forEach { + val k = it.key.identifier + val v = it.value + val gsonValue = v.tslHandleToJsonValue().second + if (gsonValue != null) { + map[k] = gsonValue + } + } + return identifier to map + } + + is TextEnumPropertyValue -> { + val v = if (this.isEmpty()) { + if (structInArray) "" else null + } else { + this.keyValue.value + } + return identifier to v + } + + is TextPropertyValue -> { + return identifier to this.value.run { + this ?: if (structInArray) "" else null + } + } + + is StructArrayPropertyValue -> { + // :{"twins_array":[{"first":"fake_StructArrayPropertyKey_identifier","second":{"twins_array_a":0.0555,"twins_array_b":true}},{"first":"fake_StructArrayPropertyKey_identifier","second":{"twins_array_a":555866.0}}]}} + val propertyKey = this.key + val size = propertyKey.size + val sourceList = this.value + val list: MutableList = mutableListOf() + // 1.先遍历StructArrayPropertyValue::value + sourceList.take(size).forEach { structPropertyValue: StructPropertyValue -> + // 2.再遍历StructPropertyValue::itemValues + val innerMap: MutableMap = mutableMapOf() + structPropertyValue.itemValues.forEach { innerItem -> + val innerKey = innerItem.key + val innerValue = innerItem.value + val finalValue = innerValue.tslHandleToJsonValue(true) + // 3.取出属性键值对,组成struct,即innerMap + innerMap[innerKey.identifier] = finalValue.second + } + list.add(innerMap) + } + return identifier to list + } + } +} + +fun List>.tslHandleToJsonValues(): Map { + val map: MutableMap = mutableMapOf() + this.map { propertyValue -> + val r = propertyValue.tslHandleToJsonValue() + val v = r.second + if (v != null) { + map[r.first] = v + } + } + return map +} + +// TODO("序列化") +//fun List>.tslHandleToJsonObject(): String { +// val jsonObject = JSONObject() +// this.forEach { propertyValue -> +// val tslHandleToJsonValue = propertyValue.tslHandleToJsonValue() +// val v = tslHandleToJsonValue.second +// if (v != null) { +// jsonObject.put(propertyValue.key.identifier, v) +// } +// } +// return jsonObject.toString() +//} + +/** + * 解析TslProperty转化成分类的PropertyKey + * + * @param tslProperty 未处理未分类过的原始的属性 + * @return 分类好的PropertyKey + */ +internal fun tslHandleParsePropertyKey( + tslProperty: TslProperty, +): PropertyKey? { + val identifier = tslProperty.identifier + val inner = tslProperty.inner + val prefix = if (inner) "|————" else "|" + return when (tslProperty.dataType) { + TslPropertyType.INT -> { + logger.ld("$prefix$identifier int") + IntPropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + max = tslProperty.specs?.max?.toString()?.toDouble()?.toInt() ?: 0, + min = tslProperty.specs?.min?.toString()?.toDouble()?.toInt() ?: 0, + unit = tslProperty.specs?.unit?.toString() ?: "", + step = tslProperty.specs?.step?.toString() ?: "" + ) + } + + TslPropertyType.FLOAT -> { + logger.ld("$prefix$identifier float") + FloatPropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + max = tslProperty.specs?.max?.toString()?.toDouble()?.toFloat() ?: 0f, + min = tslProperty.specs?.min?.toString()?.toDouble()?.toFloat() ?: 0f, + unit = tslProperty.specs?.unit?.toString() ?: "", + tslProperty.specs?.step?.toString() ?: "" + ) + } + + TslPropertyType.DOUBLE -> { + logger.ld("$prefix$identifier double") + DoublePropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + max = tslProperty.specs?.max?.toString()?.toDouble() ?: 0.0, + min = tslProperty.specs?.min?.toString()?.toDouble() ?: 0.0, + unit = tslProperty.specs?.unit?.toString() ?: "", + tslProperty.specs?.step?.toString() ?: "" + ) + } + + TslPropertyType.TEXT -> { + logger.ld("$prefix$identifier text") + TextPropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + length = tslProperty.specs?.length?.toString()?.toInt() ?: 0 + ) + + } + + TslPropertyType.DATE -> { + logger.ld("$prefix$identifier date") + DatePropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + ) + } + + TslPropertyType.BOOL -> { + logger.ld("$prefix$identifier bool") + BooleanPropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + + specs = tslProperty.specs?.enumDesc?.let { + try { + val json = it.toString() + parseEnumText(json) + } catch (e: Throwable) { + e.printStackTrace() + null + } + } + ?: throw TslException("bool类型值异常:${tslProperty.specs?.enumDesc} @${identifier}") + ) + } + + TslPropertyType.ENUM -> { + logger.ld("$prefix$identifier enum") + val type = tslProperty.specs?.type?.toString() ?: "" + when (TslPropertyType.from(type)) { + TslPropertyType.INT -> IntEnumPropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + specs = tslProperty.specs?.enumDesc?.let { + try { + val json = it.toString() + parseEnumText(json).map { pair -> + IntEnumPropertyValue.KeyValue(pair.first, pair.second) + } + } catch (e: Throwable) { + e.printStackTrace() + null + } + } ?: listOf() + ) + + TslPropertyType.TEXT -> TextEnumPropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + specs = tslProperty.specs?.enumDesc?.let { + try { + val json = it.toString() + parseEnumTextString(json).map { pair -> + TextEnumPropertyValue.KeyValue(pair.first, pair.second) + } + } catch (e: Throwable) { + e.printStackTrace() + null + } + } ?: listOf() + ) + + else -> throw TslException("enum不支持的格式:$type @$identifier") + } + + } + + TslPropertyType.STRUCT -> { + logger.ld("$prefix$identifier struct inner:${tslProperty.inner}") + if (tslProperty.inner) return null + StructPropertyKey( + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + items = run { + val properties = (tslProperty.specs?.item?.let { + TslItemProperty.from(it.toString()) + }) + if (properties == null || properties.isEmpty()) throw TslException("struct没有指定的item") + properties.map { + tslHandleParsePropertyKey(TslProperty.from(it)) + }.filterNotNull() + } + ) + } + + TslPropertyType.ARRAY -> { + logger.ld("$prefix$identifier array inner:${tslProperty.inner}") + if (tslProperty.inner) return null + when (val itemType = TslPropertyType.from(tslProperty.specs?.type?.toString() ?: "")) { + TslPropertyType.INT -> { + IntArrayPropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + size = tslProperty.specs?.length ?: 0 + ) + } + + TslPropertyType.FLOAT -> { + FloatArrayPropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + size = tslProperty.specs?.length ?: 0 + ) + } + + TslPropertyType.DOUBLE -> DoubleArrayPropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + size = tslProperty.specs?.length ?: 0 + ) + + TslPropertyType.TEXT -> TextArrayPropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + size = tslProperty.specs?.length ?: 0 + ) + + TslPropertyType.DATE -> throw TslException("array不支持类型$itemType @$identifier ") + TslPropertyType.BOOL -> throw TslException("array不支持类型$itemType @$identifier ") + TslPropertyType.ENUM -> throw TslException("array不支持类型$itemType @$identifier ") + TslPropertyType.STRUCT -> + StructArrayPropertyKey( + false, + tslProperty.accessMode, + tslProperty.required, + tslProperty.desc, + tslProperty.identifier, + tslProperty.name, + size = tslProperty.specs?.length ?: 0, + itemKeys = tslProperty.specs?.item?.let { + val json = it.toString() + val itemProperty = TslItemProperty.from(json) + if (itemProperty.isEmpty()) throw TslException("struct没有指定的item") + itemProperty.map { + tslHandleParsePropertyKey(TslProperty.from(it)) + }.filterNotNull() + } ?: listOf() + ) + + TslPropertyType.ARRAY -> { + throw TslException("array不支持类型$itemType @$identifier ") + } + } + + } + } +} + + +private fun parseEnumTextString(json: String): List> { + if (json.isEmpty()) return listOf() + return try { + // TODO("序列化") + listOf() + //gson.fromJson>(json, Map::class.java).toList() + } catch (e: Throwable) { + listOf() + } +} + +private fun parseEnumText(json: String): List> { + if (json.isEmpty()) return listOf() + return try { +// gson.fromJson>(json, Map::class.java).map { +// it.key.toInt() to it.value +// } + // TODO("序列化") + listOf() + } catch (e: Throwable) { + listOf() + } +} + +/** + * 从json更新老的数据 + * 只修改获得的值,未获得的值保持原来的值 + * + * @param json 收到的json数据 + * @return 新的值 + * + */ +fun PropertyValue<*>.tslHandleUpdatePropertyValueFromJson(json: String?): PropertyValue<*>? { + logger.ld(" tslHandleUpdatePropertyValueFromJson-${this.key.identifier} json:$json") + json ?: return null + if (json.isBlank()) return null + // TODO("序列化") + return null +// return when (this) { +// is DoubleArrayPropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// tryGetJSON(json)?.let { jsonObject -> +// val jsonArray = jsonObject.getJSONArray(sIdentifier) +// val list: MutableList = mutableListOf() +// val length = jsonArray.length() +// if (length > 0) { +// (0 until length).forEach { +// try { +// val r = jsonArray.getDouble(it) +// list.add(r) +// } catch (e: Throwable) { +// e.printStackTrace() +// } +// } +// } +// DoubleArrayPropertyValue( +// sPropertyKey, +// list +// ) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is FloatArrayPropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// tryGetJSON(json)?.let { jsonObject -> +// val jsonArray = jsonObject.getJSONArray(sIdentifier) +// val list: MutableList = mutableListOf() +// val length = jsonArray.length() +// if (length > 0) { +// (0 until length).forEach { +// try { +// val r = jsonArray.getDouble(it) +// list.add(r.toFloat()) +// } catch (e: Throwable) { +// e.printStackTrace() +// } +// } +// } +// FloatArrayPropertyValue( +// sPropertyKey, +// list +// ) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is IntArrayPropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// val fv: IntArrayPropertyValue? = tryGetJSON(json)?.let { jsonObject -> +// val jsonArray = jsonObject.getJSONArray(sIdentifier) +// val list: MutableList = mutableListOf() +// val length = jsonArray.length() +// if (length > 0) { +// (0 until length).forEach { +// try { +// val r = jsonArray.getInt(it) +// list.add(r) +// } catch (e: Throwable) { +// e.printStackTrace() +// } +// } +// } +// IntArrayPropertyValue( +// sPropertyKey, +// list +// ) +// } +// fv +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is TextArrayPropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// tryGetJSON(json)?.let { jsonObject -> +// val jsonArray = jsonObject.getJSONArray(sIdentifier) +// val list: MutableList = mutableListOf() +// val length = jsonArray.length() +// if (length > 0) { +// (0 until length).forEach { +// try { +// val r = jsonArray.getString(it) +// list.add(r) +// } catch (e: Throwable) { +// e.printStackTrace() +// } +// } +// } +// TextArrayPropertyValue( +// sPropertyKey, +// list +// ) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is BoolPropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// val jsonObject = tryGetJSON(json) +// val v = jsonObject?.getBoolean(sIdentifier) +// if (v == null) { +// null +// } else { +// BoolPropertyValue(sPropertyKey, v) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is DatePropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// val jsonObject = tryGetJSON(json) +// val v = jsonObject?.getString(sIdentifier) +// if (v == null) { +// null +// } else { +// DatePropertyValue(sPropertyKey, v) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is DoublePropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// val jsonObject = tryGetJSON(json) +// val v = jsonObject?.getDouble(sIdentifier) +// if (v == null) { +// null +// } else { +// DoublePropertyValue(sPropertyKey, v) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is FloatPropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// val jsonObject = tryGetJSON(json) +// val v = jsonObject?.getDouble(sIdentifier) +// if (v == null) { +// null +// } else { +// FloatPropertyValue(sPropertyKey, v.toFloat()) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is TextEnumPropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// val jsonObject = tryGetJSON(json) +// val v = jsonObject?.getString(sIdentifier) +// if (v == null) { +// null +// } else { +// TextEnumPropertyValue.from(sPropertyKey, v) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is TextPropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// val jsonObject = tryGetJSON(json) +// val v = jsonObject?.getString(sIdentifier) +// if (v == null) { +// null +// } else { +// TextPropertyValue(sPropertyKey, v) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is IntEnumPropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// val jsonObject = tryGetJSON(json) +// val v = jsonObject?.getInt(sIdentifier) +// if (v == null) { +// null +// } else { +// IntEnumPropertyValue.from(sPropertyKey, v) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is IntPropertyValue -> { +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// val jsonObject = tryGetJSON(json) +// val v = jsonObject?.getInt(sIdentifier) +// if (v == null) { +// null +// } else { +// IntPropertyValue(sPropertyKey, v) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// null +// } +// } +// is StructPropertyValue -> { +// // {"twins_struct":{"twins_struct_a":55,"twins_struct_b":"hhhhh","twins_struct_c":0.58866,"twins_struct_d":"bbbbb","twins_struct_e":true,"twins_struct_f":1,"twins_struct_g":"dong"}}} +// try { +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// val fake = sPropertyKey.fake +// DefaultLogger.ld("$sIdentifier : fake = $fake") +// if (fake) { +// fun findIdentifierWithBlock(block: (String) -> Boolean) { +// val itemJsonObject = JSONObject(json) +// block.invoke(itemJsonObject.toString()) +// } +// +// val itemValues = this.itemValues +// DefaultLogger.ld("itemValues = ${itemValues.size}") +// val sMap: MutableMap> = itemValues.toMutableMap() +// itemValues.forEach { sItem -> +// val sPkIdentifier = sItem.key +// val sValue = sItem.value +// findIdentifierWithBlock { +// val fromJson = sValue.tslHandleUpdatePropertyValueFromJson(it) +// if (fromJson != null) { +// sMap[sPkIdentifier] = fromJson +// true +// } else { +// false +// } +// } +// } +// StructPropertyValue(sPropertyKey, sMap) +// } else { +// fun findIdentifierWithBlockNormal(block: (String) -> Boolean) { +// // 处理 正常的struct +// val jsonObject = tryGetJSON(json) +// val itemJsonObject = jsonObject?.getJSONObject(sIdentifier) ?: return +// block.invoke(itemJsonObject.toString()) +// } +// +// val itemValues = this.itemValues +// val sMap: MutableMap> = itemValues.toMutableMap() +// itemValues.forEach { sItem -> +// val sPkIdentifier = sItem.key +// val sValue = sItem.value +// findIdentifierWithBlockNormal { +// val fromJson = sValue.tslHandleUpdatePropertyValueFromJson(it) +// if (fromJson != null) { +// sMap[sPkIdentifier] = fromJson +// true +// } else { +// false +// } +// } +// } +// StructPropertyValue(sPropertyKey, sMap) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// DefaultLogger.ld("struct error $e}") +// null +// } finally { +// } +// } +// +// is StructArrayPropertyValue -> { +// try { +// // 更新array数据 +// val sPropertyKey = this.key +// val sIdentifier = sPropertyKey.identifier +// +// tryGetJSON(json)?.let { jsonObject -> +// val jsonArray = jsonObject.getJSONArray(sIdentifier) +// DefaultLogger.ld("### 更新array数据 jsonArray : $jsonArray") +// // [{"twins_array_a":0,"twins_array_b":false}] +// val list: MutableList = mutableListOf() +// val length = jsonArray.length() +// if (length > 0) { +// (0 until length).forEach { +// try { +// val structJson = jsonArray.getJSONObject(it).toString() +// DefaultLogger.ld("### structJson = $structJson") +// val structValue = sPropertyKey.defaultItemValue() +// .tslHandleUpdatePropertyValueFromJson(structJson) +// DefaultLogger.ld("### structValue = $structValue") +// if (structValue != null && structValue is StructPropertyValue) { +// list.add(structValue) +// } +// } catch (e: Throwable) { +// e.printStackTrace() +// } +// } +// } +// +// StructArrayPropertyValue( +// sPropertyKey, +// list +// ) +// } +//// tryGetJSON(json)?.let { jsonObject -> +//// val jsonArray = jsonObject.getJSONArray(sIdentifier) +//// DefaultLogger.ld("### 更新array数据 jsonArray : $jsonArray") +//// val length = jsonArray.length() +//// if (length > 0) { +//// (0 until length).forEach { +//// try { +//// val structJson = jsonArray.getJSONObject(it).toString() +//// DefaultLogger.ld("### structJson = $structJson") +//// val structValue = tslHandleUpdatePropertyValueFromJson(structJson) +//// DefaultLogger.ld("### structValue = $structValue") +//// if (structValue != null && structValue is StructPropertyValue) { +//// list.add(structValue) +//// } +//// } catch (e: Throwable) { +//// e.printStackTrace() +//// } +//// } +//// } +//// StructArrayPropertyValue( +//// sPropertyKey, +//// list +//// ) +//// } +// +// } catch (e: Throwable) { +// e.printStackTrace() +// DefaultLogger.le("### error $e") +// null +// } +// } +// }.also { +// logger.ld(" tslHandleUpdatePropertyValueFromJson end:${it?.displayValue}") +// } +} + +/** + * 解析Tsl 转化成分类的PropertyKey的集合 + * + * @return 分类好的PropertyKey的集合map key为物的属性id,值为解析好的分类的PropertyKey + */ +fun Tsl.tslHandleParsePropertyKeys(): Map { + return try { + logger.ld("tslHandleParsePropertyKeys a") + val properties = properties + if (properties.isEmpty()) return mapOf() + val all: MutableMap = mutableMapOf() + properties.forEach { tslProperty -> + val id = tslProperty.identifier + val key = tslHandleParsePropertyKey(tslProperty) + if (key != null) { + all[id] = key + } + } + all + } catch (e: Throwable) { + e.printStackTrace() + logger.ld("tslHandleParsePropertyKeys error $e") + mapOf() + } finally { + logger.ld("tslHandleParsePropertyKeys z") + } +} + +internal val logger = HDLogger + +internal fun HDLogger.ld(msg: String) { + this.d("_mqtt_PropertyValueExt", msg) +} + +internal fun HDLogger.li(msg: String) { + this.i("_mqtt_PropertyValueExt", msg) +} \ No newline at end of file diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/service/ServiceKey.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/service/ServiceKey.kt new file mode 100644 index 0000000..7bd34ac --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/service/ServiceKey.kt @@ -0,0 +1,44 @@ +package com.yunext.kmp.mqtt.protocol.tsl.service + +import com.yunext.kmp.mqtt.protocol.tsl.TslServiceCallType +import com.yunext.kmp.mqtt.protocol.tsl.property.PropertyKey + +sealed interface ServiceKey { + val identifier: String + val name: String + val desc: String + val required: Boolean + val type: TslServiceCallType + val method: String? + val inputData: List + val outputData: List +} + +class AsyncEventKey( + override val identifier: String, + override val name: String, + override val desc: String, + override val required: Boolean, + override val method: String?, + override val inputData: List, + override val outputData: List, + + ) : ServiceKey { + override val type: TslServiceCallType + get() = TslServiceCallType.ASYNC +} + +class SyncEventKey( + override val identifier: String, + override val name: String, + override val desc: String, + override val required: Boolean, + override val method: String?, + override val inputData: List, + override val outputData: List, + + ) : ServiceKey { + override val type: TslServiceCallType + get() = TslServiceCallType.SYNC +} + diff --git a/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/service/ServiceKeyExt.kt b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/service/ServiceKeyExt.kt new file mode 100644 index 0000000..4733b09 --- /dev/null +++ b/hdmqtt/src/commonMain/kotlin/com/yunext/kmp/mqtt/protocol/tsl/service/ServiceKeyExt.kt @@ -0,0 +1,71 @@ +package com.yunext.kmp.mqtt.protocol.tsl.service + +import com.yunext.kmp.mqtt.protocol.tsl.property.ld +import com.yunext.kmp.mqtt.protocol.tsl.property.logger +import com.yunext.kmp.mqtt.protocol.tsl.property.tslHandleParsePropertyKey +import com.yunext.kmp.mqtt.protocol.tsl.Tsl +import com.yunext.kmp.mqtt.protocol.tsl.TslProperty +import com.yunext.kmp.mqtt.protocol.tsl.TslService +import com.yunext.kmp.mqtt.protocol.tsl.TslServiceCallType + + +fun Tsl.tslHandleTsl2ServiceKeys(): Map { + logger.ld("tslHandleTsl2ServiceKeys a") + return try { + val services = services + if (services.isEmpty()) return mapOf() + val all: MutableMap = mutableMapOf() + services.forEach { service -> + val id = service.identifier + val key = tslHandleParseServiceKey(service) + all[id] = key + } + all + } catch (e: Throwable) { + e.printStackTrace() + logger.ld("tslHandleTsl2ServiceKeys error $e") + mapOf() + } finally { + logger.ld("tslHandleTsl2ServiceKeys z") + } +} + +private fun tslHandleParseServiceKey( + tslEvent: TslService +): ServiceKey { + val type = tslEvent.callType + return when (TslServiceCallType.from(type)) { + TslServiceCallType.ASYNC -> AsyncEventKey( + identifier = tslEvent.identifier, + name = tslEvent.name, + required = tslEvent.required, + desc = tslEvent.desc, + method = tslEvent.desc, + inputData = tslEvent.inputData.map { + val tslProperty = TslProperty.from(it) + tslHandleParsePropertyKey(tslProperty) + }.filterNotNull(), + outputData = tslEvent.outputData.map { + val tslProperty = TslProperty.from(it) + tslHandleParsePropertyKey(tslProperty) + }.filterNotNull() + ) + TslServiceCallType.SYNC -> SyncEventKey( + identifier = tslEvent.identifier, + name = tslEvent.name, + required = tslEvent.required, + desc = tslEvent.desc, + method = tslEvent.desc, + inputData = tslEvent.outputData.map { + val tslProperty = TslProperty.from(it) + tslHandleParsePropertyKey(tslProperty) + }.filterNotNull(), + outputData = tslEvent.outputData.map { + val tslProperty = TslProperty.from(it) + tslHandleParsePropertyKey(tslProperty) + }.filterNotNull() + ) + } + + +} \ No newline at end of file diff --git a/hdresource-ksp/build.gradle.kts b/hdresource-ksp/build.gradle.kts new file mode 100644 index 0000000..cb27252 --- /dev/null +++ b/hdresource-ksp/build.gradle.kts @@ -0,0 +1,17 @@ +@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed +plugins { + id("java-library") + alias(libs.plugins.kotlinJvm) +} + +java { + sourceCompatibility = JavaVersion.VERSION_18 + targetCompatibility = JavaVersion.VERSION_18 +} + +dependencies{ + implementation(libs.ksp.api) + implementation(libs.kotlinpoet) + implementation(libs.kotlinpoet.ksp) + +} \ No newline at end of file diff --git a/hdresource-ksp/src/main/kotlin/com/yunext/kmp/resource/MySymbolProcessor.kt b/hdresource-ksp/src/main/kotlin/com/yunext/kmp/resource/MySymbolProcessor.kt new file mode 100644 index 0000000..267dd4c --- /dev/null +++ b/hdresource-ksp/src/main/kotlin/com/yunext/kmp/resource/MySymbolProcessor.kt @@ -0,0 +1,22 @@ +package com.yunext.kmp.resource + +import com.google.devtools.ksp.processing.CodeGenerator +import com.google.devtools.ksp.processing.KSPLogger +import com.google.devtools.ksp.processing.Resolver +import com.google.devtools.ksp.processing.SymbolProcessor +import com.google.devtools.ksp.processing.SymbolProcessorEnvironment +import com.google.devtools.ksp.symbol.KSAnnotated + +class MySymbolProcessor( + private val environment: SymbolProcessorEnvironment, +) : SymbolProcessor { + private val codeGenerator: CodeGenerator = environment.codeGenerator + private val logger: KSPLogger = environment.logger + override fun process(resolver: Resolver): List { + logger.warn("MySymbolProcessor::process") + resolver.getAllFiles().forEach { + logger.warn("--hd-->${it.fileName}") + } + return emptyList() + } +} \ No newline at end of file diff --git a/hdresource-ksp/src/main/kotlin/com/yunext/kmp/resource/MySymbolProcessorProvider.kt b/hdresource-ksp/src/main/kotlin/com/yunext/kmp/resource/MySymbolProcessorProvider.kt new file mode 100644 index 0000000..26d1f4f --- /dev/null +++ b/hdresource-ksp/src/main/kotlin/com/yunext/kmp/resource/MySymbolProcessorProvider.kt @@ -0,0 +1,12 @@ +package com.yunext.kmp.resource + +import com.google.devtools.ksp.processing.SymbolProcessor +import com.google.devtools.ksp.processing.SymbolProcessorEnvironment +import com.google.devtools.ksp.processing.SymbolProcessorProvider + +class MySymbolProcessorProvider: SymbolProcessorProvider { + override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor { + environment.logger.warn("MySymbolProcessorProvider::create") + return MySymbolProcessor(environment) + } +} \ No newline at end of file diff --git a/hdresource-ksp/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider b/hdresource-ksp/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider new file mode 100644 index 0000000..6bb960a --- /dev/null +++ b/hdresource-ksp/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider @@ -0,0 +1 @@ +com.yunext.kmp.resource.MySymbolProcessorProvider \ No newline at end of file diff --git a/hdresource/src/commonMain/kotlin/com/yunext/kmp/resource/HDResource.kt b/hdresource/src/commonMain/kotlin/com/yunext/kmp/resource/HDResource.kt new file mode 100644 index 0000000..5b7e29b --- /dev/null +++ b/hdresource/src/commonMain/kotlin/com/yunext/kmp/resource/HDResource.kt @@ -0,0 +1,5 @@ +package com.yunext.kmp.resource + +@Target(AnnotationTarget.CLASS) +@Retention(AnnotationRetention.SOURCE) +annotation class HDDrawable(val msg: String) diff --git a/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/HDModifiers.kt b/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/HDModifiers.kt index 09c33c7..e2f11bc 100644 --- a/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/HDModifiers.kt +++ b/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/HDModifiers.kt @@ -30,10 +30,11 @@ import com.yunext.kmp.resource.color.app_background_brush import kotlinx.coroutines.CoroutineScope -fun Modifier.hdBorder(width: Dp = 4.dp) = this.border(width, hdRandomColor()) +fun Modifier.hdBorder(debug: Boolean = false,width: Dp = 4.dp, ) = + if (debug) this.border(width, hdRandomColor()) else this @Stable -fun Modifier.xplBackground(color: () -> Color): Modifier { +fun Modifier.hdBackground(color: () -> Color = { hdRandomColor() }): Modifier { // return this then BackgroundModifier( // color = color, // rtlAware = true, diff --git a/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/HDViews.kt b/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/HDViews.kt new file mode 100644 index 0000000..00b1de2 --- /dev/null +++ b/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/HDViews.kt @@ -0,0 +1,17 @@ +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp +import com.yunext.kmp.resource.color.China + +@Composable +fun HDDebugText(text: String) { + Text( + text, style = TextStyle( + color = China.r_yan_zhi_hong, + fontSize = 48.sp, + fontWeight = FontWeight.Bold + ) + ) +} diff --git a/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/TwinsTitle.kt b/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/TwinsTitle.kt deleted file mode 100644 index 4db04ad..0000000 --- a/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/TwinsTitle.kt +++ /dev/null @@ -1,229 +0,0 @@ -//package com.yunext.kmp.ui.compose -// -//import androidx.compose.foundation.Image -//import androidx.compose.foundation.clickable -//import androidx.compose.foundation.layout.Arrangement -//import androidx.compose.foundation.layout.Box -//import androidx.compose.foundation.layout.Column -//import androidx.compose.foundation.layout.PaddingValues -//import androidx.compose.foundation.layout.Row -//import androidx.compose.foundation.layout.Spacer -//import androidx.compose.foundation.layout.fillMaxSize -//import androidx.compose.foundation.layout.fillMaxWidth -//import androidx.compose.foundation.layout.height -//import androidx.compose.foundation.layout.padding -//import androidx.compose.foundation.layout.requiredWidthIn -//import androidx.compose.foundation.layout.size -//import androidx.compose.foundation.layout.width -//import androidx.compose.foundation.layout.widthIn -//import androidx.compose.foundation.layout.wrapContentSize -//import androidx.compose.foundation.shape.CircleShape -//import androidx.compose.material3.Text -//import androidx.compose.runtime.Composable -//import androidx.compose.runtime.compositionLocalOf -//import androidx.compose.ui.Alignment -//import androidx.compose.ui.Modifier -//import androidx.compose.ui.draw.clip -//import androidx.compose.ui.graphics.Color -//import androidx.compose.ui.graphics.painter.Painter -//import androidx.compose.ui.layout.ContentScale -//import androidx.compose.ui.text.font.FontWeight -//import androidx.compose.ui.text.style.TextOverflow -//import androidx.compose.ui.unit.dp -//import androidx.compose.ui.unit.sp -//import com.yunext.virtual.ui.uidata.DeviceStatus -//import com.yunext.virtual.ui.theme.app_textColor_333333 -//import com.yunext.virtual.ui.theme.app_textColor_666666 -//import com.yunext.virtual.ui.theme.app_textColor_999999 -//import org.jetbrains.compose.resources.ExperimentalResourceApi -//import org.jetbrains.compose.resources.painterResource -// -///** -// * 适配android沉浸式 -// */ -//val LocalPaddingValues = compositionLocalOf { PaddingValues() } -// -//private object TwinsTitleDefaults { -// val height = 44.dp -//} -// -//@OptIn(ExperimentalResourceApi::class) -//@Composable -//fun TwinsTitle( -// modifier: Modifier = Modifier, -// text: String, -// icon: Painter? = null, -// leftClick: () -> Unit = {}, -// rightClick: (() -> Unit)? = null, -//) { -// Row( -// modifier = modifier.fillMaxWidth().padding(LocalPaddingValues.current) -// .height(TwinsTitleDefaults.height), -// verticalAlignment = Alignment.CenterVertically -// ) { -// // left -// Image( -// painter = painterResource("icon_twins_return_nor.png"), -// contentDescription = "back", -// Modifier -// .clip(CircleShape) -// .clickable { -// leftClick.invoke() -// } -// .applyIcon() -// ) -// -// // -// Row(modifier = Modifier.wrapContentSize().weight(1f)) { -// Text( -// text = text, -// fontSize = 18.sp, -// fontWeight = FontWeight.Bold, -// overflow = TextOverflow.Ellipsis, -// modifier = Modifier -// .align(Alignment.CenterVertically) -// .requiredWidthIn(max = 200.dp), -//// .width(200.dp), -// maxLines = 1 -// ) -// if (icon != null) { -// Spacer(modifier = Modifier.width(2.dp)) -// Image( -// painter = icon,//painterResource(id = icon), -// modifier = Modifier.align(Alignment.CenterVertically), -// contentDescription = "status" -// ) -// } -// -// } -// -// // -// if (rightClick != null) { -// Image( -// painter = painterResource("icon_twins_more_nor.png"),//painterResource(id = R.mipmap.icon_twins_more_nor), -// contentDescription = "more", -// modifier = Modifier -// .clip(CircleShape) -// .clickable { -// rightClick.invoke() -// } -// .applyIcon() -// ) -// } else { -// Box(modifier = Modifier.applyIcon()) -// } -// -// } -// -// -//} -// -//private fun Modifier.applyIcon() = this -// .size(TwinsTitleDefaults.height) -// .padding(10.dp) -// -// -//@OptIn(ExperimentalResourceApi::class) -//@Composable -//fun TwinsEmptyView() { -// Column( -// modifier = Modifier.fillMaxSize(), -// verticalArrangement = Arrangement.Center, -// horizontalAlignment = Alignment.CenterHorizontally -// ) { -// Image( -// painter = painterResource("ic_app.png"),//painterResource(id = R.mipmap.ic_app), -// contentDescription = null -// ) -// Spacer(modifier = Modifier.height(16.dp)) -// -// Text( -// text = "没有找到相关内容", -// fontSize = 14.sp, -// color = app_textColor_666666 -// ) -// } -//} -// -//@OptIn(ExperimentalResourceApi::class) -//@Composable -//fun TwinsEmptyViewForDevice() { -// Debug("TwinsHomePage-内容-设备列表-空") -// Column( -// modifier = Modifier.fillMaxSize(), -// verticalArrangement = Arrangement.Center, -// horizontalAlignment = Alignment.CenterHorizontally -// ) { -// Image( -// painter = painterResource("ic_app.png"),//painterResource(id = R.mipmap.ic_app), -// contentDescription = null -// ) -// Spacer(modifier = Modifier.height(16.dp)) -// Text( -// text = "你还没有添加设备", -// fontSize = 16.sp, -// color = app_textColor_333333 -// ) -// Spacer(modifier = Modifier.height(12.dp)) -// Text( -// text = "添加设备,实时查看设备信息", -// fontSize = 12.sp, -// color = app_textColor_999999 -// ) -// } -//} -// -// -//@OptIn(ExperimentalResourceApi::class) -//@Composable -//fun TwinsDeviceStatus(modifier: Modifier = Modifier, deviceStatus: DeviceStatus) { -// when (deviceStatus) { -// DeviceStatus.GPRSOffLine -> { -// Image( -// painter = painterResource("icon_twins_offline.png"),//id = R.mipmap.icon_twins_offline), -// contentDescription = "gprs_offline", modifier = modifier -// ) -// } -// -// DeviceStatus.GPRSOnLine -> { -// Image( -// painter = painterResource("icon_twins_4g.png"),//id = R.mipmap.icon_twins_4g), -// contentDescription = "wifi", modifier = modifier -// ) -// } -// -// DeviceStatus.WiFiOffLine -> { -// Image( -// painter = painterResource("icon_twins_offline.png"),//id = R.mipmap.icon_twins_offline), -// contentDescription = "wifi", modifier = modifier -// ) -// } -// -// DeviceStatus.WiFiOnLine -> { -// Image( -// painter = painterResource("icon_twins_wifi.png"),//id = R.mipmap.icon_twins_wifi), -// contentDescription = "wifi", modifier = modifier -// ) -// } -// } -//} -// -//@OptIn(ExperimentalResourceApi::class) -//@Composable -//fun TwinsLabelText(modifier: Modifier = Modifier, text: String) { -// Box(modifier = modifier.widthIn(min = 60.dp, max = 60.dp)) { -// Image( -// painter = painterResource("icon_twins_label_bg.png"),//id = R.mipmap.icon_twins_label_bg), -// contentDescription = "bg", -// modifier = Modifier.matchParentSize(), -// contentScale = ContentScale.FillBounds -// ) -// Text( -// text = text, fontSize = 11.sp, color = Color(0x66666666), modifier = Modifier -// .align( -// Alignment.CenterStart -// ) -// .padding(horizontal = 6.dp) -// ) -// } -//} \ No newline at end of file diff --git a/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/Views.kt b/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/Views.kt deleted file mode 100644 index e5eb681..0000000 --- a/hdui/src/commonMain/kotlin/com/yunext/kmp/ui/compose/Views.kt +++ /dev/null @@ -1,373 +0,0 @@ -//package com.yunext.kmp.ui.compose -// -//import androidx.compose.foundation.Image -//import androidx.compose.foundation.background -//import androidx.compose.foundation.border -//import androidx.compose.foundation.clickable -//import androidx.compose.foundation.layout.Box -//import androidx.compose.foundation.layout.Spacer -//import androidx.compose.foundation.layout.fillMaxHeight -//import androidx.compose.foundation.layout.fillMaxSize -//import androidx.compose.foundation.layout.fillMaxWidth -//import androidx.compose.foundation.layout.height -//import androidx.compose.foundation.layout.padding -//import androidx.compose.foundation.layout.size -//import androidx.compose.foundation.layout.width -//import androidx.compose.foundation.layout.wrapContentHeight -//import androidx.compose.foundation.layout.wrapContentSize -//import androidx.compose.foundation.layout.wrapContentWidth -//import androidx.compose.foundation.shape.CircleShape -//import androidx.compose.foundation.shape.RoundedCornerShape -//import androidx.compose.foundation.text.KeyboardActions -//import androidx.compose.foundation.text.KeyboardOptions -//import androidx.compose.material.icons.Icons -//import androidx.compose.material.icons.filled.Add -//import androidx.compose.material3.ExperimentalMaterial3Api -//import androidx.compose.material3.Icon -//import androidx.compose.material3.Surface -//import androidx.compose.material3.Text -//import androidx.compose.material3.TextField -//import androidx.compose.material3.TextFieldDefaults -//import androidx.compose.runtime.Composable -//import androidx.compose.ui.Alignment -//import androidx.compose.ui.Modifier -//import androidx.compose.ui.draw.clip -//import androidx.compose.ui.draw.drawWithContent -//import androidx.compose.ui.graphics.Color -//import androidx.compose.ui.graphics.painter.Painter -//import androidx.compose.ui.layout.ContentScale -//import androidx.compose.ui.text.TextStyle -//import androidx.compose.ui.text.font.FontWeight -//import androidx.compose.ui.text.input.KeyboardType -//import androidx.compose.ui.text.style.TextAlign -//import androidx.compose.ui.unit.dp -//import androidx.compose.ui.unit.sp -//import com.yunext.virtual.ui.theme.Twins -//import com.yunext.virtual.ui.theme.app_appColor -//import com.yunext.virtual.ui.theme.app_background_brush -//import com.yunext.virtual.ui.theme.app_button_brush -//import com.yunext.virtual.ui.theme.app_textColor_999999 -//import org.jetbrains.compose.resources.ExperimentalResourceApi -//import org.jetbrains.compose.resources.painterResource -// -//@OptIn(ExperimentalResourceApi::class) -//@Composable -//fun TwinsBackgroundBlock( -// modifier: Modifier = Modifier, -//// painter: Painter = painterResource("icon_twins_4g.png"), -// painter: Painter = painterResource("icon_twins_body_bg.png"),//icon_twins_body_bg.png -// grey: Boolean = false, -//) { -// Debug("TwinsBackgroundBlock") -// if (grey) { -// Spacer( -// modifier = Modifier -// .fillMaxSize() -// .background(app_background_brush) -// ) -// } else { -// Image( -// painter = painter, -// contentScale = ContentScale.Crop, -// contentDescription = "background", -// modifier = modifier.fillMaxWidth() -// ) -// } -//} -// -// -//@OptIn(ExperimentalResourceApi::class) -//@Composable -//fun EmptyDeviceBlock(modifier: Modifier = Modifier, painter: Painter = painterResource("icon_twins_no_device.png")) { -// Image( -// painter = painter, -// contentScale = ContentScale.Crop, -// contentDescription = "EmptyDeviceBlock", -// modifier = modifier -// ) -//} -// -//@OptIn(ExperimentalResourceApi::class) -//@Composable -//fun EmptyDataBlock(modifier: Modifier = Modifier, painter: Painter = painterResource("icon_twins_no_data.png")) { -// Image( -// painter = painter, -// contentScale = ContentScale.Crop, -// contentDescription = "EmptyDataBlock", -// modifier = modifier -// ) -//} -// -//@OptIn(ExperimentalResourceApi::class) -//@Composable -//fun LabelTextBlock(modifier: Modifier = Modifier,text: String,painter: Painter = painterResource("icon_twins_label_bg.png")) { -// Box(contentAlignment = Alignment.Center, modifier = modifier) { -// Image( -// painter = painter, -// contentDescription = "bg" -// ) -// Text( -// text = text, fontSize = 11.sp, color = Color(0x66666666), modifier = Modifier -// .align( -// Alignment.CenterStart -// ) -// .padding(start = 6.dp) -// ) -// } -//} -// -//@OptIn(ExperimentalMaterial3Api::class) -//@Composable -//fun EditTextBlock( -// modifier: Modifier = Modifier, -// text: String, -// hint: String, -// keyboardOptions: KeyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number), -// keyboardActions: KeyboardActions = KeyboardActions(), -// onValueChange: (String) -> Unit, -//) { -// TextField( -// value = text, -// onValueChange = onValueChange, -// keyboardOptions = keyboardOptions, -// keyboardActions = keyboardActions, -// modifier = modifier, -// textStyle = Twins.twins_edit_text.copy(textAlign = TextAlign.End), -// placeholder = { -// Text( -// modifier = Modifier.fillMaxWidth(), -// text = hint, -// style = Twins.twins_edit_text_hint.copy(textAlign = TextAlign.End) -// ) -// }, -// singleLine = true, -// maxLines = 1, -// shape = RoundedCornerShape(12.dp), -// colors = TextFieldDefaults.textFieldColors( -// cursorColor = China.r_luo_xia_hong, -// focusedIndicatorColor = Color.Transparent, -// unfocusedIndicatorColor = Color.Transparent -// -// ) -// ) -//} -// -//@OptIn(ExperimentalMaterial3Api::class) -//@Composable -//fun EditTextCenterBlock( -// modifier: Modifier = Modifier, -// text: String, -// hint: String, -// keyboardOptions: KeyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number), -// keyboardActions: KeyboardActions = KeyboardActions(), -// onValueChange: (String) -> Unit, -//) { -// val textAlign = TextAlign.Center -// TextField( -// value = text, -// onValueChange = onValueChange, -// modifier = modifier, -// textStyle = Twins.twins_edit_text.copy(textAlign = textAlign), -// placeholder = { -// Text( -// modifier = Modifier.fillMaxWidth(), -// text = hint, -// style = Twins.twins_edit_text_hint.copy(textAlign = textAlign) -// ) -// }, -// singleLine = true, -// maxLines = 1, -// shape = RoundedCornerShape(12.dp), -// colors = TextFieldDefaults.textFieldColors( -// cursorColor = China.r_luo_xia_hong, -// focusedIndicatorColor = Color.Transparent, -// unfocusedIndicatorColor = Color.Transparent -// -// ), keyboardOptions = keyboardOptions, keyboardActions = keyboardActions -// ) -//} -// -//@Composable -//fun CheckedTextBlock( -// modifier: Modifier = Modifier, -// text: String, -// checked: Boolean, -// onCheckedChanged: (Boolean) -> Unit, -//) { -// val style = if (checked) { -// Twins.twins_title.copy(color = app_appColor) -// } else { -// Twins.twins_title -// } -// val shape = RoundedCornerShape(22.dp) -// Text( -// text = text, -// style = style, -// modifier = modifier -// .clip(shape) -// .run { -// if (checked) { -// this.border(width = 1.dp, color = app_appColor, shape = shape) -// } else { -// this.background(Color(0xfff4f5f7)) -// } -// } -// .clickable { -// onCheckedChanged.invoke(!checked) -// } -// .padding(vertical = 5.dp, horizontal = 16.dp) -// ) -//} -// -// -//@Composable -//fun CommitButtonBlockPreview() { -// CommitButtonBlock("ahhaha", true) { -// -// } -//} -// -//@Composable -//fun CommitButtonBlock2( -// text: String, -// enable: Boolean = true, -// onClick: () -> Unit, -//) { -// Box( -// modifier = Modifier -// .fillMaxWidth() -// .height(48.dp) -// .padding(horizontal = 16.dp) -// .clip(RoundedCornerShape(24.dp)) -// .background(app_button_brush) -// .clickable(enabled = enable) { -// onClick() -// }, contentAlignment = Alignment.Center -// ) { -// Text( -// text = text, -// textAlign = TextAlign.Center, -// style = TextStyle( -// fontSize = 16.sp, -// color = Color(1f, 1f, 1f, if (enable) 1f else .5f), -// fontWeight = FontWeight(400), textAlign = TextAlign.Center, -// ), -// maxLines = 1, -// modifier = Modifier -// -// ) -// } -// -//} -// -//@Composable -//fun CommitButtonBlock( -// text: String, -// enable: Boolean = true, -// onClick: () -> Unit, -//) { -// -// Text( -// text = text, -// //textAlign = TextAlign.Center, -// style = TextStyle( -// fontSize = 16.sp, -// color = Color(1f, 1f, 1f, if (enable) 1f else .5f), -// fontWeight = FontWeight(400), //textAlign = TextAlign.Center, -// ), -// maxLines = 1, -// modifier = Modifier -// .fillMaxWidth() -// .height(48.dp) -// .padding(horizontal = 0.dp) -// .clip(RoundedCornerShape(24.dp)) -// .background(app_button_brush) -// .clickable(enabled = enable) { -// onClick() -// } -// .wrapContentHeight() -// .wrapContentWidth() -// -// -// ) -// -//} -// -//// 文本居中示例 -//@Composable -//private fun TextDemo() { -// Box( -// Modifier -// .background(China.g_zhu_lv) -// .padding(32.dp) -// .size(200.dp) -// ) { -// Text( -// text = "hello !", -// modifier = Modifier -// .height(56.dp) -// .fillMaxWidth() -// .background(China.r_luo_xia_hong) -// .wrapContentHeight() -// .wrapContentWidth(), -//// textAlign = TextAlign.Center -// ) -// } -//} -// -//@Deprecated("delete") -//@Composable -//fun FloatActionBlock(modifier: Modifier = Modifier, onClick: () -> Unit) { -// Box( -// modifier -// .size(58.dp) -// .padding(4.dp) -// ) { -// Surface( -// shadowElevation = 4.dp, modifier = Modifier -// -// .fillMaxSize() -// .clip(CircleShape) -// .drawWithContent { -// drawCircle(app_button_brush) -// drawContent() -// } -// -//// .size(58.dp) -//// .clip(CircleShape) -// -// -//// .background(China.r_luo_xia_hong) -//// , color = blue_1 -// ) { -// Icon( -// Icons.Filled.Add, -// tint = Color.White, -// contentDescription = "add_device", -// modifier = Modifier -// .wrapContentSize() -//// .background(China.g_zhu_lv) -// ) -// -// } -// } -//} -// -//@Composable -//fun DividerBlock(color: Color = app_textColor_999999, horizontal: Boolean = true) { -// Spacer(modifier = Modifier -// .run { -// if (horizontal) { -// this -// .fillMaxWidth() -// .height(.5.dp) -// } else { -// this -// .width(.5.dp) -// .fillMaxHeight() -// -// } -// -// } -// .background(color)) -//} diff --git a/iosApp/DerivedData/ModuleCache.noindex/EYH9XYDI5AKA/ComposeApp-3JGVIRIUZEK4Z.pcm b/iosApp/DerivedData/ModuleCache.noindex/EYH9XYDI5AKA/ComposeApp-3JGVIRIUZEK4Z.pcm index 6e87bb491670c142f91106a03b374ffcf5d4c41d..b9fe094f923ba699c6348d2063e1fee71a78de18 100644 GIT binary patch literal 131832 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

_A_RWHE5p9@$rRhO1nDD!Tu?SuT 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 R%k;VFSuOZ~bN=tk{ts2{o9F-l delta 27931 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 bL@8I1wQbEJDxus$i6m5_XwRLMNc{gFq$biT diff --git a/iosApp/DerivedData/ModuleCache.noindex/Session.modulevalidation b/iosApp/DerivedData/ModuleCache.noindex/Session.modulevalidation index cf909be..faac0a4 100644 --- a/iosApp/DerivedData/ModuleCache.noindex/Session.modulevalidation +++ b/iosApp/DerivedData/ModuleCache.noindex/Session.modulevalidation @@ -1 +1 @@ -1710211217.540483: Module build session file for module cache at Path(str: "/Users/xiangpengle/Documents/as/kmp/HDVirtuals/iosApp/DerivedData/ModuleCache.noindex") +1710408509.3383431: Module build session file for module cache at Path(str: "/Users/xiangpengle/Documents/as/kmp/HDVirtuals/iosApp/DerivedData/ModuleCache.noindex") diff --git a/iosApp/DerivedData/SDKStatCaches.noindex/iphonesimulator17.2-21C52-4f2951bfe8f3cd53c99228b0131e163e.sdkstatcache b/iosApp/DerivedData/SDKStatCaches.noindex/iphonesimulator17.2-21C52-4f2951bfe8f3cd53c99228b0131e163e.sdkstatcache index 774a531d08c2f89916ff8a3e50645bd06ce7486a..75c206412c08ea11d612ba82056eed5f0552bde9 100644 GIT binary patch delta 77 zcmWN{Hvxb!07XH1%cF#u0V|A|i3SwJ0K@kZ1NcBjWWdcAlZ(l5`or(RW>@=~8{qfceu^Z$-TekLZl)S bxhO;_Dp89@w8Dr^{HGU#7{w&!hh_C2VjL5C diff --git a/iosApp/DerivedData/iosApp/info.plist b/iosApp/DerivedData/iosApp/info.plist index 812deeb..b0b41a5 100644 --- a/iosApp/DerivedData/iosApp/info.plist +++ b/iosApp/DerivedData/iosApp/info.plist @@ -3,7 +3,7 @@ LastAccessedDate - 2024-03-12T02:40:17Z + 2024-03-14T09:28:29Z WorkspacePath /Users/xiangpengle/Documents/as/kmp/HDVirtuals/iosApp/iosApp.xcodeproj diff --git a/settings.gradle.kts b/settings.gradle.kts index d1ef72d..a11c4a5 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -23,6 +23,7 @@ include(":server") include(":shared") include(":hdcommon") include(":hdresource") +include(":hdresource-ksp") include(":hddb") include(":hdmqtt") include(":hdcontext") diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index 705e302..401eb03 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -26,6 +26,7 @@ kotlin { implementation(compose.runtime) implementation(compose.foundation) implementation(compose.material) + implementation(compose.material3) implementation(compose.ui) implementation(compose.components.resources) implementation(compose.components.uiToolingPreview) @@ -49,6 +50,8 @@ kotlin { implementation(libs.voyager.transitions) implementation(libs.voyager.koin) + api(libs.kotlinx.coroutines.core) + } @@ -56,6 +59,7 @@ kotlin { implementation(libs.compose.ui.tooling.preview) implementation(libs.androidx.activity.compose) // implementation(libs.voyager.hilt) + api(libs.kotlinx.coroutines.android) } iosMain.dependencies { @@ -63,7 +67,7 @@ kotlin { } jvmMain.dependencies { - + api(libs.kotlinx.coroutines.swing) } } } diff --git a/shared/src/androidMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.android.kt b/shared/src/androidMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.android.kt new file mode 100644 index 0000000..09a8b81 --- /dev/null +++ b/shared/src/androidMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.android.kt @@ -0,0 +1,50 @@ +package com.yunext.virtuals.ui.screen.devicelist + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.yunext.kmp.ui.compose.CHItemShadowShape +import com.yunext.kmp.ui.compose.Debug +import com.yunext.virtuals.ui.data.DeviceAndState + +@Composable +actual fun TwinsDeviceItem( + modifier: Modifier, + device: DeviceAndState, + onClick: () -> Unit, + onLongClick: () -> Unit, +) { + Debug("TwinsHomePage-内容-设备列表-android-TwinsDeviceItem") + TwinsDeviceItemCommon(modifier, device, onClick, onLongClick) +} + +@Composable +actual fun TwinsDeviceList( + modifier: Modifier, + list: List, + onDeviceSelected: (DeviceAndState) -> Unit, + onDeviceDelete: (DeviceAndState) -> Unit, +) { + Debug("TwinsHomePage-内容-设备列表-android") + LazyColumn( + modifier = Modifier.padding(0.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + contentPadding = PaddingValues(16.dp) + ) { + items(items = list, key = { it.communicationId + it.model }) { device -> + CHItemShadowShape { + TwinsDeviceItem(modifier = Modifier.fillMaxWidth(), device = device,{ + onDeviceSelected.invoke(device) + }) { + onDeviceDelete.invoke(device) + } + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonMain/composeResources/drawable/ic_app_debug_uios.png b/shared/src/commonMain/composeResources/drawable/ic_app_debug_uios.png new file mode 100644 index 0000000000000000000000000000000000000000..8aa6a970270d4e7248e3cc09d2527093db742d1c GIT binary patch literal 15439 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 FV1nP6tf&A0 literal 0 HcmV?d00001 diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/data/ProjectInfo.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/ProjectInfo.kt new file mode 100644 index 0000000..764b6b9 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/ProjectInfo.kt @@ -0,0 +1,13 @@ +package com.yunext.virtuals.data + +data class ProjectInfo( + val name: String, + val host: String, val secret: String, + val brand: String = "skeleton", +) + + +fun ProjectInfo.isYinDu(): Boolean { + return secret == "5cdbb8f042004723899f0df7878e7496" + || brand == "yd" +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/AndroidDevice.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/AndroidDevice.kt new file mode 100644 index 0000000..ba8dbcc --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/AndroidDevice.kt @@ -0,0 +1,38 @@ +package com.yunext.virtuals.data.device + +import com.yunext.kmp.common.util.currentTime +import com.yunext.kmp.common.util.hdMD5 +import com.yunext.kmp.mqtt.data.MQTTParam +import com.yunext.kmp.mqtt.protocol.ProtocolMQTTRule +import com.yunext.virtuals.data.ProjectInfo +import com.yunext.virtuals.module.devicemanager.DeviceInitializer + +class AndroidDevice( + private val userId: String, + private val access: String, + override val deviceType: String, + ) : MQTTDevice { + override val rule: ProtocolMQTTRule + get() = ProtocolMQTTRule.App.Android + + override fun createMqttParam(projectInfo: ProjectInfo): MQTTParam { + val id = this.generateId() + val clientId = "APP:${deviceType}_${id}_${currentTime()}" + val username = id + val passwordMd5 = hdMD5(access) ?: "" + return MQTTParam( + username = username, + password = passwordMd5, + clientId = clientId, + url = projectInfo.host + ) + } + + override fun generateId(): String { + return userId + } + + override fun providerDeviceInitializer(): DeviceInitializer { + TODO("Not yet implemented") + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/DeviceAndMessage.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/DeviceAndMessage.kt new file mode 100644 index 0000000..b5614ee --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/DeviceAndMessage.kt @@ -0,0 +1,9 @@ +package com.yunext.virtuals.data.device + +import com.yunext.kmp.mqtt.protocol.ProtocolMQTTContainer + +class DeviceAndMessage( + val device: MQTTDevice, + val topic:String, + val message: ProtocolMQTTContainer<*>? +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/DeviceAndState.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/DeviceAndState.kt new file mode 100644 index 0000000..a7d993e --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/DeviceAndState.kt @@ -0,0 +1,18 @@ +package com.yunext.virtuals.data.device + +import com.yunext.kmp.mqtt.data.MQTTState +import com.yunext.kmp.mqtt.data.isConnected + +class DeviceAndState( + val device: MQTTDevice, + val state: MQTTState +) + +val DeviceAndState.display: String + get() { + return device.toString() + "\n[${ + state.isConnected.run { + if (this) "online" else "offline" + } + }]" + } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/MQTTDevice.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/MQTTDevice.kt new file mode 100644 index 0000000..0cb2d5f --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/MQTTDevice.kt @@ -0,0 +1,51 @@ +package com.yunext.virtuals.data.device + +import com.yunext.kmp.mqtt.data.MQTTParam +import com.yunext.kmp.mqtt.protocol.ProtocolMQTTRule +import com.yunext.kmp.mqtt.protocol.ProtocolMQTTTopic +import com.yunext.virtuals.data.ProjectInfo +import com.yunext.virtuals.data.isYinDu +import com.yunext.virtuals.module.devicemanager.DefaultMqttConvertor +import com.yunext.virtuals.module.devicemanager.DeviceInitializer +import com.yunext.virtuals.module.devicemanager.MQTTConvertor + +sealed interface MQTTDevice { + + val rule: ProtocolMQTTRule + + val deviceType: String + + fun createMqttParam(projectInfo: ProjectInfo): MQTTParam + + fun generateId(): String + + fun supportTopics(): Array = + arrayOf(ProtocolMQTTTopic.DOWN, ProtocolMQTTTopic.QUERY) + + fun providerDeviceInitializer(): DeviceInitializer + +} + +fun MQTTDevice.generateTopic(projectInfo: ProjectInfo, mqttTopic: ProtocolMQTTTopic): String { + val brand = projectInfo.brand + val deviceID = generateId() + if (projectInfo.isYinDu()) { + return "/$brand/mqtt/$deviceID/${mqttTopic.category}" + } + return "/$brand/$deviceType/$deviceID/${mqttTopic.category}" +} + +fun MQTTDevice.providerMqttConvertor(): MQTTConvertor { + return when (this) { + is AndroidDevice -> DefaultMqttConvertor() + is TwinsDevice -> DefaultMqttConvertor() + else->throw IllegalStateException("non convertor") + } +} + + + + + + + diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/TwinsDevice.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/TwinsDevice.kt new file mode 100644 index 0000000..9ad95aa --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/data/device/TwinsDevice.kt @@ -0,0 +1,88 @@ +package com.yunext.virtuals.data.device + +import com.yunext.kmp.common.util.hdMD5 +import com.yunext.kmp.mqtt.protocol.ProtocolMQTTRule +import com.yunext.kmp.mqtt.data.MQTTParam +import com.yunext.virtuals.data.ProjectInfo +import com.yunext.virtuals.module.devicemanager.DeviceInitializer +import com.yunext.virtuals.module.devicemanager.JsonDeviceInitializer +import kotlinx.serialization.Serializable + +@Serializable +class TwinsDevice( + val name: String, + val mac: String, + val imei: String, + override val deviceType: String, + /** + * device与mqtt通信的username + * 0:mac + * 1:imei + * 2:其他 + */ + val communicationType: CommunicationType, +) : MQTTDevice { + override val rule: ProtocolMQTTRule + get() = ProtocolMQTTRule.Device + + override fun generateId(): String { + return when (communicationType) { + CommunicationType.G4 -> imei + CommunicationType.WIFI -> mac + } + } + + /** + * TODO 需要结构出去的业务,每个项目不一样 + */ + //TODO("一些初始化的值") + override fun providerDeviceInitializer(): DeviceInitializer { + val json = "{" + + "\"imei\":\"${this.generateId()}\"" + + ",\"deviceSn\":\"${this.generateId()}\"" + + ",\"version\":\"1.0.0\"" + + ",\"deviceType\":156" + + ",\"iccid\":\"${this.generateId()}\"" + + ",\"runState\":\"1\"" + + "}" + return JsonDeviceInitializer(json) + } + + enum class CommunicationType { + G4, WIFI; + } + + + override fun createMqttParam(projectInfo: ProjectInfo): MQTTParam { + val id = this.generateId() + val clientId = "DEV:${deviceType}_${generateId()}_${randomNumber()}" + val username = id + val password = hdMD5(clientId + projectInfo.secret) ?: "" + return MQTTParam( + username = username, + password = password, + clientId = clientId, + url = projectInfo.host + ) + } + + private fun randomNumber(): String { + return List(4) { NUMs.random() }.joinToString("") { it.toString() } + }// = randomText(4)//String.format("%04d", Random.nextInt(9999)) + + + companion object { + private const val NUMs = "1234567890" + val EMPTY = TwinsDevice("", "", "", "", CommunicationType.G4) + } +} + +val TwinsDevice.display: String + get() { + return "name: $name \n" + + "mac: $mac \n" + + "imei: $imei \n" + + "deviceType: $deviceType \n" + + "generateId: ${generateId()} \n" + } + diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/module/converts.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/converts.kt new file mode 100644 index 0000000..917c6f0 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/converts.kt @@ -0,0 +1,118 @@ +package com.yunext.virtuals.module + +import com.yunext.kmp.http.tsl.TslEventResp +import com.yunext.kmp.http.tsl.TslItemPropertyResp +import com.yunext.kmp.http.tsl.TslParamResp +import com.yunext.kmp.http.tsl.TslPropertyResp +import com.yunext.kmp.http.tsl.TslResp +import com.yunext.kmp.http.tsl.TslServiceResp +import com.yunext.kmp.http.tsl.TslSpecResp +import com.yunext.kmp.mqtt.protocol.tsl.Tsl +import com.yunext.kmp.mqtt.protocol.tsl.TslEvent +import com.yunext.kmp.mqtt.protocol.tsl.TslItemProperty +import com.yunext.kmp.mqtt.protocol.tsl.TslParam +import com.yunext.kmp.mqtt.protocol.tsl.TslProperty +import com.yunext.kmp.mqtt.protocol.tsl.TslPropertyType +import com.yunext.kmp.mqtt.protocol.tsl.TslService +import com.yunext.kmp.mqtt.protocol.tsl.TslSpec +import com.yunext.virtuals.module.repository.DeviceDTO +import com.yunext.virtuals.ui.data.DeviceAndState +import com.yunext.virtuals.ui.data.DeviceStatus +import com.yunext.virtuals.ui.data.DeviceType + +fun TslResp.convert()= Tsl( + id = this.id?:"", + version = this.version?:"", + productKey = this.productKey?:"", + current = this.current?:false, + events = this.events?.map { + it.convert() + }?: listOf(), + properties = this.properties?.map(TslPropertyResp::convert)?: listOf(), + services = this.services?.map(TslServiceResp::convert)?: listOf(), + +) + +fun TslEventResp.convert() = TslEvent( + identifier = this.identifier ?: "", + name = this.name ?: "", + type = this.type ?: "", + required = this.required ?: false, + desc = this.desc ?: "", + method = this.method ?: "", + outputData = this.outputData?.map { it.converts() } ?: listOf(), +) + +internal fun TslItemPropertyResp.convert() = TslItemProperty( + identifier = identifier ?: "", + name = name ?: "", + dataType = TslPropertyType.from(dataType ?: ""), + specs = specs?.convert(), +) + +fun TslParamResp.converts() = this.run { + TslParam( + identifier = this.identifier ?: "", + name = this.name ?: "", + dataType = this.dataType ?: "", + specs = this.specs?.convert() + ) +} + +fun TslPropertyResp.convert() = TslProperty( + accessMode = accessMode ?: "", + required = required ?: false, + desc = desc ?: "", + identifier = identifier ?: "", + name = name ?: "", + dataType = TslPropertyType.from(dataType ?: ""), + specs = specs?.convert(), +) + +fun TslServiceResp.convert() = TslService( + identifier = this.identifier ?: "", + name = this.name ?: "", + callType = this.callType ?: "", + required = this.required ?: false, + desc = this.desc ?: "", + method = this.method ?: "", + inputData = this.inputData?.map(TslParamResp::converts) ?: listOf(), + outputData = this.outputData?.map(TslParamResp::converts) ?: listOf(), +) + +fun TslSpecResp.convert() = this.run { + TslSpec( + min = this.min, + max = this.max, + unit = this.unit, + unitName = this.unitName, + size = this.size, + step = this.step, + length = this.length, + type = this.type, + item = this.item, + enumDesc = this.enumDesc + ) +} + +fun DeviceDTO.toDeviceAndState() = DeviceAndState( + name = this.name, + communicationId = this.communicationId, + model = this.model, + status = when (this.type) { + DeviceType.WIFI -> DeviceStatus.WiFiOffLine + DeviceType.GPRS -> DeviceStatus.GPRSOffLine + } +) + +fun DeviceAndState.toDeviceDTO() = DeviceDTO( + name = this.name, + communicationId = this.communicationId, + model = this.model, + type = when (this.status) { + DeviceStatus.GPRSOffLine -> DeviceType.GPRS + DeviceStatus.GPRSOnLine -> DeviceType.GPRS + DeviceStatus.WiFiOffLine -> DeviceType.WIFI + DeviceStatus.WiFiOnLine -> DeviceType.WIFI + } +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/module/datasource/MemoryDeviceDatasource.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/datasource/MemoryDeviceDatasource.kt new file mode 100644 index 0000000..5ee9c30 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/datasource/MemoryDeviceDatasource.kt @@ -0,0 +1,52 @@ +package com.yunext.virtuals.module.datasource + +import com.yunext.virtuals.module.repository.DeviceDTO +import com.yunext.virtuals.ui.data.DeviceType +import io.ktor.util.collections.ConcurrentMap + +class MemoryDeviceDatasource { + private val map: ConcurrentMap = ConcurrentMap() + + init { + add(DeviceDTO("wifi-0001", DeviceType.WIFI, "ff91482fdfeb", "QR-12TRWQ4")) + add(DeviceDTO("4G-0002", DeviceType.GPRS, "fe495a3be9c7", "QR-12TRWQ4")) + } + + fun add(deviceDTO: DeviceDTO): Boolean { + + val key = deviceDTO.communicationId + if (map.containsKey(key)) { + return false + } + map[key] = deviceDTO + return true + } + + fun delete(deviceDTO: DeviceDTO): Boolean { + val key = deviceDTO.communicationId + if (map.containsKey(key)) { + map.remove(key) + return true + } + return true + } + + fun edit(deviceDTO: DeviceDTO): Boolean { + val key = deviceDTO.communicationId + if (map.containsKey(key)) { + map[key] = deviceDTO + return true + } + return false + } + + fun list(): List { + return map.values.toList() + } + + fun clear(): Boolean { + map.clear() + return true + } + +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/module/devicemanager/DeviceInitializer.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/devicemanager/DeviceInitializer.kt new file mode 100644 index 0000000..4ffa7f0 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/devicemanager/DeviceInitializer.kt @@ -0,0 +1,30 @@ +package com.yunext.virtuals.module.devicemanager + +import com.yunext.kmp.mqtt.protocol.tsl.Tsl +import com.yunext.kmp.mqtt.protocol.tsl.property.PropertyValue +import com.yunext.kmp.mqtt.protocol.tsl.property.tslHandleTsl2PropertyValues +import com.yunext.kmp.mqtt.protocol.tsl.property.tslHandleUpdatePropertyValues +import com.yunext.kmp.mqtt.protocol.tsl.property.tslHandleUpdatePropertyValuesFromJson + + +interface DeviceInitializer { + fun init(map: Map>):Map> +} + +class JsonDeviceInitializer(val json:String):DeviceInitializer{ + override fun init(map: Map>): Map> { + return tslHandleUpdatePropertyValuesFromJson(map, json).first + } +} + +class PropertyValuesDeviceInitializer(val list :List>):DeviceInitializer{ + override fun init(map: Map>): Map> { + return tslHandleUpdatePropertyValues(map, list) + } +} + +class TslDeviceInitializer(val tsl : Tsl):DeviceInitializer{ + override fun init(map: Map>): Map> { + return tsl.tslHandleTsl2PropertyValues() + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/module/devicemanager/MQTTConvertor.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/devicemanager/MQTTConvertor.kt new file mode 100644 index 0000000..00e7946 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/devicemanager/MQTTConvertor.kt @@ -0,0 +1,52 @@ +package com.yunext.virtuals.module.devicemanager + + +import com.yunext.kmp.mqtt.data.MQTTMessage +import com.yunext.kmp.mqtt.protocol.ProtocolMQTTContainer +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json + +/** + * 对接受来的MqttMessage消息进行处理 + * todo MqttMessage -> MQTTMessage? + */ +interface MQTTConvertor { + fun decode(source: ByteArray): ProtocolMQTTContainer<*> + + fun encode(message: MQTTMessage): ByteArray +} + +class DefaultMqttConvertor : MQTTConvertor { + override fun decode(source: ByteArray): ProtocolMQTTContainer<*> { + //TODO("序列化") + val json = ""//String(charArrayOf(source)) + val msg = Json.decodeFromString>(json) + ?: throw IllegalStateException("decode result is null") + return msg + } + + override fun encode(message: MQTTMessage): ByteArray { + //TODO("序列化") + return Json.encodeToString(message).encodeToByteArray() + } + + private data class Param(val cmd: String, val params: T) + +// private fun MQTTMessage.toPayload() = +// (if (data is JSONObject) data.toString() else +// mqttGson.toJson(Param(this.cmd.cmd, this.data)).also { +// li("payload:$it") +// }).toByteArray() + +} + +//class DefaultMqttConvertor2(val tsl:Tsl) : MQTTConvertor, ILogger by DefaultLogger("MQTTConvertor") { +// override fun decode(source: ByteArray): MQTTContainer<*> { +// TODO("Not yet implemented") +// } +// +// override fun encode(message: MQTTMessage): ByteArray { +// TODO("Not yet implemented") +// } +// +//} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/module/repository/DeviceDTO.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/repository/DeviceDTO.kt new file mode 100644 index 0000000..07e2c4c --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/repository/DeviceDTO.kt @@ -0,0 +1,16 @@ +package com.yunext.virtuals.module.repository + +import com.yunext.virtuals.ui.data.DeviceType + +data class DeviceDTO( + val name: String, + val type: DeviceType, + val communicationId: String, + val model: String, +) + +fun communicationIdAsDeviceDTO(communicationId: String) = DeviceDTO( + name = "", + communicationId = communicationId, + type = DeviceType.WIFI, model = "" +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/module/repository/DeviceRepository.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/repository/DeviceRepository.kt new file mode 100644 index 0000000..1453ede --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/repository/DeviceRepository.kt @@ -0,0 +1,107 @@ +package com.yunext.virtuals.module.repository + +import com.yunext.virtuals.module.datasource.MemoryDeviceDatasource +import kotlinx.coroutines.suspendCancellableCoroutine +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException + +interface DeviceRepository { + suspend fun add(deviceDTO: DeviceDTO): Boolean + suspend fun delete(deviceDTO: DeviceDTO): Boolean + + suspend fun edit(deviceDTO: DeviceDTO): Boolean + + suspend fun list(): List + + suspend fun clear(): Boolean + + companion object : DeviceRepository by MemoryDeviceRepositoryImpl() +} + +suspend fun DeviceRepository.delete(communicationId: String) = + this.delete(communicationIdAsDeviceDTO(communicationId)) + +class MemoryDeviceRepositoryImpl : DeviceRepository { + private val memoryDeviceDatasource: MemoryDeviceDatasource by lazy { + MemoryDeviceDatasource() + } + + override suspend fun add(deviceDTO: DeviceDTO): Boolean { + return suspendCancellableCoroutine { + try { + val result = memoryDeviceDatasource.add(deviceDTO) + it.resume(result) + } catch (e: Throwable) { + it.resumeWithException(e) + } + } + } + + override suspend fun delete(deviceDTO: DeviceDTO): Boolean { + return suspendCancellableCoroutine { + try { + val result = memoryDeviceDatasource.delete(deviceDTO) + it.resume(result) + } catch (e: Throwable) { + it.resumeWithException(e) + } + } + } + + override suspend fun edit(deviceDTO: DeviceDTO): Boolean { + return suspendCancellableCoroutine { + try { + val result = memoryDeviceDatasource.edit(deviceDTO) + it.resume(result) + } catch (e: Throwable) { + it.resumeWithException(e) + } + } + } + + override suspend fun list(): List { + return suspendCancellableCoroutine { + try { + val result = memoryDeviceDatasource.list() + it.resume(result) + } catch (e: Throwable) { + it.resumeWithException(e) + } + } + } + + override suspend fun clear(): Boolean { + return suspendCancellableCoroutine { + try { + val result = memoryDeviceDatasource.clear() + it.resume(result) + } catch (e: Throwable) { + it.resumeWithException(e) + } + } + } + +} + +class DBDeviceRepositoryImpl : DeviceRepository { + override suspend fun add(deviceDTO: DeviceDTO): Boolean { + TODO("Not yet implemented") + } + + override suspend fun delete(deviceDTO: DeviceDTO): Boolean { + TODO("Not yet implemented") + } + + override suspend fun edit(deviceDTO: DeviceDTO): Boolean { + TODO("Not yet implemented") + } + + override suspend fun list(): List { + TODO("Not yet implemented") + } + + override suspend fun clear(): Boolean { + TODO("Not yet implemented") + } + +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/module/usecase/DeviceUseCase.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/usecase/DeviceUseCase.kt new file mode 100644 index 0000000..d2b45b2 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/module/usecase/DeviceUseCase.kt @@ -0,0 +1,49 @@ +package com.yunext.virtuals.module.usecase + +import com.yunext.virtuals.module.repository.DeviceDTO +import com.yunext.virtuals.module.repository.DeviceRepository +import com.yunext.virtuals.module.repository.delete +import com.yunext.virtuals.module.toDeviceAndState +import com.yunext.virtuals.ui.data.DeviceAndState +import com.yunext.virtuals.ui.data.DeviceType + +internal class DeviceUseCase { + private val deviceRepository by lazy { DeviceRepository } + suspend fun addDevice( + deviceName: String, + deviceType: DeviceType, + deviceCommunicationId: String, + deviceModel: String, + ): Boolean { + return deviceRepository.add( + DeviceDTO( + deviceName, + deviceType, + deviceCommunicationId, + deviceModel + ) + ) + } + + suspend fun delete(deviceCommunicationId: String): Boolean { + return deviceRepository.delete(communicationId = deviceCommunicationId) + } + + suspend fun edit(deviceDTO: DeviceDTO): Boolean { + return deviceRepository.edit(deviceDTO) + } + + suspend fun list(): List { + return deviceRepository.list().map(DeviceDTO::toDeviceAndState) + } + + suspend fun clear(): Boolean { + return deviceRepository.clear() + } + + companion object{ + val INSTANCE : DeviceUseCase by lazy { + DeviceUseCase() + } + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/HDResources.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/HDResources.kt new file mode 100644 index 0000000..293e617 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/HDResources.kt @@ -0,0 +1,85 @@ +package com.yunext.virtuals.ui + +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.ExperimentalResourceApi +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.readResourceBytes + +// https://github.com/JetBrains/compose-multiplatform/issues/4111 + +@OptIn(InternalResourceApi::class) +@ExperimentalResourceApi +object HDRes { + /** + * Reads the content of the resource file at the specified path and returns it as a byte array. + * + * Example: `val bytes = Res.readBytes("files/key.bin")` + * + * @param path The path of the file to read in the compose resource's directory. + * @return The content of the file as a byte array. + */ + public suspend fun readBytes(path: String): ByteArray = readResourceBytes(path) + + public object drawable + + public object string + + public object font +} + +@OptIn(ExperimentalResourceApi::class) +fun hdRes(block: HDResProvider.() -> DrawableResource): DrawableResource { + return with(HDRes.drawable) { + hdResProvider.block() + } +} + +private lateinit var hdResProviderInternal: HDResProvider + +internal val hdResProvider: HDResProvider + get() = if (::hdResProviderInternal.isInitialized) hdResProviderInternal else throw IllegalArgumentException("use ::initHDRes 初始化") + +fun initHDRes(provider: HDResProvider) { + if (::hdResProviderInternal.isInitialized) { + //error("hdRes has init.") + return + } + hdResProviderInternal = provider +} + +@OptIn(ExperimentalResourceApi::class) +interface HDResProvider { + val HDRes.drawable.ic_app: DrawableResource + val HDRes.drawable.icon_app_hadlinks: DrawableResource + val HDRes.drawable.icon_twins_4g: DrawableResource + val HDRes.drawable.icon_twins_add_btn_click: DrawableResource + val HDRes.drawable.icon_twins_add_btn_nor: DrawableResource + val HDRes.drawable.icon_twins_add_click: DrawableResource + val HDRes.drawable.icon_twins_add_nor: DrawableResource + val HDRes.drawable.icon_twins_body_bg: DrawableResource + val HDRes.drawable.icon_twins_checked: DrawableResource + val HDRes.drawable.icon_twins_close_btn: DrawableResource + val HDRes.drawable.icon_twins_close_click: DrawableResource + val HDRes.drawable.icon_twins_close_nor: DrawableResource + val HDRes.drawable.icon_twins_distribution_network: DrawableResource + val HDRes.drawable.icon_twins_fail: DrawableResource + val HDRes.drawable.icon_twins_label_bg: DrawableResource + val HDRes.drawable.icon_twins_label_short_bg: DrawableResource + val HDRes.drawable.icon_twins_log: DrawableResource + val HDRes.drawable.icon_twins_more_click: DrawableResource + val HDRes.drawable.icon_twins_more_nor: DrawableResource + val HDRes.drawable.icon_twins_no_data: DrawableResource + val HDRes.drawable.icon_twins_no_device: DrawableResource + val HDRes.drawable.icon_twins_offline: DrawableResource + val HDRes.drawable.icon_twins_on_btn: DrawableResource + val HDRes.drawable.icon_twins_refresh: DrawableResource + val HDRes.drawable.icon_twins_return_click: DrawableResource + val HDRes.drawable.icon_twins_return_nor: DrawableResource + val HDRes.drawable.icon_twins_search: DrawableResource + val HDRes.drawable.icon_twins_search_close: DrawableResource + val HDRes.drawable.icon_twins_set_up: DrawableResource + val HDRes.drawable.icon_twins_success: DrawableResource + val HDRes.drawable.icon_twins_uncheck: DrawableResource + val HDRes.drawable.icon_twins_wifi: DrawableResource +} + diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/AppViews.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/AppViews.kt new file mode 100644 index 0000000..e20b4e1 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/AppViews.kt @@ -0,0 +1,619 @@ +package com.yunext.virtuals.ui.common + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.requiredWidthIn +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Add +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.material3.TextField +import androidx.compose.material3.TextFieldDefaults +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.drawWithContent +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.yunext.kmp.resource.color.China +import com.yunext.kmp.resource.color.app_appColor +import com.yunext.kmp.resource.color.app_background_brush +import com.yunext.kmp.resource.color.app_button_brush +import com.yunext.kmp.resource.color.app_textColor_333333 +import com.yunext.kmp.resource.color.app_textColor_666666 +import com.yunext.kmp.resource.color.app_textColor_999999 +import com.yunext.kmp.ui.compose.Debug +import com.yunext.virtuals.ui.HDRes +import com.yunext.virtuals.ui.data.DeviceStatus +import com.yunext.virtuals.ui.hdRes +import com.yunext.virtuals.ui.screen.LocalPaddingValues +import com.yunext.virtuals.ui.theme.Twins +import org.jetbrains.compose.resources.ExperimentalResourceApi + +private object TwinsTitleDefaults { + val height = 44.dp +} + +@OptIn(ExperimentalResourceApi::class) +@Composable +fun TwinsTitle( + modifier: Modifier = Modifier, + text: String, + icon:DrawableResourceFactory? = null, + //icon: Painter? = null, + leftClick: () -> Unit = {}, + rightClick: (() -> Unit)? = null, +) { + Row( + modifier = modifier.fillMaxWidth().padding(LocalPaddingValues.current) + .height(TwinsTitleDefaults.height), + verticalAlignment = Alignment.CenterVertically + ) { + // left + HDImage( + resource = { + HDRes.drawable.icon_twins_return_nor + }, + contentDescription = "back", + Modifier + .clip(CircleShape) + .clickable { + leftClick.invoke() + } + .applyIcon() + ) + + // + Row(modifier = Modifier.wrapContentSize().weight(1f)) { + Text( + text = text, + fontSize = 18.sp, + fontWeight = FontWeight.Bold, + overflow = TextOverflow.Ellipsis, + modifier = Modifier + .align(Alignment.CenterVertically) + .requiredWidthIn(max = 200.dp), +// .width(200.dp), + maxLines = 1 + ) + if (icon != null) { + Spacer(modifier = Modifier.width(2.dp)) + HDImage( + resource = icon, + //painter = icon,//painterResource(id = icon), + modifier = Modifier.align(Alignment.CenterVertically), + contentDescription = "status" + ) + } + + } + + // + if (rightClick != null) { + HDImage( + resource = { HDRes.drawable.icon_twins_more_nor }, + //painter = painterResource(DrawableResource("icon_twins_more_nor.png")),//painterResource(id = R.mipmap.icon_twins_more_nor), + contentDescription = "more", + modifier = Modifier + .clip(CircleShape) + .clickable { + rightClick.invoke() + } + .applyIcon() + ) + } else { + Box(modifier = Modifier.applyIcon()) + } + + } + + +} + +private fun Modifier.applyIcon() = this + .size(TwinsTitleDefaults.height) + .padding(10.dp) + + +@OptIn(ExperimentalResourceApi::class) +@Composable +fun TwinsEmptyView() { + Column( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally + ) { + HDImage( + resource = { HDRes.drawable.ic_app }, +// painter = painterResource(DrawableResource("ic_app.png")),//painterResource(id = R.mipmap.ic_app), + contentDescription = null + ) + Spacer(modifier = Modifier.height(16.dp)) + + Text( + text = "没有找到相关内容", + fontSize = 14.sp, + color = app_textColor_666666 + ) + } +} + +@OptIn(ExperimentalResourceApi::class) +@Composable +fun TwinsEmptyViewForDevice() { + Debug("TwinsHomePage-内容-设备列表-空") + Column( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally + ) { + HDImage( + resource = { HDRes.drawable.ic_app }, +// painter = painterResource(hdRes { HDRes.drawable.ic_app }),//painterResource(id = R.mipmap.ic_app), + contentDescription = null + ) + Spacer(modifier = Modifier.height(16.dp)) + Text( + text = "你还没有添加设备", + fontSize = 16.sp, + color = app_textColor_333333 + ) + Spacer(modifier = Modifier.height(12.dp)) + Text( + text = "添加设备,实时查看设备信息", + fontSize = 12.sp, + color = app_textColor_999999 + ) + } +} + + +@OptIn(ExperimentalResourceApi::class) +@Composable +fun TwinsDeviceStatus(modifier: Modifier = Modifier, deviceStatus: DeviceStatus) { + when (deviceStatus) { + DeviceStatus.GPRSOffLine -> { + HDImage( + resource = { HDRes.drawable.icon_twins_offline }, +// painter = painterResource(DrawableResource("icon_twins_offline.png")),//id = R.mipmap.icon_twins_offline), + contentDescription = "gprs_offline", modifier = modifier + ) + } + + DeviceStatus.GPRSOnLine -> { + HDImage( + resource = { HDRes.drawable.icon_twins_4g }, +// painter = painterResource(DrawableResource("icon_twins_4g.png")),//id = R.mipmap.icon_twins_4g), + contentDescription = "wifi", modifier = modifier + ) + } + + DeviceStatus.WiFiOffLine -> { + HDImage( + resource = { HDRes.drawable.icon_twins_offline }, + // painter = painterResource(DrawableResource("icon_twins_offline.png")),//id = R.mipmap.icon_twins_offline), + contentDescription = "wifi", modifier = modifier + ) + } + + DeviceStatus.WiFiOnLine -> { + HDImage( + resource = { HDRes.drawable.icon_twins_wifi }, +// painter = painterResource(DrawableResource("icon_twins_wifi.png")),//id = R.mipmap.icon_twins_wifi), + contentDescription = "wifi", modifier = modifier + ) + } + } +} + +@OptIn(ExperimentalResourceApi::class) +@Composable +fun TwinsLabelText(modifier: Modifier = Modifier, text: String) { + Box(modifier = modifier.widthIn(min = 60.dp, max = 60.dp)) { + HDImage( + resource = { HDRes.drawable.icon_twins_label_bg }, +// painter = painterResource(DrawableResource("icon_twins_label_bg.png")),//id = R.mipmap.icon_twins_label_bg), + contentDescription = "bg", + modifier = Modifier.matchParentSize(), + contentScale = ContentScale.FillBounds + ) + Text( + text = text, fontSize = 11.sp, color = Color(0x66666666), modifier = Modifier + .align( + Alignment.CenterStart + ) + .padding(horizontal = 6.dp) + ) + } +} + + +@OptIn(ExperimentalResourceApi::class) +@Composable +fun TwinsBackgroundBlock( + modifier: Modifier = Modifier, +// painter: Painter = painterResource("icon_twins_4g.png"), +// painter: Painter = painterResource( +// hdRes { +// HDRes.drawable.icon_twins_body_bg +// } +// ), + @OptIn(ExperimentalResourceApi::class) + resource: DrawableResourceFactory = { + hdRes { + HDRes.drawable.icon_twins_body_bg + } + }, + grey: Boolean = false, +) { + Debug("TwinsBackgroundBlock") + if (grey) { + Spacer( + modifier = Modifier + .fillMaxSize() + .background(app_background_brush) + ) + } else { + HDImage( + resource = resource, + contentScale = ContentScale.Crop, + contentDescription = "background", + modifier = modifier.fillMaxWidth() + ) + } +} + + +@OptIn(ExperimentalResourceApi::class) +@Composable +fun EmptyDeviceBlock( + modifier: Modifier = Modifier, + resource: DrawableResourceFactory = { + hdRes { + HDRes.drawable.icon_twins_no_device + } + }, + //painter: Painter = painterResource(DrawableResource("icon_twins_no_device.png")), +) { + HDImage( + resource = resource, +// painter = painter, + contentScale = ContentScale.Crop, + contentDescription = "EmptyDeviceBlock", + modifier = modifier + ) +} + +@OptIn(ExperimentalResourceApi::class) +@Composable +fun EmptyDataBlock( + modifier: Modifier = Modifier, + resource: DrawableResourceFactory = { + hdRes { + HDRes.drawable.icon_twins_no_data + } + }, + //painter: Painter = painterResource(DrawableResource("icon_twins_no_data.png")), +) { + HDImage( + resource = resource, + contentScale = ContentScale.Crop, + contentDescription = "EmptyDataBlock", + modifier = modifier + ) +} + +@OptIn(ExperimentalResourceApi::class) +@Composable +fun LabelTextBlock( + modifier: Modifier = Modifier, + text: String, + resource: DrawableResourceFactory = { + hdRes { + HDRes.drawable.icon_twins_label_bg + } + }, + //painter: Painter = painterResource(DrawableResource("icon_twins_label_bg.png")), +) { + Box(contentAlignment = Alignment.Center, modifier = modifier) { + HDImage( + resource = resource, + contentDescription = "bg" + ) + Text( + text = text, fontSize = 11.sp, color = Color(0x66666666), modifier = Modifier + .align( + Alignment.CenterStart + ) + .padding(start = 6.dp) + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun EditTextBlock( + modifier: Modifier = Modifier, + text: String, + hint: String, + keyboardOptions: KeyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number), + keyboardActions: KeyboardActions = KeyboardActions(), + onValueChange: (String) -> Unit, +) { + TextField( + value = text, + onValueChange = onValueChange, + keyboardOptions = keyboardOptions, + keyboardActions = keyboardActions, + modifier = modifier, + textStyle = Twins.twins_edit_text.copy(textAlign = TextAlign.End), + placeholder = { + Text( + modifier = Modifier.fillMaxWidth(), + text = hint, + style = Twins.twins_edit_text_hint.copy(textAlign = TextAlign.End) + ) + }, + singleLine = true, + maxLines = 1, + shape = RoundedCornerShape(12.dp), + colors = TextFieldDefaults.textFieldColors( + cursorColor = China.r_luo_xia_hong, + focusedIndicatorColor = Color.Transparent, + unfocusedIndicatorColor = Color.Transparent + + ) + ) +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun EditTextCenterBlock( + modifier: Modifier = Modifier, + text: String, + hint: String, + keyboardOptions: KeyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number), + keyboardActions: KeyboardActions = KeyboardActions(), + onValueChange: (String) -> Unit, +) { + val textAlign = TextAlign.Center + TextField( + value = text, + onValueChange = onValueChange, + modifier = modifier, + textStyle = Twins.twins_edit_text.copy(textAlign = textAlign), + placeholder = { + Text( + modifier = Modifier.fillMaxWidth(), + text = hint, + style = Twins.twins_edit_text_hint.copy(textAlign = textAlign) + ) + }, + singleLine = true, + maxLines = 1, + shape = RoundedCornerShape(12.dp), + colors = TextFieldDefaults.textFieldColors( + cursorColor = China.r_luo_xia_hong, + focusedIndicatorColor = Color.Transparent, + unfocusedIndicatorColor = Color.Transparent + + ), keyboardOptions = keyboardOptions, keyboardActions = keyboardActions + ) +} + +@Composable +fun CheckedTextBlock( + modifier: Modifier = Modifier, + text: String, + checked: Boolean, + onCheckedChanged: (Boolean) -> Unit, +) { + val style = if (checked) { + Twins.twins_title.copy(color = app_appColor) + } else { + Twins.twins_title + } + val shape = RoundedCornerShape(22.dp) + Text( + text = text, + style = style, + modifier = modifier + .clip(shape) + .run { + if (checked) { + this.border(width = 1.dp, color = app_appColor, shape = shape) + } else { + this.background(Color(0xfff4f5f7)) + } + } + .clickable { + onCheckedChanged.invoke(!checked) + } + .padding(vertical = 5.dp, horizontal = 16.dp) + ) +} + + +@Composable +fun CommitButtonBlockPreview() { + CommitButtonBlock("ahhaha", true) { + + } +} + +@Composable +fun CommitButtonBlock2( + text: String, + enable: Boolean = true, + onClick: () -> Unit, +) { + Box( + modifier = Modifier + .fillMaxWidth() + .height(48.dp) + .padding(horizontal = 16.dp) + .clip(RoundedCornerShape(24.dp)) + .background(app_button_brush) + .clickable(enabled = enable) { + onClick() + }, contentAlignment = Alignment.Center + ) { + Text( + text = text, + textAlign = TextAlign.Center, + style = TextStyle( + fontSize = 16.sp, + color = Color(1f, 1f, 1f, if (enable) 1f else .5f), + fontWeight = FontWeight(400), textAlign = TextAlign.Center, + ), + maxLines = 1, + modifier = Modifier + + ) + } + +} + +@Composable +fun CommitButtonBlock( + text: String, + enable: Boolean = true, + onClick: () -> Unit, +) { + + Text( + text = text, + //textAlign = TextAlign.Center, + style = TextStyle( + fontSize = 16.sp, + color = Color(1f, 1f, 1f, if (enable) 1f else .5f), + fontWeight = FontWeight(400), //textAlign = TextAlign.Center, + ), + maxLines = 1, + modifier = Modifier + .fillMaxWidth() + .height(48.dp) + .padding(horizontal = 0.dp) + .clip(RoundedCornerShape(24.dp)) + .background(app_button_brush) + .clickable(enabled = enable) { + onClick() + } + .wrapContentHeight() + .wrapContentWidth() + + + ) + +} + +// 文本居中示例 +@Composable +private fun TextDemo() { + Box( + Modifier + .background(China.g_zhu_lv) + .padding(32.dp) + .size(200.dp) + ) { + Text( + text = "hello !", + modifier = Modifier + .height(56.dp) + .fillMaxWidth() + .background(China.r_luo_xia_hong) + .wrapContentHeight() + .wrapContentWidth(), +// textAlign = TextAlign.Center + ) + } +} + +@Deprecated("delete") +@Composable +fun FloatActionBlock(modifier: Modifier = Modifier, onClick: () -> Unit) { + Box( + modifier + .size(58.dp) + .padding(4.dp) + ) { + Surface( + shadowElevation = 4.dp, + modifier = Modifier + + .fillMaxSize() + .clip(CircleShape) + .drawWithContent { + drawCircle(app_button_brush) + drawContent() + } + +// .size(58.dp) +// .clip(CircleShape) + + +// .background(China.r_luo_xia_hong) +// , color = blue_1 + ) { + Icon( + Icons.Filled.Add, + tint = Color.White, + contentDescription = "add_device", + modifier = Modifier + .wrapContentSize() +// .background(China.g_zhu_lv) + ) + + } + } +} + +@Composable +fun DividerBlock(color: Color = app_textColor_999999, horizontal: Boolean = true) { + Spacer(modifier = Modifier + .run { + if (horizontal) { + this + .fillMaxWidth() + .height(.5.dp) + } else { + this + .width(.5.dp) + .fillMaxHeight() + + } + + } + .background(color)) +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/BasicViews.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/BasicViews.kt new file mode 100644 index 0000000..b12c469 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/BasicViews.kt @@ -0,0 +1,59 @@ +package com.yunext.virtuals.ui.common + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ColorFilter +import androidx.compose.ui.graphics.DefaultAlpha +import androidx.compose.ui.layout.ContentScale +import com.yunext.virtuals.ui.HDResProvider +import com.yunext.virtuals.ui.hdRes +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.ExperimentalResourceApi +import org.jetbrains.compose.resources.painterResource + +@Composable +private fun HDImage( + @OptIn(ExperimentalResourceApi::class) + resource: DrawableResource, + contentDescription: String?, + modifier: Modifier = Modifier, + alignment: Alignment = Alignment.Center, + contentScale: ContentScale = ContentScale.Fit, + alpha: Float = DefaultAlpha, + colorFilter: ColorFilter? = null, +) { + @OptIn(ExperimentalResourceApi::class) + Image( + painterResource(resource), + contentDescription, + modifier, + alignment, + contentScale, + alpha, + colorFilter + ) +} + +@OptIn(ExperimentalResourceApi::class) +typealias DrawableResourceFactory = HDResProvider.() -> DrawableResource + +@Composable +fun HDImage( + @OptIn(ExperimentalResourceApi::class) + resource: DrawableResourceFactory, + contentDescription: String?, + modifier: Modifier = Modifier, + alignment: Alignment = Alignment.Center, + contentScale: ContentScale = ContentScale.Fit, + alpha: Float = DefaultAlpha, + colorFilter: ColorFilter? = null, +) { + @OptIn(ExperimentalResourceApi::class) + val res = hdRes { + this.resource() + } + @OptIn(ExperimentalResourceApi::class) + HDImage(res, contentDescription, modifier, alignment, contentScale, alpha, colorFilter) +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/ScreenModelExt.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/ScreenModelExt.kt new file mode 100644 index 0000000..f87391d --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/ScreenModelExt.kt @@ -0,0 +1,10 @@ +package com.yunext.virtuals.ui.common + +import cafe.adriel.voyager.core.model.StateScreenModel + +abstract class HDStateScreenModel(initialState: S) : + StateScreenModel(initialState = initialState) { + + + +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHAlertDialog.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHAlertDialog.kt new file mode 100644 index 0000000..b8c9685 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHAlertDialog.kt @@ -0,0 +1,119 @@ +package com.yunext.virtuals.ui.common.dialog + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.IntrinsicSize +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.yunext.kmp.resource.color.China +import com.yunext.kmp.resource.color.app_textColor_333333 +import com.yunext.kmp.ui.compose.Debug +import com.yunext.kmp.ui.compose.clickableX +import com.yunext.virtuals.ui.common.DividerBlock + +@Composable +fun CHAlertDialog( + title: String? = null, + msg: String, + left: String? = null, + right: String? = null, + onLeft: () -> Unit = {}, + onRight: () -> Unit = {}, + properties: DialogProperties = DialogProperties( + decorFitsSystemWindows = true, + usePlatformDefaultWidth = true, + dismissOnBackPress = false, + dismissOnClickOutside = true, + securePolicy = SecureFlagPolicy.Inherit + ), + debug: Boolean = false, + dimAmount: Float = .5f, + onDismissRequest: () -> Unit, +) { + Debug("TwinsHomePage-内容-弹窗2") + CHDialog(properties, dimAmount = dimAmount, onDismissRequest = onDismissRequest) { + Box( + Modifier + .fillMaxWidth() + .padding(DialogDefaults.DEFAULT_Padding_hor) + .aspectRatio(16 / 9f) + .clip(DialogDefaults.DEFAULT_SHAPE) + .background(China.w_xue_bai) + .debugShape(debug) +// .padding(16.dp) + .debugShape(debug), contentAlignment = Alignment.Center + + ) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Spacer(modifier = Modifier.height(DialogDefaults.DEFAULT_Padding)) + if (title?.isNotEmpty() == true) { + Text( + text = title, + color = app_textColor_333333, + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + textAlign = TextAlign.Center, + modifier = Modifier + .wrapContentSize() + ) + } + + Text( + text = msg, + color = app_textColor_333333, + fontSize = 14.sp, + textAlign = TextAlign.Center, + modifier = Modifier + .wrapContentHeight() + .fillMaxWidth() + .weight(1f) + .padding(horizontal = DialogDefaults.DEFAULT_Padding) + ) + Spacer(modifier = Modifier.height(12.dp)) + DividerBlock() + + Row( + modifier = Modifier + .fillMaxWidth() + .height(IntrinsicSize.Min) + ) { + Text( + modifier = Modifier + .weight(1f) + .wrapContentHeight() + .padding(vertical = 16.dp).clickableX { + onDismissRequest() + onLeft() + }, text = left ?: "取消",textAlign = TextAlign.Center + ) + DividerBlock(horizontal = false) + Text( + modifier = Modifier + .weight(1f) + .wrapContentHeight() + .padding(vertical = 16.dp).clickableX { + onDismissRequest() + onRight() + }, text = right ?: "确定", textAlign = TextAlign.Center + ) + } + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHDialog.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHDialog.kt new file mode 100644 index 0000000..9629017 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHDialog.kt @@ -0,0 +1,134 @@ +package com.yunext.virtuals.ui.common.dialog + +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.BoxScope +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.runtime.Composable +import androidx.compose.runtime.Immutable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.yunext.kmp.resource.color.China + +internal object DialogDefaults { + internal val DEFAULT_FONT_Color = China.w_yu_du_bai + internal val DEFAULT_FONT_Size = 12.sp + internal val DEFAULT_SIZE = 150.dp + internal val DEFAULT_SHAPE = RoundedCornerShape(12.dp) + internal val DEFAULT_DEBUG_COLOR = China.r_luo_xia_hong + internal val DEFAULT_Progress_Color = China.w_yu_du_bai + internal val DEFAULT_Padding = 16.dp + internal val DEFAULT_Padding_hor = 64.dp +} + +internal fun Modifier.debug(debug: Boolean, block: Modifier.() -> Modifier): Modifier { + return if (debug) { + block(this) + } else this +} + +internal fun Modifier.debugShape(debug: Boolean) = debug(debug) { + border( + 1.dp, DialogDefaults.DEFAULT_DEBUG_COLOR, shape = DialogDefaults.DEFAULT_SHAPE + ) +} + +@Composable +fun CHDialog( + properties: DialogProperties = DialogProperties( + decorFitsSystemWindows = true, + usePlatformDefaultWidth = true, + dismissOnBackPress = true, + dismissOnClickOutside = true, + securePolicy = SecureFlagPolicy.Inherit + ), + dimAmount: Float = .1f, + onDismissRequest: () -> Unit = {}, + content: @Composable BoxScope.() -> Unit, + + ) { + XPopContainer(contentAlignment = Alignment.Center, onDismiss = { + if (properties.dismissOnClickOutside) { + onDismissRequest() + } + }, dimAmount = dimAmount, content = { + content() + }) +} + + +@Immutable +class DialogProperties constructor( + val dismissOnBackPress: Boolean = true, + val dismissOnClickOutside: Boolean = true, + val securePolicy: SecureFlagPolicy = SecureFlagPolicy.Inherit, + val usePlatformDefaultWidth: Boolean = true, + val decorFitsSystemWindows: Boolean = true +) { + + constructor( + dismissOnBackPress: Boolean = true, + dismissOnClickOutside: Boolean = true, + securePolicy: SecureFlagPolicy = SecureFlagPolicy.Inherit, + ) : this( + dismissOnBackPress = dismissOnBackPress, + dismissOnClickOutside = dismissOnClickOutside, + securePolicy = securePolicy, + usePlatformDefaultWidth = true, + decorFitsSystemWindows = true + ) + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is DialogProperties) return false + + if (dismissOnBackPress != other.dismissOnBackPress) return false + if (dismissOnClickOutside != other.dismissOnClickOutside) return false + if (securePolicy != other.securePolicy) return false + if (usePlatformDefaultWidth != other.usePlatformDefaultWidth) return false + if (decorFitsSystemWindows != other.decorFitsSystemWindows) return false + + return true + } + + override fun hashCode(): Int { + var result = dismissOnBackPress.hashCode() + result = 31 * result + dismissOnClickOutside.hashCode() + result = 31 * result + securePolicy.hashCode() + result = 31 * result + usePlatformDefaultWidth.hashCode() + result = 31 * result + decorFitsSystemWindows.hashCode() + return result + } +} + +/** + * Policy on setting [WindowManager.LayoutParams.FLAG_SECURE] on a window. + */ +enum class SecureFlagPolicy { + /** + * Inherit [WindowManager.LayoutParams.FLAG_SECURE] from the parent window and pass it on the + * window that is using this policy. + */ + Inherit, + + /** + * Forces [WindowManager.LayoutParams.FLAG_SECURE] to be set on the window that is using this + * policy. + */ + SecureOn, + /** + * No [WindowManager.LayoutParams.FLAG_SECURE] will be set on the window that is using this + * policy. + */ + SecureOff +} + +internal fun SecureFlagPolicy.shouldApplySecureFlag(isSecureFlagSetOnParent: Boolean): Boolean { + return when (this) { + SecureFlagPolicy.SecureOff -> false + SecureFlagPolicy.SecureOn -> true + SecureFlagPolicy.Inherit -> isSecureFlagSetOnParent + } +} + diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHLoadingDialog.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHLoadingDialog.kt new file mode 100644 index 0000000..ffbef80 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHLoadingDialog.kt @@ -0,0 +1,126 @@ +package com.yunext.virtuals.ui.common.dialog + +import androidx.compose.animation.animateContentSize +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.spring +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import com.yunext.kmp.resource.color.China +import com.yunext.virtuals.ui.common.dialog.CHDialog +import com.yunext.virtuals.ui.common.dialog.DialogDefaults +import com.yunext.virtuals.ui.common.dialog.DialogProperties +import com.yunext.virtuals.ui.common.dialog.SecureFlagPolicy +import com.yunext.virtuals.ui.common.dialog.debugShape +import kotlinx.coroutines.delay + +@Composable +fun CHLoadingDialog( + text: String = "加载中", + properties: DialogProperties = DialogProperties( + decorFitsSystemWindows = true, + usePlatformDefaultWidth = true, + dismissOnBackPress = false, + dismissOnClickOutside = true, + securePolicy = SecureFlagPolicy.Inherit + ), + debug: Boolean = false, + dimAmount: Float, + onDismissRequest: () -> Unit, +) { + CHDialog(properties, dimAmount = dimAmount, onDismissRequest = onDismissRequest) { + Box( + Modifier + .size(DialogDefaults.DEFAULT_SIZE) + .clip(DialogDefaults.DEFAULT_SHAPE) + .background(China.g_zhu_lv) + .debugShape(debug) + .padding(16.dp) + .debugShape(debug) + + ) { + Column( + Modifier + .wrapContentSize() + .align(Alignment.Center) + ) { + var end by remember { + mutableStateOf("") + } + LaunchedEffect(key1 = Unit) { + while (true) { + delay(500) + end += "." + if (end.length > 3) { + end = "." + } + } + } + + CircularProgressIndicator( + color = DialogDefaults.DEFAULT_Progress_Color, + modifier = Modifier + .align(Alignment.CenterHorizontally) + .debugShape(debug) + ) + Spacer(modifier = Modifier.height(12.dp)) + Text( + text = "$text$end", + fontSize = DialogDefaults.DEFAULT_FONT_Size, + fontWeight = FontWeight.Light, + color = DialogDefaults.DEFAULT_FONT_Color, + modifier = Modifier + .align(Alignment.CenterHorizontally) + + .animateContentSize(spring(Spring.DampingRatioHighBouncy)) + ) + } + } + } +} + +@Deprecated("delete", replaceWith = ReplaceWith("TslEditor")) +@Composable +fun CHBottomSheetDialog(onDismissRequest: () -> Unit) { + CHDialog(onDismissRequest = onDismissRequest) { + Box( + Modifier + .fillMaxSize() + .background(China.r_yan_zhi_hong) + ) { + Column( + Modifier + .wrapContentHeight() + .fillMaxWidth() + .background(China.g_zhu_lv) + .padding(16.dp) + .align(Alignment.BottomCenter) + ) { + Text(text = "hello world") + } + } + } +} + + diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHTipsDialog.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHTipsDialog.kt new file mode 100644 index 0000000..a9ff04e --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/CHTipsDialog.kt @@ -0,0 +1,107 @@ +package com.yunext.virtuals.ui.common.dialog + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.IntrinsicSize +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.yunext.kmp.resource.color.China +import com.yunext.kmp.resource.color.app_textColor_333333 +import com.yunext.kmp.ui.compose.clickableX +import com.yunext.virtuals.ui.common.DividerBlock + +@Composable +fun CHTipsDialog( + text: String = "加载中", + properties: DialogProperties = DialogProperties( + decorFitsSystemWindows = true, + usePlatformDefaultWidth = true, + dismissOnBackPress = false, + dismissOnClickOutside = true, + securePolicy = SecureFlagPolicy.Inherit + ), + debug: Boolean = false, + dimAmount: Float = .5f, + onDismissRequest: () -> Unit, +) { + CHDialog(properties, dimAmount = dimAmount, onDismissRequest = onDismissRequest) { + Box( + Modifier + .fillMaxWidth() + .padding(DialogDefaults.DEFAULT_Padding_hor) + .aspectRatio(16 / 9f) + .clip(DialogDefaults.DEFAULT_SHAPE) + .background(China.w_xue_bai) + .debugShape(debug) +// .padding(16.dp) + .debugShape(debug), contentAlignment = Alignment.Center + + ) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Spacer(modifier = Modifier.height(DialogDefaults.DEFAULT_Padding)) + Text( + text = text, + color = app_textColor_333333, + fontSize = 14.sp, + textAlign = TextAlign.Center, + modifier = Modifier +// .background(China.r_fen_hong) + .weight(1f) + .padding(horizontal = DialogDefaults.DEFAULT_Padding) + .wrapContentSize() + ) + Spacer(modifier = Modifier.height(12.dp)) + DividerBlock() + Box(modifier = Modifier.height(IntrinsicSize.Min)) { + + Text( + modifier = Modifier + .fillMaxWidth() + .wrapContentHeight() + .padding(vertical = DialogDefaults.DEFAULT_Padding) + .clickableX { onDismissRequest() }, text = "关闭" + ) + + /* CHPressedView(content = { isPressed -> + val scale = if (isPressed) 1.2f else 1f + val alpha = if (isPressed) .5f else 1f + Text(text = "关闭", + fontSize = 14.sp, + textAlign = TextAlign.Center, + fontWeight = FontWeight.Bold, + modifier = Modifier + .fillMaxSize() + .alpha(alpha) + .scale(scale) + // .fillMaxWidth() + // .wrapContentHeight() + //// .clip(RoundedCornerShape(12.dp)) + // .clickable { + // onDismissRequest() + // } + // .padding(vertical = DialogDefaults.DEFAULT_Padding) + ) + }, onClick = onDismissRequest, modifier = Modifier + .fillMaxWidth() + .wrapContentHeight() + .padding(vertical = DialogDefaults.DEFAULT_Padding))*/ + } + + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/XPopContainer.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/XPopContainer.kt new file mode 100644 index 0000000..102ccf8 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/common/dialog/XPopContainer.kt @@ -0,0 +1,34 @@ +package com.yunext.virtuals.ui.common.dialog + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.BoxScope +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color + +/** + * todo 点击事件的问题 + */ +@Composable +internal fun XPopContainer( + contentAlignment: Alignment = Alignment.TopStart, + dimAmount:Float=.5f, + onDismiss: () -> Unit = {}, + content: @Composable BoxScope.() -> Unit, +) { + Box( + modifier = Modifier + .fillMaxSize() + .background(Color.Black.copy(alpha = dimAmount)) + .clickable(interactionSource = MutableInteractionSource(), indication = null) { + onDismiss() + }, contentAlignment = contentAlignment + ) { + content() + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/data/DeviceAndState.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/data/DeviceAndState.kt new file mode 100644 index 0000000..1e171ab --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/data/DeviceAndState.kt @@ -0,0 +1,103 @@ +package com.yunext.virtuals.ui.data + +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.Stable +import kotlinx.serialization.DeserializationStrategy +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonContentPolymorphicSerializer +import kotlinx.serialization.json.JsonElement +import kotlinx.serialization.json.jsonObject +import kotlin.jvm.JvmStatic +import kotlin.random.Random + + +//@Serializable +@Immutable +@Stable +data class DeviceAndState( + val name: String, + val communicationId: String, + val model: String, + val status: DeviceStatus, +) { + + companion object { + + @JvmStatic + fun randomList(): List = + List(Random.nextInt(10)) { + DeviceAndState( + name = "虚拟设备 -> $it", + communicationId = "通信id -> $it", + model = "设备型号 -> $it", + status = DeviceStatus.random() + ) + } + + val DEBUG_LIST: List by lazy { + List(19) { + DeviceAndState( + name = "虚拟设备 - $it", + communicationId = "通信id - $it", + model = "设备型号 - $it", + status = DeviceStatus.random() + ) + } + } + + @JvmStatic + val DEBUG_ITEM by lazy { + DeviceAndState( + "设备测试01设备测试01设备测试01设备测试01设备测试01设备测试01设备测试01设备测试01", + "通信id", + "设备型号", + DeviceStatus.random() + ) + } + } +} + +//object DeviceStatusSerializer: JsonContentPolymorphicSerializer(DeviceStatus::class){ +// override fun selectDeserializer(element: JsonElement): DeserializationStrategy { +// when(element){ +// element.jsonObject->DeviceStatus.serializer() +// } +// } +// +//} +//@Serializable() + +@Immutable +@Stable +sealed class DeviceStatus(val type: DeviceType, val state: DeviceState) { + @Immutable + @Stable + object WiFiOnLine : DeviceStatus(DeviceType.WIFI, DeviceState.ONLINE) + @Immutable + @Stable + object WiFiOffLine : DeviceStatus(DeviceType.WIFI, DeviceState.OFFLINE) + @Immutable + @Stable + object GPRSOnLine : DeviceStatus(DeviceType.GPRS, DeviceState.ONLINE) + @Immutable + @Stable + object GPRSOffLine : DeviceStatus(DeviceType.GPRS, DeviceState.OFFLINE) + companion object { + internal fun random(): DeviceStatus { + return listOf(WiFiOnLine, WiFiOffLine, GPRSOnLine, GPRSOffLine).random() + } + } +} + +@Serializable +enum class DeviceState { + ONLINE, OFFLINE; +} + +@Serializable +enum class DeviceType { + WIFI, GPRS; +} + diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/data/StateHolder.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/data/StateHolder.kt new file mode 100644 index 0000000..1a55130 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/data/StateHolder.kt @@ -0,0 +1,79 @@ +package com.yunext.virtuals.ui.data + +import kotlinx.coroutines.CoroutineName +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asSharedFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + +interface StateHolder { + val state: StateFlow +} + +sealed interface Effect { + object Idle : Effect + object Processing : Effect + data class Fail(val e: Throwable) : Effect + object Success : Effect +} + +val Effect.processing :Boolean + get() = this == Effect.Processing + +abstract class AbstractStateHolder( + defaultState: S, + coroutineScope: CoroutineScope = CoroutineScope( + Dispatchers.Default + SupervisorJob() + CoroutineName( + "AbstractStateHolder" + ) + ), +) : StateHolder, CoroutineScope by coroutineScope { + private val _state: MutableStateFlow = MutableStateFlow(defaultState) + override val state: StateFlow = _state.asStateFlow() + private val _effect: MutableSharedFlow = MutableSharedFlow() + val effect: Flow = _effect.asSharedFlow() + + protected fun state(changed: S.() -> S) { + _state.update(changed) + } + + protected fun state(state: S) { + _state.value = state + } + + private fun effect(effect: Effect) { + launch { + _effect.emit(effect) + } + } + + private fun effect(effect: () -> Effect) { + effect(effect()) + } + + protected fun request(block: suspend () -> S) { + launch { + try { + effect(Effect.Processing) + val r = block() + state(r) + effect(Effect.Success) + } catch (e: Throwable) { + e.printStackTrace() + effect(Effect.Fail(e)) + } finally { + effect { + Effect.Idle + } + } + } + } + +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/demo/voyager/basicNavigationScreen/VoyagerDemo.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/demo/voyager/basicNavigationScreen/VoyagerDemo.kt index af0c117..403726c 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/demo/voyager/basicNavigationScreen/VoyagerDemo.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/demo/voyager/basicNavigationScreen/VoyagerDemo.kt @@ -10,9 +10,9 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.material.Button -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -63,7 +63,7 @@ data class BasicNavigationScreen( ) { Text( text = "Screen #$index", - style = MaterialTheme.typography.h5 + style = MaterialTheme.typography.bodyLarge ) Spacer(modifier = Modifier.height(24.dp)) diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/demo/voyager/bottomSheetNavigation/BackScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/demo/voyager/bottomSheetNavigation/BackScreen.kt index 8d67652..f8845bd 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/demo/voyager/bottomSheetNavigation/BackScreen.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/demo/voyager/bottomSheetNavigation/BackScreen.kt @@ -2,20 +2,18 @@ package com.yunext.virtuals.ui.demo.voyager.bottomSheetNavigation import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.Button -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.navigator.Navigator import cafe.adriel.voyager.navigator.bottomSheet.BottomSheetNavigator import cafe.adriel.voyager.navigator.bottomSheet.LocalBottomSheetNavigator import com.yunext.kmp.resource.color.China import com.yunext.kmp.ui.compose.hdBorder -import com.yunext.kmp.ui.compose.xplBackground +import com.yunext.kmp.ui.compose.hdBackground import com.yunext.virtuals.ui.demo.voyager.basicNavigationScreen.BasicNavigationScreen class BackScreen : Screen { @@ -26,7 +24,7 @@ class BackScreen : Screen { Box( contentAlignment = Alignment.Center, - modifier = Modifier.fillMaxSize().hdBorder().xplBackground { China.g_zhu_lv } + modifier = Modifier.fillMaxSize().hdBorder().hdBackground { China.g_zhu_lv } ) { Button( onClick = { bottomSheetNavigator.show(BasicNavigationScreen(index = 0, wrapContent = true)) } @@ -37,10 +35,9 @@ class BackScreen : Screen { } } -@OptIn(ExperimentalMaterialApi::class) @Composable fun BottomSheetNavigationScreen() { - BottomSheetNavigator { - Navigator(BackScreen()) - } +// BottomSheetNavigator { +// Navigator(BackScreen()) +// } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/SplashScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/SplashScreen.kt index d4d41ce..df1a0e7 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/SplashScreen.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/SplashScreen.kt @@ -1,8 +1,12 @@ package com.yunext.virtuals.ui.screen import androidx.compose.animation.AnimatedVisibility +import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.material.Text import androidx.compose.runtime.Composable @@ -13,14 +17,20 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp import cafe.adriel.voyager.core.screen.Screen -import cafe.adriel.voyager.core.screen.ScreenKey import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow +import com.yunext.virtuals.ui.HDRes +import com.yunext.virtuals.ui.common.HDImage +import com.yunext.virtuals.ui.hdRes import com.yunext.virtuals.ui.screen.devicelist.DeviceListScreen import kotlinx.coroutines.delay import kotlinx.coroutines.launch +import org.jetbrains.compose.resources.ExperimentalResourceApi +import org.jetbrains.compose.resources.painterResource +@OptIn(ExperimentalResourceApi::class) internal class SplashScreen : Screen { @Composable @@ -38,10 +48,19 @@ internal class SplashScreen : Screen { navigator.replace(DeviceListScreen()) } } - AnimatedVisibility(show) { - Text("欢迎使用孪生App", modifier = Modifier.wrapContentSize()) + + Column(horizontalAlignment = Alignment.CenterHorizontally) { + AnimatedVisibility(show) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Text("Hello Kotlin Multiplatform", modifier = Modifier.wrapContentSize()) + } + } + + Spacer(Modifier.height(12.dp)) + HDImage(resource = { + HDRes.drawable.ic_app + }, contentDescription = null) } } - } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/VoyagerApp.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/VoyagerApp.kt index 7d4e5ec..6237881 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/VoyagerApp.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/VoyagerApp.kt @@ -1,16 +1,29 @@ package com.yunext.virtuals.ui.screen +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.compositionLocalOf import cafe.adriel.voyager.navigator.Navigator import cafe.adriel.voyager.navigator.NavigatorDisposeBehavior +import com.yunext.kmp.common.logger.HDLogger @Composable fun VoyagerApp() { + LaunchedEffect(Unit){ + HDLogger.d("VoyagerApp","::LaunchedEffect") + } Navigator( screen = SplashScreen(), disposeBehavior = NavigatorDisposeBehavior(), onBackPressed = { + HDLogger.d("VoyagerApp","Navigator::onBackPressed $it") true }) } + +/** + * 适配android沉浸式 + */ +val LocalPaddingValues = compositionLocalOf { PaddingValues() } diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/AddDeviceScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/AddDeviceScreen.kt index 1a6a465..9063f90 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/AddDeviceScreen.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/AddDeviceScreen.kt @@ -1,14 +1,54 @@ package com.yunext.virtuals.ui.screen.adddevice +import HDDebugText +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.ui.Modifier +import cafe.adriel.voyager.core.model.rememberScreenModel import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.core.screen.ScreenKey +import cafe.adriel.voyager.navigator.LocalNavigator +import cafe.adriel.voyager.navigator.currentOrThrow +import com.yunext.kmp.ui.compose.hdBackground +import com.yunext.virtuals.ui.common.dialog.CHLoadingDialog +import com.yunext.virtuals.ui.data.Effect +import com.yunext.virtuals.ui.data.processing +import com.yunext.virtuals.ui.screen.devicelist.DeviceListScreenModel -class AddDeviceScreen :Screen { - +class AddDeviceScreen : Screen { @Composable override fun Content() { + + Box(Modifier.fillMaxSize().hdBackground()) { + HDDebugText("设备添加") + val navigator = LocalNavigator.currentOrThrow + + val screenModel: AddDeviceScreenModel = rememberScreenModel { + AddDeviceScreenModel() + } + + val state by screenModel.state.collectAsState() + + if (state.addResult) { + navigator.pop() + } else { + TwinsAddDevicePage(onLeft = { + navigator.pop() + }, onDeviceCommit = { name, type, id, model -> + screenModel.doAddDevice(name, type, id, model) + }) + } + if(state.effect.processing){ + CHLoadingDialog("Loading",dimAmount=.5f){ + + } + } + + } } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/AddDeviceScreenModel.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/AddDeviceScreenModel.kt new file mode 100644 index 0000000..db913a6 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/AddDeviceScreenModel.kt @@ -0,0 +1,61 @@ +package com.yunext.virtuals.ui.screen.adddevice + +import cafe.adriel.voyager.core.model.screenModelScope +import com.yunext.virtuals.module.usecase.DeviceUseCase +import com.yunext.virtuals.ui.common.HDStateScreenModel +import com.yunext.virtuals.ui.data.DeviceType +import com.yunext.virtuals.ui.data.Effect +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.IO +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import kotlin.random.Random + +data class AddDeviceState( + val addResult: Boolean, + val effect: Effect, +) + +internal val DefaultState by lazy { + AddDeviceState(false, Effect.Idle) +} + +class AddDeviceScreenModel(initialState: AddDeviceState = DefaultState) : + HDStateScreenModel(initialState) { + + private val deviceUseCase = DeviceUseCase.INSTANCE + + fun doAddDevice( + deviceName: String, + deviceType: DeviceType, + deviceCommunicationId: String, + deviceModel: String, + ) { + screenModelScope.launch { + mutableState.value = state.value.copy(effect = Effect.Processing) + try { + val result = withContext(Dispatchers.IO) { + deviceUseCase.addDevice( + deviceName, + deviceType, + deviceCommunicationId, + deviceModel + ) + } + delay(Random.nextLong(2000) + 1000) // mock + mutableState.value = state.value.copy( + effect = + if (result) Effect.Success else Effect.Fail( + IllegalStateException("添加失败") + ), addResult = result + ) + + } catch (e: Throwable) { + mutableState.value = state.value.copy(effect = Effect.Fail(e)) + } finally { + mutableState.value = state.value.copy(effect = Effect.Idle) + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/TwinsAddDevicePage.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/TwinsAddDevicePage.kt new file mode 100644 index 0000000..64fff8b --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/adddevice/TwinsAddDevicePage.kt @@ -0,0 +1,206 @@ +package com.yunext.virtuals.ui.screen.adddevice + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.derivedStateOf +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import com.yunext.kmp.ui.compose.hdBorder +import com.yunext.virtuals.ui.common.CheckedTextBlock +import com.yunext.virtuals.ui.common.CommitButtonBlock +import com.yunext.virtuals.ui.common.EditTextBlock +import com.yunext.virtuals.ui.common.TwinsBackgroundBlock +import com.yunext.virtuals.ui.common.TwinsTitle +import com.yunext.virtuals.ui.data.DeviceType +import com.yunext.virtuals.ui.theme.Twins +import org.jetbrains.compose.resources.ExperimentalResourceApi + +@OptIn(ExperimentalResourceApi::class) +@Composable +fun TwinsAddDevicePage( + onLeft: () -> Unit, + onDeviceCommit: (deviceName: String, deviceType: DeviceType, deviceCommunicationId: String, deviceModel: String) -> Unit, +) { + var deviceName: String by rememberSaveable(Unit) { + mutableStateOf("") + } + var deviceType: DeviceType by rememberSaveable(Unit) { + mutableStateOf(DeviceType.WIFI) + } + var deviceCommunicationId: String by rememberSaveable(Unit) { + mutableStateOf("") + } + var deviceModel: String by rememberSaveable(Unit) { + mutableStateOf("") + } + + val commitEnable: Boolean by remember { + derivedStateOf { + deviceModel.isNotEmpty() && deviceName.isNotEmpty() && deviceCommunicationId.isNotEmpty() + } + } + + TwinsBackgroundBlock(grey = true) + + Column( + modifier = Modifier.fillMaxSize() + ) { + TwinsTitle(modifier = Modifier.background(Color.White), text = "新增设备", leftClick = { + onLeft() + }) + Spacer(modifier = Modifier.height(16.dp)) + + /* 设备名称 */ + SubItem(modifier = Modifier.styleInternal(), title = { + SubItemTitle("设备名称", modifier = Modifier) + }, value = { + EditTextBlock( + text = deviceName, hint = "请输入设备名称", onValueChange = { + deviceName = it + }, modifier = Modifier.fillMaxSize() + ) + }) + LineBlock()/*ConstraintLayout( + modifier = Modifier + .styleInternal(), constraintSet = ConstraintSet { + val deviceNameRef = createRefFor(Key_Device_Name) + val deviceNameValueRef = createRefFor(Key_Device_Name_Value) + constrain(deviceNameRef) { + top.linkTo(parent.top) + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(deviceNameValueRef.start) + } + + constrain(deviceNameValueRef) { + top.linkTo(parent.top) + bottom.linkTo(parent.bottom) + end.linkTo(parent.end) + start.linkTo(deviceNameRef.end) + width = Dimension.fillToConstraints + } + } + ) { + SubItemTitle("设备名称", Modifier.layoutId(Key_Device_Name)) + EditTextBlock(text = deviceName, hint = "请输入设备名称", onValueChange = { + deviceName = it + }, modifier = Modifier + .layoutId(Key_Device_Name_Value) + .fillMaxSize()) + } + LineBlock()*/ + + /* 通信类型 */ + SubItem(modifier = Modifier.styleInternal(), + title = { SubItemTitle("通信类型", Modifier) }) { + + Row(modifier = Modifier.fillMaxSize(), horizontalArrangement = Arrangement.End) { + CheckedTextBlock( + modifier = Modifier.align(Alignment.CenterVertically), + text = "WiFi/Bluetooth", + deviceType == DeviceType.WIFI + ) { + if (it && deviceType != DeviceType.WIFI) { + deviceType = DeviceType.WIFI + } + } + + CheckedTextBlock( + modifier = Modifier.align(Alignment.CenterVertically), + text = "4G", + deviceType == DeviceType.GPRS + ) { + if (it && deviceType != DeviceType.GPRS) { + deviceType = DeviceType.GPRS + } + } + } + } + LineBlock() + + /* 通信ID */ + SubItem(modifier = Modifier.styleInternal(), + title = { SubItemTitle("通信ID", Modifier) }, + value = { + EditTextBlock( + text = deviceCommunicationId, hint = "自动填充可修改", onValueChange = { + deviceCommunicationId = it + }, modifier = Modifier.fillMaxSize() + ) + }) + LineBlock() + + /* 设备型号 */ + SubItem(modifier = Modifier.styleInternal(), + title = { SubItemTitle("设备型号", Modifier) }, + value = { + EditTextBlock( + text = deviceModel, hint = "请输入设备型号", onValueChange = { + deviceModel = it + }, modifier = Modifier.fillMaxSize() + ) + }) + + Spacer(modifier = Modifier.height(32.dp)) + Box( + modifier = Modifier.padding(16.dp) + .hdBorder(debug = false) + ) { + CommitButtonBlock( + text = "新增", + enable = commitEnable // use derivedStateOf replace:deviceModel.isNotEmpty() && deviceName.isNotEmpty() && deviceCommunicationId.isNotEmpty() + ) { + onDeviceCommit(deviceName, deviceType, deviceCommunicationId, deviceModel) + } + } + } +} + +private val LineBlock: @Composable () -> Unit = { Spacer(modifier = Modifier.height(1.dp)) } +private fun Modifier.styleInternal() = + height(48.dp).fillMaxWidth().background(Color.White).padding(start = 16.dp, end = 16.dp) + + +@Composable +private fun SubItem( + modifier: Modifier, + title: @Composable () -> Unit, + value: @Composable () -> Unit, +) { + Row( + modifier = modifier, verticalAlignment = Alignment.CenterVertically + ) { + Box( + modifier = Modifier + ) { + title() + } + Box( + modifier = Modifier.weight(1f) + ) { + value() + } + } +} + +@Composable +private fun SubItemTitle(text: String, modifier: Modifier = Modifier) { + Text(text = text, style = Twins.twins_title, modifier = modifier) +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/configwifi/ConfigWiFiScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/configwifi/ConfigWiFiScreen.kt index 9974260..72a8777 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/configwifi/ConfigWiFiScreen.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/configwifi/ConfigWiFiScreen.kt @@ -1,14 +1,21 @@ package com.yunext.virtuals.ui.screen.configwifi +import HDDebugText +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.core.screen.ScreenKey +import com.yunext.kmp.ui.compose.hdBackground class ConfigWiFiScreen :Screen { @Composable override fun Content() { - + Box(Modifier.fillMaxSize().hdBackground()) { + HDDebugText("配网") + } } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailScreen.kt index 5350be4..98fb23f 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailScreen.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailScreen.kt @@ -1,14 +1,22 @@ package com.yunext.virtuals.ui.screen.devicedetail +import HDDebugText +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.core.screen.ScreenKey +import com.yunext.kmp.ui.compose.hdBackground +import com.yunext.virtuals.ui.data.DeviceAndState -class DeviceDetailScreen :Screen { +data class DeviceDetailScreen(private val deviceAndState: DeviceAndState) :Screen { @Composable override fun Content() { - + Box(Modifier.fillMaxSize().hdBackground()) { + HDDebugText("设备详情:$deviceAndState") + } } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubEventScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubEventScreen.kt index 0677133..c078282 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubEventScreen.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubEventScreen.kt @@ -1,12 +1,19 @@ package com.yunext.virtuals.ui.screen.devicedetail +import HDDebugText +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import cafe.adriel.voyager.core.screen.Screen +import com.yunext.kmp.ui.compose.hdBackground class DeviceDetailSubEventScreen :Screen { @Composable override fun Content() { - + Box(Modifier.fillMaxSize().hdBackground()) { + HDDebugText("设备详情-事件") + } } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubPropertityScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubPropertityScreen.kt deleted file mode 100644 index f15fce9..0000000 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubPropertityScreen.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.yunext.virtuals.ui.screen.devicedetail - -import androidx.compose.runtime.Composable -import cafe.adriel.voyager.core.screen.Screen - -class DeviceDetailSubPropertityScreen :Screen { - - - @Composable - override fun Content() { - - } -} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubPropertyScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubPropertyScreen.kt new file mode 100644 index 0000000..4228069 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubPropertyScreen.kt @@ -0,0 +1,20 @@ +package com.yunext.virtuals.ui.screen.devicedetail + +import HDDebugText +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import cafe.adriel.voyager.core.screen.Screen +import com.yunext.kmp.ui.compose.hdBackground + +class DeviceDetailSubPropertyScreen :Screen { + + + @Composable + override fun Content() { + Box(Modifier.fillMaxSize().hdBackground()) { + HDDebugText("设备详情-属性") + } + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubServiceScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubServiceScreen.kt index 4b04e5f..84f9fd6 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubServiceScreen.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicedetail/DeviceDetailSubServiceScreen.kt @@ -1,13 +1,20 @@ package com.yunext.virtuals.ui.screen.devicedetail +import HDDebugText +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import cafe.adriel.voyager.core.screen.Screen +import com.yunext.kmp.ui.compose.hdBackground class DeviceDetailSubServiceScreen :Screen { @Composable override fun Content() { - + Box(Modifier.fillMaxSize().hdBackground()) { + HDDebugText("设备详情-服务") + } } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/DeviceListScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/DeviceListScreen.kt index 124a275..9395851 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/DeviceListScreen.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/DeviceListScreen.kt @@ -1,14 +1,57 @@ package com.yunext.virtuals.ui.screen.devicelist +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.ui.Modifier +import cafe.adriel.voyager.core.model.rememberScreenModel import cafe.adriel.voyager.core.screen.Screen -import cafe.adriel.voyager.core.screen.ScreenKey - -class DeviceListScreen :Screen { +import cafe.adriel.voyager.navigator.LocalNavigator +import cafe.adriel.voyager.navigator.currentOrThrow +import com.yunext.kmp.ui.compose.hdBackground +import com.yunext.virtuals.ui.common.dialog.CHLoadingDialog +import com.yunext.virtuals.ui.data.DeviceAndState +import com.yunext.virtuals.ui.data.Effect +import com.yunext.virtuals.ui.data.processing +import com.yunext.virtuals.ui.screen.adddevice.AddDeviceScreen +import com.yunext.virtuals.ui.screen.devicedetail.DeviceDetailScreen +class DeviceListScreen : Screen { @Composable override fun Content() { + val navigator = LocalNavigator.currentOrThrow + val screenModel = rememberScreenModel { + DeviceListScreenModel() + } + val state by screenModel.state.collectAsState() + + LaunchedEffect(Unit) { + screenModel.doGetAllDevice() + } + + Box(Modifier.fillMaxSize()) { + TwinsHomePage( + modifier = Modifier.fillMaxSize(), + list = state.list, + onRefresh = { + screenModel.doGetAllDevice() + }, + onDeviceSelected = { + navigator.push(DeviceDetailScreen(it)) + }, onActionAdd = { + navigator.push(AddDeviceScreen()) + }, onDeviceDelete = screenModel::doDeleteDevice + ) + } + + if (state.effect.processing) { + CHLoadingDialog("Loading", dimAmount = .5f) { + } + } } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/DeviceListScreenModel.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/DeviceListScreenModel.kt new file mode 100644 index 0000000..959f79a --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/DeviceListScreenModel.kt @@ -0,0 +1,65 @@ +package com.yunext.virtuals.ui.screen.devicelist + +import cafe.adriel.voyager.core.model.screenModelScope +import com.yunext.kmp.common.logger.HDLogger +import com.yunext.virtuals.module.usecase.DeviceUseCase +import com.yunext.virtuals.ui.common.HDStateScreenModel +import com.yunext.virtuals.ui.data.DeviceAndState +import com.yunext.virtuals.ui.data.DeviceType +import com.yunext.virtuals.ui.data.Effect +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.IO +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext + +data class DeviceListState( + val list: List, + val effect: Effect, +) + +internal val DeviceListStateDefault by lazy { + DeviceListState(list = emptyList(), Effect.Idle) +} + +class DeviceListScreenModel(initialState: DeviceListState = DeviceListStateDefault) : + HDStateScreenModel(initialState) { + + private val deviceUseCase = DeviceUseCase.INSTANCE + + fun doGetAllDevice() { + screenModelScope.launch { + mutableState.value = state.value.copy(effect = Effect.Processing) + try { + val list = withContext(Dispatchers.IO) { deviceUseCase.list() } + mutableState.value = state.value.copy(list = list) + } catch (e: Throwable) { + mutableState.value = state.value.copy(effect = Effect.Fail(e)) + } finally { + mutableState.value = state.value.copy(effect = Effect.Idle) + } + } + } + + fun doDeleteDevice(deviceAndState: DeviceAndState) { + screenModelScope.launch { + mutableState.value = state.value.copy(effect = Effect.Processing) + try { + val finalList = withContext(Dispatchers.IO) { + val result = deviceUseCase.delete(deviceAndState.communicationId) + HDLogger.d("DeviceListScreenModel", "doDeleteDevice:$result") + if (result) { + deviceUseCase.list() + } else state.value.list + } + HDLogger.d("DeviceListScreenModel", "doDeleteDevice:$finalList") + mutableState.value = state.value.copy(list = finalList) + + } catch (e: Throwable) { + HDLogger.d("DeviceListScreenModel", "doDeleteDevice:$e") + mutableState.value = state.value.copy(effect = Effect.Fail(e)) + } finally { + mutableState.value = state.value.copy(effect = Effect.Idle) + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalHomeDeviceList.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalHomeDeviceList.kt new file mode 100644 index 0000000..fd9e2ae --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalHomeDeviceList.kt @@ -0,0 +1,132 @@ +package com.yunext.virtuals.ui.screen.devicelist + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.gestures.detectTapGestures +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.yunext.kmp.ui.compose.Debug +import com.yunext.kmp.ui.compose.hdBackground +import com.yunext.virtuals.ui.common.TwinsDeviceStatus +import com.yunext.virtuals.ui.common.TwinsLabelText +import com.yunext.virtuals.ui.data.DeviceAndState +import com.yunext.virtuals.ui.theme.ItemDefaults + + +@Composable +internal expect fun TwinsDeviceList( + modifier: Modifier, + list: List, + onDeviceSelected: (DeviceAndState) -> Unit, + onDeviceDelete: (DeviceAndState) -> Unit, +) + +@Composable +internal expect fun TwinsDeviceItem( + modifier: Modifier, + device: DeviceAndState, + onClick: () -> Unit, + onLongClick: () -> Unit, +) + +@Composable +internal fun TwinsDeviceItemCommon( + modifier: Modifier, + device: DeviceAndState, + onClick: () -> Unit, + onLongClick: () -> Unit, +) { + Debug("TwinsHomePage-内容-设备列表-item") + Text("desktop - DeviceItem", modifier = modifier.padding(16.dp).clickable { + onClick() + }) + + Column(modifier + .fillMaxWidth() + .wrapContentHeight() + .clip(ItemDefaults.itemShape) +// .background(Color.White) +// .background(xplRandomColor()) + .hdBackground() +// .drawWithContent{ +// drawRect(xplRandomColor()) +// drawContent() +// } + .pointerInput(Unit) { + detectTapGestures( + onTap = {}, + onPress = { onClick() }, + onLongPress = { onLongClick() }) + } +// .clickable { +// onClick() +// } + .padding(16.dp)) { + Debug("TwinsHomePage-内容-设备列表-item-internal-1") + Row(modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) { + Text( + text = device.name, + modifier = Modifier.weight(1f), + overflow = TextOverflow.Ellipsis, + maxLines = 1, + fontWeight = FontWeight.Bold, + ) + Spacer(modifier = Modifier.width(4.dp)) + TwinsDeviceStatus(deviceStatus = device.status) + + } + + Spacer(modifier = Modifier.height(16.dp)) + + DeviceCommunicationIdAndModel(Modifier, device.communicationId, device.model) + } +} + +@Composable +internal fun DeviceCommunicationIdAndModel( + modifier: Modifier, + communicationId: String, + model: String, +) { + Debug("TwinsHomePage-内容-设备列表-item-internal-2") + Row(modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) { + TwinsLabelText(text = "通信ID") + Spacer(modifier = Modifier.width(4.dp)) + Text( + text = communicationId, + maxLines = 1, + fontSize = 11.sp, + color = Color(0xff666666), + overflow = TextOverflow.Ellipsis + ) + } + + Spacer(modifier = Modifier.height(8.dp)) + Row(modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) { + TwinsLabelText(text = "设备型号") + Spacer(modifier = Modifier.width(4.dp)) + Text( + text = model, + maxLines = 1, + fontSize = 11.sp, + color = Color(0xff666666), + overflow = TextOverflow.Ellipsis + ) + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalHomePage.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalHomePage.kt new file mode 100644 index 0000000..78907e9 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalHomePage.kt @@ -0,0 +1,258 @@ +package com.yunext.virtuals.ui.screen.devicelist + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape + +import androidx.compose.material3.Button +import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.FloatingActionButtonDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight + +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.yunext.kmp.resource.color.app_button_brush +import com.yunext.kmp.resource.color.app_textColor_999999 +import com.yunext.kmp.ui.compose.Debug +import com.yunext.virtuals.ui.common.TwinsBackgroundBlock +import com.yunext.virtuals.ui.common.TwinsEmptyViewForDevice +import com.yunext.virtuals.ui.common.dialog.CHAlertDialog +import com.yunext.virtuals.ui.data.DeviceAndState +import com.yunext.virtuals.ui.screen.LocalPaddingValues +import org.jetbrains.compose.resources.ExperimentalResourceApi + +@Composable +fun TwinsHomePage( + modifier: Modifier = Modifier, + list: List, +// effect: Effect, + onRefresh: () -> Unit, + onDeviceSelected: (DeviceAndState) -> Unit, + onDeviceDelete: (DeviceAndState) -> Unit, + onActionAdd: () -> Unit, +) { + /* 背景 */ + @OptIn(ExperimentalResourceApi::class) + TwinsBackgroundBlock() + +// val refreshing = effect.processing +// val pullRefreshState = rememberPullRefreshState( +// refreshing = refreshing, onRefresh = { onRefresh() }) + Box( + modifier = modifier + .fillMaxSize() + .padding(LocalPaddingValues.current) +// .pullRefresh(pullRefreshState) + ) { + // 版本信息 + TwinsVersion(modifier = Modifier.align(Alignment.TopCenter), "HD孪生设备KMP v0.0.1") + + Column(Modifier.fillMaxSize()) { + Debug("TwinsHomePage-内容") + Spacer(modifier = Modifier.height(36.dp)) + // 项目信息 + Text( + text = "KMM孪生设备",//stringResource(id = R.string.app_name), + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + style = MaterialTheme.typography.titleLarge, + modifier = Modifier.padding(start = 16.dp, end = 16.dp) + // fontStyle = MaterialTheme.typography.titleLarge + ) + Text( + text = "ssl://emqtt-test.yunext.com:8881",//stringResource(id = R.string.app_virtual_device), + fontSize = 11.sp, + fontWeight = FontWeight.Normal, + style = MaterialTheme.typography.titleSmall.copy(app_textColor_999999), + modifier = Modifier.padding(start = 16.dp, end = 16.dp) + // fontStyle = MaterialTheme.typography.titleLarge + ) + Spacer(modifier = Modifier.height(16.dp)) + + // 设备列表标题 + Row(verticalAlignment = Alignment.CenterVertically) { + Debug("TwinsHomePage-内容-设备列表标题") + Text( + text = "虚拟设备",//stringResource(id = R.string.app_virtual_device), + fontSize = 12.sp, + fontWeight = FontWeight.Normal, + style = MaterialTheme.typography.titleLarge, + modifier = Modifier.padding(start = 16.dp, end = 8.dp) + // fontStyle = MaterialTheme.typography.titleLarge + ) + Text( + + text = "1",//stringResource(id = R.string.app_name), + fontSize = 18.sp, + fontWeight = FontWeight.Bold, + style = MaterialTheme.typography.titleLarge, + modifier = Modifier.padding(start = 16.dp, end = 16.dp) + // fontStyle = MaterialTheme.typography.titleLarge + ) + } + + // 设备列表 + val s = @Composable { + Box( + modifier = Modifier + .fillMaxSize() + ) { + Debug("TwinsHomePage-内容-设备列表") + if (list.isEmpty()) { + TwinsEmptyViewForDevice() + } else { + TwinsDeviceList(Modifier, list,{ + onDeviceSelected.invoke(it) + }){ + onDeviceDelete.invoke(it) + } + } + +// PullRefreshIndicator( +// refreshing = refreshing, +// state = pullRefreshState, +// scale = true, +// modifier = Modifier.align( +// Alignment.TopCenter +// ) +// ) + + //DebugCompositionLayoutByMeasureAndPlaceDrawing() + } + } + + s() + + + } + + + // 悬浮按钮 + FloatingActionButton( + onClick = { + onActionAdd.invoke() + }, + shape = CircleShape, + elevation = FloatingActionButtonDefaults.elevation(4.dp), + modifier = Modifier + .padding(end = 16.dp, bottom = 16.dp) + .align(Alignment.BottomEnd), +// contentColor = Color.Red, +// containerColor = China.r_luo_xia_hong + + ) { + Debug("TwinsHomePage-内容-悬浮按钮") + Box( + contentAlignment = Alignment.Center, + modifier = Modifier + .size(58.dp) + .clip(CircleShape) + .background(brush = app_button_brush) + ) { + + Text( + text = "+", + color = Color.White, + fontSize = 22.sp, + fontWeight = FontWeight.Bold + ) + } + } + + + DebugDialog() + } + +} + +@Composable +private fun DebugDialog() { + // 弹窗 + Debug("TwinsHomePage-内容-弹窗") + var show by remember { + mutableStateOf(false) + } + var index by remember { + mutableStateOf(0) + } + Box(modifier = Modifier.fillMaxSize()) { + Button( + onClick = { + index += 1 + show = !show + + +// val a = A1("Greeting hello") +// val a = A3 +// println("Greeting a = $a") +// val json = Json.encodeToString(A.serializer(), a) +// println("Greeting json = $json") +// val r = Json.decodeFromString(A.serializer(), json) +// println("Greeting r = $r") + +// val abstractContext = SerializersModule { +// polymorphic(A::class) { +// subclass(A1::class) +// subclass(A2::class) +// // no need to register ProtocolWithAbstractClass.ErrorMessage +// } +// +// } +// val jsonER = Json { +// serializersModule = abstractContext +// } +// val json = jsonER.encodeToString(A3) +// println("Greeting json = $json") +// val r = jsonER.decodeFromString(A1.serializer(),json) +// println("Greeting r = $r") + + }, + modifier = Modifier.Companion + .align(Alignment.BottomStart) + .padding(vertical = 16.dp) + ) { + Text(text = "Debug") + } + if (show) { +// if (index % 2 == 0) { +//// CHLoadingDialog(dimAmount = 0.1f) { +//// show = false +//// } +// NewsDialog() { +// show = false +// } +// } else { + //TODO("底部弹窗") + CHAlertDialog("haha", "天生我才必有用") { + show = false + } +// } + +// AlertDialog(onDismissRequest = { show = false }, buttons = { +// Text(text = "I am dialog", modifier = Modifier.size(200.dp)) +// }) + + } + } +} + + + diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalTwinsVersion.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalTwinsVersion.kt new file mode 100644 index 0000000..06f3a8b --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/InternalTwinsVersion.kt @@ -0,0 +1,22 @@ +package com.yunext.virtuals.ui.screen.devicelist + +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.yunext.kmp.resource.color.app_textColor_999999 + +@Composable +fun TwinsVersion(modifier: Modifier, version: String) { + Text( + version, + color = app_textColor_999999.copy(.5f), + fontSize = 11.sp, + fontWeight = FontWeight.Light, + modifier = modifier.wrapContentSize().padding(16.dp) + ) +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/logger/LoggerScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/logger/LoggerScreen.kt index 0b6013f..d78650f 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/logger/LoggerScreen.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/logger/LoggerScreen.kt @@ -1,13 +1,20 @@ package com.yunext.virtuals.ui.screen.logger +import HDDebugText +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.core.screen.ScreenKey +import com.yunext.kmp.ui.compose.hdBackground class LoggerScreen : Screen { @Composable override fun Content() { - + Box(Modifier.fillMaxSize().hdBackground()) { + HDDebugText("日志") + } } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/setting/SettingScreen.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/setting/SettingScreen.kt index ecbaf35..bd5ad89 100644 --- a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/setting/SettingScreen.kt +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/screen/setting/SettingScreen.kt @@ -1,14 +1,21 @@ package com.yunext.virtuals.ui.screen.setting +import HDDebugText +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.core.screen.ScreenKey +import com.yunext.kmp.ui.compose.hdBackground class SettingScreen : Screen { @Composable override fun Content() { - + Box(Modifier.fillMaxSize().hdBackground()) { + HDDebugText("设置") + } } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/Color.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/Color.kt new file mode 100644 index 0000000..b36eacf --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/Color.kt @@ -0,0 +1,5 @@ +package com.yunext.virtuals.ui.theme + +import com.yunext.kmp.resource.color.China + +val Virtual_Color_Background = China.g_zhu_lv \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/ItemDefaults.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/ItemDefaults.kt new file mode 100644 index 0000000..4816e76 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/ItemDefaults.kt @@ -0,0 +1,64 @@ +package com.yunext.virtuals.ui.theme + +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import com.yunext.kmp.common.util.hdUUID +import com.yunext.kmp.resource.color.app_gray_light +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.ExperimentalResourceApi + +@OptIn(ExperimentalResourceApi::class) +@Composable +internal fun hdPainterResource(resName:String) { + org.jetbrains.compose.resources.painterResource(DrawableResource(resName)) +} + +internal object ItemDefaults { + internal val itemBackground = Color.White + internal val itemShape = RoundedCornerShape(16.dp) + + internal val itemElevation = 12.dp + + internal val labelShape = RoundedCornerShape(8.dp) + internal val editShape = RoundedCornerShape(4.dp) + private val contentShape = RoundedCornerShape(8.dp) + private val content4Shape = RoundedCornerShape(4.dp) + + internal val contentBorderColor = app_gray_light + + internal val contentValueShape = RoundedCornerShape(topStart = 8.dp, topEnd = 8.dp) + internal val contentSpecShape = RoundedCornerShape(bottomStart = 8.dp, bottomEnd = 8.dp) + + internal val contentValueMaxHeight = 200.dp + + internal val borderModifier = Modifier + .fillMaxWidth() + .clip(contentShape) + .border( + width = .5.dp, + color = contentBorderColor, + shape = contentShape + ) + + internal val border4Modifier = Modifier + .fillMaxWidth() + .clip(content4Shape) + .border( + width = .5.dp, + color = contentBorderColor, + shape = content4Shape + ) + + internal val valueTypes = listOf("int","bool","enum","date","double","text") + + internal fun randomTextInternal(take:Int = 4):String = hdUUID(take)//UUID.randomUUID().toString().take(take) + + +} + diff --git a/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/Type.kt b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/Type.kt new file mode 100644 index 0000000..2bca412 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/yunext/virtuals/ui/theme/Type.kt @@ -0,0 +1,62 @@ +package com.yunext.virtuals.ui.theme + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp +import com.yunext.kmp.resource.color.app_textColor_333333 + +// Set of Material typography styles to start with +//val Typography = Typography( +// bodyLarge = TextStyle( +// fontFamily = FontFamily.Default, +// fontWeight = FontWeight.Normal, +// fontSize = 16.sp, +// lineHeight = 24.sp, +// letterSpacing = 0.5.sp +// ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ + +//) + +object Twins { + val twins_title = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 14.sp, + color = app_textColor_333333 + ) + + val twins_edit_text = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 14.sp, + color = Color(0xff666666) + ) + + val twins_edit_text_hint = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 14.sp, + color = Color(0xff999999) + ) + +} + + diff --git a/shared/src/iosMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.ios.kt b/shared/src/iosMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.ios.kt new file mode 100644 index 0000000..46942e6 --- /dev/null +++ b/shared/src/iosMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.ios.kt @@ -0,0 +1,49 @@ +package com.yunext.virtuals.ui.screen.devicelist + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.yunext.kmp.ui.compose.CHItemShadowShape +import com.yunext.kmp.ui.compose.Debug +import com.yunext.virtuals.ui.data.DeviceAndState + +@Composable +actual fun TwinsDeviceItem( + modifier: Modifier, + device: DeviceAndState, + onClick: () -> Unit, + onLongClick: () -> Unit, +) { + TwinsDeviceItemCommon(modifier, device, onClick, onLongClick) +} + +@Composable +actual fun TwinsDeviceList( + modifier: Modifier, + list: List, + onDeviceSelected: (DeviceAndState) -> Unit, + onDeviceDelete: (DeviceAndState) -> Unit, +) { + Debug("TwinsHomePage-内容-设备列表-IOS") + LazyColumn( + modifier = Modifier.padding(0.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + contentPadding = PaddingValues(16.dp) + ) { + items(items = list, key = { it.communicationId }) { device -> + CHItemShadowShape { + TwinsDeviceItem(modifier = Modifier.fillMaxWidth(), device = device, { + onDeviceSelected.invoke(device) + }) { + onDeviceDelete.invoke(device) + } + } + } + } +} \ No newline at end of file diff --git a/shared/src/jvmMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.jvm.kt b/shared/src/jvmMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.jvm.kt new file mode 100644 index 0000000..45be333 --- /dev/null +++ b/shared/src/jvmMain/kotlin/com/yunext/virtuals/ui/screen/devicelist/HomeDeviceList.jvm.kt @@ -0,0 +1,170 @@ +package com.yunext.virtuals.ui.screen.devicelist + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.BoxScope +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.LazyListScope +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.yunext.kmp.ui.compose.CHItemShadowShape +import com.yunext.kmp.ui.compose.Debug +import com.yunext.virtuals.ui.data.DeviceAndState + + +@Composable +actual fun TwinsDeviceItem(modifier: Modifier, device: DeviceAndState, onClick: () -> Unit,onLongClick:()->Unit) { + + TwinsDeviceItemCommon(modifier, device,onClick,onLongClick) +} + +private const val MAX_CELLS = 3 + +@Composable +actual fun TwinsDeviceList( + modifier: Modifier, + list: List, + onDeviceSelected: (DeviceAndState) -> Unit, + onDeviceDelete: (DeviceAndState) -> Unit, +) { + Debug("TwinsHomePage-内容-设备列表-桌面") +// LazyVerticalGrid( +// modifier = Modifier.padding(0.dp), +// columns = GridCells.Fixed(3), +// contentPadding = PaddingValues(8.dp), +// verticalArrangement = Arrangement.spacedBy(8.dp), +// horizontalArrangement = Arrangement.spacedBy(8.dp) +// ) { +// items(items = list, key = { it.communicationId }) { device -> +// CHItemShadowShape { +// TwinsDeviceItem(modifier = Modifier.fillMaxWidth(), device = device) { +// onDeviceSelected.invoke(device) +// } +// } +// } + + + LazyColumn( + modifier = Modifier.padding(0.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + contentPadding = PaddingValues(16.dp) + ) { + gridItemsSpace(modifier, list, key = { + list[it].communicationId + }, columnCount = MAX_CELLS) { device -> + CHItemShadowShape { + TwinsDeviceItem(modifier = Modifier.fillMaxWidth(), device = device, onClick = { + onDeviceSelected.invoke(device) + }) { + onDeviceDelete.invoke(device) + } + } + } + } +} + +fun LazyListScope.gridItemsSpace( + modifier: Modifier, + data: List, + key: ((index: Int) -> Any)? = null, + columnCount: Int, + horizontal: Arrangement.Horizontal = Arrangement.Start, + content: @Composable (T) -> Unit, + + ) { + val size = data.size + val fullColumnCount = size / columnCount // 满格的 + val lastFullColumnCount = size % columnCount // 最后一行 + val horizontalSpacer = @Composable { + Spacer(modifier = Modifier.width(16.dp)) + } + + items(fullColumnCount, key = key) { fullIndex -> + Row( + modifier = modifier.padding(horizontal = 8.dp).wrapContentHeight(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = horizontal + ) { + (0 until MAX_CELLS).forEach { rowIndex -> + val device = data[fullIndex * MAX_CELLS + rowIndex] + if(rowIndex!=0){ + horizontalSpacer() + } + + Box( + modifier = Modifier.weight(1f, fill = true), + propagateMinConstraints = true + ) { + content(device) + } + } + } + } + if (lastFullColumnCount > 0) { + item(lastFullColumnCount) { + Row( + modifier = modifier.padding(horizontal = 8.dp).wrapContentHeight(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = horizontal + ) { + (0 until lastFullColumnCount).forEach { + val device = data[fullColumnCount * MAX_CELLS + it] + if(it!=0){ + horizontalSpacer() + } + Box( + modifier = Modifier.weight(1f, fill = true), + propagateMinConstraints = true + ) { + content(device) + } + } + } + } + } + +} + +fun LazyListScope.gridItems( + modifier: Modifier, + data: List, + key: ((index: Int) -> Any)? = null, + columnCount: Int, + horizontal: Arrangement.Horizontal = Arrangement.Start, + content: @Composable BoxScope.(T) -> Unit, + + ) { + val size = data.size + val rows = if (size == 0) 0 else 1 + (size - 1) / columnCount + items(rows, key = key) { rowIndex -> + Row( + modifier = modifier.padding(horizontal = 8.dp).wrapContentHeight(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = horizontal + ) { + for (columnIndex in 0 until columnCount) { + val itemIndex = rowIndex * columnCount + columnIndex + if (itemIndex < size) { + if (itemIndex < 0) return@items + Box( + modifier = Modifier.weight(1f, fill = true), + propagateMinConstraints = true + ) { + content(data[itemIndex]) + } + } else { + Spacer(Modifier.weight(1f, fill = true)) + } + } + } + } +} \ No newline at end of file