From 31f44801ffd961b70c5ca2353007856beebb3f7b Mon Sep 17 00:00:00 2001 From: SnickerSun Date: Tue, 2 Jul 2024 20:32:37 +0800 Subject: [PATCH] =?utf8?q?patch0626=20=E9=80=82=E9=85=8D=20fd230app?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../wearable/fd230app/CMakeLists.txt | 14 +- .../nativelauncher/include/UiConfig.h | 4 + .../nativeui/applist/include/AppItemView.h | 8 +- .../nativeui/applist/include/ApplistModel.h | 21 +- .../nativeui/applist/src/ApplistModel.cpp | 84 ++--- .../nativeui/applist/src/ApplistPresenter.cpp | 2 +- .../bluetooth/include/BluetoothWrapper.h | 31 ++ .../bluetooth/src/BluetoothWrapper.cpp | 318 ++++++++++++++++++ .../connectnewphone/src/ConnectOpenView.cpp | 7 +- .../src/ConnectPhonePresenter.cpp | 25 +- .../main/include/dial/DialDigitalImgView.h | 2 +- .../main/include/dial/DialViewGroup.h | 5 +- .../nativeui/main/src/MainPresenterSample.cpp | 19 +- .../main/src/dial/DialDigitalImgView.cpp | 41 ++- .../nativeui/main/src/dial/DialViewGroup.cpp | 12 + .../main/src/dial/parser/DialBinParser.cpp | 6 +- .../phoneservice/src/PhoneService.cpp | 28 +- .../nativeui/rtcservice/src/RtcService.cpp | 1 - .../set_desktop/include/SetDesktopModel.h | 1 + .../set_desktop/include/SetDesktopPresenter.h | 3 +- .../set_desktop/include/SetDesktopView.h | 8 +- .../set_desktop/src/SetDesktopModel.cpp | 4 + .../set_desktop/src/SetDesktopPresenter.cpp | 13 +- .../set_desktop/src/SetDesktopView.cpp | 63 +++- .../set_dial/include/SetDialPresenter.h | 5 +- .../nativeui/set_dial/include/SetDialView.h | 11 + .../set_dial/src/SetDialPresenter.cpp | 5 + .../nativeui/set_dial/src/SetDialView.cpp | 65 +++- .../include/SetDialStyleModel.h | 41 +++ .../include/SetDialStylePresenter.h | 37 ++ .../set_dial_style/include/SetDialStyleView.h | 45 +++ .../set_dial_style/src/SetDialStyleModel.cpp | 43 +++ .../src/SetDialStylePresenter.cpp | 41 +++ .../set_dial_style/src/SetDialStyleView.cpp | 93 +++++ .../themestyle/include/ThemeStyleModel.h | 8 +- .../nativeui/uiservice/src/ui_service.cpp | 37 +- .../media/evb_standard/libjs_audio_capturer.a | Bin 249298 -> 249298 bytes 37 files changed, 1002 insertions(+), 149 deletions(-) create mode 100644 code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothWrapper.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothWrapper.cpp create mode 100644 code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStyleModel.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStylePresenter.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStyleView.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStyleModel.cpp create mode 100644 code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp create mode 100644 code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStyleView.cpp diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index 26b8b4f4e..7010e6088 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -8,7 +8,7 @@ set(PUBLIC_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/nativelauncher/include/slices/main ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/screennotify/include ${CMAKE_CURRENT_SOURCE_DIR}/nativeui - + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/include ) set(PRIVATE_HEADER @@ -37,6 +37,7 @@ set(PRIVATE_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_card/include ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/add_card/include ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial_style/include ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/key/include ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phone/include ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/include @@ -57,7 +58,9 @@ set(PRIVATE_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include/AlipayList ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include/AlipayTrans - + + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/themestyle/include + ${UI_SAMPLE_ROOT}/components ${CMAKE_CURRENT_SOURCE_DIR}/../service/smart_voice/smart_voice_service/interfaces/innerkits/native_c/include ${CMAKE_CURRENT_SOURCE_DIR}/../service/smart_voice/voice_engine_hal/interfaces/innerkits/native_c/include @@ -65,7 +68,6 @@ set(PRIVATE_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/../../battery ${CMAKE_CURRENT_SOURCE_DIR}/../../../drivers/drivers/driver/rtc_unified ${CMAKE_CURRENT_SOURCE_DIR}/../../../kernel/liteos/liteos_v207.1.0/Huawei_LiteOS/compat/linux/include/uapi/linux/ - ${ROOT_DIR}/middleware/services/gui/uikit/proprietary/src/utils/innerkits ${ROOT_DIR}/middleware/services/gui/uikit/proprietary/include ${ROOT_DIR}/middleware/services/gui/uikit/proprietary/src/ui/frameworks @@ -80,6 +82,8 @@ set(PRIVATE_HEADER ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/kits ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/innerkits + ${ROOT_DIR}/middleware/services/gui/uikit/ui/interfaces/innerkits + ${ROOT_DIR}/middleware/services/gui/uikit/ui/frameworks ${ROOT_DIR}/middleware/services/gui/uikit/surface/interfaces/kits ${ROOT_DIR}/middleware/services/gui/uikit/ui/interfaces/kits ${ROOT_DIR}/middleware/services/gui/uikit/ui/interfaces/kits/components @@ -166,6 +170,7 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothWrapper.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/MainBluetoothView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothEarPhoneView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/TipsConnFailMessageView.cpp @@ -282,6 +287,9 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial/src/SetDialModel.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial/src/SetDialPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial/src/SetDialView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial_style/src/SetDialStyleModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial_style/src/SetDialStylePresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial_style/src/SetDialStyleView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/key/src/KeyInputListener.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/screennotify/src/ui_screennotify.cpp diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h index 6b9ee61a5..0bca5bf66 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h @@ -277,6 +277,10 @@ namespace OHOS static constexpr const char *PNG_APPLIST_AIVOICE_IMAGE = APP_LIST_PATH "/aivoice.bin"; // AI Voice(人工智能语音) static constexpr const char *PNG_APPLIST_SLEEP_IMAGE = APP_LIST_PATH "/sleeping.bin"; // 睡眠 + // AppList hexagon icon + static constexpr const char *PNG_APPLIST_DEFAULT_IMG = APP_RES_PATH"/regular_hexagon.bin"; + static constexpr const char *PNG_APPLIST_NOTSETUSE_IMG = APP_RES_PATH"/regular_hexagon_inverse.bin"; + /* ---------------------------------- 快速训练 ---------------------------------- */ static constexpr const char *PNG_TRAING_BOUTTONMORE_IMAGE = APP_RES_PATH "/Training/More.bin"; static constexpr const char *PNG_TRAING_BUTTONGRONG_IMAGE = APP_RES_PATH "/Training/Bouttonground.bin"; diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h b/code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h index 0d5166ad1..080a52e0f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h @@ -1,8 +1,8 @@ /* * @Author: luozheng 1732036298@qq.com * @Date: 2024-04-08 16:43:48 - * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-05-06 16:52:38 + * @LastEditors: SnickerSun snickersun@163.com + * @LastEditTime: 2024-07-02 19:45:18 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h */ @@ -42,7 +42,7 @@ private: //UILabel label_; //AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr, nullptr }; UILabelExt labelExt_; - AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr,STR_EXERCISE_GENERAL, nullptr }; + AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr,nullptr,STR_EXERCISE_GENERAL, nullptr }; }; class HexagonsItemView : public UIImageView { @@ -55,7 +55,7 @@ public: private: HexagonsItemView(const HexagonsItemView &); HexagonsItemView &operator = (const HexagonsItemView &); - AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr,STR_EXERCISE_GENERAL, nullptr }; + AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr,nullptr,STR_EXERCISE_GENERAL, nullptr }; }; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistModel.h b/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistModel.h index 1aa5a8738..8ea91609f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistModel.h @@ -1,8 +1,8 @@ /* * @Author: luozheng 1732036298@qq.com * @Date: 2024-04-08 16:43:48 - * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-05-06 16:57:20 + * @LastEditors: SnickerSun snickersun@163.com + * @LastEditTime: 2024-07-02 20:03:25 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistModel.h */ /* @@ -21,6 +21,7 @@ #include"language/font/ui_resource_string.h" #include "ohos_types.h" +#include "ThemeStyleModel.h" #define APP_MAX_NUM 50 namespace OHOS { @@ -28,11 +29,22 @@ typedef struct { AppViewId id; const char *iconLarge; const char *iconSmall; + const char *iconHexagon; const char *label; uint16_t TextId; const char *uid; } AppItem; + +#define AppListStyle ThemeStyle + +// typedef enum : uint16_t +// { +// APPLIST_STYLE, // 列表显示 +// HEXAGONS_STYLE, // 蜂窝显示 +// FOOTBALL_STYLE, //足球 +// MAX_THEME_STYLE, +// } AppListStyle; class ApplistPresenter; class ApplistModel { public: @@ -48,7 +60,8 @@ public: int GetHeadItemY(void); void ApplistUpdate(void); void SetPresenter(ApplistPresenter *p); - bool GetIsUseListStyle(void); + AppListStyle GetCurrentStyle(void); + private: ApplistModel(); ApplistModel(const ApplistModel &); @@ -56,7 +69,7 @@ private: virtual ~ApplistModel(); ApplistPresenter *presenter{nullptr}; - AppItem applist[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr,STR_EXERCISE_GENERAL, nullptr }; + AppItem applist[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr,nullptr,STR_EXERCISE_GENERAL, nullptr }; BundleInfo *bundleInfos = nullptr; int32 bundleLen = 0; uint8 appLen = 0; diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp index dff4a565e..5c32ff9b5 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp @@ -21,7 +21,7 @@ #include "applist/include/ApplistPresenter.h" #include "SetDesktopModel.h" #include "themestyle/include/ThemeStyleModel.h" - +#include "set_desktop/include/SetDesktopView.h" namespace OHOS { /**- APPLSIT @@ -60,46 +60,46 @@ namespace OHOS * - 设置 */ const AppItem g_nativeAppList[] = { - {VIEW_BLOODOXY, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_SPO2_IMAGE, "血氧", STR_BLOOD_OXYGEN, nullptr}, - {VIEW_HEART, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_HEART_IMAGE, "心率", STR_HEART_RATE, nullptr}, - {VIEW_TRAINING, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_TRAINING_IMAGE, "训练", STR_TRAINING, nullptr}, - {VIEW_TRAINING_RECORD, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_TRAINING_RECORD_IMAGE, "训练记录", STR_TRAINING_RECORD, nullptr}, - {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_COMPASS_IMAGE, "指南针", STR_COMPASS, nullptr}, - {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, "电话", STR_PHONE, nullptr}, - {VIEW_CALLER_LOG, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, "常用联系人", STR_FAVORITE_CONTACTS, nullptr}, - {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_WEATHER_IMAGE, "天气", STR_WEATHER, nullptr}, - {VIEW_GOAL, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_GOAL_IMAGE, "活动", STR_ACTIVITY, nullptr}, - {VIEW_SET_DIAL, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, "更换表盘", STR_WATCH_FACE, nullptr}, - {VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, "显示方式", STR_DISPLAY_MODE, nullptr}, - {VIEW_ADD_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, "卡片管理", STR_CARD_MANAGEMENT, nullptr}, - {VIEW_SLEEP, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_SLEEP_IMAGE, "睡眠", STR_SLEEP, nullptr}, - {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_RECORD_IMAGE, "录音", STR_RECORD, nullptr}, - {VIEW_RESPIRATORY_TRAINING, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_BREATHE_IMAGE, "呼吸训练", STR_BREATH_TRAINING, nullptr}, - {VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_TACKEPHOTOS_IMAGE, "遥控拍照", STR_REMOTE_SHOOTING, nullptr}, + {VIEW_BLOODOXY, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_DEFAULT_IMG,"血氧", STR_BLOOD_OXYGEN, nullptr}, + {VIEW_HEART, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_DEFAULT_IMG,"心率", STR_HEART_RATE, nullptr}, + {VIEW_TRAINING, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_DEFAULT_IMG,"训练", STR_TRAINING, nullptr}, + {VIEW_TRAINING_RECORD, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG,"训练记录", STR_TRAINING_RECORD, nullptr}, + {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_DEFAULT_IMG,"指南针", STR_COMPASS, nullptr}, + {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE,PNG_APPLIST_DEFAULT_IMG,"电话", STR_PHONE, nullptr}, + {VIEW_CALLER_LOG, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_DEFAULT_IMG,"常用联系人", STR_FAVORITE_CONTACTS, nullptr}, + {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_DEFAULT_IMG,"天气", STR_WEATHER, nullptr}, + {VIEW_GOAL, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_DEFAULT_IMG,"活动", STR_ACTIVITY, nullptr}, + {VIEW_SET_DIAL, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_DEFAULT_IMG,"更换表盘", STR_WATCH_FACE, nullptr}, + {VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG,"显示方式", STR_DISPLAY_MODE, nullptr}, + {VIEW_ADD_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_DEFAULT_IMG,"卡片管理", STR_CARD_MANAGEMENT, nullptr}, + {VIEW_SLEEP, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_DEFAULT_IMG,"睡眠", STR_SLEEP, nullptr}, + {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG,"录音", STR_RECORD, nullptr}, + {VIEW_RESPIRATORY_TRAINING, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"呼吸训练", STR_BREATH_TRAINING, nullptr}, + {VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_TACKEPHOTOS_IMAGE,PNG_APPLIST_DEFAULT_IMG, "遥控拍照", STR_REMOTE_SHOOTING, nullptr}, #ifdef SUPPORT_ALIPAY_SEC - {VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_ALIPAY_IMAGE, "支付宝", STR_ALIPAY, nullptr}, + {VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_DEFAULT_IMG,"支付宝", STR_ALIPAY, nullptr}, #endif - {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_COUNTDOWN_IMAGE, "计时器", STR_TIMER, nullptr}, - {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE, "查找手机", STR_FIND_PHONE, nullptr}, - {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, "亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr}, - {VIEW_SOUND_VIBRATION, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_VOICE_IMAGE, "声音", STR_SOUND, nullptr}, - {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, "蓝牙", STR_BLUETOOTH, nullptr}, - {VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, "勿扰模式", STR_DO_NOT_DISTURB, nullptr}, - {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, "消息通知", STR_MESSAGE_NOTIFICATION, nullptr}, - {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, "省电模式", STR_POWER_SAVE_MODE, nullptr}, - {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, "手电筒", STR_FLASHLIGHT, nullptr}, - {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, "设置", STR_SETTINGS, nullptr}, - //{VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_AIVOICE_IMAGE, "AI Voice", STR_AI_VOICE, nullptr}, + {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_DEFAULT_IMG,"计时器", STR_TIMER, nullptr}, + {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE,PNG_APPLIST_DEFAULT_IMG, "查找手机", STR_FIND_PHONE, nullptr}, + {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE,PNG_APPLIST_DEFAULT_IMG, "亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr}, + {VIEW_SOUND_VIBRATION, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"声音", STR_SOUND, nullptr}, + {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_DEFAULT_IMG,"蓝牙", STR_BLUETOOTH, nullptr}, + {VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DEFAULT_IMG,"勿扰模式", STR_DO_NOT_DISTURB, nullptr}, + {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"消息通知", STR_MESSAGE_NOTIFICATION, nullptr}, + {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"省电模式", STR_POWER_SAVE_MODE, nullptr}, + {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_DEFAULT_IMG,"手电筒", STR_FLASHLIGHT, nullptr}, + {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG,"设置", STR_SETTINGS, nullptr}, + //{VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"AI Voice", STR_AI_VOICE, nullptr}, #if 0 /*屏蔽Slice*/ - {VIEW_LANGUAGE_SWITCH, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, "语言切换", nullptr}, - {VIEW_MAIN_TEMP, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_TEMP_IMAGE, "体温", nullptr}, - {VIEW_OFFLINEVOICE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_VOCASSIST_IMAGE, "语音助手", nullptr}, - {VIEW_UISAMPLE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_UI_SAMPLE_IMAGE, "示例", nullptr}, - {VIEW_MESSAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, "信息通知", nullptr}, - {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, "室内步行", nullptr}, - {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, "室内步行",STR_ACTIVITY, nullptr}, + {VIEW_LANGUAGE_SWITCH, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"语言切换", nullptr}, + {VIEW_MAIN_TEMP, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_DEFAULT_IMG,"体温", nullptr}, + {VIEW_OFFLINEVOICE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_DEFAULT_IMG,"语音助手", nullptr}, + {VIEW_UISAMPLE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"示例", nullptr}, + {VIEW_MESSAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_DEFAULT_IMG,"信息通知", nullptr}, + {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_DEFAULT_IMG,"室内步行", nullptr}, + {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_DEFAULT_IMG,"室内步行",STR_ACTIVITY, nullptr}, #endif }; @@ -177,6 +177,7 @@ namespace OHOS applist[appLen].id = VIEW_EXTERN_APP; applist[appLen].iconLarge = bundleInfos[len].smallIconPath; applist[appLen].iconSmall = bundleInfos[len].smallIconPath; + applist[appLen].iconHexagon = bundleInfos[len].bigIconPath; applist[appLen].label = bundleInfos[len].label; applist[appLen].uid = bundleInfos[len].bundleName; @@ -244,8 +245,15 @@ namespace OHOS presenter = p; } - bool ApplistModel::GetIsUseListStyle(void) + AppListStyle ApplistModel::GetCurrentStyle(void) { - return (ThemeStyleModel::GetInstance().GetAppListDisplayStyle() == APPLIST_STYLE); + uint8_t currenStyle = SetDesktopView::GetInstance()->GetCurrentSelectedStyle(); + if (currenStyle == 1) { // 1: hexagons desktop style + return HEXAGONS_STYLE; + } else if (currenStyle == 2) { // 2: football desktop style + return FOOTBALL_STYLE; + } else { + return APPLIST_STYLE; + } } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistPresenter.cpp index 894097b44..13e77d442 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistPresenter.cpp @@ -190,7 +190,7 @@ namespace OHOS { bool ApplistPresenter::GetIsUseListStyle(void) { - return model->GetIsUseListStyle(); + return model->GetCurrentStyle() == APPLIST_STYLE; } ApplistView* ApplistPresenter::GetAppListView() diff --git a/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothWrapper.h b/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothWrapper.h new file mode 100644 index 000000000..3c645feb1 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothWrapper.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: BluetoothWrapper + * Author: + * Create: 2021-10-13 + */ +#ifndef BLUETOOTH_WRAPPER_H +#define BLUETOOTH_WRAPPER_H + +#include "common_def.h" +#include "bts_def.h" +#include "bts_gatt_stru.h" +#include "bts_gatt_server.h" +#include "bts_le_gap.h" + +#ifdef __cplusplus +extern "C" { +#endif + +errcode_t wrapper_gap_ble_register_callbacks(gap_ble_callbacks_t *func); +errcode_t wrapper_gatts_register_callbacks(gatts_callbacks_t *func); +void wrapper_ble_register(void); +errcode_t wrapper_gatts_register_server(bt_uuid_t *app_uuid, uint8_t *server_id); +errcode_t wrapper_gatts_add_service(uint8_t server_id, bt_uuid_t *service_uuid, bool is_primary); +void wrapper_gatts_service_start(void); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothWrapper.cpp b/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothWrapper.cpp new file mode 100644 index 000000000..fd9dd57f0 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothWrapper.cpp @@ -0,0 +1,318 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: BluetoothModel view + * Author: + * Create: 2021-10-13 + */ + +#include +#include "BluetoothWrapper.h" + +#ifdef __cplusplus +extern "C" { +#endif + +static bool gatts_register_flag = false; +static uint8_t gatts_server_id = 0; +std::list g_gap_ble_callback_list; +std::list g_gatts_callback_list; +std::list g_uuid_list; +std::list g_svr_handle_list; + +errcode_t wrapper_gap_ble_register_callbacks(gap_ble_callbacks_t *func) +{ + g_gap_ble_callback_list.push_back(*func); + return ERRCODE_SUCC; +} + +errcode_t wrapper_gatts_register_callbacks(gatts_callbacks_t *func) +{ + g_gatts_callback_list.push_back(*func); + return ERRCODE_SUCC; +} + +void wrapper_gap_ble_enable_callback(errcode_t status) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.ble_enable_cb != nullptr) { + callback.ble_enable_cb(status); + } + } +} + +void wrapper_gap_ble_disable_callback(errcode_t status) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.ble_disable_cb != nullptr) { + callback.ble_disable_cb(status); + } + } +} + +void wrapper_gap_ble_start_adv_callback(uint8_t adv_id, adv_status_t status) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.start_adv_cb) { + callback.start_adv_cb(adv_id, status); + } + } +} + +void wrapper_gap_ble_stop_adv_callback(uint8_t adv_id, adv_status_t status) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.stop_adv_cb) { + callback.stop_adv_cb(adv_id, status); + } + } +} + +void wrapper_gap_ble_set_adv_data_callback(uint8_t adv_id, errcode_t status) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.set_adv_data_cb) { + callback.set_adv_data_cb(adv_id, status); + } + } +} + +void wrapper_gap_ble_set_adv_param_callback(uint8_t adv_id, errcode_t status) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.set_adv_param_cb) { + callback.set_adv_param_cb(adv_id, status); + } + } +} + +void wrapper_gap_ble_scan_result_callback(gap_scan_result_data_t *scan_result_data) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.scan_result_cb) { + callback.scan_result_cb(scan_result_data); + } + } +} + +void wrapper_gap_ble_set_scan_param_callback(errcode_t status) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.set_scan_param_cb) { + callback.set_scan_param_cb(status); + } + } +} + +void wrapper_gap_ble_connect_state_changed_callback(uint16_t conn_id, bd_addr_t *addr, gap_ble_conn_state_t conn_state, + gap_ble_pair_state_t pair_state, gap_ble_disc_reason_t disc_reason) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.conn_state_change_cb) { + callback.conn_state_change_cb(conn_id, addr, conn_state, pair_state, disc_reason); + } + } +} + +void wrapper_gap_ble_paired_complete_callback(uint16_t conn_id, const bd_addr_t *addr, errcode_t status) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.pair_result_cb) { + callback.pair_result_cb(conn_id, addr, status); + } + } +} + +void wrapper_gap_ble_terminate_adv_callback(uint8_t adv_id, adv_status_t status) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.terminate_adv_cb) { + callback.terminate_adv_cb(adv_id, status); + } + } +} + +void wrapper_gap_ble_read_rssi_callback(uint16_t conn_id, int8_t rssi, errcode_t status) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.read_rssi_cb) { + callback.read_rssi_cb(conn_id, rssi, status); + } + } +} + +void wrapper_gap_ble_auth_complete_callback(uint16_t conn_id, const bd_addr_t *addr, + errcode_t status, const ble_auth_info_evt_t* evt) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.auth_complete_cb) { + callback.auth_complete_cb(conn_id, addr, status, evt); + } + } +} + +void wrapper_gap_ble_connect_param_update_callback(uint16_t conn_id, errcode_t status, + const gap_ble_conn_param_update_t *param) +{ + for (auto callback : g_gap_ble_callback_list) { + if (callback.conn_param_update_cb) { + callback.conn_param_update_cb(conn_id, status, param); + } + } +} + +void wrapper_gatts_add_service_callback(uint8_t server_id, bt_uuid_t *uuid, uint16_t handle, errcode_t status) +{ + g_svr_handle_list.push_back(handle); + for (auto callback : g_gatts_callback_list) { + if (callback.add_service_cb) { + callback.add_service_cb(server_id, uuid, handle, status); + } + } +} +void wrapper_gatts_add_characteristic_callback(uint8_t server_id, bt_uuid_t *uuid, uint16_t service_handle, + gatts_add_character_result_t *result, errcode_t status) +{ + for (auto callback : g_gatts_callback_list) { + if (callback.add_characteristic_cb) { + callback.add_characteristic_cb(server_id, uuid, service_handle, result, status); + } + } +} +void wrapper_gatts_add_descriptor_callback(uint8_t server_id, bt_uuid_t *uuid, uint16_t service_handle, + uint16_t handle, errcode_t status) +{ + for (auto callback : g_gatts_callback_list) { + if (callback.add_descriptor_cb) { + callback.add_descriptor_cb(server_id, uuid, service_handle, handle, status); + } + } +} +void wrapper_gatts_start_service_callback(uint8_t server_id, uint16_t handle, errcode_t status) +{ + bool skip_flag = true; + for (auto svr_handle : g_svr_handle_list) { + if (svr_handle == handle) { + skip_flag = false; + } + } + if (!skip_flag) { + for (auto callback : g_gatts_callback_list) { + if (callback.start_service_cb) { + callback.start_service_cb(server_id, handle, status); + } + } + wrapper_gatts_service_start(); + } +} +void wrapper_gatts_stop_service_callback(uint8_t server_id, uint16_t handle, errcode_t status) +{ + for (auto callback : g_gatts_callback_list) { + if (callback.stop_service_cb) { + callback.stop_service_cb(server_id, handle, status); + } + } +} +void wrapper_gatts_delete_all_service_callback(uint8_t server_id, errcode_t status) +{ + for (auto callback : g_gatts_callback_list) { + if (callback.delete_service_cb) { + callback.delete_service_cb(server_id, status); + } + } +} +void wrapper_gatts_read_request_callback(uint8_t server_id, uint16_t conn_id, gatts_req_read_cb_t *read_cb_para, errcode_t status) +{ + for (auto callback : g_gatts_callback_list) { + if (callback.read_request_cb) { + callback.read_request_cb(server_id, conn_id, read_cb_para, status); + } + } +} +void wrapper_gatts_write_request_callback(uint8_t server_id, uint16_t conn_id, gatts_req_write_cb_t *write_cb_para, errcode_t status) +{ + for (auto callback : g_gatts_callback_list) { + if (callback.write_request_cb) { + callback.write_request_cb(server_id, conn_id, write_cb_para, status); + } + } +} +void wrapper_gatts_mtu_changed_callback(uint8_t server_id, uint16_t conn_id, uint16_t mtu_size, errcode_t status) +{ + for (auto callback : g_gatts_callback_list) { + if (callback.mtu_changed_cb) { + callback.mtu_changed_cb(server_id, conn_id, mtu_size, status); + } + } +} + +static gap_ble_callbacks_t g_wrapper_gap_ble_callbacks = { + .ble_enable_cb = wrapper_gap_ble_enable_callback, + .ble_disable_cb = wrapper_gap_ble_disable_callback, + .set_adv_data_cb = wrapper_gap_ble_set_adv_data_callback, + .set_adv_param_cb = wrapper_gap_ble_set_adv_param_callback, + .set_scan_param_cb = wrapper_gap_ble_set_scan_param_callback, + .start_adv_cb = wrapper_gap_ble_start_adv_callback, + .stop_adv_cb = wrapper_gap_ble_stop_adv_callback, + .scan_result_cb = wrapper_gap_ble_scan_result_callback, + .conn_state_change_cb = wrapper_gap_ble_connect_state_changed_callback, + .pair_result_cb = wrapper_gap_ble_paired_complete_callback, + .read_rssi_cb = wrapper_gap_ble_read_rssi_callback, + .terminate_adv_cb = wrapper_gap_ble_terminate_adv_callback, + .auth_complete_cb = wrapper_gap_ble_auth_complete_callback, + .conn_param_update_cb = wrapper_gap_ble_connect_param_update_callback, +}; + +static gatts_callbacks_t g_wrapper_gatts_callbacks = { + .add_service_cb = wrapper_gatts_add_service_callback, + .add_characteristic_cb = wrapper_gatts_add_characteristic_callback, + .add_descriptor_cb = wrapper_gatts_add_descriptor_callback, + .start_service_cb = wrapper_gatts_start_service_callback, + .stop_service_cb = wrapper_gatts_stop_service_callback, + .delete_service_cb = wrapper_gatts_delete_all_service_callback, + .read_request_cb = wrapper_gatts_read_request_callback, + .write_request_cb = wrapper_gatts_write_request_callback, + .mtu_changed_cb = wrapper_gatts_mtu_changed_callback, +}; + +void wrapper_ble_register(void) +{ + gap_ble_register_callbacks(&g_wrapper_gap_ble_callbacks); + gatts_register_callbacks(&g_wrapper_gatts_callbacks); +} + + +errcode_t wrapper_gatts_register_server(bt_uuid_t *app_uuid, uint8_t *server_id) +{ + errcode_t ret = ERRCODE_SUCC; + if (gatts_register_flag) { + *server_id = gatts_server_id; + ret = ERRCODE_SUCC; + } else { + gatts_register_flag = true; + ret = gatts_register_server(app_uuid, server_id); + gatts_server_id = *server_id; + } + return ret; +} + +errcode_t wrapper_gatts_add_service(uint8_t server_id, bt_uuid_t *service_uuid, bool is_primary) +{ + g_uuid_list.push_back(*service_uuid); + return ERRCODE_SUCC; +} + +void wrapper_gatts_service_start(void) +{ + if (!g_uuid_list.empty()) { + bt_uuid_t &uuid = g_uuid_list.front(); + // 服务异步添加,需要保证当前服务start后,再添加下一个服务 + (void)gatts_add_service(gatts_server_id, &uuid, true); + g_uuid_list.pop_front(); + } else { + g_svr_handle_list.clear(); + } +} + +#ifdef __cplusplus +} +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/connectnewphone/src/ConnectOpenView.cpp b/code/sdk/application/wearable/fd230app/nativeui/connectnewphone/src/ConnectOpenView.cpp index b68888a45..fbc3e9262 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/connectnewphone/src/ConnectOpenView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/connectnewphone/src/ConnectOpenView.cpp @@ -7,7 +7,7 @@ #include "wearable_log.h" #include "UiConfig.h" #include "ConnectPhonePresenter.h" - +#include "custom_utils.h" namespace OHOS { static ConnectOpenView *g_pConnectOpenView{nullptr}; ConnectOpenView::ConnectOpenView() @@ -45,7 +45,10 @@ void ConnectOpenView::ShowUpBackView() return; } watchNameLabel->SetPosition(0, 165, HORIZONTAL_RESOLUTION, 45); // 0:x 244:y 454:width 45:height - watchNameLabel->SetText(ConnectPhonePresenter::GetInstance()->getWatchName()); + uint8_t btname[32]={0}; + uint32_t len=sizeof(btname); + uapi_get_nv_btname(btname,&len); + watchNameLabel->SetText((char*)btname); watchNameLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40:font data watchNameLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE); watchNameLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, diff --git a/code/sdk/application/wearable/fd230app/nativeui/connectnewphone/src/ConnectPhonePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/connectnewphone/src/ConnectPhonePresenter.cpp index 67014059c..deb576cbd 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/connectnewphone/src/ConnectPhonePresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/connectnewphone/src/ConnectPhonePresenter.cpp @@ -11,7 +11,6 @@ #include "bts_le_gap.h" #include "drag_event.h" #include "cmsis_os.h" -#include "tcxo.h" #include "UiConfig.h" #include "wearable_log.h" @@ -77,11 +76,11 @@ void ConnectPhonePresenter::RemovePair() unsigned int connedDevicesNum = 0; bool ret = gap_get_paired_devices_num(&connedDevicesNum); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Setup GetPariedDevicesNum ret = %d, num = %d", ret, connedDevicesNum); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Setup GapGetPariedDevicesNum ret = %d, num = %d", ret, connedDevicesNum); if (connedDevicesNum != 0) { gap_paired_device_info_t *devInfo = (gap_paired_device_info_t *)malloc(sizeof(gap_paired_device_info_t) * connedDevicesNum); - if (devInfo == NULL) { + if (devInfo == nullptr) { return; } ret = gap_get_paired_devices_list(devInfo, (int *)&connedDevicesNum); @@ -95,27 +94,18 @@ void ConnectPhonePresenter::RemovePair() } free(devInfo); } + + (void)gap_ble_remove_all_pairs(); } void ConnectPhonePresenter::ConfirmOnClick() { bool ret; - - memset_s(watchName, sizeof(watchName), 0, sizeof(watchName)); - (void)sprintf_s(watchName, sizeof(watchName), "Watch%x", ((uint32_t)uapi_tcxo_get_us() & 0xFFFF)); - - ret = bluetooth_set_local_name((unsigned char*)watchName, strlen((char*)watchName) + 1); - if (ret == false) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectPhonePresenter: bt SetLocalName ret = 0x%x", ret); - } - ret = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 60); // start scan - if (ret == false) { + if (!ret) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectPhonePresenter bt gap_br_set_bt_scan_mode ret = 0x%x", ret); } -#ifndef SUPPORT_ALIPAY_SEC BleAdvStart(); -#endif } bool ConnectPhonePresenter::OnDrag(UIView& view, const DragEvent& event) @@ -131,9 +121,4 @@ bool ConnectPhonePresenter::OnDrag(UIView& view, const DragEvent& event) return true; } -char* ConnectPhonePresenter::getWatchName() -{ - return watchName; } - -} \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDigitalImgView.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDigitalImgView.h index 443c325ee..2817eabc9 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDigitalImgView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDigitalImgView.h @@ -39,7 +39,7 @@ public: private: void SetNumImg(UIImageView* img, const ImageInfo *info); void FillIntegerPart(uint16_t intVal); - void FillDecimalPart(uint16_t intVal); + void FillDecimalPart(float data); void HandlePosition(); bool CreateImageViews(float data); diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialViewGroup.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialViewGroup.h index d50a7d395..8f139fbfa 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialViewGroup.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialViewGroup.h @@ -112,11 +112,14 @@ public: * @brief This function is invoked when the function SetHorCurrentPage() is called. */ void OnActive(void) override; - + + void OnInactive(void) override; + private: bool resLoadStatus{false}; + private: void ProcessData(DialDataType type, DialView* view); std::unordered_map dataTypeMap_; diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp index cc060b91e..1d62bc5b7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp @@ -308,16 +308,15 @@ namespace OHOS { return; } - state_ = playersView->GetPlayerButtonState(); - if (state_ == UICheckBox::UICheckBoxState::SELECTED) - { - int32_t playerState; - PlayersModel::GetInstance()->GetPlayerCtr()->GetPlayerState(playerState); - if (playerState != PLAYER_STARTED) - { - playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED); - return; - } + int32_t playerState; + PlayersModel::GetInstance()->GetPlayerCtr()->GetPlayerState(playerState); + state_ = playersView->GetPlayerButtonState(); + if ((playerState != PLAYER_STARTED) && (state_ == UICheckBox::UICheckBoxState::SELECTED)) { + playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED); + } else if ((playerState == PLAYER_STARTED) && (state_ == UICheckBox::UICheckBoxState::UNSELECTED)) { + playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::SELECTED); + } + if (state_ == UICheckBox::UICheckBoxState::SELECTED) { PlayersModel::GetInstance()->GetPlayerCtr()->GetCurrentTime(playerCurrentTime_); PlayersModel::GetInstance()->GetDuration(playerMusicDuration_); if (playerMusicDuration_ != 0) diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialDigitalImgView.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialDigitalImgView.cpp index 04ccf1052..065036851 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialDigitalImgView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialDigitalImgView.cpp @@ -89,9 +89,18 @@ void DialDigitalImgView::SetNumImg(UIImageView* img, const ImageInfo *info) currentIndex_++; } +static uint8_t GetValueLength(uint16_t value) +{ + uint8_t length = 1; + if (value > 0) { + length = log10(value) + 1; + } + return length; +} + void DialDigitalImgView::FillIntegerPart(uint16_t intVal) { - uint8_t length = log10(intVal) + 1; + uint8_t length = GetValueLength(intVal); if (length < allocIntegerLen_) { for (uint8_t i = 0; i < (allocIntegerLen_ - length); i++) { SetNumImg(imgs_[currentIndex_], numInfo_[0]); @@ -103,18 +112,21 @@ void DialDigitalImgView::FillIntegerPart(uint16_t intVal) } } -void DialDigitalImgView::FillDecimalPart(uint16_t intVal) +void DialDigitalImgView::FillDecimalPart(float data) { - uint8_t length = log10(intVal) + 1; - if (length < decimalPrecision_) { - for (uint8_t i = 0; i < (decimalPrecision_ - length); i++) { + uint8_t startIndex = GetValueLength(static_cast(abs(data))) + 1; + char dataStr[10] = {'\0'}; // 10: max number of digits. + sprintf_s(dataStr, 10, "%f", data); // 10: size of dataStr + + for (uint8_t i = 0; i < decimalPrecision_; i++) { + uint8_t index = startIndex + i; + if ((index < 10) && (dataStr[index] != '\0')) { // 10: size of dataStr + uint8_t val = dataStr[index] - '0'; + SetNumImg(imgs_[currentIndex_], numInfo_[val]); + } else { SetNumImg(imgs_[currentIndex_], numInfo_[0]); } } - for (uint8_t i = 0; i < length; i++) { - uint8_t curNum = static_cast(intVal / (pow(10, length - i - 1))) % 10; // 10: conversion - SetNumImg(imgs_[currentIndex_], numInfo_[curNum]); - } } void DialDigitalImgView::HandlePosition() @@ -134,6 +146,7 @@ void DialDigitalImgView::HandlePosition() for (uint8_t i = 0; i < currentIndex_; i++) { parent_->Add(imgs_[i]); imgs_[i]->SetPosition(curX, alignPos_.y); + imgs_[i]->Invalidate(); curX += imgs_[i]->GetWidth() + space_; } } @@ -141,8 +154,9 @@ void DialDigitalImgView::HandlePosition() bool DialDigitalImgView::CreateImageViews(float data) { uint8_t imgCnt = 0; - uint32_t integer = static_cast(abs(data)); - uint8_t actualIntegerLen = log10(integer) + 1; + uint16_t integer = static_cast(abs(data)); + + uint8_t actualIntegerLen = GetValueLength(integer); if (integerLength_ == 0) { imgCnt = actualIntegerLen; @@ -164,6 +178,7 @@ bool DialDigitalImgView::CreateImageViews(float data) if (imgCnt_ != 0) { for (uint8_t i = 0; i < imgCnt_; i++) { if (parent_ != nullptr) { + imgs_[i]->Invalidate(); parent_->Remove(imgs_[i]); } } @@ -210,9 +225,7 @@ void DialDigitalImgView::HandleFloatData(float data) if (decimalPrecision_ != 0 && decimalPointInfo_ != nullptr) { SetNumImg(imgs_[currentIndex_], decimalPointInfo_); - // 10: conversion - uint16_t decimalVal = static_cast((abs(data) - intVal) * (pow(10, decimalPrecision_))); - FillDecimalPart(decimalVal); + FillDecimalPart(data); } HandlePosition(); value_ = data; diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp index c0185778d..ec66f2cb6 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp @@ -397,4 +397,16 @@ void DialViewGroup::OnActive(void) kaleidoscope_->StartRotateAnimator(); } } + +void DialViewGroup::OnInactive(void) +{ + if (video_ != nullptr) { + if (!video_->IsStopped()) { + video_->StopPlay(); + } + } else if (kaleidoscope_ != nullptr) { + kaleidoscope_->StopRotateAnimator(); + kaleidoscope_->ClearFocus(); + } +} } diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/parser/DialBinParser.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/parser/DialBinParser.cpp index b2978d168..a61df4821 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/parser/DialBinParser.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/parser/DialBinParser.cpp @@ -93,21 +93,21 @@ bool DialBinParser::GetDialPreviewInfo(FILE* fp, DialPreviewInfo* info) if (memcpy_s(info->dialName, DIAL_NAME_MAX_LEN, dialHeader->dialName, DIAL_NAME_MAX_LEN) != EOK) { GRAPHIC_LOGE("[%s: %d]memcpy_s dial name fail!\n", __FUNCTION__, __LINE__); - free(dialHeader); + UIFree(dialHeader); return false; } if (memcpy_s(info->description, DIAL_DESCRIPTION_MAX_LEN, dialHeader->description, DIAL_DESCRIPTION_MAX_LEN) != EOK) { GRAPHIC_LOGE("[%s: %d]memcpy_s dial description fail!\n", __FUNCTION__, __LINE__); - free(dialHeader); + UIFree(dialHeader); return false; } info->imgId = dialHeader->previewImgId | dirId_; info->offset = dialHeader->imageOffset; - free(dialHeader); + UIFree(dialHeader); return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp index bada5b8de..055adb27a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp @@ -1093,41 +1093,43 @@ void HfpIncomingEventPublish(uint16 topic, hfp_hf_calls_info_t callsInfo) { int32 ret; uint32 size = sizeof(hfp_hf_calls_info_t); - Request *request = nullptr; BroadcastApi *broadcastApi = nullptr; IUnknown *api = nullptr; WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HfpIncomingEventPublish topic=%u!!", topic); - /* alloc request */ - request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, BROADCAST_SVR_ID, size); - if (request == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SAMGR_AllocRequestMsg failed"); + void *publishData = malloc(size); + if (publishData == nullptr) { return; } - request->msgId = topic; - ret = memcpy_s(request->data, size, (const void *)&callsInfo, size); + ret = memcpy_s(publishData, size, (const void *)&callsInfo, size); if (ret != EOK) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HfpIncomingEventPublish memcpy_s rateDataTmp fail! ret:%d", ret); + free(publishData); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HfpIncomingEventPublish memcpy_s fail! ret = %d", ret); return; } - request->len = size; - request->msgValue = 0; + + Request request = { + .msgId = topic, + .len = size, + .msgValue = 0, + .data = publishData, + }; /* public request */ api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME); if (api == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed"); - SAMGR_FreeRequestMsg(request); + free(publishData); return; } ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi); if (ret != 0 || broadcastApi == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed"); - SAMGR_FreeRequestMsg(request); + free(publishData); return; } - broadcastApi->PublishTopic((IUnknown *)broadcastApi, request); + broadcastApi->PublishTopic((IUnknown *)broadcastApi, &request); broadcastApi->Release((IUnknown *)broadcastApi); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HfpIncomingEventPublish end!!"); diff --git a/code/sdk/application/wearable/fd230app/nativeui/rtcservice/src/RtcService.cpp b/code/sdk/application/wearable/fd230app/nativeui/rtcservice/src/RtcService.cpp index 088111b52..423c7e6ea 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/rtcservice/src/RtcService.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/rtcservice/src/RtcService.cpp @@ -82,7 +82,6 @@ static BOOL ServiceMessageHandle(Service *service, Request *request) if (request == nullptr) { return FALSE; } - SAMGR_FreeRequestMsg(request); return TRUE; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopModel.h b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopModel.h index 500f1a030..1365f7ac6 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopModel.h @@ -18,6 +18,7 @@ typedef enum { APPLIST_STYLE, //列表显示 HEXAGONS_STYLE, //蜂窝显示 + FOOTBALL_STYLE } DesktopStyle; namespace OHOS { diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopPresenter.h index 165c6d95a..b208dcf87 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopPresenter.h @@ -22,6 +22,7 @@ namespace OHOS { static const char *SET_DESKTOP_LIST = "setdesktopList"; static const char *SET_DESKTOP_HEXAGONS = "setdesktopHexagons"; +static const char *SET_DESKTOP_FOOTBALL = "setdesktopFootball"; class SetDesktopView; class SetDesktopModel; @@ -42,7 +43,7 @@ public: bool OnDrag(UIView& view, const DragEvent& event) override; bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件 - bool GetHexagonsStyleState(void); + uint8_t GetCurrentStyle(void); private: }; diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopView.h b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopView.h index d1827c77a..1a6a808c9 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopView.h @@ -36,15 +36,21 @@ public: void OnSetUpView() override; void OnTearDownView() override; void OnStop() override; - void UpdateSelectedStyle(bool hexagonsSelected); + void UpdateSelectedStyle(uint8_t selectedStyle); + uint8_t GetCurrentSelectedStyle(void); + private: + void InitFootballItem(); UILabel titleText; UIToggleButton hexagonsBtn; UIToggleButton listBtn; + UIToggleButton footballBtn_; UIImageView hexagonsImage; UIImageView listImage; + UIImageView footballImage_; UILabel listText; UILabel hexagonsText; + UILabel footballText_; }; } #endif // SET_DESKTOP_VIEW_H diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopModel.cpp index c84a75079..17459538a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopModel.cpp @@ -30,6 +30,8 @@ namespace OHOS { (void)UtilsGetValue("applist_style", temp, STYLE_VALUE_LEN); if (strcmp(temp, "hexagons") == 0) { style = HEXAGONS_STYLE; + } else if (strcmp(temp, "football") == 0) { + style = FOOTBALL_STYLE; } else { style = APPLIST_STYLE; } @@ -42,6 +44,8 @@ namespace OHOS { (void)UtilsSetValue("applist_style", "list"); } else if (style == HEXAGONS_STYLE) { (void)UtilsSetValue("applist_style", "hexagons"); + } else if (style == FOOTBALL_STYLE) { + (void)UtilsSetValue("applist_style", "football"); } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopPresenter.cpp index 527a7283b..abc616b65 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopPresenter.cpp @@ -71,17 +71,26 @@ namespace OHOS { SetDesktopModel::GetInstance().SetDesktopStyle(HEXAGONS_STYLE); } else if (strcmp(view.GetViewId(), SET_DESKTOP_LIST) == 0) { SetDesktopModel::GetInstance().SetDesktopStyle(APPLIST_STYLE); + } else if (strcmp(view.GetViewId(), SET_DESKTOP_FOOTBALL) == 0) { + SetDesktopModel::GetInstance().SetDesktopStyle(FOOTBALL_STYLE); } //uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId(); //NativeAbility::GetInstance().ChangeSlice(preSlice); NativeAbility::GetInstance().Back(); return true; } - bool SetDesktopPresenter::GetHexagonsStyleState(void) + uint8_t SetDesktopPresenter::GetCurrentStyle(void) { - return (SetDesktopModel::GetInstance().GetDesktopStyle() == HEXAGONS_STYLE); + DesktopStyle style = SetDesktopModel::GetInstance().GetDesktopStyle(); + if (style == HEXAGONS_STYLE) { + return 1; // 1: hexagons style enum index + } else if (style == FOOTBALL_STYLE) { + return 2; // 2: football style enum index + } + return 0; } + bool SetDesktopPresenter::OnKeyAct(UIView &view, const KeyEvent &event) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDesktopPresenter::OnKeyAct"); diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopView.cpp b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopView.cpp index 9609c70a5..90c134da5 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopView.cpp @@ -47,41 +47,43 @@ void SetDesktopView::OnSetUpView() titleText.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); container_->Add(&titleText); - listImage.SetPosition(25, 135, 190, 190); + listImage.SetPosition(0, 135, 190, 190); listImage.SetSrc(PNG_SET_DESKTOP_BG_IMAGE); container_->Add(&listImage); - listBtn.SetPosition(47, 157, 148, 148); + listBtn.SetPosition(22, 157, 148, 148); listBtn.SetImages(PNG_SET_DESKTOP_LIST_IMAGE, PNG_SET_DESKTOP_LIST_IMAGE); listBtn.SetViewId(SET_DESKTOP_LIST); container_->Add(&listBtn); - listText.SetPosition(96, 328, 200, 60); + listText.SetPosition(61, 328, 200, 60); listText.SetText("列表"); listText.SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); listText.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); listText.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); container_->Add(&listText); - hexagonsImage.SetPosition(247, 135, 190, 190); + hexagonsImage.SetPosition(150, 135, 190, 190); hexagonsImage.SetSrc(PNG_SET_DESKTOP_BG_IMAGE); container_->Add(&hexagonsImage); - hexagonsBtn.SetPosition(267, 157, 148, 148); + hexagonsBtn.SetPosition(172, 157, 148, 148); hexagonsBtn.SetImages(PNG_SET_DESKTOP_HEXAGONS_IMAGE, PNG_SET_DESKTOP_HEXAGONS_IMAGE); hexagonsBtn.SetViewId(SET_DESKTOP_HEXAGONS); container_->Add(&hexagonsBtn); - hexagonsText.SetPosition(305, 328, 200, 60); + hexagonsText.SetPosition(218, 328, 200, 60); hexagonsText.SetText("蜂窝"); hexagonsText.SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); hexagonsText.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); hexagonsText.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); container_->Add(&hexagonsText); + InitFootballItem(); listBtn.SetOnClickListener(presenter_); hexagonsBtn.SetOnClickListener(presenter_); - UpdateSelectedStyle(presenter_->GetHexagonsStyleState()); + footballBtn_.SetOnClickListener(presenter_); + UpdateSelectedStyle(presenter_->GetCurrentStyle()); } void SetDesktopView::OnTearDownView() @@ -101,11 +103,48 @@ void SetDesktopView::OnStop() } } -void SetDesktopView::UpdateSelectedStyle(bool hexagonsSelected) +void SetDesktopView::UpdateSelectedStyle(uint8_t selectedStyle) { - listImage.SetVisible(!hexagonsSelected); - hexagonsImage.SetVisible(hexagonsSelected); - hexagonsBtn.SetState(hexagonsSelected); - listBtn.SetState(!hexagonsSelected); + hexagonsImage.SetVisible(false); + hexagonsBtn.SetState(false); + listImage.SetVisible(false); + listBtn.SetState(false); + footballImage_.SetVisible(false); + footballBtn_.SetState(false); + + if (selectedStyle == 1) { // 1: select hexagons style + hexagonsImage.SetVisible(true); + hexagonsBtn.SetState(true); + } else if (selectedStyle == 2) { // 2: select football style + footballImage_.SetVisible(true); + footballBtn_.SetState(true); + } else { + listImage.SetVisible(true); + listBtn.SetState(true); + } +} + +void SetDesktopView::InitFootballItem() +{ + footballImage_.SetPosition(300, 135, 190, 190); + footballImage_.SetSrc(PNG_SET_DESKTOP_BG_IMAGE); + container_->Add(&footballImage_); + + footballBtn_.SetPosition(322, 157, 148, 148); + footballBtn_.SetImages(PNG_SET_DESKTOP_HEXAGONS_IMAGE, PNG_SET_DESKTOP_HEXAGONS_IMAGE); + footballBtn_.SetViewId(SET_DESKTOP_FOOTBALL); + container_->Add(&footballBtn_); + + footballText_.SetPosition(368, 328, 200, 60); + footballText_.SetText("足球"); + footballText_.SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); + footballText_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); + footballText_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + container_->Add(&footballText_); +} + +uint8_t SetDesktopView::GetCurrentSelectedStyle() +{ + return presenter_->GetCurrentStyle(); } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialPresenter.h index 1af1cc92c..fb895078b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialPresenter.h @@ -11,6 +11,7 @@ #include "SetDialModel.h" #include "Presenter.h" #include "components/ui_view.h" +#include "components/ui_roller_view.h" #include "KeyInputListener.h" #include "ModelListenerSample.h" @@ -22,7 +23,8 @@ class SetDialView; class SetDialModel; class SetDialPresenter : public Presenter, public UIView::OnClickListener, public ModelListenerSample, - public UICoverflowView::OnCoverflowScrollListener { + public UICoverflowView::OnCoverflowScrollListener, + public UIRollerView::OnScrollListener { public: SetDialPresenter(); ~SetDialPresenter() override; @@ -35,6 +37,7 @@ public: void OnTickEvent() override; void Notify() override {} bool OnScroll() override; + void OnScroll(UIRollerView* roller, std::string currentItemName, float currentItemAngle) override; bool OnClick(UIView &view, const ClickEvent &event) override; void ResetTickTimer(void); private: diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialView.h b/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialView.h index 0a7f564fe..0a0408dfd 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialView.h @@ -11,6 +11,7 @@ #include "View.h" #include "components/ui_view_group.h" #include "components/ui_coverflow_view.h" +#include "components/ui_roller_view.h" #include "window/window.h" #include "BaseView.h" #include "ChangeSliceListener.h" @@ -20,6 +21,12 @@ namespace OHOS { static constexpr uint8_t DIVISOR_TWO = 2; class SetDialPresenter; +enum class DialStyle { + COVERFLOW = 0, + ROLLER, + STYLE_NUM +}; + class SetDialView : public View { public: SetDialView(); @@ -36,10 +43,14 @@ public: void OnTearDownView() override; void OnStop() override; void CoverflowViewScroll(void); + void RollerViewScroll(std::string currentItemName, float currentItemAngle); uint8_t GetCoverflowPage(void); private: void SetUpCoverflowView(void); + void SetUpRollerView(void); UICoverflowView coverflow_; + UIRollerView rollerView_; + int16_t rollerItemNum_ = 0; UILabel label_; uint8_t lastIndex_; }; diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp index 6ad00d507..2dc21b60e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp @@ -67,6 +67,11 @@ namespace OHOS { return true; } + void SetDialPresenter::OnScroll(UIRollerView* roller, std::string currentItemName, float currentItemAngle) + { + view_->RollerViewScroll(currentItemName, currentItemAngle); + } + size_t SetDialPresenter::GetDialCount(void) { return model->GetDialCount(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialView.cpp b/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialView.cpp index daa69cd6f..82a55d015 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialView.cpp @@ -8,6 +8,7 @@ #include #include "SetDialView.h" #include "SetDialPresenter.h" +#include "SetDialStyleModel.h" namespace OHOS { SetDialView::SetDialView() @@ -26,7 +27,11 @@ void SetDialView::OnStart() View::OnStart(); SetContainerView(new UIViewGroup()); container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); - SetUpCoverflowView(); + if (SetDialStyleModel::GetInstance().GetStyle() == DialStyle::COVERFLOW) { + SetUpCoverflowView(); + } else { + SetUpRollerView(); + } } void SetDialView::SetUpCoverflowView(void) @@ -35,6 +40,7 @@ void SetDialView::SetUpCoverflowView(void) coverflow_.SetIntercept(true); coverflow_.SetOnCoverflowListener(presenter_); coverflow_.SetOnClickListener(presenter_); + coverflow_.SetThrowDrag(true); std::vector &dialInfo = presenter_->GetDialInfo(); for (auto iter : dialInfo) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDialView::SetUpCoverflowView %s", @@ -49,11 +55,43 @@ void SetDialView::SetUpCoverflowView(void) label_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); label_.SetText(dialInfo[lastIndex_].dialName.c_str()); label_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); - + container_->Add(&coverflow_); container_->Add(&label_); } +void SetDialView::SetUpRollerView(void) +{ + rollerView_.SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + rollerView_.SetItemSize(150, 150); // 150: item size + rollerView_.SetThrowDrag(true); + rollerView_.SetItemPadding(80); // 80: item padding + container_->Add(&rollerView_); + + std::vector &dialInfo = presenter_->GetDialInfo(); + for (auto iter : dialInfo) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDialView::SetUpRollerView %s", + iter.dialName.c_str()); + bool succ = rollerView_.AddItem(iter.dialName, iter.preImageInfo); + rollerItemNum_ += succ ? 1 : 0; + } + float scalerCoef = 0.55; + uint16_t w = Screen::GetInstance().GetWidth(); + uint16_t h = Screen::GetInstance().GetHeight(); + rollerView_.SetItemSize(w * scalerCoef, h * scalerCoef); + lastIndex_ = presenter_->GetPageIndex(); + rollerView_.SetCurrentItem(dialInfo[lastIndex_].dialName); + rollerView_.SetOnClickListener(presenter_); + rollerView_.SetOnScrollListener(presenter_); + + label_.SetPosition(127, 50, 200, 50); + label_.SetTextColor(Color::White()); + label_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + label_.SetText(dialInfo[lastIndex_].dialName.c_str()); + label_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); + container_->Add(&label_); +} + void SetDialView::OnSetUpView() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDialView::OnSetUpView"); @@ -111,6 +149,29 @@ void SetDialView::CoverflowViewScroll(void) presenter_->ResetTickTimer(); } +void SetDialView::RollerViewScroll(std::string currentItemName, float currentItemAngle) +{ + const float baseAngle = 360.0; + const float halfBaseAngle = 180.0; + if (FloatMoreEqual(currentItemAngle, halfBaseAngle)) { + currentItemAngle -= baseAngle; + } + if (currentItemAngle < 0) { + currentItemAngle = -currentItemAngle; + } + float maxAngle = baseAngle / rollerItemNum_; + float coef = 1.0 - 1.0 / (maxAngle) * currentItemAngle; + label_.SetStyle(STYLE_TEXT_OPA, coef * OPA_OPAQUE); + label_.SetText(currentItemName.c_str()); + std::vector &dialInfo = presenter_->GetDialInfo(); + for (uint8_t i = 0; i < dialInfo.size(); ++i) { + if (dialInfo[i].dialName == currentItemName) { + lastIndex_ = i; + } + } + presenter_->ResetTickTimer(); +} + uint8_t SetDialView::GetCoverflowPage(void) { return lastIndex_; diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStyleModel.h b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStyleModel.h new file mode 100644 index 000000000..c27e3007a --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStyleModel.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: SetDialStyleModel.h + * Author: + * Create: 2024-06-06 + */ + +#ifndef SET_DIAL_STYLE_MODEL_H +#define SET_DIAL_STYLE_MODEL_H +#include "SetDialView.h" +#include "components/ui_view.h" + +namespace OHOS { +class SetDialStyleModel { +public: + static SetDialStyleModel& GetInstance() + { + static SetDialStyleModel model; + return model; + } + + void SetStyle(DialStyle style); + DialStyle GetStyle(); + +private: + constexpr static uint8_t MAX_LEN = 32; + const char key_[MAX_LEN] = "set_dial_style"; + struct { + const DialStyle style; + const char value[MAX_LEN]; + } values_[static_cast(DialStyle::STYLE_NUM)] = { + {DialStyle::COVERFLOW, "DialStyle::COVERFLOW"}, + {DialStyle::ROLLER, "DialStyle::ROLLER"}, + }; + SetDialStyleModel(); + ~SetDialStyleModel(); + SetDialStyleModel(const SetDialStyleModel&) = delete; + SetDialStyleModel& operator=(const SetDialStyleModel&) = delete; +}; +} // OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStylePresenter.h b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStylePresenter.h new file mode 100644 index 000000000..fda918ece --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStylePresenter.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: SetDialStylePresenter.h + * Author: + * Create: 2024-06-06 + */ + +#ifndef SET_DIAL_STYLE_PRESENTER_H +#define SET_DIAL_STYLE_PRESENTER_H +#include "SetDialView.h" +#include "components/ui_view.h" +#include "Presenter.h" + +namespace OHOS { +class SetDialStyleModel; +class SetDialStyleView; +class SetDialStylePresenter : public Presenter, + public UIView::OnClickListener, + public UIView::OnDragListener { +public: + SetDialStylePresenter(); + ~SetDialStylePresenter(); + SetDialStylePresenter(const SetDialStylePresenter&) = delete; + SetDialStylePresenter& operator=(const SetDialStylePresenter&) = delete; + bool OnClick(UIView &view, const ClickEvent &event) override; + bool OnDrag(UIView& view, const DragEvent& event) override; + DialStyle GetCurrentStyle() const + { + return curStyle_; + } + +private: + DialStyle curStyle_ = DialStyle::COVERFLOW; +}; + +} // OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStyleView.h b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStyleView.h new file mode 100644 index 000000000..3b1a93221 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStyleView.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: SetDialStyleView.h + * Author: + * Create: 2024-06-06 + */ + +#ifndef SET_DIAL_STYLE_VIEW_H +#define SET_DIAL_STYLE_VIEW_H +#include "components/ui_view.h" +#include "components/ui_label.h" +#include "components/ui_view_group.h" +#include "components/ui_toggle_button.h" +#include "SetDialView.h" +#include "View.h" + +namespace OHOS { +class SetDialStylePresenter; +class SetDialStyleView : public View { +public: + SetDialStyleView(); + ~SetDialStyleView() override; + SetDialStyleView(const SetDialStyleView &) = delete; + SetDialStyleView& operator=(const SetDialStyleView &) = delete; + + void OnStart() override; + void OnSetUpView() override; + void OnStop() override; + void OnClick(UIView &view); + +private: + UILabel labelCover_; + UILabel labelRoller_; + UIToggleButton btnCover_; + UIToggleButton btnRoller_; + struct { + UIToggleButton *btn; + DialStyle style; + } styleTable_[static_cast(DialStyle::STYLE_NUM)] = { + {&btnCover_, DialStyle::COVERFLOW}, + {&btnRoller_, DialStyle::ROLLER}, + }; +}; +} // OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStyleModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStyleModel.cpp new file mode 100644 index 000000000..81d833aef --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStyleModel.cpp @@ -0,0 +1,43 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: SetDialStyleModel.cpp + * Author: + * Create: 2024-06-06 + */ + +#include "SetDialStyleModel.h" +#include "kv_store.h" + +namespace OHOS { +void SetDialStyleModel::SetStyle(DialStyle style) +{ + int len = sizeof(values_) / sizeof(values_[0]); + for (int i = 0; i < len; ++i) { + if (values_[i].style == style) { + UtilsSetValue(key_, values_[i].value); + break; + } + } +} + +DialStyle SetDialStyleModel::GetStyle() +{ + int len = sizeof(values_) / sizeof(values_[0]); + char temp[MAX_LEN]; + UtilsGetValue(key_, temp, MAX_LEN); + for (int i = 0; i < len; ++i) { + if (strcmp(temp, values_[i].value) == 0) { + return values_[i].style; + } + } + return DialStyle::COVERFLOW; +} + +SetDialStyleModel::SetDialStyleModel() +{ +} + +SetDialStyleModel::~SetDialStyleModel() +{ +} +} // OHOS \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp new file mode 100644 index 000000000..6dbc2837a --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp @@ -0,0 +1,41 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: SetDialStylePresenter.cpp + * Author: + * Create: 2024-06-06 + */ + +#include "SetDialStyleView.h" +#include "SetDialStyleModel.h" +#include "SetDialStylePresenter.h" + +namespace OHOS { +SetDialStylePresenter::SetDialStylePresenter() +{ + Attach(&SetDialStyleModel::GetInstance()); +} + +SetDialStylePresenter::~SetDialStylePresenter() +{ +} + +bool SetDialStylePresenter::OnClick(UIView &view, const ClickEvent &event) +{ + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDialStylePresenter::OnClick"); + view_->OnClick(view); + return true; +} + +bool SetDialStylePresenter::OnDrag(UIView& view, const DragEvent& event) +{ + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDialStylePresenter::OnDrag"); + UNUSED(view); + if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) && + (event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnDrag ChangeSlice"); + uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId(); + NativeAbility::GetInstance().ChangeSlice(preSlice); + } + return true; +} +} // OHOS \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStyleView.cpp b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStyleView.cpp new file mode 100644 index 000000000..86901f059 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStyleView.cpp @@ -0,0 +1,93 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: SetDialStyleView.cpp + * Author: + * Create: 2024-06-06 + */ + +#include "SetDialStyleView.h" +#include "SetDialStyleModel.h" +#include "SetDialStylePresenter.h" + +namespace OHOS { +SetDialStyleView::SetDialStyleView() +{ +} + +SetDialStyleView::~SetDialStyleView() +{ +} + +void SetDialStyleView::OnStart() +{ + View::OnStart(); + SetContainerView(new UIViewGroup); + if (container_ == nullptr) { + return; + } + container_->SetDraggable(true); + container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + container_->SetOnDragListener(presenter_); + container_->SetTouchable(true); +} + +void SetDialStyleView::OnSetUpView() +{ + if (container_ == nullptr) { + return; + } + View::OnSetUpView(); + labelCover_.SetPosition(96, 328, 200, 60); + labelCover_.SetText("Coverflow"); + container_->Add(&labelCover_); + + labelRoller_.SetPosition(305, 328, 200, 60); + labelRoller_.SetText("Roller"); + container_->Add(&labelRoller_); + + btnCover_.SetPosition(47, 157, 148, 148); + container_->Add(&btnCover_); + btnRoller_.SetPosition(267, 157, 148, 148); + container_->Add(&btnRoller_); + + const DialStyle style = SetDialStyleModel::GetInstance().GetStyle(); + int len = sizeof(styleTable_) / sizeof(styleTable_[0]); + for (int i = 0; i < len; ++i) { + if (style == styleTable_[i].style) { + styleTable_[i].btn->SetState(true); + } else { + styleTable_[i].btn->SetState(false); + } + } + + btnCover_.SetOnClickListener(presenter_); + btnRoller_.SetOnClickListener(presenter_); +} + +void SetDialStyleView::OnStop() +{ + View::OnStop(); + if (container_ != nullptr) { + container_->RemoveAll(); + delete container_; + container_ = nullptr; + } +} + +void SetDialStyleView::OnClick(UIView &view) +{ + const UIToggleButton *ptr = dynamic_cast(&view); + if (ptr == nullptr) { + return; + } + int len = sizeof(styleTable_) / sizeof(styleTable_[0]); + for (int i = 0; i < len; ++i) { + if (ptr == styleTable_[i].btn) { + styleTable_[i].btn->SetState(true); + SetDialStyleModel::GetInstance().SetStyle(styleTable_[i].style); + } else { + styleTable_[i].btn->SetState(false); + } + } +} +} // OHOS \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/themestyle/include/ThemeStyleModel.h b/code/sdk/application/wearable/fd230app/nativeui/themestyle/include/ThemeStyleModel.h index 2b5f3371c..00dd7e39a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/themestyle/include/ThemeStyleModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/themestyle/include/ThemeStyleModel.h @@ -1,8 +1,8 @@ /* * @Author: luozheng 1732036298@qq.com * @Date: 2024-06-14 09:40:13 - * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-06-18 14:42:57 + * @LastEditors: SnickerSun snickersun@163.com + * @LastEditTime: 2024-07-02 20:02:35 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/themestyle/include/ThemeStyleModel.h */ #ifndef SET_THEMESTYLE_MODEL_H @@ -20,11 +20,13 @@ namespace OHOS static constexpr const char *THEMESTYLE_KEY = "applist_style"; static constexpr const char *THEMESTYLE_VALUE_LIST = "list"; static constexpr const char *THEMESTYLE_VALUE_HEXAGONS = "hexagons"; + static constexpr const char *THEMESTYLE_VALUE_FOOTBALL = "football"; typedef enum : uint16_t { APPLIST_STYLE, // 列表显示 HEXAGONS_STYLE, // 蜂窝显示 + FOOTBALL_STYLE, //足球 MAX_THEME_STYLE, } ThemeStyle; @@ -32,6 +34,7 @@ namespace OHOS const std::map ThemeStyleMap = { {ThemeStyle::APPLIST_STYLE, THEMESTYLE_VALUE_LIST}, {ThemeStyle::HEXAGONS_STYLE, THEMESTYLE_VALUE_HEXAGONS}, + {ThemeStyle::FOOTBALL_STYLE, THEMESTYLE_VALUE_FOOTBALL}, // 在此处添加更多的映射关系 }; @@ -39,6 +42,7 @@ namespace OHOS const std::unordered_map ReverseThemeStyleMap = { {THEMESTYLE_VALUE_LIST, ThemeStyle::APPLIST_STYLE}, {THEMESTYLE_VALUE_HEXAGONS, ThemeStyle::HEXAGONS_STYLE}, + {THEMESTYLE_VALUE_FOOTBALL, ThemeStyle::FOOTBALL_STYLE}, // 在此处添加更多的映射关系 }; diff --git a/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp b/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp index 06b501c5d..8a12eaab0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp @@ -266,7 +266,6 @@ void ServiceMsgProcess(Request *request) std::bind(&OHOS::DisplayBrightnessModel::UpdateBrightnessValueOfSlider, OHOS::DisplayBrightnessModel::GetInstance())); break; } - SAMGR_FreeRequestMsg(request); #endif /* -------------------------------------------------------------------------- */ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "UiServiceMsgId = %d",request->msgId); @@ -278,8 +277,6 @@ void ServiceMsgProcess(Request *request) break; } } - //释放请求消息 - SAMGR_FreeRequestMsg(request); /* -------------------------------------------------------------------------- */ } @@ -304,19 +301,33 @@ TaskConfig GetServiceTaskConfig(Service *service) //发送msg static int32_t SendMsg(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen) { - Request *request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, UI_SVR_ID, dataLen); - if (request == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "SAMGR_AllocRequestMsg failed"); - return FALSE; - } - request->msgId = msgId; - request->msgValue = msgValue; - if (data != nullptr) { - (void)memcpy_s(request->data, dataLen, data, dataLen); + int32_t ret; + void *sendData = nullptr; + if (dataLen > 0) { + sendData = malloc(dataLen); + if (sendData == nullptr) { + return FALSE; + } + ret = memcpy_s(sendData, dataLen, data, dataLen); + if (ret != EOK) { + free(sendData); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uiservice sendMsg memcpy_s fail! ret = %d", ret); + return FALSE; + } } - int32_t ret = SAMGR_SendRequest(IUNKNOWN_GetIdentity(GET_IUNKNOWN(g_uiService)), request, nullptr); + Request request = { + .msgId = msgId, + .len = dataLen, + .msgValue = msgValue, + .data = sendData, + }; + + ret = SAMGR_SendRequest(IUNKNOWN_GetIdentity(GET_IUNKNOWN(g_uiService)), &request, nullptr); if (ret != 0) { + if (sendData != nullptr) { + free(sendData); + } WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "SendMsg failed ret = %d ", ret); return FALSE; } diff --git a/code/sdk/interim_binary/brandy/libs/media/evb_standard/libjs_audio_capturer.a b/code/sdk/interim_binary/brandy/libs/media/evb_standard/libjs_audio_capturer.a index c1ef7a3e6921c88ed5119c4f2c5e424ea557a943..696f7292d9bb534a18bb11b0675d924d0d1ed0d6 100644 GIT binary patch delta 41 rcmcaKoBz^m{t2?IMuvulMjMqRxge}&2d;JpE=C|`+U~%`Jn1k1{!a^E delta 41 rcmcaKoBz^m{t2?I21aI