patch0626 适配 fd230app 434/target/1
authorSnickerSun <snickersun@163.com>
Tue, 2 Jul 2024 12:32:37 +0000 (20:32 +0800)
committerSnickerSun <snickersun@163.com>
Tue, 2 Jul 2024 12:32:37 +0000 (20:32 +0800)
37 files changed:
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h
code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h
code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistModel.h
code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp
code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothWrapper.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothWrapper.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/connectnewphone/src/ConnectOpenView.cpp
code/sdk/application/wearable/fd230app/nativeui/connectnewphone/src/ConnectPhonePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDigitalImgView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialViewGroup.h
code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialDigitalImgView.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/parser/DialBinParser.cpp
code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp
code/sdk/application/wearable/fd230app/nativeui/rtcservice/src/RtcService.cpp
code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopModel.h
code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopPresenter.h
code/sdk/application/wearable/fd230app/nativeui/set_desktop/include/SetDesktopView.h
code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopModel.cpp
code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/set_desktop/src/SetDesktopView.cpp
code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialPresenter.h
code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialView.h
code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialView.cpp
code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStyleModel.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStylePresenter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/set_dial_style/include/SetDialStyleView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStyleModel.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStyleView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/themestyle/include/ThemeStyleModel.h
code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp
code/sdk/interim_binary/brandy/libs/media/evb_standard/libjs_audio_capturer.a

index 26b8b4f..7010e60 100644 (file)
@@ -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
index 6b9ee61..0bca5bf 100644 (file)
@@ -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";
index 0d5166a..080a52e 100644 (file)
@@ -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 };
 };
 
 }
index 1aa5a87..8ea9160 100644 (file)
@@ -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;
index dff4a56..5c32ff9 100644 (file)
@@ -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;
+        }
     }
 }
index 894097b..13e77d4 100644 (file)
@@ -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 (file)
index 0000000..3c645fe
--- /dev/null
@@ -0,0 +1,31 @@
+/*\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: BluetoothWrapper\r
+ * Author:\r
+ * Create: 2021-10-13\r
+ */\r
+#ifndef BLUETOOTH_WRAPPER_H\r
+#define BLUETOOTH_WRAPPER_H\r
+\r
+#include "common_def.h"\r
+#include "bts_def.h"\r
+#include "bts_gatt_stru.h"\r
+#include "bts_gatt_server.h"\r
+#include "bts_le_gap.h"\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+errcode_t wrapper_gap_ble_register_callbacks(gap_ble_callbacks_t *func);\r
+errcode_t wrapper_gatts_register_callbacks(gatts_callbacks_t *func);\r
+void wrapper_ble_register(void);\r
+errcode_t wrapper_gatts_register_server(bt_uuid_t *app_uuid, uint8_t *server_id);\r
+errcode_t wrapper_gatts_add_service(uint8_t server_id, bt_uuid_t *service_uuid, bool is_primary);\r
+void wrapper_gatts_service_start(void);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#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 (file)
index 0000000..fd9dd57
--- /dev/null
@@ -0,0 +1,318 @@
+/*\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: BluetoothModel view\r
+ * Author:\r
+ * Create: 2021-10-13\r
+ */\r
+\r
+#include <list>\r
+#include "BluetoothWrapper.h"\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+static bool gatts_register_flag = false;\r
+static uint8_t gatts_server_id = 0;\r
+std::list<gap_ble_callbacks_t> g_gap_ble_callback_list;\r
+std::list<gatts_callbacks_t> g_gatts_callback_list;\r
+std::list<bt_uuid_t> g_uuid_list;\r
+std::list<uint16_t> g_svr_handle_list;\r
+\r
+errcode_t wrapper_gap_ble_register_callbacks(gap_ble_callbacks_t *func)\r
+{\r
+    g_gap_ble_callback_list.push_back(*func);\r
+    return ERRCODE_SUCC;\r
+}\r
+\r
+errcode_t wrapper_gatts_register_callbacks(gatts_callbacks_t *func)\r
+{\r
+    g_gatts_callback_list.push_back(*func);\r
+    return ERRCODE_SUCC;\r
+}\r
+\r
+void wrapper_gap_ble_enable_callback(errcode_t status)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.ble_enable_cb != nullptr) {\r
+            callback.ble_enable_cb(status);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_disable_callback(errcode_t status)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.ble_disable_cb != nullptr) {\r
+            callback.ble_disable_cb(status);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_start_adv_callback(uint8_t adv_id, adv_status_t status)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.start_adv_cb) {\r
+            callback.start_adv_cb(adv_id, status);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_stop_adv_callback(uint8_t adv_id, adv_status_t status)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.stop_adv_cb) {\r
+            callback.stop_adv_cb(adv_id, status);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_set_adv_data_callback(uint8_t adv_id, errcode_t status)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.set_adv_data_cb) {\r
+            callback.set_adv_data_cb(adv_id, status);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_set_adv_param_callback(uint8_t adv_id, errcode_t status)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.set_adv_param_cb) {\r
+            callback.set_adv_param_cb(adv_id, status);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_scan_result_callback(gap_scan_result_data_t *scan_result_data)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.scan_result_cb) {\r
+            callback.scan_result_cb(scan_result_data);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_set_scan_param_callback(errcode_t status)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.set_scan_param_cb) {\r
+            callback.set_scan_param_cb(status);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_connect_state_changed_callback(uint16_t conn_id, bd_addr_t *addr, gap_ble_conn_state_t conn_state,\r
+    gap_ble_pair_state_t pair_state, gap_ble_disc_reason_t disc_reason)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.conn_state_change_cb) {\r
+            callback.conn_state_change_cb(conn_id, addr, conn_state, pair_state, disc_reason);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_paired_complete_callback(uint16_t conn_id, const bd_addr_t *addr, errcode_t status)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.pair_result_cb) {\r
+            callback.pair_result_cb(conn_id, addr, status);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_terminate_adv_callback(uint8_t adv_id, adv_status_t status)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.terminate_adv_cb) {\r
+            callback.terminate_adv_cb(adv_id, status);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_read_rssi_callback(uint16_t conn_id, int8_t rssi, errcode_t status)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.read_rssi_cb) {\r
+            callback.read_rssi_cb(conn_id, rssi, status);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_auth_complete_callback(uint16_t conn_id, const bd_addr_t *addr,\r
+    errcode_t status, const ble_auth_info_evt_t* evt)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.auth_complete_cb) {\r
+            callback.auth_complete_cb(conn_id, addr, status, evt);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gap_ble_connect_param_update_callback(uint16_t conn_id, errcode_t status,\r
+    const gap_ble_conn_param_update_t *param)\r
+{\r
+    for (auto callback : g_gap_ble_callback_list) {\r
+        if (callback.conn_param_update_cb) {\r
+            callback.conn_param_update_cb(conn_id, status, param);\r
+        }\r
+    }\r
+}\r
+\r
+void wrapper_gatts_add_service_callback(uint8_t server_id, bt_uuid_t *uuid, uint16_t handle, errcode_t status)\r
+{\r
+    g_svr_handle_list.push_back(handle);\r
+    for (auto callback : g_gatts_callback_list) {\r
+        if (callback.add_service_cb) {\r
+            callback.add_service_cb(server_id, uuid, handle, status);\r
+        }\r
+    }\r
+}\r
+void wrapper_gatts_add_characteristic_callback(uint8_t server_id, bt_uuid_t *uuid, uint16_t service_handle,\r
+    gatts_add_character_result_t *result, errcode_t status)\r
+{\r
+    for (auto callback : g_gatts_callback_list) {\r
+        if (callback.add_characteristic_cb) {\r
+            callback.add_characteristic_cb(server_id, uuid, service_handle, result, status);\r
+        }\r
+    }\r
+}\r
+void wrapper_gatts_add_descriptor_callback(uint8_t server_id, bt_uuid_t *uuid, uint16_t service_handle,\r
+    uint16_t handle, errcode_t status)\r
+{\r
+    for (auto callback : g_gatts_callback_list) {\r
+        if (callback.add_descriptor_cb) {\r
+            callback.add_descriptor_cb(server_id, uuid, service_handle, handle, status);\r
+        }\r
+    }\r
+}\r
+void wrapper_gatts_start_service_callback(uint8_t server_id, uint16_t handle, errcode_t status)\r
+{\r
+    bool skip_flag = true;\r
+    for (auto svr_handle : g_svr_handle_list) {\r
+        if (svr_handle == handle) {\r
+            skip_flag = false;\r
+        }\r
+    }\r
+    if (!skip_flag) {\r
+        for (auto callback : g_gatts_callback_list) {\r
+            if (callback.start_service_cb) {\r
+                callback.start_service_cb(server_id, handle, status);\r
+            }\r
+        }\r
+        wrapper_gatts_service_start();\r
+    }\r
+}\r
+void wrapper_gatts_stop_service_callback(uint8_t server_id, uint16_t handle, errcode_t status)\r
+{\r
+    for (auto callback : g_gatts_callback_list) {\r
+        if (callback.stop_service_cb) {\r
+            callback.stop_service_cb(server_id, handle, status);\r
+        }\r
+    }\r
+}\r
+void wrapper_gatts_delete_all_service_callback(uint8_t server_id, errcode_t status)\r
+{\r
+    for (auto callback : g_gatts_callback_list) {\r
+        if (callback.delete_service_cb) {\r
+            callback.delete_service_cb(server_id, status);\r
+        }\r
+    }    \r
+}\r
+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)\r
+{\r
+    for (auto callback : g_gatts_callback_list) {\r
+        if (callback.read_request_cb) {\r
+            callback.read_request_cb(server_id, conn_id, read_cb_para, status);\r
+        }\r
+    }\r
+}\r
+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)\r
+{\r
+    for (auto callback : g_gatts_callback_list) {\r
+        if (callback.write_request_cb) {\r
+            callback.write_request_cb(server_id, conn_id, write_cb_para, status);\r
+        }\r
+    }\r
+}\r
+void wrapper_gatts_mtu_changed_callback(uint8_t server_id, uint16_t conn_id, uint16_t mtu_size, errcode_t status)\r
+{\r
+    for (auto callback : g_gatts_callback_list) {\r
+        if (callback.mtu_changed_cb) {\r
+            callback.mtu_changed_cb(server_id, conn_id, mtu_size, status);\r
+        }\r
+    }\r
+}\r
+\r
+static gap_ble_callbacks_t g_wrapper_gap_ble_callbacks = {\r
+    .ble_enable_cb = wrapper_gap_ble_enable_callback,\r
+    .ble_disable_cb = wrapper_gap_ble_disable_callback,\r
+    .set_adv_data_cb = wrapper_gap_ble_set_adv_data_callback,\r
+    .set_adv_param_cb = wrapper_gap_ble_set_adv_param_callback,\r
+    .set_scan_param_cb = wrapper_gap_ble_set_scan_param_callback,\r
+    .start_adv_cb = wrapper_gap_ble_start_adv_callback,\r
+    .stop_adv_cb = wrapper_gap_ble_stop_adv_callback,\r
+    .scan_result_cb = wrapper_gap_ble_scan_result_callback,\r
+    .conn_state_change_cb = wrapper_gap_ble_connect_state_changed_callback,\r
+    .pair_result_cb = wrapper_gap_ble_paired_complete_callback,\r
+    .read_rssi_cb = wrapper_gap_ble_read_rssi_callback,\r
+    .terminate_adv_cb = wrapper_gap_ble_terminate_adv_callback,\r
+    .auth_complete_cb = wrapper_gap_ble_auth_complete_callback,\r
+    .conn_param_update_cb = wrapper_gap_ble_connect_param_update_callback,  \r
+};\r
+\r
+static gatts_callbacks_t g_wrapper_gatts_callbacks = {\r
+    .add_service_cb = wrapper_gatts_add_service_callback,\r
+    .add_characteristic_cb = wrapper_gatts_add_characteristic_callback,\r
+    .add_descriptor_cb = wrapper_gatts_add_descriptor_callback,\r
+    .start_service_cb = wrapper_gatts_start_service_callback,\r
+    .stop_service_cb = wrapper_gatts_stop_service_callback,\r
+    .delete_service_cb = wrapper_gatts_delete_all_service_callback,\r
+    .read_request_cb = wrapper_gatts_read_request_callback,\r
+    .write_request_cb = wrapper_gatts_write_request_callback,\r
+    .mtu_changed_cb = wrapper_gatts_mtu_changed_callback,   \r
+};\r
+\r
+void wrapper_ble_register(void)\r
+{\r
+    gap_ble_register_callbacks(&g_wrapper_gap_ble_callbacks);\r
+    gatts_register_callbacks(&g_wrapper_gatts_callbacks);\r
+}\r
+\r
+\r
+errcode_t wrapper_gatts_register_server(bt_uuid_t *app_uuid, uint8_t *server_id)\r
+{\r
+    errcode_t ret = ERRCODE_SUCC;\r
+    if (gatts_register_flag) {\r
+        *server_id = gatts_server_id;\r
+        ret = ERRCODE_SUCC;\r
+    } else {\r
+        gatts_register_flag = true;\r
+        ret = gatts_register_server(app_uuid, server_id);\r
+        gatts_server_id = *server_id;\r
+    }\r
+    return ret;\r
+}\r
+\r
+errcode_t wrapper_gatts_add_service(uint8_t server_id, bt_uuid_t *service_uuid, bool is_primary)\r
+{\r
+    g_uuid_list.push_back(*service_uuid);\r
+    return ERRCODE_SUCC;\r
+}\r
+\r
+void wrapper_gatts_service_start(void)\r
+{\r
+    if (!g_uuid_list.empty()) {\r
+        bt_uuid_t &uuid = g_uuid_list.front();\r
+        // 服务异步添加,需要保证当前服务start后,再添加下一个服务\r
+        (void)gatts_add_service(gatts_server_id, &uuid, true);\r
+        g_uuid_list.pop_front();\r
+    } else {\r
+        g_svr_handle_list.clear();\r
+    }\r
+}\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
index b68888a..fbc3e92 100644 (file)
@@ -7,7 +7,7 @@
 #include "wearable_log.h"\r
 #include "UiConfig.h"\r
 #include "ConnectPhonePresenter.h"\r
-\r
+#include "custom_utils.h"\r
 namespace OHOS {\r
 static ConnectOpenView *g_pConnectOpenView{nullptr};\r
 ConnectOpenView::ConnectOpenView()\r
@@ -45,7 +45,10 @@ void ConnectOpenView::ShowUpBackView()
             return;\r
         }\r
         watchNameLabel->SetPosition(0, 165, HORIZONTAL_RESOLUTION, 45); // 0:x 244:y 454:width 45:height\r
-        watchNameLabel->SetText(ConnectPhonePresenter::GetInstance()->getWatchName());\r
+        uint8_t btname[32]={0};\r
+        uint32_t len=sizeof(btname);\r
+        uapi_get_nv_btname(btname,&len);\r
+        watchNameLabel->SetText((char*)btname);\r
         watchNameLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40:font data\r
         watchNameLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
         watchNameLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
index 6701405..deb576c 100644 (file)
@@ -11,7 +11,6 @@
 #include "bts_le_gap.h"\r
 #include "drag_event.h"\r
 #include "cmsis_os.h"\r
-#include "tcxo.h"\r
 #include "UiConfig.h"\r
 #include "wearable_log.h"\r
 \r
@@ -77,11 +76,11 @@ void ConnectPhonePresenter::RemovePair()
     unsigned int connedDevicesNum = 0;\r
 \r
     bool ret = gap_get_paired_devices_num(&connedDevicesNum);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Setup GetPariedDevicesNum ret = %d, num = %d", ret, connedDevicesNum);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Setup GapGetPariedDevicesNum ret = %d, num = %d", ret, connedDevicesNum);\r
 \r
     if (connedDevicesNum != 0) {\r
         gap_paired_device_info_t *devInfo = (gap_paired_device_info_t *)malloc(sizeof(gap_paired_device_info_t) * connedDevicesNum);\r
-        if (devInfo == NULL) {\r
+        if (devInfo == nullptr) {\r
             return;\r
         }\r
         ret = gap_get_paired_devices_list(devInfo, (int *)&connedDevicesNum);\r
@@ -95,27 +94,18 @@ void ConnectPhonePresenter::RemovePair()
         }\r
         free(devInfo);\r
     }\r
+\r
+    (void)gap_ble_remove_all_pairs();\r
 }\r
 \r
 void ConnectPhonePresenter::ConfirmOnClick()\r
 {\r
     bool ret;\r
-\r
-    memset_s(watchName, sizeof(watchName), 0, sizeof(watchName));\r
-    (void)sprintf_s(watchName, sizeof(watchName), "Watch%x", ((uint32_t)uapi_tcxo_get_us() & 0xFFFF));\r
-\r
-    ret = bluetooth_set_local_name((unsigned char*)watchName, strlen((char*)watchName) + 1);\r
-    if (ret == false) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectPhonePresenter: bt SetLocalName ret = 0x%x", ret);\r
-    }\r
-\r
     ret = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 60); // start scan\r
-    if (ret == false) {\r
+    if (!ret) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectPhonePresenter bt gap_br_set_bt_scan_mode ret = 0x%x", ret);\r
     }\r
-#ifndef SUPPORT_ALIPAY_SEC\r
     BleAdvStart();\r
-#endif\r
 }\r
 \r
 bool ConnectPhonePresenter::OnDrag(UIView& view, const DragEvent& event)\r
@@ -131,9 +121,4 @@ bool ConnectPhonePresenter::OnDrag(UIView& view, const DragEvent& event)
     return true;\r
 }\r
 \r
-char* ConnectPhonePresenter::getWatchName()\r
-{\r
-    return watchName;\r
 }\r
-\r
-}
\ No newline at end of file
index 443c325..2817eab 100644 (file)
@@ -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);
 
index d50a7d3..8f139fb 100644 (file)
@@ -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<int16_t, DialView*> dataTypeMap_;
index cc060b9..1d62bc5 100644 (file)
@@ -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)
index 04ccf10..0650368 100644 (file)
@@ -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<uint16_t>(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<uint16_t>(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<uint32_t>(abs(data));
-    uint8_t actualIntegerLen = log10(integer) + 1;
+    uint16_t integer = static_cast<uint16_t>(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<uint16_t>((abs(data) - intVal) * (pow(10, decimalPrecision_)));
-        FillDecimalPart(decimalVal);
+        FillDecimalPart(data);
     }
     HandlePosition();
     value_ = data;
index c018577..ec66f2c 100644 (file)
@@ -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();
+    }
+}
 }
index b2978d1..a61df48 100644 (file)
@@ -93,21 +93,21 @@ bool DialBinParser::GetDialPreviewInfo(FILE* fp, DialPreviewInfo* info)
 \r
     if (memcpy_s(info->dialName, DIAL_NAME_MAX_LEN, dialHeader->dialName, DIAL_NAME_MAX_LEN) != EOK) {\r
         GRAPHIC_LOGE("[%s: %d]memcpy_s dial name fail!\n", __FUNCTION__, __LINE__);\r
-        free(dialHeader);\r
+        UIFree(dialHeader);\r
         return false;\r
     }\r
 \r
     if (memcpy_s(info->description, DIAL_DESCRIPTION_MAX_LEN,\r
         dialHeader->description, DIAL_DESCRIPTION_MAX_LEN) != EOK) {\r
         GRAPHIC_LOGE("[%s: %d]memcpy_s dial description fail!\n", __FUNCTION__, __LINE__);\r
-        free(dialHeader);\r
+        UIFree(dialHeader);\r
         return false;\r
     }\r
 \r
     info->imgId =  dialHeader->previewImgId | dirId_;\r
     info->offset = dialHeader->imageOffset;\r
 \r
-    free(dialHeader);\r
+    UIFree(dialHeader);\r
     return true;\r
 }\r
 \r
index bada5b8..055adb2 100644 (file)
@@ -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!!");
 
index 088111b..423c7e6 100644 (file)
@@ -82,7 +82,6 @@ static BOOL ServiceMessageHandle(Service *service, Request *request)
     if (request == nullptr) {
         return FALSE;
     }
-    SAMGR_FreeRequestMsg(request);
     return TRUE;
 }
 
index 165c6d9..b208dcf 100644 (file)
@@ -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:
 
 };
index d1827c7..1a6a808 100644 (file)
@@ -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
index c84a750..1745953 100644 (file)
@@ -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");
         }
     }
 
index 527a728..abc616b 100644 (file)
@@ -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");
index 9609c70..90c134d 100644 (file)
@@ -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();
 }
 }
index 1af1cc9..fb89507 100644 (file)
@@ -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<SetDialView>,
                          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:
index 0a7f564..0a0408d 100644 (file)
@@ -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<SetDialPresenter> {
 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_;
 };
index 6ad00d5..2dc21b6 100644 (file)
@@ -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();
index daa69cd..82a55d0 100644 (file)
@@ -8,6 +8,7 @@
 #include <string>
 #include "SetDialView.h"
 #include "SetDialPresenter.h"
+#include "SetDialStyleModel.h"
 
 namespace OHOS {
 SetDialView::SetDialView()
@@ -26,7 +27,11 @@ void SetDialView::OnStart()
     View<SetDialPresenter>::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<SetDialInfo> &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<SetDialInfo> &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<SetDialInfo> &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 (file)
index 0000000..c27e300
--- /dev/null
@@ -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<int>(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 (file)
index 0000000..fda918e
--- /dev/null
@@ -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<SetDialStyleView, SetDialStyleModel>,
+                              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 (file)
index 0000000..3b1a932
--- /dev/null
@@ -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<SetDialStylePresenter> {
+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<int>(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 (file)
index 0000000..81d833a
--- /dev/null
@@ -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 (file)
index 0000000..6dbc283
--- /dev/null
@@ -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 (file)
index 0000000..86901f0
--- /dev/null
@@ -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<SetDialStylePresenter>::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<SetDialStylePresenter>::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<SetDialStylePresenter>::OnStop();
+    if (container_ != nullptr) {
+        container_->RemoveAll();
+        delete container_;
+        container_ = nullptr;
+    }
+}
+
+void SetDialStyleView::OnClick(UIView &view)
+{
+    const UIToggleButton *ptr = dynamic_cast<UIToggleButton*>(&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
index 2b5f337..00dd7e3 100644 (file)
@@ -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<ThemeStyle, std::string> 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<std::string, ThemeStyle> ReverseThemeStyleMap = {
         {THEMESTYLE_VALUE_LIST, ThemeStyle::APPLIST_STYLE},
         {THEMESTYLE_VALUE_HEXAGONS, ThemeStyle::HEXAGONS_STYLE},
+        {THEMESTYLE_VALUE_FOOTBALL, ThemeStyle::FOOTBALL_STYLE},
         // 在此处添加更多的映射关系
     };
 
index 06b501c..8a12eaa 100644 (file)
@@ -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;
     }
index c1ef7a3..696f729 100644 (file)
Binary files a/code/sdk/interim_binary/brandy/libs/media/evb_standard/libjs_audio_capturer.a and b/code/sdk/interim_binary/brandy/libs/media/evb_standard/libjs_audio_capturer.a differ