patch_gui_0423_0515 合并 1790/1 1790/head 1792/target/1
authorCaisking <Casiking@zhihuishixun.com>
Mon, 26 May 2025 08:01:34 +0000 (16:01 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Mon, 26 May 2025 08:01:34 +0000 (16:01 +0800)
223 files changed:
code/sdk/application/wearable/fd230/nativeapp/brandy-auto-ota-cli/libuikit_fwk.a
code/sdk/application/wearable/fd230/nativeapp/brandy-auto-ota-ser/libuikit_fwk.a
code/sdk/application/wearable/fd230/nativeapp/brandy-native-js-fd230/libuikit_fwk.a
code/sdk/application/wearable/fd230/nativeapp/brandy-native-js-xts/libuikit_fwk.a
code/sdk/application/wearable/fd230/nativeapp/brandy-native-js/libuikit_fwk.a
code/sdk/application/wearable/fd230/nativeapp/brandy-xts/libuikit_fwk.a
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/DialBinParserV3.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialDataBase.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialDataType.h [new file with mode: 0644]
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialDigitalImgView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialModelHourMin.h [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialModelPath.h [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialModelTime.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialOHDataType.h [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialOptionImgView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialSequenceContainer.h [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialSequenceImgView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialStaticImgView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialTimePublisher.h [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialViewGroup.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/ModelDialDataFactory.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialDataBase.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelCalorie.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelCharge.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelDateEnStr.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelDateStr.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelDateWeekMDStr.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelDateWeekStr.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelDistance.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelHeartRate.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelHourMin.cpp [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelHourTens.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelHourUnits.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelKcalgoal.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelKcalgoalStr.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelKcalgoalValue.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelMinTens.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelMinUnits.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelPath.cpp [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelPower.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelPowerMapper.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelPowerStandby.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelPowerStr.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelSPO2.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelSecondMapper.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelStepgoal.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelStepgoalStr.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelStepgoalValue.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelSteps.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelTime.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelTimeStr.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelWeather.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelWeatherStr.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelWeekEnStr.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelWeekNum.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelWeekStr.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialSequenceContainer.cpp [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialSequenceImgView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialTimePublisher.cpp [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialViewContainer.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialViewGroup.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/ModelDialDataFactory.cpp
code/sdk/application/wearable/nativeapp/brandy-auto-ota-cli/libuikit_fwk.a
code/sdk/application/wearable/nativeapp/brandy-auto-ota-ser/libuikit_fwk.a
code/sdk/application/wearable/nativeapp/brandy-native-js-fd230/libuikit_fwk.a
code/sdk/application/wearable/nativeapp/brandy-native-js/libuikit_fwk.a
code/sdk/application/wearable/nativeapp/brandy-xts/libuikit_fwk.a
code/sdk/application/wearable/nativeapp/nativeui/main/include/DialBinParserV3.h
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialDataBase.h
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialDataType.h [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialDigitalImgView.h
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialModelTime.h
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialOHDataType.h [deleted file]
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialOptionImgView.h
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialSequenceContainer.h [deleted file]
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialSequenceImgView.h
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialStaticImgView.h
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialTimePublisher.h [deleted file]
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialView.h
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialViewGroup.h
code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/ModelDialDataFactory.h
code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialDataBase.cpp [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialModelHeartRate.cpp
code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialModelPower.cpp
code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialModelSteps.cpp
code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialModelTime.cpp
code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialSequenceContainer.cpp [deleted file]
code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialSequenceImgView.cpp
code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialTimePublisher.cpp [deleted file]
code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialViewContainer.cpp
code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialViewGroup.cpp
code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/ModelDialDataFactory.cpp
code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a
code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a
code/sdk/application/wearable/service/msg_center/brandy-native-js-fd230/libmsg_center.a [deleted file]
code/sdk/application/wearable/service/msg_center/brandy-native-js-fd230/libuikit_fwk.a [new file with mode: 0644]
code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a
code/sdk/application/wearable/service/msg_center/brandy-xts/libmsg_center.a
code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/DialBinParser.cpp.xml
code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/display_vau.c.xml
code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/image_cache_manager.cpp.xml
code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/kaleidoscope_utils.cpp.xml
code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_cross_view.cpp.xml
code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_brandy_service.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_sdk.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_brandy_service.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_sdk.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_sdk.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_brandy_service.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_sdk.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_brandy_service.a
code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_sdk.a
code/sdk/middleware/chips/brandy/dfx/include/log_def_gui.h
code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-native-js-fd230-r/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-native-js-fd230/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-native-js-xts-r/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-native-js-xts/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-target4-r/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-target4/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a
code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a
code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a
code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a
code/sdk/middleware/services/gui/hal/display/brandy-native-js-fd230/libdisplay_gfx.a
code/sdk/middleware/services/gui/hal/display/brandy-native-js-xts/libdisplay_gfx.a
code/sdk/middleware/services/gui/hal/display/brandy-native-js/libdisplay_gfx.a
code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a
code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a
code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a
code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a
code/sdk/middleware/services/gui/lvgl/brandy-target1/liblvgl_proprietary_mini.a
code/sdk/middleware/services/gui/lvgl/brandy-target5/liblvgl_proprietary.a
code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a
code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a
code/sdk/middleware/services/gui/uikit/brandy-native-js-fd230/libuikit_ext.a
code/sdk/middleware/services/gui/uikit/brandy-native-js-xts/libuikit_ext.a
code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a
code/sdk/middleware/services/gui/uikit/brandy-target3/libuikit_ext.a
code/sdk/middleware/services/gui/uikit/brandy-xts/libuikit_ext.a
code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_sphere_view.h
code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service.h
code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service.cpp
code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_sphere_view/ui_test_sphere_view.cpp
code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_sphere_view/ui_test_sphere_view.h
code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-native-js-fd230-r/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-native-js-fd230/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-native-js-xts-r/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-native-js-xts/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-native-js/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-target1-r/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-target4/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-target5-r/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-target5/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a
code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a
code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-fd230-r/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-fd230/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-r/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-xts-r/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-xts/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-native-js/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-target3-r/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-target3/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-target5/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a
code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a
code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a
code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a
code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js-fd230/libams.a
code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js-xts/libams.a
code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js/libams.a
code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a
code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a
code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-ser/libace.a
code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js-fd230/libace.a
code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js-xts/libace.a
code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js/libace.a
code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a
code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a
code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a
code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js-fd230/libbms.a
code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js-xts/libbms.a
code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js/libbms.a
code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a
code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a
code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a
code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js-fd230/libjerryscript.a
code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js-xts/libjerryscript.a
code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js/libjerryscript.a
code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a

index c530718..f8834ae 100644 (file)
Binary files a/code/sdk/application/wearable/fd230/nativeapp/brandy-auto-ota-cli/libuikit_fwk.a and b/code/sdk/application/wearable/fd230/nativeapp/brandy-auto-ota-cli/libuikit_fwk.a differ
index 410571e..9c513d8 100644 (file)
Binary files a/code/sdk/application/wearable/fd230/nativeapp/brandy-auto-ota-ser/libuikit_fwk.a and b/code/sdk/application/wearable/fd230/nativeapp/brandy-auto-ota-ser/libuikit_fwk.a differ
index 55d7365..b1ab9d2 100644 (file)
Binary files a/code/sdk/application/wearable/fd230/nativeapp/brandy-native-js-fd230/libuikit_fwk.a and b/code/sdk/application/wearable/fd230/nativeapp/brandy-native-js-fd230/libuikit_fwk.a differ
index 55d7365..b1ab9d2 100644 (file)
Binary files a/code/sdk/application/wearable/fd230/nativeapp/brandy-native-js-xts/libuikit_fwk.a and b/code/sdk/application/wearable/fd230/nativeapp/brandy-native-js-xts/libuikit_fwk.a differ
index 55d7365..b1ab9d2 100644 (file)
Binary files a/code/sdk/application/wearable/fd230/nativeapp/brandy-native-js/libuikit_fwk.a and b/code/sdk/application/wearable/fd230/nativeapp/brandy-native-js/libuikit_fwk.a differ
index 2c30eba..7864f09 100644 (file)
Binary files a/code/sdk/application/wearable/fd230/nativeapp/brandy-xts/libuikit_fwk.a and b/code/sdk/application/wearable/fd230/nativeapp/brandy-xts/libuikit_fwk.a differ
index 1d5e2ca..99d530e 100644 (file)
@@ -8,10 +8,10 @@
 #ifndef GRAPHIC_LITE_DIAL_BIN_PARSER_V3_H
 #define GRAPHIC_LITE_DIAL_BIN_PARSER_V3_H
 #include "DialBinParserManager.h"
-#include "DialTimePublisher.h"
+#include "DialModelTime.h"
 #include "components/ui_abstract_progress.h"
 #include "DialViewContainer.h"
-#include "DialOHDataType.h"
+#include "DialDataType.h"
 #include "DialOHSliceId.h"
 
 namespace OHOS {
@@ -47,21 +47,21 @@ private:
     bool (DialBinParserV3::*funcArray_[DIAL_BIN_PARSER_FUNC_NUM])(ContainerInterface&);
     void AddToParentWithView(ContainerInterface &parent, uint8_t displayMode, UIView *view);
     void AddToParentWithDialView(ContainerInterface &parent, uint8_t displayMode,
-        DialView *view, DialOHDataType bindData, bool isPeriodic);
+        DialView *view, DialDataType bindData, bool isPeriodic);
     struct {
         uint8_t *viewType;
         uint8_t dialViewCount;
         FILE *file;
         uint8_t curIndex;
     } curViewType_;
-    bool ParseTimeIntervals(FILE* fp, uint8_t cnt, DialTimePublisher::TimeChangeListener *listener);
+    bool ParseTimeIntervals(FILE* fp, uint8_t cnt, TimeChangeListener *listener);
     bool ParseViewType(uint8_t *viewType, uint8_t dialViewCount, FILE *file);
     bool ParseContainerSubviews(DialViewContainer *container, uint8_t num);
     bool ParseOptionsSubviews(ContainerInterface &parent);
 
     DialViewGroup* dialGroup_ = nullptr;
     std::string file_;
-    uint32_t dirId_ = 0xfef << 20; // 20: offset
+    const uint32_t dirId_ = 0xfef << 20; // 20: offset
     uint32_t imageOffset_ = 0;
     DisplayState state_ = DisplayState::NORMAL;
 }; // class DialBinParserV3
index 4b0d0d4..3a5718a 100644 (file)
@@ -1,13 +1,14 @@
 #ifndef DIAL_DATA_BASE_H
 #define DIAL_DATA_BASE_H
+#include "DialDataType.h"
 
-enum class DialDataType {
+enum class DialOldDataType {
   DATA_TYPE_FLOAT_BASE = 0,
   DATA_TYPE_STEPS,          // 运动步数
   DATA_TYPE_HEART_RATE,     // 心率
   DATA_TYPE_CALORIE,        // 运动卡路里
   DATA_TYPE_TEMPERATURE,    // 温度
-  DATA_TYPE_PM25,           // PM2.5
+  DATA_TYPE_PM25,           // PM2.5 (目前没有映射 需要增加)
   DATA_TYPE_PRESSURE,       // 压力
   DATA_TYPE_AILTITUDE,      // 海拔
   DATA_TYPE_POWER,          // 电量
@@ -25,7 +26,7 @@ enum class DialDataType {
   /* ------------------------------- 在下面增加新数据类型
      ------------------------------- */
   DATA_TYPE_CHARGE,           // 充电状态
-  DATA_TYPE_DIALPATH,         // 表盘路径
+  DATA_TYPE_DIALPATH,         // 表盘路径  (目前没有映射 需要增加,但是该项 没有使用?)
   DATA_TYPE_SPO2,             // 血氧
   DATA_TYPE_DISTANCE,         // 运动距离
   DATA_TYPE_WEATHER,          // 天气
@@ -42,15 +43,9 @@ enum class DialDataType {
   DATA_TYPE_STEPS_GOAL_INT,   // 运动步数百分比
   DATA_TYPE_CALORIE_GOAL_INT, // 运动卡路里目标百分比
 
-  DATA_TYPE_SWIVEL_GEAR_ONE = 0x2000, //原sdk设置为20 太小了
-  DATA_TYPE_SWIVEL_GEAR_TWO,
-  DATA_TYPE_SWIVEL_GEAR_THREE,
-  DATA_TYPE_SWIVEL_GEAR_FOUR,
-  DATA_TYPE_SWIVEL_GEAR_FIVE,
-  DATA_TYPE_SWIVEL_GEAR_SIX,
-  
+
   DATA_TYPE_MULTI_FLOAT_BASE = 0x2fff, // 多个浮点数据类型基值
-  DATA_TYPE_HOUR_MIN,                  // 时分
+
 
   DATA_TYPE_TEXT_BASE = 0x4fff, // 文本数据类型基值
   DATA_TYPE_WEEK_STR,           // 星期(string)
@@ -69,4 +64,6 @@ enum class DialDataType {
   
   DATA_TYPE_MAX = 0x6000, // 数据类型的最大值
 };
+
+OHOS::DialDataType Convert2DataType(DialOldDataType dialData);
 #endif
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialDataType.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialDataType.h
new file mode 100644 (file)
index 0000000..6978439
--- /dev/null
@@ -0,0 +1,204 @@
+/*
+ * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
+ * Description: DialDataType
+ * Author:
+ * Create: 2025-02-15
+ */
+
+#ifndef DIAL_DATA_TYPE_H
+#define DIAL_DATA_TYPE_H
+
+#include <unordered_map>
+
+namespace OHOS {
+enum class DialDataType : int16_t {
+    // 起始:单个浮点数据,OH标准协议部分,禁止改动,从0开始(包括0,二进制格式为:0000,xxxx,xxxx,xxxx)
+    DATA_TYPE_FLOAT_BASE = 0,
+    CLOCK = 1, //时钟
+    CLOCK_HIGH = 2, //时钟高位
+    CLOCK_LOW = 3, //时钟低位
+    CLOCK_RATIO_12H = 4,//12小时制
+    CLOCK_RATIO_24H = 5,//24小时制
+    MINUTE_TIME = 6,//分钟
+    MINUTE_HIGH = 7,//分钟高位
+    MINUTE_LOW = 8,//分钟低位
+    MINUTE_RATIO = 9,//分钟比例
+    SECOND_TIME = 10,//秒
+    SECOND_HIGH = 11,//秒高位
+    SECOND_LOW = 12,//秒低位
+    SECOND_RATIO = 13,//秒比例
+    AM_PM = 14,//AM/PM
+    HOUR_FORMAT = 16,//小时格式
+    PREV_HOUR = 17,//上一个小时
+    NEXT_HOUR = 18,//下一个小时
+    CLOCK_ANGLE = 19,//时钟角度
+    MINUTE_ANGLE = 20,//分钟角度
+    SECOND_ANGLE = 21,//秒角度
+    MILLISECOND_ANGLE = 22,//毫秒角度
+    PREV_SECOND = 25,//上一秒
+    NEXT_SECOND = 26,//下一秒
+    PREV_2_SECONDS = 27,//上2秒
+    PREV_MINUTE = 28,//上一分钟
+    NEXT_MINUTE = 29,//下一分钟
+    DUAL_TIMEZONE_CLOCK = 30,//双时区时钟
+    DUAL_TIMEZONE_CLOCK_HIGH = 31,//双时区时钟高位
+    DUAL_TIMEZONE_CLOCK_LOW = 32,//双时区时钟低位
+    DUAL_TIMEZONE_CLOCK_RATIO_12H = 33,//双时区12小时制
+    DUAL_TIMEZONE_CLOCK_RATIO_24H = 34,//双时区24小时制
+    DUAL_TIMEZONE_MINUTE = 35,//双时区分钟
+    DUAL_TIMEZONE_MINUTE_HIGH = 36,//双时区分钟高位
+    DUAL_TIMEZONE_MINUTE_LOW = 37,//双时区分钟低位
+    DUAL_TIMEZONE_MINUTE_RATIO = 38,//双时区分钟比例
+    DUAL_TIMEZONE_AMPM = 41,//双时区AM/PM
+    SUNRISE_SUNSET_IMAGE = 50,//日出日落图片
+    SUNRISE_SUNSET_CLOCK_HIGH = 51,//日出日落时钟高位
+    SUNRISE_SUNSET_CLOCK_LOW = 52,//日出日落时钟低位
+    SUNRISE_SUNSET_MINUTE_HIGH = 53,//日出日落分钟高位
+    SUNRISE_SUNSET_MINUTE_LOW = 54,//日出日落分钟低位
+    DATE = 70,//日期
+    DATE_HIGH = 71,//日期高位
+    DATE_LOW = 72,//日期低位
+    DATE_31_DAY_RATIO = 73,//日期31天比例
+    YESTERDAY = 74,//昨天
+    YESTERDAY_DATE_HIGH = 75,//昨天日期高位
+    YESTERDAY_DATE_LOW = 76,//昨天日期低位
+    TOMORROW = 77,//明天
+    TOMORROW_DATE_HIGH = 78,//明天日期高位
+    TOMORROW_DATE_LOW = 79,//明天日期低位
+    MONTH_DATA = 80,//月份数据
+    MONTH = 81,//月份
+    WEEKDAY_DATA = 83,
+    WEEKDAY_RATIO = 84,
+    CHINESE_HOUR = 86,
+    MOON_PHASE = 87,
+    PREV_MONTH = 88,
+    NEXT_MONTH = 89,
+    SOLAR_YEAR = 240,
+    YEAR_ONES = 241,
+    YEAR_TENS = 242,
+    YEAR_HUNDREDS = 243,
+    YEAR_THOUSANDS = 244,
+    LUNAR_MONTH = 90,
+    LUNAR_DATE_HIGH = 91,
+    LUNAR_DATE_LOW = 92,
+    BATTERY = 100,
+    BATTERY_ENUM = 102,
+    BATTERY_STATUS_ENUM = 103,
+    BATTERY_LEVEL = 104,
+    CHARGING_STATUS = 105,
+    STEP_COUNT = 110,
+    STEP_ONES = 111,
+    STEP_TENS = 112,
+    STEP_HUNDREDS = 113,
+    STEP_THOUSANDS = 114,
+    STEP_TENS_OF_THOUSANDS = 115,
+    STEP_GOAL_PROGRESS = 116,
+    STEP_GOAL_PROGRESS_ENUM = 117,
+    CALORIE = 120,
+    CALORIE_RATIO = 121,
+    CALORIE_GOAL_PROGRESS_ENUM = 122,
+    HEART_RATE = 130,
+    MAX_HEART_RATE = 131,
+    MIN_HEART_RATE = 132,
+    HEART_RATE_ZONE = 133,
+    HEART_RATE_RATIO = 134,
+    STRESS_LEVEL = 140,
+    STRESS_RATIO = 141,
+    STRESS_LEVEL_TYPE = 142,
+    MODERATE_HIGH_INTENSITY_TIME = 150,
+    MODERATE_HIGH_INTENSITY_TIME_RATIO = 151,
+    STAND_COUNT = 152,
+    STAND_COUNT_RATIO = 153,
+    MAX_VO2 = 160,
+    MAX_VO2_RATIO = 161,
+    SLEEP_RATIO = 166,
+    SLEEP_GOAL_PROGRESS_ENUM = 167,
+    TEMPERATURE = 170,
+    MAX_TEMPERATURE = 171,
+    MIN_TEMPERATURE = 172,
+    CURRENT_TEMPERATURE_MINUS_1 = 173,
+    CURRENT_TEMPERATURE_PLUS_1 = 174,
+    TEMPERATURE_TYPE = 175,
+    WEATHER_TYPE = 176,
+    TEMPERATURE_RATIO = 177,
+    PRESSURE = 180,
+    PRESSURE_RATIO = 181,
+    AQI = 182,
+    AQI_LEVEL = 183,
+    AQI_RATIO = 184,
+    ALTITUDE_DATA = 191,
+    ALTITUDE_UNIT = 192,
+    ALTITUDE_RATIO = 193,
+    DISTANCE_DATA = 195,
+    DISTANCE_UNIT = 196,
+    DISTANCE_GOAL_PROGRESS = 197,
+    BLE_CONNECTION_STATUS = 210,
+    BT_CONNECTION_STATUS = 211,
+    BLOOD_OXYGEN = 220,
+    SYSTOLIC_BLOOD_PRESSURE = 221,
+    DIASTOLIC_BLOOD_PRESSURE = 222,
+    DUAL_LANGUAGE_SYSTEM = 230,
+    UNREAD_SMS_MSG = 250,
+    UNREAD_WECHAT_MSG = 251,
+    // 结束:单个浮点数据,OH标准协议部分,禁止改动,到4095结束(包括4095)
+
+
+    // 起始:单个浮点数据,私有可定制部分,从4096开始(包括4096,二进制格式为:0001,xxxx,xxxx,xxxx)
+    DATA_TYPE_FLOAT_CUSTOM_BASE = 4096,
+    PM25 = 4097, // PM2.5
+    POWER_STANDBY, // 备用电量
+    WEEK_NUM, // 星期(数字)
+    STEPS_GOAL_BOXPROGRESS,//步数目标进度条映射?
+    CALORIE_GOAL_BOXPROGRESS,//卡路里目标进度条映射?
+
+    SWIVEL_GEAR_POSITIVE = 8190, // private data, clockwise
+    SWIVEL_GEAR_NEGATIVE = 8191, // counterclockwise
+    // 结束:单个浮点数据,私有可定制部分,到8191结束(包括8191)
+
+    // 起始:文本数据,OH标准协议部分,禁止改动,从8192开始(包括8192,二进制格式为:0010,xxxx,xxxx,xxxx)
+    DATA_TYPE_TEXT_BASE = 8192,
+    AM_PM_TEXT = 8193,
+    SUNRISE_TEXT = 8210,
+    SUNSET_TEXT = 8211,
+    MOONRISE_TEXT = 8221,
+    MOONSET_TEXT = 8222,
+    DUAL_TIMEZONE_ABBR_TEXT = 8200,
+    DUAL_TIMEZONE_TIME_TEXT = 8201,
+    DUAL_TIMEZONE_AM_PM_TEXT = 8202,
+    MONTH_TEXT = 8230,
+    DATE_TEXT = 8231,
+    WEEKDAY_TEXT = 8232,
+    LUNAR_YEAR = 8240,
+    SLEEP_TEXT = 8250,
+    DISTANCE_TEXT = 8260,
+    TIDE_RISE_TIME_TEXT = 8270,
+    TIDE_FALL_TIME_TEXT = 8271,
+    // 结束:文本数据,OH标准协议部分,禁止改动,到12287结束(包括12287)
+
+    // 文本数据,私有可定制部分,从12288开始(包括12288,二进制格式为:0011,xxxx,xxxx,xxxx)
+    DATA_TYPE_TEXT_CUSTOM_BASE = 12288,
+    WEEK_STR = 12289, // 星期(string)
+    DATE_STR = 12290, // 日期(string)
+    WEATHER_STR = 12291, // 天气(string)
+    TIMESTR_STR = 12292, // 时间(string)
+    DATE_WEEK_STR = 12293, // 日期(年月日)星期(string)
+    POWER_STR = 12294, // 电量(string)
+    DATE_WEEK_MD_STR = 12295, // 星期(月日)和日期(string)
+    DATE_EN_STR = 12296, // 月份+日期 (英文)
+    WEEK_EN_STR = 12297, // 星期(英文)
+    STEPS_GOAL_STR = 12298, // 运动步数目标(string)
+    CALORIE_GOAL_STR = 12299, // 卡路里目标(string)
+    // 文本数据,私有可定制部分,到16383结束(包括16383)
+
+    // 起始:多个浮点数据,OH标准协议部分,禁止改动,从16384开始(包括16384,二进制格式为:0100,xxxx,xxxx,xxxx)
+    DATA_TYPE_MULTI_FLOAT_BASE = 16384,
+    // 结束:多个浮点数据,OH标准协议部分,禁止改动,到20479结束(包括20479)
+
+    // 起始:多个浮点数据,私有可定制部分,从20480开始(包括20480,二进制格式为:0101,xxxx,xxxx,xxxx)
+    // 结束:多个浮点数据,私有可定制部分,到24575结束(包括24575)
+
+    DATA_TYPE_MAX = 0x6000,
+}; // enum class DialDataType
+} // namespace OHOS
+
+#endif // DIAL_DATA_TYPE_H
index 5b32496..540c491 100644 (file)
@@ -7,7 +7,7 @@
 
 #include <cstdint>
 #include "DialView.h"
-#include "DialTimePublisher.h"
+#include "DialModelTime.h"
 #include "components/ui_image_view.h"
 #include "gfx_utils/graphic_math.h"
 #include "components/ui_view_group.h"
@@ -20,7 +20,7 @@ enum class ImgAlign {
     RIGHT,
 };
 
-class DialDigitalImgView : public UIImageView, public DialView, public DialTimePublisher::TimeChangeListener {
+class DialDigitalImgView : public UIImageView, public DialView, public TimeChangeListener {
 public:
     DialDigitalImgView();
     ~DialDigitalImgView() override;
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialModelHourMin.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialModelHourMin.h
deleted file mode 100644 (file)
index d28ed1d..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-
-#ifndef DIAL_MODEL_HourMin_H
-#define DIAL_MODEL_HourMin_H
-
-#include "DialBaseModel.h"
-#include <cstdint>
-#include <string>
-#include <vector>
-
-namespace OHOS
-{
-    class DialModelHourMin : public DialBaseModel
-    {
-    public:
-        DialModelHourMin() {}
-        virtual ~DialModelHourMin() {}
-        static DialModelHourMin *GetInstance()
-        {
-            static DialModelHourMin instance;
-            return &instance;
-        }
-        bool GetDialFloatData(DialDataType &type, float *&out, int16_t len) override;
-        void UpdateHourMin(const std::string *&dialHourMin);
-
-    private:
-        float dialhourmin{2};
-    };
-}
-#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialModelPath.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialModelPath.h
deleted file mode 100644 (file)
index 0291902..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef DIAL_MODEL_PATH_H
-#define DIAL_MODEL_PATH_H
-
-#include "DialBaseModel.h"
-#include <cstdint>
-#include <string>
-
-namespace OHOS
-{
-    class DialModelPath : public DialBaseModel
-    {
-    public:
-        DialModelPath() {}
-        virtual ~DialModelPath() {}
-        static DialModelPath *GetInstance()
-        {
-            static DialModelPath instance;
-            return &instance;
-        }
-        bool GetDialTextData(DialDataType &type, std::string *&out, int16_t &strNum) override;
-        void UpdatePath(const std::string *&DialPath);
-
-    private:
-        std::string DialPath_ = "/user/res/dials/dog.bin";
-    };
-}
-#endif
\ No newline at end of file
index 43cd8b0..d71982f 100644 (file)
@@ -9,31 +9,30 @@
 #define DIAL_MODEL_TIME_H
 
 #include "DialBaseModel.h"
-#include "DialTimePublisher.h"
 #include "gfx_utils/list.h"
 
 namespace OHOS {
-class DialModelTime : public DialBaseModel, public DialTimePublisher {
+class TimeChangeListener;
+class DialModelTime : public DialBaseModel {
 public:
-    DialModelTime()
-    {
-        DialModelTime::SetPublisher(dynamic_cast<DialTimePublisher*>(this));
-    }
     ~DialModelTime() override
     {
         listeners_.Clear();
     }
+
     static DialModelTime* GetInstance()
     {
         static DialModelTime instance;
         return &instance;
     }
+
     bool GetDialFloatData(DialDataType& type, float& out) override;
-    void UpdateTime() override;
-    void Register(TimeChangeListener* listener) override;
-    void Unregister(TimeChangeListener* listener) override;
+    void UpdateTime();
+    void Register(TimeChangeListener* listener);
+    void Unregister(TimeChangeListener* listener);
 
 private:
+    DialModelTime() = default;
     struct tm *tblock_;
     uint16_t angleH_ = 0;
     uint16_t angleM_ = 0;
@@ -41,5 +40,23 @@ private:
     float angleMS_ = 0;
     List<TimeChangeListener*> listeners_;
 };
-}
+
+class TimeChangeListener {
+public:
+    struct TimeInterval {
+        uint8_t start;
+        uint8_t end;
+    };
+    virtual void OnTimeUpdate(const struct tm &curTime) = 0;
+    void SetTimeInervals(TimeInterval *intervals, uint8_t num);
+    bool IsInTimeInterval(const struct tm &curTime);
+    TimeChangeListener(const TimeChangeListener&) = delete;
+    TimeChangeListener& operator=(const TimeChangeListener&) = delete;
+    TimeChangeListener();
+    virtual ~TimeChangeListener();
+private:
+    TimeInterval *intervals_ = nullptr;
+    uint8_t num_ = 0;
+};
+} // namespace OHOS
 #endif
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialOHDataType.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialOHDataType.h
deleted file mode 100644 (file)
index 83f8f0f..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
- * Description: DialOHDataType
- * Author:
- * Create: 2025-02-15
- */
-
-#ifndef DIAL_OH_DATATYPE_H
-#define DIAL_OH_DATATYPE_H
-
-#include <unordered_map>
-#include "DialDataBase.h"
-
-namespace OHOS {
-enum class DialOHDataType : int16_t {
-    CLOCK = 1,
-    CLOCK_HIGH_BIT = 2,
-    CLOCK_LOW_BIT = 3,
-    CLOCK_RATIO_12 = 4,
-    CLOCK_RATIO_24 = 5,
-    MINUTES = 6,
-    MINUTES_HIGH_BIT = 7,
-    MINUTES_LOW_BIT = 8,
-    MINUTES_RATIO = 9,
-    SECONDS = 10,
-    SECONDS_HIGH_BIT = 11,
-    SECONDS_LOW_BIT = 12,
-    SECONDS_RATIO = 13,
-    AM_PM = 14,
-    AMPM_TEXT = 15,
-    HOUR_MODE = 16,
-    PREVIOUS_HOUR = 17,
-    NEXT_HOUR = 18,
-    CLOCK_ANGLE = 19,
-    MINUTE_ANGLE = 20,
-    SECONDS_ANGLE = 21,
-    MILLISECOND_ANGLE = 22,
-    PREVIOUS_SECOND = 25,
-    NEXT_SECOND = 26,
-    PREVIOUS_SECOND_PREVIOUS_SECOND = 27,
-    PREVIOUS_MINUTE = 28,
-    NEXT_MINUTE = 29,
-    DUAL_TIME_ZONE_CLOCK = 30,
-    DUAL_TIME_ZONE_CLOCK_HIGH_BIT = 31,
-    DUAL_TIME_ZONE_CLOCK_LOW_BIT = 32,
-    DUAL_TIME_ZONE_CLOCK_RATIO_12 = 33,
-    DUAL_TIME_ZONE_CLOCK_RATIO_24 = 34,
-    DUAL_TIME_ZONE_MINUTES = 35,
-    DUAL_TIME_ZONE_MINUTES_HIGH_BIT = 36,
-    DUAL_TIME_ZONE_MINUTES_LOW_BIT = 37,
-    DUAL_TIME_ZONE_MINUTES_RATIO = 38,
-    DUAL_TIME_ZONE_ABBREVIATION_TEXT = 39,
-    DUAL_TIME_ZONE_TIME_MINUTE_TEXT = 40,
-    DUAL_TIME_ZONE_AMPM = 41,
-    DUAL_TIME_ZONE_AM_PM_TEXT = 42,
-    SUNRISE_SUNSET_PICTURE_SELECTION = 50,
-    SUNRISE_SUNSET_CLOCK_HIGH_BIT = 51,
-    SUNRISE_SUNSET_CLOCK_LOW_BIT = 52,
-    SUNRISE_SUNSET_MINUTES_HIGH_BIT = 53,
-    SUNRISE_SUNSET_MINUTES_LOW_BIT = 54,
-    SUNRISE_TEXT = 55,
-    SUNSET_TEXT = 56,
-    MOONRISE_TEXT = 60,
-    MOONSET_TEXT = 61,
-    DATE = 70,
-    DATE_HIGH_BIT = 71,
-    DATE_LOW_BIT = 72,
-    DATE_OCCUPIES_31_DAYS_RATIO = 73,
-    YESTERDAY = 74,
-    YESTERDAY_DATE_HIGH_BIT = 75,
-    YESTERDAY_DATE_LOW_BIT = 76,
-    TOMORROW = 77,
-    TOMORROW_DATE_HIGH_BIT = 78,
-    TOMORROW_DATE_LOW_BIT = 79,
-    MONTH_DATA = 80,
-    MONTH = 81,
-    MONTH_TEXT = 82,
-    WEEK_DATA = 83,
-    WEEK_RATIO = 84,
-    WEEK_TEXT = 85,
-    TWELVE_DIVISIONS = 86,
-    LUNAR_PHASE = 87,
-    PREVIOUS_MONTH = 88,
-    NEXT_MONTH = 89,
-    LUNAR_MONTH = 90,
-    LUNAR_DATE_HIGH_BIT = 91,
-    LUNAR_DATE_LOW_BIT = 92,
-    CHARGE = 100,
-    CHARGE_ENUMERATION = 102,
-    CHARGE_STATUS_ENUMERATION = 103,
-    CHARGE_RATIO = 104,
-    CHARGING_STATUS = 105,
-    STEPS = 110,
-    STEPS_UNIT_DIGIT = 111,
-    STEPS_TENS_DIGIT = 112,
-    STEPS_HUNDRED_DIGIT = 113,
-    STEPS_THOUSAND_DIGIT = 114,
-    STEPS_TEN_THOUSAND_DIGIT = 115,
-    STEPS_TARGET_ACHIEVEMENT_RATE = 116,
-    STEPS_TARGET_PROGRESS_ENUMERATION = 117,
-    CALORIES = 120,
-    CALORIES_RATIO = 121,
-    CALORIES_TARGET_PROGRESS_ENUMERATION = 122,
-    HEART_RATE = 130,
-    MAXIMUM_HEART_RATE = 131,
-    MINIMUM_HEART_RATE = 132,
-    HEART_RATE_RANGE = 133,
-    HEART_RATE_RATIO = 134,
-    STRESS = 140,
-    STRESS_RATIO = 141,
-    STRESS_LEVEL_TYPE = 142,
-    MODERATE_TO_VIGOROUS_INTENSITY_TIME = 150,
-    MODERATE_TO_VIGOROUS_INTENSITY_TIME_RATIO = 151,
-    STANDING_TIMES = 152,
-    STANDING_TIMES_RATIO = 153,
-    MAXIMUM_OXYGEN_UPTAKE = 160,
-    MAXIMUM_OXYGEN_UPTAKE_RATIO = 161,
-    SLEEP_TEXT = 165,
-    SLEEP_RATIO = 166,
-    SLEEP_TARGET_ACHIEVEMENT_RATE_ENUMERATION = 167,
-    TEMPERATURE = 170,
-    HIGHEST_TEMPERATURE = 171,
-    LOWEST_TEMPERATURE = 172,
-    CURRENT_TEMPERATURE_MINUS_ONE = 173,
-    CURRENT_TEMPERATURE_PLUS_ONE = 174,
-    TEMPERATURE_TYPE = 175,
-    WEATHER_TYPE = 176,
-    TEMPERATURE_RATIO = 177,
-    ATMOSPHERIC_PRESSURE = 180,
-    ATMOSPHERIC_PRESSURE_RATIO = 181,
-    AIR_QUALITY_INDEX = 182,
-    AIR_QUALITY_INDEX_LEVEL = 183,
-    AIR_QUALITY_INDEX_RATIO = 184,
-    ELEVATION = 190,
-    ELEVATION_HEIGHT_DATA = 191,
-    ELEVATION_HEIGHT_UNIT = 192,
-    HEIGHT_RATIO = 193,
-    DISTANCE_TEXT = 194,
-    DISTANCE_DATA = 195,
-    DISTANCE_UNIT = 196,
-    DISTANCE_TARGET_PROGRESS = 197,
-    HIGH_TIDE_TIME_TEXT = 200,
-    LOW_TIDE_TIME_TEXT = 201,
-    BLE_CONNECTION_STATUS = 210,
-    BT_CONNECTION_STATUS = 211,
-    BLOOD_OXYGEN = 220,
-    SYSTOLIC_BLOOD_PRESSURE = 221,
-    DIASTOLIC_BLOOD_PRESSURE = 222,
-    DUAL_LANGUAGE_SYSTEM = 230,
-    SWIVEL_GEAR_POSITIVE = (1 << 12) + 20, // private data, clockwise
-    SWIVEL_GEAR_NEGATIVE, // counterclockwise
-}; // enum class DialOHDataType
-
-struct HashOHDataType {
-    size_t operator()(DialOHDataType data) const
-    {
-        return std::hash<int16_t>()(static_cast<int16_t>(data));
-    }
-};
-
-const std::unordered_map<DialOHDataType, DialDataType, HashOHDataType> g_bindDataConverter = {
-    {DialOHDataType::CLOCK, DialDataType::DATA_TYPE_TIME_HOUR},
-    {DialOHDataType::MINUTES, DialDataType::DATA_TYPE_TIME_MINUTE},
-    {DialOHDataType::SECONDS, DialDataType::DATA_TYPE_TIME_SECOND},
-    {DialOHDataType::MILLISECOND_ANGLE, DialDataType::DATA_TYPE_CLOCK_ANGLE_MS},
-    {DialOHDataType::DATE, DialDataType::DATA_TYPE_TIME_DATE},
-    {DialOHDataType::WEEK_DATA, DialDataType::DATA_TYPE_TIME_WEEK},
-    {DialOHDataType::CHARGE, DialDataType::DATA_TYPE_POWER},
-    {DialOHDataType::STEPS, DialDataType::DATA_TYPE_STEPS},
-    {DialOHDataType::CALORIES, DialDataType::DATA_TYPE_CALORIE},
-    {DialOHDataType::HEART_RATE, DialDataType::DATA_TYPE_HEART_RATE},
-    {DialOHDataType::STRESS, DialDataType::DATA_TYPE_PRESSURE},
-    {DialOHDataType::TEMPERATURE, DialDataType::DATA_TYPE_TEMPERATURE},
-    {DialOHDataType::ELEVATION, DialDataType::DATA_TYPE_AILTITUDE},
-    {DialOHDataType::AIR_QUALITY_INDEX, DialDataType::DATA_TYPE_PM25},
-    {DialOHDataType::CLOCK_ANGLE, DialDataType::DATA_TYPE_CLOCK_ANGLE_H},
-    {DialOHDataType::MINUTE_ANGLE, DialDataType::DATA_TYPE_CLOCK_ANGLE_M},
-    {DialOHDataType::SECONDS_ANGLE, DialDataType::DATA_TYPE_CLOCK_ANGLE_S},
-    {DialOHDataType::MONTH, DialDataType::DATA_TYPE_TIME_MONTH},
-    {DialOHDataType::SWIVEL_GEAR_POSITIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_ONE},
-    {DialOHDataType::SWIVEL_GEAR_POSITIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_FOUR},
-    {DialOHDataType::SWIVEL_GEAR_POSITIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_SIX},
-    {DialOHDataType::SWIVEL_GEAR_NEGATIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_TWO},
-    {DialOHDataType::SWIVEL_GEAR_NEGATIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_THREE},
-    {DialOHDataType::SWIVEL_GEAR_NEGATIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_FIVE},
-};
-} // namespace OHOS
-
-#endif // DIAL_OH_DATATYPE_H
index dd08a9d..52e4298 100644 (file)
@@ -7,7 +7,7 @@
 
 #include <cstdint>
 #include "DialView.h"
-#include "DialTimePublisher.h"
+#include "DialModelTime.h"
 #include "components/ui_image_view.h"
 #include "font/font_global_manager.h"
 
@@ -16,7 +16,7 @@ namespace OHOS {
 class DialOptionImgView : public UIImageView,
                           public DialView,
                           public FontGlobalManager::LangChangeListener,
-                          public DialTimePublisher::TimeChangeListener {
+                          public TimeChangeListener {
 public:
     DialOptionImgView();
     ~DialOptionImgView() override;
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialSequenceContainer.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialSequenceContainer.h
deleted file mode 100644 (file)
index f692d1f..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
- * Description: DialSequenceContainer
- * Author:
- * Create: 2025-03-05
- */
-
-#ifndef DIAL_SEQUENCE_CONTAINER_H
-#define DIAL_SEQUENCE_CONTAINER_H
-#include "components/ui_view_group.h"
-#include "components/ui_image_animator.h"
-
-namespace OHOS {
-class DialSequenceContainer : public UIViewGroup, public UIImageAnimatorView::AnimatorStopListener {
-public:
-    DialSequenceContainer();
-    ~DialSequenceContainer() override;
-    DialSequenceContainer(const DialSequenceContainer&) = delete;
-    DialSequenceContainer& operator=(const DialSequenceContainer&) = delete;
-    bool AddSequenceRes(uint16_t interval, bool repeat, const ImageAnimatorInfo *imgSrc, uint8_t imgNum);
-    bool OnClickEvent(const ClickEvent& event) override;
-    void Start();
-    void Stop();
-    void Pause();
-    void Resume();
-    void OnAnimatorStop(UIView& view) override;
-
-private:
-    void UpdateCurrentView();
-    UIImageAnimatorView *repeatView_ = nullptr;
-    UIImageAnimatorView *nonCycleView_[3]; // 3: max seqImg num
-    // if curView_ is not null, curView_ must be added into parent.
-    UIImageAnimatorView *curView_ = nullptr;
-    uint8_t nonCycleNum_ = 0;
-    uint8_t loop_ = 0;
-    bool isClick_ = false;
-};  // class DialSequenceContainer
-} // namespace OHOS
-#endif // DIAL_SEQUENCE_CONTAINER_H
\ No newline at end of file
index 4800b71..3f5b92f 100644 (file)
@@ -8,17 +8,54 @@
 #include "components/ui_image_animator.h"
 
 namespace OHOS {
+struct SequenceInfo : public HeapBase {
+    long imgOffset = 0;
+    long resPos = 0;
+    uint8_t imgNum = 0;
+    FILE *fp = nullptr;
+    std::string fileName;
+    uint16_t interval = 0;
+    bool repeat = false;
+};
 
-class DialSequenceImgView : public UIImageAnimatorView {
+class DialSequenceImgView : public UIImageAnimatorView, public UIImageAnimatorView::AnimatorStopListener {
 public:
     DialSequenceImgView();
     ~DialSequenceImgView() override;
 
-    bool SetSequenceRes(const ImageAnimatorInfo* imgSrc, uint8_t imgNum);
+    bool SetSequenceRes(const ImageAnimatorInfo *imgSrc, uint8_t imgNum);
+    bool SetPreviewImg();
+    bool LoadCurSeqImgs();
+    bool AddSequenceRes(const SequenceInfo &para);
+    bool OnClickEvent(const ClickEvent &event) override;
+    void OnAnimatorStop(UIView &view) override;
 
 private:
-    ImageAnimatorInfo* imgSrc_ = nullptr;
-    uint8_t imgNum_ = 0;
+    ImageAnimatorInfo *LoadImgs(const SequenceInfo &para, uint8_t num) const;
+    void UpdateCurrentSeq();
+    struct AnimatorInfo : public HeapBase {
+        SequenceInfo info;
+        ImageAnimatorInfo *imgs = nullptr;
+        uint8_t num = 0;
+        ~AnimatorInfo()
+        {
+            if (imgs != nullptr) {
+                UIFree(imgs);
+                imgs = nullptr;
+                num = 0;
+            }
+        }
+    };
+    void SetAnimatorInfo(AnimatorInfo *info, uint8_t num);
+    static constexpr uint8_t SEQ_IMG_NUM = 3;
+    AnimatorInfo *repeatSeq_ = nullptr;
+    AnimatorInfo *nonCycleSeq_[SEQ_IMG_NUM];
+    AnimatorInfo *curSeq_ = nullptr;
+    uint8_t nonCycleNum_ = 0;
+    uint8_t loop_ = 0;
+    bool isClick_ = false;
+    uint8_t viewNum_ = 0;
+    bool isAllImgLoaded_ = false;
 };
-}
+}  // namespace OHOS
 #endif
index 733c5ed..df8f281 100644 (file)
@@ -7,12 +7,12 @@
 
 #include "components/ui_image_view.h"
 #include "font/font_global_manager.h"
-#include "DialTimePublisher.h"
+#include "DialModelTime.h"
 
 namespace OHOS {
 class DialStaticImgView : public UIImageView,
                           public FontGlobalManager::LangChangeListener,
-                          public DialTimePublisher::TimeChangeListener {
+                          public TimeChangeListener {
 public:
     DialStaticImgView();
     ~DialStaticImgView() override;
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialTimePublisher.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/include/dial/DialTimePublisher.h
deleted file mode 100644 (file)
index fcdb80c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
- * Description: DialTimePublisher
- * Author:
- * Create: 2025-03-04
- */
-
-#ifndef DIAL_TIME_PUBLISHER_H
-#define DIAL_TIME_PUBLISHER_H
-#include <ctime>
-#include <cstdint>
-
-namespace OHOS {
-class DialTimePublisher {
-public:
-    struct TimeInterval {
-        uint8_t start;
-        uint8_t end;
-    };
-    class TimeChangeListener {
-    public:
-        virtual void OnTimeUpdate(const struct tm &curTime) = 0;
-        void SetTimeInervals(TimeInterval *intervals, uint8_t num);
-        bool IsInTimeInterval(const struct tm &curTime);
-        TimeChangeListener(const TimeChangeListener&) = delete;
-        TimeChangeListener& operator=(const TimeChangeListener&) = delete;
-        TimeChangeListener();
-        virtual ~TimeChangeListener();
-    private:
-        TimeInterval *intervals_ = nullptr;
-        uint8_t num_ = 0;
-    };
-
-    virtual void Register(TimeChangeListener *listener) = 0;
-    virtual void Unregister(TimeChangeListener *listener) = 0;
-    virtual void UpdateTime() = 0;
-    static void SetPublisher(DialTimePublisher *publisher);
-    static DialTimePublisher *GetPublisher();
-    virtual ~DialTimePublisher() {}
-
-private:
-    static DialTimePublisher *publisher_;
-}; // class DialTimePublisher
-} // namespace OHOS
-#endif // DIAL_TIME_PUBLISHER_H
\ No newline at end of file
index 300f7a0..3155d76 100644 (file)
@@ -7,6 +7,7 @@
 
 #include <cstdint>
 #include <string>
+#include "DialDataType.h"
 
 namespace OHOS {
 
@@ -18,6 +19,18 @@ public:
     virtual void HandleFloatData(float data) {}
     virtual void HandleFloatData(const float* data, uint16_t num) {}
     virtual void HandleTextData(const std::string* data, uint16_t num) {}
+    virtual DialDataType GetDataType()
+    {
+        return type_;
+    }
+
+    virtual void SetDataType(DialDataType type)
+    {
+        type_ = type;
+    }
+
+private:
+    DialDataType type_ = DialDataType::DATA_TYPE_MAX;
 };
 }
 #endif
index 92b014e..3b4aec3 100644 (file)
@@ -6,6 +6,7 @@
 #define DIAL_VIEW_GROUP_H
 
 #include <unordered_map>
+#include <memory>
 #include "DialDataBase.h"
 #include "components/ui_view_group.h"
 #include "components/ui_image_animator.h"
@@ -19,7 +20,6 @@
 #include "DialVideoView.h"
 #include "DialBinTypesV2.h"
 #include "DialViewContainer.h"
-#include "DialSequenceContainer.h"
 
 namespace OHOS {
 class DialViewGroup : public UICardPage, public OnDialDataUpdateListener, public ContainerInterface {
@@ -190,7 +190,8 @@ private:
     void SetImgAnimatorState(uint8_t state);
     List<UILabel*> rollingLabelList_;
     List<UIImageAnimatorView*> imgAnimList_;
-    List<DialSequenceContainer*> seqList_;
+    bool isSeqImgLoaded_ = false;
+    std::shared_ptr<bool> isExists_;
 };
 }
 #endif
index 30c1d1c..33bedbe 100644 (file)
@@ -11,7 +11,6 @@
 #include <unordered_map>
 #include "DialBaseModel.h"
 #include "DialDataBase.h"
-#include "DialOHDataType.h"
 #include "ModelDialDataFactory.h"
 
 namespace OHOS {
@@ -31,8 +30,6 @@ public:
         models_[static_cast<int16_t>(type)] = model;
     }
 
-    bool IsOHBindDataExist(DialOHDataType type) const;
-    bool IsBindDataExist(DialDataType type) const;
     bool RegisterDialDataListener(DialDataType type, OnDialDataUpdateListener* listener);
     bool UnRegisterDialDataListener(DialDataType type);
     bool GetDialTextData(DialDataType& type, std::string*& out, int16_t& strNum);
index 2fab9cb..7a36adf 100644 (file)
@@ -11,6 +11,7 @@
 #include "PlayersModel.h"
 #include "PlayersPresenter.h"
 #include "CompassPresenter.h"
+#include "NativeRegisterManager.h"
 #include "compass/include/CompassModel.h"
 #include "CompassCalibrationView.h"
 #include "drag_event.h"
@@ -112,6 +113,11 @@ REGIST_SLICE(VIEW_MAIN, MainViewSample, MainPresenterSample);
         PageTransitionMgr::GetInstance().SaveSlideBackSnapShotIfNecessary(watchFace);
         watchFace->SetOpaScale(opaScale);
     
+    uint8_t curCardId = view_->GetHorCurrentCard();
+    UICardPage *card = view_->GetViewById(curCardId);
+    if (card != nullptr) {
+        card->OnPause();
+    }
         mainPresenterState_ = MainPresenterState::PAUSE;
 
         //进行视频表盘的暂停
@@ -263,46 +269,25 @@ if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true) {
 
     void MainPresenterSample::SetTaskPeroid(CardId cardId)
     {
-        if (cardId == COMPASS)
-        {
+        SetLastRun(0); // refresh entering card in time
+        if (cardId == COMPASS) {
             SetPeriod(DEFAULT_TASK_PERIOD);
-        }
-        else if (cardId == WATCH_FACE)
-        {
+        } else if (cardId == WATCH_FACE) {
             uint32_t time;
             DialSetting &setting = GetDialSetting();
-            if (setting.dialFlag)
-            {
-                time = dynamic_cast<DialViewGroup *>(view_->GetViewById(WATCH_FACE))->GetPeriod();
-            }
-            else
-            {
+            if (setting.dialFlag) {
+                time = dynamic_cast<DialViewGroup*>(view_->GetViewById(WATCH_FACE))->GetPeriod();
+            } else {
                 time = DEFAULT_TASK_PERIOD;
             }
             SetPeriod(time);
-        }
-        else if (cardId == MUSIC_PLAYER)
-        {
+        } else if (cardId == MUSIC_PLAYER) {
             SetPeriod(PLAYER_PERIOD);
-        }
-        else
-        {
+        } else {
             SetPeriod(MAX_PERIOD);
         }
     }
 
-    void MainPresenterSample::ResetgoalCardView()
-    {
-        if(goalControlView::GetInstance())
-        {
-            auto goalSwipView = goalControlView::GetInstance()->GetGoalControlSwipView();
-            if (goalSwipView->GetCurrentPage() != 0)
-            {
-                goalSwipView->SetCurrentPage(0);
-            }
-        }
-    }
-
     void MainPresenterSample::OnSwipe(UISwipeView &view)
     {
         // UNUSED(view);
@@ -533,6 +518,18 @@ if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true) {
             }
         }
     }
+    /*末日目标*/
+    void MainPresenterSample::ResetgoalCardView()
+    {
+        if(goalControlView::GetInstance())
+        {
+            auto goalSwipView = goalControlView::GetInstance()->GetGoalControlSwipView();
+            if (goalSwipView->GetCurrentPage() != 0)
+            {
+                goalSwipView->SetCurrentPage(0);
+            }
+        }
+    }
 
 
     /*心率卡片*/
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialDataBase.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialDataBase.cpp
new file mode 100644 (file)
index 0000000..e75718e
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
+ * Description: DialDataBase
+ * Author:
+ * Create: 2025-04-08
+ */
+
+#include <unordered_map>
+#include "dial/DialDataBase.h"
+
+namespace {
+struct DataTypeHash {
+    size_t operator()(const DialOldDataType &data) const
+    {
+        return std::hash<int16_t>{}(static_cast<int16_t>(data));
+    }
+};
+
+static std::unordered_map<DialOldDataType, OHOS::DialDataType, DataTypeHash> g_data2std = {
+    {DialOldDataType::DATA_TYPE_STEPS, OHOS::DialDataType::STEP_COUNT},
+    {DialOldDataType::DATA_TYPE_HEART_RATE, OHOS::DialDataType::HEART_RATE},
+    {DialOldDataType::DATA_TYPE_POWER, OHOS::DialDataType::BATTERY},
+    {DialOldDataType::DATA_TYPE_CLOCK_ANGLE_H, OHOS::DialDataType::CLOCK_ANGLE},
+    {DialOldDataType::DATA_TYPE_CLOCK_ANGLE_M, OHOS::DialDataType::MINUTE_ANGLE},
+    {DialOldDataType::DATA_TYPE_CLOCK_ANGLE_S, OHOS::DialDataType::SECOND_ANGLE},
+    {DialOldDataType::DATA_TYPE_CLOCK_ANGLE_MS, OHOS::DialDataType::MILLISECOND_ANGLE},
+    {DialOldDataType::DATA_TYPE_TIME_SECOND, OHOS::DialDataType::SECOND_TIME},
+    {DialOldDataType::DATA_TYPE_TIME_MINUTE, OHOS::DialDataType::MINUTE_TIME},
+    {DialOldDataType::DATA_TYPE_TIME_HOUR, OHOS::DialDataType::CLOCK},
+    {DialOldDataType::DATA_TYPE_TIME_DATE, OHOS::DialDataType::DATE},
+    {DialOldDataType::DATA_TYPE_TIME_WEEK, OHOS::DialDataType::WEEKDAY_DATA},
+    {DialOldDataType::DATA_TYPE_TIME_MONTH, OHOS::DialDataType::MONTH},
+    {DialOldDataType::DATA_TYPE_TIME_YEAR, OHOS::DialDataType::SOLAR_YEAR},
+    /*适配oldtype*/
+    {DialOldDataType::DATA_TYPE_CALORIE, OHOS::DialDataType::CALORIE},
+    {DialOldDataType::DATA_TYPE_TEMPERATURE, OHOS::DialDataType::TEMPERATURE},
+    {DialOldDataType::DATA_TYPE_PM25, OHOS::DialDataType::PM25},
+    {DialOldDataType::DATA_TYPE_PRESSURE, OHOS::DialDataType::PRESSURE},
+    {DialOldDataType::DATA_TYPE_AILTITUDE, OHOS::DialDataType::ALTITUDE_DATA},
+    {DialOldDataType::DATA_TYPE_CHARGE, OHOS::DialDataType::CHARGING_STATUS},
+    {DialOldDataType::DATA_TYPE_SPO2, OHOS::DialDataType::BLOOD_OXYGEN},
+    {DialOldDataType::DATA_TYPE_DISTANCE, OHOS::DialDataType::DISTANCE_DATA},
+    {DialOldDataType::DATA_TYPE_WEATHER, OHOS::DialDataType::WEATHER_TYPE},
+    {DialOldDataType::DATA_TYPE_POWER_STANDBY, OHOS::DialDataType::POWER_STANDBY},
+    {DialOldDataType::DATA_TYPE_HOUR_TENS, OHOS::DialDataType::CLOCK_HIGH},
+    {DialOldDataType::DATA_TYPE_HOUR_UNITS, OHOS::DialDataType::CLOCK_LOW},
+    {DialOldDataType::DATA_TYPE_MINUTE_TENS, OHOS::DialDataType::MINUTE_HIGH},
+    {DialOldDataType::DATA_TYPE_MINUTE_UNITS, OHOS::DialDataType::MINUTE_LOW},
+    {DialOldDataType::DATA_TYPE_WEEK_NUM, OHOS::DialDataType::WEEK_NUM},
+    {DialOldDataType::DATA_TYPE_STEPS_GOAL, OHOS::DialDataType::STEPS_GOAL_BOXPROGRESS},
+    {DialOldDataType::DATA_TYPE_SECOND_MAPPER, OHOS::DialDataType::SECOND_RATIO},
+    {DialOldDataType::DATA_TYPE_POWER_MAPPER, OHOS::DialDataType::BATTERY_LEVEL},
+    {DialOldDataType::DATA_TYPE_CALORIE_GOAL, OHOS::DialDataType::CALORIE_GOAL_BOXPROGRESS},
+    {DialOldDataType::DATA_TYPE_STEPS_GOAL_INT, OHOS::DialDataType::STEP_GOAL_PROGRESS},
+    {DialOldDataType::DATA_TYPE_CALORIE_GOAL_INT, OHOS::DialDataType::CALORIE_RATIO},
+    {DialOldDataType::DATA_TYPE_WEEK_STR, OHOS::DialDataType::WEEK_STR},
+    {DialOldDataType::DATA_TYPE_DATE_STR, OHOS::DialDataType::DATE_STR},
+    {DialOldDataType::DATA_TYPE_WEATHER_STR, OHOS::DialDataType::WEATHER_STR},
+    {DialOldDataType::DATA_TYPE_TIMESTR_STR, OHOS::DialDataType::TIMESTR_STR},
+    {DialOldDataType::DATA_TYPE_DATE_WEEK_STR, OHOS::DialDataType::DATE_WEEK_STR},
+    {DialOldDataType::DATA_TYPE_POWER_STR, OHOS::DialDataType::POWER_STR},
+    {DialOldDataType::DATA_TYPE_DATE_WEEK_MD_STR, OHOS::DialDataType::DATE_WEEK_MD_STR},
+    {DialOldDataType::DATA_TYPE_DATE_EN_STR, OHOS::DialDataType::DATE_EN_STR},
+    {DialOldDataType::DATA_TYPE_WEEK_EN_STR, OHOS::DialDataType::WEEK_EN_STR},
+    {DialOldDataType::DATA_TYPE_STEPS_GOAL_STR, OHOS::DialDataType::STEPS_GOAL_STR},
+    {DialOldDataType::DATA_TYPE_CALORIE_GOAL_STR, OHOS::DialDataType::CALORIE_GOAL_STR},
+
+};
+}
+
+ OHOS::DialDataType Convert2DataType(DialOldDataType dialData)
+{
+    if (g_data2std.find(dialData) != g_data2std.end()) {
+        return g_data2std[dialData];
+    }
+    return OHOS::DialDataType::DATA_TYPE_MAX;
+}
\ No newline at end of file
index 787d4b8..55f4b11 100644 (file)
@@ -1,25 +1,4 @@
-/*
- * @Author: penglei 1624952103@qq.com
- * @Date: 2025-05-15 11:27:16
- * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-05-20 10:33:14
- * @FilePath: /FD230/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelCalorie.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-/***
- * @Date: 2024-07-31 18:33:13
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-08-02 18:54:18
- * @FilePath:
- * /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp
- */
-/***
- * @Date: 2024-04-15 10:55:58
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-31 18:36:06
- * @FilePath:
- * /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp
- */
+
 /*
  * Copyright (c) CompanyNameMagicTag 2023. All rights reserved.
  * Description: DialModelCalorie
@@ -32,7 +11,7 @@
 #include "wearable_log.h"
 #include "goal/include/goalmodel.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_CALORIE,
+REGIST_DIAL_MODULE(OHOS::DialDataType::CALORIE,
                    OHOS::DialModelCalorie::GetInstance());
 
 // #include "cywee_hal.h"
@@ -52,7 +31,7 @@ void DialModelCalorie::UpdateCalorie(int16_t calorie) {
   // 更新表盘卡路里数据
   calorie_ = static_cast<float>(calorie);
   if (onChangeListener_ != nullptr) {
-    onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_CALORIE,
+    onChangeListener_->OnDialFloatDataUpdate(OHOS::DialDataType::CALORIE,
                                              calorie_);
   }
 }
index a78dd61..abe3920 100644 (file)
@@ -8,7 +8,7 @@
 #include "RegisterDialModel.h"
 #include "DialModelCharge.h"
 #include "wearable_log.h"
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_CHARGE, OHOS::DialModelCharge::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::CHARGING_STATUS, OHOS::DialModelCharge::GetInstance());
 
 namespace OHOS
 {
@@ -25,7 +25,7 @@ namespace OHOS
         chargeStatus_ = static_cast<float>(chargeStatus);
         if (onChangeListener_ != nullptr)
         {
-            onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_CHARGE, chargeStatus_);
+            onChangeListener_->OnDialFloatDataUpdate(OHOS::DialDataType::CHARGING_STATUS, chargeStatus_);
         }
     }
 }
index 2320e63..acb782b 100644 (file)
@@ -8,7 +8,7 @@
 #include <time.h>
 #include <vector>
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_DATE_EN_STR,
+REGIST_DIAL_MODULE(OHOS::DialDataType::DATE_EN_STR,
                    OHOS::DialModelDateEnStr::GetInstance());
 
 namespace OHOS {
index 5be656d..801a445 100644 (file)
@@ -7,7 +7,7 @@
 #include "wearable_log.h"
 #include <vector>
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_DATE_STR, OHOS::DialModelDateStr::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::DATE_STR, OHOS::DialModelDateStr::GetInstance());
 namespace OHOS
 {
     //  CnDatedays 是一个包含星期字符串的数组
index e9e42c3..eb18578 100644 (file)
@@ -18,7 +18,7 @@
 
 namespace OHOS
 {
-    REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_DATE_WEEK_MD_STR, OHOS::DialModelDateWeekMDStr::GetInstance());
+    REGIST_DIAL_MODULE(OHOS::DialDataType::DATE_WEEK_MD_STR, OHOS::DialModelDateWeekMDStr::GetInstance());
 
     // Cnweekdays 是一个包含周字符串的数组
     constexpr const char *Cnweekdays[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
@@ -61,7 +61,7 @@ namespace OHOS
         dateweekmdstr = *dialDateWeekMDStr; // 更新字符串
         if (onChangeListener_ != nullptr)
         {
-            onChangeListener_->OnDialTextDataUpdate(DialDataType::DATA_TYPE_DATE_WEEK_MD_STR, &dateweekmdstr, dateweekmdstr.size());
+            onChangeListener_->OnDialTextDataUpdate(OHOS::DialDataType::DATE_WEEK_MD_STR, &dateweekmdstr, dateweekmdstr.size());
         }
     }
 } // namespace OHOS
\ No newline at end of file
index d111d67..872daee 100644 (file)
@@ -9,7 +9,7 @@
 #include <string>
 #include <time.h>
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_DATE_WEEK_STR,
+REGIST_DIAL_MODULE(OHOS::DialDataType::DATE_WEEK_STR,
                    OHOS::DialModelDateWeekStr::GetInstance());
 
 namespace OHOS {
@@ -52,7 +52,7 @@ void DialModelDateWeekStr::UpdateDateWeekStr(const std::string *&dialWeekStr) {
   dateweekstr = *dialWeekStr; // 更新字符串
   if (onChangeListener_ != nullptr) {
     onChangeListener_->OnDialTextDataUpdate(
-        DialDataType::DATA_TYPE_DATE_WEEK_STR, &dateweekstr,
+        OHOS::DialDataType::DATE_WEEK_STR, &dateweekstr,
         dateweekstr.size());
   }
 }
index 95e3cf8..66350f7 100644 (file)
@@ -2,7 +2,7 @@
 #include "RegisterDialModel.h"
 #include "DialModelDistance.h"
 #include "wearable_log.h"
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_DISTANCE, OHOS::DialModelDistance::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::DISTANCE_DATA, OHOS::DialModelDistance::GetInstance());
 #include "goal/include/goalmodel.h"
 // #include "cywee_hal.h"
 // extern "C" int cywee_get_distance_data();
@@ -24,7 +24,7 @@ namespace OHOS
       if (onChangeListener_ != nullptr) {
         // 通知改变监听器更新距离数据
         onChangeListener_->OnDialFloatDataUpdate(
-            DialDataType::DATA_TYPE_DISTANCE, distance_);
+            OHOS::DialDataType::DISTANCE_DATA, distance_);
       }
     }
 }
index d4c9bc4..9f0e4d3 100644 (file)
@@ -21,7 +21,7 @@
 #include "DialModelHeartRate.h"
 #include "wearable_log.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_HEART_RATE, OHOS::DialModelHeartRate::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::HEART_RATE, OHOS::DialModelHeartRate::GetInstance());
 
 namespace OHOS
 {
@@ -41,7 +41,7 @@ namespace OHOS
         heartRate_ = static_cast<float>(heartRate);
         if (onChangeListener_ != nullptr)
         {
-            onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_HEART_RATE, heartRate_);
+            onChangeListener_->OnDialFloatDataUpdate(OHOS::DialDataType::HEART_RATE, heartRate_);
         }
     }
 
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelHourMin.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelHourMin.cpp
deleted file mode 100644 (file)
index 4a56525..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/***
- * @Date: 2024-08-08 16:15:49
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-08-08 16:28:43
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelHourMin.cpp
- */
-#include "RegisterDialModel.h"
-#include "DialModelHourMin.h"
-#include <string>
-#include <ctime>
-#include <time.h>
-#include "sys/time.h"
-#include "wearable_log.h"
-#include <vector>
-
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_HOUR_MIN, OHOS::DialModelHourMin::GetInstance());
-namespace OHOS
-{
-    /*继承的虚函数 不能修改*/
-    bool DialModelHourMin::GetDialFloatData(DialDataType &type, float *&out, int16_t len)
-    {
-        (void)type;
-
-        struct tm local_time = {0};
-        time_t seconds = time(nullptr);
-
-        if (localtime_r(&seconds, &local_time) == nullptr)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "get localtime error!");
-            return false;
-        }
-
-        out[0] = static_cast<float>(local_time.tm_hour);
-        out[1] = static_cast<float>(local_time.tm_min);
-        // printf("GetDialFloatData %f %f\r\n", out[0], out[1]);
-        len = 2;
-        return true;
-    }
-
-    void DialModelHourMin::UpdateHourMin(const std::string *&dialHourMin)
-    {
-        // dialdateStr_.clear();
-        // dialdateStr_ = *dialHourMin; // 更新字符串
-        // if (onChangeListener_ != nullptr)
-        // {
-        //     onChangeListener_->OnDialTextDataUpdate(DialDataType::DialModelMinUnits, &dialdateStr_, dialdateStr_.size());
-        // }
-    }
-}
\ No newline at end of file
index 0a1a2b6..adb191d 100644 (file)
@@ -11,7 +11,7 @@
 #include "custom_runtime.h"
 
 // 注册模块
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_HOUR_TENS, OHOS::DialModelHourTens::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::CLOCK_HIGH, OHOS::DialModelHourTens::GetInstance());
 
 namespace OHOS
 {
index e63d63f..fd1524b 100644 (file)
@@ -5,7 +5,7 @@
 #include "custom_runtime.h"
 
 // 注册模块
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_HOUR_UNITS, OHOS::DialModelHourUnits::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::CLOCK_LOW, OHOS::DialModelHourUnits::GetInstance());
 
 namespace OHOS
 {
index c7f66d0..795e3fe 100644 (file)
@@ -10,7 +10,7 @@
 #include "RegisterDialModel.h"
 #include "goal/include/goalmodel.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_CALORIE_GOAL,
+REGIST_DIAL_MODULE(OHOS::DialDataType::CALORIE_GOAL_BOXPROGRESS,
                    OHOS::DialModelKcalgoal::GetInstance());
 
 namespace OHOS {
@@ -30,7 +30,7 @@ bool DialModelKcalgoal::GetDialFloatData(DialDataType &type, float &out) {
   }
   if (onChangeListener_ != nullptr) {
     onChangeListener_->OnDialFloatDataUpdate(
-        DialDataType::DATA_TYPE_CALORIE_GOAL, Kcalgoal_);
+        OHOS::DialDataType::CALORIE_GOAL_BOXPROGRESS, Kcalgoal_);
   }
   out = DialBoxProgressView::GetInstance()->ConvertToRequiredFormat(
       DialBoxDataType::CALORIE_TARGET, Kcalgoal_);
@@ -49,7 +49,7 @@ void DialModelKcalgoal::UpdateKcalgoal(uint32_t Kcals) {
   }
   if (onChangeListener_ != nullptr) {
     onChangeListener_->OnDialFloatDataUpdate(
-        DialDataType::DATA_TYPE_CALORIE_GOAL, Kcalgoal_);
+        OHOS::DialDataType::CALORIE_GOAL_BOXPROGRESS, Kcalgoal_);
   }
 }
 } // namespace OHOS
index a5889b3..ce4993d 100644 (file)
@@ -10,7 +10,7 @@
 #include "RegisterDialModel.h"
 #include "goal/include/goalmodel.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_CALORIE_GOAL_STR,
+REGIST_DIAL_MODULE(OHOS::DialDataType::CALORIE_GOAL_STR,
                    OHOS::DialModelKcalgoalStr::GetInstance());
 
 namespace OHOS {
@@ -48,7 +48,7 @@ void DialModelKcalgoalStr::UpdateKcalgoalStr(uint32_t Kcals) {
 
   if (onChangeListener_ != nullptr) {
     onChangeListener_->OnDialTextDataUpdate(
-        DialDataType::DATA_TYPE_CALORIE_GOAL_STR, &KcalgoalStr_,
+        OHOS::DialDataType::CALORIE_GOAL_STR, &KcalgoalStr_,
         KcalgoalStr_.size());
   }
 }
index 359d8a2..f73360e 100644 (file)
@@ -10,7 +10,7 @@
 #include "RegisterDialModel.h"
 #include "goal/include/goalmodel.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_CALORIE_GOAL_INT,
+REGIST_DIAL_MODULE(OHOS::DialDataType::CALORIE_RATIO,
                    OHOS::DialModelKcalgoalValue::GetInstance());
 
 namespace OHOS {
@@ -47,7 +47,7 @@ void DialModelKcalgoalValue::UpdateKcalgoalValue(uint32_t caloriesInput) {
 
   if (onChangeListener_) {
     onChangeListener_->OnDialFloatDataUpdate(
-        DialDataType::DATA_TYPE_CALORIE_GOAL_INT, KcalgoalValue_);
+        OHOS::DialDataType::CALORIE_RATIO, KcalgoalValue_);
   }
 }
 } // namespace OHOS
index afff9b2..ae0e26a 100644 (file)
@@ -17,7 +17,7 @@
 #include "custom_runtime.h"
 
 // 注册模块
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_MINUTE_TENS, OHOS::DialModelMinTens::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::MINUTE_HIGH, OHOS::DialModelMinTens::GetInstance());
 
 namespace OHOS
 {
index f5b289f..69af8f2 100644 (file)
@@ -17,7 +17,7 @@
 #include "custom_runtime.h"
 
 // 注册模块
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_MINUTE_UNITS, OHOS::DialModelMinUnits::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::MINUTE_LOW, OHOS::DialModelMinUnits::GetInstance());
 
 namespace OHOS
 {
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelPath.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelPath.cpp
deleted file mode 100644 (file)
index f8d70c0..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#include "RegisterDialModel.h"
-#include "DialModelPath.h"
-#include <string>
-
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_DIALPATH, OHOS::DialModelPath::GetInstance());
-
-namespace OHOS
-{
-    bool DialModelPath::GetDialTextData(DialDataType &type, std::string *&out, int16_t &strNum)
-    {
-        (void)type;
-        out = &DialPath_;
-        return true;
-    }
-
-    void DialModelPath::UpdatePath(const std::string *&DialPath)
-    {
-        DialPath_ = *DialPath;
-        if (onChangeListener_ != nullptr)
-        {
-            onChangeListener_->OnDialTextDataUpdate(DialDataType::DATA_TYPE_HEART_RATE, &DialPath_, 0);
-        }
-    }
-}
index ae7c2e5..4997b99 100644 (file)
@@ -28,7 +28,7 @@
 // #include "battery_hal.h"
 // extern uint8_t battery_get_voltage(float *voltage);
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_POWER, OHOS::DialModelPower::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::BATTERY, OHOS::DialModelPower::GetInstance());
 
 namespace OHOS
 {
@@ -62,7 +62,7 @@ namespace OHOS
         }
         if (onChangeListener_ != nullptr)
         {
-            onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_POWER, power_);
+            onChangeListener_->OnDialFloatDataUpdate(OHOS::DialDataType::BATTERY, power_);
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[UpdatePower!]\r\n");
         }
     }
index d076ba9..7a11c7a 100644 (file)
@@ -9,7 +9,7 @@
 #include "battery_hal.h"
 extern uint8_t battery_get_voltage(float *voltage);
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_POWER_MAPPER,
+REGIST_DIAL_MODULE(OHOS::DialDataType::BATTERY_LEVEL,
                    OHOS::DialModelPowerMapper::GetInstance());
 
 namespace OHOS {
@@ -41,7 +41,7 @@ void DialModelPowerMapper::NotifyPowerMapperUpdate() {
   }
   if (onChangeListener_ != nullptr) {
     onChangeListener_->OnDialFloatDataUpdate(
-        DialDataType::DATA_TYPE_POWER_MAPPER, powermapper_);
+        OHOS::DialDataType::BATTERY_LEVEL, powermapper_);
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[UpdatePowerMapper!]\r\n");
   }
 }
index fa72d97..bc6da4a 100644 (file)
@@ -10,7 +10,7 @@
 #include "battery_hal.h"
 extern uint8_t battery_get_voltage(float *voltage);
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_POWER_STANDBY,
+REGIST_DIAL_MODULE(OHOS::DialDataType::POWER_STANDBY,
                    OHOS::DialModelPowerStanby::GetInstance());
 
 namespace OHOS {
@@ -69,7 +69,7 @@ void DialModelPowerStanby::NotifyPowerStanbyUpdate() {
   }
   if (onChangeListener_ != nullptr) {
     onChangeListener_->OnDialFloatDataUpdate(
-        DialDataType::DATA_TYPE_POWER_STANDBY, PowerStanby_);
+        OHOS::DialDataType::POWER_STANDBY, PowerStanby_);
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[UpdatePowerStanby!]\r\n");
   }
 }
index 82f44ba..93a336f 100644 (file)
@@ -6,7 +6,7 @@ extern uint8_t battery_get_voltage(float *voltage);
 
 namespace OHOS
 {
-    REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_POWER_STR,OHOS::DialModelPowerStr::GetInstance());
+    REGIST_DIAL_MODULE(OHOS::DialDataType::POWER_STR,OHOS::DialModelPowerStr::GetInstance());
 
     bool DialModelPowerStr::GetDialTextData(DialDataType &type, std::string *&out, int16_t &strNum)
     {
@@ -25,7 +25,7 @@ namespace OHOS
         dialPowerStr_ = dialPowerStr; // 更新字符串
         if (onChangeListener_ != nullptr)
         {
-            onChangeListener_->OnDialTextDataUpdate(DialDataType::DATA_TYPE_POWER_STR, &dialPowerStr_, 1);
+            onChangeListener_->OnDialTextDataUpdate(OHOS::DialDataType::POWER_STR, &dialPowerStr_, 1);
         }
     }
 }
\ No newline at end of file
index fbda6a4..bb2e07b 100644 (file)
@@ -15,7 +15,7 @@
 #include "DialModelSPO2.h"
 #include "wearable_log.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_SPO2, OHOS::DialModelSPO2::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::BLOOD_OXYGEN, OHOS::DialModelSPO2::GetInstance());
 
 namespace OHOS
 {
@@ -33,7 +33,7 @@ namespace OHOS
         SPO2_ = static_cast<float>(SPO2);
         if (onChangeListener_ != nullptr)
         {
-            onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_SPO2, SPO2_);
+            onChangeListener_->OnDialFloatDataUpdate(OHOS::DialDataType::BLOOD_OXYGEN, SPO2_);
         }
     }
 
index 24ea853..2f023fe 100644 (file)
@@ -7,7 +7,7 @@
 #include <sys/time.h>
 
 // 注册模块
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_SECOND_MAPPER,
+REGIST_DIAL_MODULE(OHOS::DialDataType::SECOND_RATIO,
                    OHOS::DialModelSecondMapper::GetInstance());
 
 namespace OHOS {
index 12e0ed9..ec7434e 100644 (file)
@@ -10,7 +10,7 @@
 #include "RegisterDialModel.h"
 #include "goal/include/goalmodel.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_STEPS_GOAL,
+REGIST_DIAL_MODULE(OHOS::DialDataType::STEPS_GOAL_BOXPROGRESS,
                    OHOS::DialModelStepgoal::GetInstance());
 
 namespace OHOS {
@@ -44,7 +44,7 @@ void DialModelStepgoal::UpdateStepgoal(uint32_t steps) {
         DialBoxDataType::STEP_TARGET, stepgoal_);
   }
   if (onChangeListener_ != nullptr) {
-    onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_STEPS_GOAL,
+    onChangeListener_->OnDialFloatDataUpdate(OHOS::DialDataType::STEPS_GOAL_BOXPROGRESS,
                                              stepgoal_);
   }
 }
index 8425232..4229b70 100644 (file)
@@ -10,7 +10,7 @@
 #include "RegisterDialModel.h"
 #include "goal/include/goalmodel.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_STEPS_GOAL_STR,
+REGIST_DIAL_MODULE(OHOS::DialDataType::STEPS_GOAL_STR,
                    OHOS::DialModelStepgoalStr::GetInstance());
 
 namespace OHOS {
@@ -46,7 +46,7 @@ void DialModelStepgoalStr::UpdateStepgoalStr(uint32_t steps) {
 
   if (onChangeListener_ != nullptr) {
     onChangeListener_->OnDialTextDataUpdate(
-        DialDataType::DATA_TYPE_STEPS_GOAL_STR, &StepgoalStr_,
+        OHOS::DialDataType::STEPS_GOAL_STR, &StepgoalStr_,
         StepgoalStr_.size());
   }
 }
index 0a3fbe3..7de676d 100644 (file)
@@ -10,7 +10,7 @@
 #include "RegisterDialModel.h"
 #include "goal/include/goalmodel.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_STEPS_GOAL_INT,
+REGIST_DIAL_MODULE(OHOS::DialDataType::STEP_GOAL_PROGRESS,
                    OHOS::DialModelStepgoalValue::GetInstance());
 
 namespace OHOS {
@@ -47,7 +47,7 @@ void DialModelStepgoalValue::UpdateStepgoalValue(uint32_t steps) {
   if (onChangeListener_ != nullptr) {
     //更新百分比 实际值
     onChangeListener_->OnDialFloatDataUpdate(
-        DialDataType::DATA_TYPE_STEPS_GOAL_INT, stepgoalValue_);
+        OHOS::DialDataType::STEP_GOAL_PROGRESS, stepgoalValue_);
   }
 }
 } // namespace OHOS
index c54ebec..3eeb3ff 100644 (file)
@@ -9,7 +9,7 @@
 #include "RegisterDialModel.h"
 #include "goal/include/goalmodel.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_STEPS,
+REGIST_DIAL_MODULE(OHOS::DialDataType::STEP_COUNT,
                    OHOS::DialModelSteps::GetInstance());
 
 namespace OHOS {
@@ -24,7 +24,7 @@ bool DialModelSteps::GetDialFloatData(DialDataType &type, float &out) {
 void DialModelSteps::UpdateSteps(uint32_t steps) {
   steps_ = static_cast<float>(steps);
   if (onChangeListener_ != nullptr) {
-    onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_STEPS,
+    onChangeListener_->OnDialFloatDataUpdate(OHOS::DialDataType::STEP_COUNT,
                                              steps_);
   }
 }
index 4d1acc5..26a7b6f 100644 (file)
@@ -5,6 +5,7 @@
  * Create: 2023-12
  */
 
+#include <cmath>
 #include "sys/time.h"
 #include "RegisterDialModel.h"
 #include "DialModelTime.h"
 #define REGIST_DIAL_MODULE_WEEK(type, func) static OHOS::RegisterDialModel(REGIST_WEEK)(type, func)
 #define REGIST_DIAL_MODULE_MOUNTH(type, func) static OHOS::RegisterDialModel(REGIST_MOUNTH)(type, func)
 #define REGIST_DIAL_MODULE_YEAR(type, func) static OHOS::RegisterDialModel(REGIST_YEAR)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_ONE(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_ONE)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_TWO(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_TWO)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_THREE(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_THREE)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_FOUR(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_FOUR)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_FIVE(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_FIVE)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_SIX(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_SIX)(type, func)
-
-REGIST_DIAL_MODULE_ANGLE_H(DialDataType::DATA_TYPE_CLOCK_ANGLE_H, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_ANGLE_M(DialDataType::DATA_TYPE_CLOCK_ANGLE_M, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_ANGLE_S(DialDataType::DATA_TYPE_CLOCK_ANGLE_S, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_ANGLE_MS(DialDataType::DATA_TYPE_CLOCK_ANGLE_MS, OHOS::DialModelTime::GetInstance());
-
-REGIST_DIAL_MODULE_SECOND(DialDataType::DATA_TYPE_TIME_SECOND, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_MINUTE(DialDataType::DATA_TYPE_TIME_MINUTE, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_HOUR(DialDataType::DATA_TYPE_TIME_HOUR, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_DATE(DialDataType::DATA_TYPE_TIME_DATE, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_WEEK(DialDataType::DATA_TYPE_TIME_WEEK, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_MOUNTH(DialDataType::DATA_TYPE_TIME_MONTH, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_YEAR(DialDataType::DATA_TYPE_TIME_YEAR, OHOS::DialModelTime::GetInstance());
-
-REGIST_DIAL_MODULE_GEAR_ONE(DialDataType::DATA_TYPE_SWIVEL_GEAR_ONE, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_GEAR_TWO(DialDataType::DATA_TYPE_SWIVEL_GEAR_TWO, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_GEAR_THREE(DialDataType::DATA_TYPE_SWIVEL_GEAR_THREE, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_GEAR_FOUR(DialDataType::DATA_TYPE_SWIVEL_GEAR_FOUR, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_GEAR_FIVE(DialDataType::DATA_TYPE_SWIVEL_GEAR_FIVE, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_GEAR_SIX(DialDataType::DATA_TYPE_SWIVEL_GEAR_SIX, OHOS::DialModelTime::GetInstance());
+#define REGIST_DIAL_MODULE_GEAR_POSITIVE(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_POSITIVE)(type, func)
+#define REGIST_DIAL_MODULE_GEAR_NEGATIVE(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_NEGATIVE)(type, func)
+
+REGIST_DIAL_MODULE_ANGLE_H(OHOS::DialDataType::CLOCK_ANGLE, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_ANGLE_M(OHOS::DialDataType::MINUTE_ANGLE, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_ANGLE_S(OHOS::DialDataType::SECOND_ANGLE, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_ANGLE_MS(OHOS::DialDataType::MILLISECOND_ANGLE, OHOS::DialModelTime::GetInstance());
+
+REGIST_DIAL_MODULE_SECOND(OHOS::DialDataType::SECOND_TIME, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_MINUTE(OHOS::DialDataType::MINUTE_TIME, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_HOUR(OHOS::DialDataType::CLOCK, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_DATE(OHOS::DialDataType::DATE, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_WEEK(OHOS::DialDataType::WEEKDAY_DATA, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_MOUNTH(OHOS::DialDataType::MONTH, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_YEAR(OHOS::DialDataType::SOLAR_YEAR, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_GEAR_POSITIVE(OHOS::DialDataType::SWIVEL_GEAR_POSITIVE, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_GEAR_NEGATIVE(OHOS::DialDataType::SWIVEL_GEAR_NEGATIVE, OHOS::DialModelTime::GetInstance());
 
 namespace OHOS {
 static constexpr int16_t S_MS_US_TRANS = 1000;      // 1000: seconds, milliseconds, microsecond transform value
@@ -57,22 +49,6 @@ static constexpr uint8_t HALF_DAY_IN_HOUR = 12;     // 60: 12 hours every half d
 
 static uint16_t ConvertHandValueToAngle(int32_t handValue, uint8_t range, int32_t secondHandValue, uint16_t ratio)
 {
-    #ifdef fd230_650
-    if ((range == 0) || (ratio == 0)) {
-        return 0;
-    }
-    /*
-     * Example: calculate the angle of hour hand
-     * Assume that the time is 5: 30, then range is 12, radio is 60
-     * angle is [(5 * 60  + 30) / (12 * 60)] * 360
-     */
-    int32_t degree = (handValue * ratio + secondHandValue);
-    degree = CIRCLE_IN_DEGREE_UI * degree / (static_cast<uint16_t>(range) * ratio);
-
-    return static_cast<uint16_t>(degree % CIRCLE_IN_DEGREE_UI);
-    #endif
-    
-    /* -------------------------------- 0423补丁合入 -------------------------------- */
     if ((range == 0) || (ratio == 0)) {
         return 0;
     }
@@ -89,15 +65,6 @@ static uint16_t ConvertHandValueToAngle(int32_t handValue, uint8_t range, int32_
 
 static float ConvertHandSecondValueToAngle(int32_t handValue, uint16_t range)
 {
-    #ifdef fd230_650
-    /*
-     * Example: calculate the angle of second hand without millisecond handle
-     * Assume that the time is 5:30:30, then range is 60
-     * angle is (30 / 60) * 360
-     */
-    return (static_cast<float>(handValue * CIRCLE_IN_DEGREE_UI) / range);
-    #endif
-    /* -------------------------------- 0423补丁合入 -------------------------------- */
     /*
      * Example: calculate the angle of second hand without millisecond handle
      * Assume that the time is 5:30:30, then range is 60
@@ -108,51 +75,25 @@ static float ConvertHandSecondValueToAngle(int32_t handValue, uint16_t range)
 
 void DialModelTime::UpdateTime()
 {
-#ifdef fd230_650
-#if 0
-    struct timeval tv;
-    gettimeofday(&tv, NULL);
-    tblock_ = localtime(&tv.tv_sec);
-    int realMS = tblock_.tm_sec * S_MS_US_TRANS + tv.tv_usec / S_MS_US_TRANS;
-#else
-    /*优化为更安全的localtime_r()*/
-    struct timeval tv;
-    gettimeofday(&tv, NULL);
-    struct tm tmp={0};
-    localtime_r(&tv.tv_sec, &tmp);
-    int realMS = tmp.tm_sec * S_MS_US_TRANS + tv.tv_usec / S_MS_US_TRANS;
-    tblock_.tm_year = tmp.tm_year;
-    tblock_.tm_mon = tmp.tm_mon;
-    tblock_.tm_mday = tmp.tm_mday;
-    tblock_.tm_wday = tmp.tm_wday;
-    tblock_.tm_hour = tmp.tm_hour;
-    tblock_.tm_min = tmp.tm_min;
-    tblock_.tm_sec = tmp.tm_sec;
-
-    if (uapi_dev_runtime_get_time_hour_show_model() ==  12)
-    {
-        if (tmp.tm_hour > 12)
-            tblock_.tm_hour = tmp.tm_hour - 12 ;
-    }
-#endif
-
-    angleH_ = ConvertHandValueToAngle(tblock_.tm_hour, HALF_DAY_IN_HOUR, tblock_.tm_min, ONE_HOUR_IN_MINUTE);
-    angleM_ = ConvertHandValueToAngle(tblock_.tm_min, ONE_HOUR_IN_MINUTE, tblock_.tm_sec, ONE_MINUTE_IN_SECOND);
-    angleS_ = ConvertHandValueToAngle(tblock_.tm_sec, ONE_MINUTE_IN_SECOND, 0, 1);
-    angleMS_ = ConvertHandSecondValueToAngle(realMS, S_MS_US_TRANS * ONE_MINUTE_IN_SECOND);
-
-    #endif
-
-    /* --------------------------------- 0423补丁 --------------------------------- */
     struct timeval tv;
     gettimeofday(&tv, nullptr);
+#ifdef _WIN32
+    time_t time = tv.tv_sec;
+    if (tblock_ == nullptr) {
+        tblock_ = new struct tm();
+        memset_s(tblock_, sizeof(struct tm), 0, sizeof(struct tm));
+    }
+    localtime_s(tblock_, &time);
+#else
     tblock_ = localtime(&tv.tv_sec);
+#endif
     int realMS = tblock_->tm_sec * S_MS_US_TRANS + tv.tv_usec / S_MS_US_TRANS;
 
     angleH_ = ConvertHandValueToAngle(tblock_->tm_hour, HALF_DAY_IN_HOUR, tblock_->tm_min, ONE_HOUR_IN_MINUTE);
     angleM_ = ConvertHandValueToAngle(tblock_->tm_min, ONE_HOUR_IN_MINUTE, tblock_->tm_sec, ONE_MINUTE_IN_SECOND);
     angleS_ = ConvertHandValueToAngle(tblock_->tm_sec, ONE_MINUTE_IN_SECOND, 0, 1);
     angleMS_ = ConvertHandSecondValueToAngle(realMS, S_MS_US_TRANS * ONE_MINUTE_IN_SECOND);
+
     if (tblock_ == nullptr) {
         return;
     }
@@ -163,7 +104,6 @@ void DialModelTime::UpdateTime()
         }
     }
     RootView::GetInstance()->Invalidate();
-    /* -------------------------------------------------------------------------- */
 }
 
 void DialModelTime::Register(TimeChangeListener* listener)
@@ -196,102 +136,54 @@ void DialModelTime::Unregister(TimeChangeListener* listener)
 
 bool DialModelTime::GetDialFloatData(DialDataType& type, float& out)
 {
-    #ifdef fd230_650
-    UpdateTime();
-    
-    switch (type) {
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_H:
-            out = static_cast<float>(angleH_);
-            break;
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_M:
-            out = static_cast<float>(angleM_);
-            break;
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_S:
-            out = static_cast<float>(angleS_);
-            break;
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_MS:
-            out = static_cast<float>(angleMS_);
-            break;
-        case DialDataType::DATA_TYPE_TIME_YEAR:
-            out = static_cast<float>((tblock_.tm_year) + 1900);
-            break;
-        case DialDataType::DATA_TYPE_TIME_MONTH:
-            out = static_cast<float>((tblock_.tm_mon) + 1);
-            break;
-        case DialDataType::DATA_TYPE_TIME_WEEK:
-            out = static_cast<float>(tblock_.tm_wday);
-            break;
-        case DialDataType::DATA_TYPE_TIME_DATE:
-            out = static_cast<float>(tblock_.tm_mday);
-            break;
-        case DialDataType::DATA_TYPE_TIME_HOUR:
-            out = static_cast<float>(tblock_.tm_hour);
-            break;
-        case DialDataType::DATA_TYPE_TIME_MINUTE:
-            out = static_cast<float>(tblock_.tm_min);
-            break;
-        case DialDataType::DATA_TYPE_TIME_SECOND:
-            out = static_cast<float>(tblock_.tm_sec);
-            break;
-        default:
-            return false;
-    }
-    return true;
-    #endif
-
-    /* --------------------------------- 0423补丁 --------------------------------- */
     if (tblock_ == nullptr) {
         UpdateTime();
     }
 
     switch (type) {
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_H:
+        case OHOS::DialDataType::CLOCK_ANGLE:
             out = static_cast<float>(angleH_);
             break;
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_M:
+        case OHOS::DialDataType::MINUTE_ANGLE:
             out = static_cast<float>(angleM_);
             break;
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_S:
+        case OHOS::DialDataType::SECOND_ANGLE:
             out = static_cast<float>(angleS_);
             break;
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_MS:
+        case OHOS::DialDataType::MILLISECOND_ANGLE:
             out = static_cast<float>(angleMS_);
             break;
-        case DialDataType::DATA_TYPE_TIME_YEAR:
+        case OHOS::DialDataType::SOLAR_YEAR:
             out = static_cast<float>(tblock_->tm_year);
             break;
-        case DialDataType::DATA_TYPE_TIME_MONTH:
+        case OHOS::DialDataType::MONTH:
             out = static_cast<float>(tblock_->tm_mon);
             break;
-        case DialDataType::DATA_TYPE_TIME_WEEK:
+        case OHOS::DialDataType::WEEKDAY_DATA:
             out = static_cast<float>(tblock_->tm_wday);
             break;
-        case DialDataType::DATA_TYPE_TIME_DATE:
+        case OHOS::DialDataType::DATE:
             out = static_cast<float>(tblock_->tm_mday);
             break;
-        case DialDataType::DATA_TYPE_TIME_HOUR:
+        case OHOS::DialDataType::CLOCK:
             out = static_cast<float>(tblock_->tm_hour);
             break;
-        case DialDataType::DATA_TYPE_TIME_MINUTE:
+        case OHOS::DialDataType::MINUTE_TIME:
             out = static_cast<float>(tblock_->tm_min);
             break;
-        case DialDataType::DATA_TYPE_TIME_SECOND:
+        case OHOS::DialDataType::SECOND_TIME:
             out = static_cast<float>(tblock_->tm_sec);
             break;
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_TWO:
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_THREE:
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_FIVE: {
+        case DialDataType::SWIVEL_GEAR_POSITIVE: {
             float coeff = 6.0f;  // 6.0: coeff
             float accleratedAngle = angleMS_ * coeff - floor(angleMS_ * coeff / CIRCLE_IN_DEGREE) * CIRCLE_IN_DEGREE;
-            out = static_cast<float>(accleratedAngle * -1.0 + CIRCLE_IN_DEGREE);
+            out = static_cast<float>(accleratedAngle);
             break;
         }
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_ONE:
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_FOUR:
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_SIX: {
+        case DialDataType::SWIVEL_GEAR_NEGATIVE: {
             float coeff = 6.0f;  // 6.0: coeff
             float accleratedAngle = angleMS_ * coeff - floor(angleMS_ * coeff / CIRCLE_IN_DEGREE) * CIRCLE_IN_DEGREE;
-            out = static_cast<float>(accleratedAngle);
+            out = static_cast<float>(accleratedAngle * -1.0 + CIRCLE_IN_DEGREE);
             break;
         }
         default:
@@ -299,4 +191,52 @@ bool DialModelTime::GetDialFloatData(DialDataType& type, float& out)
     }
     return true;
 }
+
+void TimeChangeListener::SetTimeInervals(TimeInterval *intervals, uint8_t num)
+{
+    if (intervals == nullptr || num == 0) {
+        return;
+    }
+    if (intervals_ != nullptr) {
+        UIFree(intervals_);
+        intervals_ = nullptr;
+    }
+    num_ = 0;
+
+    intervals_ = static_cast<TimeInterval*>(UIMalloc(sizeof(TimeInterval) * num));
+    if (intervals_ == nullptr) {
+        GRAPHIC_LOGE("failed to malloc!");
+        return;
+    }
+    num_ = num;
+    memcpy_s(intervals_, sizeof(TimeInterval) * num, intervals, sizeof(TimeInterval) * num);
+}
+
+bool TimeChangeListener::IsInTimeInterval(const struct tm &curTime)
+{
+    if (num_ == 0) { // 0-24
+        return true;
+    }
+    for (uint8_t i = 0; i < num_; ++i) {
+        if (intervals_[i].start <= curTime.tm_hour && intervals_[i].end > curTime.tm_hour) {
+            return true;
+        }
+    }
+    return false;
+}
+
+TimeChangeListener::TimeChangeListener()
+{
+    DialModelTime::GetInstance()->Register(this);
+}
+
+TimeChangeListener::~TimeChangeListener()
+{
+    if (intervals_ != nullptr) {
+        UIFree(intervals_);
+        intervals_ = nullptr;
+    }
+    num_ = 0;
+    DialModelTime::GetInstance()->Unregister(this);
+}
 }
index 848f721..f68c23f 100644 (file)
@@ -10,7 +10,7 @@
 #include <time.h>
 #include <vector>
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_TIMESTR_STR,
+REGIST_DIAL_MODULE(OHOS::DialDataType::TIMESTR_STR,
                    OHOS::DialModelTimeStr::GetInstance());
 
 namespace OHOS {
@@ -51,7 +51,7 @@ void DialModelTimeStr::UpdateTimeStr(const std::string dialTimeStr) {
   dialTimeStr_.clear();
   dialTimeStr_ = dialTimeStr; // 更新字符串
   if (onChangeListener_ != nullptr) {
-    onChangeListener_->OnDialTextDataUpdate(DialDataType::DATA_TYPE_TIMESTR_STR,
+    onChangeListener_->OnDialTextDataUpdate(OHOS::DialDataType::TIMESTR_STR,
                                             &dialTimeStr_, 1);
   }
 }
index d549ea3..d360fed 100644 (file)
@@ -14,7 +14,7 @@
 #include "RegisterDialModel.h"
 #include "DialModelWeather.h"
 #include "wearable_log.h"
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_WEATHER, OHOS::DialModelWeather::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::WEATHER_TYPE, OHOS::DialModelWeather::GetInstance());
 
 namespace OHOS
 {
@@ -31,7 +31,7 @@ namespace OHOS
         Weather_ = static_cast<float>(Weather - 1);
         if (onChangeListener_ != nullptr)
         {
-            onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_WEATHER, Weather_);
+            onChangeListener_->OnDialFloatDataUpdate(OHOS::DialDataType::WEATHER_TYPE, Weather_);
         }
     }
 }
index d2c82dd..ec55241 100644 (file)
@@ -16,7 +16,7 @@
 #include "sys/time.h"
 #include "wearable_log.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_WEATHER_STR, OHOS::DialModelWeatherStr::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::WEATHER_STR, OHOS::DialModelWeatherStr::GetInstance());
 namespace OHOS
 {
 
@@ -35,7 +35,7 @@ namespace OHOS
         dialWeatherStr_ = dialWeatherStr; // 更新字符串
         if (onChangeListener_ != nullptr)
         {
-            onChangeListener_->OnDialTextDataUpdate(DialDataType::DATA_TYPE_WEATHER_STR, &dialWeatherStr_, 1);
+            onChangeListener_->OnDialTextDataUpdate(OHOS::DialDataType::WEATHER_STR, &dialWeatherStr_, 1);
         }
     }
 }
\ No newline at end of file
index 6f04fb4..72ff069 100644 (file)
@@ -7,7 +7,7 @@
 #include <string>
 #include <time.h>
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_WEEK_EN_STR,
+REGIST_DIAL_MODULE(OHOS::DialDataType::WEEK_EN_STR,
                    OHOS::DialModelWeekEnStr::GetInstance());
 namespace OHOS {
 //  CnWeekEndays 是一个包含星期字符串的数组
@@ -41,7 +41,7 @@ void DialModelWeekEnStr::UpdateWeekEnStr(const std::string *&dialWeekEnStr) {
   dialWeekEnStr_.clear();
   dialWeekEnStr_ = *dialWeekEnStr; // 更新字符串
   if (onChangeListener_ != nullptr) {
-    onChangeListener_->OnDialTextDataUpdate(DialDataType::DATA_TYPE_WEEK_EN_STR,
+    onChangeListener_->OnDialTextDataUpdate(OHOS::DialDataType::WEEK_EN_STR,
                                             &dialWeekEnStr_,
                                             dialWeekEnStr_.size());
   }
index e61797e..deb1e35 100644 (file)
@@ -6,7 +6,7 @@
 #include <string>
 #include <time.h>
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_WEEK_NUM,
+REGIST_DIAL_MODULE(OHOS::DialDataType::WEEK_NUM,
                    OHOS::DialModelWeekNum::GetInstance());
 
 namespace OHOS {
index 6f14eeb..f076832 100644 (file)
@@ -7,7 +7,7 @@
 #include "wearable_log.h"
 #include <sstream>
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_WEEK_STR, OHOS::DialModelWeekStr::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::WEEK_STR, OHOS::DialModelWeekStr::GetInstance());
 namespace OHOS
 {
     //  Cnweekdays 是一个包含星期字符串的数组
@@ -41,7 +41,7 @@ namespace OHOS
         dialWeekStr_ = *dialWeekStr; // 更新字符串
         if (onChangeListener_ != nullptr)
         {
-            onChangeListener_->OnDialTextDataUpdate(DialDataType::DATA_TYPE_WEEK_STR, &dialWeekStr_, dialWeekStr_.size());
+            onChangeListener_->OnDialTextDataUpdate(OHOS::DialDataType::WEEK_STR, &dialWeekStr_, dialWeekStr_.size());
         }
     }
 }
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialSequenceContainer.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialSequenceContainer.cpp
deleted file mode 100644 (file)
index 4024f46..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
- * Description: DialSequenceContainer
- * Author:
- * Create: 2025-03-05
- */
-
-#include "DialSequenceContainer.h"
-
-namespace OHOS {
-DialSequenceContainer::DialSequenceContainer()
-{
-    SetTouchable(true);
-    SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
-    memset_s(nonCycleView_, sizeof(nonCycleView_), 0, sizeof(nonCycleView_));
-}
-
-DialSequenceContainer::~DialSequenceContainer()
-{
-    if (repeatView_ != nullptr) {
-        delete repeatView_;
-        repeatView_ = nullptr;
-    }
-
-    for (uint8_t i = 0; i < nonCycleNum_; ++i) {
-        delete nonCycleView_[i];
-        nonCycleView_[i] = nullptr;
-    }
-    nonCycleNum_ = 0;
-    curView_ = nullptr;
-}
-
-bool DialSequenceContainer::AddSequenceRes(uint16_t interval, bool repeat,
-    const ImageAnimatorInfo *imgSrc, uint8_t imgNum)
-{
-    if (imgSrc == nullptr || imgNum == 0) {
-        return false;
-    }
-
-    // add animator images to view
-    if (repeat) {
-        if (repeatView_ != nullptr) {
-            GRAPHIC_LOGE("the repeat seq view has existed!");
-            return false;
-        }
-        repeatView_ = new UIImageAnimatorView;
-        repeatView_->SetImageAnimatorSrc(imgSrc, imgNum, interval);
-        repeatView_->SetRepeat(false);
-    } else {
-        if (nonCycleNum_ >= sizeof(nonCycleView_) / sizeof(nonCycleView_[0])) {
-            GRAPHIC_LOGE("non cycle seq views have been exceedeed!");
-            return false;
-        }
-        nonCycleView_[nonCycleNum_] = new UIImageAnimatorView;
-        nonCycleView_[nonCycleNum_]->SetImageAnimatorSrc(imgSrc, imgNum, interval);
-        nonCycleView_[nonCycleNum_]->SetRepeat(false);
-        ++nonCycleNum_;
-    }
-
-    // update rect area
-    Rect rect(GetRelativeRect());
-    for (uint8_t i = 0; i < imgNum; ++i) {
-        rect.JoinRect(rect,
-            Rect(rect.GetX(),
-                rect.GetY(),
-                rect.GetX() + imgSrc[i].width - 1,
-                rect.GetY() + imgSrc[i].height - 1));
-    }
-    rect.JoinRect(rect, GetRelativeRect());
-    SetPosition(rect.GetX(), rect.GetY());
-    SetWidth(rect.GetWidth());
-    SetHeight(rect.GetHeight());
-    Invalidate();
-    
-    return true;
-}
-
-bool DialSequenceContainer::OnClickEvent(const ClickEvent& event)
-{
-    if (curView_ == nullptr) {
-        return false;
-    }
-    uint8_t curState = curView_->GetState();
-    switch (curState) {
-        case Animator::STOP: {
-            if (curView_ == repeatView_) {
-                isClick_ = true;
-            } else {
-                UpdateCurrentView();
-                Start();
-            }
-            break;
-        }
-        case Animator::PAUSE: {
-            return false;
-        }
-        case Animator::RUNNING:
-        case Animator::START: {
-            if (curView_ == repeatView_) {
-                isClick_ = true;
-            }
-            break;
-        }
-        default: {
-            GRAPHIC_LOGE("error state");
-        }
-    }
-    
-    return UIViewGroup::OnClickEvent(event);
-}
-
-void DialSequenceContainer::Start()
-{
-    if (curView_ != nullptr) {
-        curView_->Start();
-        return;
-    }
-
-    UpdateCurrentView();
-    if (curView_ == nullptr) {
-        return;
-    }
-    curView_->Start();
-}
-
-void DialSequenceContainer::Stop()
-{
-    if (curView_ != nullptr) {
-        curView_->Stop();
-        return;
-    }
-
-    UpdateCurrentView();
-    if (curView_ == nullptr) {
-        return;
-    }
-    curView_->Stop();
-}
-
-void DialSequenceContainer::Pause()
-{
-    if (curView_ != nullptr) {
-        curView_->Pause();
-        return;
-    }
-
-    UpdateCurrentView();
-    if (curView_ == nullptr) {
-        return;
-    }
-    curView_->Pause();
-}
-
-void DialSequenceContainer::Resume()
-{
-    if (curView_ != nullptr) {
-        curView_->Resume();
-        return;
-    }
-
-    UpdateCurrentView();
-    if (curView_ == nullptr) {
-        return;
-    }
-    curView_->Resume();
-}
-
-void DialSequenceContainer::OnAnimatorStop(UIView& view)
-{
-    bool isClick = isClick_;
-    isClick_ = false;
-    bool isRepeat = (curView_ == repeatView_);
-    if (isRepeat && isClick) {
-        UpdateCurrentView();
-        Start();
-    } else if (isRepeat && !isClick) {
-        Start();
-    } else {
-        if (repeatView_ != nullptr) {
-            UpdateCurrentView();
-            Start();
-        }
-    }
-}
-
-void DialSequenceContainer::UpdateCurrentView()
-{
-    if (curView_ != nullptr) {
-        if (repeatView_ != nullptr && nonCycleNum_ == 0) {
-            return;
-        } else if (repeatView_ == nullptr && nonCycleNum_ != 0) {
-            Remove(curView_);
-            curView_ = nonCycleView_[loop_];
-            loop_ = (loop_ + 1) % nonCycleNum_;
-            curView_->SetAnimatorStopListener(this);
-            Add(curView_);
-            Invalidate();
-            return;
-        }
-
-        // both repeat and noncycle exist
-        Remove(curView_);
-        if (curView_ == repeatView_) {
-            curView_ = nonCycleView_[loop_];
-            loop_ = (loop_ + 1) % nonCycleNum_;
-        } else {
-            curView_ = repeatView_;
-        }
-        curView_->SetAnimatorStopListener(this);
-        Add(curView_);
-        Invalidate();
-        return;
-    }
-
-    if (repeatView_ != nullptr) {
-        curView_ = repeatView_;
-    } else if (nonCycleNum_ != 0) {
-        curView_ = nonCycleView_[loop_];
-        loop_ = (loop_ + 1) % nonCycleNum_;
-    } else {
-        GRAPHIC_LOGE("sequence img has not been added!");
-        return;
-    }
-    curView_->SetAnimatorStopListener(this);
-    Add(curView_);
-    Invalidate();
-}
-} // namespace OHOS
index 5c9c31e..c7d1c24 100644 (file)
 
 #include "DialSequenceImgView.h"
 #include "securec.h"
+#include "common/graphic_utils.h"
+#include "common/image_cache_manager.h"
 
 namespace OHOS {
+namespace {
+const uint32_t DIRID = 0xfef << 20;  // 20: offset
+}
+
 DialSequenceImgView::DialSequenceImgView(void)
 {
+    SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
+    memset_s(nonCycleSeq_, sizeof(nonCycleSeq_), 0, sizeof(nonCycleSeq_));
 }
 
 DialSequenceImgView::~DialSequenceImgView(void)
 {
-    if (imgSrc_ != nullptr) {
-        UIFree(imgSrc_);
+    if (repeatSeq_ != nullptr) {
+        delete repeatSeq_;
+        repeatSeq_ = nullptr;
+    }
+
+    for (uint8_t i = 0; i < nonCycleNum_; ++i) {
+        delete nonCycleSeq_[i];
+        nonCycleSeq_[i] = nullptr;
     }
+    nonCycleNum_ = 0;
+    loop_ = 0;
+    isClick_ = false;
+    viewNum_ = 0;
+    isAllImgLoaded_ = false;
+    curSeq_ = nullptr;
 }
 
-bool DialSequenceImgView::SetSequenceRes(const ImageAnimatorInfo* imgSrc, uint8_t imgNum)
+bool DialSequenceImgView::SetSequenceRes(const ImageAnimatorInfo *imgSrc, uint8_t imgNum)
 {
     if (imgSrc == nullptr || imgNum == 0) {
         return false;
     }
-    if (imgSrc_ != nullptr) {
-        UIFree(imgSrc_);
-        imgNum_ = 0;
+
+    SetImageAnimatorSrc(imgSrc, imgNum);
+    return true;
+}
+
+bool DialSequenceImgView::SetPreviewImg()
+{
+    if (curSeq_ == nullptr) {
+        UpdateCurrentSeq();
     }
-    uint32_t size = sizeof(ImageAnimatorInfo) * imgNum;
-    imgSrc_ = static_cast<ImageAnimatorInfo*>(UIMalloc(size));
-    if (imgSrc_ == nullptr) {
+    if (curSeq_ == nullptr) {
         return false;
     }
-    if (memcpy_s(imgSrc_, size, imgSrc, size) != EOK) {
-        UIFree(imgSrc_);
+    SetAnimatorInfo(curSeq_, 1);
+    isAllImgLoaded_ = false;
+    SetSrc(curSeq_->imgs[0].imageInfo);
+    SetPosition(curSeq_->imgs[0].pos.x, curSeq_->imgs[0].pos.y);
+    SetWidth(curSeq_->imgs[0].width);
+    SetHeight(curSeq_->imgs[0].height);
+    Invalidate();
+    return true;
+}
+
+bool DialSequenceImgView::LoadCurSeqImgs()
+{
+    if (curSeq_ == nullptr) {
+        UpdateCurrentSeq();
+    }
+    if (curSeq_ == nullptr) {
         return false;
     }
-    imgNum_ = imgNum;
-    SetImageAnimatorSrc(imgSrc_, imgNum_);
+    isAllImgLoaded_ = true;
+    SetAnimatorInfo(curSeq_, curSeq_->info.imgNum);
     return true;
 }
-}
\ No newline at end of file
+
+bool DialSequenceImgView::AddSequenceRes(const SequenceInfo &para)
+{
+    if (viewNum_ >= SEQ_IMG_NUM) {
+        GRAPHIC_LOGE("seq num has exceeded!");
+        return false;
+    }
+
+    if (para.repeat) {
+        if (repeatSeq_ != nullptr) {
+            GRAPHIC_LOGE("the repeat seq has existed!");
+            return false;
+        }
+        repeatSeq_ = new AnimatorInfo;
+        repeatSeq_->info = para;
+    } else {
+        if (nonCycleNum_ >= SEQ_IMG_NUM) {
+            GRAPHIC_LOGE("non cycle seq have been exceedeed!");
+            return false;
+        }
+        nonCycleSeq_[nonCycleNum_] = new AnimatorInfo;
+        nonCycleSeq_[nonCycleNum_]->info = para;
+        ++nonCycleNum_;
+    }
+
+    SetTouchable(true);
+    SetAnimatorStopListener(this);
+    SetRepeat(false);
+    ++viewNum_;
+    return true;
+}
+
+bool DialSequenceImgView::OnClickEvent(const ClickEvent &event)
+{
+    if (!isAllImgLoaded_) {
+        return false;
+    }
+    if (curSeq_ == nullptr) {
+        return false;
+    }
+    uint8_t curState = GetState();
+    switch (curState) {
+        case Animator::STOP: {
+            if (curSeq_ == repeatSeq_) {
+                isClick_ = true;
+            } else {
+                UpdateCurrentSeq();
+                SetAnimatorInfo(curSeq_, curSeq_->info.imgNum);
+                Start();
+            }
+            break;
+        }
+        case Animator::PAUSE: {
+            return false;
+        }
+        case Animator::RUNNING:
+        case Animator::START: {
+            if (curSeq_ == repeatSeq_) {
+                isClick_ = true;
+            }
+            break;
+        }
+        default: {
+            GRAPHIC_LOGE("error state");
+        }
+    }
+
+    return UIImageAnimatorView::OnClickEvent(event);
+}
+
+void DialSequenceImgView::OnAnimatorStop(UIView &view)
+{
+    if (!isAllImgLoaded_) {
+        return;
+    }
+    bool isClick = isClick_;
+    isClick_ = false;
+    bool isRepeat = (curSeq_ == repeatSeq_);
+    if (isRepeat && isClick) {
+        UpdateCurrentSeq();
+        SetAnimatorInfo(curSeq_, curSeq_->info.imgNum);
+        Start();
+    } else if (isRepeat && !isClick) {
+        Start();
+    } else {
+        if (repeatSeq_ != nullptr) {
+            UpdateCurrentSeq();
+            SetAnimatorInfo(curSeq_, curSeq_->info.imgNum);
+            Start();
+        }
+    }
+}
+
+ImageAnimatorInfo *DialSequenceImgView::LoadImgs(const SequenceInfo &para, uint8_t num) const
+{
+    if (para.fp == nullptr || num > para.imgNum) {
+        return nullptr;
+    }
+
+    long curPt = ftell(para.fp);
+    fseek(para.fp, para.resPos, SEEK_SET);
+    uint16_t *imgIdArray = static_cast<uint16_t *>(UIMalloc(sizeof(uint16_t) * num));
+    defer
+    {
+        if (imgIdArray != nullptr) {
+            UIFree(imgIdArray);
+        }
+        fseek(para.fp, curPt, SEEK_SET);
+    };
+    if (imgIdArray == nullptr) {
+        return nullptr;
+    }
+    ImageAnimatorInfo *imgInfoArray = static_cast<ImageAnimatorInfo *>(UIMalloc(num * sizeof(ImageAnimatorInfo)));
+    if (imgInfoArray == nullptr) {
+        return nullptr;
+    }
+
+    if (fread(imgIdArray, 1, sizeof(uint16_t) * num, para.fp) != sizeof(uint16_t) * num) {
+        GRAPHIC_LOGE("failed to read resId");
+        UIFree(imgInfoArray);
+        return nullptr;
+    }
+    for (uint8_t i = 0; i < num; ++i) {
+        uint32_t resId = imgIdArray[i] | DIRID;
+        ImageInfo *info =
+            ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, para.fileName, para.fp, false, para.imgOffset);
+        if (info == nullptr) {
+            GRAPHIC_LOGE("load img fail! file:%s resId:%x", para.fileName.c_str(), resId);
+            UIFree(imgInfoArray);
+            return nullptr;
+        }
+        imgInfoArray[i].imageInfo = info;
+        imgInfoArray[i].pos = {GetRelativeRect().GetX(), GetRelativeRect().GetY()};
+        imgInfoArray[i].width = info->header.width;
+        imgInfoArray[i].height = info->header.height;
+        imgInfoArray[i].imageType = IMG_SRC_IMAGE_INFO;
+    }
+    return imgInfoArray;
+}
+
+void DialSequenceImgView::UpdateCurrentSeq()
+{
+    if (curSeq_ != nullptr) {
+        if (repeatSeq_ != nullptr && nonCycleNum_ == 0) {
+            return;
+        } else if (repeatSeq_ == nullptr && nonCycleNum_ != 0) {
+            curSeq_ = nonCycleSeq_[loop_];
+            loop_ = (loop_ + 1) % nonCycleNum_;
+            return;
+        }
+
+        // both repeat and noncycle exist
+        if (curSeq_ == repeatSeq_) {
+            curSeq_ = nonCycleSeq_[loop_];
+            loop_ = (loop_ + 1) % nonCycleNum_;
+        } else {
+            curSeq_ = repeatSeq_;
+        }
+        return;
+    }
+
+    if (repeatSeq_ != nullptr) {
+        curSeq_ = repeatSeq_;
+    } else if (nonCycleNum_ != 0) {
+        curSeq_ = nonCycleSeq_[loop_];
+        loop_ = (loop_ + 1) % nonCycleNum_;
+    } else {
+        GRAPHIC_LOGE("sequence img has not been added!");
+        return;
+    }
+}
+
+void DialSequenceImgView::SetAnimatorInfo(AnimatorInfo *info, uint8_t num)
+{
+    if (info == nullptr || num == 0) {
+        GRAPHIC_LOGE("para error");
+        return;
+    }
+    if (num > info->info.imgNum) {
+        GRAPHIC_LOGE("The number of images exceeds the limit.");
+        return;
+    }
+
+    if (num == info->num && info->imgs != nullptr) {
+        SetImageAnimatorSrc(info->imgs, info->num, info->info.interval);
+    } else {
+        if (info->imgs != nullptr) {
+            UIFree(info->imgs);
+        }
+        info->num = num;
+        info->imgs = LoadImgs(info->info, info->num);
+        if (info->imgs == nullptr) {
+            return;
+        }
+        SetImageAnimatorSrc(info->imgs, info->num, info->info.interval);
+    }
+}
+}  // namespace OHOS
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialTimePublisher.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialTimePublisher.cpp
deleted file mode 100644 (file)
index cb4539b..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
- * Description: DialTimePublisher
- * Author:
- * Create: 2025-03-04
- */
-
-#include "DialTimePublisher.h"
-#include "securec.h"
-#include "gfx_utils/mem_api.h"
-#include "gfx_utils/graphic_log.h"
-
-namespace OHOS {
-DialTimePublisher *DialTimePublisher::publisher_ = nullptr;
-
-void DialTimePublisher::TimeChangeListener::SetTimeInervals(TimeInterval *intervals, uint8_t num)
-{
-    if (intervals == nullptr || num == 0) {
-        return;
-    }
-    if (intervals_ != nullptr) {
-        UIFree(intervals_);
-        intervals_ = nullptr;
-    }
-    num_ = 0;
-
-    intervals_ = static_cast<TimeInterval*>(UIMalloc(sizeof(TimeInterval) * num));
-    if (intervals_ == nullptr) {
-        GRAPHIC_LOGE("failed to malloc!");
-        return;
-    }
-    num_ = num;
-    memcpy_s(intervals_, sizeof(TimeInterval) * num, intervals, sizeof(TimeInterval) * num);
-}
-
-bool DialTimePublisher::TimeChangeListener::IsInTimeInterval(const struct tm &curTime)
-{
-    if (num_ == 0) { // 0-24
-        return true;
-    }
-    for (uint8_t i = 0; i < num_; ++i) {
-        if (intervals_[i].start <= curTime.tm_hour && intervals_[i].end > curTime.tm_hour) {
-            return true;
-        }
-    }
-    return false;
-}
-
-DialTimePublisher::TimeChangeListener::TimeChangeListener()
-{
-    if (DialTimePublisher::GetPublisher() != nullptr) {
-        DialTimePublisher::GetPublisher()->Register(this);
-    }
-}
-
-DialTimePublisher::TimeChangeListener::~TimeChangeListener()
-{
-    if (intervals_ != nullptr) {
-        UIFree(intervals_);
-        intervals_ = nullptr;
-    }
-    num_ = 0;
-    if (DialTimePublisher::GetPublisher() != nullptr) {
-        DialTimePublisher::GetPublisher()->Unregister(this);
-    }
-}
-
-void DialTimePublisher::SetPublisher(DialTimePublisher *publisher)
-{
-    publisher_ = publisher;
-}
-
-DialTimePublisher *DialTimePublisher::GetPublisher()
-{
-    return publisher_;
-}
-} // namespace OHOS
\ No newline at end of file
index 6db0860..8ed4cf7 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "DialViewContainer.h"
 #include "DialDigitalImgView.h"
+#include "ModelDialDataFactory.h"
 
 namespace OHOS {
 DialViewContainer::~DialViewContainer()
@@ -57,7 +58,7 @@ void DialViewContainer::AddView(DialDataType type, DialView* view, bool isPeriod
         .type = type,
         .isPeriodic = isPeriodic
     };
-    if (type == DialDataType::DATA_TYPE_MAX) {
+    if (ModelDialDataFactory::GetInstance().GetModuleByType(type) == nullptr) {
         hasInvalidBindData_ = true;
     }
     dialViews_.PushBack(info);
@@ -91,7 +92,8 @@ bool DialViewContainer::IsInvalidateBindData(uint8_t index)
     for (uint8_t i = 0; i < index; ++i) {
         it = it->next_;
     }
-    if (it->data_.dialView != nullptr && it->data_.type == DialDataType::DATA_TYPE_MAX) {
+    if (it->data_.dialView != nullptr &&
+        ModelDialDataFactory::GetInstance().GetModuleByType(it->data_.type) == nullptr) {
         return true;
     }
     DialViewContainer *container = dynamic_cast<DialViewContainer*>(it->data_.view);
index 19ba8d4..9225077 100644 (file)
@@ -19,6 +19,9 @@
 #include "ui_screennotify.h"
 #endif
 #include "DialDigitalImgView.h"
+#include "common/input_device_manager.h"
+#include "DialSequenceImgView.h"
+#include "engines/gfx/lite_m_gfx_engine.h"
 namespace OHOS
 {
     static DialVideoView *g_video = nullptr;
@@ -28,53 +31,17 @@ namespace OHOS
     static constexpr const char *SLEEPICON = "user/res/dial_state/sleep.bin";
     static constexpr const char *LOCKICON = "user/res/dial_state/lock.bin";
 
-#ifdef SUPPORT_OHOSFWK
-    static void ScreenStatusNotify(ScreenStatus status)
-    {
-        if (g_video == nullptr)
-        {
-            return;
-        }
-        // printf("uapi_dev_runtime_get_transmitting_status() %d\n",uapi_dev_runtime_get_transmitting_status());
-        // printf("ScreenStatusNotify status %d\n", status);
-        // printf("ScreenStatusNotify  g_video->IsPlayed() %d\n", g_video->IsPlayed());
-        if (status == SCREEN_STATUS_OFF)
-        {
-            g_video->PausePlay();
-            // printf("暂停视频\n");
-        }
-        else if (status == SCREEN_STATUS_ON)
-        {
-            if (g_video->IsPaused())
-            {
-                g_video->ResumePlay();
-                //   printf("恢复视频\n");
-            }
-            else if (!g_video->IsPlayed())
-            {
-                g_video->StartPlay();
-                //   printf("开始播放\n");
-            }
-        }
-    }
-#endif
 
     DialViewGroup::DialViewGroup(void)
     {
         SetTouchable(true);
         SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
         SetCoverable(true);
+        isExists_ = std::make_shared<bool>(true);
     }
 
     DialViewGroup::~DialViewGroup(void)
     {
-        if (video_ != nullptr)
-        {
-#ifdef SUPPORT_OHOSFWK
-            deregisterNotifyScreenStatus(ScreenStatusNotify);
-#endif
-            g_video = nullptr;
-        }
         if (kaleidoscope_ != nullptr)
         {
             kaleidoscope_->ClearFocus();
@@ -109,7 +76,7 @@ namespace OHOS
 
         periodicUpdateTypes_.Clear();
 
-        dataTypeMap_.clear();
+    ClearViews();
 
         ListNode<UIView *> *viewNode = dialViews_.Head();
         while (viewNode != dialViews_.End())
@@ -120,7 +87,10 @@ namespace OHOS
         }
         dialViews_.Clear();
 
-        period_ = DEFAULT_TASK_PERIOD;
+    rollingLabelList_.Clear();
+    imgAnimList_.Clear();
+
+    period_ = DEFAULT_TASK_PERIOD;
 
         video_ = nullptr;
 
@@ -143,13 +113,15 @@ namespace OHOS
         }
     }
 
-    void DialViewGroup::SetDial(std::string filePath, DisplayState state)
-    {
+void DialViewGroup::SetDial(std::string filePath, DisplayState state)
+{
+    if (resPreloaded_) {
         ClearDial();
         resPreloaded_ = false;
-        filePath_ = filePath;
-        state_ = state;
     }
+    filePath_ = filePath;
+    state_ = state;
+}
 
     void DialViewGroup::UpdateStateShow()
     {
@@ -216,212 +188,174 @@ namespace OHOS
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialViewGroup::GetElapseTime %d", elapseTime);
     }
 
-    void DialViewGroup::ProcessData(DialDataType type, DialView *view)
-    {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialViewGroup::ProcessData type %d\r\n", type);
-        int16_t value = static_cast<int16_t>(type) >> 14; // 14: bit shift
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialViewGroup::ProcessData value %d\r\n", value);
-        if (value == 0)
-        { // 0: float
-            float floatData = 0;
-            ModelDialDataFactory::GetInstance().GetDialFloatData(type, floatData);
-            view->HandleFloatData(floatData);
-        }
-        else if (value == 1)
-        { // 1: text
-            std::string *textData = nullptr;
-            int16_t num = 0;
-            bool ret = ModelDialDataFactory::GetInstance().GetDialTextData(type, textData, num);
-            // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ModelDialDataFactory type %d  num %d ret %d textData %s\r\n", type, num, ret,textData->c_str());
-            view->HandleTextData(textData, num);
-        }
-        else if (value == 2)
-        { // 2: multifloat
-            float *floatsData = nullptr;
-            int16_t num = 0;
-            ModelDialDataFactory::GetInstance().GetDialFloatData(type, floatsData, num);
-            view->HandleFloatData(floatsData, num);
-        }
-    }
-
-    void DialViewGroup::DoStop(void)
-    {
-        SetLableAnimatorState(Animator::PAUSE);
-        SetImgAnimatorState(Animator::PAUSE);
-        if (video_ != nullptr && !video_->IsStopped())
-        {
-            video_->StopPlay();
+void DialViewGroup::ProcessData(DialDataType type, DialView* view)
+{
+    int16_t value = static_cast<int16_t>(type) >> 13; // 13: bit shift
+    if (value == 0) { // 0: float
+        float floatData = 0;
+        ModelDialDataFactory::GetInstance().GetDialFloatData(type, floatData);
+        view->HandleFloatData(floatData);
+    } else if (value == 1) { // 1: text
+        std::string* textData = nullptr;
+        int16_t num = 0;
+        if (!ModelDialDataFactory::GetInstance().GetDialTextData(type, textData, num)) {
+            std::string tmp = "";
+            view->HandleTextData(&tmp, 1);
+            return;
         }
-        if (kaleidoscope_ != nullptr)
-        {
-            kaleidoscope_->StopRotateAnimator();
-            kaleidoscope_->ClearFocus();
+        view->HandleTextData(textData, num);
+    } else if (value == 2) { // 2: multifloat
+        float* floatsData = nullptr;
+        int16_t num = 0;
+        if (!ModelDialDataFactory::GetInstance().GetDialFloatData(type, floatsData, num)) {
+            float tmp = 0.0;
+            view->HandleFloatData(&tmp, 1);
+            return;
         }
+        view->HandleFloatData(floatsData, num);
+    } else {
+        GRAPHIC_LOGW("invalid datatype %d", static_cast<int>(type));
     }
+}
+void DialViewGroup::DoStop(void)
+{
+    SetLableAnimatorState(Animator::PAUSE);
+    SetImgAnimatorState(Animator::PAUSE);
+    if (video_ != nullptr && !video_->IsStopped()) {
+        video_->StopPlay();
+    }
+    if (kaleidoscope_ != nullptr) {
+        kaleidoscope_->StopRotateAnimator();
+        kaleidoscope_->ClearFocus();
+    }
+}
 
-    void DialViewGroup::DoStart(void)
-    {
-        SetLableAnimatorState(Animator::START);
+void DialViewGroup::DoStart(void)
+{
+    SetLableAnimatorState(Animator::START);
+    if (isSeqImgLoaded_) {
         SetImgAnimatorState(Animator::START);
-        if (video_ != nullptr)
-        {
-            if (video_->IsPaused())
-            {
-                video_->ResumePlay();
-            }
-            else if (!video_->IsPlayed())
-            {
-                video_->StartPlay();
-            }
-        }
-        if (kaleidoscope_ != nullptr)
-        {
-            kaleidoscope_->RequestFocus();
-            kaleidoscope_->StartRotateAnimator();
+    }
+    if (video_ != nullptr) {
+        if (video_->IsPaused()) {
+            video_->ResumePlay();
+        } else if (!video_->IsPlayed()) {
+            video_->StartPlay();
         }
     }
+    if (kaleidoscope_ != nullptr) {
+        kaleidoscope_->RequestFocus();
+        kaleidoscope_->StartRotateAnimator();
+    }
+}
 
-    void DialViewGroup::DoPause(void)
-    {
-        SetLableAnimatorState(Animator::PAUSE);
-        SetImgAnimatorState(Animator::PAUSE);
-        if (kaleidoscope_ != nullptr)
-        {
-            kaleidoscope_->StopRotateAnimator();
-            kaleidoscope_->ClearFocus();
-        }
-        if (video_ != nullptr)
-        {
-            video_->PausePlay();
-        }
+void DialViewGroup::DoPause(void)
+{
+    SetLableAnimatorState(Animator::PAUSE);
+    SetImgAnimatorState(Animator::PAUSE);
+    if (kaleidoscope_ != nullptr) {
+        kaleidoscope_->StopRotateAnimator();
+        kaleidoscope_->ClearFocus();
+    }
+    if (video_ != nullptr) {
+        video_->PausePlay();
     }
+}
 
-    void DialViewGroup::RecordSpecial(UIView *view)
-    {
-        if (dynamic_cast<UILabel *>(view) != nullptr)
-        {
-            UILabel *label = dynamic_cast<UILabel *>(view);
-            uint8_t mode = label->GetLineBreakMode();
-            if (mode == UILabel::LINE_BREAK_MARQUEE || mode == UILabel::LINE_BREAK_OSCILLATION)
-            {
-                rollingLabelList_.PushBack(label);
-            }
-        }
-        else if (dynamic_cast<UIImageAnimatorView *>(view) != nullptr)
-        {
-            UIImageAnimatorView *imgAnim = dynamic_cast<UIImageAnimatorView *>(view);
-            imgAnimList_.PushBack(imgAnim);
-        }
-        else if (dynamic_cast<UIKaleidoscopeView *>(view) != nullptr)
-        {
-            kaleidoscope_ = dynamic_cast<UIKaleidoscopeView *>(view);
-        }
-        else if (dynamic_cast<UILiteSurfaceView *>(view) != nullptr)
-        {
-            if (video_ != nullptr)
-            {
-                GRAPHIC_LOGE("Already added a video view.\n");
-                return;
-            }
-            video_ = reinterpret_cast<DialVideoView *>(view);
-        }
-        else if (dynamic_cast<DialSequenceContainer *>(view) != nullptr)
-        {
-            DialSequenceContainer *seq = dynamic_cast<DialSequenceContainer *>(view);
-            seqList_.PushBack(seq);
+void DialViewGroup::RecordSpecial(UIView *view)
+{
+    if (dynamic_cast<UILabel*>(view) != nullptr) {
+        UILabel* label = dynamic_cast<UILabel*>(view);
+        uint8_t mode = label->GetLineBreakMode();
+        if (mode == UILabel::LINE_BREAK_MARQUEE || mode == UILabel::LINE_BREAK_OSCILLATION) {
+            rollingLabelList_.PushBack(label);
+        }
+    } else if (dynamic_cast<UIImageAnimatorView*>(view) != nullptr) {
+        UIImageAnimatorView* imgAnim = dynamic_cast<UIImageAnimatorView*>(view);
+        imgAnimList_.PushBack(imgAnim);
+    } else if (dynamic_cast<UIKaleidoscopeView*>(view) != nullptr) {
+        kaleidoscope_ = dynamic_cast<UIKaleidoscopeView*>(view);
+    } else if (dynamic_cast<UILiteSurfaceView*>(view) != nullptr) {
+        if (video_ != nullptr) {
+            GRAPHIC_LOGE("Already added a video view.\n");
+            return;
         }
+        video_ = reinterpret_cast<DialVideoView*>(view);
     }
+}
 
-    void DialViewGroup::RecordBindData(DialDataType type, DialView *view, bool isPeriodic)
-    {
-        if (dynamic_cast<UILabel *>(view) != nullptr)
-        {
-            UILabel *label = dynamic_cast<UILabel *>(view);
-            uint8_t mode = label->GetLineBreakMode();
-            if (mode == UILabel::LINE_BREAK_MARQUEE || mode == UILabel::LINE_BREAK_OSCILLATION)
-            {
-                rollingLabelList_.PushBack(label);
-            }
+void DialViewGroup::RecordBindData(DialDataType type, DialView* view, bool isPeriodic)
+{
+    if (dynamic_cast<UILabel*>(view) != nullptr) {
+        UILabel* label = dynamic_cast<UILabel*>(view);
+        uint8_t mode = label->GetLineBreakMode();
+        if (mode == UILabel::LINE_BREAK_MARQUEE || mode == UILabel::LINE_BREAK_OSCILLATION) {
+            rollingLabelList_.PushBack(label);
         }
+    }
 
-        auto it = dataTypeMap_.find(static_cast<int16_t>(type));
-        if (it != dataTypeMap_.end())
-        {
-            it->second->PushBack(view);
-        }
-        else
-        {
-            Views *container = new Views;
-            if (container == nullptr)
-            {
-                GRAPHIC_LOGE("failed to alloc binddata container");
-                return;
-            }
-            container->PushBack(view);
-            dataTypeMap_.insert(std::make_pair(static_cast<int16_t>(type), container));
-            viewsMemPool_.PushBack(container);
-        }
-        if (isPeriodic)
-        {
-            periodicUpdateTypes_.PushBack(type);
-        }
-        else
-        {
-            ModelDialDataFactory::GetInstance().RegisterDialDataListener(type, this);
-            passiveUpdateTypes_.PushBack(type);
+    auto it = dataTypeMap_.find(static_cast<int16_t>(type));
+    if (it != dataTypeMap_.end()) {
+        it->second->PushBack(view);
+    } else {
+        Views *container = new Views;
+        if (container == nullptr) {
+            GRAPHIC_LOGE("failed to alloc binddata container");
+            return;
         }
+        container->PushBack(view);
+        dataTypeMap_.insert(std::make_pair(static_cast<int16_t>(type), container));
+        viewsMemPool_.PushBack(container);
     }
+    view->SetDataType(type);
+    if (isPeriodic) {
+        periodicUpdateTypes_.PushBack(type);
+    } else {
+        ModelDialDataFactory::GetInstance().RegisterDialDataListener(type, this);
+        passiveUpdateTypes_.PushBack(type);
+    }
+}
 
-    void DialViewGroup::ClearViews()
-    {
-        dataTypeMap_.clear();
-        for (uint16_t i = 0; i < viewsMemPool_.Size(); ++i)
-        {
-            delete viewsMemPool_[i];
-        }
-        viewsMemPool_.Clear();
+void DialViewGroup::ClearViews()
+{
+    dataTypeMap_.clear();
+    for (uint16_t i = 0; i < viewsMemPool_.Size(); ++i) {
+        delete viewsMemPool_[i];
     }
+    viewsMemPool_.Clear();
+}
 
-    void DialViewGroup::AddView(UIView *view)
-    {
-        if (view == nullptr)
-        {
-            GRAPHIC_LOGE("Parameter is nullptr.\n");
-            return;
-        }
-        dialViews_.PushBack(view);
-        Add(view);
-        DialViewContainer *container = dynamic_cast<DialViewContainer *>(view);
-        if (container != nullptr)
-        {
-            ListNode<DialViewContainer::SubView> *head = container->Begin();
-            for (; head != container->End(); head = head->next_)
-            {
-                DialViewContainer::SubView &subView = head->data_;
-                if (subView.dialView != nullptr)
-                {
-                    RecordBindData(subView.type, subView.dialView, subView.isPeriodic);
-                    ProcessData(subView.type, subView.dialView);
-                }
-                else if (subView.view != nullptr)
-                {
-                    RecordSpecial(subView.view);
-                }
+void DialViewGroup::AddView(UIView* view)
+{
+    if (view == nullptr) {
+        GRAPHIC_LOGE("Parameter is nullptr.\n");
+        return;
+    }
+    dialViews_.PushBack(view);
+    Add(view);
+    DialViewContainer *container = dynamic_cast<DialViewContainer*>(view);
+    if (container != nullptr) {
+        ListNode<DialViewContainer::SubView> *head = container->Begin();
+        for (;head != container->End(); head = head->next_) {
+            DialViewContainer::SubView &subView = head->data_;
+            if (subView.dialView != nullptr) {
+                RecordBindData(subView.type, subView.dialView, subView.isPeriodic);
+                ProcessData(subView.type, subView.dialView);
+            } else if (subView.view != nullptr) {
+                RecordSpecial(subView.view);
             }
         }
-        else
-        {
-            RecordSpecial(view);
-        }
+    } else {
+        RecordSpecial(view);
     }
+}
 
-    void DialViewGroup::AddView(DialDataType type, DialView *view, bool isPeriodic)
-    {
-        if (view == nullptr)
-        {
-            GRAPHIC_LOGE("Parameter is nullptr.\n");
-            return;
-        }
+void DialViewGroup::AddView(DialDataType type, DialView* view, bool isPeriodic)
+{
+    if (view == nullptr) {
+        GRAPHIC_LOGE("Parameter is nullptr.\n");
+        return;
+    }
 
         DialDigitalImgView *digital = dynamic_cast<DialDigitalImgView *>(view);
         if (digital != nullptr)
@@ -450,6 +384,36 @@ namespace OHOS
     {
         return period_;
     }
+        // 更新数据
+    void DialViewGroup::UpdateViewsByPeriodicUpdateData()
+    {
+        ListNode<DialDataType>* node = periodicUpdateTypes_.Head();
+        while (node != periodicUpdateTypes_.End()) {
+            DialDataType type = node->data_;
+            auto iter = dataTypeMap_.find(static_cast<int16_t>(type));
+            if (iter != dataTypeMap_.end()) {
+                Views *container = iter->second;
+                for (uint16_t i = 0; i < container->Size(); ++i) {
+                    ProcessData(type, (*container)[i]);
+                }
+            }
+            node = node->next_;
+        }
+        if (LowPowerManager::GetInstance()->IsLiteSurfaceInRootView()) {
+            Invalidate();
+        }
+        // ota进行视频暂停
+        if (uapi_dev_runtime_get_transmitting_status() == 1 || uapi_dev_runtime_get_restore_factory_status() == 1)
+        {
+            // 暂停视频
+            DoPause();
+        }
+        else
+        {
+            // 获取视频
+            DoStart();
+        }
+    }
 
     void DialViewGroup::OnDialFloatDataUpdate(DialDataType type, float data)
     {
@@ -560,222 +524,158 @@ namespace OHOS
         return false;
     }
 
-    void DialViewGroup::ScrollBegin(bool isActive)
-    {
-        if (isActive)
-        {
-            DoPause();
-        }
+void DialViewGroup::ScrollBegin(bool isActive)
+{
+    if (isActive) {
+        DoPause();
     }
+}
 
-    void DialViewGroup::ScrollEnd(bool isActive)
-    {
-        MainPresenterSample *mainPresenter = MainPresenterSample::GetInstance();
-        if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME))
-        {
-            return;
-        }
+void DialViewGroup::ScrollEnd(bool isActive)
+{
+    MainPresenterSample* mainPresenter = MainPresenterSample::GetInstance();
+    if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME)) {
+        return;
+    }
 
-        if (isActive)
-        {
-            DoStart();
+    if (isActive) {
+        DoStart();
+    } else {
+        if (video_ != nullptr && !video_->IsStopped()) {
+            video_->StopPlay();
         }
-        else
-        {
-            if (video_ != nullptr && !video_->IsStopped())
-            {
-                video_->StopPlay();
-            }
-            if (video_ != nullptr)
-            {
-                ClearCache();
-            }
+        if (video_ != nullptr) {
+            ClearCache();
         }
     }
+}
 
-    void DialViewGroup::CoverBegin(bool isCovered)
-    {
-        if (!isCovered)
-        {
-            DoPause();
-        }
+void DialViewGroup::CoverBegin(bool isCovered)
+{
+    if (!isCovered) {
+        DoPause();
     }
+}
 
-    void DialViewGroup::CoverEnd(bool isCovered)
-    {
-        MainPresenterSample *mainPresenter = MainPresenterSample::GetInstance();
-        if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME))
-        {
-            return;
-        }
-
-        if (!isCovered)
-        {
-            DoStart();
-        }
+void DialViewGroup::CoverEnd(bool isCovered)
+{
+    MainPresenterSample* mainPresenter = MainPresenterSample::GetInstance();
+    if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME)) {
+        return;
     }
 
-    void DialViewGroup::OnActive(void)
-    {
-        MainPresenterSample *mainPresenter = MainPresenterSample::GetInstance();
-        if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME))
-        {
-            return;
-        }
-
+    if (!isCovered) {
         DoStart();
     }
+}
 
-    void DialViewGroup::OnInactive(void)
-    {
-        DoStop();
+void DialViewGroup::OnActive(void)
+{
+    MainPresenterSample* mainPresenter = MainPresenterSample::GetInstance();
+    if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME)) {
+        return;
+    }
+    if (!isSeqImgLoaded_) {
+        std::weak_ptr<bool> wk = isExists_;
+        GraphicService::GetInstance()->ForceRefreshImmediately();
+        GraphicService::GetInstance()->PostGraphicEvent([this, wk]() {
+            if (wk.expired()) {
+                return;
+            }
+
+            InputDeviceManager::GetInstance()->ClearInputDeviceState();
+            ListNode<UIImageAnimatorView *> *node = imgAnimList_.Begin();
+            while (node != imgAnimList_.End()) {
+                if (node->data_ != nullptr) {
+                    DialSequenceImgView *imgAnim = dynamic_cast<DialSequenceImgView *>(node->data_);
+                    if (imgAnim != nullptr) {
+                        imgAnim->LoadCurSeqImgs();
+                        imgAnim->Start();
+                    }
+                }
+                node = node->next_;
+            }
+            isSeqImgLoaded_ = true;
+        });
     }
 
-    void DialViewGroup::OnCovered(void)
-    {
-        MainPresenterSample *mainPresenter = MainPresenterSample::GetInstance();
-        if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME))
-        {
-            return;
-        }
+    DoStart();
+}
 
-        DoPause();
+void DialViewGroup::OnInactive(void)
+{
+    DoStop();
+}
+
+void DialViewGroup::OnCovered(void)
+{
+    MainPresenterSample* mainPresenter = MainPresenterSample::GetInstance();
+    if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME)) {
+        return;
     }
 
-    void DialViewGroup::OnUncovered(void)
-    {
-        MainPresenterSample *mainPresenter = MainPresenterSample::GetInstance();
-        if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME))
-        {
-            return;
-        }
+    DoPause();
+}
 
-        DoStart();
+void DialViewGroup::OnUncovered(void)
+{
+    MainPresenterSample* mainPresenter = MainPresenterSample::GetInstance();
+    if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME)) {
+        return;
     }
 
-    void DialViewGroup::OnPause()
-    {
-        DoPause();
+    DoStart();
+}
+
+void DialViewGroup::OnPause()
+{
+    DoPause();
+}
+
+MediaVideoPlay* DialViewGroup::GetVideoPlay()
+{
+    if (video_ != nullptr) {
+        return video_->GetVideoPlay();
     }
+    return nullptr;
+}
 
-    void DialViewGroup::SetLableAnimatorState(uint8_t state)
-    {
-        if (rollingLabelList_.IsEmpty())
-        {
-            return;
-        }
+void DialViewGroup::SetLableAnimatorState(uint8_t state)
+{
+    if (rollingLabelList_.IsEmpty()) {
+        return;
+    }
 
-        ListNode<UILabel *> *node = rollingLabelList_.Begin();
-        while (node != rollingLabelList_.End())
-        {
-            if (node->data_ != nullptr)
-            {
-                UILabel *label = node->data_;
-                label->SetAnimState(state);
-            }
-            node = node->next_;
+    ListNode<UILabel*>* node = rollingLabelList_.Begin();
+    while (node != rollingLabelList_.End()) {
+        if (node->data_ != nullptr) {
+            UILabel* label = node->data_;
+            label->SetAnimState(state);
         }
+        node = node->next_;
     }
+}
 
-    void DialViewGroup::SetImgAnimatorState(uint8_t state)
-    {
-        if (imgAnimList_.IsEmpty() && seqList_.IsEmpty())
-        {
-            return;
-        }
+void DialViewGroup::SetImgAnimatorState(uint8_t state)
+{
+    if (imgAnimList_.IsEmpty()) {
+        return;
+    }
 
-        ListNode<UIImageAnimatorView *> *node = imgAnimList_.Begin();
-        while (node != imgAnimList_.End())
-        {
-            if (node->data_ != nullptr)
-            {
-                UIImageAnimatorView *imgAnim = node->data_;
-                switch (state)
-                {
+    ListNode<UIImageAnimatorView*>* node = imgAnimList_.Begin();
+    while (node != imgAnimList_.End()) {
+        if (node->data_ != nullptr) {
+            UIImageAnimatorView* imgAnim = node->data_;
+            switch (state) {
                 case Animator::PAUSE:
                     imgAnim->Pause();
                     break;
                 case Animator::START:
                     imgAnim->Resume();
                     break;
-                }
-            }
-            node = node->next_;
-        }
-
-        ListNode<DialSequenceContainer *> *it = seqList_.Begin();
-        while (it != seqList_.End())
-        {
-            if (it->data_ != nullptr)
-            {
-                switch (state)
-                {
-                case Animator::PAUSE:
-                    it->data_->Pause();
-                    break;
-                case Animator::START:
-                    it->data_->Resume();
-                    break;
-                }
-            }
-            it = it->next_;
-        }
-    }
-
-    MediaVideoPlay *DialViewGroup::GetVideoPlay()
-    {
-        if (video_ != nullptr)
-        {
-            return video_->GetVideoPlay();
-        }
-        return nullptr;
-    }
-
-    void DialViewGroup::StopDial()
-    {
-         DoStop();
-    }
-    void DialViewGroup::StartDial()
-    {
-        MainPresenterSample *mainPresenter = MainPresenterSample::GetInstance();
-        if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME))
-        {
-            return;
-        }
-    }
-    
-    // 更新数据
-    void DialViewGroup::UpdateViewsByPeriodicUpdateData()
-    {
-        ListNode<DialDataType> *node = periodicUpdateTypes_.Head();
-        while (node != periodicUpdateTypes_.End())
-        {
-            DialDataType type = node->data_;
-            auto iter = dataTypeMap_.find(static_cast<int16_t>(type));
-            if (iter != dataTypeMap_.end())
-            {
-                Views *container = iter->second;
-                for (uint16_t i = 0; i < container->Size(); ++i)
-                {
-                    ProcessData(type, (*container)[i]);
-                }
             }
-            node = node->next_;
-        }
-        if (LowPowerManager::GetInstance()->IsLiteSurfaceInRootView())
-        {
-            Invalidate();
-        }
-        // ota进行视频暂停
-        if (uapi_dev_runtime_get_transmitting_status() == 1 || uapi_dev_runtime_get_restore_factory_status() == 1)
-        {
-            // 暂停视频
-            StopDial();
-        }
-        else
-        {
-            // 获取视频
-            StartDial();
         }
+        node = node->next_;
     }
-}
\ No newline at end of file
+}
+} // namespace OHOS
index 81c7106..d17de5b 100644 (file)
@@ -43,24 +43,6 @@ DialBaseModel* ModelDialDataFactory::GetModuleByType(DialDataType& type)
     return iter->second;
 }
 
-bool ModelDialDataFactory::IsOHBindDataExist(DialOHDataType type) const
-{
-    auto it = g_bindDataConverter.find(type);
-    if (it == g_bindDataConverter.end()) {
-        return false;
-    }
-    return IsBindDataExist(it->second);
-}
-
-bool ModelDialDataFactory::IsBindDataExist(DialDataType type) const
-{
-    auto it = models_.find(static_cast<int16_t>(type));
-    if (it != models_.end() && it->second != nullptr) {
-        return true;
-    }
-    return false;
-}
-
 bool ModelDialDataFactory::RegisterDialDataListener(DialDataType type, OnDialDataUpdateListener* listener)
 {
     DialBaseModel* model = GetModuleByType(type);
index c530718..f8834ae 100644 (file)
Binary files a/code/sdk/application/wearable/nativeapp/brandy-auto-ota-cli/libuikit_fwk.a and b/code/sdk/application/wearable/nativeapp/brandy-auto-ota-cli/libuikit_fwk.a differ
index 410571e..9c513d8 100644 (file)
Binary files a/code/sdk/application/wearable/nativeapp/brandy-auto-ota-ser/libuikit_fwk.a and b/code/sdk/application/wearable/nativeapp/brandy-auto-ota-ser/libuikit_fwk.a differ
index 55d7365..b1ab9d2 100644 (file)
Binary files a/code/sdk/application/wearable/nativeapp/brandy-native-js-fd230/libuikit_fwk.a and b/code/sdk/application/wearable/nativeapp/brandy-native-js-fd230/libuikit_fwk.a differ
index 55d7365..b1ab9d2 100644 (file)
Binary files a/code/sdk/application/wearable/nativeapp/brandy-native-js/libuikit_fwk.a and b/code/sdk/application/wearable/nativeapp/brandy-native-js/libuikit_fwk.a differ
index 2c30eba..7864f09 100644 (file)
Binary files a/code/sdk/application/wearable/nativeapp/brandy-xts/libuikit_fwk.a and b/code/sdk/application/wearable/nativeapp/brandy-xts/libuikit_fwk.a differ
index 1d5e2ca..99d530e 100644 (file)
@@ -8,10 +8,10 @@
 #ifndef GRAPHIC_LITE_DIAL_BIN_PARSER_V3_H
 #define GRAPHIC_LITE_DIAL_BIN_PARSER_V3_H
 #include "DialBinParserManager.h"
-#include "DialTimePublisher.h"
+#include "DialModelTime.h"
 #include "components/ui_abstract_progress.h"
 #include "DialViewContainer.h"
-#include "DialOHDataType.h"
+#include "DialDataType.h"
 #include "DialOHSliceId.h"
 
 namespace OHOS {
@@ -47,21 +47,21 @@ private:
     bool (DialBinParserV3::*funcArray_[DIAL_BIN_PARSER_FUNC_NUM])(ContainerInterface&);
     void AddToParentWithView(ContainerInterface &parent, uint8_t displayMode, UIView *view);
     void AddToParentWithDialView(ContainerInterface &parent, uint8_t displayMode,
-        DialView *view, DialOHDataType bindData, bool isPeriodic);
+        DialView *view, DialDataType bindData, bool isPeriodic);
     struct {
         uint8_t *viewType;
         uint8_t dialViewCount;
         FILE *file;
         uint8_t curIndex;
     } curViewType_;
-    bool ParseTimeIntervals(FILE* fp, uint8_t cnt, DialTimePublisher::TimeChangeListener *listener);
+    bool ParseTimeIntervals(FILE* fp, uint8_t cnt, TimeChangeListener *listener);
     bool ParseViewType(uint8_t *viewType, uint8_t dialViewCount, FILE *file);
     bool ParseContainerSubviews(DialViewContainer *container, uint8_t num);
     bool ParseOptionsSubviews(ContainerInterface &parent);
 
     DialViewGroup* dialGroup_ = nullptr;
     std::string file_;
-    uint32_t dirId_ = 0xfef << 20; // 20: offset
+    const uint32_t dirId_ = 0xfef << 20; // 20: offset
     uint32_t imageOffset_ = 0;
     DisplayState state_ = DisplayState::NORMAL;
 }; // class DialBinParserV3
index d9bc68b..e6d52b7 100644 (file)
@@ -7,8 +7,9 @@
 
 #ifndef DIAL_DATA_BASE_H
 #define DIAL_DATA_BASE_H
+#include "DialDataType.h"
 
-enum class DialDataType {
+enum class DialOldDataType {
     DATA_TYPE_FLOAT_BASE = 0,
     DATA_TYPE_STEPS,
     DATA_TYPE_HEART_RATE,
@@ -30,17 +31,12 @@ enum class DialDataType {
     DATA_TYPE_TIME_MONTH,
     DATA_TYPE_TIME_YEAR,
 
-    DATA_TYPE_SWIVEL_GEAR_ONE = 20,
-    DATA_TYPE_SWIVEL_GEAR_TWO,
-    DATA_TYPE_SWIVEL_GEAR_THREE,
-    DATA_TYPE_SWIVEL_GEAR_FOUR,
-    DATA_TYPE_SWIVEL_GEAR_FIVE,
-    DATA_TYPE_SWIVEL_GEAR_SIX,
-
     DATA_TYPE_TEXT_BASE = 0x2000,
 
     DATA_TYPE_MULTI_FLOAT_BASE = 0x4000,
 
     DATA_TYPE_MAX = 0x6000
 };
+
+OHOS::DialDataType Convert2DataType(DialOldDataType dialData);
 #endif
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialDataType.h b/code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialDataType.h
new file mode 100644 (file)
index 0000000..8f16320
--- /dev/null
@@ -0,0 +1,184 @@
+/*
+ * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
+ * Description: DialDataType
+ * Author:
+ * Create: 2025-02-15
+ */
+
+#ifndef DIAL_DATA_TYPE_H
+#define DIAL_DATA_TYPE_H
+
+#include <unordered_map>
+
+namespace OHOS {
+enum class DialDataType : int16_t {
+    // 起始:单个浮点数据,OH标准协议部分,禁止改动,从0开始(包括0,二进制格式为:0000,xxxx,xxxx,xxxx)
+    DATA_TYPE_FLOAT_BASE = 0,
+    CLOCK = 1,
+    CLOCK_HIGH = 2,
+    CLOCK_LOW = 3,
+    CLOCK_RATIO_12H = 4,
+    CLOCK_RATIO_24H = 5,
+    MINUTE_TIME = 6,
+    MINUTE_HIGH = 7,
+    MINUTE_LOW = 8,
+    MINUTE_RATIO = 9,
+    SECOND_TIME = 10,
+    SECOND_HIGH = 11,
+    SECOND_LOW = 12,
+    SECOND_RATIO = 13,
+    AM_PM = 14,
+    HOUR_FORMAT = 16,
+    PREV_HOUR = 17,
+    NEXT_HOUR = 18,
+    CLOCK_ANGLE = 19,
+    MINUTE_ANGLE = 20,
+    SECOND_ANGLE = 21,
+    MILLISECOND_ANGLE = 22,
+    PREV_SECOND = 25,
+    NEXT_SECOND = 26,
+    PREV_2_SECONDS = 27,
+    PREV_MINUTE = 28,
+    NEXT_MINUTE = 29,
+    DUAL_TIMEZONE_CLOCK = 30,
+    DUAL_TIMEZONE_CLOCK_HIGH = 31,
+    DUAL_TIMEZONE_CLOCK_LOW = 32,
+    DUAL_TIMEZONE_CLOCK_RATIO_12H = 33,
+    DUAL_TIMEZONE_CLOCK_RATIO_24H = 34,
+    DUAL_TIMEZONE_MINUTE = 35,
+    DUAL_TIMEZONE_MINUTE_HIGH = 36,
+    DUAL_TIMEZONE_MINUTE_LOW = 37,
+    DUAL_TIMEZONE_MINUTE_RATIO = 38,
+    DUAL_TIMEZONE_AMPM = 41,
+    SUNRISE_SUNSET_IMAGE = 50,
+    SUNRISE_SUNSET_CLOCK_HIGH = 51,
+    SUNRISE_SUNSET_CLOCK_LOW = 52,
+    SUNRISE_SUNSET_MINUTE_HIGH = 53,
+    SUNRISE_SUNSET_MINUTE_LOW = 54,
+    DATE = 70,
+    DATE_HIGH = 71,
+    DATE_LOW = 72,
+    DATE_31_DAY_RATIO = 73,
+    YESTERDAY = 74,
+    YESTERDAY_DATE_HIGH = 75,
+    YESTERDAY_DATE_LOW = 76,
+    TOMORROW = 77,
+    TOMORROW_DATE_HIGH = 78,
+    TOMORROW_DATE_LOW = 79,
+    MONTH_DATA = 80,
+    MONTH = 81,
+    WEEKDAY_DATA = 83,
+    WEEKDAY_RATIO = 84,
+    CHINESE_HOUR = 86,
+    MOON_PHASE = 87,
+    PREV_MONTH = 88,
+    NEXT_MONTH = 89,
+    SOLAR_YEAR = 240,
+    YEAR_ONES = 241,
+    YEAR_TENS = 242,
+    YEAR_HUNDREDS = 243,
+    YEAR_THOUSANDS = 244,
+    LUNAR_MONTH = 90,
+    LUNAR_DATE_HIGH = 91,
+    LUNAR_DATE_LOW = 92,
+    BATTERY = 100,
+    BATTERY_ENUM = 102,
+    BATTERY_STATUS_ENUM = 103,
+    BATTERY_LEVEL = 104,
+    CHARGING_STATUS = 105,
+    STEP_COUNT = 110,
+    STEP_ONES = 111,
+    STEP_TENS = 112,
+    STEP_HUNDREDS = 113,
+    STEP_THOUSANDS = 114,
+    STEP_TENS_OF_THOUSANDS = 115,
+    STEP_GOAL_PROGRESS = 116,
+    STEP_GOAL_PROGRESS_ENUM = 117,
+    CALORIE = 120,
+    CALORIE_RATIO = 121,
+    CALORIE_GOAL_PROGRESS_ENUM = 122,
+    HEART_RATE = 130,
+    MAX_HEART_RATE = 131,
+    MIN_HEART_RATE = 132,
+    HEART_RATE_ZONE = 133,
+    HEART_RATE_RATIO = 134,
+    STRESS_LEVEL = 140,
+    STRESS_RATIO = 141,
+    STRESS_LEVEL_TYPE = 142,
+    MODERATE_HIGH_INTENSITY_TIME = 150,
+    MODERATE_HIGH_INTENSITY_TIME_RATIO = 151,
+    STAND_COUNT = 152,
+    STAND_COUNT_RATIO = 153,
+    MAX_VO2 = 160,
+    MAX_VO2_RATIO = 161,
+    SLEEP_RATIO = 166,
+    SLEEP_GOAL_PROGRESS_ENUM = 167,
+    TEMPERATURE = 170,
+    MAX_TEMPERATURE = 171,
+    MIN_TEMPERATURE = 172,
+    CURRENT_TEMPERATURE_MINUS_1 = 173,
+    CURRENT_TEMPERATURE_PLUS_1 = 174,
+    TEMPERATURE_TYPE = 175,
+    WEATHER_TYPE = 176,
+    TEMPERATURE_RATIO = 177,
+    PRESSURE = 180,
+    PRESSURE_RATIO = 181,
+    AQI = 182,
+    AQI_LEVEL = 183,
+    AQI_RATIO = 184,
+    ALTITUDE_DATA = 191,
+    ALTITUDE_UNIT = 192,
+    ALTITUDE_RATIO = 193,
+    DISTANCE_DATA = 195,
+    DISTANCE_UNIT = 196,
+    DISTANCE_GOAL_PROGRESS = 197,
+    BLE_CONNECTION_STATUS = 210,
+    BT_CONNECTION_STATUS = 211,
+    BLOOD_OXYGEN = 220,
+    SYSTOLIC_BLOOD_PRESSURE = 221,
+    DIASTOLIC_BLOOD_PRESSURE = 222,
+    DUAL_LANGUAGE_SYSTEM = 230,
+    UNREAD_SMS_MSG = 250,
+    UNREAD_WECHAT_MSG = 251,
+    // 结束:单个浮点数据,OH标准协议部分,禁止改动,到4095结束(包括4095)
+
+    // 起始:单个浮点数据,私有可定制部分,从4096开始(包括4096,二进制格式为:0001,xxxx,xxxx,xxxx)
+    SWIVEL_GEAR_POSITIVE = 8190, // private data, clockwise
+    SWIVEL_GEAR_NEGATIVE = 8191, // counterclockwise
+    // 结束:单个浮点数据,私有可定制部分,到8191结束(包括8191)
+
+    // 起始:文本数据,OH标准协议部分,禁止改动,从8192开始(包括8192,二进制格式为:0010,xxxx,xxxx,xxxx)
+    DATA_TYPE_TEXT_BASE = 8192,
+    AM_PM_TEXT = 8193,
+    SUNRISE_TEXT = 8210,
+    SUNSET_TEXT = 8211,
+    MOONRISE_TEXT = 8221,
+    MOONSET_TEXT = 8222,
+    DUAL_TIMEZONE_ABBR_TEXT = 8200,
+    DUAL_TIMEZONE_TIME_TEXT = 8201,
+    DUAL_TIMEZONE_AM_PM_TEXT = 8202,
+    MONTH_TEXT = 8230,
+    DATE_TEXT = 8231,
+    WEEKDAY_TEXT = 8232,
+    LUNAR_YEAR = 8240,
+    SLEEP_TEXT = 8250,
+    DISTANCE_TEXT = 8260,
+    TIDE_RISE_TIME_TEXT = 8270,
+    TIDE_FALL_TIME_TEXT = 8271,
+    // 结束:文本数据,OH标准协议部分,禁止改动,到12287结束(包括12287)
+
+    // 文本数据,私有可定制部分,从12288开始(包括12288,二进制格式为:0011,xxxx,xxxx,xxxx)
+    // 文本数据,私有可定制部分,到16383结束(包括16383)
+
+    // 起始:多个浮点数据,OH标准协议部分,禁止改动,从16384开始(包括16384,二进制格式为:0100,xxxx,xxxx,xxxx)
+    DATA_TYPE_MULTI_FLOAT_BASE = 16384,
+    // 结束:多个浮点数据,OH标准协议部分,禁止改动,到20479结束(包括20479)
+
+    // 起始:多个浮点数据,私有可定制部分,从20480开始(包括20480,二进制格式为:0101,xxxx,xxxx,xxxx)
+    // 结束:多个浮点数据,私有可定制部分,到24575结束(包括24575)
+
+    DATA_TYPE_MAX = 0x6000,
+}; // enum class DialDataType
+} // namespace OHOS
+
+#endif // DIAL_DATA_TYPE_H
index 5b32496..540c491 100644 (file)
@@ -7,7 +7,7 @@
 
 #include <cstdint>
 #include "DialView.h"
-#include "DialTimePublisher.h"
+#include "DialModelTime.h"
 #include "components/ui_image_view.h"
 #include "gfx_utils/graphic_math.h"
 #include "components/ui_view_group.h"
@@ -20,7 +20,7 @@ enum class ImgAlign {
     RIGHT,
 };
 
-class DialDigitalImgView : public UIImageView, public DialView, public DialTimePublisher::TimeChangeListener {
+class DialDigitalImgView : public UIImageView, public DialView, public TimeChangeListener {
 public:
     DialDigitalImgView();
     ~DialDigitalImgView() override;
index 43cd8b0..d71982f 100644 (file)
@@ -9,31 +9,30 @@
 #define DIAL_MODEL_TIME_H
 
 #include "DialBaseModel.h"
-#include "DialTimePublisher.h"
 #include "gfx_utils/list.h"
 
 namespace OHOS {
-class DialModelTime : public DialBaseModel, public DialTimePublisher {
+class TimeChangeListener;
+class DialModelTime : public DialBaseModel {
 public:
-    DialModelTime()
-    {
-        DialModelTime::SetPublisher(dynamic_cast<DialTimePublisher*>(this));
-    }
     ~DialModelTime() override
     {
         listeners_.Clear();
     }
+
     static DialModelTime* GetInstance()
     {
         static DialModelTime instance;
         return &instance;
     }
+
     bool GetDialFloatData(DialDataType& type, float& out) override;
-    void UpdateTime() override;
-    void Register(TimeChangeListener* listener) override;
-    void Unregister(TimeChangeListener* listener) override;
+    void UpdateTime();
+    void Register(TimeChangeListener* listener);
+    void Unregister(TimeChangeListener* listener);
 
 private:
+    DialModelTime() = default;
     struct tm *tblock_;
     uint16_t angleH_ = 0;
     uint16_t angleM_ = 0;
@@ -41,5 +40,23 @@ private:
     float angleMS_ = 0;
     List<TimeChangeListener*> listeners_;
 };
-}
+
+class TimeChangeListener {
+public:
+    struct TimeInterval {
+        uint8_t start;
+        uint8_t end;
+    };
+    virtual void OnTimeUpdate(const struct tm &curTime) = 0;
+    void SetTimeInervals(TimeInterval *intervals, uint8_t num);
+    bool IsInTimeInterval(const struct tm &curTime);
+    TimeChangeListener(const TimeChangeListener&) = delete;
+    TimeChangeListener& operator=(const TimeChangeListener&) = delete;
+    TimeChangeListener();
+    virtual ~TimeChangeListener();
+private:
+    TimeInterval *intervals_ = nullptr;
+    uint8_t num_ = 0;
+};
+} // namespace OHOS
 #endif
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialOHDataType.h b/code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialOHDataType.h
deleted file mode 100644 (file)
index 83f8f0f..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
- * Description: DialOHDataType
- * Author:
- * Create: 2025-02-15
- */
-
-#ifndef DIAL_OH_DATATYPE_H
-#define DIAL_OH_DATATYPE_H
-
-#include <unordered_map>
-#include "DialDataBase.h"
-
-namespace OHOS {
-enum class DialOHDataType : int16_t {
-    CLOCK = 1,
-    CLOCK_HIGH_BIT = 2,
-    CLOCK_LOW_BIT = 3,
-    CLOCK_RATIO_12 = 4,
-    CLOCK_RATIO_24 = 5,
-    MINUTES = 6,
-    MINUTES_HIGH_BIT = 7,
-    MINUTES_LOW_BIT = 8,
-    MINUTES_RATIO = 9,
-    SECONDS = 10,
-    SECONDS_HIGH_BIT = 11,
-    SECONDS_LOW_BIT = 12,
-    SECONDS_RATIO = 13,
-    AM_PM = 14,
-    AMPM_TEXT = 15,
-    HOUR_MODE = 16,
-    PREVIOUS_HOUR = 17,
-    NEXT_HOUR = 18,
-    CLOCK_ANGLE = 19,
-    MINUTE_ANGLE = 20,
-    SECONDS_ANGLE = 21,
-    MILLISECOND_ANGLE = 22,
-    PREVIOUS_SECOND = 25,
-    NEXT_SECOND = 26,
-    PREVIOUS_SECOND_PREVIOUS_SECOND = 27,
-    PREVIOUS_MINUTE = 28,
-    NEXT_MINUTE = 29,
-    DUAL_TIME_ZONE_CLOCK = 30,
-    DUAL_TIME_ZONE_CLOCK_HIGH_BIT = 31,
-    DUAL_TIME_ZONE_CLOCK_LOW_BIT = 32,
-    DUAL_TIME_ZONE_CLOCK_RATIO_12 = 33,
-    DUAL_TIME_ZONE_CLOCK_RATIO_24 = 34,
-    DUAL_TIME_ZONE_MINUTES = 35,
-    DUAL_TIME_ZONE_MINUTES_HIGH_BIT = 36,
-    DUAL_TIME_ZONE_MINUTES_LOW_BIT = 37,
-    DUAL_TIME_ZONE_MINUTES_RATIO = 38,
-    DUAL_TIME_ZONE_ABBREVIATION_TEXT = 39,
-    DUAL_TIME_ZONE_TIME_MINUTE_TEXT = 40,
-    DUAL_TIME_ZONE_AMPM = 41,
-    DUAL_TIME_ZONE_AM_PM_TEXT = 42,
-    SUNRISE_SUNSET_PICTURE_SELECTION = 50,
-    SUNRISE_SUNSET_CLOCK_HIGH_BIT = 51,
-    SUNRISE_SUNSET_CLOCK_LOW_BIT = 52,
-    SUNRISE_SUNSET_MINUTES_HIGH_BIT = 53,
-    SUNRISE_SUNSET_MINUTES_LOW_BIT = 54,
-    SUNRISE_TEXT = 55,
-    SUNSET_TEXT = 56,
-    MOONRISE_TEXT = 60,
-    MOONSET_TEXT = 61,
-    DATE = 70,
-    DATE_HIGH_BIT = 71,
-    DATE_LOW_BIT = 72,
-    DATE_OCCUPIES_31_DAYS_RATIO = 73,
-    YESTERDAY = 74,
-    YESTERDAY_DATE_HIGH_BIT = 75,
-    YESTERDAY_DATE_LOW_BIT = 76,
-    TOMORROW = 77,
-    TOMORROW_DATE_HIGH_BIT = 78,
-    TOMORROW_DATE_LOW_BIT = 79,
-    MONTH_DATA = 80,
-    MONTH = 81,
-    MONTH_TEXT = 82,
-    WEEK_DATA = 83,
-    WEEK_RATIO = 84,
-    WEEK_TEXT = 85,
-    TWELVE_DIVISIONS = 86,
-    LUNAR_PHASE = 87,
-    PREVIOUS_MONTH = 88,
-    NEXT_MONTH = 89,
-    LUNAR_MONTH = 90,
-    LUNAR_DATE_HIGH_BIT = 91,
-    LUNAR_DATE_LOW_BIT = 92,
-    CHARGE = 100,
-    CHARGE_ENUMERATION = 102,
-    CHARGE_STATUS_ENUMERATION = 103,
-    CHARGE_RATIO = 104,
-    CHARGING_STATUS = 105,
-    STEPS = 110,
-    STEPS_UNIT_DIGIT = 111,
-    STEPS_TENS_DIGIT = 112,
-    STEPS_HUNDRED_DIGIT = 113,
-    STEPS_THOUSAND_DIGIT = 114,
-    STEPS_TEN_THOUSAND_DIGIT = 115,
-    STEPS_TARGET_ACHIEVEMENT_RATE = 116,
-    STEPS_TARGET_PROGRESS_ENUMERATION = 117,
-    CALORIES = 120,
-    CALORIES_RATIO = 121,
-    CALORIES_TARGET_PROGRESS_ENUMERATION = 122,
-    HEART_RATE = 130,
-    MAXIMUM_HEART_RATE = 131,
-    MINIMUM_HEART_RATE = 132,
-    HEART_RATE_RANGE = 133,
-    HEART_RATE_RATIO = 134,
-    STRESS = 140,
-    STRESS_RATIO = 141,
-    STRESS_LEVEL_TYPE = 142,
-    MODERATE_TO_VIGOROUS_INTENSITY_TIME = 150,
-    MODERATE_TO_VIGOROUS_INTENSITY_TIME_RATIO = 151,
-    STANDING_TIMES = 152,
-    STANDING_TIMES_RATIO = 153,
-    MAXIMUM_OXYGEN_UPTAKE = 160,
-    MAXIMUM_OXYGEN_UPTAKE_RATIO = 161,
-    SLEEP_TEXT = 165,
-    SLEEP_RATIO = 166,
-    SLEEP_TARGET_ACHIEVEMENT_RATE_ENUMERATION = 167,
-    TEMPERATURE = 170,
-    HIGHEST_TEMPERATURE = 171,
-    LOWEST_TEMPERATURE = 172,
-    CURRENT_TEMPERATURE_MINUS_ONE = 173,
-    CURRENT_TEMPERATURE_PLUS_ONE = 174,
-    TEMPERATURE_TYPE = 175,
-    WEATHER_TYPE = 176,
-    TEMPERATURE_RATIO = 177,
-    ATMOSPHERIC_PRESSURE = 180,
-    ATMOSPHERIC_PRESSURE_RATIO = 181,
-    AIR_QUALITY_INDEX = 182,
-    AIR_QUALITY_INDEX_LEVEL = 183,
-    AIR_QUALITY_INDEX_RATIO = 184,
-    ELEVATION = 190,
-    ELEVATION_HEIGHT_DATA = 191,
-    ELEVATION_HEIGHT_UNIT = 192,
-    HEIGHT_RATIO = 193,
-    DISTANCE_TEXT = 194,
-    DISTANCE_DATA = 195,
-    DISTANCE_UNIT = 196,
-    DISTANCE_TARGET_PROGRESS = 197,
-    HIGH_TIDE_TIME_TEXT = 200,
-    LOW_TIDE_TIME_TEXT = 201,
-    BLE_CONNECTION_STATUS = 210,
-    BT_CONNECTION_STATUS = 211,
-    BLOOD_OXYGEN = 220,
-    SYSTOLIC_BLOOD_PRESSURE = 221,
-    DIASTOLIC_BLOOD_PRESSURE = 222,
-    DUAL_LANGUAGE_SYSTEM = 230,
-    SWIVEL_GEAR_POSITIVE = (1 << 12) + 20, // private data, clockwise
-    SWIVEL_GEAR_NEGATIVE, // counterclockwise
-}; // enum class DialOHDataType
-
-struct HashOHDataType {
-    size_t operator()(DialOHDataType data) const
-    {
-        return std::hash<int16_t>()(static_cast<int16_t>(data));
-    }
-};
-
-const std::unordered_map<DialOHDataType, DialDataType, HashOHDataType> g_bindDataConverter = {
-    {DialOHDataType::CLOCK, DialDataType::DATA_TYPE_TIME_HOUR},
-    {DialOHDataType::MINUTES, DialDataType::DATA_TYPE_TIME_MINUTE},
-    {DialOHDataType::SECONDS, DialDataType::DATA_TYPE_TIME_SECOND},
-    {DialOHDataType::MILLISECOND_ANGLE, DialDataType::DATA_TYPE_CLOCK_ANGLE_MS},
-    {DialOHDataType::DATE, DialDataType::DATA_TYPE_TIME_DATE},
-    {DialOHDataType::WEEK_DATA, DialDataType::DATA_TYPE_TIME_WEEK},
-    {DialOHDataType::CHARGE, DialDataType::DATA_TYPE_POWER},
-    {DialOHDataType::STEPS, DialDataType::DATA_TYPE_STEPS},
-    {DialOHDataType::CALORIES, DialDataType::DATA_TYPE_CALORIE},
-    {DialOHDataType::HEART_RATE, DialDataType::DATA_TYPE_HEART_RATE},
-    {DialOHDataType::STRESS, DialDataType::DATA_TYPE_PRESSURE},
-    {DialOHDataType::TEMPERATURE, DialDataType::DATA_TYPE_TEMPERATURE},
-    {DialOHDataType::ELEVATION, DialDataType::DATA_TYPE_AILTITUDE},
-    {DialOHDataType::AIR_QUALITY_INDEX, DialDataType::DATA_TYPE_PM25},
-    {DialOHDataType::CLOCK_ANGLE, DialDataType::DATA_TYPE_CLOCK_ANGLE_H},
-    {DialOHDataType::MINUTE_ANGLE, DialDataType::DATA_TYPE_CLOCK_ANGLE_M},
-    {DialOHDataType::SECONDS_ANGLE, DialDataType::DATA_TYPE_CLOCK_ANGLE_S},
-    {DialOHDataType::MONTH, DialDataType::DATA_TYPE_TIME_MONTH},
-    {DialOHDataType::SWIVEL_GEAR_POSITIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_ONE},
-    {DialOHDataType::SWIVEL_GEAR_POSITIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_FOUR},
-    {DialOHDataType::SWIVEL_GEAR_POSITIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_SIX},
-    {DialOHDataType::SWIVEL_GEAR_NEGATIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_TWO},
-    {DialOHDataType::SWIVEL_GEAR_NEGATIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_THREE},
-    {DialOHDataType::SWIVEL_GEAR_NEGATIVE, DialDataType::DATA_TYPE_SWIVEL_GEAR_FIVE},
-};
-} // namespace OHOS
-
-#endif // DIAL_OH_DATATYPE_H
index dd08a9d..52e4298 100644 (file)
@@ -7,7 +7,7 @@
 
 #include <cstdint>
 #include "DialView.h"
-#include "DialTimePublisher.h"
+#include "DialModelTime.h"
 #include "components/ui_image_view.h"
 #include "font/font_global_manager.h"
 
@@ -16,7 +16,7 @@ namespace OHOS {
 class DialOptionImgView : public UIImageView,
                           public DialView,
                           public FontGlobalManager::LangChangeListener,
-                          public DialTimePublisher::TimeChangeListener {
+                          public TimeChangeListener {
 public:
     DialOptionImgView();
     ~DialOptionImgView() override;
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialSequenceContainer.h b/code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialSequenceContainer.h
deleted file mode 100644 (file)
index f692d1f..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
- * Description: DialSequenceContainer
- * Author:
- * Create: 2025-03-05
- */
-
-#ifndef DIAL_SEQUENCE_CONTAINER_H
-#define DIAL_SEQUENCE_CONTAINER_H
-#include "components/ui_view_group.h"
-#include "components/ui_image_animator.h"
-
-namespace OHOS {
-class DialSequenceContainer : public UIViewGroup, public UIImageAnimatorView::AnimatorStopListener {
-public:
-    DialSequenceContainer();
-    ~DialSequenceContainer() override;
-    DialSequenceContainer(const DialSequenceContainer&) = delete;
-    DialSequenceContainer& operator=(const DialSequenceContainer&) = delete;
-    bool AddSequenceRes(uint16_t interval, bool repeat, const ImageAnimatorInfo *imgSrc, uint8_t imgNum);
-    bool OnClickEvent(const ClickEvent& event) override;
-    void Start();
-    void Stop();
-    void Pause();
-    void Resume();
-    void OnAnimatorStop(UIView& view) override;
-
-private:
-    void UpdateCurrentView();
-    UIImageAnimatorView *repeatView_ = nullptr;
-    UIImageAnimatorView *nonCycleView_[3]; // 3: max seqImg num
-    // if curView_ is not null, curView_ must be added into parent.
-    UIImageAnimatorView *curView_ = nullptr;
-    uint8_t nonCycleNum_ = 0;
-    uint8_t loop_ = 0;
-    bool isClick_ = false;
-};  // class DialSequenceContainer
-} // namespace OHOS
-#endif // DIAL_SEQUENCE_CONTAINER_H
\ No newline at end of file
index 4800b71..3f5b92f 100644 (file)
@@ -8,17 +8,54 @@
 #include "components/ui_image_animator.h"
 
 namespace OHOS {
+struct SequenceInfo : public HeapBase {
+    long imgOffset = 0;
+    long resPos = 0;
+    uint8_t imgNum = 0;
+    FILE *fp = nullptr;
+    std::string fileName;
+    uint16_t interval = 0;
+    bool repeat = false;
+};
 
-class DialSequenceImgView : public UIImageAnimatorView {
+class DialSequenceImgView : public UIImageAnimatorView, public UIImageAnimatorView::AnimatorStopListener {
 public:
     DialSequenceImgView();
     ~DialSequenceImgView() override;
 
-    bool SetSequenceRes(const ImageAnimatorInfo* imgSrc, uint8_t imgNum);
+    bool SetSequenceRes(const ImageAnimatorInfo *imgSrc, uint8_t imgNum);
+    bool SetPreviewImg();
+    bool LoadCurSeqImgs();
+    bool AddSequenceRes(const SequenceInfo &para);
+    bool OnClickEvent(const ClickEvent &event) override;
+    void OnAnimatorStop(UIView &view) override;
 
 private:
-    ImageAnimatorInfo* imgSrc_ = nullptr;
-    uint8_t imgNum_ = 0;
+    ImageAnimatorInfo *LoadImgs(const SequenceInfo &para, uint8_t num) const;
+    void UpdateCurrentSeq();
+    struct AnimatorInfo : public HeapBase {
+        SequenceInfo info;
+        ImageAnimatorInfo *imgs = nullptr;
+        uint8_t num = 0;
+        ~AnimatorInfo()
+        {
+            if (imgs != nullptr) {
+                UIFree(imgs);
+                imgs = nullptr;
+                num = 0;
+            }
+        }
+    };
+    void SetAnimatorInfo(AnimatorInfo *info, uint8_t num);
+    static constexpr uint8_t SEQ_IMG_NUM = 3;
+    AnimatorInfo *repeatSeq_ = nullptr;
+    AnimatorInfo *nonCycleSeq_[SEQ_IMG_NUM];
+    AnimatorInfo *curSeq_ = nullptr;
+    uint8_t nonCycleNum_ = 0;
+    uint8_t loop_ = 0;
+    bool isClick_ = false;
+    uint8_t viewNum_ = 0;
+    bool isAllImgLoaded_ = false;
 };
-}
+}  // namespace OHOS
 #endif
index 733c5ed..df8f281 100644 (file)
@@ -7,12 +7,12 @@
 
 #include "components/ui_image_view.h"
 #include "font/font_global_manager.h"
-#include "DialTimePublisher.h"
+#include "DialModelTime.h"
 
 namespace OHOS {
 class DialStaticImgView : public UIImageView,
                           public FontGlobalManager::LangChangeListener,
-                          public DialTimePublisher::TimeChangeListener {
+                          public TimeChangeListener {
 public:
     DialStaticImgView();
     ~DialStaticImgView() override;
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialTimePublisher.h b/code/sdk/application/wearable/nativeapp/nativeui/main/include/dial/DialTimePublisher.h
deleted file mode 100644 (file)
index fcdb80c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
- * Description: DialTimePublisher
- * Author:
- * Create: 2025-03-04
- */
-
-#ifndef DIAL_TIME_PUBLISHER_H
-#define DIAL_TIME_PUBLISHER_H
-#include <ctime>
-#include <cstdint>
-
-namespace OHOS {
-class DialTimePublisher {
-public:
-    struct TimeInterval {
-        uint8_t start;
-        uint8_t end;
-    };
-    class TimeChangeListener {
-    public:
-        virtual void OnTimeUpdate(const struct tm &curTime) = 0;
-        void SetTimeInervals(TimeInterval *intervals, uint8_t num);
-        bool IsInTimeInterval(const struct tm &curTime);
-        TimeChangeListener(const TimeChangeListener&) = delete;
-        TimeChangeListener& operator=(const TimeChangeListener&) = delete;
-        TimeChangeListener();
-        virtual ~TimeChangeListener();
-    private:
-        TimeInterval *intervals_ = nullptr;
-        uint8_t num_ = 0;
-    };
-
-    virtual void Register(TimeChangeListener *listener) = 0;
-    virtual void Unregister(TimeChangeListener *listener) = 0;
-    virtual void UpdateTime() = 0;
-    static void SetPublisher(DialTimePublisher *publisher);
-    static DialTimePublisher *GetPublisher();
-    virtual ~DialTimePublisher() {}
-
-private:
-    static DialTimePublisher *publisher_;
-}; // class DialTimePublisher
-} // namespace OHOS
-#endif // DIAL_TIME_PUBLISHER_H
\ No newline at end of file
index 300f7a0..3155d76 100644 (file)
@@ -7,6 +7,7 @@
 
 #include <cstdint>
 #include <string>
+#include "DialDataType.h"
 
 namespace OHOS {
 
@@ -18,6 +19,18 @@ public:
     virtual void HandleFloatData(float data) {}
     virtual void HandleFloatData(const float* data, uint16_t num) {}
     virtual void HandleTextData(const std::string* data, uint16_t num) {}
+    virtual DialDataType GetDataType()
+    {
+        return type_;
+    }
+
+    virtual void SetDataType(DialDataType type)
+    {
+        type_ = type;
+    }
+
+private:
+    DialDataType type_ = DialDataType::DATA_TYPE_MAX;
 };
 }
 #endif
index 8c1ed74..a307270 100644 (file)
@@ -6,6 +6,7 @@
 #define DIAL_VIEW_GROUP_H
 
 #include <unordered_map>
+#include <memory>
 #include "DialDataBase.h"
 #include "components/ui_view_group.h"
 #include "components/ui_image_animator.h"
@@ -19,7 +20,6 @@
 #include "DialVideoView.h"
 #include "DialBinTypesV2.h"
 #include "DialViewContainer.h"
-#include "DialSequenceContainer.h"
 
 namespace OHOS {
 class DialViewGroup : public UICardPage, public OnDialDataUpdateListener, public ContainerInterface {
@@ -174,7 +174,8 @@ private:
     void SetImgAnimatorState(uint8_t state);
     List<UILabel*> rollingLabelList_;
     List<UIImageAnimatorView*> imgAnimList_;
-    List<DialSequenceContainer*> seqList_;
+    bool isSeqImgLoaded_ = false;
+    std::shared_ptr<bool> isExists_;
 };
 }
 #endif
index 30c1d1c..33bedbe 100644 (file)
@@ -11,7 +11,6 @@
 #include <unordered_map>
 #include "DialBaseModel.h"
 #include "DialDataBase.h"
-#include "DialOHDataType.h"
 #include "ModelDialDataFactory.h"
 
 namespace OHOS {
@@ -31,8 +30,6 @@ public:
         models_[static_cast<int16_t>(type)] = model;
     }
 
-    bool IsOHBindDataExist(DialOHDataType type) const;
-    bool IsBindDataExist(DialDataType type) const;
     bool RegisterDialDataListener(DialDataType type, OnDialDataUpdateListener* listener);
     bool UnRegisterDialDataListener(DialDataType type);
     bool GetDialTextData(DialDataType& type, std::string*& out, int16_t& strNum);
index 5a0f085..ca40fa4 100644 (file)
@@ -178,7 +178,7 @@ void MainPresenterSample::SetPage(int8_t id, bool loadAdjacent)
 
 void MainPresenterSample::SetTaskPeroid(CardId cardId)
 {
-    SetLastRun(0);
+    SetLastRun(0); // refresh entering card in time
     if (cardId == COMPASS) {
         SetPeriod(DEFAULT_TASK_PERIOD);
     } else if (cardId == WATCH_FACE) {
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialDataBase.cpp b/code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialDataBase.cpp
new file mode 100644 (file)
index 0000000..bda2cf9
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
+ * Description: DialDataBase
+ * Author:
+ * Create: 2025-04-08
+ */
+
+#include <unordered_map>
+#include "dial/DialDataBase.h"
+
+namespace {
+struct DataTypeHash {
+    size_t operator()(const DialOldDataType &data) const
+    {
+        return std::hash<int16_t>{}(static_cast<int16_t>(data));
+    }
+};
+
+static std::unordered_map<DialOldDataType, OHOS::DialDataType, DataTypeHash> g_data2std = {
+    {DialOldDataType::DATA_TYPE_STEPS, OHOS::DialDataType::STEP_COUNT},
+    {DialOldDataType::DATA_TYPE_HEART_RATE, OHOS::DialDataType::HEART_RATE},
+    {DialOldDataType::DATA_TYPE_POWER, OHOS::DialDataType::BATTERY},
+    {DialOldDataType::DATA_TYPE_CLOCK_ANGLE_H, OHOS::DialDataType::CLOCK_ANGLE},
+    {DialOldDataType::DATA_TYPE_CLOCK_ANGLE_M, OHOS::DialDataType::MINUTE_ANGLE},
+    {DialOldDataType::DATA_TYPE_CLOCK_ANGLE_S, OHOS::DialDataType::SECOND_ANGLE},
+    {DialOldDataType::DATA_TYPE_CLOCK_ANGLE_MS, OHOS::DialDataType::MILLISECOND_ANGLE},
+    {DialOldDataType::DATA_TYPE_TIME_SECOND, OHOS::DialDataType::SECOND_TIME},
+    {DialOldDataType::DATA_TYPE_TIME_MINUTE, OHOS::DialDataType::MINUTE_TIME},
+    {DialOldDataType::DATA_TYPE_TIME_HOUR, OHOS::DialDataType::CLOCK},
+    {DialOldDataType::DATA_TYPE_TIME_DATE, OHOS::DialDataType::DATE},
+    {DialOldDataType::DATA_TYPE_TIME_WEEK, OHOS::DialDataType::WEEKDAY_DATA},
+    {DialOldDataType::DATA_TYPE_TIME_MONTH, OHOS::DialDataType::MONTH},
+    {DialOldDataType::DATA_TYPE_TIME_YEAR, OHOS::DialDataType::SOLAR_YEAR},
+};
+}
+
+ OHOS::DialDataType Convert2DataType(DialOldDataType dialData)
+{
+    if (g_data2std.find(dialData) != g_data2std.end()) {
+        return g_data2std[dialData];
+    }
+    return OHOS::DialDataType::DATA_TYPE_MAX;
+}
\ No newline at end of file
index f4a337e..ff82732 100644 (file)
@@ -8,7 +8,7 @@
 #include "RegisterDialModel.h"
 #include "DialModelHeartRate.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_HEART_RATE, OHOS::DialModelHeartRate::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::HEART_RATE, OHOS::DialModelHeartRate::GetInstance());
 
 namespace OHOS {
 bool DialModelHeartRate::GetDialFloatData(DialDataType& type, float& out)
@@ -22,7 +22,7 @@ void DialModelHeartRate::UpdateHeartRate(int16_t heartRate)
 {
     heartRate_ = static_cast<float>(heartRate);
     if (onChangeListener_ != nullptr) {
-        onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_HEART_RATE, heartRate_);
+        onChangeListener_->OnDialFloatDataUpdate(DialDataType::HEART_RATE, heartRate_);
     }
 }
 }
index e0e1877..b6a2c5a 100644 (file)
@@ -8,7 +8,7 @@
 #include "RegisterDialModel.h"
 #include "DialModelPower.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_POWER, OHOS::DialModelPower::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::BATTERY, OHOS::DialModelPower::GetInstance());
 
 namespace OHOS {
 bool DialModelPower::GetDialFloatData(DialDataType& type, float& out)
index 0a9e7ff..a1ad2ed 100644 (file)
@@ -8,7 +8,7 @@
 #include "RegisterDialModel.h"
 #include "DialModelSteps.h"
 
-REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_STEPS, OHOS::DialModelSteps::GetInstance());
+REGIST_DIAL_MODULE(OHOS::DialDataType::STEP_COUNT, OHOS::DialModelSteps::GetInstance());
 
 namespace OHOS {
 bool DialModelSteps::GetDialFloatData(DialDataType& type, float& out)
@@ -22,7 +22,7 @@ void DialModelSteps::UpdateSteps(int16_t steps)
 {
     steps_ = static_cast<float>(steps);
     if (onChangeListener_ != nullptr) {
-        onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_STEPS, steps_);
+        onChangeListener_->OnDialFloatDataUpdate(DialDataType::STEP_COUNT, steps_);
     }
 }
 }
index aa17d85..b626e02 100644 (file)
@@ -5,6 +5,7 @@
  * Create: 2023-12
  */
 
+#include <cmath>
 #include "sys/time.h"
 #include "RegisterDialModel.h"
 #include "DialModelTime.h"
 #define REGIST_DIAL_MODULE_WEEK(type, func) static OHOS::RegisterDialModel(REGIST_WEEK)(type, func)
 #define REGIST_DIAL_MODULE_MOUNTH(type, func) static OHOS::RegisterDialModel(REGIST_MOUNTH)(type, func)
 #define REGIST_DIAL_MODULE_YEAR(type, func) static OHOS::RegisterDialModel(REGIST_YEAR)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_ONE(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_ONE)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_TWO(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_TWO)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_THREE(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_THREE)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_FOUR(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_FOUR)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_FIVE(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_FIVE)(type, func)
-#define REGIST_DIAL_MODULE_GEAR_SIX(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_SIX)(type, func)
-
-REGIST_DIAL_MODULE_ANGLE_H(DialDataType::DATA_TYPE_CLOCK_ANGLE_H, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_ANGLE_M(DialDataType::DATA_TYPE_CLOCK_ANGLE_M, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_ANGLE_S(DialDataType::DATA_TYPE_CLOCK_ANGLE_S, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_ANGLE_MS(DialDataType::DATA_TYPE_CLOCK_ANGLE_MS, OHOS::DialModelTime::GetInstance());
-
-REGIST_DIAL_MODULE_SECOND(DialDataType::DATA_TYPE_TIME_SECOND, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_MINUTE(DialDataType::DATA_TYPE_TIME_MINUTE, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_HOUR(DialDataType::DATA_TYPE_TIME_HOUR, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_DATE(DialDataType::DATA_TYPE_TIME_DATE, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_WEEK(DialDataType::DATA_TYPE_TIME_WEEK, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_MOUNTH(DialDataType::DATA_TYPE_TIME_MONTH, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_YEAR(DialDataType::DATA_TYPE_TIME_YEAR, OHOS::DialModelTime::GetInstance());
-
-REGIST_DIAL_MODULE_GEAR_ONE(DialDataType::DATA_TYPE_SWIVEL_GEAR_ONE, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_GEAR_TWO(DialDataType::DATA_TYPE_SWIVEL_GEAR_TWO, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_GEAR_THREE(DialDataType::DATA_TYPE_SWIVEL_GEAR_THREE, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_GEAR_FOUR(DialDataType::DATA_TYPE_SWIVEL_GEAR_FOUR, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_GEAR_FIVE(DialDataType::DATA_TYPE_SWIVEL_GEAR_FIVE, OHOS::DialModelTime::GetInstance());
-REGIST_DIAL_MODULE_GEAR_SIX(DialDataType::DATA_TYPE_SWIVEL_GEAR_SIX, OHOS::DialModelTime::GetInstance());
+#define REGIST_DIAL_MODULE_GEAR_POSITIVE(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_POSITIVE)(type, func)
+#define REGIST_DIAL_MODULE_GEAR_NEGATIVE(type, func) static OHOS::RegisterDialModel(REGIST_GEAR_NEGATIVE)(type, func)
+
+REGIST_DIAL_MODULE_ANGLE_H(OHOS::DialDataType::CLOCK_ANGLE, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_ANGLE_M(OHOS::DialDataType::MINUTE_ANGLE, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_ANGLE_S(OHOS::DialDataType::SECOND_ANGLE, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_ANGLE_MS(OHOS::DialDataType::MILLISECOND_ANGLE, OHOS::DialModelTime::GetInstance());
+
+REGIST_DIAL_MODULE_SECOND(OHOS::DialDataType::SECOND_TIME, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_MINUTE(OHOS::DialDataType::MINUTE_TIME, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_HOUR(OHOS::DialDataType::CLOCK, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_DATE(OHOS::DialDataType::DATE, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_WEEK(OHOS::DialDataType::WEEKDAY_DATA, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_MOUNTH(OHOS::DialDataType::MONTH, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_YEAR(OHOS::DialDataType::SOLAR_YEAR, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_GEAR_POSITIVE(OHOS::DialDataType::SWIVEL_GEAR_POSITIVE, OHOS::DialModelTime::GetInstance());
+REGIST_DIAL_MODULE_GEAR_NEGATIVE(OHOS::DialDataType::SWIVEL_GEAR_NEGATIVE, OHOS::DialModelTime::GetInstance());
 
 namespace OHOS {
 static constexpr int16_t S_MS_US_TRANS = 1000;      // 1000: seconds, milliseconds, microsecond transform value
@@ -85,14 +77,23 @@ void DialModelTime::UpdateTime()
 {
     struct timeval tv;
     gettimeofday(&tv, nullptr);
+#ifdef _WIN32
+    time_t time = tv.tv_sec;
+    if (tblock_ == nullptr) {
+        tblock_ = new struct tm();
+        memset_s(tblock_, sizeof(struct tm), 0, sizeof(struct tm));
+    }
+    localtime_s(tblock_, &time);
+#else
     tblock_ = localtime(&tv.tv_sec);
+#endif
     int realMS = tblock_->tm_sec * S_MS_US_TRANS + tv.tv_usec / S_MS_US_TRANS;
 
     angleH_ = ConvertHandValueToAngle(tblock_->tm_hour, HALF_DAY_IN_HOUR, tblock_->tm_min, ONE_HOUR_IN_MINUTE);
     angleM_ = ConvertHandValueToAngle(tblock_->tm_min, ONE_HOUR_IN_MINUTE, tblock_->tm_sec, ONE_MINUTE_IN_SECOND);
     angleS_ = ConvertHandValueToAngle(tblock_->tm_sec, ONE_MINUTE_IN_SECOND, 0, 1);
     angleMS_ = ConvertHandSecondValueToAngle(realMS, S_MS_US_TRANS * ONE_MINUTE_IN_SECOND);
-    
+
     if (tblock_ == nullptr) {
         return;
     }
@@ -140,53 +141,49 @@ bool DialModelTime::GetDialFloatData(DialDataType& type, float& out)
     }
 
     switch (type) {
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_H:
+        case DialDataType::CLOCK_ANGLE:
             out = static_cast<float>(angleH_);
             break;
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_M:
+        case DialDataType::MINUTE_ANGLE:
             out = static_cast<float>(angleM_);
             break;
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_S:
+        case DialDataType::SECOND_ANGLE:
             out = static_cast<float>(angleS_);
             break;
-        case DialDataType::DATA_TYPE_CLOCK_ANGLE_MS:
+        case DialDataType::MILLISECOND_ANGLE:
             out = static_cast<float>(angleMS_);
             break;
-        case DialDataType::DATA_TYPE_TIME_YEAR:
-            out = static_cast<float>(tblock_->tm_year);
+        case DialDataType::SOLAR_YEAR:
+            out = static_cast<float>(tblock_->tm_year + 1900); // 1900: since 1900
             break;
-        case DialDataType::DATA_TYPE_TIME_MONTH:
+        case DialDataType::MONTH:
             out = static_cast<float>(tblock_->tm_mon);
             break;
-        case DialDataType::DATA_TYPE_TIME_WEEK:
+        case DialDataType::WEEKDAY_DATA:
             out = static_cast<float>(tblock_->tm_wday);
             break;
-        case DialDataType::DATA_TYPE_TIME_DATE:
+        case DialDataType::DATE:
             out = static_cast<float>(tblock_->tm_mday);
             break;
-        case DialDataType::DATA_TYPE_TIME_HOUR:
+        case DialDataType::CLOCK:
             out = static_cast<float>(tblock_->tm_hour);
             break;
-        case DialDataType::DATA_TYPE_TIME_MINUTE:
+        case DialDataType::MINUTE_TIME:
             out = static_cast<float>(tblock_->tm_min);
             break;
-        case DialDataType::DATA_TYPE_TIME_SECOND:
+        case DialDataType::SECOND_TIME:
             out = static_cast<float>(tblock_->tm_sec);
             break;
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_TWO:
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_THREE:
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_FIVE: {
+        case DialDataType::SWIVEL_GEAR_POSITIVE: {
             float coeff = 6.0f;  // 6.0: coeff
             float accleratedAngle = angleMS_ * coeff - floor(angleMS_ * coeff / CIRCLE_IN_DEGREE) * CIRCLE_IN_DEGREE;
-            out = static_cast<float>(accleratedAngle * -1.0 + CIRCLE_IN_DEGREE);
+            out = static_cast<float>(accleratedAngle);
             break;
         }
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_ONE:
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_FOUR:
-        case DialDataType::DATA_TYPE_SWIVEL_GEAR_SIX: {
+        case DialDataType::SWIVEL_GEAR_NEGATIVE: {
             float coeff = 6.0f;  // 6.0: coeff
             float accleratedAngle = angleMS_ * coeff - floor(angleMS_ * coeff / CIRCLE_IN_DEGREE) * CIRCLE_IN_DEGREE;
-            out = static_cast<float>(accleratedAngle);
+            out = static_cast<float>(accleratedAngle * -1.0 + CIRCLE_IN_DEGREE);
             break;
         }
         default:
@@ -194,4 +191,52 @@ bool DialModelTime::GetDialFloatData(DialDataType& type, float& out)
     }
     return true;
 }
+
+void TimeChangeListener::SetTimeInervals(TimeInterval *intervals, uint8_t num)
+{
+    if (intervals == nullptr || num == 0) {
+        return;
+    }
+    if (intervals_ != nullptr) {
+        UIFree(intervals_);
+        intervals_ = nullptr;
+    }
+    num_ = 0;
+
+    intervals_ = static_cast<TimeInterval*>(UIMalloc(sizeof(TimeInterval) * num));
+    if (intervals_ == nullptr) {
+        GRAPHIC_LOGE("failed to malloc!");
+        return;
+    }
+    num_ = num;
+    memcpy_s(intervals_, sizeof(TimeInterval) * num, intervals, sizeof(TimeInterval) * num);
+}
+
+bool TimeChangeListener::IsInTimeInterval(const struct tm &curTime)
+{
+    if (num_ == 0) { // 0-24
+        return true;
+    }
+    for (uint8_t i = 0; i < num_; ++i) {
+        if (intervals_[i].start <= curTime.tm_hour && intervals_[i].end > curTime.tm_hour) {
+            return true;
+        }
+    }
+    return false;
+}
+
+TimeChangeListener::TimeChangeListener()
+{
+    DialModelTime::GetInstance()->Register(this);
+}
+
+TimeChangeListener::~TimeChangeListener()
+{
+    if (intervals_ != nullptr) {
+        UIFree(intervals_);
+        intervals_ = nullptr;
+    }
+    num_ = 0;
+    DialModelTime::GetInstance()->Unregister(this);
+}
 }
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialSequenceContainer.cpp b/code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialSequenceContainer.cpp
deleted file mode 100644 (file)
index 4024f46..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
- * Description: DialSequenceContainer
- * Author:
- * Create: 2025-03-05
- */
-
-#include "DialSequenceContainer.h"
-
-namespace OHOS {
-DialSequenceContainer::DialSequenceContainer()
-{
-    SetTouchable(true);
-    SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
-    memset_s(nonCycleView_, sizeof(nonCycleView_), 0, sizeof(nonCycleView_));
-}
-
-DialSequenceContainer::~DialSequenceContainer()
-{
-    if (repeatView_ != nullptr) {
-        delete repeatView_;
-        repeatView_ = nullptr;
-    }
-
-    for (uint8_t i = 0; i < nonCycleNum_; ++i) {
-        delete nonCycleView_[i];
-        nonCycleView_[i] = nullptr;
-    }
-    nonCycleNum_ = 0;
-    curView_ = nullptr;
-}
-
-bool DialSequenceContainer::AddSequenceRes(uint16_t interval, bool repeat,
-    const ImageAnimatorInfo *imgSrc, uint8_t imgNum)
-{
-    if (imgSrc == nullptr || imgNum == 0) {
-        return false;
-    }
-
-    // add animator images to view
-    if (repeat) {
-        if (repeatView_ != nullptr) {
-            GRAPHIC_LOGE("the repeat seq view has existed!");
-            return false;
-        }
-        repeatView_ = new UIImageAnimatorView;
-        repeatView_->SetImageAnimatorSrc(imgSrc, imgNum, interval);
-        repeatView_->SetRepeat(false);
-    } else {
-        if (nonCycleNum_ >= sizeof(nonCycleView_) / sizeof(nonCycleView_[0])) {
-            GRAPHIC_LOGE("non cycle seq views have been exceedeed!");
-            return false;
-        }
-        nonCycleView_[nonCycleNum_] = new UIImageAnimatorView;
-        nonCycleView_[nonCycleNum_]->SetImageAnimatorSrc(imgSrc, imgNum, interval);
-        nonCycleView_[nonCycleNum_]->SetRepeat(false);
-        ++nonCycleNum_;
-    }
-
-    // update rect area
-    Rect rect(GetRelativeRect());
-    for (uint8_t i = 0; i < imgNum; ++i) {
-        rect.JoinRect(rect,
-            Rect(rect.GetX(),
-                rect.GetY(),
-                rect.GetX() + imgSrc[i].width - 1,
-                rect.GetY() + imgSrc[i].height - 1));
-    }
-    rect.JoinRect(rect, GetRelativeRect());
-    SetPosition(rect.GetX(), rect.GetY());
-    SetWidth(rect.GetWidth());
-    SetHeight(rect.GetHeight());
-    Invalidate();
-    
-    return true;
-}
-
-bool DialSequenceContainer::OnClickEvent(const ClickEvent& event)
-{
-    if (curView_ == nullptr) {
-        return false;
-    }
-    uint8_t curState = curView_->GetState();
-    switch (curState) {
-        case Animator::STOP: {
-            if (curView_ == repeatView_) {
-                isClick_ = true;
-            } else {
-                UpdateCurrentView();
-                Start();
-            }
-            break;
-        }
-        case Animator::PAUSE: {
-            return false;
-        }
-        case Animator::RUNNING:
-        case Animator::START: {
-            if (curView_ == repeatView_) {
-                isClick_ = true;
-            }
-            break;
-        }
-        default: {
-            GRAPHIC_LOGE("error state");
-        }
-    }
-    
-    return UIViewGroup::OnClickEvent(event);
-}
-
-void DialSequenceContainer::Start()
-{
-    if (curView_ != nullptr) {
-        curView_->Start();
-        return;
-    }
-
-    UpdateCurrentView();
-    if (curView_ == nullptr) {
-        return;
-    }
-    curView_->Start();
-}
-
-void DialSequenceContainer::Stop()
-{
-    if (curView_ != nullptr) {
-        curView_->Stop();
-        return;
-    }
-
-    UpdateCurrentView();
-    if (curView_ == nullptr) {
-        return;
-    }
-    curView_->Stop();
-}
-
-void DialSequenceContainer::Pause()
-{
-    if (curView_ != nullptr) {
-        curView_->Pause();
-        return;
-    }
-
-    UpdateCurrentView();
-    if (curView_ == nullptr) {
-        return;
-    }
-    curView_->Pause();
-}
-
-void DialSequenceContainer::Resume()
-{
-    if (curView_ != nullptr) {
-        curView_->Resume();
-        return;
-    }
-
-    UpdateCurrentView();
-    if (curView_ == nullptr) {
-        return;
-    }
-    curView_->Resume();
-}
-
-void DialSequenceContainer::OnAnimatorStop(UIView& view)
-{
-    bool isClick = isClick_;
-    isClick_ = false;
-    bool isRepeat = (curView_ == repeatView_);
-    if (isRepeat && isClick) {
-        UpdateCurrentView();
-        Start();
-    } else if (isRepeat && !isClick) {
-        Start();
-    } else {
-        if (repeatView_ != nullptr) {
-            UpdateCurrentView();
-            Start();
-        }
-    }
-}
-
-void DialSequenceContainer::UpdateCurrentView()
-{
-    if (curView_ != nullptr) {
-        if (repeatView_ != nullptr && nonCycleNum_ == 0) {
-            return;
-        } else if (repeatView_ == nullptr && nonCycleNum_ != 0) {
-            Remove(curView_);
-            curView_ = nonCycleView_[loop_];
-            loop_ = (loop_ + 1) % nonCycleNum_;
-            curView_->SetAnimatorStopListener(this);
-            Add(curView_);
-            Invalidate();
-            return;
-        }
-
-        // both repeat and noncycle exist
-        Remove(curView_);
-        if (curView_ == repeatView_) {
-            curView_ = nonCycleView_[loop_];
-            loop_ = (loop_ + 1) % nonCycleNum_;
-        } else {
-            curView_ = repeatView_;
-        }
-        curView_->SetAnimatorStopListener(this);
-        Add(curView_);
-        Invalidate();
-        return;
-    }
-
-    if (repeatView_ != nullptr) {
-        curView_ = repeatView_;
-    } else if (nonCycleNum_ != 0) {
-        curView_ = nonCycleView_[loop_];
-        loop_ = (loop_ + 1) % nonCycleNum_;
-    } else {
-        GRAPHIC_LOGE("sequence img has not been added!");
-        return;
-    }
-    curView_->SetAnimatorStopListener(this);
-    Add(curView_);
-    Invalidate();
-}
-} // namespace OHOS
index 5c9c31e..c7d1c24 100644 (file)
 
 #include "DialSequenceImgView.h"
 #include "securec.h"
+#include "common/graphic_utils.h"
+#include "common/image_cache_manager.h"
 
 namespace OHOS {
+namespace {
+const uint32_t DIRID = 0xfef << 20;  // 20: offset
+}
+
 DialSequenceImgView::DialSequenceImgView(void)
 {
+    SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
+    memset_s(nonCycleSeq_, sizeof(nonCycleSeq_), 0, sizeof(nonCycleSeq_));
 }
 
 DialSequenceImgView::~DialSequenceImgView(void)
 {
-    if (imgSrc_ != nullptr) {
-        UIFree(imgSrc_);
+    if (repeatSeq_ != nullptr) {
+        delete repeatSeq_;
+        repeatSeq_ = nullptr;
+    }
+
+    for (uint8_t i = 0; i < nonCycleNum_; ++i) {
+        delete nonCycleSeq_[i];
+        nonCycleSeq_[i] = nullptr;
     }
+    nonCycleNum_ = 0;
+    loop_ = 0;
+    isClick_ = false;
+    viewNum_ = 0;
+    isAllImgLoaded_ = false;
+    curSeq_ = nullptr;
 }
 
-bool DialSequenceImgView::SetSequenceRes(const ImageAnimatorInfo* imgSrc, uint8_t imgNum)
+bool DialSequenceImgView::SetSequenceRes(const ImageAnimatorInfo *imgSrc, uint8_t imgNum)
 {
     if (imgSrc == nullptr || imgNum == 0) {
         return false;
     }
-    if (imgSrc_ != nullptr) {
-        UIFree(imgSrc_);
-        imgNum_ = 0;
+
+    SetImageAnimatorSrc(imgSrc, imgNum);
+    return true;
+}
+
+bool DialSequenceImgView::SetPreviewImg()
+{
+    if (curSeq_ == nullptr) {
+        UpdateCurrentSeq();
     }
-    uint32_t size = sizeof(ImageAnimatorInfo) * imgNum;
-    imgSrc_ = static_cast<ImageAnimatorInfo*>(UIMalloc(size));
-    if (imgSrc_ == nullptr) {
+    if (curSeq_ == nullptr) {
         return false;
     }
-    if (memcpy_s(imgSrc_, size, imgSrc, size) != EOK) {
-        UIFree(imgSrc_);
+    SetAnimatorInfo(curSeq_, 1);
+    isAllImgLoaded_ = false;
+    SetSrc(curSeq_->imgs[0].imageInfo);
+    SetPosition(curSeq_->imgs[0].pos.x, curSeq_->imgs[0].pos.y);
+    SetWidth(curSeq_->imgs[0].width);
+    SetHeight(curSeq_->imgs[0].height);
+    Invalidate();
+    return true;
+}
+
+bool DialSequenceImgView::LoadCurSeqImgs()
+{
+    if (curSeq_ == nullptr) {
+        UpdateCurrentSeq();
+    }
+    if (curSeq_ == nullptr) {
         return false;
     }
-    imgNum_ = imgNum;
-    SetImageAnimatorSrc(imgSrc_, imgNum_);
+    isAllImgLoaded_ = true;
+    SetAnimatorInfo(curSeq_, curSeq_->info.imgNum);
     return true;
 }
-}
\ No newline at end of file
+
+bool DialSequenceImgView::AddSequenceRes(const SequenceInfo &para)
+{
+    if (viewNum_ >= SEQ_IMG_NUM) {
+        GRAPHIC_LOGE("seq num has exceeded!");
+        return false;
+    }
+
+    if (para.repeat) {
+        if (repeatSeq_ != nullptr) {
+            GRAPHIC_LOGE("the repeat seq has existed!");
+            return false;
+        }
+        repeatSeq_ = new AnimatorInfo;
+        repeatSeq_->info = para;
+    } else {
+        if (nonCycleNum_ >= SEQ_IMG_NUM) {
+            GRAPHIC_LOGE("non cycle seq have been exceedeed!");
+            return false;
+        }
+        nonCycleSeq_[nonCycleNum_] = new AnimatorInfo;
+        nonCycleSeq_[nonCycleNum_]->info = para;
+        ++nonCycleNum_;
+    }
+
+    SetTouchable(true);
+    SetAnimatorStopListener(this);
+    SetRepeat(false);
+    ++viewNum_;
+    return true;
+}
+
+bool DialSequenceImgView::OnClickEvent(const ClickEvent &event)
+{
+    if (!isAllImgLoaded_) {
+        return false;
+    }
+    if (curSeq_ == nullptr) {
+        return false;
+    }
+    uint8_t curState = GetState();
+    switch (curState) {
+        case Animator::STOP: {
+            if (curSeq_ == repeatSeq_) {
+                isClick_ = true;
+            } else {
+                UpdateCurrentSeq();
+                SetAnimatorInfo(curSeq_, curSeq_->info.imgNum);
+                Start();
+            }
+            break;
+        }
+        case Animator::PAUSE: {
+            return false;
+        }
+        case Animator::RUNNING:
+        case Animator::START: {
+            if (curSeq_ == repeatSeq_) {
+                isClick_ = true;
+            }
+            break;
+        }
+        default: {
+            GRAPHIC_LOGE("error state");
+        }
+    }
+
+    return UIImageAnimatorView::OnClickEvent(event);
+}
+
+void DialSequenceImgView::OnAnimatorStop(UIView &view)
+{
+    if (!isAllImgLoaded_) {
+        return;
+    }
+    bool isClick = isClick_;
+    isClick_ = false;
+    bool isRepeat = (curSeq_ == repeatSeq_);
+    if (isRepeat && isClick) {
+        UpdateCurrentSeq();
+        SetAnimatorInfo(curSeq_, curSeq_->info.imgNum);
+        Start();
+    } else if (isRepeat && !isClick) {
+        Start();
+    } else {
+        if (repeatSeq_ != nullptr) {
+            UpdateCurrentSeq();
+            SetAnimatorInfo(curSeq_, curSeq_->info.imgNum);
+            Start();
+        }
+    }
+}
+
+ImageAnimatorInfo *DialSequenceImgView::LoadImgs(const SequenceInfo &para, uint8_t num) const
+{
+    if (para.fp == nullptr || num > para.imgNum) {
+        return nullptr;
+    }
+
+    long curPt = ftell(para.fp);
+    fseek(para.fp, para.resPos, SEEK_SET);
+    uint16_t *imgIdArray = static_cast<uint16_t *>(UIMalloc(sizeof(uint16_t) * num));
+    defer
+    {
+        if (imgIdArray != nullptr) {
+            UIFree(imgIdArray);
+        }
+        fseek(para.fp, curPt, SEEK_SET);
+    };
+    if (imgIdArray == nullptr) {
+        return nullptr;
+    }
+    ImageAnimatorInfo *imgInfoArray = static_cast<ImageAnimatorInfo *>(UIMalloc(num * sizeof(ImageAnimatorInfo)));
+    if (imgInfoArray == nullptr) {
+        return nullptr;
+    }
+
+    if (fread(imgIdArray, 1, sizeof(uint16_t) * num, para.fp) != sizeof(uint16_t) * num) {
+        GRAPHIC_LOGE("failed to read resId");
+        UIFree(imgInfoArray);
+        return nullptr;
+    }
+    for (uint8_t i = 0; i < num; ++i) {
+        uint32_t resId = imgIdArray[i] | DIRID;
+        ImageInfo *info =
+            ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, para.fileName, para.fp, false, para.imgOffset);
+        if (info == nullptr) {
+            GRAPHIC_LOGE("load img fail! file:%s resId:%x", para.fileName.c_str(), resId);
+            UIFree(imgInfoArray);
+            return nullptr;
+        }
+        imgInfoArray[i].imageInfo = info;
+        imgInfoArray[i].pos = {GetRelativeRect().GetX(), GetRelativeRect().GetY()};
+        imgInfoArray[i].width = info->header.width;
+        imgInfoArray[i].height = info->header.height;
+        imgInfoArray[i].imageType = IMG_SRC_IMAGE_INFO;
+    }
+    return imgInfoArray;
+}
+
+void DialSequenceImgView::UpdateCurrentSeq()
+{
+    if (curSeq_ != nullptr) {
+        if (repeatSeq_ != nullptr && nonCycleNum_ == 0) {
+            return;
+        } else if (repeatSeq_ == nullptr && nonCycleNum_ != 0) {
+            curSeq_ = nonCycleSeq_[loop_];
+            loop_ = (loop_ + 1) % nonCycleNum_;
+            return;
+        }
+
+        // both repeat and noncycle exist
+        if (curSeq_ == repeatSeq_) {
+            curSeq_ = nonCycleSeq_[loop_];
+            loop_ = (loop_ + 1) % nonCycleNum_;
+        } else {
+            curSeq_ = repeatSeq_;
+        }
+        return;
+    }
+
+    if (repeatSeq_ != nullptr) {
+        curSeq_ = repeatSeq_;
+    } else if (nonCycleNum_ != 0) {
+        curSeq_ = nonCycleSeq_[loop_];
+        loop_ = (loop_ + 1) % nonCycleNum_;
+    } else {
+        GRAPHIC_LOGE("sequence img has not been added!");
+        return;
+    }
+}
+
+void DialSequenceImgView::SetAnimatorInfo(AnimatorInfo *info, uint8_t num)
+{
+    if (info == nullptr || num == 0) {
+        GRAPHIC_LOGE("para error");
+        return;
+    }
+    if (num > info->info.imgNum) {
+        GRAPHIC_LOGE("The number of images exceeds the limit.");
+        return;
+    }
+
+    if (num == info->num && info->imgs != nullptr) {
+        SetImageAnimatorSrc(info->imgs, info->num, info->info.interval);
+    } else {
+        if (info->imgs != nullptr) {
+            UIFree(info->imgs);
+        }
+        info->num = num;
+        info->imgs = LoadImgs(info->info, info->num);
+        if (info->imgs == nullptr) {
+            return;
+        }
+        SetImageAnimatorSrc(info->imgs, info->num, info->info.interval);
+    }
+}
+}  // namespace OHOS
\ No newline at end of file
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialTimePublisher.cpp b/code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/DialTimePublisher.cpp
deleted file mode 100644 (file)
index cb4539b..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) CompanyNameMagicTag 2025. All rights reserved.
- * Description: DialTimePublisher
- * Author:
- * Create: 2025-03-04
- */
-
-#include "DialTimePublisher.h"
-#include "securec.h"
-#include "gfx_utils/mem_api.h"
-#include "gfx_utils/graphic_log.h"
-
-namespace OHOS {
-DialTimePublisher *DialTimePublisher::publisher_ = nullptr;
-
-void DialTimePublisher::TimeChangeListener::SetTimeInervals(TimeInterval *intervals, uint8_t num)
-{
-    if (intervals == nullptr || num == 0) {
-        return;
-    }
-    if (intervals_ != nullptr) {
-        UIFree(intervals_);
-        intervals_ = nullptr;
-    }
-    num_ = 0;
-
-    intervals_ = static_cast<TimeInterval*>(UIMalloc(sizeof(TimeInterval) * num));
-    if (intervals_ == nullptr) {
-        GRAPHIC_LOGE("failed to malloc!");
-        return;
-    }
-    num_ = num;
-    memcpy_s(intervals_, sizeof(TimeInterval) * num, intervals, sizeof(TimeInterval) * num);
-}
-
-bool DialTimePublisher::TimeChangeListener::IsInTimeInterval(const struct tm &curTime)
-{
-    if (num_ == 0) { // 0-24
-        return true;
-    }
-    for (uint8_t i = 0; i < num_; ++i) {
-        if (intervals_[i].start <= curTime.tm_hour && intervals_[i].end > curTime.tm_hour) {
-            return true;
-        }
-    }
-    return false;
-}
-
-DialTimePublisher::TimeChangeListener::TimeChangeListener()
-{
-    if (DialTimePublisher::GetPublisher() != nullptr) {
-        DialTimePublisher::GetPublisher()->Register(this);
-    }
-}
-
-DialTimePublisher::TimeChangeListener::~TimeChangeListener()
-{
-    if (intervals_ != nullptr) {
-        UIFree(intervals_);
-        intervals_ = nullptr;
-    }
-    num_ = 0;
-    if (DialTimePublisher::GetPublisher() != nullptr) {
-        DialTimePublisher::GetPublisher()->Unregister(this);
-    }
-}
-
-void DialTimePublisher::SetPublisher(DialTimePublisher *publisher)
-{
-    publisher_ = publisher;
-}
-
-DialTimePublisher *DialTimePublisher::GetPublisher()
-{
-    return publisher_;
-}
-} // namespace OHOS
\ No newline at end of file
index 6db0860..8ed4cf7 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "DialViewContainer.h"
 #include "DialDigitalImgView.h"
+#include "ModelDialDataFactory.h"
 
 namespace OHOS {
 DialViewContainer::~DialViewContainer()
@@ -57,7 +58,7 @@ void DialViewContainer::AddView(DialDataType type, DialView* view, bool isPeriod
         .type = type,
         .isPeriodic = isPeriodic
     };
-    if (type == DialDataType::DATA_TYPE_MAX) {
+    if (ModelDialDataFactory::GetInstance().GetModuleByType(type) == nullptr) {
         hasInvalidBindData_ = true;
     }
     dialViews_.PushBack(info);
@@ -91,7 +92,8 @@ bool DialViewContainer::IsInvalidateBindData(uint8_t index)
     for (uint8_t i = 0; i < index; ++i) {
         it = it->next_;
     }
-    if (it->data_.dialView != nullptr && it->data_.type == DialDataType::DATA_TYPE_MAX) {
+    if (it->data_.dialView != nullptr &&
+        ModelDialDataFactory::GetInstance().GetModuleByType(it->data_.type) == nullptr) {
         return true;
     }
     DialViewContainer *container = dynamic_cast<DialViewContainer*>(it->data_.view);
index 8d70537..54d1975 100644 (file)
@@ -13,6 +13,9 @@
 #endif
 #include "MainPresenterSample.h"
 #include "DialDigitalImgView.h"
+#include "common/input_device_manager.h"
+#include "DialSequenceImgView.h"
+#include "engines/gfx/lite_m_gfx_engine.h"
 
 namespace OHOS {
 DialViewGroup::DialViewGroup(void)
@@ -20,6 +23,7 @@ DialViewGroup::DialViewGroup(void)
     SetTouchable(true);
     SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
     SetCoverable(true);
+    isExists_ = std::make_shared<bool>(true);
 }
 
 DialViewGroup::~DialViewGroup(void)
@@ -66,7 +70,6 @@ void DialViewGroup::ClearDial()
 
     rollingLabelList_.Clear();
     imgAnimList_.Clear();
-    seqList_.Clear();
 
     period_ = DEFAULT_TASK_PERIOD;
 
@@ -80,8 +83,10 @@ void DialViewGroup::ClearDial()
 
 void DialViewGroup::SetDial(std::string filePath, DisplayState state)
 {
-    ClearDial();
-    resPreloaded_ = false;
+    if (resPreloaded_) {
+        ClearDial();
+        resPreloaded_ = false;
+    }
     filePath_ = filePath;
     state_ = state;
 }
@@ -109,13 +114,23 @@ void DialViewGroup::ProcessData(DialDataType type, DialView* view)
     } else if (value == 1) { // 1: text
         std::string* textData = nullptr;
         int16_t num = 0;
-        ModelDialDataFactory::GetInstance().GetDialTextData(type, textData, num);
+        if (!ModelDialDataFactory::GetInstance().GetDialTextData(type, textData, num)) {
+            std::string tmp = "";
+            view->HandleTextData(&tmp, 1);
+            return;
+        }
         view->HandleTextData(textData, num);
     } else if (value == 2) { // 2: multifloat
         float* floatsData = nullptr;
         int16_t num = 0;
-        ModelDialDataFactory::GetInstance().GetDialFloatData(type, floatsData, num);
+        if (!ModelDialDataFactory::GetInstance().GetDialFloatData(type, floatsData, num)) {
+            float tmp = 0.0;
+            view->HandleFloatData(&tmp, 1);
+            return;
+        }
         view->HandleFloatData(floatsData, num);
+    } else {
+        GRAPHIC_LOGW("invalid datatype %d", static_cast<int>(type));
     }
 }
 void DialViewGroup::DoStop(void)
@@ -134,7 +149,9 @@ void DialViewGroup::DoStop(void)
 void DialViewGroup::DoStart(void)
 {
     SetLableAnimatorState(Animator::START);
-    SetImgAnimatorState(Animator::START);
+    if (isSeqImgLoaded_) {
+        SetImgAnimatorState(Animator::START);
+    }
     if (video_ != nullptr) {
         if (video_->IsPaused()) {
             video_->ResumePlay();
@@ -180,9 +197,6 @@ void DialViewGroup::RecordSpecial(UIView *view)
             return;
         }
         video_ = reinterpret_cast<DialVideoView*>(view);
-    } else if (dynamic_cast<DialSequenceContainer*>(view) != nullptr) {
-        DialSequenceContainer *seq = dynamic_cast<DialSequenceContainer*>(view);
-        seqList_.PushBack(seq);
     }
 }
 
@@ -209,6 +223,7 @@ void DialViewGroup::RecordBindData(DialDataType type, DialView* view, bool isPer
         dataTypeMap_.insert(std::make_pair(static_cast<int16_t>(type), container));
         viewsMemPool_.PushBack(container);
     }
+    view->SetDataType(type);
     if (isPeriodic) {
         periodicUpdateTypes_.PushBack(type);
     } else {
@@ -439,6 +454,29 @@ void DialViewGroup::OnActive(void)
     if ((mainPresenter == nullptr) || (mainPresenter->GetMainPresenterState() != MainPresenterState::RESUME)) {
         return;
     }
+    if (!isSeqImgLoaded_) {
+        std::weak_ptr<bool> wk = isExists_;
+        GraphicService::GetInstance()->ForceRefreshImmediately();
+        GraphicService::GetInstance()->PostGraphicEvent([this, wk]() {
+            if (wk.expired()) {
+                return;
+            }
+
+            InputDeviceManager::GetInstance()->ClearInputDeviceState();
+            ListNode<UIImageAnimatorView *> *node = imgAnimList_.Begin();
+            while (node != imgAnimList_.End()) {
+                if (node->data_ != nullptr) {
+                    DialSequenceImgView *imgAnim = dynamic_cast<DialSequenceImgView *>(node->data_);
+                    if (imgAnim != nullptr) {
+                        imgAnim->LoadCurSeqImgs();
+                        imgAnim->Start();
+                    }
+                }
+                node = node->next_;
+            }
+            isSeqImgLoaded_ = true;
+        });
+    }
 
     DoStart();
 }
@@ -499,7 +537,7 @@ void DialViewGroup::SetLableAnimatorState(uint8_t state)
 
 void DialViewGroup::SetImgAnimatorState(uint8_t state)
 {
-    if (imgAnimList_.IsEmpty() && seqList_.IsEmpty()) {
+    if (imgAnimList_.IsEmpty()) {
         return;
     }
 
@@ -518,20 +556,5 @@ void DialViewGroup::SetImgAnimatorState(uint8_t state)
         }
         node = node->next_;
     }
-
-    ListNode<DialSequenceContainer*>* it = seqList_.Begin();
-    while (it != seqList_.End()) {
-        if (it->data_ != nullptr) {
-            switch (state) {
-                case Animator::PAUSE:
-                    it->data_->Pause();
-                    break;
-                case Animator::START:
-                    it->data_->Resume();
-                    break;
-            }
-        }
-        it = it->next_;
-    }
 }
 } // namespace OHOS
index 81c7106..d17de5b 100644 (file)
@@ -43,24 +43,6 @@ DialBaseModel* ModelDialDataFactory::GetModuleByType(DialDataType& type)
     return iter->second;
 }
 
-bool ModelDialDataFactory::IsOHBindDataExist(DialOHDataType type) const
-{
-    auto it = g_bindDataConverter.find(type);
-    if (it == g_bindDataConverter.end()) {
-        return false;
-    }
-    return IsBindDataExist(it->second);
-}
-
-bool ModelDialDataFactory::IsBindDataExist(DialDataType type) const
-{
-    auto it = models_.find(static_cast<int16_t>(type));
-    if (it != models_.end() && it->second != nullptr) {
-        return true;
-    }
-    return false;
-}
-
 bool ModelDialDataFactory::RegisterDialDataListener(DialDataType type, OnDialDataUpdateListener* listener)
 {
     DialBaseModel* model = GetModuleByType(type);
index f6ea17c..6a29e7c 100644 (file)
Binary files a/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a and b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a differ
index c7c253e..1a1666e 100644 (file)
Binary files a/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a and b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a differ
diff --git a/code/sdk/application/wearable/service/msg_center/brandy-native-js-fd230/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-native-js-fd230/libmsg_center.a
deleted file mode 100644 (file)
index 0e24be7..0000000
Binary files a/code/sdk/application/wearable/service/msg_center/brandy-native-js-fd230/libmsg_center.a and /dev/null differ
diff --git a/code/sdk/application/wearable/service/msg_center/brandy-native-js-fd230/libuikit_fwk.a b/code/sdk/application/wearable/service/msg_center/brandy-native-js-fd230/libuikit_fwk.a
new file mode 100644 (file)
index 0000000..b1ab9d2
Binary files /dev/null and b/code/sdk/application/wearable/service/msg_center/brandy-native-js-fd230/libuikit_fwk.a differ
index 0e24be7..c3aaaca 100644 (file)
Binary files a/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a and b/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a differ
index c686df5..426bb7c 100644 (file)
Binary files a/code/sdk/application/wearable/service/msg_center/brandy-xts/libmsg_center.a and b/code/sdk/application/wearable/service/msg_center/brandy-xts/libmsg_center.a differ
index 5d00528..42040f7 100644 (file)
@@ -1,55 +1,55 @@
-<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="Invalid param! file: %p, readSize: %u. @DialBinParser.cpp(60),ERROR" ID="0xb8d001e2" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="UIMalloc fail! size: %u. @DialBinParser.cpp(65),ERROR" ID="0xb8d0020a" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="fread fail! readSize: %u. @DialBinParser.cpp(71),ERROR" ID="0xb8d0023a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Get dial preview fail, param error! @DialBinParser.cpp(80),ERROR" ID="0xb8d00282" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(87),ERROR" ID="0xb8d002ba" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="file fseek 0 failed! @DialBinParser.cpp(95),ERROR" ID="0xb8d002fa" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(101),ERROR" ID="0xb8d0032a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s dial name fail! @DialBinParser.cpp(110),ERROR" ID="0xb8d00372" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s dial description fail! @DialBinParser.cpp(117),ERROR" ID="0xb8d003aa" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="fp is nullptr! @DialBinParser.cpp(161),ERROR" ID="0xb8d0050a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="update dial param error! @DialBinParser.cpp(165),ERROR" ID="0xb8d0052a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parse dial header fail, allom header mem fail! @DialBinParser.cpp(174),ERROR" ID="0xb8d00572" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial header fail, param error! @DialBinParser.cpp(183),ERROR" ID="0xb8d005ba" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(190),ERROR" ID="0xb8d005f2" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="file fseek 0 failed! @DialBinParser.cpp(199),ERROR" ID="0xb8d0063a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(205),ERROR" ID="0xb8d0066a" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="capability %u not support state %d! @DialBinParser.cpp(214),ERROR" ID="0xb8d006b2" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(235),ERROR" ID="0xb8d0075a" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="parser dial view fail, view type id is %d! @DialBinParser.cpp(243),ERROR" ID="0xb8d0079a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial static image fail, file is nullptr! @DialBinParser.cpp(257),ERROR" ID="0xb8d0080a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(269),ERROR" ID="0xb8d0086a" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file:%s resId:%x @DialBinParser.cpp(280),ERROR" ID="0xb8d008c2" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial sequence image fail, file is nullptr! @DialBinParser.cpp(302),ERROR" ID="0xb8d00972" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(315),ERROR" ID="0xb8d009da" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(321),ERROR" ID="0xb8d00a0a" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file:%s resId:%x @DialBinParser.cpp(339),ERROR" ID="0xb8d00a9a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial sequence image fail, file is nullptr! @DialBinParser.cpp(370),ERROR" ID="0xb8d00b92" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(383),ERROR" ID="0xb8d00bfa" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file:%s resId:%x @DialBinParser.cpp(395),ERROR" ID="0xb8d00c5a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(423),ERROR" ID="0xb8d00d3a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="Invalid param! file: %p, readSize: %u. @DialBinParser.cpp(61),ERROR" ID="0xb8d001ea" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="UIMalloc fail! size: %u. @DialBinParser.cpp(66),ERROR" ID="0xb8d00212" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="fread fail! readSize: %u. @DialBinParser.cpp(72),ERROR" ID="0xb8d00242" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Get dial preview fail, param error! @DialBinParser.cpp(81),ERROR" ID="0xb8d0028a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(88),ERROR" ID="0xb8d002c2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="file fseek 0 failed! @DialBinParser.cpp(96),ERROR" ID="0xb8d00302" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(102),ERROR" ID="0xb8d00332" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s dial name fail! @DialBinParser.cpp(111),ERROR" ID="0xb8d0037a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s dial description fail! @DialBinParser.cpp(118),ERROR" ID="0xb8d003b2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="fp is nullptr! @DialBinParser.cpp(162),ERROR" ID="0xb8d00512" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="update dial param error! @DialBinParser.cpp(166),ERROR" ID="0xb8d00532" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parse dial header fail, allom header mem fail! @DialBinParser.cpp(175),ERROR" ID="0xb8d0057a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial header fail, param error! @DialBinParser.cpp(184),ERROR" ID="0xb8d005c2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(191),ERROR" ID="0xb8d005fa" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="file fseek 0 failed! @DialBinParser.cpp(200),ERROR" ID="0xb8d00642" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(206),ERROR" ID="0xb8d00672" />
+                       <MSG STRUCTURE="diag_log_msg2" NAME="capability %u not support state %d! @DialBinParser.cpp(215),ERROR" ID="0xb8d006ba" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(236),ERROR" ID="0xb8d00762" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="parser dial view fail, view type id is %d! @DialBinParser.cpp(244),ERROR" ID="0xb8d007a2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial static image fail, file is nullptr! @DialBinParser.cpp(258),ERROR" ID="0xb8d00812" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(270),ERROR" ID="0xb8d00872" />
+                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file:%s resId:%x @DialBinParser.cpp(281),ERROR" ID="0xb8d008ca" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial sequence image fail, file is nullptr! @DialBinParser.cpp(303),ERROR" ID="0xb8d0097a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(316),ERROR" ID="0xb8d009e2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="failed to add sequence! @DialBinParser.cpp(333),ERROR" ID="0xb8d00a6a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="failed to load imgs! @DialBinParser.cpp(339),ERROR" ID="0xb8d00a9a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial sequence image fail, file is nullptr! @DialBinParser.cpp(362),ERROR" ID="0xb8d00b52" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(375),ERROR" ID="0xb8d00bba" />
+                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file:%s resId:%x @DialBinParser.cpp(387),ERROR" ID="0xb8d00c1a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(416),ERROR" ID="0xb8d00d02" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(430),ERROR" ID="0xb8d00d72" />
                        <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(437),ERROR" ID="0xb8d00daa" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(444),ERROR" ID="0xb8d00de2" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file:%s resId:%x @DialBinParser.cpp(458),ERROR" ID="0xb8d00e52" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(501),ERROR" ID="0xb8d00faa" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file: %s resId: %x @DialBinParser.cpp(541),ERROR" ID="0xb8d010ea" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(571),ERROR" ID="0xb8d011da" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(585),ERROR" ID="0xb8d0124a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(626),ERROR" ID="0xb8d01392" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(638),ERROR" ID="0xb8d013f2" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="param error! @DialBinParser.cpp(678),ERROR" ID="0xb8d01532" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file: %s resId: %x @DialBinParser.cpp(688),ERROR" ID="0xb8d01582" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(702),ERROR" ID="0xb8d015f2" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(717),ERROR" ID="0xb8d0166a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(730),ERROR" ID="0xb8d016d2" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(767),ERROR" ID="0xb8d017fa" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(780),ERROR" ID="0xb8d01862" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(823),ERROR" ID="0xb8d019ba" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(836),ERROR" ID="0xb8d01a22" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file: %s resId: %x @DialBinParser.cpp(849),ERROR" ID="0xb8d01a8a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(869),ERROR" ID="0xb8d01b2a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(882),ERROR" ID="0xb8d01b92" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(906),ERROR" ID="0xb8d01c52" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(919),ERROR" ID="0xb8d01cba" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file: %s resId: %x @DialBinParser.cpp(935),ERROR" ID="0xb8d01d3a" />
+                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file:%s resId:%x @DialBinParser.cpp(451),ERROR" ID="0xb8d00e1a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(495),ERROR" ID="0xb8d00f7a" />
+                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file: %s resId: %x @DialBinParser.cpp(535),ERROR" ID="0xb8d010ba" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(566),ERROR" ID="0xb8d011b2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(580),ERROR" ID="0xb8d01222" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(621),ERROR" ID="0xb8d0136a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(633),ERROR" ID="0xb8d013ca" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="param error! @DialBinParser.cpp(673),ERROR" ID="0xb8d0150a" />
+                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file: %s resId: %x @DialBinParser.cpp(683),ERROR" ID="0xb8d0155a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(697),ERROR" ID="0xb8d015ca" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(712),ERROR" ID="0xb8d01642" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(725),ERROR" ID="0xb8d016aa" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(762),ERROR" ID="0xb8d017d2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(775),ERROR" ID="0xb8d0183a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(818),ERROR" ID="0xb8d01992" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(831),ERROR" ID="0xb8d019fa" />
+                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file: %s resId: %x @DialBinParser.cpp(844),ERROR" ID="0xb8d01a62" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(864),ERROR" ID="0xb8d01b02" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(877),ERROR" ID="0xb8d01b6a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Parser dial option image fail, file is nullptr! @DialBinParser.cpp(901),ERROR" ID="0xb8d01c2a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="malloc or read fail! @DialBinParser.cpp(914),ERROR" ID="0xb8d01c92" />
+                       <MSG STRUCTURE="diag_log_msg2" NAME="load img fail! file: %s resId: %x @DialBinParser.cpp(930),ERROR" ID="0xb8d01d12" />
                        </MSG_LOG>
\ No newline at end of file
index eb9dbcf..dd31827 100644 (file)
                        <MSG STRUCTURE="diag_log_msg0" NAME="unsupported color format @display_vau.c(365),ERROR" ID="0xcb200b6a" />
                        <MSG STRUCTURE="diag_log_msg0" NAME="Blend type of each image must be same when blitting them together. @display_vau.c(422),ERROR" ID="0xcb200d32" />
                        <MSG STRUCTURE="diag_log_msg0" NAME="ConvertVGUImg2VauSurface failed @display_vau.c(426),ERROR" ID="0xcb200d52" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="uapi_vau_compose failure, ret = 0x%x! @display_vau.c(477),ERROR" ID="0xcb200eea" />
-                       <MSG STRUCTURE="diag_log_msg14" NAME="src[%d] w:%u h:%u str:%u fmt:%d cmp:%d rect:[%d,%d,%u,%u] outRect:[%d,%d,%u,%u] @display_vau.c(484),ERROR" ID="0xcb200f22" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="DispMalloc for dstSurface failed! @display_vau.c(541),ERROR" ID="0xcb2010ea" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="1st render error!!!! @display_vau.c(556),ERROR" ID="0xcb201162" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="2nd render error!!!! @display_vau.c(580),ERROR" ID="0xcb201222" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="invalid cmd num: 0. @display_vau.c(596),ERROR" ID="0xcb2012a2" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="VGUPathAppendData with invalid path. @display_vau.c(601),ERROR" ID="0xcb2012ca" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="invalid cmd num: 0. @display_vau.c(617),ERROR" ID="0xcb20134a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="VGUPathAppendData with invalid path. @display_vau.c(622),ERROR" ID="0xcb201372" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="%s: %d memcpy_s failed @display_vau.c(631),ERROR" ID="0xcb2013ba" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="%s: %d memcpy_s for cmd failed. @display_vau.c(641),ERROR" ID="0xcb20140a" />
-                       <MSG STRUCTURE="diag_log_msg2" NAME="%s: %d memcpy_s failed @display_vau.c(651),ERROR" ID="0xcb20145a" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="Invalid gradient type: %d @display_vau.c(720),ERROR" ID="0xcb201682" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Invalid VGUFillRule. @display_vau.c(738),ERROR" ID="0xcb201712" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="HandlePaintStyle failed. @display_vau.c(743),ERROR" ID="0xcb20173a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Invalid Cap Style! @display_vau.c(763),ERROR" ID="0xcb2017da" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Invalid Join Style! @display_vau.c(784),ERROR" ID="0xcb201882" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="HandlePaintStyle failed. @display_vau.c(798),ERROR" ID="0xcb2018f2" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="uapi_vau_render failure, ret = 0x%x! @display_vau.c(981),ERROR" ID="0xcb201eaa" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="uapi_vau_render failure, ret = 0x%x! @display_vau.c(1048),ERROR" ID="0xcb2020c2" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="RenderPath with invalid path. @display_vau.c(1185),ERROR" ID="0xcb20250a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="One of fill and stroke in path attr should be set! @display_vau.c(1190),ERROR" ID="0xcb202532" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] DispMalloc for tmpTarget1 failed @display_vau.c(1222),ERROR" ID="0xcb202632" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] DispMalloc for tmpTarget2 failed @display_vau.c(1230),ERROR" ID="0xcb202672" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] RenderPathInternal failed @display_vau.c(1237),ERROR" ID="0xcb2026aa" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] RenderPatternInternal failed @display_vau.c(1242),ERROR" ID="0xcb2026d2" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] BlendToSurface failed @display_vau.c(1247),ERROR" ID="0xcb2026fa" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] BlendToSurface failed @display_vau.c(1252),ERROR" ID="0xcb202722" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] RenderPathInternal failed @display_vau.c(1279),ERROR" ID="0xcb2027fa" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] BlendImgToSurface failed @display_vau.c(1283),ERROR" ID="0xcb20281a" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="g_hdlLast %lld has not been destroyed, destroy now. @display_vau.c(1329),ERROR" ID="0xcb20298a" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="uapi_vau_submit failure, ret = 0x%x! @display_vau.c(1336),ERROR" ID="0xcb2029c2" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="gFuncs is null @display_vau.c(1348),ERROR" ID="0xcb202a22" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="memset_s gFuncs failed @display_vau.c(1354),ERROR" ID="0xcb202a52" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="VGU initializes successfully @display_vau.c(1373),INFO" ID="0xcb202aed" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="VGU uninitializes successfully @display_vau.c(1382),INFO" ID="0xcb202b35" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="uapi_vau_compose failure, ret = 0x%x! @display_vau.c(472),ERROR" ID="0xcb200ec2" />
+                       <MSG STRUCTURE="diag_log_msg14" NAME="src[%d] w:%u h:%u str:%u fmt:%d cmp:%d rect:[%d,%d,%u,%u] outRect:[%d,%d,%u,%u] @display_vau.c(479),ERROR" ID="0xcb200efa" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="DispMalloc for dstSurface failed! @display_vau.c(536),ERROR" ID="0xcb2010c2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="1st render error!!!! @display_vau.c(551),ERROR" ID="0xcb20113a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="2nd render error!!!! @display_vau.c(575),ERROR" ID="0xcb2011fa" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="invalid cmd num: 0. @display_vau.c(591),ERROR" ID="0xcb20127a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="VGUPathAppendData with invalid path. @display_vau.c(596),ERROR" ID="0xcb2012a2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="invalid cmd num: 0. @display_vau.c(612),ERROR" ID="0xcb201322" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="VGUPathAppendData with invalid path. @display_vau.c(617),ERROR" ID="0xcb20134a" />
+                       <MSG STRUCTURE="diag_log_msg2" NAME="%s: %d memcpy_s failed @display_vau.c(626),ERROR" ID="0xcb201392" />
+                       <MSG STRUCTURE="diag_log_msg2" NAME="%s: %d memcpy_s for cmd failed. @display_vau.c(636),ERROR" ID="0xcb2013e2" />
+                       <MSG STRUCTURE="diag_log_msg2" NAME="%s: %d memcpy_s failed @display_vau.c(646),ERROR" ID="0xcb201432" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="Invalid gradient type: %d @display_vau.c(715),ERROR" ID="0xcb20165a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Invalid VGUFillRule. @display_vau.c(733),ERROR" ID="0xcb2016ea" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="HandlePaintStyle failed. @display_vau.c(738),ERROR" ID="0xcb201712" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Invalid Cap Style! @display_vau.c(758),ERROR" ID="0xcb2017b2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Invalid Join Style! @display_vau.c(779),ERROR" ID="0xcb20185a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="HandlePaintStyle failed. @display_vau.c(793),ERROR" ID="0xcb2018ca" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="uapi_vau_render failure, ret = 0x%x! @display_vau.c(976),ERROR" ID="0xcb201e82" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="uapi_vau_render failure, ret = 0x%x! @display_vau.c(1043),ERROR" ID="0xcb20209a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="RenderPath with invalid path. @display_vau.c(1175),ERROR" ID="0xcb2024ba" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="One of fill and stroke in path attr should be set! @display_vau.c(1180),ERROR" ID="0xcb2024e2" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] DispMalloc for tmpTarget1 failed @display_vau.c(1212),ERROR" ID="0xcb2025e2" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] DispMalloc for tmpTarget2 failed @display_vau.c(1220),ERROR" ID="0xcb202622" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] RenderPathInternal failed @display_vau.c(1227),ERROR" ID="0xcb20265a" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] RenderPatternInternal failed @display_vau.c(1232),ERROR" ID="0xcb202682" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] BlendToSurface failed @display_vau.c(1237),ERROR" ID="0xcb2026aa" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] BlendToSurface failed @display_vau.c(1242),ERROR" ID="0xcb2026d2" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] RenderPathInternal failed @display_vau.c(1269),ERROR" ID="0xcb2027aa" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="[%d] BlendImgToSurface failed @display_vau.c(1273),ERROR" ID="0xcb2027ca" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="g_hdlLast %lld has not been destroyed, destroy now. @display_vau.c(1319),ERROR" ID="0xcb20293a" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="uapi_vau_submit failure, ret = 0x%x! @display_vau.c(1326),ERROR" ID="0xcb202972" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="gFuncs is null @display_vau.c(1338),ERROR" ID="0xcb2029d2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="memset_s gFuncs failed @display_vau.c(1344),ERROR" ID="0xcb202a02" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="VGU initializes successfully @display_vau.c(1363),INFO" ID="0xcb202a9d" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="VGU uninitializes successfully @display_vau.c(1372),INFO" ID="0xcb202ae5" />
                        </MSG_LOG>
\ No newline at end of file
index fe72779..7614ddf 100644 (file)
@@ -35,6 +35,6 @@
                        <MSG STRUCTURE="diag_log_msg0" NAME="CreateImageNode failed! @image_cache_manager.cpp(598),ERROR" ID="0xcb1e12b2" />
                        <MSG STRUCTURE="diag_log_msg1" NAME="Res file is not loaded: %s @image_cache_manager.cpp(655),ERROR" ID="0xcb1e147a" />
                        <MSG STRUCTURE="diag_log_msg0" NAME="Res file is not loaded. @image_cache_manager.cpp(683),ERROR" ID="0xcb1e155a" />
-                       <MSG STRUCTURE="diag_log_msg1" NAME="Res file is not loaded: %s @image_cache_manager.cpp(710),ERROR" ID="0xcb1e1632" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="Res file is not loaded. @image_cache_manager.cpp(725),ERROR" ID="0xcb1e16aa" />
+                       <MSG STRUCTURE="diag_log_msg1" NAME="Res file is not loaded: %s @image_cache_manager.cpp(710),WARNING" ID="0xcb1e1633" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="Res file is not loaded. @image_cache_manager.cpp(725),WARNING" ID="0xcb1e16ab" />
                        </MSG_LOG>
\ No newline at end of file
index f6f2241..f22769f 100644 (file)
                        <MSG STRUCTURE="diag_log_msg0" NAME="InitInnerPath failed. @kaleidoscope_utils.cpp(266),ERROR" ID="0xcb440852" />
                        <MSG STRUCTURE="diag_log_msg0" NAME="InitPartialInfo failed. @kaleidoscope_utils.cpp(274),ERROR" ID="0xcb440892" />
                        <MSG STRUCTURE="diag_log_msg0" NAME="ConstructPartial failed. UpdateImageInfoIfNecessary failed. @kaleidoscope_utils.cpp(352),ERROR" ID="0xcb440b02" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="kaleidoscopeInfo_ or partialInfo_ is nullptr. @kaleidoscope_utils.cpp(452),ERROR" ID="0xcb440e22" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="kaleidoscopeInfo_ or kaleidoscopeInfo_-&gt;info.data is nullptr. @kaleidoscope_utils.cpp(475),ERROR" ID="0xcb440eda" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="ConstructPartial failed. @kaleidoscope_utils.cpp(482),ERROR" ID="0xcb440f12" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="UpdateKaleidoscopeImgInfo failed, because isInternalMem_ is false. @kaleidoscope_utils.cpp(491),ERROR" ID="0xcb440f5a" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="UpdateKaleidoscopeImgInfo failed, because addr is nullptr. @kaleidoscope_utils.cpp(496),ERROR" ID="0xcb440f82" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="UpdateKaleidoscopeImgInfo failed, because kaleidoscopeInfo_ is nullptr. @kaleidoscope_utils.cpp(501),ERROR" ID="0xcb440faa" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="kaleidoscopeInfo_ or partialInfo_ is nullptr. @kaleidoscope_utils.cpp(453),ERROR" ID="0xcb440e2a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="kaleidoscopeInfo_ or kaleidoscopeInfo_-&gt;info.data is nullptr. @kaleidoscope_utils.cpp(476),ERROR" ID="0xcb440ee2" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="ConstructPartial failed. @kaleidoscope_utils.cpp(483),ERROR" ID="0xcb440f1a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="UpdateKaleidoscopeImgInfo failed, because isInternalMem_ is false. @kaleidoscope_utils.cpp(492),ERROR" ID="0xcb440f62" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="UpdateKaleidoscopeImgInfo failed, because addr is nullptr. @kaleidoscope_utils.cpp(497),ERROR" ID="0xcb440f8a" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="UpdateKaleidoscopeImgInfo failed, because kaleidoscopeInfo_ is nullptr. @kaleidoscope_utils.cpp(502),ERROR" ID="0xcb440fb2" />
                        </MSG_LOG>
\ No newline at end of file
index 2cf8d0c..ce2a29d 100644 (file)
@@ -1,6 +1,6 @@
 <MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="Vertical current view is nullptr! @ui_cross_view.cpp(115),DBG" ID="0xcb4e039e" />
                        <MSG STRUCTURE="diag_log_msg1" NAME="vBlankIndex_ is invalid: %d, or vBlankView is nullptr @ui_cross_view.cpp(119),DBG" ID="0xcb4e03be" />
                        <MSG STRUCTURE="diag_log_msg0" NAME="Horizontal current view is nullptr! @ui_cross_view.cpp(150),DBG" ID="0xcb4e04b6" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="horizontal current container is nullptr. @ui_cross_view.cpp(538),ERROR" ID="0xcb4e10d2" />
-                       <MSG STRUCTURE="diag_log_msg0" NAME="horizontal current page is nullptr or it is not coverable. @ui_cross_view.cpp(543),ERROR" ID="0xcb4e10fa" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="horizontal current container is nullptr. @ui_cross_view.cpp(539),ERROR" ID="0xcb4e10da" />
+                       <MSG STRUCTURE="diag_log_msg0" NAME="horizontal current page is nullptr or it is not coverable. @ui_cross_view.cpp(544),ERROR" ID="0xcb4e1102" />
                        </MSG_LOG>
\ No newline at end of file
index 807cef0..9d81049 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_brandy_service.a differ
index 02ddfb2..76cbbc5 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_sdk.a differ
index 91cdef9..4e896a8 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a differ
index bacaa3c..f288166 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a differ
index 7cc5f9f..63f0270 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_brandy_service.a differ
index 3df28f9..5ddd407 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_sdk.a differ
index 5a34925..f86fdc3 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a differ
index 79cb1c3..485d5a8 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a differ
index 58a913f..7d93f9c 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_sdk.a differ
index 1abdef2..3af1955 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_brandy_service.a differ
index 6ba40df..7e6b8ba 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_sdk.a differ
index 2a62b43..5546b2b 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_brandy_service.a differ
index 1dd7bc7..8a9516e 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_sdk.a differ
index 4a2f4b5..7c59246 100644 (file)
@@ -459,8 +459,8 @@ typedef enum {
     VIDEOCARD_CPP,
     DIALBINPARSERV3_CPP,
     DIALTIMEPUBLISHER_CPP,
-    DIALSEQUENCECONTAINER_CPP,
     WATCHINTERFACE_CPP,
+    DIALMODELTIME_CPP,
     FILE_ID_MAX = 1024,
 } log_file_list_enum_gui_t;
 #endif
index c6dbfdd..8ba42a5 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a differ
index 86859b7..bfc3f2c 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a differ
index 4adaa7e..441cef8 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-fd230-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-fd230-r/libgfx_rm.a differ
index deccbf1..441cef8 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-fd230/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-fd230/libgfx_rm.a differ
index 4adaa7e..fbc8006 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a differ
index 4adaa7e..73a22fc 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-xts-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-xts-r/libgfx_rm.a differ
index deccbf1..73a22fc 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-xts/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-xts/libgfx_rm.a differ
index deccbf1..441cef8 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a differ
index e29c3e3..c98fc14 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a differ
index 350f9fb..3e905a2 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a differ
index 084c2e9..941acdb 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a differ
index 0c0b185..c0b0c1a 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a differ
index 3d9e75b..788bded 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target4-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target4-r/libgfx_rm.a differ
index 0c52ab9..e2b31fd 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target4/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target4/libgfx_rm.a differ
index 2322484..082b3da 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a differ
index 90be983..aef687e 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a differ
index 7428413..73a22fc 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a differ
index 5943d14..9e1b022 100644 (file)
Binary files a/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a differ
index 97b7192..1c555ab 100644 (file)
Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a differ
index f3d611c..55d1530 100644 (file)
Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a differ
index f157180..5b7a503 100644 (file)
Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-native-js-fd230/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-native-js-fd230/libdisplay_gfx.a differ
index f157180..5b7a503 100644 (file)
Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-native-js-xts/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-native-js-xts/libdisplay_gfx.a differ
index f157180..5b7a503 100644 (file)
Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-native-js/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-native-js/libdisplay_gfx.a differ
index 9a5cb4e..3325fc9 100644 (file)
Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a differ
index fdd8ba1..2df6c10 100644 (file)
Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a differ
index a9ffd5f..9e3a976 100644 (file)
Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a differ
index dfaf947..93d2d8d 100644 (file)
Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a differ
index 289f885..c065a9f 100644 (file)
Binary files a/code/sdk/middleware/services/gui/lvgl/brandy-target1/liblvgl_proprietary_mini.a and b/code/sdk/middleware/services/gui/lvgl/brandy-target1/liblvgl_proprietary_mini.a differ
index 3abe5ed..597c388 100644 (file)
Binary files a/code/sdk/middleware/services/gui/lvgl/brandy-target5/liblvgl_proprietary.a and b/code/sdk/middleware/services/gui/lvgl/brandy-target5/liblvgl_proprietary.a differ
index b06968c..0938482 100644 (file)
Binary files a/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a differ
index ecbaad8..2856f3d 100644 (file)
Binary files a/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a differ
index 81ecca5..aa77c68 100644 (file)
Binary files a/code/sdk/middleware/services/gui/uikit/brandy-native-js-fd230/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-native-js-fd230/libuikit_ext.a differ
index 81ecca5..aa77c68 100644 (file)
Binary files a/code/sdk/middleware/services/gui/uikit/brandy-native-js-xts/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-native-js-xts/libuikit_ext.a differ
index 81ecca5..aa77c68 100644 (file)
Binary files a/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a differ
index cad2383..fbaddb6 100644 (file)
Binary files a/code/sdk/middleware/services/gui/uikit/brandy-target3/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-target3/libuikit_ext.a differ
index 55fc828..13ebf2c 100644 (file)
Binary files a/code/sdk/middleware/services/gui/uikit/brandy-xts/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-xts/libuikit_ext.a differ
index cb057fc..6cd8cff 100644 (file)
@@ -29,42 +29,137 @@ public:
         return UI_SPHERE_VIEW;\r
     }\r
 \r
-    void Add(UIView* child) override;\r
-    void Remove(UIView* child) override;\r
+    /**\r
+     * @brief Adds a child view.\r
+     *\r
+     * @param view Indicates the pointer to the child view to add.\r
+     * @since 1.0\r
+     * @version 1.0\r
+     */\r
+    void Add(UIView* view) override;\r
+\r
+    /**\r
+     * @brief Inserts a new child view behind the current one.\r
+     *\r
+     * @param prevView Indicates the pointer to the current child view, previous to the new child view to insert.\r
+     * @param insertView Indicates the pointer to the new child view to insert.\r
+     * @since 1.0\r
+     * @version 1.0\r
+     */\r
     void Insert(UIView* prevView, UIView* insertView) override;\r
+\r
+    /**\r
+     * @brief Removes a child view.\r
+     *\r
+     * @param view Indicates the pointer to the child view to remove.\r
+     * @since 1.0\r
+     * @version 1.0\r
+     */\r
+    void Remove(UIView* view) override;\r
+\r
+    /**\r
+     * @brief Sets the number of rows to be displayed.\r
+     *\r
+     * @param numberOfRow Number of rows.\r
+     * @since 1.0\r
+     * @version 1.0\r
+     */\r
     void SetNumberOfRow(uint8_t numberOfRow);\r
-    void SetSphereCameraPosition(const Vector2<float>& position);\r
-    void SetSphereCameraDistance(int16_t distance);\r
+\r
+    /**\r
+     * @brief Get the number of rows to be displayed.\r
+     *\r
+     * @return Number of rows.\r
+     * @since 1.0\r
+     * @version 1.0\r
+     */\r
     uint8_t GetNumberOfRow()\r
     {\r
         return numberOfRow_;\r
     }\r
 \r
+    class ChildStateListener : public HeapBase {\r
+    public:\r
+        /**\r
+        * @brief Callback function when the status of a child control changes.\r
+        *\r
+        * @param view Object of the child control whose state changes.\r
+        * @param rowAngle Rotation angle of the child control in the current row direction.\r
+        * @param colAngle Rotation angle of the child control in the current column direction.\r
+        * @since 1.0\r
+        * @version 1.0\r
+        */\r
+        virtual bool StateChange(UIView& view, float rowAngle, float colAngle)\r
+        {\r
+            return false;\r
+        }\r
+\r
+        virtual ~ChildStateListener() {}\r
+    };\r
+\r
+    /**\r
+     * @brief Listens for the change of the angle status of the child control.\r
+     *\r
+     * @param Object of class ChildStateListener.\r
+     * @since 1.0\r
+     * @version 1.0\r
+     */\r
+    void SetChildStateListener(ChildStateListener* listener)\r
+    {\r
+        listener_ = listener;\r
+    }\r
+\r
+    /**\r
+     * @brief Updates the angle of the current spherical rotation.\r
+     * @param angle Indicates The angle of movement.\r
+     * @since 1.0\r
+     * @version 1.0\r
+     */\r
+    void UpdateItemAngle(float angle);\r
+\r
+    /**\r
+     * @brief Sets the height for the view.\r
+     * @param height Indicates the height to set.\r
+     * @since 1.0\r
+     * @version 1.0\r
+     */\r
+    void SetHeight(int16_t height) override;\r
+\r
+    /**\r
+     * @brief Sets the width for the view.\r
+     * @param width Indicates the width to set.\r
+     * @since 1.0\r
+     * @version 1.0\r
+     */\r
+    void SetWidth(int16_t width) override;\r
+\r
+    /**\r
+     * @brief  Set sensitivity factor.\r
+     *         Drag distance will be converted to angle, and will multiply by this factor.\r
+     */\r
     void SetSensitivityFactor(float sensitivity)\r
     {\r
         sensitivityFactor_ = sensitivity;\r
     }\r
 \r
+    /**\r
+     * @brief  Get sensitivity factor. Default value is 1.0.\r
+     */\r
     float GetSensitivityFactor()\r
     {\r
         return sensitivityFactor_;\r
     }\r
 \r
+    void SetSphereCameraPosition(const Vector2<float>& position);\r
+    void SetSphereCameraDistance(int16_t distance);\r
 #if ENABLE_ROTATE_INPUT\r
     bool OnRotateStartEvent(const RotateEvent& event) override;\r
-\r
     bool OnRotateEvent(const RotateEvent& event) override;\r
-\r
     bool OnRotateEndEvent(const RotateEvent& event) override;\r
 #endif\r
-\r
-    void UpdateItemAngle(float angle);\r
     bool OnDragStartEvent(const DragEvent& event) override;\r
     bool OnDragEvent(const DragEvent& event) override;\r
     bool OnDragEndEvent(const DragEvent& event) override;\r
-    void SetHeight(int16_t height) override;\r
-    void SetWidth(int16_t width) override;\r
-\r
 protected:\r
     bool DragXInner(int16_t distance) override;\r
     bool DragYInner(int16_t distance) override\r
@@ -119,6 +214,7 @@ private:
     void TransformItemGroup();\r
 \r
     Animator dragAnim_;\r
+    ChildStateListener* listener_ = nullptr;\r
     DragAnimatorCallback dragCallback_;\r
     uint8_t numberOfRow_ = 1;\r
     bool needRefreshSphere_ = false;\r
index d1ff6f6..a1103ef 100644 (file)
@@ -131,6 +131,8 @@ public:
     */\r
     void GpuResetEnd(void);\r
 \r
+    void ForceRefreshImmediately();\r
+\r
     static void NativeMainThread(void* args);\r
     static void RtcEventThread(void* args);\r
 \r
index 43eae32..2d79d54 100644 (file)
@@ -169,6 +169,29 @@ void GraphicService::GpuResetEnd(void)
     isGpuReseting = false;\r
 }\r
 \r
+void GraphicService::ForceRefreshImmediately()\r
+{\r
+    using namespace OHOS;\r
+    if (GraphicService::GetInstance()->GetGraphicTaskTriggeredCount() <= 0) {\r
+        osal_atomic_inc(&graphicTaskTriggeredCount_);\r
+        GraphicEventHandler::GetInstance()->PostGraphicEvent([] {\r
+            if (GraphicService::GetInstance()->IsScreenOn() && isJsTaskFinished_) {\r
+                TaskManager::GetInstance()->TaskHandler();\r
+                LiteMGfxEngine::GetInstance()->SyncHwDraw();\r
+            } else {\r
+                GRAPHIC_LOGW("ignore redundant task when screen is off or js task is not finished");\r
+            }\r
+            GraphicService::GetInstance()->DecreaseTriggerCount();\r
+        });\r
+        return;\r
+    }\r
+    GraphicEventHandler::GetInstance()->PostGraphicEvent([]() {\r
+        if (GraphicService::GetInstance()->IsScreenOn() && isJsTaskFinished_) {\r
+            LiteMGfxEngine::GetInstance()->SyncHwDraw();\r
+        }\r
+    });\r
+}\r
+\r
 void GraphicService::EnableAsyncMode(bool enable)\r
 {\r
     OHOS::LiteMGfxEngine::GetInstance()->EnableAsyncMode(enable);\r
index 7e9b3ba..710978e 100644 (file)
 \r
 namespace OHOS {\r
 static constexpr uint8_t STEP_SIZE = 10;\r
-\r
 UITestSphereView::UITestSphereView()\r
 {\r
 }\r
 \r
+const UIView* UITestSphereView::GetTestView()\r
+{\r
+    return container_;\r
+}\r
+\r
 void UITestSphereView::SetUp()\r
 {\r
     container_ = new UIViewGroup();\r
@@ -36,6 +40,10 @@ void UITestSphereView::SetUp()
     sphereView_ = new UISphereView(8); // 8: Setting the Number of Displayed Lines.\r
     sphereView_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
     sphereView_->SetThrowDrag(true);\r
+    if (listener_ == nullptr) {\r
+        listener_ = new UITestSphereView::StateListener();\r
+        sphereView_->SetChildStateListener(listener_);\r
+    }\r
     sphereView_->RequestFocus();\r
     container_->Add(sphereView_);\r
     for (uint8_t i = 0; i < 24; i++) { // 24: item number.\r
@@ -69,6 +77,10 @@ void UITestSphereView::TearDown()
     addItemBt_ = nullptr;\r
     updateCameraDistance = nullptr;\r
     removeItemBt_ = nullptr;\r
+    if (listener_ != nullptr) {\r
+        delete listener_;\r
+        listener_ = nullptr;\r
+    }\r
 }\r
 \r
 void UITestSphereView::SetUpLabelButton()\r
@@ -116,11 +128,6 @@ void UITestSphereView::SetUpLabelButton()
     controlGroup_->Add(updateCameraDistance);\r
 }\r
 \r
-const UIView* UITestSphereView::GetTestView()\r
-{\r
-    return container_;\r
-}\r
-\r
 bool UITestSphereView::OnClick(UIView& view, const ClickEvent& event)\r
 {\r
     int16_t x = sphereView_->GetX();\r
index f13f956..a051d37 100644 (file)
@@ -29,6 +29,19 @@ public:
     const UIView* GetTestView() override;\r
     bool OnClick(UIView& view, const ClickEvent& event) override;\r
 private:\r
+    class StateListener : public UISphereView::ChildStateListener {\r
+    public:\r
+        bool StateChange(UIView& view, float rowAngle, float colAngle) override\r
+        {\r
+            if (FloatMore(rowAngle, 90.0f) && FloatLess(rowAngle, 270.0f)) { // 90 270: angle range\r
+                view.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE >> 1);\r
+            } else {\r
+                view.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);\r
+            }\r
+            return true;\r
+        }\r
+    };\r
+\r
     void SetUpLabelButton();\r
     UIViewGroup* container_ = nullptr;\r
     UISphereView* sphereView_ = nullptr;\r
@@ -40,6 +53,7 @@ private:
     UILabelButton* addItemBt_ = nullptr;\r
     UILabelButton* removeItemBt_ = nullptr;\r
     UILabelButton* updateCameraDistance = nullptr;\r
+    StateListener* listener_ = nullptr;\r
 };\r
 }\r
 #endif
\ No newline at end of file
index 4f71ebc..33a2d79 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a differ
index dbeea41..8f40ca6 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a differ
index d4d36d3..319a378 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-native-js-fd230-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-fd230-r/libx_vfs_private.a differ
index 5f84674..319a378 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-native-js-fd230/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-fd230/libx_vfs_private.a differ
index d4d36d3..23120b6 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a differ
index d4d36d3..319a378 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-native-js-xts-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-xts-r/libx_vfs_private.a differ
index 5f84674..319a378 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-native-js-xts/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-xts/libx_vfs_private.a differ
index 5f84674..319a378 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-native-js/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-native-js/libx_vfs_private.a differ
index 53ac754..bb57d22 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target1-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target1-r/libx_vfs_private.a differ
index 0e2d1ef..e52a1e6 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a differ
index 6951132..24b0b2f 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a differ
index ade8e66..0e5855e 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a differ
index 2c25d4a..97f4e64 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a differ
index a8eda51..09bfd60 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target4/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target4/libx_vfs_private.a differ
index 1e71bec..c2ee0d6 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target5-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target5-r/libx_vfs_private.a differ
index 59e8e59..4809629 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target5/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target5/libx_vfs_private.a differ
index 9aee13f..b466e66 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a differ
index 2469af9..e80292f 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a differ
index 23a8abb..a276ed7 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a differ
index 07d8ad0..46d1ef5 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a differ
index dfbf369..3e07c7c 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a differ
index 7a5f00f..b9ee512 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-fd230-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-fd230-r/libfs_yaffs2.a differ
index d5edc8c..b9ee512 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-fd230/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-fd230/libfs_yaffs2.a differ
index 7a5f00f..3a01352 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-r/libfs_yaffs2.a differ
index 7a5f00f..b9ee512 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-xts-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-xts-r/libfs_yaffs2.a differ
index d5edc8c..b9ee512 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-xts/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-xts/libfs_yaffs2.a differ
index d5edc8c..b9ee512 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js/libfs_yaffs2.a differ
index c4d553a..7a071ef 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a differ
index c2b76c4..e554b69 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a differ
index 005f8ea..46e3f75 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target3-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target3-r/libfs_yaffs2.a differ
index ad03209..82c7390 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target3/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target3/libfs_yaffs2.a differ
index db1bc69..9c98734 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a differ
index f9c30b3..1c923b4 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a differ
index f293709..6407173 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a differ
index 918e2f7..16ee624 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target5/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target5/libfs_yaffs2.a differ
index f7a618b..3813b9e 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a differ
index 027f4e2..a6315c3 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a differ
index e8670d9..81b00d7 100644 (file)
Binary files a/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a differ
index 9b98211..ed105e4 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a differ
index c61d30c..bce4d9a 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a differ
index ce7a53d..8279bdf 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js-fd230/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js-fd230/libams.a differ
index ce7a53d..8279bdf 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js-xts/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js-xts/libams.a differ
index ce7a53d..8279bdf 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js/libams.a differ
index cc6ff5d..38fd934 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a differ
index b9e8339..6f1bca9 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a differ
index 7f42d31..bd6f95e 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-ser/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-ser/libace.a differ
index 634ec02..f829a58 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js-fd230/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js-fd230/libace.a differ
index 634ec02..f829a58 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js-xts/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js-xts/libace.a differ
index 634ec02..f829a58 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js/libace.a differ
index 4c139f2..8956622 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a differ
index 9826884..72e2b6a 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a differ
index 33284f5..bdaa356 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a differ
index 3faa0d3..ac4194c 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js-fd230/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js-fd230/libbms.a differ
index 3faa0d3..ac4194c 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js-xts/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js-xts/libbms.a differ
index 3faa0d3..ac4194c 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js/libbms.a differ
index 8d7c947..0c761ce 100644 (file)
Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a differ
index fba453f..a74badd 100644 (file)
Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a differ
index f3d1ede..79e6ede 100644 (file)
Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a differ
index 934e948..00de31c 100644 (file)
Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js-fd230/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js-fd230/libjerryscript.a differ
index 934e948..00de31c 100644 (file)
Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js-xts/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js-xts/libjerryscript.a differ
index 934e948..00de31c 100644 (file)
Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js/libjerryscript.a differ
index 5548a92..845c578 100644 (file)
Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a differ