Revert "【蓝牙】UI
author袁清梦 <3449750381@qq.com>
Wed, 7 May 2025 06:12:43 +0000 (14:12 +0800)
committer袁清梦 <3449750381@qq.com>
Wed, 7 May 2025 06:12:43 +0000 (14:12 +0800)
"

35 files changed:
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothCaseListAdapter.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothDeviceCaseListAdapter.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothDeviceListView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothEarListView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothEarPhoneView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothHeadsetEvent.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothItemView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothModel.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothModelC.h [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothOptionsView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothPresenter.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothReconnectView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothWrapper.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/Bluetooyhpabpserver.h [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/MainBluetoothView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/TipsConnFailMessageView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/TipsFailMessageView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/TipsSuccMessageView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothCaseListAdapter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothDeviceCaseListAdapter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothDeviceListView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothEarListView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothEarPhoneView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothItemView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothOptionsView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothReconnectView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothWrapper.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/Bluetooyhpabpserver.cpp [deleted file]
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/MainBluetoothView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/TipsConnFailMessageView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/TipsFailMessageView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/TipsSuccMessageView.cpp

index 5edaa12..49a590a 100644 (file)
@@ -10,7 +10,6 @@
 #include <string>
 #include "components/abstract_adapter.h"
 #include "components/ui_label.h"
-#include "components/ui_label_ext.h"
 #include "components/ui_label_button.h"
 #include "PlayersPresenter.h"
 #include "BluetoothItemView.h"
index 03ebbe1..72b9b98 100644 (file)
@@ -1,41 +1,39 @@
 /*\r
- * @Author: luozheng 1732036298@qq.com\r
- * @Date: 2024-08-05 15:20:01\r
- * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-10-10 10:05:27\r
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothDeviceListView.h\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: BluetoothDeviceListView view 蓝牙耳机设备列表界面\r
+ * Author:\r
+ * Create: 2021-10-13\r
  */\r
 #ifndef BLUETOOTH_DEVICE_LIST_VIEW_H\r
 #define BLUETOOTH_DEVICE_LIST_VIEW_H\r
 \r
 #include "components/ui_view_group.h"\r
-#include "components/ui_label_ext.h"\r
-#include "components/ui_label_button_ext.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
 #include "components/ui_list.h"\r
 #include "BluetoothDeviceCaseListAdapter.h"\r
-#include "components/ui_scroll_view.h"\r
+\r
 namespace OHOS {\r
 class BluetoothDeviceCaseListAdapter;\r
-//已连接过的蓝牙设备列表视图\r
 class BluetoothDeviceListView {\r
 public:\r
     BluetoothDeviceListView();\r
     ~BluetoothDeviceListView();\r
     static BluetoothDeviceListView *GetInstance();\r
-    UIViewGroup *CreateBluetoothDeviceListView(void);\r
+    UIViewGroup *InitShowUpView(void);\r
     UIViewGroup *GetGroup(void);\r
     UIList *GetDeviceUIList(void);\r
-    void RefreshBluetoothDeviceListView(void);\r
+    void RefreshText(void);\r
 private:\r
     void InitList(void);\r
     void InItEmptyLabel();\r
     void InitNewEquipmentButton();\r
     UIViewGroup *group{nullptr};\r
     UIList *list{nullptr};\r
-    UILabelExt *titleLabel{nullptr}; /*标题:蓝牙耳机*/\r
-    UILabelExt *emptyLabel{nullptr}; /*暂无已配对设备*/\r
+    UILabel *titleLabel{nullptr};\r
+    UILabel *emptyLabel{nullptr};\r
     BluetoothDeviceCaseListAdapter *adapterText{nullptr};\r
-    UILabelExt *newEquipmentButton{nullptr};\r
+    UILabelButton *newEquipmentButton{nullptr};\r
 };\r
 } // namespace OHOS\r
 #endif // BLUETOOTH_DEVICE_LIST_VIEW_H
\ No newline at end of file
index 8106fc8..8a0dd98 100644 (file)
@@ -9,8 +9,7 @@
 \r
 #include "components/ui_view_group.h"\r
 #include "components/ui_label.h"\r
-#include "components/ui_label_ext.h"\r
-#include "components/ui_label_button_ext.h"\r
+#include "components/ui_label_button.h"\r
 #include "components/ui_image_animator.h"\r
 #include "components/ui_list.h"\r
 #include "BluetoothCaseListAdapter.h"\r
@@ -30,18 +29,15 @@ public:
     void SetNewEquipmentButtonRemove(void);\r
     void SetCancelConnedRequestButtonAdd(void);\r
     void SetCancelConnedRequestButtonRemove(void);\r
-    void RefreshBluetoothEarListView(void);\r
-    \r
 private:\r
     void InitList(void);\r
     void InitButten(UILabelButton **button, const char *text, const char* id);\r
-    void InitNewEquipmentButton();\r
     UIViewGroup *group{nullptr};\r
     UIList *list{nullptr};\r
-    UILabelExt *titleLabel{nullptr};\r
+    UILabel *titleLabel{nullptr};\r
     BluetoothCaseListAdapter *adapterText{nullptr};\r
-    UILabelExt *rescanButton{nullptr};\r
-    UILabelButtonExt *cancelConnedRequestButton{nullptr};\r
+    UILabelButton *rescanButton{nullptr};\r
+    UILabelButton *cancelConnedRequestButton{nullptr};\r
 };\r
 } // namespace OHOS\r
 #endif // BLUETOOTH_EAR_LIST_VIEW_H
\ No newline at end of file
index 4af2a23..3636a1a 100644 (file)
 #include <iostream>\r
 #include "components/ui_view_group.h"\r
 #include "components/ui_label.h"\r
-#include "components/ui_label_ext.h"\r
 #include "components/ui_label_button.h"\r
 #include "components/ui_image_animator.h"\r
-#include "cmsis_os.h"\r
+#include "ohos_timer.h"\r
+#include "graphic_timer.h"\r
 #include "BluetoothModel.h"\r
 #define BLUETOOTH_SEARCH_IMAGE_NUM 8\r
 \r
 namespace OHOS {\r
-static constexpr int16_t CONNECTING_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 60; // 图片帧数\r
 class BluetoothEarPhoneView {\r
 public:\r
     BluetoothEarPhoneView();\r
@@ -34,9 +33,8 @@ public:
 private:\r
     ImageAnimatorInfo searchImageInfo[BLUETOOTH_SEARCH_IMAGE_NUM];\r
     UIViewGroup *group{nullptr};\r
+    UILabel *titleLabel{nullptr};\r
     UIImageAnimatorView *imageAnimator{nullptr};\r
-    const ImageInfo **connectPathsArray{nullptr};\r
-    ImageAnimatorInfo connectImageInfo[CONNECTING_IMAGE_ANIMATOR_VIEW_NUM_FRAMES];\r
     bool scanStart{0};\r
     void BtScanImageAnimator();\r
 };\r
@@ -44,9 +42,9 @@ private:
 #ifdef __cplusplus\r
 extern "C" {\r
 #endif\r
-// void ScanTimerCallback(int data);\r
-// void CancelBrScanHandle(void);\r
-// void EndScanHandle(void);\r
+void ScanTimerCallback(int data);\r
+void CancelBrScanHandle(void);\r
+void EndScanHandle(void);\r
 #ifdef __cplusplus\r
 }\r
 #endif\r
index 4334047..8e5341d 100644 (file)
@@ -31,19 +31,12 @@ typedef struct {
     profile_connect_state_t avrcp_srv_conn_stat;\r
 } BtAvrcpTgInf;\r
 \r
-extern BtAvrcpTgInf g_avrcp_srv_inf;\r
-\r
-bd_addr_t *BtAvrcpSrvGetActiveAddr(void);\r
-\r
 void UsingPressButtonStatusCallback(td_u32 keyOperation, td_u32 keyValue);\r
 void MediaStatusCallback(bt_avrcp_tg_evt_status_param *eventStatusParam);\r
 void PressButtonStatusCallback(td_u32 keyOperation, td_u32 keyValue);\r
 void ConnCtStateChangedCallback(const bd_addr_t *bdAddr, profile_connect_state_t state);\r
 void ConnectTgStateChangedCallback(const bd_addr_t *bdAddr, profile_connect_state_t state);\r
 void InitBtHeadsetEvent(void);\r
-void BtAvrcpVolumeChangedSyncMedia(uint8_t a2dp_volume);\r
-void user_avrcp_ct_press_button(const bd_addr_t *bd_addr, int32_t key_operation);\r
-void user_avrcp_ct_get_element_attributes(const bd_addr_t *bd_addr);\r
 \r
 #ifdef __cplusplus\r
 }\r
index 9ff78ba..563fe82 100644 (file)
@@ -1,17 +1,14 @@
 /*\r
- * @Author: luozheng 1732036298@qq.com\r
- * @Date: 2024-08-05 15:20:01\r
- * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-09-04 14:23:09\r
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothItemView.h\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: BluetoothItem view\r
+ * Author:\r
+ * Create: 2021-10-13\r
  */\r
 \r
-\r
 #ifndef BLUETOOTH_ITEM_VIEW_H\r
 #define BLUETOOTH_ITEM_VIEW_H\r
 \r
 #include "components/ui_label.h"\r
-#include "components/ui_label_ext.h"\r
 #include "components/ui_view_group.h"\r
 #include "components/ui_image_view.h"\r
 #include "components/ui_label_button.h"\r
@@ -29,20 +26,17 @@ public:
     void SetItemInfo(const BluetoothCaseInfo& itemInfo, bool isCaseList);\r
     BluetoothCaseInfo *GetItemInfo(void);\r
     void SetConnectionstatus(const BluetoothCaseInfo& infoData);\r
-    void SetPairingtatus();\r
-    void SetViewOnClickListener(UIView::OnClickListener *listener);\r
     void SetUpChild();\r
     void ConnectAnimatorStart(void);\r
     void ConnectAnimatorStop(void);\r
     bool IsConnectAnimator(void);\r
 private:\r
     ImageAnimatorInfo connectImageInfo[BLUETOOTH_CONNECT_IMAGE_NUM];\r
+    UIImageView image;\r
     UIButton button;\r
-    UILabelExt connectStateLabel;/*连接状态标签*/\r
-    UILabel namelabel;/*设备名*/\r
-    UIImageView lineImage;\r
-    UIImageView noteImage;\r
-    UIImageAnimatorView connectionAnimator; /*连接动画*/\r
+    UILabel connectStateLabel;\r
+    UILabel namelabel;\r
+    UIImageAnimatorView connectionAnimator;\r
     BluetoothCaseInfo itemInfo_{};\r
     void BtConnectImageAnimator();\r
 };\r
index 1611290..3aef02c 100644 (file)
@@ -5,8 +5,8 @@
  * Create: 2021-10-13\r
  */\r
 \r
-#ifndef BLUETOOTH_MODEL_H_\r
-#define BLUETOOTH_MODEL_H_\r
+#ifndef BLUETOOTH_MODEL_H\r
+#define BLUETOOTH_MODEL_H\r
 \r
 #include <list>\r
 #include <cstdio>\r
 \r
 #include "bts_def.h"\r
 #include "bts_br_gap.h"\r
-#include <string>\r
-namespace OHOS {\r
-\r
-\r
 \r
+namespace OHOS {\r
 typedef enum : uint16_t {\r
     CALLERSETTING,\r
     CALLERPLAYERS,\r
 } CallerFactor;\r
 \r
-/*整合和存储与蓝牙设备相关的各种信息*/\r
 typedef struct {\r
     unsigned char deviceName[BD_NAME_LEN]; /* Name of the device record, must be in UTF-8 */\r
-    unsigned char addr[BD_ADDR_LEN]; /*存储蓝牙设备的地址*/\r
-    int16_t index;/*用于表示设备在某个特定列表或数据结构中的索引位置。*/\r
+    unsigned char addr[BD_ADDR_LEN];\r
+    int16_t index;\r
     int16_t connIndex;\r
     int16_t temp;\r
 } BluetoothCaseInfo;\r
 \r
-\r
-typedef struct {\r
-    uint8_t id;\r
-    uint32_t timetamp_begin;\r
-    uint32_t timetamp_end;\r
-    std::string titel;\r
-    std::string content;\r
-}ScheduleInfo;\r
-\r
-\r
-\r
-\r
 class BluetoothItemView;\r
 class BluetoothModel {\r
 public:\r
@@ -53,6 +37,7 @@ public:
     void Init();\r
     int GetBluetoothCalleridStatus(void);\r
     void SetBluetoothCalleridStatus(int16_t value);\r
+    // É¨ÃèÉ豸¶ÓÁгõʼ»¯\r
     std::list<BluetoothCaseInfo>& GetCase();\r
     void AddCase(BluetoothCaseInfo caseInfo);\r
     void SetScansCaseRssi(const bd_addr_t *bdAddr, int rssi);\r
@@ -96,7 +81,6 @@ public:
     int ConnectRemoteDevice(const bd_addr_t *addr);\r
     bool ConnectRemoteCheck(const bd_addr_t *addr);\r
     char* getWatchName(void);\r
-    void set_test_bt_falg(bool falg);\r
 \r
 private:\r
     BluetoothModel();\r
@@ -104,13 +88,14 @@ private:
     void SetUpListCase();\r
     void SetUpConnedDevicesList();\r
     bool FindNameByAddr(BluetoothCaseInfo &listInfo, BluetoothCaseInfo *caseInfo);\r
-    bool aclConnected{false};/*ACL(Asynchronous Connectionless,异步无连接)连接状态*/\r
-    BluetoothCaseInfo tempMacValue{};/*临时蓝牙设备地址*/\r
-    bd_addr_t lastConnedAddr{};\r
+    void InitBluetoothInfo(void);\r
+    bool aclConnected{false};\r
+    BluetoothCaseInfo tempMacValue{};\r
+    bd_addr_t lastConnedAddr{0};\r
     bd_addr_t remoteConnectAddr{0};\r
     BluetoothItemView *selectItemView{nullptr};\r
-    std::list<BluetoothCaseInfo> btScansDevicesList_{};     //蓝牙扫描设备列表\r
-    List<BluetoothCaseInfo> *btConnedDevicesList_{nullptr}; //已连接设备列表\r
+    std::list<BluetoothCaseInfo> btScansDevicesList_{};\r
+    List<BluetoothCaseInfo> *btConnedDevicesList_{nullptr};\r
     bool tagReconnectJump{0};\r
     int16_t curView{0};\r
     bool tagConnectView{true};\r
@@ -134,28 +119,9 @@ void BtRemoteNameChangedCallback(const bd_addr_t *bdAddr, const unsigned char *d
 void BtIsAcceptConnOnSafeModeCallback(const bd_addr_t *bd_addr, bool *res);\r
 void BtInitCallBacks(void);\r
 void BtInitCallBacksEx(void);\r
-void BtA2dpInit(void);\r
 void BtInitGatts(void);\r
 void BtInitSpp(void);\r
 void BleAdvStart(void);\r
-void bluetooth_init(void);\r
-void InitBluetoothInfo(void);\r
-void bluetooth_enable_all(void);\r
-void bluetooth_close_all(void);\r
-void bluetooth_set_auto_reconnect_closed(uint8_t flag);\r
-\r
-int uapi_a2dp_snk_get_device_connect_state(void);\r
-int uapi_a2dp_snk_connect(void);\r
-int uapi_a2dp_snk_disconnect(void);\r
-int uapi_disconnect_remote_device(void);\r
-int uapi_get_acl_connect_state(void);\r
-int uapi_set_acl_connect_hfp(void);\r
-void uapi_connect_pbap_pce(void);\r
-int uapi_reconnect(void);\r
-int uapi_set_acl_connect_A2DP(void);\r
-void uapi_get_br_address(bd_addr_t *bdaddr);\r
-void uapi_set_br_address(bd_addr_t *bdaddr);\r
-\r
 #ifdef __cplusplus\r
 }\r
 #endif\r
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothModelC.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/BluetoothModelC.h
deleted file mode 100644 (file)
index 157c300..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * @Author: penglei 1624952103@qq.com
- * @Date: 2024-08-23 10:50:37
- * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-12-02 19:24:01
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothModelC.h
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: BluetoothModel view
- * Author:
- * Create: 2021-10-13
- */
-
-#ifndef C_BLUETOOTH_MODEL_H_
-#define C_BLUETOOTH_MODEL_H_
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int uapi_a2dp_snk_connect_(void);
-int uapi_a2dp_snk_disconnect_(void);
-int uapi_close_br_scan(void);
-int uapi_open_br_scan(void);
-//int uapi_disconnect_remote_device_(void);
-
-int32_t BtA2dpSnkAudioDestroy(void);
-
-int uapi_reconnect_(void);
-
-int get_BT_is_init(void);
-
-void cm_initBluetoothDeviceList(void);
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif
index ae1157b..836df4b 100644 (file)
@@ -1,59 +1,42 @@
 /*\r
- * @Author: luozheng 1732036298@qq.com\r
- * @Date: 2024-08-05 15:20:01\r
- * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-10-09 19:52:58\r
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothOptionsView.h\r
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: BluetoothOptions view\r
+ * Author:\r
+ * Create: 2021-10-13\r
  */\r
 #ifndef BLUETOOTH_OPTIONS_VIEW_H\r
 #define BLUETOOTH_OPTIONS_VIEW_H\r
 \r
 #include "components/ui_view_group.h"\r
 #include "components/ui_label.h"\r
-#include "components/ui_label_ext.h"\r
-#include "components/ui_label_button_ext.h"\r
+#include "components/ui_label_button.h"\r
 #include "components/ui_image_animator.h"\r
 #include "BluetoothCaseListAdapter.h"\r
 \r
-namespace OHOS\r
-{\r
-    // 查看已连接的蓝牙耳机设备视图\r
-    class BluetoothOptionsView\r
-    {\r
-    public:\r
-        BluetoothOptionsView();\r
-        ~BluetoothOptionsView();\r
-        static BluetoothOptionsView *GetInstance();\r
-        UIViewGroup *CreateBluetoothOptionsView(void);\r
-        UILabelButtonExt *GetOptionsOneButton(void);\r
-        UILabelButtonExt *GetUnpairButton(void);\r
-        void SetUnpair(void);\r
-        void SetBtconnect(void);\r
-        void SetBtDisconnect(void);\r
-        void SetCurrentAddr(bd_addr_t addr);\r
-        bd_addr_t GetCurrentAddr(void);\r
-        void RefreshText(void);\r
-\r
-    private:\r
-        bool CreateBluetoothOptionsLabelView(void);\r
-        bool CreateBluetoothOptionsLabelButton(void);\r
-        bool CreateBluetoothOptionsImageView(void);\r
-\r
-        void InItTitleLabel(void);\r
-        void InItLabelButton(void);\r
-        UIViewGroup *group{nullptr};\r
-        UILabelExt *titleLabel{nullptr};          /*标题:蓝牙耳机*/\r
-        UIImageView *btHeadsetIconUmage{nullptr}; // 绿色耳机图标\r
-        UILabelExt *EarPhoneDeviceName{nullptr};  // 蓝牙耳机设备名\r
-        UILabelExt *pairState{nullptr};           // 已配对或者未配对\r
-        UILabelButtonExt *unpairButton{nullptr};     // 取消配对按钮\r
-        UILabelExt *unpairLabel{nullptr};          // 取消配对标签\r
-        bd_addr_t currentAddr;\r
-\r
-        /*下面两个组件暂时设为不可见待到需要时使用*/\r
-        UILabelButtonExt *optionsOneButton{nullptr}; /*重新连接和断开连接按钮*/\r
-        UILabel *connectStateLabel{nullptr};      /*已连接或未连接标签*/\r
-        };\r
+namespace OHOS {\r
+class BluetoothOptionsView {\r
+public:\r
+    BluetoothOptionsView();\r
+    ~BluetoothOptionsView();\r
+    static BluetoothOptionsView *GetInstance();\r
+    UIViewGroup *InitShowUpView(void);\r
+    UILabelButton *GetOptionsOneButton(void);\r
+    UILabelButton *GetUnpairButton(void);\r
+    void SetUnpair(void);\r
+    void SetBtconnect(void);\r
+    void SetBtDisconnect(void);\r
+    void SetCurrentAddr(bd_addr_t addr);\r
+    bd_addr_t GetCurrentAddr(void);\r
+    void RefreshText(void);\r
+private:\r
+    void InItTitleLabel(void);\r
+    void InItLabelButton(void);\r
+    UILabelButton *optionsOneButton{nullptr};\r
+    UILabelButton *unpairButton{nullptr};\r
+    UILabel *titleLabel{nullptr};\r
+    UILabel *connectStateLabel{nullptr};\r
+    UIViewGroup *group{nullptr};\r
+    bd_addr_t currentAddr;\r
+};\r
 } // namespace OHOS\r
 #endif // BLUETOOTH_OPTIONS_VIEW_H
\ No newline at end of file
index 80289c1..fa72f28 100644 (file)
@@ -1,55 +1,45 @@
 /*\r
- * @Author: luozheng 1732036298@qq.com\r
- * @Date: 2024-08-05 15:20:01\r
- * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-09-28 18:06:32\r
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothPresenter.h\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: BluetoothPresenter view\r
+ * Create: 2021-10-13\r
  */\r
 \r
 #ifndef BLUETOOTH_PRESENTER_H\r
 #define BLUETOOTH_PRESENTER_H\r
 \r
 #include "Presenter.h"\r
-#include "View.h"\r
+#include "BluetoothModel.h"\r
 #include "MainBluetoothView.h"\r
 #include "components/ui_view.h"\r
 #include "components/ui_image_view.h"\r
 #include "components/ui_label_button.h"\r
 #include "components/ui_view_group.h"\r
 #include "VolumeSettingView.h"\r
-\r
 #include "UiViewId.h"\r
-#include "cmsis_os.h"\r
 \r
-#include "common/key_code.h"\r
 namespace OHOS {\r
 enum BluetoothPresenterNum : uint8_t {\r
-        BLUETOOTHEARPHONEVIEW = 0, // 搜索界面\r
-        BLUETOOTHEARLISTVIEW,   /*扫描出的耳机列表界面*/\r
-        BLUETOOTHDEVICELISTVIEW,/*已连接过的蓝牙设备列表视图*/\r
-        BLUETOOTHEOPTIONSVIEW, /*查看已连接过的蓝牙耳机设备视图*/\r
-        BLUETOOTHRECONNECTVIEW,/*蓝牙重新连接视图*/\r
-        TIPSSUCCMESSAGEVIEW,/*连接成功的提示视图*/\r
-        TIPSCONNFAILMESSAGEVIEW,/*连接失败的提示*/\r
-        TIPSFAILMESSAGEVIEW,/*未搜索到蓝牙耳机界面*/\r
+        BLUETOOTHEARPHONEVIEW = 0,\r
+        BLUETOOTHEARLISTVIEW,\r
+        BLUETOOTHDEVICELISTVIEW,\r
+        BLUETOOTHEOPTIONSVIEW,\r
+        BLUETOOTHRECONNECTVIEW,\r
+        TIPSSUCCMESSAGEVIEW,\r
+        TIPSCONNFAILMESSAGEVIEW,\r
+        TIPSFAILMESSAGEVIEW,\r
         BLUETOOTHEVIEW,\r
         BLUETOOTHEVIEW_MAX,\r
     };\r
 \r
 class MainBluetoothView;\r
-class BluetoothPresenter : public Presenter<MainBluetoothView>, public UIView::OnClickListener,public RootView::OnKeyActListener,\r
+class BluetoothPresenter : public Presenter<MainBluetoothView>, public UIView::OnClickListener,\r
  public UIView::OnDragListener {\r
 public:\r
     BluetoothPresenter();\r
     ~BluetoothPresenter();\r
     bool OnClick(UIView &view, const ClickEvent &event) override;\r
     static BluetoothPresenter *GetInstance();\r
-    bool OnDrag(UIView& view, const DragEvent& event) override;\r
     bool OnDragEnd(UIView& view, const DragEvent& event) override;\r
-    bool OnKeyAct(UIView &view, const KeyEvent &event) override;\r
-    void OnStart() override;\r
-    void OnPause() override;\r
-    void OnResume() override;\r
     void OnStop() override;\r
     void ClickRescanButton(void);\r
     void ClickNewEquipmentButton(void);\r
@@ -61,7 +51,6 @@ public:
     void ClickConnfailBackButton(void);\r
 private:\r
     BluetoothModel *bluetoothMode_{nullptr};\r
-    bool X_DRAG_FLAG{false};\r
 };\r
 } // namespace OHOS\r
 #endif\r
index e9683eb..a65be70 100644 (file)
@@ -9,12 +9,11 @@
 \r
 \r
 #include "components/ui_label.h"\r
-#include "components/ui_label_ext.h"\r
 #include "components/ui_image_animator.h"\r
 #include "components/abstract_adapter.h"\r
 #include "components/ui_view_group.h"\r
 #include "bts_def.h"\r
-#define BLUETOOTH_RECONNECT_IMAGE_NUM 60\r
+#define BLUETOOTH_RECONNECT_IMAGE_NUM 8\r
 \r
 namespace OHOS {\r
 class BluetoothReconnectView {\r
@@ -28,19 +27,14 @@ public:
     bd_addr_t GetcurrentBdAddr(void);\r
     void RefreshBluetoothNameLabel();\r
 private:\r
-    // ImageAnimatorInfo reconnetImageInfo[BLUETOOTH_RECONNECT_IMAGE_NUM];\r
+    ImageAnimatorInfo reconnetImageInfo[BLUETOOTH_RECONNECT_IMAGE_NUM];\r
     void ShowUpTitleLabel(void);\r
-    void start_connect_timer();\r
-    void stop_connect_timer();\r
     UILabel *titleLabel{nullptr};\r
     UILabel *bluetoothNameLabel{nullptr};\r
-    // UIImageAnimatorView *reconnectAnimator{nullptr};\r
+    UIImageAnimatorView *reconnectAnimator{nullptr};\r
     UIViewGroup *group{nullptr};\r
     bd_addr_t currentBdAddr;\r
     void BtReconnectImageAnimator();\r
-    UIImageAnimatorView *reconnectAnimator{nullptr};\r
-    const ImageInfo **reconnectPathsArray{nullptr};\r
-    ImageAnimatorInfo reconnetImageInfo[BLUETOOTH_RECONNECT_IMAGE_NUM];\r
 };\r
 } // namespace OHOS\r
 #endif // BLUETOOTH_RECONNECT_VIEW_H
\ No newline at end of file
index 94c990a..3c645fe 100644 (file)
@@ -23,7 +23,6 @@ void wrapper_ble_register(void);
 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
-void wrapper_gatts_clear_service(void);\r
 \r
 #ifdef __cplusplus\r
 }\r
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/Bluetooyhpabpserver.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/include/Bluetooyhpabpserver.h
deleted file mode 100644 (file)
index 124f0cb..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) @CompanyNameMagicTag 2022. All rights reserved.
- * Description: This module include test functions of PBAP service.
- */
-#ifndef PBAP_SERVICE_H
-#define PBAP_SERVICE_H
-#include <td_type.h>
-#include <stdint.h>
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-//void bt_pbap_service_sample_cmd(uint32_t cmd_id, const char **params, int32_t params_cnt);
-void uapi_pbap_pce_reg_callback(void);
-void uapi_pbap_cmd_start_client(void);
-
-void uapi_pbap_cmd_pull_phonebook(void);
-void uapi_pbap_cmd_pull_vcard_listing(unsigned char *tell,uint8_t len);
-void uapi_pbap_cmd_pull_vcard_entry(td_char *vcf_name);
-
-
-#ifdef  __cplusplus
-}
-#endif
-#endif
\ No newline at end of file
index e899d08..e564e2c 100644 (file)
@@ -34,7 +34,6 @@ public:
     ~MainBluetoothView() override;\r
 \r
     void OnStart() override;\r
-\r
     void DropView(UIView& view);\r
     void ChangeView(int16_t hideView, int16_t showView);\r
     static MainBluetoothView *GetInstance(void);\r
index ed015a0..d0bcc4b 100644 (file)
@@ -1,23 +1,19 @@
 /*\r
- * @Author: luozheng 1732036298@qq.com\r
- * @Date: 2024-08-05 15:20:01\r
- * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-09-05 16:13:55\r
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/TipsConnFailMessageView.h\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: TipsConnFailMessageView view\r
+ * Author:\r
+ * Create: 2021-10-13\r
  */\r
-\r
 #ifndef TIPS_CONN_FAIL_MESSAGE_VIEW_H\r
 #define TIPS_CONN_FAIL_MESSAGE_VIEW_H\r
 \r
 #include "components/ui_view_group.h"\r
 #include "components/ui_label.h"\r
-#include "components/ui_label_ext.h"\r
-#include "components/ui_label_button_ext.h"\r
+#include "components/ui_label_button.h"\r
 #include "components/ui_image_view.h"\r
 #include "bts_def.h"\r
 \r
 namespace OHOS {\r
-/*连接失败视图*/\r
 class TipsConnFailMessageView {\r
 public:\r
     TipsConnFailMessageView();\r
@@ -29,11 +25,11 @@ private:
     void ShowUpButtonBack(void);\r
     void ShowUpTipLabel(void);\r
     void InitNameLabel(void);\r
-    UILabelExt *titleLabel{nullptr};\r
-    UILabelExt *conn_fail_Label{nullptr};\r
-    UILabelExt *tipLabel{nullptr};\r
+    UILabel *titleLabel{nullptr};\r
+    UILabel *tipLabel{nullptr};\r
+    UILabel *tipTwoLabel{nullptr};\r
     UILabel *bluetoothNameLabel{nullptr};\r
-    UILabelButtonExt *backButton{nullptr};\r
+    UILabelButton *backButton{nullptr};\r
     UIImageView *tipImg{nullptr};\r
     UIViewGroup *group{nullptr};\r
 };\r
index fe11194..3420d3e 100644 (file)
@@ -1,42 +1,30 @@
 /*\r
- * @Author: luozheng 1732036298@qq.com\r
- * @Date: 2024-08-05 15:20:01\r
- * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-10-10 10:19:05\r
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/TipsFailMessageView.h\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: TipsFailMessageView view\r
+ * Author:\r
+ * Create: 2021-10-13\r
  */\r
-\r
 #ifndef TIPS_FAIL_MESSAGE_VIEW_H\r
 #define TIPS_FAIL_MESSAGE_VIEW_H\r
 \r
 #include "components/ui_view_group.h"\r
 #include "components/ui_label.h"\r
-#include "components/ui_label_ext.h"\r
-#include "components/ui_label_button_ext.h"\r
+#include "components/ui_label_button.h"\r
 #include "components/ui_image_view.h"\r
 \r
-namespace OHOS\r
-{\r
-    /*蓝牙设备搜索不到视图*/\r
-    class TipsFailMessageView\r
-    {\r
-    public:\r
-        TipsFailMessageView();\r
-        ~TipsFailMessageView();\r
-        static TipsFailMessageView *GetInstance();\r
-        UIViewGroup *CreateTipsFailMessageView(void);\r
-\r
-    private:\r
-        bool CreateTipsFailMessageLabelView(void);\r
-        bool CreateTipsFailMessageLabelButton(void);\r
-        bool CreateTipsFailMessageImageView(void);\r
-\r
-        int ShowUpButtonBack(void);\r
-        UIViewGroup *group{nullptr};\r
-        UILabelExt *titleLabel{nullptr};             /*标题:蓝牙耳机 */\r
-        UIImageView *btIconImage{nullptr};           /*灰色的蓝牙图标*/\r
-        UILabelExt *btHeadsetNotFoundLabel{nullptr}; /*当前搜索不到耳机蓝牙设备*/\r
-        UILabelExt *rescanButton{nullptr};     /*重新搜索按钮*/\r
-    };\r
+namespace OHOS {\r
+class TipsFailMessageView {\r
+public:\r
+    TipsFailMessageView();\r
+    ~TipsFailMessageView();\r
+    static TipsFailMessageView *GetInstance();\r
+    UIViewGroup *ShowUpViewInit(void);\r
+private:\r
+    int ShowUpButtonBack(void);\r
+    UILabel *titleLabel{nullptr};\r
+    UILabelButton *backButton{nullptr};\r
+    UIImageView *tipImg{nullptr};\r
+    UIViewGroup *group{nullptr};\r
+};\r
 } // namespace OHOS\r
 #endif // TIPS_FAIL_MESSAGE_VIEW_H
\ No newline at end of file
index 7d0e644..09ed3f2 100644 (file)
@@ -1,17 +1,15 @@
 /*\r
- * @Author: luozheng 1732036298@qq.com\r
- * @Date: 2024-08-05 15:20:01\r
- * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-09-05 11:13:11\r
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/TipsSuccMessageView.h\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: TipsSuccMessage view\r
+ * Author:\r
+ * Create: 2021-10-13\r
  */\r
 #ifndef TIPS_SUCC_MESSAGE_VIEW_H\r
 #define TIPS_SUCC_MESSAGE_VIEW_H\r
 \r
 #include "components/ui_view_group.h"\r
 #include "components/ui_label.h"\r
-#include "components/ui_label_ext.h"\r
-#include "components/ui_label_button_ext.h"\r
+#include "components/ui_label_button.h"\r
 #include "components/ui_image_view.h"\r
 #include "bts_def.h"\r
 \r
@@ -24,10 +22,11 @@ public:
     UIViewGroup *ShowUpViewInit(void);\r
     void RefreshNameLabel(const bd_addr_t &bdAddr);\r
 private:\r
-    UILabelExt *titleLabel{nullptr};\r
-    UILabelExt *bluetoothNameLabel{nullptr};\r
-    UILabelExt *conn_succ_Label{nullptr};\r
-    UILabelButtonExt *backButton{nullptr};\r
+    void ShowUpButtonBack(void);\r
+    void InitNameLabel(void);\r
+    UILabel *titleLabel{nullptr};\r
+    UILabel *bluetoothNameLabel{nullptr};\r
+    UILabelButton *backButton{nullptr};\r
     UIImageView *tipImg{nullptr};\r
     UIViewGroup *group{nullptr};\r
 };\r
index b5acb85..763f631 100644 (file)
 #include "wearable_log.h"
 #include "UiConfig.h"
 #include "BluetoothModel.h"
-#include "bluetooth/include/MainBluetoothView.h"
-#include "CallerLogModel.h"
-#include "custom_utils.h"
-#include "notification_manager.h"
 
 namespace OHOS {
 BluetoothCaseListAdapter::~BluetoothCaseListAdapter()
@@ -45,15 +41,15 @@ public:
     }
     bool OnClick(UIView& view, const ClickEvent& event) override
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOnClickListListener");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOnClickListListener");
         UNUSED(event);
         BluetoothItemView *itemView = static_cast<BluetoothItemView *>(&view);
-        // // 二次点击不做响应
-        // bool ret = itemView->IsConnectAnimator();
-        // if (ret) {
-        //     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Block secondary clicks");
-        //     return true;
-        // }
+        // 二次点击不做响应
+        bool ret = itemView->IsConnectAnimator();
+        if (ret) {
+            WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "Block secondary clicks");
+            return true;
+        }
         BluetoothCaseInfo *bluetoothInfo_ = itemView->GetItemInfo();
         /* 点击事件 */
         BluetoothModel::GetInstance()->SetTempMacValue(bluetoothInfo_);
@@ -66,55 +62,37 @@ public:
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::DropView bluetoothEarPhoneView == nullptr");
             return false;
         }
-        bluetoothEarPhoneView->BtAnimatorStop();//搜索动画停止
-        bluetoothEarPhoneView->StopBtDiscovery();//停止扫描
+        bluetoothEarPhoneView->BtAnimatorStop();
+        bluetoothEarPhoneView->StopBtDiscovery();
         BluetoothModel::GetInstance()->SetTagScanDeviceClicked(true);
-        MainBluetoothView *mainBluetoothView = MainBluetoothView::GetInstance();
-        if (mainBluetoothView == nullptr) {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClick mainBluetoothView GetInstance fail");
+
+        // 刷新列表
+        BluetoothEarListView *bluetoothEarListView = BluetoothEarListView::GetInstance();
+        if (bluetoothEarListView == nullptr) {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClickCancelConnedRequestButton bluetoothEarListView nullptr");
             return false;
         }
-
-        // // 刷新列表
-        // BluetoothEarListView *bluetoothEarListView = BluetoothEarListView::GetInstance();
-        // if (bluetoothEarListView == nullptr) {
-        //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClickCancelConnedRequestButton bluetoothEarListView nullptr");
-        //     return false;
-        // }
-        // if (bluetoothEarListView->GetScanUIList() == nullptr) {
-        //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClickCancelConnedRequestButton GetScanUIList nullptr");
-        //     return false;
-        // }
-        // bluetoothEarListView->GetScanUIList()->RefreshList();
-        // // bluetoothEarListView->SetNewEquipmentButtonRemove();
-        // // bluetoothEarListView->SetCancelConnedRequestButtonAdd();
-        // RootView::GetInstance()->Invalidate();
+        if (bluetoothEarListView->GetScanUIList() == nullptr) {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClickCancelConnedRequestButton GetScanUIList nullptr");
+            return false;
+        }
+        bluetoothEarListView->GetScanUIList()->RefreshList();
+        bluetoothEarListView->SetNewEquipmentButtonRemove();
+        bluetoothEarListView->SetCancelConnedRequestButtonAdd();
+        RootView::GetInstance()->Invalidate();
 
         // 判断是否正在连接
-        bd_addr_t *lastAddr = BluetoothModel::GetInstance()->GetLastConnedAddr();
-
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Disconnect LastDevice retVal = %02X %02X %02X * * *",
-           lastAddr->addr[0],lastAddr->addr[1],lastAddr->addr[2]);
-        
-     
-        bool ret = bt_is_acl_connected(lastAddr);
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Disconnect LastDevice retVal =  ret %d %02X %02X %02X * * *",
-           ret, lastAddr->addr[0],lastAddr->addr[1],lastAddr->addr[2]);
-        
-        
-        if (!( lastAddr->addr[0] == 0 && lastAddr->addr[1] == 0 && lastAddr->addr[2] == 0
-         && lastAddr->addr[3] == 0 && lastAddr->addr[4] == 0 && lastAddr->addr[5] == 0 ) && ret) {
-          BluetoothModel::GetInstance()->SetTagConnectNew(true);
-                errcode_t retVal = gap_disconnect_remote_device(lastAddr);
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Disconnect LastDevice retVal =  %d %02X %02X %02X * * *", retVal,
-            lastAddr->addr[0],lastAddr->addr[1],lastAddr->addr[2]);
-                    }
-            else
-            {
-                mainBluetoothView->ChangeView(BluetoothModel::GetInstance()->GetCurView(), BLUETOOTHRECONNECTVIEW);
-                errcode_t retVal = BluetoothModel::GetInstance()->ConnectRemoteDevice(&addr);
-                        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ConnectRemoteDevice ret =  %d", retVal);
+        if (BluetoothModel::GetInstance()->GetBluetoothAclState()) {
+            bd_addr_t *lastAddr = BluetoothModel::GetInstance()->GetLastConnedAddr();
+            WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "LastDevice addr: %02x%02x%02x%02x%02x%02x is connected",
+                lastAddr->addr[5], lastAddr->addr[4], lastAddr->addr[3],
+                lastAddr->addr[2], lastAddr->addr[1], lastAddr->addr[0]);
+            BluetoothModel::GetInstance()->SetTagConnectNew(true);
+            errcode_t retVal = gap_disconnect_remote_device(lastAddr);
+            WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "Disconnect LastDevice retVal =  %d", retVal);
         }
+        errcode_t retVal = BluetoothModel::GetInstance()->ConnectRemoteDevice(&addr);
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "ConnectRemoteDevice ret =  %d", retVal);
         // 跳转可选页
         return true;
     }
@@ -151,7 +129,7 @@ UIView *BluetoothCaseListAdapter::GetView(UIView *inView, int16_t index)
         return nullptr;
     }
     if ((static_cast<unsigned int>(index) > bluetoothCaseList.size() - 1) || (index < 0)) {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothCaseListAdapter::GetView %d %d", index, bluetoothCaseList.size());
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothCaseListAdapter::GetView %d %d", index, bluetoothCaseList.size());
         return nullptr;
     }
     std::list<BluetoothCaseInfo>::iterator node = bluetoothCaseList.begin();
@@ -178,10 +156,9 @@ UIView *BluetoothCaseListAdapter::GetView(UIView *inView, int16_t index)
     (void)sprintf_s(addrTmp, sizeof(addrTmp), "%02x%02x%02x%02x%02x%02x", node->addr[0], node->addr[1],
         node->addr[2], node->addr[3], node->addr[4], node->addr[5]); // 没有%s类型,不做返回判断
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "addrTmp %s", addrTmp);
-    // ClickAnimation(itemData, item);
-    item->SetViewIndex(index);
+    ClickAnimation(itemData, item);
     item->SetItemInfo(itemData, true);
-    item->SetPairingtatus();
+    item->SetViewIndex(index);
     return item;
 }
 } // namespace OHOS
\ No newline at end of file
index 5478357..f2950ec 100644 (file)
 #include "wearable_log.h"
 #include "UiConfig.h"
 #include "BluetoothPresenter.h"
-#include "CallerLogModel.h"
-#include "custom_utils.h"
-#include "notification_manager.h"
 
-#ifdef SUPPORT_PHONE_SERVICE
-#include "PhoneAGService.h"
-#endif
+namespace OHOS {
+BluetoothDeviceCaseListAdapter::~BluetoothDeviceCaseListAdapter()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter::~BluetoothDeviceCaseListAdapter");
+    UIView::OnClickListener *click = item->GetOnClickListener();
+    if (click != nullptr) {
+        delete click;
+        click = nullptr;
+    }
+}
 
-namespace OHOS
+uint16_t BluetoothDeviceCaseListAdapter::GetCount()
 {
-    class BluetoothDeviceOnClickListListener;
-    static BluetoothDeviceOnClickListListener *g_btOnClickListListener = nullptr;
-    class BluetoothDeviceOnClickListListener : public UIView::OnClickListener
+    return BluetoothModel::GetInstance()->GetConnedDevicesCase().Size();
+}
+
+class BluetoothDeviceOnClickListListener : public UIView::OnClickListener {
+public:
+    BluetoothDeviceOnClickListListener(BluetoothCaseInfo *bluetoothInfo)
     {
-    public:
-        BluetoothDeviceOnClickListListener() {}
-        ~BluetoothDeviceOnClickListListener() {}
-        void SetItemInfo(const BluetoothCaseInfo *bluetoothInfo)
-        {
-            if (bluetoothInfo != nullptr)
-            {
-                (void)memcpy_s(addr.addr, BD_ADDR_LEN,
-                               bluetoothInfo->addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断
-                (void)memcpy_s(bluetoothInfo_.addr, BD_ADDR_LEN,
-                               bluetoothInfo->addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断
-                (void)memcpy_s(bluetoothInfo_.deviceName, BD_NAME_LEN,
-                               bluetoothInfo->deviceName, BD_NAME_LEN); // 源和目标内存长度一样,不做返回值判断
-                bluetoothInfo_.index = bluetoothInfo->index;
-                bluetoothInfo_.connIndex = bluetoothInfo->connIndex;
-            }
+        if (bluetoothInfo != nullptr) {
+            (void)memcpy_s(addr.addr, BD_ADDR_LEN,
+                           bluetoothInfo->addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断
+            (void)memcpy_s(bluetoothInfo_.addr, BD_ADDR_LEN,
+                           bluetoothInfo->addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断
+            (void)memcpy_s(bluetoothInfo_.deviceName, BD_NAME_LEN,
+                           bluetoothInfo->deviceName, BD_NAME_LEN); // 源和目标内存长度一样,不做返回值判断
+            bluetoothInfo_.index = bluetoothInfo->index;
+            bluetoothInfo_.connIndex = bluetoothInfo->connIndex;
         }
-        bool OnClick(UIView &view, const ClickEvent &event) override
-        {
-            UNUSED(event);
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOnClickListListener");
-            BluetoothItemView *itemView = static_cast<BluetoothItemView *>(view.GetParent());
-            BluetoothCaseInfo *g_BluetoothCaseInfo = itemView->GetItemInfo();
-            SetItemInfo(g_BluetoothCaseInfo); // 保存点击的设备信息
-            BluetoothModel::GetInstance()->SetTempMacValue(&bluetoothInfo_);
-            if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)
-            {
-                JumpView *jumpView = JumpView::GetInstance();
-                if (jumpView == nullptr)
-                {
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClick jumpView GetInstance fail");
-                    return false;
-                }
-                jumpView->ChangeView(JumpView::BluetoothJumpViewNum::BLUETOOTHDEVICELISTVIEW,
-                                     JumpView::BluetoothJumpViewNum::BLUETOOTHEOPTIONSVIEW);
+    }
+    ~BluetoothDeviceOnClickListListener() {}
+    bool OnClick(UIView& view, const ClickEvent& event) override
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClickListListener");
+        UNUSED(view);
+        UNUSED(event);
+        /* 点击事件 */
+        // 跳转可选页
+        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {
+            JumpView *jumpView = JumpView::GetInstance();
+            if (jumpView == nullptr) {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClick jumpView GetInstance fail");
+                return false;
             }
-            #ifdef  SUPPORT_BT_SERVICE
-            else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)
-            {
-                MainBluetoothView *mainBluetoothView = MainBluetoothView::GetInstance();
-                if (mainBluetoothView == nullptr)
-                {
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClick mainBluetoothView GetInstance fail");
-                    return false;
-                }
-                if (view.GetViewType() == UIViewType::UI_BUTTON) // 点击的是按钮
-                {
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UIViewType::UI_BUTTON,%s", reinterpret_cast<const char *>(bluetoothInfo_.deviceName));
-                    bd_addr_t *lastAddr = BluetoothModel::GetInstance()->GetLastConnedAddr();
-                    bool ret = bt_is_acl_connected(lastAddr);
-                    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bt_is_acl_connected:%d lastAddr:%02X %02X %02X * * *",
-                                  ret, lastAddr->addr[0], lastAddr->addr[1], lastAddr->addr[2]);
-
-                    // 地址不是全0并且ret为真
-                    if(OHOS::CallerLogModel::GetInstance()->GetCallSource() == OHOS::CallerLogModel::CallSourceCat1
-                    && OHOS::NotificationManager::GetInstance()->GetWatchCallStatus())
-                    {
-                         if (!(lastAddr->addr[0] == 0 && lastAddr->addr[1] == 0 && lastAddr->addr[2] == 0 &&
-                          lastAddr->addr[3] == 0 && lastAddr->addr[4] == 0 && lastAddr->addr[5] == 0) &&
-                            ret)
-                        {   
-                            if(headset_Is_connect())
-                            {
-                                if(headset_SCO_Is_connect_extend(lastAddr))
-                                {
-                                    do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CAT_HFP_DIS_SCO_CONNECT, nullptr, 0);
-                                }
-                                else
-                                {
-                                    uint8_t time=200;
-                                    do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CAT_HFP_SCO_CONNECT, &time, sizeof(uint8_t));
-                                }
-                            }
-                            else
-                            {
-                                do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CONNECT_AG, nullptr, 0);
-                            }
-                            
-                        }
-                        else
-                        {
-                            mainBluetoothView->ChangeView(BluetoothModel::GetInstance()->GetCurView(), BLUETOOTHRECONNECTVIEW);
-                            errcode_t retVal = BluetoothModel::GetInstance()->ConnectRemoteDevice(&addr);
-                            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnectRemoteDevice] retVal =  %d", retVal);
-                        }
-
-                    }
-                    else
-                    {
-                         if (!(lastAddr->addr[0] == 0 && lastAddr->addr[1] == 0 && lastAddr->addr[2] == 0 &&
-                          lastAddr->addr[3] == 0 && lastAddr->addr[4] == 0 && lastAddr->addr[5] == 0) &&
-                            ret)
-                        {
-                            BluetoothModel::GetInstance()->SetTagConnectNew(false); //主动断开连接不需要回连该设备
-                            errcode_t retVal = gap_disconnect_remote_device(lastAddr);
-                            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[gap_disconnect_remote_device] retVal =  %d", retVal);
-                        }
-                        else
-                        {
-                            mainBluetoothView->ChangeView(BluetoothModel::GetInstance()->GetCurView(), BLUETOOTHRECONNECTVIEW);
-                            errcode_t retVal = BluetoothModel::GetInstance()->ConnectRemoteDevice(&addr);
-                            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnectRemoteDevice] retVal =  %d", retVal);
-                        }
-                    }
-                   
-                }
-                else if (view.GetViewType() == UIViewType::UI_IMAGE_VIEW) /*点击的是图片*/
-                {
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UIViewType::UI_IMAGE_VIEW,%s", reinterpret_cast<const char *>(bluetoothInfo_.deviceName));
-                    mainBluetoothView->ChangeView(BluetoothModel::GetInstance()->GetCurView(), BLUETOOTHEOPTIONSVIEW);
-                    BluetoothOptionsView *bluetoothOptionsView = BluetoothOptionsView::GetInstance();
-                    if (bluetoothOptionsView == nullptr)
-                    {
-                        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick bluetoothOptionsView new fail");
-                        return false;
-                    }
-                    bluetoothOptionsView->SetCurrentAddr(addr);
-                    bluetoothOptionsView->RefreshText();
-                }
+            jumpView->ChangeView(JumpView::BluetoothJumpViewNum::BLUETOOTHDEVICELISTVIEW,
+                                 JumpView::BluetoothJumpViewNum::BLUETOOTHEOPTIONSVIEW);
+        } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {
+            MainBluetoothView *mainBluetoothView = MainBluetoothView::GetInstance();
+            if (mainBluetoothView == nullptr) {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClick mainBluetoothView GetInstance fail");
+                return false;
             }
-            #endif
-
-            return true;
+            mainBluetoothView->ChangeView(BLUETOOTHDEVICELISTVIEW, BLUETOOTHEOPTIONSVIEW);
         }
-
-    private:
-        BluetoothCaseInfo bluetoothInfo_{};
-        bd_addr_t addr;
-    };
-
-    BluetoothDeviceCaseListAdapter::~BluetoothDeviceCaseListAdapter()
-    {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter::~BluetoothDeviceCaseListAdapter");
-        if (g_btOnClickListListener != nullptr)
-        {
-            delete g_btOnClickListListener;
-            g_btOnClickListListener = nullptr;
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClickListListener addr: %02x%02x%02x%02x%02x%02x",
+            bluetoothInfo_.addr[5], bluetoothInfo_.addr[4], bluetoothInfo_.addr[3], /* mac下标 0 1 2 3 4 5 */
+            bluetoothInfo_.addr[2], bluetoothInfo_.addr[1], bluetoothInfo_.addr[0]); /* mac下标 0 1 2 3 4 5 */
+        BluetoothModel::GetInstance()->SetTempMacValue(&bluetoothInfo_);
+        // 用于查询连接状态
+        BluetoothOptionsView *bluetoothOptionsView = BluetoothOptionsView::GetInstance();
+        if (bluetoothOptionsView == nullptr) {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick bluetoothOptionsView new fail");
+            return false;
         }
+        bluetoothOptionsView->SetCurrentAddr(addr);
+        bluetoothOptionsView->RefreshText();
+        return true;
     }
 
-    uint16_t BluetoothDeviceCaseListAdapter::GetCount()
-    {
-        return BluetoothModel::GetInstance()->GetConnedDevicesCase().Size();
-    }
+private:
+    BluetoothCaseInfo bluetoothInfo_{};
+    bd_addr_t addr;
+};
 
-    UIView *BluetoothDeviceCaseListAdapter::GetView(UIView *inView, int16_t index)
-    {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter GetView");
-        List<BluetoothCaseInfo> &bluetoothCaseList = BluetoothModel::GetInstance()->GetConnedDevicesCase();
-        if (bluetoothCaseList.IsEmpty())
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothCaseList IsEmpty");
-            return nullptr;
-        }
-        if ((index > bluetoothCaseList.Size() - 1) || (index < 0))
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter::GetView err,%d,%d", index, bluetoothCaseList.Size());
+
+UIView *BluetoothDeviceCaseListAdapter::GetView(UIView *inView, int16_t index)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter GetView");
+    List<BluetoothCaseInfo> &bluetoothCaseList = BluetoothModel::GetInstance()->GetConnedDevicesCase();
+    if (bluetoothCaseList.IsEmpty()) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothCaseList IsEmpty");
+        return nullptr;
+    }
+    if ((index > bluetoothCaseList.Size() - 1) || (index < 0)) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter::GetView err");
+        return nullptr;
+    }
+    ListNode<BluetoothCaseInfo>* node = bluetoothCaseList.Begin();
+    for (uint16_t i = 0; i < index; i++) {
+        node = node->next_;
+    }
+    node->data_.index = index;
+    BluetoothCaseInfo itemData = node->data_;
+    if (inView == nullptr) {
+        item = new BluetoothItemView();
+        if (item == nullptr) {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetView item err");
             return nullptr;
         }
-        ListNode<BluetoothCaseInfo> *node = bluetoothCaseList.Begin();
-        for (uint16_t i = 0; i < index; i++)
-        {
-            node = node->next_;
-        }
-        node->data_.index = index;
-        BluetoothCaseInfo itemData = node->data_;
-        if (inView == nullptr)
-        {
-            item = new BluetoothItemView();
-            if (item == nullptr)
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetView item err");
-                return nullptr;
-            }
-        }
-        else
-        {
-            item = static_cast<BluetoothItemView *>(inView);
-        }
-        item->SetViewIndex(index);
-        item->SetItemInfo(itemData, false);
-        item->SetConnectionstatus(itemData);
+    } else {
+        item = static_cast<BluetoothItemView *>(inView);
+    }
+    item->SetItemInfo(itemData, false);
+    item->SetConnectionstatus(itemData);
 
-        if (g_btOnClickListListener == nullptr)
-        {
-            g_btOnClickListListener = new BluetoothDeviceOnClickListListener();
-            if (g_btOnClickListListener == nullptr)
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter::GetView new fail");
-                return nullptr;
-            }
-        }
-        listener = static_cast<UIView::OnClickListener *>(g_btOnClickListListener);
-        item->SetViewOnClickListener(listener);
-        sprintf_s(addrTmp, sizeof(addrTmp), "%02x%02x%02x%02x%02x%02x", node->data_.addr[0], node->data_.addr[1],
-                  node->data_.addr[2], node->data_.addr[3], node->data_.addr[4], node->data_.addr[5]); // 没有%s类型,不做返回判断
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addrTmp %s", addrTmp);
-        return item;
+    listener = item->GetOnClickListener();
+    if (listener != nullptr) {
+        delete listener;
+        listener = nullptr;
+    }
+    listener = new BluetoothDeviceOnClickListListener(&node->data_);
+    if (listener == nullptr) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetView BluetoothDeviceOnClickListListener err");
+        return nullptr;
     }
+    sprintf_s(addrTmp, sizeof(addrTmp), "%02x%02x%02x%02x%02x%02x", node->data_.addr[0], node->data_.addr[1],
+        node->data_.addr[2], node->data_.addr[3], node->data_.addr[4], node->data_.addr[5]); // 没有%s类型,不做返回判断
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "addrTmp %s", addrTmp);
+
+    item->SetViewIndex(index);
+    item->SetOnClickListener(listener);
+    return item;
+}
 } // namespace OHOS
\ No newline at end of file
index 2dd4085..94ef720 100644 (file)
 #include "PlayersPresenter.h"\r
 #include "BluetoothPresenter.h"\r
 #include "BluetoothModel.h"\r
-#include "ui_resource_string.h"\r
-namespace OHOS\r
-{\r
-    static BluetoothDeviceListView *g_pBluetoothDeviceListView{nullptr};\r
 \r
-    BluetoothDeviceListView::BluetoothDeviceListView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView::BluetoothDeviceListView");\r
-        g_pBluetoothDeviceListView = this;\r
-    }\r
+namespace OHOS {\r
+static BluetoothDeviceListView *g_pBluetoothDeviceListView{nullptr};\r
 \r
-    BluetoothDeviceListView::~BluetoothDeviceListView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView::~BluetoothDeviceListView");\r
-        if (group)\r
-        {\r
-            group->RemoveAll();\r
-            if (titleLabel)\r
-            {\r
-                delete titleLabel;\r
-                titleLabel = nullptr;\r
-            }\r
-            if (emptyLabel)\r
-            {\r
-                delete emptyLabel;\r
-                emptyLabel = nullptr;\r
-            }\r
-            if (adapterText)\r
-            {\r
-                delete adapterText;\r
-                adapterText = nullptr;\r
-            }\r
-            if (list)\r
-            {\r
-                delete list;\r
-                list = nullptr;\r
-            }\r
-            if (newEquipmentButton)\r
-            {\r
-                delete newEquipmentButton;\r
-                newEquipmentButton = nullptr;\r
-            }\r
-            delete group;\r
-            group = nullptr;\r
-        }\r
-        g_pBluetoothDeviceListView = nullptr;\r
-    }\r
+BluetoothDeviceListView::BluetoothDeviceListView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView::BluetoothDeviceListView");\r
+    g_pBluetoothDeviceListView = this;\r
+}\r
 \r
-    BluetoothDeviceListView *BluetoothDeviceListView::GetInstance()\r
-    {\r
-        return g_pBluetoothDeviceListView;\r
-    }\r
+BluetoothDeviceListView::~BluetoothDeviceListView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView::~BluetoothDeviceListView");\r
+    group->RemoveAll();\r
+    delete titleLabel;\r
+    titleLabel = nullptr;\r
+    delete adapterText;\r
+    adapterText = nullptr;\r
+    delete emptyLabel;\r
+    emptyLabel = nullptr;\r
+    delete list;\r
+    list = nullptr;\r
+    delete newEquipmentButton;\r
+    newEquipmentButton = nullptr;\r
+    delete group;\r
+    group = nullptr;\r
+    g_pBluetoothDeviceListView = nullptr;\r
+}\r
 \r
-    void BluetoothDeviceListView::InitList()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView::InitList");\r
-        if (adapterText == nullptr)\r
-        {\r
-            adapterText = new BluetoothDeviceCaseListAdapter();\r
-            if (adapterText == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView adapterText new fail");\r
-                return;\r
-            }\r
+BluetoothDeviceListView *BluetoothDeviceListView::GetInstance()\r
+{\r
+    return g_pBluetoothDeviceListView;\r
+}\r
+\r
+void BluetoothDeviceListView::InitList()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView::InitList");\r
+    // list type\r
+    if (adapterText == nullptr) {\r
+        adapterText = new BluetoothDeviceCaseListAdapter();\r
+        if (adapterText == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView adapterText new fail");\r
+            return;\r
         }\r
-        if (list == nullptr)\r
-        {\r
-            list = new UIList(UIList::VERTICAL);\r
-            if (list == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView list new fail");\r
-                return;\r
-            }\r
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "adapterText->GetCount = %d", adapterText->GetCount());\r
-            list->SetPosition(43, 120, 380, 100);\r
-            list->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
-            list->SetStyle(STYLE_BORDER_RADIUS, 50);\r
-            list->SetDragACCLevel(5);\r
-            list->SetSwipeACCLevel(200);\r
-            list->SetReboundSize(30);\r
-            // list->SetScrollBlankSize(30);\r
-            list->SetAdapter(adapterText);\r
+    }\r
+    if (list == nullptr) {\r
+        list = new UIList(UIList::VERTICAL);\r
+        if (list == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView list new fail");\r
+            return;\r
         }\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView::InitList end");\r
+        list->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+        list->SetPosition(36, 118, HORIZONTAL_RESOLUTION, 241); // 36:x 118:y 454:width 241:height\r
+        list->SetStartIndex(0); // 0 : list start index\r
+        list->SetAdapter(adapterText);\r
+        group->Add(list);\r
     }\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView::InitList end");\r
+}\r
 \r
-    void BluetoothDeviceListView::InItEmptyLabel()\r
-    {\r
-        if (emptyLabel == nullptr)\r
-        {\r
-            emptyLabel = new UILabelExt();\r
-            if (emptyLabel == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView emptyLabel new fail");\r
-                return;\r
-            }\r
+void BluetoothDeviceListView::InItEmptyLabel() // 暂无已配对设备\r
+{\r
+    if (emptyLabel == nullptr) {\r
+        emptyLabel = new UILabel();\r
+        if (emptyLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView emptyLabel new fail");\r
+            return;\r
         }\r
-        emptyLabel->SetPosition(83, 205, 300, 45);\r
-        emptyLabel->SetTextId(STR_NO_PAIRED_DEV); // 暂无已配对设备\r
-        emptyLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
-        emptyLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        emptyLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
-        emptyLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-        emptyLabel->SetVisible(false);\r
     }\r
+    emptyLabel->SetPosition(87, 205, 280, 45); // 87:x 205:y 280:width 45:height\r
+    emptyLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
+    emptyLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+    emptyLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+        UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+    emptyLabel->SetText("暂无已配对设备");\r
+}\r
 \r
-    UIViewGroup *BluetoothDeviceListView::GetGroup()\r
-    {\r
-        return group;\r
-    }\r
+UIViewGroup *BluetoothDeviceListView::GetGroup()\r
+{\r
+    return group;\r
+}\r
 \r
-    /*获取蓝牙已连接设备列表*/\r
-    UIList *BluetoothDeviceListView::GetDeviceUIList()\r
-    {\r
-        return list;\r
-    }\r
+UIList *BluetoothDeviceListView::GetDeviceUIList()\r
+{\r
+    return list;\r
+}\r
 \r
-    void BluetoothDeviceListView::InitNewEquipmentButton()\r
-    {\r
-        if (newEquipmentButton == nullptr)\r
-        {\r
-            newEquipmentButton = new UILabelExt();\r
-            if (newEquipmentButton == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView newEquipmentButton new fail");\r
-                return;\r
-            }\r
-        }\r
-        newEquipmentButton->SetPosition(133, 390, 200, 40);\r
-        newEquipmentButton->SetTextId(STR_BT_HEADSET_RESCAN); // 重新搜索\r
-        newEquipmentButton->SetViewId(BLUETOOTH_NEWEQUIPMENT_BUTTON);\r
-        newEquipmentButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
-        newEquipmentButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-        // newEquipmentButton->SetImageSrc(PNG_466x100BUTTON_IMAGE, PNG_466x100BUTTON_IMAGE);\r
-        newEquipmentButton->SetTextColor(Color::GetColorFromRGBA(0x35, 0x49, 0xff, 0xff));\r
-        // newEquipmentButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
-        newEquipmentButton->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        newEquipmentButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        newEquipmentButton->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        newEquipmentButton->SetTouchable(true);\r
-        UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
-        UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
-        if ((clickListener == nullptr) && (clickListener2 == nullptr))\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
+void BluetoothDeviceListView::InitNewEquipmentButton()\r
+{\r
+    if (newEquipmentButton == nullptr) {\r
+        newEquipmentButton = new UILabelButton();\r
+        if (newEquipmentButton == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView newEquipmentButton new fail");\r
             return;\r
         }\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-        {\r
-            newEquipmentButton->SetOnClickListener(clickListener);\r
-        }\r
-        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-        {\r
-            newEquipmentButton->SetOnClickListener(clickListener2);\r
-        }\r
     }\r
+    newEquipmentButton->SetPosition(65, 359, 324, 101); // 65 : x, 359 : y, 324:width 101:height\r
+    newEquipmentButton->SetText("新设备");\r
+    UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
+    UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
+    if ((clickListener == nullptr) && (clickListener2 == nullptr)) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
+        return;\r
+    }\r
+    if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+        newEquipmentButton->SetOnClickListener(clickListener);\r
+        newEquipmentButton->SetTextColor(Color::Red());\r
+    } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+        newEquipmentButton->SetOnClickListener(clickListener2);\r
+        newEquipmentButton->SetTextColor(Color::Blue());\r
+    }\r
+    newEquipmentButton->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
+    newEquipmentButton->SetViewId(BLUETOOTH_NEWEQUIPMENT_BUTTON);\r
+    newEquipmentButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
+}\r
 \r
-    UIViewGroup *BluetoothDeviceListView::CreateBluetoothDeviceListView()\r
-    {\r
-        // 获取currentBdAddr db值 待开发\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView init");\r
-        if (group == nullptr)\r
-        {\r
-            group = new UIViewGroup();\r
-            if (group == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
-                return nullptr;\r
-            }\r
-        }\r
-        group->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
-        group->SetViewId(BLUETOOTH_DEVICE_LIST_VIEW);\r
-        group->SetDraggable(true);\r
-        group->SetTouchable(true);\r
-        UIView::OnDragListener *earDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
-        UIView::OnDragListener *earDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
-        if ((earDragListener == nullptr) && (earDragListener2 == nullptr))\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "earDragListener GetInstance fail");\r
+UIViewGroup *BluetoothDeviceListView::InitShowUpView()\r
+{\r
+    // 获取currentBdAddr db值 待开发\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView init");\r
+    if (group == nullptr) {\r
+        group = new UIViewGroup();\r
+        if (group == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
             return nullptr;\r
         }\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-        {\r
-            group->SetOnDragListener(earDragListener);\r
-        }\r
-        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-        {\r
-            group->SetOnDragListener(earDragListener2);\r
-        }\r
-        /* ------------------------------- titleLabel ------------------------------- */\r
-        if (titleLabel == nullptr)\r
-        {\r
-            titleLabel = new UILabelExt();\r
-            if (titleLabel == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView titleLabel new fail");\r
-                return nullptr;\r
-            }\r
+    }\r
+    group->SetPosition(0, 0);\r
+    group->SetWidth(HORIZONTAL_RESOLUTION);\r
+    group->SetHeight(VERTICAL_RESOLUTION);\r
+    if (titleLabel == nullptr) {\r
+        titleLabel = new UILabel();\r
+        if (titleLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView titleLabel new fail");\r
+            return nullptr;\r
         }\r
-        titleLabel->SetPosition(83, 50, 300, 35);\r
-        titleLabel->SetTextId(STR_BLUETOOTH_HEADPHONES);\r
-        titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
-        titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        titleLabel->SetStyle(STYLE_TEXT_FONT,30);\r
-        titleLabel->SetStyle(STYLE_LINE_HEIGHT,35);\r
-        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        titleLabel->SetRollSpeed(23);\r
-        titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-        InitList(); // 加载bt设备列表\r
-        InitNewEquipmentButton();\r
-        InItEmptyLabel();\r
-        /* -------------------------------------------------------------------------- */\r
-        group->Add(titleLabel);\r
-        group->Add(list);\r
-        group->Add(emptyLabel);\r
-        group->Add(newEquipmentButton);\r
+    }\r
 \r
-        return group;\r
+    titleLabel->SetPosition(135, 35, 183, 53); // 135:x 35:y 183:width 53:height\r
+    titleLabel->SetText("蓝牙耳机");\r
+    titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
+    titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+    titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+        UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+    InitNewEquipmentButton();\r
+    InItEmptyLabel();\r
+    // 加载列表\r
+    InitList();\r
+    group->Add(newEquipmentButton);\r
+    group->Add(titleLabel);\r
+    group->Add(emptyLabel);\r
+\r
+    UIView::OnDragListener *earDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
+    UIView::OnDragListener *earDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
+    if ((earDragListener == nullptr) && (earDragListener2 == nullptr)) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "earDragListener GetInstance fail");\r
+        return nullptr;\r
+    }\r
+    if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+        group->SetOnDragListener(earDragListener);\r
+    } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+        group->SetOnDragListener(earDragListener2);\r
     }\r
+    group->SetViewId(BLUETOOTH_DEVICE_LIST_VIEW);\r
+    group->SetDraggable(true);\r
+    group->SetTouchable(true);\r
+    return group;\r
+}\r
 \r
-    /*刷新已连接过的蓝牙设备列表视图*/\r
-    void BluetoothDeviceListView::RefreshBluetoothDeviceListView(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView::RefreshBluetoothDeviceListView");\r
-        if (list && newEquipmentButton)\r
-        {\r
-            switch (BluetoothModel::GetInstance()->GetConnedDevicesCase().Size())\r
-            {\r
-            case 0:\r
-                list->Resize(380, 0);\r
-                break;\r
-            case 1:\r
-                list->Resize(380, 100);\r
-                break;\r
-            case 2:\r
-                list->Resize(380, 200);\r
-                break;\r
-            default:\r
-                list->Resize(380, 250);\r
-                break;\r
-            }\r
-            // newEquipmentButton->SetY(list->GetY() + list->GetHeight() + 20);\r
-            list->RefreshList();\r
-            list->Invalidate();\r
-            // newEquipmentButton->Invalidate();\r
-        }\r
+void BluetoothDeviceListView::RefreshText(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView::RefreshText");\r
+    List<BluetoothCaseInfo> &bluetoothConnedList = BluetoothModel::GetInstance()->GetConnedDevicesCase();\r
+    bool ret = bluetoothConnedList.IsEmpty();\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView::RefreshText bluetoothConnedList.IsEmpty ret = %d", ret);\r
+    if (ret) {\r
+        emptyLabel->SetVisible(true);\r
+    } else {\r
+        emptyLabel->SetVisible(false);\r
     }\r
+}\r
 \r
 }
\ No newline at end of file
index 2a68bf6..daf4cf8 100644 (file)
 #include "PlayersPresenter.h"\r
 #include "BluetoothPresenter.h"\r
 #include "SettingModel.h"\r
-#include "ui_resource_string.h"\r
 \r
-namespace OHOS\r
+namespace OHOS {\r
+static BluetoothEarListView *g_pBluetoothEarListView{nullptr};\r
+\r
+BluetoothEarListView::BluetoothEarListView()\r
 {\r
-    static BluetoothEarListView *g_pBluetoothEarListView{nullptr};\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::BluetoothEarListView");\r
+    g_pBluetoothEarListView = this;\r
+}\r
 \r
-    BluetoothEarListView::BluetoothEarListView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::BluetoothEarListView");\r
-        g_pBluetoothEarListView = this;\r
-    }\r
+BluetoothEarListView::~BluetoothEarListView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::~BluetoothEarListView");\r
+    group->RemoveAll();\r
+    delete titleLabel;\r
+    titleLabel = nullptr;\r
+    delete adapterText;\r
+    adapterText = nullptr;\r
+    delete list;\r
+    list = nullptr;\r
+    delete rescanButton;\r
+    rescanButton = nullptr;\r
+    delete group;\r
+    group = nullptr;\r
+    g_pBluetoothEarListView = nullptr;\r
+}\r
+\r
+BluetoothEarListView *BluetoothEarListView::GetInstance()\r
+{\r
+    return g_pBluetoothEarListView;\r
+}\r
 \r
-    BluetoothEarListView::~BluetoothEarListView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::~BluetoothEarListView");\r
-        if (group)\r
-        {\r
-            group->RemoveAll();\r
-            if (titleLabel)\r
-            {\r
-                delete titleLabel;\r
-                titleLabel = nullptr;\r
-            }\r
-            if (adapterText)\r
-            {\r
-                delete adapterText;\r
-                adapterText = nullptr;\r
-            }\r
-            if (list)\r
-            {\r
-                delete list;\r
-                list = nullptr;\r
-            }\r
-            if (rescanButton)\r
-            {\r
-                delete rescanButton;\r
-                rescanButton = nullptr;\r
-            }\r
-            if (cancelConnedRequestButton)\r
-            {\r
-                delete cancelConnedRequestButton;\r
-                cancelConnedRequestButton = nullptr;\r
-            }\r
-            delete group;\r
-            group = nullptr;\r
+void BluetoothEarListView::InitList()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::InitList");\r
+    // list type\r
+    if (adapterText == nullptr) {\r
+        adapterText = new BluetoothCaseListAdapter();\r
+        if (adapterText == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView adapterText new fail");\r
+            return;\r
         }\r
-        g_pBluetoothEarListView = nullptr;\r
     }\r
-\r
-    BluetoothEarListView *BluetoothEarListView::GetInstance()\r
-    {\r
-        return g_pBluetoothEarListView;\r
-    }\r
-\r
-    void BluetoothEarListView::InitList()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::InitList");\r
-        // list type\r
-        if (adapterText == nullptr)\r
-        {\r
-            adapterText = new BluetoothCaseListAdapter();\r
-            if (adapterText == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView adapterText new fail");\r
-                return;\r
-            }\r
-        }\r
-        if (list == nullptr)\r
-        {\r
-            list = new UIList(UIList::VERTICAL);\r
-            if (list == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView list new fail");\r
-                return;\r
-            }\r
-            list->SetPosition(43, 120, 380, 300);\r
-            list->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
-            list->SetStyle(STYLE_BORDER_RADIUS, 50);\r
-            list->SetStartIndex(0);\r
-            // list->EnableAutoAlign(true);\r
-            // list->SetIntercept(true);\r
-            list->SetDragACCLevel(5);\r
-            list->SetSwipeACCLevel(200);\r
-            // list->SetReboundSize(30);\r
-            // list->SetScrollBlankSize(30);\r
-            list->SetAdapter(adapterText);\r
-            group->Add(list);\r
+    if (list == nullptr) {\r
+        list = new UIList(UIList::VERTICAL);\r
+        if (list == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView list new fail");\r
+            return;\r
         }\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::InitList end");\r
+        list->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+        list->SetPosition(36, 118, HORIZONTAL_RESOLUTION, 241); // 36:x 118:y 454:width 241:height\r
+        list->SetStartIndex(0); // 0 : list start index\r
+        list->SetAdapter(adapterText);\r
+        group->Add(list);\r
     }\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::InitList end");\r
+}\r
 \r
-    UIViewGroup *BluetoothEarListView::GetGroup()\r
-    {\r
-        return group;\r
-    }\r
+UIViewGroup *BluetoothEarListView::GetGroup()\r
+{\r
+    return group;\r
+}\r
 \r
-    UIList *BluetoothEarListView::GetScanUIList()\r
-    {\r
-        return list;\r
-    }\r
+UIList *BluetoothEarListView::GetScanUIList()\r
+{\r
+    return list;\r
+}\r
 \r
-    void BluetoothEarListView::SetTitleLabel(const char *text)\r
-    {\r
-        // titleLabel->SetText(text);\r
-    }\r
+void BluetoothEarListView::SetTitleLabel(const char *text)\r
+{\r
+    titleLabel->SetText(text);\r
+}\r
 \r
-    void BluetoothEarListView::SetNewEquipmentButtonAdd(void)\r
-    {\r
-        // group->Add(rescanButton);\r
-    }\r
+void BluetoothEarListView::SetNewEquipmentButtonAdd(void)\r
+{\r
+    group->Add(rescanButton);\r
+}\r
 \r
-    void BluetoothEarListView::SetNewEquipmentButtonRemove(void)\r
-    {\r
-        // group->Remove(rescanButton);\r
-    }\r
+void BluetoothEarListView::SetNewEquipmentButtonRemove(void)\r
+{\r
+    group->Remove(rescanButton);\r
+}\r
 \r
-    void BluetoothEarListView::SetCancelConnedRequestButtonAdd(void)\r
-    {\r
-        // group->Add(cancelConnedRequestButton);\r
-    }\r
+void BluetoothEarListView::SetCancelConnedRequestButtonAdd(void)\r
+{\r
+    group->Add(cancelConnedRequestButton);\r
+}\r
 \r
-    void BluetoothEarListView::SetCancelConnedRequestButtonRemove(void)\r
-    {\r
-        // group->Remove(cancelConnedRequestButton);\r
-    }\r
+void BluetoothEarListView::SetCancelConnedRequestButtonRemove(void)\r
+{\r
+    group->Remove(cancelConnedRequestButton);\r
+}\r
 \r
-    void BluetoothEarListView::InitButten(UILabelButton **button, const char *text, const char *id)\r
-    {\r
-        if (*button == nullptr)\r
-        {\r
-            *button = new UILabelButton();\r
-            if (*button == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::InitButten new fail");\r
-                return;\r
-            }\r
-        }\r
-        (*button)->SetPosition(65, 359, 324, 101); // 65 : x, 359 : y, 324:width 101:height\r
-        (*button)->SetText(text);\r
-        UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
-        UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
-        if ((clickListener == nullptr) && (clickListener2 == nullptr))\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::InitButten button GetInstance fail");\r
+void BluetoothEarListView::InitButten(UILabelButton **button, const char *text, const char* id)\r
+{\r
+    if (*button == nullptr) {\r
+        *button = new UILabelButton();\r
+        if (*button == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::InitButten new fail");\r
             return;\r
         }\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-        {\r
-            (*button)->SetOnClickListener(clickListener);\r
-            (*button)->SetTextColor(Color::Red());\r
-        }\r
-        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-        {\r
-            (*button)->SetOnClickListener(clickListener2);\r
-            (*button)->SetTextColor(Color::Blue());\r
-        }\r
-        (*button)->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
-        (*button)->SetViewId(id);\r
-        (*button)->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
     }\r
-\r
-    void BluetoothEarListView::InitNewEquipmentButton()\r
-    {\r
-        if (rescanButton == nullptr)\r
-        {\r
-            rescanButton = new UILabelExt();\r
-            if (rescanButton == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView rescanButton new fail");\r
-                return;\r
-            }\r
-        }\r
-        rescanButton->SetPosition(133, 390, 200, 40);\r
-        rescanButton->SetTextId(STR_BT_HEADSET_RESCAN); // 重新搜索\r
-        rescanButton->SetViewId(BLUETOOTH_RESCAN_BUTTON);\r
-        rescanButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
-        rescanButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-        rescanButton->SetTextColor(Color::GetColorFromRGBA(0x35, 0x49, 0xff, 0xff));\r
-        // rescanButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
-        rescanButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        rescanButton->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        rescanButton->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        rescanButton->SetTouchable(true);\r
-        group->Add(rescanButton);\r
-        UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
-        UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
-        if ((clickListener == nullptr) && (clickListener2 == nullptr))\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
-            return;\r
-        }\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-        {\r
-            rescanButton->SetOnClickListener(clickListener);\r
-        }\r
-        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-        {\r
-            rescanButton->SetOnClickListener(clickListener2);\r
-        }\r
+    (*button)->SetPosition(65, 359, 324, 101); // 65 : x, 359 : y, 324:width 101:height\r
+    (*button)->SetText(text);\r
+    UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
+    UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
+    if ((clickListener == nullptr) && (clickListener2 == nullptr)) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView::InitButten button GetInstance fail");\r
+        return;\r
     }\r
+    if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+        (*button)->SetOnClickListener(clickListener);\r
+        (*button)->SetTextColor(Color::Red());\r
+    } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+        (*button)->SetOnClickListener(clickListener2);\r
+        (*button)->SetTextColor(Color::Blue());\r
+    }\r
+    (*button)->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
+    (*button)->SetViewId(id);\r
+    (*button)->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
+}\r
 \r
-    UIViewGroup *BluetoothEarListView::InitShowUpView()\r
-    {\r
-        // 获取currentBdAddr db值 待开发\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView init");\r
-        if (group == nullptr)\r
-        {\r
-            group = new UIViewGroup();\r
-            if (group == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
-                return nullptr;\r
-            }\r
-        }\r
-        group->SetPosition(0, 0);\r
-        group->SetWidth(HORIZONTAL_RESOLUTION);\r
-        group->SetHeight(VERTICAL_RESOLUTION);\r
-        /* -------------------------------------------------------------------------- */\r
-        if (titleLabel == nullptr)\r
-        {\r
-            titleLabel = new UILabelExt();\r
-            if (titleLabel == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView titleLabel new fail");\r
-                return nullptr;\r
-            }\r
-        }\r
-        titleLabel->SetPosition(83, 50, 300, 35);\r
-        titleLabel->SetTextId(STR_BLUETOOTH_HEADPHONES);\r
-        titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
-        titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        titleLabel->SetStyle(STYLE_TEXT_FONT,30);\r
-        titleLabel->SetStyle(STYLE_LINE_HEIGHT,35);\r
-        titleLabel->SetRollSpeed(23);\r
-        titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        group->Add(titleLabel);\r
-        /* -------------------------------------------------------------------------- */\r
-        // 加载列表\r
-        InitList();\r
-        // 按钮初始化\r
-        // InitButten(&rescanButton, "重新扫描", BLUETOOTH_RESCAN_BUTTON);\r
-        // InitButten(&cancelConnedRequestButton, "取消", BLUETOOTH_CANCELCONNEDREQUEST_BUTTON);\r
-        InitNewEquipmentButton();\r
-\r
-        UIView::OnDragListener *earDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
-        UIView::OnDragListener *earDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
-        if ((earDragListener == nullptr) && (earDragListener2 == nullptr))\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "earDragListener GetInstance fail");\r
+UIViewGroup *BluetoothEarListView::InitShowUpView()\r
+{\r
+    // 获取currentBdAddr db值 待开发\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView init");\r
+    if (group == nullptr) {\r
+        group = new UIViewGroup();\r
+        if (group == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
             return nullptr;\r
         }\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-        {\r
-            group->SetOnDragListener(earDragListener);\r
-        }\r
-        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-        {\r
-            group->SetOnDragListener(earDragListener2);\r
-        }\r
-        group->SetViewId(BLUETOOTH_EARLIST_VIEW);\r
-        group->SetDraggable(true);\r
-        group->SetTouchable(true);\r
-        return group;\r
     }\r
-\r
-    // 刷新扫描出来的设备列表\r
-    void BluetoothEarListView::RefreshBluetoothEarListView(void)\r
-    {\r
-        if (list)\r
-        {\r
-            switch (BluetoothModel::GetInstance()->GetCase().size())//根据扫描出的设备数量,设置扫描列表的高度,使其高度自适应\r
-            {\r
-            case 0:\r
-                list->Resize(380, 0);\r
-                break;\r
-            case 1:\r
-                list->Resize(380, 100);\r
-                break;\r
-            case 2:\r
-                list->Resize(380, 200);\r
-                break;\r
-            default:\r
-                list->Resize(380, 250);\r
-                break;\r
-            }\r
-            list->RefreshList();\r
-            list->Invalidate();\r
+    group->SetPosition(0, 0);\r
+    group->SetWidth(HORIZONTAL_RESOLUTION);\r
+    group->SetHeight(VERTICAL_RESOLUTION);\r
+    if (titleLabel == nullptr) {\r
+        titleLabel = new UILabel();\r
+        if (titleLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarListView titleLabel new fail");\r
+            return nullptr;\r
         }\r
     }\r
+    titleLabel->SetPosition(135, 35, 183, 53); // 135:x 35:y 183:width 53:height\r
+    titleLabel->SetText("正在扫描");\r
+    titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
+    titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+    titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+        UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+    // 加载列表\r
+    InitList();\r
+    InitButten(&rescanButton, "重新扫描", BLUETOOTH_RESCAN_BUTTON);\r
+    InitButten(&cancelConnedRequestButton, "取消", BLUETOOTH_CANCELCONNEDREQUEST_BUTTON);\r
+    group->Add(titleLabel);\r
+\r
+    UIView::OnDragListener *earDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
+    UIView::OnDragListener *earDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
+    if ((earDragListener == nullptr) && (earDragListener2 == nullptr)) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "earDragListener GetInstance fail");\r
+        return nullptr;\r
+    }\r
+    if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+        group->SetOnDragListener(earDragListener);\r
+    } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+        group->SetOnDragListener(earDragListener2);\r
+    }\r
+    group->SetViewId(BLUETOOTH_EARLIST_VIEW);\r
+    group->SetDraggable(true);\r
+    group->SetTouchable(true);\r
+    return group;\r
+}\r
 }
\ No newline at end of file
index 3d246fc..7253ed7 100644 (file)
 #include "SettingModel.h"\r
 #include "common/image_cache_manager.h"\r
 #include "graphic_service.h"\r
-#include "uicomponents/UIComponents.h"\r
-#include "uiservice/include/ui_service.h"\r
-#include <custom_utils.h>\r
 \r
-namespace OHOS\r
-{\r
-    static BluetoothEarPhoneView *g_pBluetoothEarPhoneView{nullptr};\r
+namespace OHOS {\r
+static BluetoothEarPhoneView *g_pBluetoothEarPhoneView{nullptr};\r
 #define BLUETOOTH_IMAGE_X 175\r
 #define BLUETOOTH_IMAGE_Y 175\r
 #define BLUETOOTH_IMAGE_WIDTH 104\r
 #define BLUETOOTH_IMAGE_HEIGHT 104\r
 #define BLUETOOTH_DELAY 200\r
 \r
-    osTimerId_t g_stopScanHandle = nullptr;\r
-    static constexpr uint64_t MS_SCAN_TIME = 25000;\r
+GraphicTimer* g_stopScanHandle = nullptr;\r
+static constexpr uint64_t MS_SCAN_TIME = 25000;\r
 \r
-    static constexpr int16_t CONNECTING_IMAGE_ANIMATOR_VIEW_X = 183;\r
-    static constexpr int16_t CONNECTING_IMAGE_ANIMATOR_VIEW_Y = 153;\r
-    static constexpr int16_t CONNECTING_IMAGE_ANIMATOR_VIEW_W = 100;\r
-    static constexpr int16_t CONNECTING_IMAGE_ANIMATOR_VIEW_H = 120;\r
-    static constexpr int16_t CONNECTING_IMAGE_ANIMATOR_DELAY = 50; // 图片更新间隔\r
-    static constexpr const char *connectImagePaths = "/user/res/connect/";\r
-    BluetoothEarPhoneView::BluetoothEarPhoneView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BluetoothEarPhoneView");\r
-        g_pBluetoothEarPhoneView = this;\r
-    }\r
+BluetoothEarPhoneView::BluetoothEarPhoneView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BluetoothEarPhoneView");\r
+    g_pBluetoothEarPhoneView = this;\r
+}\r
 \r
-    BluetoothEarPhoneView::~BluetoothEarPhoneView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::~BluetoothEarPhoneView");\r
-        if (group)\r
-        {\r
-            group->RemoveAll();\r
-            if (imageAnimator)\r
-            {\r
-                imageAnimator->Stop();\r
-                delete imageAnimator;\r
-                imageAnimator = nullptr;\r
-                FreeImageInfoArray(connectPathsArray, connectImagePaths, CONNECTING_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);\r
-            }\r
-            delete group;\r
-            group = nullptr;\r
-        }\r
-        g_pBluetoothEarPhoneView = nullptr;\r
-    }\r
+BluetoothEarPhoneView::~BluetoothEarPhoneView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::~BluetoothEarPhoneView");\r
+    group->RemoveAll();\r
+    delete titleLabel;\r
+    titleLabel = nullptr;\r
+    delete imageAnimator;\r
+    imageAnimator = nullptr;\r
+    delete group;\r
+    group = nullptr;\r
+    g_pBluetoothEarPhoneView = nullptr;\r
+}\r
 \r
-    BluetoothEarPhoneView *BluetoothEarPhoneView::GetInstance()\r
-    {\r
-        return g_pBluetoothEarPhoneView;\r
-    }\r
+BluetoothEarPhoneView *BluetoothEarPhoneView::GetInstance()\r
+{\r
+    return g_pBluetoothEarPhoneView;\r
+}\r
 \r
-    // 扫描动画创建\r
-    void BluetoothEarPhoneView::BtScanImageAnimator()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtScanImageAnimator init");\r
-        connectPathsArray = CreateImageInfoArray(connectImagePaths, CONNECTING_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);\r
-        if (imageAnimator == nullptr)\r
-        {\r
-            imageAnimator = new UIImageAnimatorView();\r
-            if (imageAnimator == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CreateDeviceUnBindingView]imageAnimator new fail");\r
-                return;\r
-            }\r
-            for (uint8_t i = 0; i < CONNECTING_IMAGE_ANIMATOR_VIEW_NUM_FRAMES; i++)\r
-            {\r
-                connectImageInfo[i].imageInfo = (connectPathsArray[i]);\r
-                connectImageInfo[i].imageType = IMG_SRC_IMAGE_INFO;\r
-                connectImageInfo[i].pos.x = CONNECTING_IMAGE_ANIMATOR_VIEW_X;\r
-                connectImageInfo[i].pos.y = CONNECTING_IMAGE_ANIMATOR_VIEW_Y;\r
-                connectImageInfo[i].width = CONNECTING_IMAGE_ANIMATOR_VIEW_W;\r
-                connectImageInfo[i].height = CONNECTING_IMAGE_ANIMATOR_VIEW_H;\r
-            }\r
-            imageAnimator->SetPosition(CONNECTING_IMAGE_ANIMATOR_VIEW_X, CONNECTING_IMAGE_ANIMATOR_VIEW_Y, CONNECTING_IMAGE_ANIMATOR_VIEW_W, CONNECTING_IMAGE_ANIMATOR_VIEW_H);\r
-            imageAnimator->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
-            imageAnimator->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-            imageAnimator->SetImageAnimatorSrc(connectImageInfo, CONNECTING_IMAGE_ANIMATOR_VIEW_NUM_FRAMES, CONNECTING_IMAGE_ANIMATOR_DELAY);\r
-            imageAnimator->SetRepeat(true);\r
-            imageAnimator->SetSizeFixed(true);\r
-            group->Add(imageAnimator);\r
-        }\r
-    }\r
+void BluetoothEarPhoneView::BtScanImageAnimator()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtScanImageAnimator init");\r
+    const char *searchImagePath[BLUETOOTH_SEARCH_IMAGE_NUM] = {\r
+        PNG_A019_080_IMAGE_PATH,\r
+        PNG_A019_081_IMAGE_PATH,\r
+        PNG_A019_082_IMAGE_PATH,\r
+        PNG_A019_083_IMAGE_PATH,\r
+        PNG_A019_084_IMAGE_PATH,\r
+        PNG_A019_085_IMAGE_PATH,\r
+        PNG_A019_086_IMAGE_PATH,\r
+        PNG_A019_087_IMAGE_PATH,\r
+    };\r
 \r
-    // 动画开始\r
-    void BluetoothEarPhoneView::BtAnimatorStart(void)\r
-    {\r
-        imageAnimator->Start();\r
+    if (imageAnimator == nullptr) {\r
+        imageAnimator = new UIImageAnimatorView();\r
+        if (imageAnimator == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView new imageAnimator fail");\r
+            return;\r
+        }\r
+        for (uint8_t i = 0; i < BLUETOOTH_SEARCH_IMAGE_NUM; i++) {\r
+            searchImageInfo[i].imageInfo =  ImageCacheManager::GetInstance().LoadSingleRes(searchImagePath[i]);\r
+            searchImageInfo[i].imageType = IMG_SRC_IMAGE_INFO;\r
+            searchImageInfo[i].pos.x = BLUETOOTH_IMAGE_X;\r
+            searchImageInfo[i].pos.y = BLUETOOTH_IMAGE_Y;\r
+            searchImageInfo[i].width = BLUETOOTH_IMAGE_WIDTH;\r
+            searchImageInfo[i].height = BLUETOOTH_IMAGE_HEIGHT;\r
+        }\r
+        imageAnimator->SetPosition(175, 175, 104, 104); // 175:x 175:y 104:width 104:height\r
+        imageAnimator->SetImageAnimatorSrc(searchImageInfo, BLUETOOTH_SEARCH_IMAGE_NUM, BLUETOOTH_DELAY);\r
+        imageAnimator->SetRepeat(true);\r
+        group->Add(imageAnimator);\r
     }\r
+}\r
 \r
-    // 动画停止\r
-    void BluetoothEarPhoneView::BtAnimatorStop(void)\r
-    {\r
-        imageAnimator->Stop();\r
-    }\r
+void BluetoothEarPhoneView::BtAnimatorStart(void)\r
+{\r
+    imageAnimator->Start();\r
+}\r
 \r
-    UIViewGroup *BluetoothEarPhoneView::InitShowUpView()\r
-    {\r
-        // 获取currentBdAddr db值 待开发\r
-        if (group == nullptr)\r
-        {\r
-            group = new UIViewGroup();\r
-            if (group == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
-                return nullptr;\r
-            }\r
-        }\r
-        group->SetPosition(0, 0);\r
-        group->SetWidth(HORIZONTAL_RESOLUTION);\r
-        group->SetHeight(VERTICAL_RESOLUTION);\r
+void BluetoothEarPhoneView::BtAnimatorStop(void)\r
+{\r
+    imageAnimator->Stop();\r
+}\r
 \r
-        UIView::OnDragListener *earDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
-        UIView::OnDragListener *earDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
-        if ((earDragListener == nullptr) && (earDragListener2 == nullptr))\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "earDragListener GetInstance fail");\r
+UIViewGroup *BluetoothEarPhoneView::InitShowUpView()\r
+{\r
+    // 获取currentBdAddr db值 待开发\r
+    if (group == nullptr) {\r
+        group = new UIViewGroup();\r
+        if (group == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
             return nullptr;\r
         }\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-        {\r
-            group->SetOnDragListener(earDragListener);\r
-        }\r
-        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-        {\r
-            group->SetOnDragListener(earDragListener2);\r
-        }\r
-        group->SetViewId(BLUETOOTH_EAR_PHONE_VIEW);\r
-        // 动画\r
-        BtScanImageAnimator();\r
-        group->SetDraggable(true);\r
-        group->SetTouchable(true);\r
-        return group;\r
     }\r
-\r
-    // 取消br扫描处理\r
-    static void CancelBrScanHandle(void)\r
-    {\r
-        /* ---------------------------------- 取消定时器 --------------------------------- */\r
-        if (g_stopScanHandle != nullptr)\r
-        {\r
-            osTimerStop(g_stopScanHandle);\r
-            osStatus_t ret = osTimerDelete(g_stopScanHandle);\r
-            if (ret != osOK)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScanTimerCallback osTimerDelete failed, ret = %lx!!", ret);\r
-                return;\r
-            }\r
-            g_stopScanHandle = nullptr;\r
+    group->SetPosition(0, 0);\r
+    group->SetWidth(HORIZONTAL_RESOLUTION);\r
+    group->SetHeight(VERTICAL_RESOLUTION);\r
+    if (titleLabel == nullptr) {\r
+        titleLabel = new UILabel();\r
+        if (titleLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView titleLabel new fail");\r
+            return nullptr;\r
         }\r
-        /* --------------------------------- 取消屏幕常亮 --------------------------------- */\r
-        ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);\r
-        /* -------------------------------------------------------------------------- */\r
-        bool results = gap_br_cancel_discovery();\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CancelBtDiscovery results %d", results);\r
+        titleLabel->SetPosition(135, 35, 183, 53); // 135:x 35:y 183:width 53:height\r
+        titleLabel->SetText("正在搜索");\r
+        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
+        titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+        titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+            UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+        group->Add(titleLabel);\r
     }\r
-\r
-    // 结束扫描处理\r
-    static void EndScanHandle(void)\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "EndScanHandle");\r
-        if (BluetoothModel::GetInstance()->GetCase().size() == 0)\r
-        {\r
-            BluetoothEarPhoneView *bluetoothEarPhoneView = BluetoothEarPhoneView::GetInstance();\r
-            if (bluetoothEarPhoneView == nullptr)\r
-            { // 暂停动画\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothEarPhoneView nullptr");\r
-                return;\r
-            }\r
-            bluetoothEarPhoneView->BtAnimatorStop();\r
-            if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-            {\r
-                JumpView *jumpView = JumpView::GetInstance();\r
-                if (jumpView == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "jumpView GetInstance fail");\r
-                    return;\r
-                }\r
-                jumpView->ChangeView(JumpView::BluetoothJumpViewNum::BLUETOOTHEARPHONEVIEW,\r
-                                     JumpView::BluetoothJumpViewNum::TIPSFAILMESSAGEVIEW);\r
-            }\r
-            else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-            {\r
-                MainBluetoothView *mainBluetoothView = MainBluetoothView::GetInstance();\r
-                if (mainBluetoothView == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainBluetoothView GetInstance fail");\r
-                    return;\r
-                }\r
-                mainBluetoothView->ChangeView(BLUETOOTHEARPHONEVIEW, TIPSFAILMESSAGEVIEW);\r
-            }\r
-        }\r
-        else\r
-        {\r
-            // 按rssi信息重新排序\r
-            BluetoothModel::GetInstance()->SortScansCaseRssi();\r
-            // 刷新\r
-            BluetoothEarListView *bluetoothEarListView = BluetoothEarListView::GetInstance();\r
-            if (bluetoothEarListView == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothEarListView nullptr");\r
-                return;\r
-            }\r
-            if (bluetoothEarListView->GetScanUIList() == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetScanUIList nullptr");\r
-                return;\r
-            }\r
-            bluetoothEarListView->GetScanUIList()->RefreshList();\r
-            // 扫描完成\r
-            bluetoothEarListView->SetTitleLabel("扫描完成");\r
-            bluetoothEarListView->SetNewEquipmentButtonAdd();\r
-        }\r
+    UIView::OnDragListener *earDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
+    UIView::OnDragListener *earDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
+    if ((earDragListener == nullptr) && (earDragListener2 == nullptr)) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "earDragListener GetInstance fail");\r
+        return nullptr;\r
     }\r
-\r
-    // 定时器回调函数\r
-    static void ScanTimerCallbackProc(int data)\r
-    {\r
-        (void)data;\r
-        CancelBrScanHandle();\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Bt scan end jumpView");\r
-        EndScanHandle();\r
+    if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+        group->SetOnDragListener(earDragListener);\r
+    } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+        group->SetOnDragListener(earDragListener2);\r
     }\r
+    group->SetViewId(BLUETOOTH_EAR_PHONE_VIEW);\r
+    // 动画\r
+    BtScanImageAnimator();\r
+    group->SetDraggable(true);\r
+    group->SetTouchable(true);\r
+    return group;\r
+}\r
 \r
-    static void ScanTimerCallback(int data)\r
-    {\r
-        GraphicService::GetInstance()->PostGraphicEvent(std::bind(ScanTimerCallbackProc, data));\r
+void CancelBrScanHandle(void)\r
+{\r
+    if (g_stopScanHandle != nullptr) {\r
+        delete g_stopScanHandle;\r
+        g_stopScanHandle = nullptr;\r
     }\r
+    bool results = gap_br_cancel_discovery();\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CancelBtDiscovery results %d", results);\r
+}\r
 \r
-    // 蓝牙start\r
-    void BluetoothEarPhoneView::BtEnable()\r
-    {\r
-        bool ret;\r
-        bool results;\r
-        // 经典蓝牙扫描\r
-        setScanStatus(true); // 开始扫描标记\r
-        // BluetoothModel::GetInstance()->SetCaseListClear(); // 扫描list清空\r
-        BluetoothModel::GetInstance()->Init(); // 清空list,获取paired devicelist\r
-        ret = is_bt_discovering(BT_TRANSPORT_BR_EDR);\r
-        if (ret)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable Bt is Discovering");\r
+void EndScanHandle(void)\r
+{\r
+    if (BluetoothModel::GetInstance()->GetCase().size() == 0) {\r
+        BluetoothEarPhoneView *bluetoothEarPhoneView = BluetoothEarPhoneView::GetInstance();\r
+        if (bluetoothEarPhoneView == nullptr) { // 暂停动画\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothEarPhoneView nullptr");\r
             return;\r
         }\r
-        else\r
-        {\r
-            results = gap_br_start_discovery();\r
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable StartBtDiscovery results %d", results);\r
-        }\r
-        /* -------------------------------------------------------------------------- */\r
-        // ScreenTurnOn(MS_SCAN_TIME);\r
-        /* --------------------------------- 设置屏幕为常亮 -------------------------------- */\r
-        ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);\r
-        /* -------------------------------------------------------------------------- */\r
-        /*开启定时器*/\r
-        if (g_stopScanHandle != nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable g_stopScanHandle != nullptr");\r
-            return;\r
+        bluetoothEarPhoneView->BtAnimatorStop();\r
+        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+            JumpView *jumpView = JumpView::GetInstance();\r
+            if (jumpView == nullptr) {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "jumpView GetInstance fail");\r
+                return;\r
+            }\r
+            jumpView->ChangeView(JumpView::BluetoothJumpViewNum::BLUETOOTHEARPHONEVIEW,\r
+                                 JumpView::BluetoothJumpViewNum::TIPSFAILMESSAGEVIEW);\r
+        } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+            MainBluetoothView *mainBluetoothView = MainBluetoothView::GetInstance();\r
+            if (mainBluetoothView == nullptr) {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainBluetoothView GetInstance fail");\r
+                return;\r
+                }\r
+            mainBluetoothView->ChangeView(BLUETOOTHEARPHONEVIEW, TIPSFAILMESSAGEVIEW);\r
         }\r
-        g_stopScanHandle = osTimerNew((osTimerFunc_t)ScanTimerCallback, osTimerPeriodic, nullptr, nullptr);\r
-        if (g_stopScanHandle == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable osTimerNew failed!!");\r
+    } else {\r
+        // 按rssi信息重新排序\r
+        BluetoothModel::GetInstance()->SortScansCaseRssi();\r
+        // 刷新\r
+        BluetoothEarListView *bluetoothEarListView = BluetoothEarListView::GetInstance();\r
+        if (bluetoothEarListView == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothEarListView nullptr");\r
             return;\r
         }\r
-        uint32 tick = osMs2Tick(MS_SCAN_TIME);\r
-        osStatus_t retTimer = osTimerStart(g_stopScanHandle, tick);\r
-        if (retTimer != osOK)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable osTimerStart failed, ret = %lx!!", retTimer);\r
-            if (g_stopScanHandle != nullptr)\r
-            {\r
-                retTimer = osTimerDelete(g_stopScanHandle);\r
-                if (retTimer != osOK)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable osTimerDelete  ret = %lx!!", retTimer);\r
-                    return;\r
-                }\r
-                g_stopScanHandle = nullptr;\r
-            }\r
+        if (bluetoothEarListView->GetScanUIList() == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetScanUIList nullptr");\r
             return;\r
         }\r
-        return;\r
+        bluetoothEarListView->GetScanUIList()->RefreshList();\r
+        // 扫描完成\r
+        bluetoothEarListView->SetTitleLabel("扫描完成");\r
+        bluetoothEarListView->SetNewEquipmentButtonAdd();\r
+        RootView::GetInstance()->Invalidate();\r
     }\r
+}\r
 \r
-    void BluetoothEarPhoneView::StopBtDiscovery(void)\r
-    {\r
-        bool ret = is_bt_discovering(BT_TRANSPORT_BR_EDR);\r
-        if (!ret)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Bt is not Discovering");\r
+// 定时器回调函数\r
+static void BluetoothScanTimerCallbackProc(void* data)\r
+{\r
+    (void)data;\r
+    CancelBrScanHandle();\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Bt scan end jumpView");\r
+    EndScanHandle();\r
+}\r
+\r
+void BluetoothScanTimerCallback(void* data)\r
+{\r
+    GraphicService::GetInstance()->PostGraphicEvent(std::bind(BluetoothScanTimerCallbackProc, data));\r
+}\r
+\r
+// 蓝牙start\r
+void BluetoothEarPhoneView::BtEnable()\r
+{\r
+    bool ret;\r
+    bool results;\r
+    // 经典蓝牙扫描\r
+    setScanStatus(true); // 开始扫描标记\r
+    BluetoothModel::GetInstance()->SetCaseListClear(); // 扫描list清空\r
+    ret = is_bt_discovering(BT_TRANSPORT_BR_EDR);\r
+    if (ret) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable Bt is Discovering");\r
+        return;\r
+    } else {\r
+        results = gap_br_set_inquiry_paramters(DEVICE_MAJOR_CLASS_AUDIO_VIDEO, 0);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_br_set_inquiry_paramters results %d", results);\r
+        results = gap_br_start_discovery();\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_br_start_discovery results %d", results);\r
+    }\r
+    if (g_stopScanHandle != nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable g_stopScanHandle != nullptr");\r
+        return;\r
+    }\r
+    uint32 tick = GetOSTick(MS_SCAN_TIME);\r
+    g_stopScanHandle = new GraphicTimer(tick, BluetoothScanTimerCallback, nullptr, true);\r
+    if (g_stopScanHandle == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable new GraphicTimer failed!!");\r
+        return;\r
+    }\r
+    bool retTimer = g_stopScanHandle->Start();\r
+    if (!retTimer) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable Start failed");\r
+        if (g_stopScanHandle != nullptr) {\r
+            delete g_stopScanHandle;\r
+            g_stopScanHandle = nullptr;\r
         }\r
-        CancelBrScanHandle();\r
         return;\r
     }\r
+    return;\r
+}\r
 \r
-    /*\r
-     *  @brief 设置是否已经开始扫描标记\r
-     */\r
-    void BluetoothEarPhoneView::setScanStatus(bool value)\r
-    {\r
-        scanStart = value;\r
-    }\r
-    \r
-    //获取是否已经开始扫描标记\r
-    bool BluetoothEarPhoneView::getScanStatus(void)\r
-    {\r
-        return scanStart;\r
+void BluetoothEarPhoneView::StopBtDiscovery(void)\r
+{\r
+    bool ret = is_bt_discovering(BT_TRANSPORT_BR_EDR);\r
+    if (!ret) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Bt is not Discovering");\r
+        return;\r
     }\r
+    CancelBrScanHandle();\r
+    return;\r
+}\r
+\r
+void BluetoothEarPhoneView::setScanStatus(bool value)\r
+{\r
+    scanStart = value;\r
+}\r
+bool BluetoothEarPhoneView::getScanStatus(void)\r
+{\r
+    return scanStart;\r
+}\r
 }
\ No newline at end of file
index 2b10bff..6ac112d 100644 (file)
@@ -5,14 +5,11 @@
  * Create: 2022-3-22\r
  */\r
 \r
-#include <BluetoothHeadsetEvent.h>\r
+#include "BluetoothHeadsetEvent.h"\r
 #include "bts_avrcp_target.h"\r
 #include "bts_avrcp_controller.h"\r
 #include "PlayersModel.h"\r
-#include "service_id_define.h"\r
 #include "graphic_service.h"\r
-#include <bts_a2dp_source.h>\r
-#include "notification_manager.h"\r
 \r
 using namespace OHOS;\r
 \r
@@ -31,7 +28,7 @@ BtAvrcpTgInf g_avrcp_srv_inf;
 \r
 void BtAvrcpVolumeChangedSyncMedia(uint8_t a2dp_volume)\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[BtAvrcpVolumeChangedSyncMedia]::a2dp_volume = 0x%x\r\n", a2dp_volume);\r
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "[BtAvrcpVolumeChangedSyncMedia]::a2dp_volume = 0x%x\r\n", a2dp_volume);\r
     int32_t audio_volume = a2dp_volume * BT_A2DP_MEDIA_VOL_LEVEL / AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_100;\r
     AudioManager::GetInstance().SetVolume(AUDIO_STREAM_A2DP_MUSIC, audio_volume); /* 设置增益音量 */\r
     g_avrcp_tg_local_media_vol = a2dp_volume;\r
@@ -98,26 +95,13 @@ void PressButtonStatusCallback(td_u32 keyOperation, td_u32 keyValue)
 void BtAvrcpTgNotifyVolumeChangedProc(uint8_t a2dp_volume)\r
 {\r
     int32_t audio_volume = a2dp_volume * BT_A2DP_MEDIA_VOL_LEVEL / AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_100;\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NotifyVolume = %d", audio_volume);\r
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "NotifyVolume = %d", audio_volume);\r
     AudioManager::GetInstance().SetVolume(AUDIO_STREAM_MUSIC, audio_volume); // 耳机连接手表场景调节手表音量\r
-    /* ---------------------------- 若当前音乐播放器为手机音乐则同步更新音乐播放器的声音进度条 --------------------------- */\r
-    if(PlayersModel::GetInstance()->GetMusicSource())\r
-    {\r
-        GraphicService::GetInstance()->PostGraphicEvent(std::bind(&OHOS::PlayersModel::UpdateVolumeValue, OHOS::PlayersModel::GetInstance()));\r
-    }\r
-    /* -------------------------------------------------------------------------- */\r
 }\r
 \r
-//根据传入的按键操作类型和值,执行相应的操作并通知媒体状态变化\r
 void UsingPressButtonStatusCallback(td_u32 keyOperation, td_u32 keyValue)\r
 {\r
-    if(NotificationManager::GetInstance()->GetWatchCallStatus())\r
-    {\r
-        return ;\r
-    }\r
-\r
     bt_avrcp_tg_evt_status_param event;\r
-    // printf("keyOperation = %d, keyValue = %d\n");\r
     switch (keyOperation) {\r
         case AVRCP_KEY_VOLUME_UP: // 耳机控制手表加减音量不走key_operation事件\r
         case AVRCP_KEY_VOLUME_DOWN: // 减小音量\r
@@ -168,11 +152,11 @@ uint8_t BtAvrcpTgGetLocMediaVolume(void)
     if (g_avrcp_tg_local_media_vol == AVRCP_ABSOLUTE_VOLUME_INVALID) {\r
         int32_t audio_volume = AudioManager::GetInstance().GetVolume(AUDIO_STREAM_A2DP_MUSIC);\r
         uint8_t a2dp_volume = (uint8_t)(audio_volume * AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_100 / BT_A2DP_MEDIA_VOL_LEVEL);\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "audio_volume 0x%x, a2dp_volume 0x%x\n", audio_volume, a2dp_volume);\r
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "audio_volume 0x%x, a2dp_volume 0x%x\n", audio_volume, a2dp_volume);\r
         g_avrcp_tg_local_media_vol = a2dp_volume;\r
     }\r
 \r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "get local media volume, a2dp_volume = 0x%x", g_avrcp_tg_local_media_vol);\r
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "get local media volume, a2dp_volume = 0x%x", g_avrcp_tg_local_media_vol);\r
     return g_avrcp_tg_local_media_vol;\r
 }\r
 \r
@@ -222,7 +206,7 @@ void MediaStatusCallback(bt_avrcp_tg_evt_status_param *eventStatusParam)
 \r
 void ConnCtStateChangedCallback(const bd_addr_t *bdAddr, profile_connect_state_t state)\r
 {\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "avrcp ct update conn stat:%u", state);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "avrcp ct update conn stat:%u", state);\r
     if (bdAddr == nullptr) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bdaddr nullptr");\r
         return;\r
@@ -234,16 +218,14 @@ void ConnCtStateChangedCallback(const bd_addr_t *bdAddr, profile_connect_state_t
     g_avrcp_srv_inf.avrcp_srv_conn_stat = state;\r
 }\r
 \r
-bd_addr_t *BtAvrcpSrvGetActiveAddr(void)\r
+static bd_addr_t *BtAvrcpSrvGetActiveAddr(void)\r
 {\r
     return &g_avrcp_srv_inf.bd_addr;\r
 }\r
 \r
-\r
-\r
 void ConnectTgStateChangedCallback(const bd_addr_t *bdAddr, profile_connect_state_t state)\r
 {\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "avrcp tg update conn stat:%u", state);\r
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "avrcp tg update conn stat:%u", state);\r
     if (bdAddr == nullptr) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bdaddr nullptr");\r
         return;\r
@@ -261,43 +243,6 @@ void ConnectTgStateChangedCallback(const bd_addr_t *bdAddr, profile_connect_stat
     }\r
 }\r
 \r
-/* -------------------------------------------------------------------------- */\r
-void user_avrcp_ct_press_button(const bd_addr_t *bd_addr, int32_t key_operation)\r
-{\r
-    (void)avrcp_ct_press_button(bd_addr, key_operation);\r
-    uint8_t sleep_cnt = 0;\r
-    while (1) { //持续等待接收一个响应消息来确认按键按下操作已被正确处理\r
-        osal_msleep(100);  /* sleep 1000 ms */\r
-        if (g_avrcp_srv_inf.avrcp_button_flag == AVRCP_SRV_PRESS_VALUE) {\r
-            (void)avrcp_ct_release_button(bd_addr, key_operation);\r
-            break;\r
-        }\r
-        sleep_cnt++;\r
-        if (sleep_cnt > 20) { /* sleep 20 times */\r
-            WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP,"not receive rsp press button msg\n");\r
-            break;\r
-        }\r
-    }\r
-}\r
-\r
-void user_avrcp_ct_get_element_attributes(const bd_addr_t *bd_addr)\r
-{\r
-    avrcp_ct_get_element_attr_para_t element_attr_param;\r
-    element_attr_param.attr_num = AVRCP_CT_ELEMENT_ATTR_TRACK_PLAYING_TIME;\r
-    element_attr_param.attr_id_list = (unsigned int *)(void *)malloc(sizeof(unsigned int) * element_attr_param.attr_num);\r
-    for (int i = 0; i < element_attr_param.attr_num; i++) \r
-    {\r
-        element_attr_param.attr_id_list[i] = (unsigned int)i + 1;\r
-    }\r
-    avrcp_ct_get_element_attributes(bd_addr, &element_attr_param);\r
-    if (element_attr_param.attr_id_list != NULL) \r
-    {\r
-        free(element_attr_param.attr_id_list);\r
-        element_attr_param.attr_id_list = NULL;\r
-    }\r
-}\r
-/* -------------------------------------------------------------------------- */\r
-//记录按下按钮的回调事件以及按键操作值\r
 static void BtAvrcpCtPressButtonRspCallback(const bd_addr_t *bd_addr, int32_t key_operation)\r
 {\r
     if (bd_addr == nullptr) {\r
@@ -349,11 +294,10 @@ static void BtAvrcpPressReleaseButtonLog(uint32_t key_operation)
     }\r
 }\r
 \r
-//记录释放按钮的回调事件以及按键操作值\r
 static void BtAvrcpCtReleaseButtonRspCallback(const bd_addr_t *bd_addr, int32_t key_operation)\r
 {\r
     UNUSED(bd_addr);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "avrcp ct release button cbk key:%x\n", key_operation);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "avrcp ct release button cbk key:%d\n", key_operation);\r
     if (g_avrcp_srv_inf.avrcp_button_flag == AVRCP_SRV_PRESS_VALUE) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "avrcp ct released button button_flag change:%u->%u\n",\r
             g_avrcp_srv_inf.avrcp_button_flag, AVRCP_SRV_RELEASED_VALUE);\r
@@ -384,14 +328,14 @@ static void BtAvrcpCtSupportEventCallback(const bd_addr_t *bd_addr, avrcp_ct_sup
     for (uint8_t i = 0; i < event->event_num; i++) {\r
         if (event->event_id[i] == AVRCP_NOTIFY_EVENT_VOLUME_CHANGED) {\r
             int ret = avrcp_ct_register_notification(bd_addr, event->event_id[i], 0);\r
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "register event_id: 0x%x, ret = 0x%x", event->event_id[i], ret);\r
+            WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "register event_id: 0x%x, ret = 0x%x", event->event_id[i], ret);\r
         }\r
     }\r
 \r
     for (uint8_t i = 0; i < event->event_num; i++) {\r
         if (event->event_id[i] != AVRCP_NOTIFY_EVENT_VOLUME_CHANGED) {\r
             int ret = avrcp_ct_register_notification(bd_addr, event->event_id[i], 0);\r
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "register event_id: 0x%x, ret = 0x%x", event->event_id[i], ret);\r
+            WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "register event_id: 0x%x, ret = 0x%x", event->event_id[i], ret);\r
         }\r
     }\r
 }\r
@@ -456,29 +400,16 @@ static void BtAvrcpCtGetPlayStatusCallback(const bd_addr_t *bd_addr, avrcp_ct_pl
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "null pointer\n");\r
         return;\r
     }\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[BtAvrcpCtGetPlayStatusCallback] songlen:%u, songpos:%u, playstatus:%u:",\r
-    status->song_length, status->song_position, status->play_status);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "test get play status songlen:%u, songpos:%u, playstatus:%u:",\r
+        status->song_length, status->song_position, status->play_status);\r
 }\r
 \r
 static void BtAvrcpCtHdlNotifyVolumeRspCbk(avrcp_ct_notification_value_cb_t *notification)\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[BtAvrcpCtHdlNotifyVolumeRspCbk] volume: 0x%x\n", \r
-    notification->volume); /* 注册事件后通知的音量 */\r
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "Set local volume: 0x%x\n", notification->volume); /* 注册事件后通知的音量 */\r
     BtAvrcpTgNotifyVolumeChangedProc((uint8_t)notification->volume);\r
 }\r
 \r
-static void BtAvrcpCtHdlNotifyPlaybackStatusChangedRspCbk(avrcp_ct_notification_value_cb_t *notification)\r
-{\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[BtAvrcpCtHdlNotifyPlaybackStatusChangedRspCbk] playback status changed :%u\n",\r
-    notification->play_status);\r
-    if(notification->play_status == AVRCP_PLAY_STATUS_PLAYING) { //AVRCP媒体playing状态\r
-        PlayersModel::GetInstance()->set_player_state(true); //更新UI显示\r
-    } else {\r
-        PlayersModel::GetInstance()->set_player_state(false);\r
-    }\r
-    return;\r
-}\r
-//收到来自TG返回的Notification时回调函数\r
 static void BtAvrcpCtNotificationCallback(\r
     const bd_addr_t *bd_addr, avrcp_notify_event_t event_id, avrcp_ct_notification_value_cb_t *notification)\r
 {\r
@@ -490,37 +421,29 @@ static void BtAvrcpCtNotificationCallback(
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ct notification cbk event_id:0x%x\n", event_id);\r
     bool notify_flag = true;\r
     switch (event_id) {\r
-        case AVRCP_NOTIFY_EVENT_PLAYBACK_STATUS_CHANGED:                //播放状态变更事件,从播放变为暂停、停止等状态,会触发这个事件\r
-            // BtAvrcpCtHdlNotifyPlaybackStatusChangedRspCbk(notification);\r
-            break;\r
-        case AVRCP_NOTIFY_EVENT_TRACK_CHANGED:                          //track状态变更事件,切换到下一首、上一首歌曲等情况,会触发此事件\r
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "track changed event_id:0x%x\n", event_id);\r
-            break;\r
-        case AVRCP_NOTIFY_EVENT_TRACK_REACHED_END:                      //track结束事件,当前播放的曲目播放到末尾时,触发这个事件\r
-            break;\r
-        case AVRCP_NOTIFY_EVENT_TRACK_REACHED_START:                    //track开始事件,当曲目开始播放时,触发这个事件\r
-            break;\r
-        case AVRCP_NOTIFY_EVENT_PLAYBACK_POS_CHANGED:                   //播放位置改变事件,当播放进度的位置发生变化时,比如快进、快退等操作导致播放位置改变,会触发此事件\r
-            break;\r
-        case AVRCP_NOTIFY_EVENT_BATT_STATUS_CHANGED:                    //电池状态变更事件,当蓝牙设备的电池状态发生变化时,电量降低、充电状态改变等,会触发这个事件\r
-            break;\r
-        case AVRCP_NOTIFY_EVENT_SYSTEM_STATUS_CHANGED:                 //系统状态变更事件\r
-            break;\r
-        case AVRCP_NOTIFY_EVENT_PLAYER_APPLICATION_SETTING_CHANGED:   //播放器配置变更事件,如音效设置、播放模式设置等,会触发此事件\r
-            break;\r
-        case AVRCP_NOTIFY_EVENT_NOW_PLAYING_CONTENT_CHANGED:         //播放内容变更事件,当 “正在播放” 列表中的内容发生变化时,比如添加了新的曲目、删除了曲目等情况,会触发这个事件。\r
-            break;\r
-        case AVRCP_NOTIFY_EVENT_AVAILABLE_PLAYERS_CHANGED:           //可使用的播放器变更事件,当系统中可用于播放的播放器设备发生变化时,比如新的播放器设备连接到系统或者已有播放器设备断开连接,会触发此事件\r
-            break;\r
-        case AVRCP_NOTIFY_EVENT_ADDRESSED_PLAYER_CHANGED:            //播放地址变更事件\r
-            break;\r
-        case AVRCP_NOTIFY_EVENT_UIDS_CHANGED:                         //UID 变更事件\r
+        case AVRCP_NOTIFY_EVENT_PLAYBACK_STATUS_CHANGED:\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "tg notify ct playback status changed :%u\n",\r
+                notification->play_status);\r
             break;\r
-        case AVRCP_NOTIFY_EVENT_VOLUME_CHANGED:                      //TG 端音量变更事件\r
+        case AVRCP_NOTIFY_EVENT_VOLUME_CHANGED:\r
             BtAvrcpCtHdlNotifyVolumeRspCbk(notification);\r
             break;\r
-        case AVRCP_NOTIFY_EVENT_RESERVED:                           //保留\r
+        case AVRCP_NOTIFY_EVENT_NOW_PLAYING_CONTENT_CHANGED:\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "play conent changed event_id:0x%x\n", event_id);\r
+            break;\r
+        case AVRCP_NOTIFY_EVENT_TRACK_CHANGED:\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "track changed event_id:0x%x\n", event_id);\r
             break;\r
+        case AVRCP_NOTIFY_EVENT_TRACK_REACHED_END:\r
+        case AVRCP_NOTIFY_EVENT_TRACK_REACHED_START:\r
+        case AVRCP_NOTIFY_EVENT_PLAYBACK_POS_CHANGED:\r
+        case AVRCP_NOTIFY_EVENT_BATT_STATUS_CHANGED:\r
+        case AVRCP_NOTIFY_EVENT_SYSTEM_STATUS_CHANGED:\r
+        case AVRCP_NOTIFY_EVENT_PLAYER_APPLICATION_SETTING_CHANGED:\r
+        case AVRCP_NOTIFY_EVENT_AVAILABLE_PLAYERS_CHANGED:\r
+        case AVRCP_NOTIFY_EVENT_ADDRESSED_PLAYER_CHANGED:\r
+        case AVRCP_NOTIFY_EVENT_UIDS_CHANGED:\r
+        case AVRCP_NOTIFY_EVENT_RESERVED:\r
         default:\r
             notify_flag = false;\r
             WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "invalid event id event_id:0x%x\n", event_id);\r
index a7a350c..676c018 100644 (file)
@@ -8,29 +8,16 @@
 #include "BluetoothItemView.h"\r
 #include "wearable_log.h"\r
 #include "UiConfig.h"\r
-#include "player/include/PlayersView.h"\r
-#include "ui_resource_image.h"\r
-#include "ui_resource_string.h"\r
-#include "CallerLogModel.h"\r
-#include "custom_utils.h"\r
-#include "notification_manager.h"\r
+#include "common/image_cache_manager.h"\r
 \r
-#ifdef SUPPORT_PHONE_SERVICE\r
-#include "PhoneAGService.h"\r
-#endif\r
-\r
-#include "ConfigModel.h"\r
-#include "languagecode/LanguageInit.h"\r
-\r
-namespace OHOS\r
-{\r
-    constexpr uint16_t BUTTON_WIDTH = 351;\r
-    constexpr uint16_t BUTTON_HEIGHT = 81;\r
-    constexpr uint16_t IMAGE_WIDTH = 81;\r
-    constexpr uint16_t IMAGE_HEIGHT = 81;\r
-    constexpr uint16_t LABEL_HEIGHT = 81;\r
-    constexpr uint16_t LABEL_WIDTH = 189;\r
-    constexpr uint16_t BLELIST_BUTTON_HEIGHT = 81;\r
+namespace OHOS {\r
+constexpr uint16_t BUTTON_WIDTH = 351;\r
+constexpr uint16_t BUTTON_HEIGHT = 81;\r
+constexpr uint16_t IMAGE_WIDTH = 81;\r
+constexpr uint16_t IMAGE_HEIGHT = 81;\r
+constexpr uint16_t LABEL_HEIGHT = 81;\r
+constexpr uint16_t LABEL_WIDTH = 189;\r
+constexpr uint16_t BLELIST_BUTTON_HEIGHT = 81;\r
 \r
 #define BLUETOOTH_CONNECT_DELAY 200\r
 #define BLUETOOTH_CONNECT_X 294\r
@@ -38,267 +25,140 @@ namespace OHOS
 #define BLUETOOTH_CONNECT_WIDTH 81\r
 #define BLUETOOTH_CONNECT_HEIGHT 81\r
 \r
-    BluetoothItemView::BluetoothItemView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::BluetoothItemView");\r
-        SetPosition(40, 21, 380, 100);\r
-        SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
-        SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-        SetUpChild();\r
-        SetTouchable(true);\r
-\r
-        Add(&button);\r
-        Add(&namelabel);\r
-        Add(&connectStateLabel);\r
-        Add(&lineImage);\r
-        Add(&noteImage);\r
-        Add(&connectionAnimator);\r
-    }\r
-\r
-    BluetoothItemView::~BluetoothItemView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::~BluetoothItemView");\r
-        Remove(&button);\r
-        Remove(&namelabel);\r
-        Remove(&connectStateLabel);\r
-        Remove(&lineImage);\r
-        Remove(&noteImage);\r
-        Remove(&connectionAnimator);\r
-    }\r
-\r
-    void BluetoothItemView::SetUpChild()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::SetUpChild");\r
-        button.SetPosition(40, 0, 250, 80);\r
-        button.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
-        button.SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-        button.SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
-\r
-        /*蓝牙设备名称*/\r
-        namelabel.SetPosition(40, 21, 250, 35);\r
-        namelabel.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
-        namelabel.SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-        namelabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 30);\r
-        namelabel.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        namelabel.SetRollSpeed(100);\r
-        namelabel.SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_LEFT, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+BluetoothItemView::BluetoothItemView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::BluetoothItemView");\r
+    SetPosition(53, 106, 375, 81); // 53:x 106:y 375:width 81:height\r
+    SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+    SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+    SetUpChild();\r
+    SetTouchable(true);\r
+\r
+    Add(&button);\r
+    Add(&connectStateLabel);\r
+    Add(&namelabel);\r
+    Add(&image);\r
+    Add(&connectionAnimator);\r
+}\r
 \r
-        /*线*/\r
-        lineImage.SetPosition(35, 98, 310, 2);\r
-        lineImage.SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
-        lineImage.SetStyle(STYLE_BACKGROUND_OPA, 0x33);\r
-        lineImage.SetStyle(STYLE_BORDER_RADIUS, 100);\r
+BluetoothItemView::~BluetoothItemView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::~BluetoothItemView");\r
+    Remove(&connectStateLabel);\r
+    Remove(&button);\r
+    Remove(&namelabel);\r
+    Remove(&image);\r
+    Remove(&connectionAnimator);\r
+}\r
 \r
-        BtConnectImageAnimator();\r
-    }\r
+void BluetoothItemView::SetUpChild()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::SetUpChild");\r
+    button.Resize(BUTTON_WIDTH, BUTTON_HEIGHT); // 351:Width\r
+    button.SetImageSrc(PNG_BT_LIST, PNG_BT_LIST); // 跳转图片\r
+    button.SetImagePosition(24, 0); // 24: lable x-coordinate\r
+\r
+    namelabel.SetPosition(105, 0); // 105:x 0:y\r
+    namelabel.Resize(LABEL_WIDTH, LABEL_HEIGHT);\r
+    namelabel.SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+    namelabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30: means font size\r
+    namelabel.SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+    namelabel.SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+        UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+\r
+    image.SetPosition(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT); // 0:x 0:y\r
+    image.SetSrc(PNG_BLUETOOTHEAR);\r
+    BtConnectImageAnimator();\r
+}\r
 \r
-    void BluetoothItemView::SetItemInfo(const BluetoothCaseInfo &itemInfo, bool isCaseList)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::SetItemInfo");\r
-        itemInfo_ = itemInfo;\r
-        namelabel.SetText(reinterpret_cast<const char *>(itemInfo_.deviceName));\r
-        if (isCaseList)\r
-        {\r
-            bool ret = BluetoothModel::GetInstance()->IsTagScanDeviceClicked();\r
-            if ((!IsConnectAnimator()) && (ret))\r
-            {\r
-                button.SetTouchable(false);\r
-                SetTouchable(false);\r
-            }\r
-            else\r
-            {\r
-                button.SetTouchable(true);\r
-                SetTouchable(true);\r
-            }\r
-        }\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "index =  %d", GetViewIndex());\r
-        if(!isCaseList)\r
-        {\r
-            //已连接的耳机界面\r
-            List<BluetoothCaseInfo> &btConnedDevicesList_ = BluetoothModel::GetInstance()->GetConnedDevicesCase();\r
-            if (GetViewIndex() == btConnedDevicesList_.Size() - 1)\r
-            {\r
-                lineImage.SetVisible(false);\r
-            }\r
-            else\r
-            {\r
-                lineImage.SetVisible(true);\r
-            }\r
-        }\r
-        else\r
-        {\r
-            //搜索出耳机的界面\r
-            std::list<BluetoothCaseInfo> &btScansDevicesList_ = BluetoothModel::GetInstance()->GetCase();\r
-            if (GetViewIndex() == btScansDevicesList_.size() - 1)\r
-            {\r
-                lineImage.SetVisible(false);\r
-            }\r
-            else\r
-            {\r
-                lineImage.SetVisible(true);\r
-            }\r
+void BluetoothItemView::SetItemInfo(const BluetoothCaseInfo& itemInfo, bool isCaseList)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::SetItemInfo");\r
+    itemInfo_ = itemInfo;\r
+    namelabel.SetText(reinterpret_cast<const char *>(itemInfo_.deviceName));\r
+    if (isCaseList) {\r
+        bool ret = BluetoothModel::GetInstance()->IsTagScanDeviceClicked();\r
+        if ((!IsConnectAnimator()) && (ret)) {\r
+            namelabel.SetStyle(STYLE_TEXT_COLOR, Color::Gray().full);\r
+            button.SetTouchable(false);\r
+            SetTouchable(false);\r
+        } else {\r
+            namelabel.SetStyle(STYLE_TEXT_COLOR, Color::White().full);\r
+            button.SetTouchable(true);\r
+            SetTouchable(true);\r
         }\r
     }\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "index =  %d", GetViewIndex());\r
+}\r
 \r
-    BluetoothCaseInfo *BluetoothItemView::GetItemInfo(void)\r
-    {\r
-        return &itemInfo_;\r
-    }\r
-\r
-    /*连接状态设置*/\r
-    void BluetoothItemView::SetConnectionstatus(const BluetoothCaseInfo &infoData)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::SetConnectionstatus");\r
-        connectStateLabel.SetPosition(40, namelabel.GetY() + namelabel.GetHeight(), 250, 27);\r
-        connectStateLabel.SetStyle(STYLE_TEXT_FONT, 23);\r
-        connectStateLabel.SetStyle(STYLE_LINE_HEIGHT, 27);\r
-        connectStateLabel.SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_LEFT, UITextLanguageAlignment::TEXT_ALIGNMENT_BOTTOM);\r
-        connectStateLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 23);\r
-        /* -------------------------------- noteImage ------------------------------- */\r
-        noteImage.SetPosition(namelabel.GetX() + namelabel.GetWidth(), 0, 80, 80);\r
-        noteImage.SetAutoEnable(false);\r
-        noteImage.SetResizeMode(UIImageView::CENTER);\r
-        noteImage.SetTouchable(true);\r
-        if (!PlayersView::LoadPlayerImage(&noteImage, PLAYER_LOOK_CONNECTED_NOTE))\r
-        {\r
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "noteImage LoadPlayerImage fail");\r
-            return;\r
-        }\r
-        /* ------------------------------ 检查ACL链路是否连接。 ------------------------------ */\r
-\r
-        {\r
-            #ifdef SUPPORT_BT_SERVICE\r
-            bool aclConnected = bt_is_acl_connected((const bd_addr_t *)&infoData.addr);\r
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::SetConnectionstatus aclConnected %d", aclConnected);\r
-            #else\r
-            bool aclConnected = false;\r
-            #endif\r
-\r
-            if (aclConnected)\r
-            {\r
-                connectStateLabel.SetTextColor(Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff));\r
-                connectStateLabel.SetTextId(STR_CONNECTED); // 已连接\r
-                  if(OHOS::CallerLogModel::GetInstance()->GetCallSource() == OHOS::CallerLogModel::CallSourceCat1\r
-                && OHOS::NotificationManager::GetInstance()->GetWatchCallStatus())\r
-                {\r
-                    #ifdef SUPPORT_BT_SERVICE\r
-                    bool SCOConnected = headset_SCO_Is_connect_extend( (bd_addr_t *)&infoData.addr);\r
-                    #else\r
-                    bool SCOConnected = false;\r
-                    #endif\r
-\r
-                    if(SCOConnected)\r
-                    {\r
-                        connectStateLabel.SetTextColor(Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff));\r
-                        if(ConfigModel::GetInstance()->GetLanguage() == ZH_CN)\r
-                        {\r
-                            connectStateLabel.SetText("蓝牙耳机通话已连接");\r
-                        }\r
-                        else\r
-                        {\r
-                            connectStateLabel.SetText("Bluetooth headset call connected");\r
-                        }\r
-                              \r
-                    }\r
-                    else\r
-                    {\r
-                        connectStateLabel.SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));\r
-                        if(ConfigModel::GetInstance()->GetLanguage() == ZH_CN)\r
-                        {\r
-                            connectStateLabel.SetText("蓝牙耳机通话未连接");\r
-                        }\r
-                        else\r
-                        {\r
-                            connectStateLabel.SetText("Bluetooth headset call is not connected");\r
-                        }\r
-                        \r
-                    }\r
-                   \r
-                }\r
-            }\r
-            else\r
-            {\r
-                connectStateLabel.SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));\r
-                connectStateLabel.SetTextId(STR_DISCONNECTED); // 未连接\r
-            }\r
-            \r
-        }\r
-       \r
-      \r
-\r
-\r
-        connectStateLabel.ForceResetText();\r
-        connectStateLabel.Invalidate();\r
-    }\r
+BluetoothCaseInfo *BluetoothItemView::GetItemInfo(void)\r
+{\r
+    return &itemInfo_;\r
+}\r
 \r
-    void BluetoothItemView::SetPairingtatus()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::SetPairingtatus");\r
-        connectStateLabel.SetPosition(40, namelabel.GetY() + namelabel.GetHeight(), 250, 27);\r
-        connectStateLabel.SetStyle(STYLE_TEXT_FONT, 23);\r
-        connectStateLabel.SetStyle(STYLE_LINE_HEIGHT, 27);\r
-        connectStateLabel.SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_LEFT, UITextLanguageAlignment::TEXT_ALIGNMENT_BOTTOM);\r
-        connectStateLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 23);\r
-        connectStateLabel.SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));\r
-        connectStateLabel.SetTextId(STR_NOT_PAIRED); // 未配对\r
+void BluetoothItemView::SetConnectionstatus(const BluetoothCaseInfo& infoData)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::SetConnectionstatus");\r
+    connectStateLabel.SetPosition(105, 0); // 105:x 0:y\r
+    connectStateLabel.Resize(LABEL_WIDTH, LABEL_HEIGHT);\r
+    connectStateLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30: means font size\r
+    connectStateLabel.SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+    connectStateLabel.SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+                               UITextLanguageAlignment::TEXT_ALIGNMENT_BOTTOM);\r
+    bool aclConnected = bt_is_acl_connected((const bd_addr_t*)&infoData.addr);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothItemView::SetConnectionstatus aclConnected %d", aclConnected);\r
+    if (aclConnected) {\r
+        connectStateLabel.SetText("已连接");\r
+    } else {\r
+        connectStateLabel.SetText("已断开");\r
     }\r
+    namelabel.SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+                       UITextLanguageAlignment::TEXT_ALIGNMENT_TOP);\r
+    namelabel.Invalidate();\r
+}\r
 \r
-    void BluetoothItemView::SetViewOnClickListener(UIView::OnClickListener *listener)\r
-    {\r
-        if (listener)\r
-        {\r
-            button.SetOnClickListener(listener);\r
-            noteImage.SetOnClickListener(listener);\r
-        }\r
-    }\r
+void BluetoothItemView::ConnectAnimatorStart(void)\r
+{\r
+    connectionAnimator.SetVisible(true);\r
+    connectionAnimator.Start();\r
+}\r
 \r
-    /*动画开始*/\r
-    void BluetoothItemView::ConnectAnimatorStart(void)\r
-    {\r
-        connectionAnimator.SetVisible(true);\r
-        connectionAnimator.Start();\r
-    }\r
+void BluetoothItemView::ConnectAnimatorStop(void)\r
+{\r
+    connectionAnimator.SetVisible(false);\r
+    connectionAnimator.Stop();\r
+}\r
 \r
-    /*动画停止*/\r
-    void BluetoothItemView::ConnectAnimatorStop(void)\r
-    {\r
-        connectionAnimator.SetVisible(false);\r
-        connectionAnimator.Stop();\r
-    }\r
+bool BluetoothItemView::IsConnectAnimator(void)\r
+{\r
+    return connectionAnimator.IsVisible();\r
+}\r
 \r
-    /*连接动画是否可见*/\r
-    bool BluetoothItemView::IsConnectAnimator(void)\r
-    {\r
-        return connectionAnimator.IsVisible();\r
+void BluetoothItemView::BtConnectImageAnimator()\r
+{\r
+    const char *connectImagePath[BLUETOOTH_CONNECT_IMAGE_NUM] = {\r
+        PNG_A019_088_IMAGE_PATH,\r
+        PNG_A019_089_IMAGE_PATH,\r
+        PNG_A019_090_IMAGE_PATH,\r
+        PNG_A019_091_IMAGE_PATH,\r
+        PNG_A019_092_IMAGE_PATH,\r
+        PNG_A019_093_IMAGE_PATH,\r
+        PNG_A019_094_IMAGE_PATH,\r
+        PNG_A019_095_IMAGE_PATH,\r
+    };\r
+\r
+    for (uint8_t i = 0; i < BLUETOOTH_CONNECT_IMAGE_NUM; i++) {\r
+        connectImageInfo[i].imageInfo =  ImageCacheManager::GetInstance().LoadSingleRes(connectImagePath[i]);\r
+        connectImageInfo[i].imageType = IMG_SRC_IMAGE_INFO;\r
+        connectImageInfo[i].pos.x = BLUETOOTH_CONNECT_X;\r
+        connectImageInfo[i].pos.y = BLUETOOTH_CONNECT_Y;\r
+        connectImageInfo[i].width = BLUETOOTH_CONNECT_WIDTH;\r
+        connectImageInfo[i].height = BLUETOOTH_CONNECT_HEIGHT;\r
     }\r
 \r
-    /*蓝牙连接动画*/\r
-    void BluetoothItemView::BtConnectImageAnimator()\r
-    {\r
-        const char *connectImagePath[BLUETOOTH_CONNECT_IMAGE_NUM] = {\r
-            PNG_A019_088_IMAGE_PATH,\r
-            PNG_A019_089_IMAGE_PATH,\r
-            PNG_A019_090_IMAGE_PATH,\r
-            PNG_A019_091_IMAGE_PATH,\r
-            PNG_A019_092_IMAGE_PATH,\r
-            PNG_A019_093_IMAGE_PATH,\r
-            PNG_A019_094_IMAGE_PATH,\r
-            PNG_A019_095_IMAGE_PATH,\r
-        };\r
-\r
-        for (uint8_t i = 0; i < BLUETOOTH_CONNECT_IMAGE_NUM; i++)\r
-        {\r
-            connectImageInfo[i].imageInfo = ImageCacheManager::GetInstance().LoadSingleRes(connectImagePath[i]);\r
-            connectImageInfo[i].imageType = IMG_SRC_IMAGE_INFO;\r
-            connectImageInfo[i].pos.x = BLUETOOTH_CONNECT_X;\r
-            connectImageInfo[i].pos.y = BLUETOOTH_CONNECT_Y;\r
-            connectImageInfo[i].width = BLUETOOTH_CONNECT_WIDTH;\r
-            connectImageInfo[i].height = BLUETOOTH_CONNECT_HEIGHT;\r
-        }\r
-\r
-        connectionAnimator.SetImageAnimatorSrc(connectImageInfo, BLUETOOTH_CONNECT_IMAGE_NUM, BLUETOOTH_CONNECT_DELAY);\r
-        connectionAnimator.SetRepeat(true);\r
-        connectionAnimator.SetVisible(false);\r
-    }\r
+    connectionAnimator.SetImageAnimatorSrc(connectImageInfo, BLUETOOTH_CONNECT_IMAGE_NUM, BLUETOOTH_CONNECT_DELAY);\r
+    connectionAnimator.SetRepeat(true);\r
+    connectionAnimator.SetVisible(false);\r
+}\r
 \r
 }\r
index 55b24f9..699e0b1 100644 (file)
@@ -6,12 +6,10 @@
  */\r
 #include <cstdint>\r
 #include "BluetoothModel.h"\r
-#include "BluetoothModelC.h"\r
-\r
 #include "BluetoothWrapper.h"\r
 #include "BluetoothPresenter.h"\r
 #include "ConnectPhonePresenter.h"\r
-#include "MusicPlayerSourceView.h"\r
+#include "BluetoothView.h"\r
 #include "BluetoothItemView.h"\r
 #include "PlayersModel.h"\r
 #include "PhoneAudio.h"\r
@@ -24,9 +22,6 @@
 #include "bts_le_gap.h"\r
 #include "bts_spp.h"\r
 #include "osal_task.h"\r
-#include "bts_pbap.h"\r
-#include "ConfigModelC.h"\r
-#include "custom_utils.h"\r
 #ifdef SUPPORT_ALIPAY_SEC\r
 #include "alipay_feature.h"\r
 #endif\r
 #include "audio_manager_c_wrapper.h"\r
 #include "bts_avrcp_target.h"\r
 #include "msg_center_msg.h"\r
+#include "client/msg_center_client.h"\r
+#include "msg_center_protocol.h"\r
 #include "dfx_channel.h"\r
 #include "tcxo.h"\r
-#include "custom_runtime.h"\r
-\r
-#ifdef SUPPORT_BLE_SERVICE\r
-#include <bleEvent.h>\r
-#include "bleService.h"\r
-#include "bletest.h"\r
-#endif\r
-\r
-//#include "hfp_hf_service.h"\r
-#include "uiservice/include/ui_service.h"\r
-#include "PhoneService.h"\r
-#ifdef SUPPORT_AT_OHOSFWK\r
-#include "BluetoothWrapper.h"\r
-#endif\r
-#include "Bluetooyhpabpserver.h"\r
-\r
-\r
-\r
-#include "ConfigModelC.h"\r
-#include "uiservice/include/ui_service.h"\r
-#include "vibrator_service.h"\r
-#include "ConfigModel.h"\r
-\r
-#ifdef SUPPORT_PHONE_SERVICE\r
-#include "PhoneAGService.h"\r
-#endif\r
-\r
-#include "custom_save_runtime.h"\r
-#include "BluetoothHeadsetEvent.h"\r
+#include "ui_service.h"\r
 \r
 namespace OHOS {\r
 \r
@@ -74,7 +43,7 @@ namespace OHOS {
 #define BT_SPP_TASK_PRI        20\r
 #define TEN                    10\r
 \r
-constexpr uint16_t BLUETOOTH_MAX_NUM = 20; /*已连接设备列表的大小*/\r
+constexpr uint16_t BLUETOOTH_MAX_NUM = 20;\r
 \r
 #define MEDIA_A2DP_SNK_INTERFACE 1\r
 osal_timer g_a2dp_stream_accept_timer = {nullptr, nullptr, 0, 0};\r
@@ -83,6 +52,7 @@ AudioFormatConfig g_audio_format_config = {AUDIO_DEFAULT, 0, 0};
 static uint16_t g_sample_svr_handle = 0;\r
 static uint16_t g_sample_characteristic_handle = 0;\r
 static uint16_t g_diag_characteristic_handle = 0;\r
+static uint16_t g_diag_desc_handle = 0;\r
 constexpr uint16_t g_sample_adv_id = 2;\r
 static bd_addr_t g_bd_addr = { 0 };\r
 \r
@@ -112,223 +82,76 @@ char* BluetoothModel::getWatchName(void)
     return watchName;\r
 }\r
 \r
-void InitBluetoothInfo(void)\r
+void BluetoothModel::InitBluetoothInfo(void)\r
 {\r
-    #ifdef SUPPORT_BLE_SERVICE\r
+    errcode_t ret;\r
     unsigned char nameLen = BD_NAME_LEN;\r
-    uint8_t ble_name[BD_NAME_LEN] = {0};\r
-    uint8_t ble_name_len = BD_NAME_LEN;\r
-    errcode_t ret = 0;\r
-\r
-    ret = bluetooth_get_local_name(ble_name, &ble_name_len);\r
-    if (ret != 0) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_ble_get_local_name fail, name:%s,len:%u,ret:%u.", ble_name, ble_name_len, ret);\r
-        memset_s(ble_name, BD_NAME_LEN, 0, BD_NAME_LEN);\r
-        ble_name_len = strlen(BLE_DEFAULT_NAME) + 1;        \r
-        memcpy_s(ble_name, BD_NAME_LEN,BLE_DEFAULT_NAME,ble_name_len);\r
-    }\r
-    unsigned char addr[6] = {0};\r
-    unsigned int len = sizeof(addr);\r
-    memset(addr,0,6);    \r
-    bluetooth_get_local_addr(&addr[0],len);\r
-    //如果蓝牙名称不正确,按照规则重命名 \r
-    char watchName[BD_NAME_LEN]= {0};\r
     memset_s(watchName, sizeof(watchName), 0, sizeof(watchName));\r
-    (void)sprintf_s(watchName, sizeof(watchName), "%s %02X%02X",BLE_DEFAULT_NAME,addr[1],addr[0]);\r
-    int watch_name_len = strlen(watchName);\r
-    /**表名长度不对,或者内容不对,都要重命名*/\r
-    if (watch_name_len != strlen((char*)ble_name) || strncmp((char*)ble_name,watchName,watch_name_len) != 0 )\r
-    {\r
-        ret = bluetooth_set_local_name((unsigned char*)watchName, watch_name_len+1);\r
-        if (ret == ERRCODE_SUCC) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt SetLocalName %s ", watchName);\r
-        }else{\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt SetLocalName %s ret = 0x%x", watchName,ret);\r
-        }\r
-    }    \r
-    #endif\r
-\r
-}\r
-//1关 0开\r
-void bluetooth_set_auto_reconnect_closed(uint8_t flag)\r
-{\r
-    #ifdef SUPPORT_BLE_SERVICE\r
-\r
-    bts_feature_t bts_feature = { 0 };\r
-    bts_feature.bt_auto_reconnect_closed = flag;\r
-    errcode_t ret = bts_set_features(&bts_feature);\r
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt bts_set_features ret = 0x%X", ret);\r
-\r
-    #endif\r
-\r
+    ret = bluetooth_get_local_name((unsigned char *)watchName, &nameLen);\r
+    // 为了实验室测试需要,客户需要自己修改\r
+    if ((nameLen == strlen("WatchDemo") + 1) && (strcmp("WatchDemo", watchName) == 0)) {\r
+        uint32_t currentUs = uapi_tcxo_get_us();\r
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "currentUs 0x%x", currentUs);\r
+        // 设置蓝牙名称\r
+        (void)sprintf_s(watchName, sizeof(watchName), "Watch%x", (currentUs & 0xFFFF));\r
+        ret = bluetooth_set_local_name((unsigned char*)watchName, strlen((char*)watchName) + 1);\r
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bluetooth_set_local_name %s ret = %u", watchName, ret);\r
+\r
+        //  设置蓝牙地址\r
+        bd_addr_t addr = {{0x1C, 0x1D, 0x2B, 0x0, 0x0, 0x0} ,0};\r
+        addr.addr[3] = currentUs & 0xFF;\r
+        addr.addr[4] = (currentUs & 0XFF00) >> 8;\r
+        addr.addr[5] = currentUs & 0xFF;\r
+        ret = bluetooth_set_local_addr(addr.addr, BD_ADDR_LEN);\r
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bluetooth_set_local_addr [0x%x:0x%x] ret = %u", addr.addr[0], addr.addr[1], ret);\r
+    } else {\r
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "watchName: %s", watchName);\r
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "nameLen: %u", nameLen);\r
+    }\r
 }\r
 \r
-static int g_bluetooth_initialled=0;\r
-static int bluetooth_init_all(void)\r
+void BluetoothModel::Init()\r
 {\r
-\r
-    #ifdef SUPPORT_BLE_SERVICE\r
-\r
-    if (g_bluetooth_initialled == 1) return 1;\r
 #ifndef SUPPORT_AUTO_OTA\r
     errcode_t ret;\r
+\r
     // 设置自动回连,ios一键双连依赖此配置\r
-   \r
-    bluetooth_set_auto_reconnect_closed(1);\r
+    bts_feature_t bts_feature = { 0 };\r
+    bts_feature.bt_auto_reconnect_closed = 0;\r
+    ret = bts_set_features(&bts_feature);\r
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt bts_set_features ret = %u", ret);\r
 \r
     ret = enable_bt_stack();\r
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt enable_bt_stack ret = %u", ret);\r
 \r
     // 设置安全连接\r
-    // gap_ble_sec_params_t sec_params = {0};\r
-    // sec_params.bondable = 0x01;\r
-    // sec_params.io_capability = GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT;//最好选择没有输入输出IO能力\r
-    // sec_params.sc_enable = 0x00;\r
-    // sec_params.sc_mode = GAP_BLE_GAP_SECURITY_MODE1_LEVEL2;\r
-    // ret = gap_ble_set_sec_param(&sec_params);//设置配对参数 发起配对弹窗\r
-\r
     gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 1, GAP_BLE_GAP_SECURITY_MODE1_LEVEL3 };\r
-   // gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 0, GAP_BLE_GAP_SECURITY_MODE1_LEVEL2 };\r
     ret = gap_ble_set_sec_param(&sec_param);\r
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt gap_ble_set_sec_param ret = %u", ret);\r
 \r
     InitBluetoothInfo();\r
-\r
-\r
-    /********************br init************************/\r
     BtInitCallBacks();\r
-    uapi_pbap_pce_reg_callback();\r
-    BtA2dpInit();\r
-    PhoneServiceInit();\r
-    InitBtHeadsetEvent(); // 蓝牙ct和tg适配初始化\r
-\r
-    if(uapi_dev_runtime_get_safemode_flag())\r
-    {\r
-\r
-        gap_remove_all_pairs();\r
-\r
-        uapi_dev_runtime_atuoota_status_status(1);\r
-\r
-        BtInitSpp();\r
-    }\r
-   \r
-    /*******************ble init ****************/\r
     wrapper_ble_register();\r
 #ifdef SUPPORT_ALIPAY_SEC\r
-    wrapper_gatts_clear_service(); //Alipay BLE\r
-#endif\r
-    // svr_alipay_btcallback_reg();\r
-    /***Custom BleService */\r
-#ifdef SUPPORT_ALIPAY_SEC\r
-     //Alipay BLE\r
+    svr_alipay_bluetooth_init();\r
 #endif\r
+    BtInitCallBacksEx();\r
+    BtInitGatts();\r
+    BtInitSpp();\r
 \r
-    svr_ble_bluetooth_init(); //CUSTOM BLE\r
-    \r
-    // BtInitCallBacksEx(); //BLE\r
-    // BtInitGatts(); //BLE \r
-\r
+    /* 实验室测试需要,开机开广播 */\r
+    BleAdvStart();\r
 \r
-    //start reg ble server\r
-    wrapper_gatts_service_start(); \r
-    // do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_BLE_WRAPPERSTART,NULL,0);\r
-\r
-\r
-    /**开始ble广播*/\r
-    // custom_ble_service_start();\r
-    // BleAdvStart();\r
+    SetUpListCase();\r
+    SetUpConnedDevicesList();\r
 #endif\r
-    g_bluetooth_initialled = 1;\r
-\r
-    #endif\r
-\r
-    return 0;\r
-}\r
-\r
-    \r
-void bluetooth_enable_all(void)\r
-{\r
-    //初始化过的则直接开启扫描即可\r
-\r
-\r
-    if (bluetooth_init_all() == 1)\r
-    {\r
-\r
-        errcode_t ret;\r
-        // 设置自动回连,ios一键双连依赖此配置\r
-        // bts_feature_t bts_feature = { 0 };\r
-        // bts_feature.bt_auto_reconnect_closed = 0;\r
-        // ret = bts_set_features(&bts_feature);\r
-        // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt bts_set_features ret = %u", ret);\r
-        //     gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 1, GAP_BLE_GAP_SECURITY_MODE1_LEVEL3 };\r
-       //    // gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 0, GAP_BLE_GAP_SECURITY_MODE1_LEVEL2 };\r
-        //     ret = gap_ble_set_sec_param(&sec_param);\r
-        //     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt gap_ble_set_sec_param ret = %u", ret);\r
-\r
-        ret = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 0);\r
-         WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt gap_br_set_bt_scan_mode ret = %u", ret);\r
-        /**开始ble广播*/\r
-        // custom_ble_service_start();\r
-    }\r
-}\r
-\r
-void bluetooth_close_all(void)\r
-{\r
-    errcode_t ret;\r
-    \r
-    /**停止Ble广播,断开链接,清除协议缓存*/\r
-    // custom_ble_service_stop();\r
-\r
-    /** 停止BR广播 */\r
-\r
-    ret = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0);\r
-\r
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bluetooth_close_all gap_br_set_bt_scan_mode ret = %u", ret);\r
-    \r
-    /**TODO: 停止BR扫描**/\r
-    if(is_bt_discovering(BT_TRANSPORT_INVALID) || is_bt_discovering(BT_TRANSPORT_BR_EDR) || is_bt_discovering(BT_TRANSPORT_LE))\r
-    {\r
-        gap_br_cancel_discovery();\r
-    }\r
-    /**TODO: 关闭自动重连**/\r
-\r
-    // 设置自动回连,ios一键双连依赖此配置\r
-    // bts_feature_t bts_feature = { 0 };\r
-    // bts_feature.bt_auto_reconnect_closed = 1;\r
-    // bts_feature.bt_a2dp_snk_closed = 1;\r
-    // ret = bts_set_features(&bts_feature);\r
-    // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt bts_set_features ret = %u", ret);\r
-    \r
-    /**TODO: 断开BR链接**/\r
-    bd_addr_t bdaddr={0};\r
-    uapi_get_br_address(&bdaddr);\r
-    if (bt_is_acl_connected(&bdaddr))\r
-    {\r
-       ret = gap_disconnect_remote_device(&bdaddr);\r
-       WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bluetooth_close_all gap_disconnect_remote_device ret = %u", ret);\r
-    }  \r
-\r
-    //海思不建议使用 disable_bt_stack ,说可能影响 btcore 与 mcore通讯\r
-    // ret = disable_bt_stack();\r
-    // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt disable_bt_stack ret = %u", ret);\r
-\r
 }\r
 \r
-void BluetoothModel::Init()\r
-{\r
-// bluetooth_init();\r
-// InitBluetoothInfo();\r
-SetUpListCase();\r
-SetUpConnedDevicesList();\r
-}\r
-\r
-//清空这个扫描列表\r
 void BluetoothModel::SetCaseListClear()\r
 {\r
     btScansDevicesList_.clear();\r
 }\r
 \r
-//检查给定的蓝牙设备信息是否已经存在于这个列表中\r
 bool BluetoothModel::CheckExistScanList(BluetoothCaseInfo caseInfo)\r
 {\r
     std::list<BluetoothCaseInfo>::iterator node = btScansDevicesList_.begin();\r
@@ -347,19 +170,16 @@ bool BluetoothModel::CheckExistScanList(BluetoothCaseInfo caseInfo)
     return false;\r
 }\r
 \r
-//清空这个扫描列表\r
 void BluetoothModel::SetUpListCase()\r
 {\r
     SetCaseListClear();\r
 }\r
 \r
-//返回这个列表的引用\r
 std::list<BluetoothCaseInfo>& BluetoothModel::GetCase()\r
 {\r
     return btScansDevicesList_;\r
 }\r
 \r
-//向这个列表中添加蓝牙设备信息\r
 void BluetoothModel::AddCase(BluetoothCaseInfo caseInfo)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCase::caseInfo addr: %02x%02x%02x%02x%02x%02x",\r
@@ -370,13 +190,9 @@ void BluetoothModel::AddCase(BluetoothCaseInfo caseInfo)
         return;\r
     } else {\r
         btScansDevicesList_.push_back(caseInfo);\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "btScansDevicesList_ num = %d",btScansDevicesList_.size());\r
-        if(BluetoothEarListView::GetInstance()) //动态计算扫描出来的设备列表ui高度\r
-            GraphicService::GetInstance()->PostGraphicEvent( \r
-                std::bind(&BluetoothEarListView::RefreshBluetoothEarListView, BluetoothEarListView::GetInstance()));\r
     }\r
 }\r
-//设置设备的信号强度\r
+\r
 void BluetoothModel::SetScansCaseRssi(const bd_addr_t *bdAddr, int rssi)\r
 {\r
     for (auto it = btScansDevicesList_.begin(); it != btScansDevicesList_.end(); it++) {\r
@@ -398,14 +214,12 @@ bool CompBuletoothInfo(const BluetoothCaseInfo& a, const BluetoothCaseInfo& b)
     return false;\r
 }\r
 \r
-//按照信号强度进行排序\r
 void BluetoothModel::SortScansCaseRssi()\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothModel::SortScansCaseRssi");\r
     btScansDevicesList_.sort(CompBuletoothInfo);\r
 }\r
 \r
-//重置设备名称\r
 void BluetoothModel::ResetScanDevicesCase(const BluetoothCaseInfo& caseInfo)\r
 {\r
     for (auto it = btScansDevicesList_.begin(); it != btScansDevicesList_.end(); it++) {\r
@@ -419,7 +233,7 @@ void BluetoothModel::ResetScanDevicesCase(const BluetoothCaseInfo& caseInfo)
     }\r
 }\r
 \r
-/* 清空已配对设备队列 */\r
+/* 已配对设备队列 */\r
 void BluetoothModel::SetConnedDevicesListClear()\r
 {\r
     btConnedDevicesList_->Clear();\r
@@ -433,35 +247,32 @@ void BluetoothModel::SetUpConnedDevicesList()
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothModel btConnedDevicesList_ new fail");\r
             return;\r
         }\r
-        \r
-    }\r
-    SetConnedDevicesListClear();\r
-    unsigned int connedDevicesNum = 0;\r
-    int btpower = uapi_dev_runtime_get_bt_powerstat();\r
-\r
-    bool ret = gap_get_paired_devices_num(&connedDevicesNum);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BT Power %s , Setup GetPariedDevicesNum ret = %d, num = %d", btpower==1?"On":"Off",ret, connedDevicesNum);\r
-\r
-    gap_paired_device_info_t *devInfo = (gap_paired_device_info_t*)malloc(sizeof(gap_paired_device_info_t) *connedDevicesNum);\r
-    if (devInfo ==  nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DevInfo malloc failed %u", sizeof(gap_paired_device_info_t) *connedDevicesNum);\r
-        return;\r
-    }\r
-    ret =  gap_get_paired_devices_list(devInfo, (int *)&connedDevicesNum);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUpConnedDevicesList gap_get_paired_devices_list ret = %d", ret);\r
+        SetConnedDevicesListClear();\r
+        unsigned int connedDevicesNum = 0;\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
+\r
+        gap_paired_device_info_t *devInfo = (gap_paired_device_info_t*)malloc(sizeof(gap_paired_device_info_t) *connedDevicesNum);\r
+        if (devInfo ==  nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DevInfo malloc failed %u", sizeof(gap_paired_device_info_t) *connedDevicesNum);\r
+            return;\r
+        }\r
+        ret =  gap_get_paired_devices_list(devInfo, (int *)&connedDevicesNum);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUpConnedDevicesList gap_get_paired_devices_list ret = %d", ret);\r
 \r
-    BluetoothCaseInfo caseInfo{};\r
-    for (int i = 0; i < static_cast<int>(connedDevicesNum); ++i) {\r
-        if ((gap_get_device_class((const bd_addr_t *)devInfo[i].addr.addr) & 0x200) != 0) {\r
-            continue;\r
+        BluetoothCaseInfo caseInfo{};\r
+        for (int i = 0; i < static_cast<int>(connedDevicesNum); ++i) {\r
+            if ((gap_get_device_class((const bd_addr_t *)devInfo[i].addr.addr) & 0x200) != 0) {\r
+                continue;\r
+            }\r
+            (void)memcpy_s(caseInfo.addr, BD_ADDR_LEN,\r
+                           devInfo[i].addr.addr, BD_ADDR_LEN);\r
+            (void)memcpy_s(caseInfo.deviceName, BD_NAME_LEN,\r
+                           devInfo[i].device_name, BD_NAME_LEN);\r
+            AddConnedDevicesCase(caseInfo);\r
         }\r
-        (void)memcpy_s(caseInfo.addr, BD_ADDR_LEN,\r
-                        devInfo[i].addr.addr, BD_ADDR_LEN);\r
-        (void)memcpy_s(caseInfo.deviceName, BD_NAME_LEN,\r
-                        devInfo[i].device_name, BD_NAME_LEN);\r
-        AddConnedDevicesCase(caseInfo);\r
+        free(devInfo);\r
     }\r
-    free(devInfo);\r
 }\r
 \r
 void BluetoothModel::AddConnedDevicesCase(BluetoothCaseInfo caseInfo)\r
@@ -481,17 +292,11 @@ void BluetoothModel::AddConnedDevicesCase(BluetoothCaseInfo caseInfo)
     }\r
 }\r
 \r
-/*返回指向已连接设备列表的引用,以便其他部分的代码可以直接访问和操作这个列表*/\r
 List<BluetoothCaseInfo>& BluetoothModel::GetConnedDevicesCase()\r
 {\r
     return *btConnedDevicesList_;\r
 }\r
 \r
-/*\r
-* @brief 用于检查特定蓝牙设备(其地址存储在 tempMacValue 中)是否处于 ACL 连接状态。\r
-*\r
-*eg:如果是在控制与手机配对的蓝牙手环,通过这个函数就能确定手环当前与手机的连接情况。\r
-*/\r
 void BluetoothModel::SetBtStatus(void)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtStatus tempMacValue: %02x%02x%02x%02x%02x%02x",\r
@@ -556,13 +361,11 @@ bool BluetoothModel::GetTagReconnectJump(void)
     return tagReconnectJump;\r
 }\r
 \r
-/*设置当前哪个子视图是可见的*/\r
 void BluetoothModel::SetCurView(int16_t viewNum)\r
 {\r
     curView = viewNum;\r
 }\r
 \r
-/*获取当前哪个子视图是可见的*/\r
 int BluetoothModel::GetCurView(void)\r
 {\r
     return curView;\r
@@ -580,7 +383,6 @@ bool BluetoothModel::IsTagConnectView(void)
     return tagConnectView;\r
 }\r
 \r
-//设置是否需要跳转连接失败界面\r
 void BluetoothModel::SetTagDisconnectView(bool tag)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothModel::SetTagDisconnectView:%d", tag);\r
@@ -593,34 +395,29 @@ bool BluetoothModel::IsTagDisconnectView(void)
     return tagDisconnectView;\r
 }\r
 \r
+void BluetoothModel::SetTagConnectNew(bool tag)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothModel::SetTagConnectNew:%d", tag);\r
+    tagConnectNew = tag;\r
+}\r
 \r
-\r
-//设置是否返回到已连接过的设备列表视图标志\r
 void BluetoothModel::SetTagReturnToDeviceListView(bool tag)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothModel::SetTagReturnToDeviceListView:%d", tag);\r
     tagReturnToDeviceListView = tag;\r
 }\r
 \r
-//是否返回到已连接过的设备列表视图\r
 bool BluetoothModel::IsTagReturnToDeviceListView(void)\r
 {\r
     return tagReturnToDeviceListView;\r
 }\r
 \r
-// 获取断开连接时是否需要马上连接新设备\r
+// 判断断开连接时是否需要马上连接新设备\r
 bool BluetoothModel::IsTagConnectNew(void)\r
 {\r
     return tagConnectNew;\r
 }\r
 \r
-// 设置断开连接时是否需要马上连接新设备\r
-void BluetoothModel::SetTagConnectNew(bool tag)\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothModel::SetTagConnectNew:%d", tag);\r
-    tagConnectNew = tag;\r
-}\r
-\r
 void BluetoothModel::SetTagScanDeviceClicked(bool tag)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothModel::SetTagScanDeviceClicked:%d", tag);\r
@@ -633,7 +430,6 @@ bool BluetoothModel::IsTagScanDeviceClicked(void)
     return tagScanDeviceClicked;\r
 }\r
 \r
-//检查给定的 BluetoothCaseInfo 结构体实例 caseInfo 所代表的蓝牙设备是否已经存在于已连接设备列表中\r
 bool BluetoothModel::CheckExistConnedList(BluetoothCaseInfo caseInfo)\r
 {\r
     ListNode<BluetoothCaseInfo> *node = btConnedDevicesList_ ->Begin();\r
@@ -669,8 +465,7 @@ bool BluetoothModel::FindNameByAddr(BluetoothCaseInfo &listInfo, BluetoothCaseIn
         return false;\r
     }\r
 }\r
-//在已连接设备列表 btConnedDevicesList_ 和扫描设备列表 btScansDevicesList_ \r
-//中查找与输入的 BluetoothCaseInfo 结构体实例 caseInfo 地址匹配的设备,并尝试获取该设备的名称\r
+\r
 bool BluetoothModel::FindNameFromList(BluetoothCaseInfo *caseInfo)\r
 {\r
     ListNode<BluetoothCaseInfo> *node = btConnedDevicesList_->Begin();\r
@@ -720,6 +515,7 @@ int BluetoothModel::ConnectRemoteDevice(const bd_addr_t *addr)
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectRemoteDevice gap_br_set_bt_scan_mode ret = 0x%x", ret);\r
     }\r
     errcode_t retVal = gap_connect_remote_device(addr);\r
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "ConnectRemoteDevice gap_connect_remote_device ret = 0x%x", retVal);\r
     (void)memcpy_s(&remoteConnectAddr, sizeof(bd_addr_t), addr, sizeof(bd_addr_t));\r
     return retVal;\r
 }\r
@@ -727,11 +523,6 @@ int BluetoothModel::ConnectRemoteDevice(const bd_addr_t *addr)
 bool BluetoothModel::ConnectRemoteCheck(const bd_addr_t *addr)\r
 {\r
     bool ret;\r
-    if ((remoteConnectAddr.addr[0] == 0) && (remoteConnectAddr.addr[1] == 0) &&\r
-        (remoteConnectAddr.addr[2] == 0) && (remoteConnectAddr.addr[3] == 0) &&\r
-        (remoteConnectAddr.addr[4] == 0) && (remoteConnectAddr.addr[5] == 0)) {\r
-        return true;\r
-    } \r
     if ((remoteConnectAddr.addr[0] == addr->addr[0]) && (remoteConnectAddr.addr[1] == addr->addr[1]) &&\r
         (remoteConnectAddr.addr[2] == addr->addr[2]) && (remoteConnectAddr.addr[3] == addr->addr[3]) &&\r
         (remoteConnectAddr.addr[4] == addr->addr[4]) && (remoteConnectAddr.addr[5] == addr->addr[5])) {\r
@@ -772,7 +563,7 @@ static void ChangeScanView()
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothEarPhoneView nullptr");\r
         return;\r
     }\r
-    bluetoothEarPhoneView->setScanStatus(false);// 停止扫描标记\r
+    bluetoothEarPhoneView->setScanStatus(false);\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Bt scan one jumpView");\r
     if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
         JumpView *jumpView = JumpView::GetInstance();\r
@@ -796,7 +587,6 @@ static void ChangeScanView()
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtAnimatorStop");\r
 }\r
 \r
-//用于处理蓝牙设备发现的结果\r
 void BluetoothModel::BtGapDiscoveryResultCallbakHandle(const bd_addr_t &bdAddr)\r
 {\r
     BluetoothCaseInfo caseInfo{};\r
@@ -807,7 +597,6 @@ void BluetoothModel::BtGapDiscoveryResultCallbakHandle(const bd_addr_t &bdAddr)
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_discovery_result_callback getNameRet(bool): %d nameLen: %d name:%s",\r
                   getNameRet, nameLen, caseInfo.deviceName);\r
 \r
-\r
     if (nameLen == 0) { // 过滤未扫描到名字的设备\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "nameLen == 0 return");\r
         return;\r
@@ -841,79 +630,35 @@ void BluetoothModel::BtGapDiscoveryResultCallbakHandle(const bd_addr_t &bdAddr)
     }\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bt BtGapDiscoveryResultCallback end");\r
 }\r
-bd_addr_t BtGapPair_bdAddr={0};\r
+\r
 void BtGapPairStatusChangedCallback(const bd_addr_t *bdAddr, int status)\r
 {\r
-   #ifdef SUPPORT_BLE_SERVICE\r
-\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BtGapPairStatusChangedCallback addr: ****%02x%02x%02x%02x status: %d\n",\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtGapPairStatusChangedCallback addr: ****%02x%02x%02x%02x status: %d\n",\r
         bdAddr->addr[3], bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0], status); /* addr下标 0 1 2 3 */\r
-\r
-    if(uapi_dev_runtime_get_atuoota_status())\r
-    {\r
-        return;\r
-    }\r
-\r
-    if ((gap_get_device_class(bdAddr) & 0x200) != 0) \r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BtGapPairStatusChangedCallback: Mobile Phone Device");\r
-        if(status==GAP_PAIR_PAIRED)\r
-        memcpy(&BtGapPair_bdAddr,bdAddr,sizeof(bd_addr_t));\r
-\r
-        if(cm_custom_ble_service_on_flag() && !get_ble_pair()&& (status == GAP_PAIR_PAIRED))\r
-        {\r
-            send_pair_succ((bd_addr_t*)bdAddr);\r
-\r
-            hand_watch_first_time_Paired();\r
-\r
-            set_br_pair(1);\r
-          \r
-        }\r
-        if( status == GAP_PAIR_PAIRED )\r
-        {\r
-            set_br_pair(1);\r
-        }\r
-    }\r
-\r
-   \r
-\r
     if (status == GAP_PAIR_PAIRED) {\r
-        \r
         if (ConnectPhonePresenter::GetInstance() != nullptr) {\r
             NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
         }\r
-       \r
     }\r
-\r
-    #endif\r
 }\r
 \r
 void BtGapPairRequestedCallback(const bd_addr_t *bdAddr)\r
 {\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BtGapPairRequestedCallback addr: ****%02x%02x%02x%02x\n",\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtGapPairRequestedCallback addr: ****%02x%02x%02x%02x\n",\r
         bdAddr->addr[3], bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0]); /* addr下标 0 1 2 3 */\r
 }\r
 \r
 void BtGapPairConfirmedCallback(const bd_addr_t *bdAddr, int req_type, int number)\r
 {\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BtGapPairConfirmedCallback addr: ****%02x%02x%02x%02x req_type: %d number: %d\n",\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtGapPairConfirmedCallback addr: ****%02x%02x%02x%02x req_type: %d number: %d\n",\r
         bdAddr->addr[3], bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0], /* addr下标 0 1 2 3 */\r
         req_type, number);\r
 }\r
 \r
-\r
-static bool test_bt_falg=false;\r
-\r
-\r
-void BluetoothModel::set_test_bt_falg(bool falg)\r
-{\r
-    test_bt_falg=falg;\r
-}\r
-\r
 // 回调:扫描结果处理/发现结果上报\r
-void BtGapDiscoveryResultCallback(const bd_addr_t *bdAddr )\r
+void BtGapDiscoveryResultCallback(const bd_addr_t *bdAddr)\r
 {\r
-    if ((gap_get_device_class(bdAddr) & DEVICE_MAJOR_CLASS_PHONE) != 0 && test_bt_falg==false) {\r
+    if ((gap_get_device_class(bdAddr) & DEVICE_MAJOR_CLASS_PHONE) != 0) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtGapDiscoveryResultCallback: Mobile Phone Device");\r
         return;\r
     }\r
@@ -967,7 +712,6 @@ void HandleBeforeChangeView()
     }\r
 }\r
 \r
-//处理蓝牙耳机连接成功的UI操作\r
 static void ACLConnectionSuss(const bd_addr_t &bdAddr)\r
 {\r
     // 判断是否已退出蓝牙模块(无需跳转)\r
@@ -977,7 +721,7 @@ static void ACLConnectionSuss(const bd_addr_t &bdAddr)
         return;\r
     }\r
     // 成功提示\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "蓝牙耳机连接成功");\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GAP_ACL_STATE_CONNECTED");\r
     HandleBeforeChangeView();\r
     if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
         JumpView *jumpView = JumpView::GetInstance();\r
@@ -993,24 +737,16 @@ static void ACLConnectionSuss(const bd_addr_t &bdAddr)
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainBluetoothView GetInstance fail");\r
             return;\r
         }\r
-        mainBluetoothView->ChangeView(BluetoothModel::GetInstance()->GetCurView(), TIPSSUCCMESSAGEVIEW);//跳转到连接成功视图\r
+        mainBluetoothView->ChangeView(BluetoothModel::GetInstance()->GetCurView(), TIPSSUCCMESSAGEVIEW);\r
     }\r
     TipsSuccMessageView *tipsSuccMessageView = TipsSuccMessageView::GetInstance();\r
     if (tipsSuccMessageView == nullptr) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ACLConnectionSuss tipsSuccMessageView GetInstance fail");\r
         return;\r
     }\r
-    tipsSuccMessageView->RefreshNameLabel(bdAddr); //更新连接成功的提示视图的蓝牙名称\r
-    /* -------------------------------------------------------------------------- */\r
-    if (true != OHOS::ConfigModel::GetInstance()->GetDnotdisturb() && (!uapi_sleep_mode_flag_get()))\r
-    {\r
-        ui_api_vibrate_once_func();\r
-    }\r
-    uapi_set_screen_on_api();\r
-    /* -------------------------------------------------------------------------- */\r
+    tipsSuccMessageView->RefreshNameLabel(bdAddr);\r
 }\r
 \r
-//处理蓝牙耳机连接失败操作\r
 static void ACLConnectionFail(const bd_addr_t &bdAddr)\r
 {\r
     // 判断是否已退出蓝牙模块(无需跳转)\r
@@ -1022,7 +758,7 @@ static void ACLConnectionFail(const bd_addr_t &bdAddr)
         return;\r
     }\r
     // 失败提示页\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "蓝牙耳机连接失败");\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "conn fail");\r
     HandleBeforeChangeView();\r
     if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
         JumpView *jumpView = JumpView::GetInstance();\r
@@ -1045,17 +781,9 @@ static void ACLConnectionFail(const bd_addr_t &bdAddr)
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ACLConnectionFail tipsConnFailMessageView GetInstance fail");\r
         return;\r
     }\r
-    tipsConnFailMessageView->RefreshNameLabel(bdAddr);//更新连接失败的提示视图的蓝牙名称\r
-    /* -------------------------------------------------------------------------- */\r
-    if (true != OHOS::ConfigModel::GetInstance()->GetDnotdisturb() && (!uapi_sleep_mode_flag_get()))\r
-    {\r
-        ui_api_vibrate_once_func();\r
-    }\r
-    uapi_set_screen_on_api();\r
-    /* -------------------------------------------------------------------------- */\r
+    tipsConnFailMessageView->RefreshNameLabel(bdAddr);\r
 }\r
 \r
-//处理断开蓝牙耳机连接的UI操作\r
 static void DisconnectedHandle()\r
 {\r
     BluetoothModel::GetInstance()->SetTagDisconnectView(false);\r
@@ -1069,18 +797,22 @@ static void DisconnectedHandle()
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisconnectedHandle deviceList nullptr");\r
         return;\r
     }\r
-    deviceList->RefreshList();//刷新列表\r
+    deviceList->RefreshList();\r
+    BluetoothOptionsView *bluetoothOptionsView = BluetoothOptionsView::GetInstance();\r
+    if (bluetoothOptionsView == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AclStateChangedCallback bluetoothOptionsView  == nullptr");\r
+        return;\r
+    }\r
+    bluetoothOptionsView->RefreshText();\r
 }\r
 \r
 void BluetoothModel::BtGapAclStateChangedHandle(gap_acl_state_t state, unsigned int reason, const bd_addr_t &bdAddr)\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"ACL回调,%d",state);\r
     bool tag = BluetoothModel::GetInstance()->IsTagScanDeviceClicked();\r
     if ((reason == 0x13) || (reason == 0x14) || (reason == 0x15) || (reason == 0x3D) || (reason == 0x08 && (!tag))) { // 连接断开\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "蓝牙设备主动断开与手表连接 reason is %x", reason);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "The peer end is disconnected.");\r
         DisconnectedHandle();\r
     } else if (reason == 0x16) { // 主动断开连接\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "手表主动断开与蓝牙设备连接,reason is%x", reason);\r
         DisconnectedHandle();\r
         BluetoothCaseInfo *onClickBtCaseInfo = BluetoothModel::GetInstance()->GetTempMacValue();\r
         if (BluetoothModel::GetInstance()->IsTagConnectNew()) {\r
@@ -1092,14 +824,13 @@ void BluetoothModel::BtGapAclStateChangedHandle(gap_acl_state_t state, unsigned
         SetTagDisconnectView(false);\r
     }\r
 \r
-    BluetoothCaseInfo *onClickBtCaseInfo = GetTempMacValue();\r
-\r
     if ((state == GAP_ACL_STATE_CONNECTED) || (state == GAP_ACL_STATE_LE_CONNECTED)) {\r
         SetLastConnedAddr(&bdAddr);\r
         // 将数据存入设备列表\r
-        tag = CheckExistConnedList(*onClickBtCaseInfo);\r
-        if (!tag) {\r
-            AddConnedDevicesCase(*onClickBtCaseInfo);\r
+        BluetoothCaseInfo *info = GetTempMacValue();\r
+        tag = CheckExistConnedList(*info);\r
+        if ((!tag) && (memcmp(info->addr, bdAddr.addr, BD_ADDR_LEN) == 0)) {\r
+            AddConnedDevicesCase(*info);\r
         }\r
     } else {\r
         ACLConnectionFail(bdAddr);\r
@@ -1110,91 +841,38 @@ void BluetoothModel::BtGapAclStateChangedHandle(gap_acl_state_t state, unsigned
             int32_t retA2dp = a2dp_src_connect(&bdAddr);\r
             if (retA2dp) {\r
                 ACLConnectionFail(bdAddr);\r
-                #ifdef SUPPORT_CAT1_HFP_AG_SERV\r
-                errcode_t rethfp= hfp_ag_cmd_conn_hfp(&bdAddr);\r
-                if(!rethfp)\r
-                {\r
-                    errcode_t retVal = ConnectRemoteDevice((const bd_addr_t *)&onClickBtCaseInfo->addr);\r
-                }\r
-                #endif\r
-            }\r
-            else\r
-            {\r
-                errcode_t retVal = ConnectRemoteDevice((const bd_addr_t *)&onClickBtCaseInfo->addr);\r
             }\r
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "a2dp_src_connect result 0x%x", retA2dp);\r
-\r
         } else {\r
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ingore a2dp_src_connect");\r
         }\r
-\r
-\r
     }\r
 }\r
-static uint8_t ALC_State_flag=0;\r
-\r
-static uint8_t ALC_connect_hfp_flag=0;\r
-\r
-static uint8_t ALC_connect_A2DP_flag=0;\r
-\r
-static  bd_addr_t  ACL_bdAdd;\r
-\r
-void uapi_set_ACL_br_address(const bd_addr_t * bdAddr)\r
-{\r
-    memcpy(&ACL_bdAdd,bdAddr,sizeof(bd_addr_t));\r
-}\r
 \r
 // 回调:ACL连接状态上报\r
 void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state, unsigned int reason)\r
 {\r
-    #ifdef SUPPORT_BLE_SERVICE\r
-\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt GapAclStateChangedCallback state %d, reason %x succ or err", state, reason);\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: %02x%02x%02x%02x%02x%02x",\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bt GapAclStateChangedCallback state %d, reason %x succ or err", state, reason);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "addr: %02x%02x%02x%02x%02x%02x",\r
         bdAddr->addr[5], bdAddr->addr[4], bdAddr->addr[3], /* mac下标 0 1 2 3 4 5 */\r
         bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0]); /* mac下标 0 1 2 3 4 5 */\r
-\r
-    if(uapi_dev_runtime_get_atuoota_status())\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt GapAclStateChangedCallback state %d, reason %x succ or err", state, reason);\r
-        return;\r
-    }\r
-\r
-    if(!uapi_dev_runtime_get_bt_powerstat())\r
-    {\r
-        gap_disconnect_remote_device(bdAddr);\r
-    }\r
-\r
-    if ((gap_get_device_class(bdAddr) & 0x200) != 0) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GapAclStateChangedCallback: Mobile Phone Device");\r
+    static bd_addr_t gapAclConnectAddr{0}; /* 连接后保存手机地址,手表清除手机配对后查询不到class比较手机地址 */\r
+    if ((gap_get_device_class(bdAddr) & 0x200) != 0 || memcmp(gapAclConnectAddr.addr, bdAddr->addr, BD_ADDR_LEN) == 0) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GapAclStateChangedCallback: Mobile Phone Device");\r
         if (state == GAP_ACL_STATE_DISCONNECTED) {\r
             /* 通知msg_center,ble状态仍用bt状态,此处不区分 */\r
-            SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
+            MsgCenterSendMsg(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
             SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0);\r
-\r
-            \r
-\r
-            gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 0);\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_SCAN_MODE_CONNECTABLE");\r
-\r
         } else if (state == GAP_ACL_STATE_CONNECTED) {\r
-            SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
+            (void)memcpy_s(gapAclConnectAddr.addr, BD_ADDR_LEN, bdAddr->addr, BD_ADDR_LEN);\r
+            MsgCenterSendMsg(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
             SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0);\r
-\r
-            uapi_set_ACL_br_address(bdAddr);\r
-\r
-            gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0);\r
-\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_SCAN_MODE_NONE");\r
-\r
         }\r
         return;\r
     }\r
+\r
     GraphicService::GetInstance()->PostGraphicEvent(\r
         std::bind(&BluetoothModel::BtGapAclStateChangedHandle, BluetoothModel::GetInstance(), state, reason, *bdAddr));\r
-\r
-    #endif\r
-\r
 }\r
 \r
 // 回调:远端设备名称变化\r
@@ -1236,7 +914,7 @@ static void A2dpSrcConnectstateChanged(bd_addr_t *bdAddr, int connState)
         bdAddr->addr[5], bdAddr->addr[4], bdAddr->addr[3], /* 5 4 3 idx */\r
         bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0], connState); /* 2 1 0 idx */\r
     if ((gap_get_device_class(bdAddr) & 0x200) != 0) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "a2dp_src_connectstateChangedCb: Mobile Phone Device");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "a2dp_src_connectstateChangedCb: Mobile Phone Device");\r
         return;\r
     }\r
     if (connState == PROFILE_STATE_CONNECTED) {\r
@@ -1244,38 +922,17 @@ static void A2dpSrcConnectstateChanged(bd_addr_t *bdAddr, int connState)
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "avrcp_ct_connect ret = 0x%x", ret);\r
         PhoneAudioManagerSetDeviceConnState(OUT_BLUETOOTH_A2DP, AUDIO_DEVICE_CONNECTED);\r
         GraphicService::GetInstance()->PostGraphicEvent(std::bind(ACLConnectionSuss, *bdAddr));\r
-\r
-        #ifdef SUPPORT_BLE_SERVICE\r
-        SendMsgToUIService(EARPHONE_CONNECTED_TO_UI, 0, nullptr, 0);\r
-      \r
-\r
-\r
-         uapi_dev_runtime_set_earphone_connect_stat(1);\r
-         uapi_save_runtime_log(RUNTIME_LOG_BR_CONNECT_A2DP_HEADSET);\r
-        if(headset_Is_connect() == false)\r
-            do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CONNECT_AG, nullptr, 0);\r
-\r
-        #endif\r
-         \r
     }\r
 \r
     if (connState == PROFILE_STATE_DISCONNECTED) {\r
         PhoneAudioManagerSetDeviceConnState(OUT_BLUETOOTH_A2DP, AUDIO_DEVICE_DISCONNECTED);\r
         GraphicService::GetInstance()->PostGraphicEvent(std::bind(ACLConnectionFail, *bdAddr));\r
-\r
-        #ifdef SUPPORT_BLE_SERVICE\r
-        SendMsgToUIService(EARPHONE_DISCONNECTED_TO_UI, 0, nullptr, 0);\r
-        #endif\r
-\r
-        uapi_save_runtime_log(RUNTIME_LOG_BR_DISCONNECT_A2DP_HEADSET);\r
         /* 实验室测试耳机回连场景,用户根据需要调整策略 */\r
         bool ret = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 60); // start scan\r
         if (!ret) {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "a2dp disc: gap_br_set_bt_scan_mode ret = 0x%x", ret);\r
         }\r
-        uapi_dev_runtime_set_earphone_connect_stat(0);\r
     }\r
-   \r
 }\r
 \r
 static void A2dpSrcPlayingStateChanged(bd_addr_t *bdAddr, int playState)\r
@@ -1299,18 +956,17 @@ static void A2dpSrcConfigureChanged(bd_addr_t *bdAddr, a2dp_codec_info_t *info)
 static void BleConnStateChangeCallback(unsigned short connId, bd_addr_t *addr, gap_ble_conn_state_t connState,\r
                                        gap_ble_pair_state_t pairState, gap_ble_disc_reason_t discReason)\r
 {\r
-\r
-    #ifdef SUPPORT_BLE_SERVICE\r
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BleConnStateChangeCallback connId 0x%x, connState 0x%x, pairState 0x%x",\r
                   connId, connState, pairState);\r
     if (GAP_BLE_STATE_DISCONNECTED == connState) { // restart ble adv when disconnected\r
         /* 通知msg_center,ble状态仍用bt状态,此处不区分 */\r
-        SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
+        MsgCenterSendMsg(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
+        msg_center_set_ble_conn_state(GAP_BLE_STATE_DISCONNECTED);\r
     } else {\r
-        SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
+        MsgCenterSendMsg(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
+        msg_center_set_ble_conn_state(GAP_BLE_STATE_CONNECTED);\r
         (void)memcpy_s(&g_bd_addr, sizeof(bd_addr_t), addr, sizeof(bd_addr_t));\r
     }\r
-    #endif\r
 }\r
 \r
 static void BleAdvStartCallback(uint8_t advId, adv_status_t status)\r
@@ -1332,9 +988,8 @@ static void BleAdvStopCallback(uint8_t advId, adv_status_t status)
 static void BleAdvTerminateCallback(uint8_t advId, adv_status_t status)\r
 {\r
     if (g_sample_adv_id == advId) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "?????????? BleAdvTerminateCallback advId: %d, status:%d\n", advId, status);\r
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BleAdvTerminateCallback advId: %d, status:%d\n", advId, status);\r
         BluetoothModel::GetInstance()->SetAdvStartState(false);\r
-\r
         // 此处开广播是为了实验室测试需要,客户需要自己修改\r
         BleAdvStart();\r
     }\r
@@ -1342,11 +997,11 @@ static void BleAdvTerminateCallback(uint8_t advId, adv_status_t status)
 \r
 static void BtGattsServiceAddCallback(uint8_t serverId, bt_uuid_t *uuid, uint16_t srvcHandle, errcode_t status)\r
 {\r
-    if ((uuid->uuid_len == sizeof(uint16_t)) && (*((uint16_t*)uuid->uuid) == 0x1FF0)) {\r
+    if ((uuid->uuid_len == sizeof(uint16_t)) && (*((uint16_t*)uuid->uuid) == 0xF01F)) {\r
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BtGattsServiceAddCallback 0x%x 0x%x 0x%x",\r
             status, serverId, srvcHandle);\r
-        uint16_t sample_id = 0x1FF1;\r
-        uint16_t diag_id = 0x1FF2;\r
+        uint16_t sample_id = 0xF11F;\r
+        uint16_t diag_id = 0xF21F;\r
         gatts_add_chara_info_t character;\r
         uint16_t value = 0;\r
 \r
@@ -1364,7 +1019,7 @@ static void BtGattsServiceAddCallback(uint8_t serverId, bt_uuid_t *uuid, uint16_
         character.chara_uuid.uuid_len = sizeof(diag_id);\r
         memcpy_s(character.chara_uuid.uuid, sizeof(character.chara_uuid.uuid), (char *)&diag_id, sizeof(diag_id));\r
         character.permissions = GATT_ATTRIBUTE_PERMISSION_WRITE | GATT_ATTRIBUTE_PERMISSION_READ;\r
-        character.properties = GATT_CHARACTER_PROPERTY_BIT_WRITE | GATT_CHARACTER_PROPERTY_BIT_READ;\r
+        character.properties = GATT_CHARACTER_PROPERTY_BIT_WRITE | GATT_CHARACTER_PROPERTY_BIT_READ | GATT_CHARACTER_PROPERTY_BIT_NOTIFY;\r
         character.value_len = (uint16_t)sizeof(value);\r
         character.value = (uint8_t *)(&value);\r
 \r
@@ -1377,17 +1032,30 @@ static void BtGattsServiceAddCallback(uint8_t serverId, bt_uuid_t *uuid, uint16_
 \r
 static void BtGattsCharacteristicAddCallback(uint8_t serverId, bt_uuid_t *uuid, uint16_t srvcHandle, gatts_add_character_result_t *result, errcode_t status)\r
 {\r
-    if ((uuid->uuid_len == sizeof(uint16_t)) && (*((uint16_t*)uuid->uuid) == 0x1FF1)) {\r
+    if ((uuid->uuid_len == sizeof(uint16_t)) && (*((uint16_t*)uuid->uuid) == 0xF11F)) {\r
         g_sample_characteristic_handle = result->value_handle;\r
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BtGattsCharacteristicAddCallback 0x%x 0x%x 0x%x 0x%x",\r
                       status, serverId, srvcHandle, g_sample_characteristic_handle);\r
     }\r
-    if ((uuid->uuid_len == sizeof(uint16_t)) && (*((uint16_t*)uuid->uuid) == 0x1FF2)) {\r
+    if ((uuid->uuid_len == sizeof(uint16_t)) && (*((uint16_t*)uuid->uuid) == 0xF21F)) {\r
         g_diag_characteristic_handle = result->value_handle;\r
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BtGattsCharacteristicAddCallback 0x%x 0x%x 0x%x 0x%x",\r
                       status, serverId, srvcHandle, g_diag_characteristic_handle);\r
+\r
+        uint8_t ccc_val[] = { 0x01, 0x00 };\r
+        uint16_t diag_desc = 0x0229;\r
+        gatts_add_desc_info_t descriptor;\r
+        memset_s(&descriptor, sizeof(gatts_add_desc_info_t), 0, sizeof(gatts_add_desc_info_t));\r
+        descriptor.desc_uuid.uuid_len = sizeof(diag_desc);\r
+        memcpy_s(descriptor.desc_uuid.uuid, sizeof(descriptor.desc_uuid.uuid), (char *)&diag_desc, sizeof(diag_desc));\r
+        descriptor.permissions = GATT_ATTRIBUTE_PERMISSION_READ | GATT_ATTRIBUTE_PERMISSION_WRITE;\r
+        descriptor.value_len = (uint16_t)sizeof(ccc_val);\r
+        descriptor.value = ccc_val;\r
+        int ret = gatts_add_descriptor(serverId, srvcHandle, &descriptor);\r
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "gatts_add_descriptor diag_desc ret 0x%x", ret);\r
     }\r
-    if (g_sample_characteristic_handle != 0 && g_diag_characteristic_handle !=0) {\r
+\r
+    if (g_sample_characteristic_handle != 0 && g_diag_characteristic_handle !=0 && g_diag_desc_handle != 0) {\r
         int ret = gatts_start_service(serverId, srvcHandle);\r
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "gatts_start_service ret 0x%x", ret);\r
     }\r
@@ -1398,6 +1066,12 @@ static void BtGattsDescriptorAddCallback(uint8_t serverId, bt_uuid_t *uuid, uint
     if (g_sample_svr_handle == srvcHandle) {\r
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BtGattsDescriptorAddCallback 0x%x 0x%x 0x%x 0x%x",\r
             status, serverId, srvcHandle, descriptorHandle);\r
+        g_diag_desc_handle = descriptorHandle;\r
+    }\r
+\r
+    if (g_sample_characteristic_handle != 0 && g_diag_characteristic_handle !=0 && g_diag_desc_handle != 0) {\r
+        int ret = gatts_start_service(serverId, srvcHandle);\r
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "gatts_start_service ret 0x%x", ret);\r
     }\r
 }\r
 \r
@@ -1420,16 +1094,16 @@ static void BtGattsServiceDeleteCallback(uint8_t serverId, errcode_t status)
 \r
 static void BtGattsRequestReadCallback(uint8_t serverId, uint16_t connId, gatts_req_read_cb_t *readCbPara, errcode_t status)\r
 {\r
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BtGattsRequestReadCallback");\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtGattsRequestReadCallback handle = %u", readCbPara->handle);\r
 }\r
 \r
 static void BtGattsRequestWriteCallback(uint8_t serverId, uint16_t connId, gatts_req_write_cb_t *writeCbPara,  errcode_t status)\r
 {\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtGattsRequestWriteCallback handle = %u", writeCbPara->handle);\r
     if (g_sample_characteristic_handle == writeCbPara->handle) {\r
-        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BtGattsRequestWriteCallback");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtGattsRequestWriteCallback handle = %u", writeCbPara->handle);\r
         if (writeCbPara->length == 9) {\r
-            uint8_t ctkd[] = {'o', 'p', 'e', 'n', ' ', 'c', 't', 'k', 'd'};\r
-            if (memcmp(ctkd, writeCbPara->value, writeCbPara->length) == 0) {\r
+            if (memcmp("open ctkd", writeCbPara->value, writeCbPara->length) == 0) {\r
                 WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "enable ctkd");\r
                 // 一键双连使能(依赖安全连接参数配置)\r
                 errcode_t ret = gap_ble_set_ctkd_enable(true);\r
@@ -1437,19 +1111,29 @@ static void BtGattsRequestWriteCallback(uint8_t serverId, uint16_t connId, gatts
 \r
                 // 发起ble配对\r
                 ret = gap_ble_pair_remote_device(&g_bd_addr);\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_ble_pair_remote_device ret = %u ", ret);\r
+                WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "gap_ble_pair_remote_device ret = %u ", ret);\r
             }\r
         } else if (writeCbPara->length == 10) {\r
-            uint8_t ctkd[] = {'c', 'l', 'o', 's', 'e', ' ', 'c', 't', 'k', 'd'};\r
-            if (memcmp(ctkd, writeCbPara->value, writeCbPara->length) == 0) {\r
+            if (memcmp("close ctkd", writeCbPara->value, writeCbPara->length) == 0) {\r
                 // 一键双连去使能\r
                 errcode_t ret = gap_ble_set_ctkd_enable(false);\r
                 WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "gap_ble_set_ctkd_disable ret = %u", ret);\r
             }\r
         }\r
     } else if (g_diag_characteristic_handle == writeCbPara->handle) {\r
-        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "diag_gatt_write_req_cbk");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "diag_gatt_write_req_cbk handle = %u", writeCbPara->handle);\r
         diag_gatt_write_req_cbk(serverId, connId, writeCbPara, status);\r
+    } else if (g_diag_desc_handle == writeCbPara->handle) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "diag_gatt_set_handle handle = %u", writeCbPara->handle);\r
+        if ((writeCbPara->length == 2) && (*(char*)(writeCbPara->value) == 1)) {\r
+            WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "open gatt channel");\r
+            diag_gatt_set_handle(serverId, connId, g_diag_characteristic_handle);\r
+            msg_center_set_trans_channel(DIAG_FRAME_FID_BT);\r
+        } else if ((writeCbPara->length == 2) && (*(char*)(writeCbPara->value) == 0)) {\r
+            WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "close gatt channel");\r
+            diag_gatt_set_handle(0, 0, 0);\r
+            msg_center_set_trans_channel(DIAG_FRAME_FID_PHONE);\r
+        }\r
     }\r
 }\r
 \r
@@ -1457,21 +1141,6 @@ static void BtGattsMtuChangedCallback(uint8_t serverId, uint16_t connId, uint16_
 {\r
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BtGattsMtuChangedCallback connId = %u mtuSize = %u", connId, mtuSize);\r
 }\r
-/* 与设备建立A2DP连接 */\r
-static int wstp_a2dp_snk_connect(const bd_addr_t *bd_addr)\r
-{\r
-    int ret = a2dp_snk_connect(bd_addr);\r
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP,"a2dp_snk_connect ret(int): %x\n", ret);\r
-    return ret;\r
-}\r
-\r
-/* 与设备断开A2DP连接 */\r
-static int wstp_a2dp_snk_disconnect(const bd_addr_t *bd_addr)\r
-{\r
-    int ret = a2dp_snk_disconnect(bd_addr);\r
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP,"a2dp_snk_disconnect ret(int): %x\n", ret);\r
-    return ret;\r
-}\r
 \r
 static void BtA2dpSnkAcceptTimerStop(void)\r
 {\r
@@ -1521,20 +1190,20 @@ static errcode_t BtA2dpSnkStartAcceptTimer(void)
 static int32_t BtA2dpSnkAudioCreate()\r
 {\r
 #if MEDIA_A2DP_SNK_INTERFACE\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "audioFormat %d channelCount %d sampleRate %d \n",\r
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "audioFormat %d channelCount %d sampleRate %d \n",\r
         g_audio_format_config.audioFormat, g_audio_format_config.channelCount, g_audio_format_config.sampleRate);\r
 \r
     int32_t ret = AudioManagerA2dpSinkSetParam(g_audio_format_config);\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AudioManagerA2dpSinkSetParam ret %x\n", ret);\r
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "AudioManagerA2dpSinkSetParam ret %x\n", ret);\r
     ret = AudioManagerA2dpSinkCreate();\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AudioManagerA2dpSinkCreate ret %x\n", ret);\r
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "AudioManagerA2dpSinkCreate ret %x\n", ret);\r
 #endif\r
     /* 起定时器接受音乐开始请求 */\r
     (void)BtA2dpSnkStartAcceptTimer();\r
     return 0;\r
 }\r
 \r
-int32_t BtA2dpSnkAudioDestroy(void)\r
+static int32_t BtA2dpSnkAudioDestroy()\r
 {\r
 #if MEDIA_A2DP_SNK_INTERFACE\r
     int32_t ret = AudioManagerA2dpSinkDestroy();\r
@@ -1543,68 +1212,10 @@ int32_t BtA2dpSnkAudioDestroy(void)
     return 0;\r
 }\r
 \r
-//a2dp sink端 状态改变回调\r
 static void BtA2dpSnkConnectStateChangedCb(bd_addr_t *bd_addr, int conn_state)\r
 {\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x conn_state: %x\n",\r
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x conn_state: %x\n",\r
         bd_addr->addr[3], bd_addr->addr[2], bd_addr->addr[1], bd_addr->addr[0], conn_state); /* 3 2 1 0 idx */\r
-     (void)memcpy_s(&g_bd_addr, sizeof(bd_addr_t), bd_addr, sizeof(bd_addr_t));\r
-    if(conn_state==PROFILE_STATE_DISCONNECTING || conn_state==PROFILE_STATE_DISCONNECTED)\r
-    {\r
-        //if(0==uapi_a2dp_snk_get_device_connect_state() && 0==uapi_hfp_connect_state())\r
-        {\r
-            #ifdef SUPPORT_BLE_SERVICE\r
-            SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0);\r
-            SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
-            #endif\r
-\r
-        }\r
-\r
-        uapi_save_runtime_log(RUNTIME_LOG_BR_DISCONNECT_A2DP);\r
-\r
-\r
-    }\r
-    else if (conn_state==PROFILE_STATE_CONNECTING || conn_state==PROFILE_STATE_CONNECTED)\r
-    {\r
-#ifdef BR_DISCONNECT\r
-        if(!cm_get_A2DP_switch())\r
-        {\r
-            uapi_a2dp_snk_disconnect();\r
-            return;\r
-        }\r
-\r
-        if(cm_get_HFP_switch() && uapi_hfp_connect_state()==0)\r
-        {\r
-            uapi_hfp_connect();\r
-        }\r
-#endif\r
-\r
-#ifdef SUPPORT_BLE_SERVICE\r
-        SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0);\r
-        SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
- #endif\r
-\r
-\r
-        uapi_save_runtime_log(RUNTIME_LOG_BR_CONNECT_A2DP);\r
-        // if(pbap_pce_get_device_connect_state(bd_addr)==PROFILE_STATE_DISCONNECTING ||\r
-        //  pbap_pce_get_device_connect_state(bd_addr)==PROFILE_STATE_DISCONNECTED)\r
-        // uapi_pbap_cmd_start_client();\r
-        // if(conn_state==PROFILE_STATE_CONNECTED)\r
-        // {\r
-        //     if(pbap_pce_get_device_connect_state(bd_addr)==PROFILE_STATE_DISCONNECTED)\r
-        //     uapi_connect_pbap_pce();\r
-        //     else \r
-        //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"pbap_pce_get_device_connect_state(int): %X\n", pbap_pce_get_device_connect_state(bd_addr));\r
-            \r
-        // }\r
-       \r
-        \r
-\r
-    }\r
-    \r
-    \r
-   \r
-    \r
 }\r
 \r
 static void BtA2dpSnkStartStreamReqCb(bd_addr_t *bd_addr)\r
@@ -1612,28 +1223,14 @@ static void BtA2dpSnkStartStreamReqCb(bd_addr_t *bd_addr)
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x \n",\r
         bd_addr->addr[3], bd_addr->addr[2], bd_addr->addr[1], bd_addr->addr[0]); /* 3 2 1 0 idx */\r
     BtA2dpSnkAudioCreate();\r
-\r
-    uapi_save_runtime_log(RUNTIME_LOG_BR_A2DP_SNK_START_STREAM);\r
-    \r
-    if(PlayersModel::GetInstance()->GetMusicSource())//如果是手机音乐才更新显示\r
-        GraphicService::GetInstance()->PostGraphicEvent(std::bind(&OHOS::PlayersModel::set_player_state, OHOS::PlayersModel::GetInstance(),true));\r
-    // PlayersModel::GetInstance()->get_avrcp_ct_get_element_attributes();\r
 }\r
 \r
 static void BtA2dpSnkPlayingStateChangedCb(bd_addr_t *bd_addr, int playing_state)\r
 {\r
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x playing_state: %x\n",\r
         bd_addr->addr[3], bd_addr->addr[2], bd_addr->addr[1], bd_addr->addr[0], playing_state); /* 3 2 1 0 idx */\r
-    \r
     if (playing_state == A2DP_NOT_PLAYING) {\r
-        if(PlayersModel::GetInstance()->GetMusicSource())//如果是手机音乐才更新显示\r
-            GraphicService::GetInstance()->PostGraphicEvent(std::bind(&OHOS::PlayersModel::set_player_state, OHOS::PlayersModel::GetInstance(),false));\r
         BtA2dpSnkAudioDestroy();\r
-        uapi_save_runtime_log(RUNTIME_LOG_BR_A2DP_SNK_NOT_PLAYING);\r
-    }\r
-    else\r
-    {\r
-        uapi_save_runtime_log(RUNTIME_LOG_BR_A2DP_SNK_PLAYING);\r
     }\r
 }\r
 \r
@@ -1690,48 +1287,9 @@ static a2dp_snk_callbacks_t g_a2dp_snk_callbacks = {
     BtA2dpSnkPlayingStateChangedCb,\r
     BtA2dpSnkConfigChangedCb\r
 };\r
-void BtA2dpInit(void)\r
-{\r
-    /* a2dp source */\r
-    g_a2dpSrcCallbacks.connectstate_changed_cb = A2dpSrcConnectstateChanged;\r
-    g_a2dpSrcCallbacks.configuration_changed_cb = A2dpSrcConfigureChanged;\r
-    g_a2dpSrcCallbacks.playing_state_changed_cb = A2dpSrcPlayingStateChanged;\r
-    a2dp_src_register_callbacks(&g_a2dpSrcCallbacks);\r
-    /* a2dp sink */\r
-    a2dp_snk_register_callbacks(&g_a2dp_snk_callbacks);\r
-}\r
-\r
-void BtA2dpDeInit(void)\r
-{\r
-    a2dp_src_deregister_callbacks(&g_a2dpSrcCallbacks);\r
-    a2dp_snk_deregister_callbacks(&g_a2dp_snk_callbacks);\r
-\r
-}\r
-static void sample_gap_state_changed_callback(const int transport, const int status)\r
-{\r
-    printf("gap_state_changed_callback transport: %d status: %d\n", transport, status);\r
-}\r
 \r
-static void sample_gap_scan_mode_changed_callback(int mode)\r
+void BtInitCallBacks()\r
 {\r
-    printf("gap_scan_mode_changed_callback mode: %d\n", mode);\r
-    \r
-    if ((gap_get_device_class(&ACL_bdAdd) & 0x200) != 0) \r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sample_gap_scan_mode_changed_callback: Mobile Phone Device");\r
-        if(bt_is_acl_connected(&ACL_bdAdd) && mode!=GAP_SCAN_MODE_NONE)\r
-        {\r
-            gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0);\r
-        }\r
-    }\r
-   \r
-    \r
-}\r
-\r
-void BtInitCallBacks(void)\r
-{\r
-    g_btGapCallBacks .scan_mode_changed_callback=sample_gap_scan_mode_changed_callback;\r
-    g_btGapCallBacks.state_change_callback=sample_gap_state_changed_callback;\r
     g_btGapCallBacks.discovery_result_callback = BtGapDiscoveryResultCallback;\r
     g_btGapCallBacks.discovery_state_changed_callback = BtGapDiscoveryStateChangedCallback;\r
     g_btGapCallBacks.acl_state_changed_callbak = GapAclStateChangedCallback;\r
@@ -1743,6 +1301,13 @@ void BtInitCallBacks(void)
     g_btGapCallBacks.pair_confiremed_callback = BtGapPairConfirmedCallback;\r
     gap_register_callbacks(&g_btGapCallBacks);\r
 \r
+    g_a2dpSrcCallbacks.connectstate_changed_cb = A2dpSrcConnectstateChanged;\r
+    g_a2dpSrcCallbacks.configuration_changed_cb = A2dpSrcConfigureChanged;\r
+    g_a2dpSrcCallbacks.playing_state_changed_cb = A2dpSrcPlayingStateChanged;\r
+    a2dp_src_register_callbacks(&g_a2dpSrcCallbacks);\r
+\r
+    /* a2dp sink */\r
+    a2dp_snk_register_callbacks(&g_a2dp_snk_callbacks);\r
 }\r
 \r
 void BtInitCallBacksEx()\r
@@ -1750,8 +1315,8 @@ void BtInitCallBacksEx()
     g_gapBleCallbacks.conn_state_change_cb = BleConnStateChangeCallback;\r
     g_gapBleCallbacks.start_adv_cb = BleAdvStartCallback;\r
     g_gapBleCallbacks.stop_adv_cb = BleAdvStopCallback;\r
-        g_gapBleCallbacks.terminate_adv_cb = BleAdvTerminateCallback;\r
-        wrapper_gap_ble_register_callbacks(&g_gapBleCallbacks);\r
+    g_gapBleCallbacks.terminate_adv_cb = BleAdvTerminateCallback;\r
+    wrapper_gap_ble_register_callbacks(&g_gapBleCallbacks);\r
 \r
     g_btGattsCallbacks.add_service_cb = BtGattsServiceAddCallback;\r
     g_btGattsCallbacks.add_characteristic_cb = BtGattsCharacteristicAddCallback;\r
@@ -1767,8 +1332,8 @@ void BtInitCallBacksEx()
 \r
 void BtInitGatts(void)\r
 {\r
-    uint16_t id = 0x1FF0;\r
-    uint16_t ser_id = 0x1FFF;\r
+    uint16_t id = 0xF01F;\r
+    uint16_t ser_id = 0xFF1F;\r
     uint8_t serverId = 0;\r
     bt_uuid_t uuid;\r
     int ret;\r
@@ -1782,6 +1347,8 @@ void BtInitGatts(void)
     memcpy_s(uuid.uuid, sizeof(uuid.uuid), (char *)&id, sizeof(id));\r
     ret = wrapper_gatts_add_service(serverId, &uuid, true);\r
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "gatts_add_service ret: 0x%x", ret);\r
+\r
+    wrapper_gatts_service_start();\r
 }\r
 \r
 static uint8_t Char2Num(int8_t c)\r
@@ -1894,227 +1461,16 @@ void BleAdvStart(void)
     }\r
     gap_ble_adv_params_t adv_para;\r
     memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t));\r
-    adv_para.min_interval = 0x30;//140;//0x30;\r
-    adv_para.max_interval = 0x60;//160;//0x60;\r
+    adv_para.min_interval = 0x30;\r
+    adv_para.max_interval = 0x60;\r
     adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR;\r
     adv_para.channel_map = 0x7;\r
     adv_para.duration = 0;\r
-\r
     gap_ble_set_adv_param(advId, &adv_para);\r
     gap_ble_set_local_appearance(GAP_BLE_APPEARANCE_TYPE_GENERIC_WATCH);\r
     errcode_t ret = gap_ble_start_adv(advId);\r
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BleAdvStart bt gap_ble_start_adv  ret = 0x%x", ret);\r
 }\r
-//////////////////////////////////A2DP sink端 代码///////////////////////////////////////////////\r
-\r
-int get_BT_is_init()\r
-{\r
-    return g_bluetooth_initialled;\r
-}\r
-\r
-int uapi_a2dp_snk_get_device_connect_state()\r
-{\r
-    if(get_BT_is_init()==0)\r
-    {\r
-        return 0;\r
-    }\r
-\r
-    int ret = a2dp_snk_get_device_connect_state(&g_bd_addr);\r
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP,"state(int): %d\n", ret);\r
-\r
-    if(ret==PROFILE_STATE_CONNECTING || ret==PROFILE_STATE_CONNECTED)\r
-    return 1;\r
-    else\r
-    return 0;\r
-}\r
-\r
-\r
-void uapi_get_br_address(bd_addr_t *bdaddr)\r
-{\r
- #ifdef SUPPORT_BLE_SERVICE\r
-    if(BtGapPair_bdAddr.addr[0]==0 && BtGapPair_bdAddr.addr[1]==0 &&\r
-    BtGapPair_bdAddr.addr[2]==0 && BtGapPair_bdAddr.addr[3]==0 )\r
-    {\r
-        uint8_t MacType = 0;\r
-        uint8_t mac_data[6];\r
-        memset(mac_data,0,6);\r
-        GetwatchSaveMac(mac_data,&MacType);\r
-        BtGapPair_bdAddr.addr[0]=mac_data[0];\r
-        BtGapPair_bdAddr.addr[1]=mac_data[1];\r
-        BtGapPair_bdAddr.addr[2]=mac_data[2];\r
-        BtGapPair_bdAddr.addr[3]=mac_data[3];\r
-        BtGapPair_bdAddr.addr[4]=mac_data[4];\r
-        BtGapPair_bdAddr.addr[5]=mac_data[5];\r
-        BtGapPair_bdAddr.type=MacType;\r
-    }\r
-    memcpy(bdaddr,&BtGapPair_bdAddr,sizeof(bd_addr_t));\r
-#endif\r
-\r
-\r
-}\r
-\r
-void uapi_set_br_address(bd_addr_t *bdaddr)\r
-{\r
-    memcpy(&BtGapPair_bdAddr,bdaddr,sizeof(bd_addr_t));\r
-}\r
-\r
-static uint8_t br_cmd=0;\r
-int uapi_a2dp_snk_connect()\r
-{\r
-    br_cmd=BR_A2DP_CONNECT;\r
-    do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BR_CONNECT,&br_cmd,sizeof(br_cmd));\r
-    return 0;\r
-\r
-}\r
-  \r
-\r
-int uapi_a2dp_snk_connect_()\r
-{\r
-\r
-    if(get_BT_is_init()==0)\r
-    {\r
-        return 0;\r
-    }\r
-\r
-    bd_addr_t bdaddr={0};\r
-    uapi_get_br_address(&bdaddr);\r
-\r
-    int ret = a2dp_snk_connect(&bdaddr);\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x g_bd_addr.type: %x\n",\r
-    bdaddr.addr[3], bdaddr.addr[2], bdaddr.addr[1], bdaddr.addr[0], bdaddr.type); /* 3 2 1 0 idx */\r
-\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"state(int): %x\n", ret);\r
-    return ret;\r
-}\r
-\r
-int uapi_a2dp_snk_disconnect()\r
-{\r
-    br_cmd=BR_A2DP_DISCONNECT;\r
-    do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BR_CONNECT,&br_cmd,sizeof(br_cmd));\r
-     return 0;\r
-}\r
-  \r
-\r
-int uapi_a2dp_snk_disconnect_()\r
-{\r
-    if(get_BT_is_init()==0)\r
-    {\r
-        return 0;\r
-    }\r
-    \r
-    bd_addr_t bdaddr={0};\r
-    uapi_get_br_address(&bdaddr);\r
-\r
-    int ret = a2dp_snk_disconnect(&bdaddr);\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"state(int): %X\n", ret);\r
-    return ret;\r
-}\r
-\r
-// int uapi_disconnect_remote_device_()\r
-// {\r
-//     do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BR_CONNECT,&br_cmd,sizeof(br_cmd));\r
-//     return 0;\r
-// }\r
-  \r
-\r
-int uapi_disconnect_remote_device()\r
-{\r
-    bd_addr_t bdaddr={0};\r
-    uapi_get_br_address(&bdaddr);\r
-\r
-    if (bt_is_acl_connected(&bdaddr))\r
-    {\r
-       \r
-    int ret = gap_disconnect_remote_device(&bdaddr);\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetooth_close_all gap_disconnect_remote_device ret = %u", ret);\r
-    }\r
-    else\r
-    {\r
-     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt_is_acl_connected bt_acl_is True");\r
-    }\r
-    return 0;\r
-}\r
-\r
-\r
-int uapi_get_acl_connect_state()\r
-{\r
-    bd_addr_t bdaddr={0};\r
-    uapi_get_br_address(&bdaddr);\r
-    if (bt_is_acl_connected(&bdaddr))\r
-    {\r
-        return 1;\r
-    }\r
-    else\r
-    {\r
-        return 0;\r
-    }\r
-}\r
-\r
-int uapi_set_acl_connect_hfp()\r
-{\r
-    ALC_connect_hfp_flag=1;\r
-    return 0;\r
-}\r
-\r
-int uapi_set_acl_connect_A2DP()\r
-{\r
-    ALC_connect_A2DP_flag=1;\r
-    return 0;\r
-}\r
-\r
-\r
-int uapi_reconnect_()\r
-{\r
-    \r
-    br_cmd=BR_RECONNECT;\r
-    do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BR_CONNECT,&br_cmd,sizeof(br_cmd));\r
-     return 0;\r
-}\r
-  \r
-\r
-int uapi_reconnect(void)\r
-{\r
-    bd_addr_t bdaddr={0};\r
-    uapi_get_br_address(&bdaddr);\r
-    int ret=gap_reconnect_media_device(&bdaddr);\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ret(int): %X\n", ret);\r
-\r
-    return 0;\r
-}\r
-\r
-int uapi_close_br_scan(void)\r
-{\r
-    gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0);\r
-    return 0;\r
-}\r
-\r
-int uapi_open_br_scan(void)\r
-{\r
-    gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 0);\r
-    return 0;\r
-}\r
-\r
-// /////////////////////////////////////////HFP hf端 代码///////////////////////////////////////////////////\r
-\r
-// int uapi_HFP_hf_connect()\r
-// {\r
-//     int ret = hfp_hf_connect(&g_bd_addr);\r
-//     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP,"state(int): %d\n", ret);\r
-//     return ret;\r
-// }\r
-\r
-// int uapi_a2dp_snk_disconnect()\r
-// {\r
-//     int ret = a2dp_snk_disconnect(&g_bd_addr);\r
-//     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP,"state(int): %d\n", ret);\r
-//     return ret;\r
-// }\r
-\r
-\r
-void cm_initBluetoothDeviceList(void)\r
-{\r
-    BluetoothModel::GetInstance()->Init();\r
-}\r
 \r
 #ifdef __cplusplus\r
 }\r
index 97f68ab..a2c3671 100644 (file)
  * Author:\r
  * Create: 2021-10-13\r
  */\r
-#include "bluetooth/include/BluetoothOptionsView.h"\r
-#include "bluetooth/include/BluetoothModel.h"\r
+#include "BluetoothOptionsView.h"\r
+#include "BluetoothModel.h"\r
 #include "wearable_log.h"\r
 #include "UiConfig.h"\r
-#include "player/include/PlayersPresenter.h"\r
-#include "player/include/PlayersView.h"\r
-#include "bluetooth/include/BluetoothPresenter.h"\r
-#include "ui_resource_string.h"\r
-#include "ui_resource_image.h"\r
-namespace OHOS\r
-{\r
-    static BluetoothOptionsView *g_pBluetoothOptionsView{nullptr};\r
+#include "PlayersPresenter.h"\r
+#include "BluetoothPresenter.h"\r
 \r
-    BluetoothOptionsView::BluetoothOptionsView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::BluetoothOptionsView");\r
-        g_pBluetoothOptionsView = this;\r
-    }\r
+namespace OHOS {\r
+static BluetoothOptionsView *g_pBluetoothOptionsView{nullptr};\r
 \r
-    BluetoothOptionsView::~BluetoothOptionsView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::~BluetoothOptionsView");\r
-        if (group != nullptr)\r
-        {\r
-            group->RemoveAll();\r
-            if (titleLabel)\r
-            {\r
-                delete titleLabel;\r
-                titleLabel = nullptr;\r
-            }\r
-            if (btHeadsetIconUmage)\r
-            {\r
-                delete btHeadsetIconUmage;\r
-                btHeadsetIconUmage = nullptr;\r
-            }\r
-            if (EarPhoneDeviceName)\r
-            {\r
-                delete EarPhoneDeviceName;\r
-                EarPhoneDeviceName = nullptr;\r
-            }\r
-            if (pairState)\r
-            {\r
-                delete pairState;\r
-                pairState = nullptr;\r
-            }\r
-            if (unpairButton)\r
-            {\r
-                delete unpairButton;\r
-                unpairButton = nullptr;\r
-            }\r
-            if (unpairLabel)\r
-            {\r
-                delete unpairLabel;\r
-                unpairLabel = nullptr;\r
-            }\r
-            if (connectStateLabel)\r
-            {\r
-                delete connectStateLabel;\r
-                connectStateLabel = nullptr;\r
-            }\r
-            if (optionsOneButton)\r
-            {\r
-                delete optionsOneButton;\r
-                optionsOneButton = nullptr;\r
-            }\r
-            delete group;\r
-            group = nullptr;\r
-        }\r
-        g_pBluetoothOptionsView = nullptr;\r
-    }\r
+BluetoothOptionsView::BluetoothOptionsView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::BluetoothOptionsView");\r
+    g_pBluetoothOptionsView = this;\r
+}\r
+\r
+BluetoothOptionsView::~BluetoothOptionsView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::~BluetoothOptionsView");\r
+    group->RemoveAll();\r
+    delete titleLabel;\r
+    titleLabel = nullptr;\r
+    delete connectStateLabel;\r
+    connectStateLabel = nullptr;\r
+    delete optionsOneButton;\r
+    optionsOneButton = nullptr;\r
+    delete unpairButton;\r
+    unpairButton = nullptr;\r
+    delete group;\r
+    group = nullptr;\r
+    g_pBluetoothOptionsView = nullptr;\r
+}\r
+\r
+BluetoothOptionsView *BluetoothOptionsView::GetInstance()\r
+{\r
+    return g_pBluetoothOptionsView;\r
+}\r
 \r
-    BluetoothOptionsView *BluetoothOptionsView::GetInstance()\r
-    {\r
-        return g_pBluetoothOptionsView;\r
+void BluetoothOptionsView::RefreshText(void)\r
+{\r
+    // 刷新状态和文字\r
+    BluetoothModel::GetInstance()->SetBtStatus();\r
+    if (BluetoothModel::GetInstance()->GetAclConnected()) {\r
+        connectStateLabel->SetText("已连接");\r
+        optionsOneButton->SetText("断开连接");\r
+    } else {\r
+        connectStateLabel->SetText("已断开");\r
+        optionsOneButton->SetText("重新连接");\r
     }\r
+    BluetoothCaseInfo *caseInfo = BluetoothModel::GetInstance()->GetTempMacValue();\r
+    titleLabel->SetText(reinterpret_cast<const char *>(caseInfo->deviceName));\r
+    optionsOneButton->Invalidate();\r
+}\r
 \r
-    bool BluetoothOptionsView::CreateBluetoothOptionsLabelView(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::CreateBluetoothOptionsLabelView");\r
-        /* ------------------------------- titleLabel ------------------------------- */\r
-        if (titleLabel == nullptr)\r
-        {\r
-            titleLabel = new UILabelExt();\r
-            if (titleLabel == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleLabel new fail");\r
-                return false;\r
-            }\r
-        }\r
-        titleLabel->SetPosition(83, 50, 300, 35);\r
-        titleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
-        titleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        titleLabel->SetTextId(STR_BLUETOOTH_HEADPHONES); /*蓝牙耳机*/\r
-        titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        titleLabel->SetStyle(STYLE_TEXT_FONT,30);\r
-        titleLabel->SetStyle(STYLE_LINE_HEIGHT,35);\r
-        titleLabel->SetRollSpeed(23);\r
-        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        /* --------------------------- EarPhoneDeviceName --------------------------- */\r
-        if (EarPhoneDeviceName == nullptr)\r
-        {\r
-            EarPhoneDeviceName = new UILabelExt();\r
-            if (EarPhoneDeviceName == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "EarPhoneDeviceName new fail");\r
-                return false;\r
-            }\r
+void BluetoothOptionsView::InItTitleLabel()\r
+{\r
+    if (titleLabel == nullptr) {\r
+        titleLabel = new UILabel();\r
+        if (titleLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView titleLabel new fail");\r
+            return;\r
         }\r
-        EarPhoneDeviceName->SetPosition(53, 246, 360, 35);\r
-        EarPhoneDeviceName->SetStyle(STYLE_TEXT_FONT, 30);\r
-        EarPhoneDeviceName->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        titleLabel->SetPosition(60, 100, 333, 45); // 60:x 100:y 333:width 45:height\r
         BluetoothCaseInfo *caseInfo = BluetoothModel::GetInstance()->GetTempMacValue();\r
-        EarPhoneDeviceName->SetText(reinterpret_cast<const char *>(caseInfo->deviceName));\r
-        EarPhoneDeviceName->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        EarPhoneDeviceName->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        EarPhoneDeviceName->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 30);\r
-        /* -------------------------------- pairState ------------------------------- */\r
-        if (pairState == nullptr)\r
-        {\r
-            pairState = new UILabelExt();\r
-            if (pairState == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "pairState new fail");\r
-                return false;\r
-            }\r
-        }\r
-        pairState->SetPosition(53, 284, 360, 35);\r
-        pairState->SetStyle(STYLE_TEXT_FONT, 30);\r
-        pairState->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        pairState->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));\r
-        pairState->SetTextId(STR_PAIRED);\r
-        pairState->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        pairState->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        pairState->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        /* ---------------------------- connectStateLabel 注:暂时不用--------------------------- */\r
-        if (connectStateLabel == nullptr)\r
-        {\r
-            connectStateLabel = new UILabel();\r
-            if (connectStateLabel == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView connectStateLabel new fail");\r
-                return false;\r
-            }\r
+        titleLabel->SetText(reinterpret_cast<const char *>(caseInfo->deviceName));\r
+        titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
+        titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+        titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+        group->Add(titleLabel);\r
+    }\r
+    if (connectStateLabel == nullptr) {\r
+        connectStateLabel = new UILabel();\r
+        if (connectStateLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView connectStateLabel new fail");\r
+            return;\r
         }\r
-        connectStateLabel->SetPosition(60, 148, 333, 33);\r
+        connectStateLabel->SetPosition(60, 148, 333, 33); // 60:x 148:y 333:width 33:height\r
         connectStateLabel->SetText("已连接");\r
         connectStateLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
         connectStateLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
         connectStateLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-        connectStateLabel->SetVisible(false);\r
-        /* -------------------------------------------------------------------------- */\r
-        return true;\r
+        group->Add(connectStateLabel);\r
     }\r
+}\r
 \r
-    bool BluetoothOptionsView::CreateBluetoothOptionsLabelButton(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::CreateBluetoothOptionsLabelButton");\r
-        UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
-        UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
-        if ((clickListener == nullptr) && (clickListener2 == nullptr))\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
-            return false;\r
-        }\r
-        /* ---------------------------- optionsOneButton 注:暂时不用---------------------------- */\r
-        if (optionsOneButton == nullptr)\r
-        {\r
-            optionsOneButton = new UILabelButtonExt();\r
-            if (optionsOneButton == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView optionsOneButton new fail");\r
-                return false;\r
-            }\r
+void BluetoothOptionsView::InItLabelButton()\r
+{\r
+    UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
+    UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
+    if ((clickListener == nullptr) && (clickListener2 == nullptr)) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
+        return;\r
+    }\r
+    if (optionsOneButton == nullptr) {\r
+        optionsOneButton = new UILabelButton();\r
+        if (optionsOneButton == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView optionsOneButton new fail");\r
+            return;\r
         }\r
         optionsOneButton->SetPosition(157, 210, 139, 47); // 157:x, 210:y, 139:width 47:height\r
         optionsOneButton->SetText("断开连接");\r
         optionsOneButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
         optionsOneButton->SetViewId(BLUETOOTH_OPTIONONE_BUTTON);\r
         optionsOneButton->SetImageSrc(PNG_SELECTION_BOX, PNG_SELECTION_BOX);\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-        {\r
+        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
             optionsOneButton->SetTextColor(Color::Red());\r
             optionsOneButton->SetOnClickListener(clickListener);\r
-        }\r
-        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-        {\r
+        } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
             optionsOneButton->SetTextColor(Color::Blue());\r
             optionsOneButton->SetOnClickListener(clickListener2);\r
         }\r
-        optionsOneButton->SetVisible(false);\r
-        /* ------------------------------ unpairButton ------------------------------ */\r
-        if (unpairButton == nullptr)\r
-        {\r
-            unpairButton = new UILabelButtonExt();\r
-            if (unpairButton == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView unpairButton new fail");\r
-                return false;\r
-            }\r
-        }\r
-        unpairButton->SetPosition(0, 366, 466, 100);\r
-        // unpairButton->SetTextId(STR_UNPAIR); // 取消配对\r
-        unpairButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        group->Add(optionsOneButton);\r
+    }\r
+    if (unpairButton == nullptr) {\r
+        unpairButton = new UILabelButton();\r
+        if (unpairButton == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView unpairButton new fail");\r
+            return;\r
+        }\r
+        unpairButton->SetPosition(157, 284, 139, 47); // 157:x, 284:y, 139:width 47:height\r
+        unpairButton->SetText("取消配对");\r
+        unpairButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
         unpairButton->SetViewId(BLUETOOTH_UNPAIR_BUTTON);\r
-        unpairButton->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);\r
-        unpairButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0x00, UIButton::PRESSED);\r
-        unpairButton->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-        {\r
+        unpairButton->SetImageSrc(PNG_SELECTION_BOX, PNG_SELECTION_BOX);\r
+        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+            unpairButton->SetTextColor(Color::Red());\r
             unpairButton->SetOnClickListener(clickListener);\r
-        }\r
-        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-        {\r
+        } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+            unpairButton->SetTextColor(Color::Blue());\r
             unpairButton->SetOnClickListener(clickListener2);\r
         }\r
-        /* -------------------------------------------------------------------------- */\r
-        if (unpairLabel == nullptr)\r
-        {\r
-            unpairLabel = new UILabelExt();\r
-            if (unpairLabel == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "unpairLabel new fail");\r
-                return false;\r
-            }\r
-        }\r
-        unpairLabel->SetPosition(173, unpairButton->GetY() + 33, 120, 35);\r
-        unpairLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
-        unpairLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        unpairLabel->SetTextId(STR_UNPAIR); // 取消配对\r
-        unpairLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));\r
-        unpairLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        unpairLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        unpairLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        // unpairLabel->SetRollSpeed(23);\r
-        /* -------------------------------------------------------------------------- */\r
-        return true;\r
+        group->Add(unpairButton);\r
     }\r
+}\r
 \r
-    bool BluetoothOptionsView::CreateBluetoothOptionsImageView(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::CreateBluetoothOptionsImageView");\r
-        /* --------------------------- btHeadsetIconUmage --------------------------- */\r
-        if (btHeadsetIconUmage == nullptr)\r
-        {\r
-            btHeadsetIconUmage = new UIImageView();\r
-            if (btHeadsetIconUmage == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btHeadsetIconUmage new fail");\r
-                return false;\r
-            }\r
-        }\r
-        btHeadsetIconUmage->SetPosition(193, 134, 80, 80);\r
-        btHeadsetIconUmage->SetAutoEnable(false);\r
-        btHeadsetIconUmage->SetResizeMode(UIImageView::CENTER);\r
-        if (!PlayersView::LoadPlayerImage(btHeadsetIconUmage, PLAYER_EARPHONE))\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btHeadsetIconUmage LoadPlayerImage fail");\r
-            return false;\r
+UIViewGroup *BluetoothOptionsView::InitShowUpView()\r
+{\r
+    // 获取currentBdAddr db值 model待开发\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView init");\r
+    if (group == nullptr) {\r
+        group = new UIViewGroup();\r
+        if (group == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
+            return nullptr;\r
         }\r
-        return true;\r
+        group->SetPosition(0, 0);\r
+        group->SetWidth(HORIZONTAL_RESOLUTION);\r
+        group->SetHeight(VERTICAL_RESOLUTION);\r
     }\r
-\r
-    // 刷新状态和文字\r
-    void BluetoothOptionsView::RefreshText(void)\r
-    {\r
-        BluetoothModel::GetInstance()->SetBtStatus();\r
-        if (BluetoothModel::GetInstance()->GetAclConnected())\r
-        {\r
-            connectStateLabel->SetText("已连接");\r
-            optionsOneButton->SetText("断开连接");\r
-        }\r
-        else\r
-        {\r
-            connectStateLabel->SetText("已断开");\r
-            optionsOneButton->SetText("重新连接");\r
-        }\r
-        BluetoothCaseInfo *caseInfo = BluetoothModel::GetInstance()->GetTempMacValue();\r
-        EarPhoneDeviceName->SetText(reinterpret_cast<const char *>(caseInfo->deviceName));\r
-        optionsOneButton->Invalidate();\r
+    InItLabelButton();\r
+    InItTitleLabel();\r
+    UIView::OnDragListener *earDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
+    UIView::OnDragListener *earDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
+    if ((earDragListener == nullptr) && (earDragListener2 == nullptr)) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "earDragListener GetInstance fail");\r
+        return nullptr;\r
     }\r
-\r
-    UIViewGroup *BluetoothOptionsView::CreateBluetoothOptionsView()\r
-    {\r
-        // 获取currentBdAddr db值 model待开发\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView init");\r
-        if (group == nullptr)\r
-        {\r
-            group = new UIViewGroup();\r
-            if (group == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
-                return nullptr;\r
-            }\r
-            group->SetPosition(0, 0);\r
-            group->SetWidth(HORIZONTAL_RESOLUTION);\r
-            group->SetHeight(VERTICAL_RESOLUTION);\r
-        }\r
-        UIView::OnDragListener *earDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
-        UIView::OnDragListener *earDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
-        if ((earDragListener == nullptr) && (earDragListener2 == nullptr))\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "earDragListener GetInstance fail");\r
-            return nullptr;\r
-        }\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-        {\r
-            group->SetOnDragListener(earDragListener);\r
-        }\r
-        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-        {\r
-            group->SetOnDragListener(earDragListener2);\r
-        }\r
-        group->SetViewId(BLUETOOTH_OPTIONS_VIEW);\r
-        group->SetDraggable(true);\r
-        group->SetTouchable(true);\r
-        /* -------------------------------------------------------------------------- */\r
-        if (!CreateBluetoothOptionsLabelView() || !CreateBluetoothOptionsImageView() || !CreateBluetoothOptionsLabelButton())\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageView fail!!");\r
-            return nullptr;\r
-        }\r
-        /* ----------------------------------- Add ---------------------------------- */\r
-        group->Add(titleLabel);\r
-        group->Add(btHeadsetIconUmage);\r
-        group->Add(EarPhoneDeviceName);\r
-        group->Add(pairState);\r
-        group->Add(unpairButton);\r
-        group->Add(unpairLabel);\r
-        group->Add(optionsOneButton);\r
-        group->Add(connectStateLabel);\r
-\r
-        return group;\r
+    if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+        group->SetOnDragListener(earDragListener);\r
+    } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+        group->SetOnDragListener(earDragListener2);\r
     }\r
+    group->SetViewId(BLUETOOTH_OPTIONS_VIEW);\r
+    group->SetDraggable(true);\r
+    group->SetTouchable(true);\r
+    return group;\r
+}\r
 \r
-    UILabelButtonExt *BluetoothOptionsView::GetOptionsOneButton(void)\r
-    {\r
-        return optionsOneButton;\r
-    }\r
+UILabelButton *BluetoothOptionsView::GetOptionsOneButton(void)\r
+{\r
+    return optionsOneButton;\r
+}\r
 \r
-    UILabelButtonExt *BluetoothOptionsView::GetUnpairButton(void)\r
-    {\r
-        return unpairButton;\r
-    }\r
+UILabelButton *BluetoothOptionsView::GetUnpairButton(void)\r
+{\r
+    return unpairButton;\r
+}\r
 \r
-    /*\r
-     * @brief 获取蓝牙Model中的最后连接设备的地址,然后调用 gap_disconnect_remote_device 函数来断开与该远程设备的连接,并记录相关的日志信息。\r
-     *\r
-     * eg:比如之前连接的设备是一个蓝牙耳机,当用户主动触发断开操作时,该函数就会执行,断开与该耳机的连接。\r
-     */\r
-    void BluetoothOptionsView::SetBtDisconnect(void)\r
-    {\r
-        bd_addr_t *lastAddr = BluetoothModel::GetInstance()->GetLastConnedAddr();\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtDisconnect Addr: %02x%02x%02x%02x%02x%02x",\r
-                      lastAddr->addr[5], lastAddr->addr[4], lastAddr->addr[3],  /* mac下标 0 1 2 3 4 5 */\r
-                      lastAddr->addr[2], lastAddr->addr[1], lastAddr->addr[0]); /* mac下标 0 1 2 3 4 5 */\r
-        errcode_t retVal = gap_disconnect_remote_device(lastAddr);\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_disconnect_remote_device %d", retVal);\r
-    }\r
 \r
-    /*\r
-     * @brief 记录当前要连接的设备地址的相关日志信息,然后通过蓝牙Model的 ConnectRemoteDevice 函数尝试连接该远程设备,并记录连接结果的日志。 \r
-     *\r
-     * 当用户选择连接一个新的蓝牙设备时,这个函数会被调用,尝试建立与该设备的连接。\r
-     */\r
-    void BluetoothOptionsView::SetBtconnect(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtconnect currentAddr: %02x%02x%02x%02x%02x%02x",\r
-                      currentAddr.addr[5], currentAddr.addr[4], currentAddr.addr[3],  /* mac下标 0 1 2 3 4 5 */\r
-                      currentAddr.addr[2], currentAddr.addr[1], currentAddr.addr[0]); /* mac下标 0 1 2 3 4 5 */\r
-        errcode_t retVal = BluetoothModel::GetInstance()->ConnectRemoteDevice(&currentAddr);\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtconnect ConnectRemoteDevice %d", retVal);\r
-    }\r
+void BluetoothOptionsView::SetBtDisconnect(void)\r
+{\r
+    bd_addr_t *lastAddr = BluetoothModel::GetInstance()->GetLastConnedAddr();\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtDisconnect Addr: %02x%02x%02x%02x%02x%02x",\r
+        lastAddr->addr[5], lastAddr->addr[4], lastAddr->addr[3], /* mac下标 0 1 2 3 4 5 */\r
+        lastAddr->addr[2], lastAddr->addr[1], lastAddr->addr[0]); /* mac下标 0 1 2 3 4 5 */\r
+    errcode_t retVal  = gap_disconnect_remote_device(lastAddr);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_disconnect_remote_device %d", retVal);\r
+}\r
+\r
+void BluetoothOptionsView::SetBtconnect(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtconnect currentAddr: %02x%02x%02x%02x%02x%02x",\r
+        currentAddr.addr[5], currentAddr.addr[4], currentAddr.addr[3], /* mac下标 0 1 2 3 4 5 */\r
+        currentAddr.addr[2], currentAddr.addr[1], currentAddr.addr[0]); /* mac下标 0 1 2 3 4 5 */\r
+    errcode_t retVal = BluetoothModel::GetInstance()->ConnectRemoteDevice(&currentAddr);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtconnect ConnectRemoteDevice %d", retVal);\r
+}\r
+\r
+void BluetoothOptionsView::SetUnpair(void)\r
+{\r
+    bool ret;\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUnpair currentAddr: %02x%02x%02x%02x%02x%02x",\r
+        currentAddr.addr[5], currentAddr.addr[4], currentAddr.addr[3], /* mac下标 0 1 2 3 4 5 */\r
+        currentAddr.addr[2], currentAddr.addr[1], currentAddr.addr[0]); /* mac下标 0 1 2 3 4 5 */\r
+    ret = gap_remove_pair(&currentAddr);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUnpair gap_remove_pair %d", ret);\r
+}\r
 \r
-    /*\r
-    * @brief 记录当前设备地址的日志,然后调用 gap_remove_pair 函数来解除与该设备的配对,并记录操作结果的日志。\r
-    *\r
-    * 如果用户不再希望与某个已配对的蓝牙设备保持配对关系,例如一个旧手机,触发此操作时该函数执行。\r
-    */\r
-    void BluetoothOptionsView::SetUnpair(void)\r
-    {\r
-        bool ret;\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUnpair currentAddr: %02x%02x%02x%02x%02x%02x",\r
-                      currentAddr.addr[5], currentAddr.addr[4], currentAddr.addr[3],  /* mac下标 0 1 2 3 4 5 */\r
-                      currentAddr.addr[2], currentAddr.addr[1], currentAddr.addr[0]); /* mac下标 0 1 2 3 4 5 */\r
-        ret = gap_remove_pair(&currentAddr);\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUnpair gap_remove_pair %d", ret);\r
-    }\r
 \r
-    /*\r
-    * @brief 使用 memcpy_s 函数将传入的地址 addr 复制到 currentAddr 中。\r
-    *\r
-    * 当获取到新的有效的蓝牙设备地址时,通过这个函数更新当前要操作的地址。\r
-    */\r
-    void BluetoothOptionsView::SetCurrentAddr(bd_addr_t addr)\r
-    {\r
-        (void)memcpy_s(currentAddr.addr, BD_ADDR_LEN,\r
-                       addr.addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断\r
-    }\r
+void BluetoothOptionsView::SetCurrentAddr(bd_addr_t addr)\r
+{\r
+    (void)memcpy_s(currentAddr.addr, BD_ADDR_LEN,\r
+                   addr.addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断\r
+}\r
 \r
-    /*\r
-     * @brief 返回当前保存的蓝牙设备地址。\r
-     *\r
-     * 其他函数需要获取当前正在操作的蓝牙地址时,会调用这个函数来获取。\r
-     */\r
-    bd_addr_t BluetoothOptionsView::GetCurrentAddr(void)\r
-    {\r
-        return currentAddr;\r
-    }\r
+bd_addr_t BluetoothOptionsView::GetCurrentAddr(void)\r
+{\r
+    return currentAddr;\r
+}\r
 }
\ No newline at end of file
index 38e09e7..bcb1aa3 100644 (file)
 #include "BluetoothPresenter.h"\r
 #include "BluetoothReconnectView.h"\r
 #include "MainBluetoothView.h"\r
+#include "NativeRegisterManager.h"\r
 #include "UiConfig.h"\r
-#include "BluetoothModel.h"\r
-#include "custom_utils.h"\r
-#include "common/key_code.h"\r
 \r
-#include "NativeRegisterManager.h"\r
-namespace OHOS\r
-{\r
+namespace OHOS {\r
 \r
-    REGIST_SLICE(VIEW_BLUETOOTH_EARPHONE, MainBluetoothView, BluetoothPresenter);\r
+REGIST_SLICE(VIEW_BLUETOOTH_EARPHONE, MainBluetoothView, BluetoothPresenter);\r
 \r
 static BluetoothPresenter *g_pBluetoothPresenter = nullptr;\r
 \r
@@ -36,16 +32,6 @@ BluetoothPresenter::~BluetoothPresenter()
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothPresenter::~BluetoothPresenter");\r
 }\r
 \r
-void BluetoothPresenter::OnStart()\r
-{\r
-    Presenter<MainBluetoothView>::OnStart();\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothPresenter::On Start ");\r
-}\r
-\r
-void BluetoothPresenter::OnPause(void) {}\r
-\r
-void BluetoothPresenter::OnResume(void) {}\r
-\r
 void BluetoothPresenter::OnStop(void)\r
 {\r
     BluetoothEarPhoneView *bluetoothEarPhoneView = BluetoothEarPhoneView::GetInstance();\r
@@ -75,7 +61,6 @@ void BluetoothPresenter::ClickNewEquipmentButton(void)
     view_->ChangeView(BLUETOOTHDEVICELISTVIEW, BLUETOOTHEARPHONEVIEW);\r
 }\r
 \r
-//点击取消连接按钮\r
 void BluetoothPresenter::ClickCancelConnedRequestButton(void)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothPresenter::OnClick BLUETOOTH_CANCELCONNEDREQUEST_BUTTON");\r
@@ -109,10 +94,9 @@ void BluetoothPresenter::ClickCancelConnedRequestButton(void)
     pbItermView->ConnectAnimatorStop();\r
     bluetoothMode_->SetConnectionView(nullptr);\r
     bluetoothEarListView->SetNewEquipmentButtonAdd();\r
-\r
+    RootView::GetInstance()->Invalidate();\r
 }\r
 \r
-//点击取消配对\r
 void BluetoothPresenter::ClickUnpairButton(void)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothPresenter::OnClick BLUETOOTH_UNPAIR_BUTTON");\r
@@ -143,7 +127,6 @@ void BluetoothPresenter::ClickUnpairButton(void)
     view_->ChangeView(BLUETOOTHEOPTIONSVIEW, BLUETOOTHDEVICELISTVIEW);\r
 }\r
 \r
-/*已连接的蓝牙耳机设备视图中【重新连接或断开连接】按钮*/\r
 void BluetoothPresenter::ClickOptionsOneButton(void)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothPresenter::OnClick BLUETOOTH_OPTIONONE_BUTTON");\r
@@ -155,7 +138,7 @@ void BluetoothPresenter::ClickOptionsOneButton(void)
     bluetoothMode_->SetBtStatus();\r
     if (bluetoothMode_->GetAclConnected()) {\r
         bluetoothMode_->SetTagConnectNew(false);\r
-        bluetoothOptionsView->SetBtDisconnect();/*断开与该远程设备的连接*/\r
+        bluetoothOptionsView->SetBtDisconnect();\r
         view_->ChangeView(BLUETOOTHEOPTIONSVIEW, BLUETOOTHDEVICELISTVIEW);\r
     } else {\r
         bluetoothMode_->SetTagReconnectJump(true);\r
@@ -164,6 +147,9 @@ void BluetoothPresenter::ClickOptionsOneButton(void)
         // 判断是否已有连接\r
         bd_addr_t *lastAddr = bluetoothMode_->GetLastConnedAddr();\r
         if (bt_is_acl_connected(lastAddr)) {\r
+            WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "LastDevice addr: %02x%02x%02x%02x%02x%02x is connected",\r
+                lastAddr->addr[5], lastAddr->addr[4], lastAddr->addr[3],\r
+                lastAddr->addr[2], lastAddr->addr[1], lastAddr->addr[0]);\r
             bluetoothMode_->SetTagConnectNew(true);\r
             bluetoothOptionsView->SetBtDisconnect();\r
         } else {\r
@@ -195,25 +181,10 @@ void BluetoothPresenter::ClickConnfailBackButton(void)
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickConnfailBackButton ConnectRemoteDevice retVal = %d", retVal);\r
 }\r
 \r
-bool BluetoothPresenter::OnDrag(UIView& view, const DragEvent& event)\r
-{\r
-    if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) {\r
-        int16_t deltaX;\r
-        int16_t deltaY;\r
-        deltaX = event.GetDeltaX();\r
-        deltaY = event.GetDeltaY();\r
-        if (MATH_ABS(deltaX) >= MATH_ABS(deltaY) && MATH_ABS(deltaX) > 30) {\r
-            X_DRAG_FLAG = true;\r
-        }\r
-    }\r
-    return true;\r
-}\r
-\r
 bool BluetoothPresenter::OnDragEnd(UIView& view, const DragEvent& event)\r
 {\r
-    if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && X_DRAG_FLAG) {\r
+    if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) {\r
         view_->DropView(view);\r
-        X_DRAG_FLAG = false;\r
     }\r
     return true;\r
 }\r
@@ -222,46 +193,22 @@ bool BluetoothPresenter::OnClick(UIView &view, const ClickEvent &event)
 {\r
     UNUSED(event);\r
     if (strcmp(view.GetViewId(), BLUETOOTH_RESCAN_BUTTON) == 0) {\r
-        ClickRescanButton();//扫描出的耳机列表界面中的[重新扫描按钮]被点击\r
+        ClickRescanButton();\r
     } else if (strcmp(view.GetViewId(), BLUETOOTH_NEWEQUIPMENT_BUTTON) == 0) {\r
-        ClickNewEquipmentButton();//已连接设备列表界面中的[重新扫描按钮]被点击\r
+        ClickNewEquipmentButton();\r
     } else if (strcmp(view.GetViewId(), BLUETOOTH_CANCELCONNEDREQUEST_BUTTON) == 0) {\r
         ClickCancelConnedRequestButton();\r
     } else if (strcmp(view.GetViewId(), BLUETOOTH_UNPAIR_BUTTON) == 0) {\r
-        ClickUnpairButton();//查看已连接的蓝牙耳机设备界面的[取消配对按]钮被点击\r
+        ClickUnpairButton();\r
     } else if (strcmp(view.GetViewId(), BLUETOOTH_OPTIONONE_BUTTON) == 0) {\r
         ClickOptionsOneButton();\r
     } else if (strcmp(view.GetViewId(), BLUETOOTH_SUCC_BACK_BUTTON) == 0) {\r
-        ClickSuccBackButton();//点击连接成功的确定按钮\r
+        ClickSuccBackButton();\r
     } else if (strcmp(view.GetViewId(), BLUETOOTH_FAIL_BACK_BUTTON) == 0) {\r
-        ClickFailBackButton(); //点击重新搜索按钮\r
+        ClickFailBackButton();\r
     } else if (strcmp(view.GetViewId(), BLUETOOTH_CONN_FAIL_BACK_BUTTON) == 0) {\r
-        ClickConnfailBackButton();//连接失败的重试按钮\r
-    }\r
-    return true;\r
-}\r
-\r
-bool BluetoothPresenter::OnKeyAct(UIView &view, const KeyEvent &event)\r
-{\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothPresenter::OnKeyAct");\r
-    uint16 keyID = event.GetKeyId();\r
-    uint16 keyState = event.GetState();\r
-    // 如果是power键就返回上一级\r
-    if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
-    {\r
-        //如果是按键退出,退出时需要做一些清理工作\r
-        BluetoothEarPhoneView *bluetoothEarPhoneView = BluetoothEarPhoneView::GetInstance();\r
-        if(bluetoothEarPhoneView)\r
-        {\r
-            bluetoothEarPhoneView->BtAnimatorStop(); //停止搜索动画\r
-            bluetoothEarPhoneView->StopBtDiscovery();//停止定时器\r
-            BluetoothModel::GetInstance()->SetTagConnectView(false); //清除标志位\r
-            BluetoothModel::GetInstance()->SetTagScanDeviceClicked(false);\r
-        }\r
-        NativeAbility::GetInstance().Back();\r
+        ClickConnfailBackButton();\r
     }\r
     return true;\r
 }\r
-\r
-\r
 };\r
index df336f5..ad23342 100644 (file)
 #include "PlayersPresenter.h"\r
 #include "BluetoothPresenter.h"\r
 #include "common/image_cache_manager.h"\r
-#include "uicomponents/UIComponents.h"\r
-#include <custom_utils.h>\r
-#include "graphic_service.h"\r
-#include <ui_service.h>\r
+\r
 namespace OHOS {\r
 static BluetoothReconnectView *g_pBluetoothReconnectView{nullptr};\r
-#define BLUETOOTH_IMAGE_X 183\r
-#define BLUETOOTH_IMAGE_Y 153\r
-#define BLUETOOTH_IMAGE_WIDTH 100\r
-#define BLUETOOTH_IMAGE_HEIGHT 120\r
-#define BLUETOOTH_DELAY 50\r
-static constexpr const char *reconnectImagePaths = "/user/res/connect/";\r
-osTimerId_t g_stopConnectHandle = nullptr;\r
-static constexpr uint64_t MS_CONN_TIME = 15000;\r
+#define BLUETOOTH_IMAGE_X 175\r
+#define BLUETOOTH_IMAGE_Y 125\r
+#define BLUETOOTH_IMAGE_WIDTH 104\r
+#define BLUETOOTH_IMAGE_HEIGHT 104\r
+#define BLUETOOTH_DELAY 200\r
+\r
 BluetoothReconnectView::BluetoothReconnectView()\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothReconnectView::BluetoothReconnectView");\r
@@ -34,32 +29,22 @@ BluetoothReconnectView::BluetoothReconnectView()
 BluetoothReconnectView::~BluetoothReconnectView()\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothReconnectView::~BluetoothReconnectView");\r
-    if(group){\r
-        group->RemoveAll();\r
-        if(titleLabel){\r
-            delete titleLabel;\r
-            titleLabel = nullptr;\r
-        }\r
-        if(bluetoothNameLabel){\r
-            delete bluetoothNameLabel;\r
-            bluetoothNameLabel = nullptr;\r
-        }\r
-        if(reconnectAnimator){\r
-            reconnectAnimator->Stop();\r
-            delete reconnectAnimator;\r
-            reconnectAnimator = nullptr;\r
-            if(reconnectPathsArray != nullptr)\r
-                FreeImageInfoArray(reconnectPathsArray, reconnectImagePaths, BLUETOOTH_RECONNECT_IMAGE_NUM);\r
-        }\r
-        delete group;\r
-        group = nullptr;\r
-    }\r
-    ScreenTurnOff();\r
-    stop_connect_timer();\r
+    group->RemoveAll();\r
+    delete titleLabel;\r
+    titleLabel = nullptr;\r
+    delete bluetoothNameLabel;\r
+    bluetoothNameLabel = nullptr;\r
+    delete reconnectAnimator;\r
+    reconnectAnimator = nullptr;\r
+    delete group;\r
+    group = nullptr;\r
     g_pBluetoothReconnectView = nullptr;\r
 }\r
 \r
-\r
+bd_addr_t BluetoothReconnectView::GetcurrentBdAddr(void)\r
+{\r
+    return currentBdAddr;\r
+}\r
 \r
 BluetoothReconnectView *BluetoothReconnectView::GetInstance()\r
 {\r
@@ -80,7 +65,6 @@ void BluetoothReconnectView::ShowUpTitleLabel()
         titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
         titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
         titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-        titleLabel->SetVisible(false);\r
         group->Add(titleLabel);\r
     }\r
     if (bluetoothNameLabel == nullptr) {\r
@@ -96,11 +80,20 @@ void BluetoothReconnectView::ShowUpTitleLabel()
         bluetoothNameLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
         bluetoothNameLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
         bluetoothNameLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-        bluetoothNameLabel->SetVisible(false);\r
         group->Add(bluetoothNameLabel);\r
     }\r
 }\r
 \r
+void BluetoothReconnectView::BtReconnectStart(void)\r
+{\r
+    reconnectAnimator->Start();\r
+}\r
+\r
+void BluetoothReconnectView::BtReconnectStop(void)\r
+{\r
+    reconnectAnimator->Stop();\r
+}\r
+\r
 UIViewGroup *BluetoothReconnectView::InitShowUpView()\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothReconnectView init");\r
@@ -122,11 +115,10 @@ UIViewGroup *BluetoothReconnectView::InitShowUpView()
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "reDragListener GetInstance fail");\r
         return nullptr;\r
     }\r
-    /* ------------------------------ 连接过程动画不能右滑退出 ------------------------------ */\r
     if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
-        // group->SetOnDragListener(reDragListener);\r
+        group->SetOnDragListener(reDragListener);\r
     } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
-        // group->SetOnDragListener(reDragListener2);\r
+        group->SetOnDragListener(reDragListener2);\r
     }\r
     group->SetViewId(BLUETOOTH_RECONNECT_VIEW);\r
     group->SetDraggable(true);\r
@@ -148,7 +140,6 @@ void BluetoothReconnectView::RefreshBluetoothNameLabel()
 \r
 void BluetoothReconnectView::BtReconnectImageAnimator()\r
 {\r
-#if 0\r
     const char *reconnectImagePath[BLUETOOTH_RECONNECT_IMAGE_NUM] = {\r
         PNG_A019_080_IMAGE_PATH,\r
         PNG_A019_081_IMAGE_PATH,\r
@@ -178,131 +169,6 @@ void BluetoothReconnectView::BtReconnectImageAnimator()
         reconnectAnimator->SetRepeat(true);\r
         group->Add(reconnectAnimator);\r
     }\r
-#endif\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtScanImageAnimator init");\r
-    reconnectPathsArray = CreateImageInfoArray(reconnectImagePaths, BLUETOOTH_RECONNECT_IMAGE_NUM);\r
-    if (reconnectAnimator == nullptr)\r
-    {\r
-        reconnectAnimator = new UIImageAnimatorView();\r
-        if (reconnectAnimator == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "reconnectAnimator new fail");\r
-            return;\r
-        }\r
-        for (uint8_t i = 0; i < BLUETOOTH_RECONNECT_IMAGE_NUM; i++)\r
-        {\r
-            reconnetImageInfo[i].imageInfo = (reconnectPathsArray[i]);\r
-            reconnetImageInfo[i].imageType = IMG_SRC_IMAGE_INFO;\r
-            reconnetImageInfo[i].pos.x = BLUETOOTH_IMAGE_X;\r
-            reconnetImageInfo[i].pos.y = BLUETOOTH_IMAGE_Y;\r
-            reconnetImageInfo[i].width = BLUETOOTH_IMAGE_WIDTH;\r
-            reconnetImageInfo[i].height = BLUETOOTH_IMAGE_HEIGHT;\r
-        }\r
-        reconnectAnimator->SetPosition(BLUETOOTH_IMAGE_X, BLUETOOTH_IMAGE_Y, BLUETOOTH_IMAGE_WIDTH, BLUETOOTH_IMAGE_HEIGHT);\r
-        reconnectAnimator->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
-        reconnectAnimator->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        reconnectAnimator->SetImageAnimatorSrc(reconnetImageInfo, BLUETOOTH_RECONNECT_IMAGE_NUM, BLUETOOTH_DELAY);\r
-        reconnectAnimator->SetRepeat(true);\r
-        reconnectAnimator->SetSizeFixed(true);\r
-        group->Add(reconnectAnimator);\r
-    }\r
 }\r
 \r
-bd_addr_t BluetoothReconnectView::GetcurrentBdAddr(void)\r
-{\r
-    return currentBdAddr;\r
-}\r
-\r
-void BluetoothReconnectView::BtReconnectStart(void)\r
-{\r
-    // ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); //动画启动,常亮屏\r
-    ScreenTurnOn(20*1000);\r
-    reconnectAnimator->Start();\r
-    start_connect_timer();\r
-}\r
-\r
-void BluetoothReconnectView::BtReconnectStop(void)\r
-{\r
-    /* ---------------------------------- 取消定时器 --------------------------------- */\r
-    // ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);//动画停止,取消常亮屏\r
-    reconnectAnimator->Stop();\r
-    stop_connect_timer();\r
-}\r
-\r
-// 定时器回调函数\r
-static void ConnectTimerCallbackProc(int data)\r
-{\r
-    (void)data;\r
-    \r
-    MainBluetoothView *mainBluetoothView = MainBluetoothView::GetInstance();\r
-    if (mainBluetoothView == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainBluetoothView GetInstance fail");\r
-        return;\r
-    }\r
-    mainBluetoothView->ChangeView(BluetoothModel::GetInstance()->GetCurView(), TIPSCONNFAILMESSAGEVIEW);\r
-\r
-    TipsConnFailMessageView *tipsConnFailMessageView = TipsConnFailMessageView::GetInstance();\r
-    if (tipsConnFailMessageView == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ACLConnectionFail tipsConnFailMessageView GetInstance fail");\r
-        return;\r
-    }\r
-    BluetoothCaseInfo *bluetoothInfo_= BluetoothModel::GetInstance()->GetTempMacValue();\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "device name = %s",bluetoothInfo_->deviceName);\r
-    bd_addr_t addr;\r
-    (void)memcpy_s(addr.addr, BD_ADDR_LEN, bluetoothInfo_->addr, BD_ADDR_LEN);\r
-    tipsConnFailMessageView->RefreshNameLabel(addr);\r
-}\r
-\r
-static void ConnectTimerCallback(int data)\r
-{\r
-    GraphicService::GetInstance()->PostGraphicEvent(std::bind(ConnectTimerCallbackProc, data));\r
-}\r
-//开启第一个重连动画的定时器\r
-void BluetoothReconnectView::start_connect_timer()\r
-{\r
-    /*开启定时器*/\r
-    if (g_stopConnectHandle != nullptr)\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable g_stopConnectHandle != nullptr");\r
-        return;\r
-    }\r
-    g_stopConnectHandle = osTimerNew((osTimerFunc_t)ConnectTimerCallback, osTimerPeriodic, nullptr, nullptr);\r
-    if (g_stopConnectHandle == nullptr)\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable osTimerNew failed!!");\r
-        return;\r
-    }\r
-    uint32 tick = osMs2Tick(MS_CONN_TIME);\r
-    osStatus_t retTimer = osTimerStart(g_stopConnectHandle, tick);\r
-    if (retTimer != osOK)\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable osTimerStart failed, ret = %lx!!", retTimer);\r
-        if (g_stopConnectHandle != nullptr)\r
-        {\r
-            retTimer = osTimerDelete(g_stopConnectHandle);\r
-            if (retTimer != osOK)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable osTimerDelete  ret = %lx!!", retTimer);\r
-                return;\r
-            }\r
-            g_stopConnectHandle = nullptr;\r
-        }\r
-        return;\r
-    }\r
-}\r
-//停止定时器\r
-void BluetoothReconnectView::stop_connect_timer()\r
-{\r
-    if (g_stopConnectHandle != nullptr)\r
-    {\r
-        osTimerStop(g_stopConnectHandle);\r
-        osStatus_t ret = osTimerDelete(g_stopConnectHandle);\r
-        if (ret != osOK)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScanTimerCallback osTimerDelete failed, ret = %lx!!", ret);\r
-            return;\r
-        }\r
-        g_stopConnectHandle = nullptr;\r
-    }\r
-}\r
 }
\ No newline at end of file
index 92ff850..22e85a9 100644 (file)
@@ -11,7 +11,6 @@
 #ifdef __cplusplus\r
 extern "C" {\r
 #endif\r
-#include "custom_utils.h"\r
 \r
 static bool gatts_register_flag = false;\r
 static uint8_t gatts_server_id = 0;\r
@@ -202,10 +201,8 @@ void wrapper_gatts_start_service_callback(uint8_t server_id, uint16_t handle, er
                 callback.start_service_cb(server_id, handle, status);\r
             }\r
         }\r
-        // printf("wrapper_gatts_start_service_callback server_id %d,handle %d, status %x , g_svr_handle_list.size %d\r\n",server_id,handle,status,g_svr_handle_list.size());\r
         g_uuid_list.pop_front();\r
-               wrapper_gatts_service_start();\r
-        // do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_BLE_WRAPPERSTART,NULL,0);\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
@@ -304,36 +301,18 @@ errcode_t wrapper_gatts_add_service(uint8_t server_id, bt_uuid_t *service_uuid,
     g_uuid_list.push_back(*service_uuid);\r
     return ERRCODE_SUCC;\r
 }\r
-#include "debug_print.h"\r
-extern "C" void custom_ble_service_start(void);\r
+\r
 void wrapper_gatts_service_start(void)\r
 {\r
-    // printf("wrapper_gatts_service_start \n");\r
     if (!g_uuid_list.empty()) {\r
         bt_uuid_t &uuid = g_uuid_list.front();\r
-        bt_uuid_t uuid_tmp={0};\r
-        memcpy(&uuid_tmp,&uuid,sizeof(bt_uuid_t));\r
         // 服务异步添加,需要保证当前服务start后,再添加下一个服务\r
-               // g_uuid_list.pop_front();\r
-        errcode_t ret = gatts_add_service(gatts_server_id, &uuid_tmp, true);\r
-        // printf("wrapper_gatts_service_start gatts_add_service uuid len %x [0x%02X%02X],gatts_server_id %u, ret 0x%x, g_uuid_list.size %d\n",\r
-        //         uuid_tmp.uuid_len,uuid_tmp.uuid[0],uuid_tmp.uuid[1],gatts_server_id,ret,g_uuid_list.size());\r
-\r
+        (void)gatts_add_service(gatts_server_id, &uuid, true);\r
     } else {\r
         g_svr_handle_list.clear();\r
-        // printf("wrapper_gatts_service_start g_uuid_list empty,start adv \n");\r
-         /**开始ble广播*/\r
-        custom_ble_service_start();\r
     }\r
-    // printf("wrapper_gatts_service_start end\n");\r
-\r
-}\r
-void wrapper_gatts_clear_service(void)\r
-{\r
-    if (!g_uuid_list.empty()) g_uuid_list.clear();\r
-    if (!g_svr_handle_list.empty()) g_svr_handle_list.clear();\r
-    gatts_register_flag = false;\r
 }\r
+\r
 #ifdef __cplusplus\r
 }\r
 #endif\r
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/Bluetooyhpabpserver.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/Bluetooyhpabpserver.cpp
deleted file mode 100644 (file)
index b09d34d..0000000
+++ /dev/null
@@ -1,809 +0,0 @@
-/*
- * Copyright (c) @CompanyNameMagicTag 2022. All rights reserved.
- * Description: This module include test function of BT PBAP Service module.
- */
-
-#include "Bluetooyhpabpserver.h"
-#include <soc_osal.h>
-#include <td_base.h>
-#include "securec.h"
-#include "errcode.h"
-#include "bts_br_gap.h"
-#include "bts_pbap.h"
-// #include "sample_common.h"
-#include "debug_print.h"
-#include "graphic_service.h"
-#include "msg_center.h"
-#include "bts_def.h"
-#include "bts_gatt_stru.h"
-#include "bts_a2dp_source.h"
-#include "bts_gatt_server.h"
-#include "bts_le_gap.h"
-#include "bts_spp.h"
-#include "osal_task.h"
-#ifdef SUPPORT_BLE_SERVICE
-#include <bleEvent.h>
-#include "bleService.h"
-#endif
-#include "BluetoothModel.h"
-#include "CallerLogModel.h"
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-
-#define SAMPLE_PBAP_TASK_STACK_SIZE 0x400
-#define PBAP_APP_FOLDER_MAXLENGTH   40
-static bd_addr_t g_pbap_curr_addr;
-
-typedef enum {
-    PBAP_VCF_PB = 0,
-    PBAP_VCF_ICH,
-    PBAP_VCF_OCH,
-    PBAP_VCF_MCH,
-    PBAP_VCF_CCH,
-    PBAP_VCF_SPD,
-    PBAP_VCF_FAV,
-} pbap_vcf_files;
-
-static void sample_pbap_print_addr(const bd_addr_t *bd_addr)
-{
-    if (bd_addr != NULL) {
-        printf("addr: ****%02x%02x%02x%02x ",
-            bd_addr->addr[3], bd_addr->addr[2], bd_addr->addr[1], bd_addr->addr[0]); /* addr 下标 3 2 1 0 */
-    }
-}
-
-static void sample_pbap_conn_state(const bd_addr_t *bd_addr, profile_connect_state_t state)
-{
-    sample_pbap_print_addr(bd_addr);
-    printf("sample_pbap_conn_state %d\n", state);
-    if(state==PROFILE_STATE_CONNECTED)
-    {
-        uapi_pbap_cmd_pull_phonebook();
-    }
-    return;
-}
-//接收数据回调
-static void sample_pbap_receive_data(const bd_addr_t *bd_addr, const uint8_t* data, int32_t len)
-{
-    sample_pbap_print_addr(bd_addr);
-
-    printf("receive %d bytes(%s)\n", len, data);
-    if(strstr((char*)data,"vcard-listing.dtd"))
-    {
-        if(strstr((char*)data,"name"))
-        {
-            char * name_str=strstr((char*)data,"name");
-            char *name_=strtok(name_str,"\"");
-            name_=strtok(NULL,"\"");
-            OHOS:: CallerLogModel::GetInstance()->Setphonebname(name_,strlen(name_));
-            printf("name_ : %s\r\n",name_);
-             GraphicService::GetInstance()->PostGraphicEvent( 
-                std::bind(calllognameupdate));
-
-             
-        }
-      
-    }
-
-    return;
-}
-
-//传输完成回调
-static void sample_pbap_transfer_complete(const bd_addr_t *bd_addr)
-{
-    sample_pbap_print_addr(bd_addr);
-    printf("\n");
-    return;
-}
-
-static void sample_pbap_get_phonebook_size(const bd_addr_t *bd_addr, uint16_t size)
-{
-    sample_pbap_print_addr(bd_addr);
-
-    printf("%u\n", size);
-    return;
-}
-
-typedef struct {
-    uint32_t bts_code;
-    td_char print_message[20]; /* 字符串长度20 */
-} sample_pbap_code_print;
-
-static sample_pbap_code_print g_pbap_error_pair[] = {
-    {PBAP_ERROR_OK, "OK"},
-    {PBAP_ERROR_BAD_REQUEST, "BAD REQUEST"},
-    {PBAP_ERROR_NOT_IMPLEMENTED, "NOT IMPLEMENTED"},
-    {PBAP_ERROR_UNAUTHORIZED, "UNAUTHORIZED"},
-    {PBAP_ERROR_PRECONDITION_FAILED, "PRECONDITION FAILED"},
-    {PBAP_ERROR_NOT_FOUND, "NOT FOUND"},
-    {PBAP_ERROR_NOT_ACCEPTABLE, "NOT ACCEPTABLE"},
-    {PBAP_ERROR_SERVICE_UNAVAILABLE, "SERVICE UNAVAILABLE"},
-    {PBAP_ERROR_FORBIDDEN, "FORBIDDEN"},
-};
-
-static td_char* sample_pbap_print_error(uint32_t code)
-{
-    for (uint32_t i = 0; i < sizeof(g_pbap_error_pair) / sizeof(g_pbap_error_pair[0]); i++) {
-        if (code == g_pbap_error_pair[i].bts_code) {
-            return g_pbap_error_pair[i].print_message;
-        }
-    }
-    return NULL;
-}
-
-static void sample_pbap_handle_error_code(const bd_addr_t *bd_addr, int32_t code)
-{
-    sample_pbap_print_addr(bd_addr);
-    printf("0x%x %s\n", code, sample_pbap_print_error((uint32_t)code));
-}
-
-static bool sample_pbap_is_null_pointer(uint16_t sample_mode, uint8_t index)
-{
-    return ((sample_mode & (1 << index)) != 0);
-}
-
-/* 蓝牙电话簿注册回调 */
-void uapi_pbap_pce_reg_callback(void)
-{
-    errcode_t ret = ERRCODE_BT_SUCCESS;
-    pbap_pce_callbacks_t callbacks = {
-        sample_pbap_conn_state,
-        sample_pbap_get_phonebook_size,
-        sample_pbap_transfer_complete,
-        sample_pbap_receive_data,
-        sample_pbap_handle_error_code,
-    };
-    ret = (errcode_t)pbap_pce_register_callbacks(&callbacks);
-    printf("uapi_pbap_pce_reg_callback ret=0x%x\n", ret);
-}
-
-
-
-static int32_t sample_pbap_connect_task_body(const void *bd_addr)
-{
-    uint32_t result = (uint32_t)pbap_pce_connect((bd_addr_t*)bd_addr);
-    if (result != ERRCODE_BT_SUCCESS) {
-        printf("Connect to PBAP service failed\n");
-    }
-    printf("sample_pbap_connect_task_body [Line: %d] finish, result: 0x%x!\n", __LINE__, result);
-    return 0;
-}
-
-static void sample_pbap_create_conn_task(const bd_addr_t *bd_addr)
-{
-    osal_task *task = osal_kthread_create((osal_kthread_handler)sample_pbap_connect_task_body, (void *)bd_addr, "sample_pbap_connect_task",
-        SAMPLE_PBAP_TASK_STACK_SIZE);
-    if (task == NULL) {
-        printf("create task fail\n");
-        return;
-    }
-}
-
-/* start a pbap client */
- void uapi_pbap_cmd_start_client()
-{
-    // if (params_cnt != 2) { /* 2个参数 */
-    //     printf("params cnt err: %d!\n", params_cnt);
-    //     return;
-    // }
-
-    // uint32_t sample_mode;
-    // if (sscanf_s(params[0], "%x", &sample_mode) <= 0) {
-    //     printf("get sample_mode fail\n");
-    //     return;
-    // }
-    // bd_addr_t* bd_addr = NULL;
-    // if (!sample_pbap_is_null_pointer((uint16_t)sample_mode, 0)) {
-    //     bd_addr = sample_pbap_parse_addr(params[1]);
-    bd_addr_t bdaddr={0};
-    OHOS::uapi_get_br_address(&bdaddr);
-    // }
-    sample_pbap_create_conn_task((const bd_addr_t*)&bdaddr);
-}
-
-void uapi_pbap_cmd_stop_client()
-{
-    bd_addr_t bdaddr={0};
-    OHOS::uapi_get_br_address(&bdaddr);
-
-    uint32_t ret = (uint32_t)pbap_pce_disconnect(&bdaddr);
-    printf("[Line: %d] finish, ret: %u\n", __LINE__, ret);
-}
-
-static int32_t sample_pbap_set_folder_vcf(uint8_t* name, uint8_t vcf, bool is_pull_phone_book)
-{
-    if (name == NULL) {
-        return -1;
-    }
-    switch (vcf) {
-        case PBAP_VCF_PB: /* Main Phone book */
-            (void)strcat_s((char *)name, PBAP_APP_FOLDER_MAXLENGTH, "pb");
-            break;
-        case PBAP_VCF_ICH: /* Incoming Calls History */
-            (void)strcat_s((char *)name, PBAP_APP_FOLDER_MAXLENGTH, "ich");
-            break;
-        case PBAP_VCF_OCH: /* Outgoing Calls History */
-            (void)strcat_s((char *)name, PBAP_APP_FOLDER_MAXLENGTH, "och");
-            break;
-        case PBAP_VCF_MCH: /* Missed Calls History */
-            (void)strcat_s((char *)name, PBAP_APP_FOLDER_MAXLENGTH, "mch");
-            break;
-        case PBAP_VCF_CCH: /* Combined Calls History */
-            (void)strcat_s((char *)name, PBAP_APP_FOLDER_MAXLENGTH, "cch");
-            break;
-        case PBAP_VCF_SPD: /* Speed Dial */
-            (void)strcat_s((char *)name, PBAP_APP_FOLDER_MAXLENGTH, "spd");
-            break;
-        case PBAP_VCF_FAV: /* Favorite Contacts */
-            (void)strcat_s((char *)name, PBAP_APP_FOLDER_MAXLENGTH, "fav");
-            break;
-        default:
-            printf("no vcf file be seleted.\n");
-            return -1;
-    }
-    if (is_pull_phone_book) {
-        (void)strcat_s((char *)name, PBAP_APP_FOLDER_MAXLENGTH, ".vcf");
-    }
-    return 0;
-}
-
-static void sample_pbap_filter_composer(uint8_t filter[PBAP_MASK_LEN], uint8_t flag)
-{
-    uint8_t *temp = NULL;
-    uint8_t bytes = 0;
-    uint8_t bits = 0;
-
-    if (filter && (flag < 64)) { /* flag最大值64 */
-        bytes = (uint8_t)(flag >> 3); /* 右移3位判断填入哪个字节 */
-        bits = (uint8_t)(flag & 0x07); /* 求余数判断填入哪一位 */
-        temp = filter + PBAP_MASK_LEN - 1 - bytes;
-        *temp |= (1 << bits);
-    }
-}
-
-static void sample_pbap_set_property(uint8_t pro_arr[PBAP_MASK_LEN], uint32_t property)
-{
-    uint8_t cur_bit = 0;
-    uint32_t temp = property;
-    while (temp != 0) {
-        if ((temp & 0x01) != 0) {
-            sample_pbap_filter_composer(pro_arr, cur_bit);
-        }
-        temp = temp >> 1;
-        cur_bit++;
-    }
-}
-
-static bool sample_pbap_set_pull_phone_book_name(uint8_t folder, uint8_t vcf, uint8_t* name)
-{
-    if (name == NULL) {
-        printf("empty name.\n");
-        return false;
-    }
-    if (folder == PBAP_REPOSITORY_LOCAL) {
-        (void)strcpy_s((char *)name, PBAP_APP_FOLDER_MAXLENGTH, "telecom/");
-    } else if (folder == PBAP_REPOSITORY_SIM) {
-        (void)strcpy_s((char *)name, PBAP_APP_FOLDER_MAXLENGTH, "SIM1/telecom/");
-    } else {
-        printf("no folder be seleted.\n");
-        return false;
-    }
-
-    if (sample_pbap_set_folder_vcf(name, vcf, true) != 0) {
-        return false;
-    }
-    return true;
-}
-
-static bool wstp_pbap_check_param_valid(
-    uint8_t folder, uint8_t vcf, uint16_t max_list_count, uint16_t list_offset, uint8_t format)
-{
-    // bts_unused(max_list_count);
-    // bts_unused(list_offset);
-    bool res = true;
-    if (folder == 1) { /* folder 1 */
-        if (vcf > 6) { /* vcf num 6 */
-            res = false;
-        }
-    } else if (folder == 2) { /* folder 2 */
-        if (vcf > 4) { /* vcf num 4 */
-            res = false;
-        }
-    } else {
-        res = false;
-    }
-
-    if (format > 1) {
-        res = false;
-    }
-
-    return res;
-}
-//PBAP_VCF_PB 10 1  0
-/* get phone book */
-void uapi_pbap_cmd_pull_phonebook()
-{
-    printf("uapi_pbap_cmd_pull_phonebook\n");
-    uint8_t folder=PBAP_REPOSITORY_LOCAL;//写死只拿手机的,不拿SIM卡的
-    uint8_t vcf=PBAP_VCF_PB;//写死 电话簿
-    uint16_t max_list_count=0xFFFF;//最大数量
-    uint16_t list_offset=0;
-    uint8_t format=1;//编码格式
-
-    if (!wstp_pbap_check_param_valid(folder, vcf, max_list_count, list_offset, format)) {
-        printf("pbap param invalid\n");
-        return;
-    }
-
-    pbap_pce_pull_phone_book_param_t *thr_par =
-        (pbap_pce_pull_phone_book_param_t*)(void *)malloc(sizeof(pbap_pce_pull_phone_book_param_t));
-    if (thr_par == NULL) {
-        printf("pbap param malloc failed\n");
-        return;
-    }
-    (void)memset_s(thr_par, sizeof(pbap_pce_pull_phone_book_param_t), 0, sizeof(pbap_pce_pull_phone_book_param_t));
-    thr_par->name = (unsigned char *)(void *)malloc(PBAP_APP_FOLDER_MAXLENGTH);
-    if (thr_par->name == NULL) {
-        printf("pbap name malloc failed\n");
-        free(thr_par);
-        return;
-    }
-    (void)memset_s(thr_par->name, PBAP_APP_FOLDER_MAXLENGTH, 0, PBAP_APP_FOLDER_MAXLENGTH);
-    /* 为0时代表查询对应记录大小 */
-    thr_par->max_list_count = max_list_count;
-    thr_par->list_offset = list_offset;
-    thr_par->format = format;
-    uint32_t property =PBAP_PROPERTY_MASK_TEL | PBAP_PROPERTY_MASK_FN|PBAP_PROPERTY_MASK_UID;
-    sample_pbap_set_property(thr_par->property_selector, property);
-    uint8_t filter = 0;
-    if (filter != 0) {
-        sample_pbap_filter_composer(thr_par->property_selector, PBAP_PROPERTY_MASK_FILTER);
-    }
-
-    if (sample_pbap_set_pull_phone_book_name(folder, vcf, thr_par->name)) {
-        printf("pbap_pce_pull_phone_book name=%s\n", thr_par->name);
-        pbap_pce_pull_phone_book(NULL, thr_par);
-    }
-    free(thr_par->name);
-    free(thr_par);
-}
-
-/* get phone book */
-static void sample_pbap_cmd_pull_phonebook(const char **params, int32_t params_cnt)
-{
-    // if (params_cnt != 9) { /* 9个参数 */
-    //     printf("params cnt err: %d!\n", params_cnt);
-    //     return;
-    // }
-
-    // uint32_t sample_mode;
-    // if (sscanf_s(params[0], "%x", &sample_mode) <= 0) {
-    //     printf("get sample_mode fail\n");
-    //     return;
-    // }
-    // bd_addr_t* bd_addr = NULL;
-    // if (!sample_pbap_is_null_pointer((uint16_t)sample_mode, 0)) {
-    //     bd_addr = sample_pbap_parse_addr(params[1]);
-    // }
-
-    // if (pbap_pce_get_device_connect_state(bd_addr) != PROFILE_STATE_CONNECTED) {
-    //     printf("No PBAP connection selected!\n");
-    //     return;
-    // }
-    // pbap_pce_pull_phone_book_param_t *thr_par =
-    //     (pbap_pce_pull_phone_book_param_t*)(void *)bt_os_new(sizeof(pbap_pce_pull_phone_book_param_t));
-    // if (thr_par == NULL) {
-    //     printf("pbap param malloc failed\n");
-    //     return;
-    // }
-    // (void)memset_s(thr_par, sizeof(pbap_pce_pull_phone_book_param_t), 0, sizeof(pbap_pce_pull_phone_book_param_t));
-    // thr_par->name = (unsigned char *)(void *)bt_os_new(PBAP_APP_FOLDER_MAXLENGTH);
-    // if (thr_par->name == NULL) {
-    //     printf("pbap name malloc failed\n");
-    //     bt_os_free(thr_par);
-    //     return;
-    // }
-    // (void)memset_s(thr_par->name, PBAP_APP_FOLDER_MAXLENGTH, 0, PBAP_APP_FOLDER_MAXLENGTH);
-    // thr_par->max_list_count = (unsigned short)atoi(params[4]); /* index = 4 */
-    // thr_par->list_offset = (unsigned short)atoi(params[5]); /* index = 5 */
-    // thr_par->format = (unsigned char)atoi(params[6]); /* index = 6 */
-    // uint32_t property = (uint32_t)atoi(params[7]); /* index = 7 */
-    // sample_pbap_set_property(thr_par->property_selector, property);
-    // int filter = atoi(params[8]); /* index = 8 */
-    // if (filter != 0) {
-    //     sample_pbap_filter_composer(thr_par->property_selector, PBAP_PROPERTY_MASK_FILTER);
-    // }
-
-    // uint8_t folder = (uint8_t)atoi(params[2]); /* index = 2 */
-    // uint8_t vcf = (uint8_t)atoi(params[3]); /* index = 3 */
-    // if (sample_pbap_set_pull_phone_book_name(folder, vcf, thr_par->name)) {
-    //     pbap_pce_pull_phone_book(bd_addr, thr_par);
-    // }
-    // bt_os_free(thr_par->name);
-    // bt_os_free(thr_par);
-}
-
-static bool sample_pbap_set_vcard_listing_name(bd_addr_t* bd_addr, uint8_t folder, uint8_t vcf, uint8_t* name)
-{
-    printf("folder=%u vcf=%u\n", folder, vcf);
-    uint8_t tel_name[8] = "telecom";
-    uint8_t sim_name[5] = "SIM1";
-    if (name == NULL) {
-        printf("empty name.\n");
-        return false;
-    }
-    uint32_t ret = (uint32_t)pbap_pce_set_phone_book(bd_addr, NULL);
-    if (ret != ERRCODE_BT_SUCCESS) {
-        printf("0x%x %s\n", ret, sample_pbap_print_error(ret));
-        return false;
-    }
-    if (folder == PBAP_REPOSITORY_LOCAL) {
-        ret = (uint32_t)pbap_pce_set_phone_book(bd_addr, tel_name);
-        if (ret != ERRCODE_BT_SUCCESS) {
-            printf("0x%x %s\n", ret, sample_pbap_print_error(ret));
-            return false;
-        }
-    } else if (folder == PBAP_REPOSITORY_SIM) {
-        ret = (uint32_t)pbap_pce_set_phone_book(bd_addr, sim_name);
-        if (ret != ERRCODE_BT_SUCCESS) {
-            printf("0x%x %s\n", ret, sample_pbap_print_error(ret));
-            return false;
-        }
-        ret = (uint32_t)pbap_pce_set_phone_book(bd_addr, tel_name);
-        if (ret != ERRCODE_BT_SUCCESS) {
-            printf("0x%x %s\n", ret, sample_pbap_print_error(ret));
-            return false;
-        }
-    } else {
-        printf("no folder be seleted.\n");
-        return false;
-    }
-    if (sample_pbap_set_folder_vcf(name, vcf, false)) {
-        return false;
-    }
-    return true;
-}
-
-/* get phone vCard-Listing */
-void uapi_pbap_cmd_pull_vcard_listing(unsigned char *tell,uint8_t len)
-{
-    uint8_t folder=1;
-    uint8_t vcf=PBAP_VCF_PB;
-    uint16_t max_list_count=0xffff;
-    uint16_t list_offset=0;
-    uint8_t order=0;
-
-    OHOS:: CallerLogModel::GetInstance()->Setphonebname("",0);
-
-    OHOS:: CallerLogModel::GetInstance()->Setphonenumber((char *)tell,len);
-    
-    unsigned char *tell_=(unsigned char *)malloc(len+1);
-    if(tell_==NULL)
-    {
-        return;
-    }
-    memset_s(tell_,30,0,len);
-    memcpy_s(tell_,30,tell,len);
-
-    if (!wstp_pbap_check_param_valid(folder, vcf, max_list_count, list_offset, 0)) {
-        printf("pbap param invalid\n");
-        return;
-    }
-
-    bd_addr_t* bd_addr = NULL;
-
-    pbap_pce_pull_vcard_listing_param_t *thr_par =
-        (pbap_pce_pull_vcard_listing_param_t*)(void *)malloc(sizeof(pbap_pce_pull_vcard_listing_param_t));
-    if (thr_par == NULL) {
-        printf("pbap param malloc failed\n");
-        free(tell_); 
-        return;
-    }
-
-    (void)memset_s(
-        thr_par, sizeof(pbap_pce_pull_vcard_listing_param_t), 0, sizeof(pbap_pce_pull_vcard_listing_param_t));
-    thr_par->name = (uint8_t *)(void *)malloc(PBAP_APP_FOLDER_MAXLENGTH);
-    if (thr_par->name == NULL) {
-        printf("pbap param name malloc failed\n");
-        free(thr_par);
-         free(tell_); 
-        return;
-    }
-    (void)memset_s(thr_par->name, PBAP_APP_FOLDER_MAXLENGTH, 0, PBAP_APP_FOLDER_MAXLENGTH);
-
-    thr_par->search_property=PBAP_SEARCH_PROPERTY_NUMBER;
-    thr_par->search_value=tell_;
-    thr_par->max_list_count = max_list_count;
-    thr_par->list_offset = list_offset; /* index = 5 */
-    /* 0:索引序 1:字典序 */
-    thr_par->order = order;
-
-    if (sample_pbap_set_vcard_listing_name(bd_addr, folder, vcf, thr_par->name)) {
-        printf("pbap_pce_pull_vcard_listing name=%s\n", thr_par->name);
-        pbap_pce_pull_vcard_listing(bd_addr, thr_par);
-    }
-    free(thr_par->name);
-    free(thr_par);
-    free(tell_); 
-}
-
-/* get phone vCard-Listing */
-static void sample_pbap_cmd_pull_vcard_listing(const char **params, int32_t params_cnt)
-{
-    // if (params_cnt != 7) { /* 7个参数 */
-    //     printf("params cnt err: %d!\n", params_cnt);
-    //     return;
-    // }
-
-    // uint32_t sample_mode;
-    // if (sscanf_s(params[0], "%x", &sample_mode) <= 0) {
-    //     printf("get sample_mode fail\n");
-    //     return;
-    // }
-    // bd_addr_t* bd_addr = NULL;
-    // if (!sample_pbap_is_null_pointer((uint16_t)sample_mode, 0)) {
-    //     bd_addr = sample_pbap_parse_addr(params[1]);
-    // }
-
-    // if (pbap_pce_get_device_connect_state(bd_addr) != PROFILE_STATE_CONNECTED) {
-    //     printf("No PBAP connection selected!\n");
-    //     return;
-    // }
-
-    // pbap_pce_pull_vcard_listing_param_t *thr_par =
-    //     (pbap_pce_pull_vcard_listing_param_t*)(void *)bt_os_new(sizeof(pbap_pce_pull_vcard_listing_param_t));
-    // if (thr_par == NULL) {
-    //     printf("pbap param malloc failed\n");
-    //     return;
-    // }
-
-    // (void)memset_s(
-    //     thr_par, sizeof(pbap_pce_pull_vcard_listing_param_t), 0, sizeof(pbap_pce_pull_vcard_listing_param_t));
-    // thr_par->name = (uint8_t *)(void *)bt_os_new(PBAP_APP_FOLDER_MAXLENGTH);
-    // if (thr_par->name == NULL) {
-    //     printf("pbap param name malloc failed\n");
-    //     bt_os_free(thr_par);
-    //     return;
-    // }
-    // (void)memset_s(thr_par->name, PBAP_APP_FOLDER_MAXLENGTH, 0, PBAP_APP_FOLDER_MAXLENGTH);
-    // uint8_t folder = (uint8_t)atoi(params[2]); /* index = 2 */
-    // uint8_t vcf = (uint8_t)atoi(params[3]); /* index = 3 */
-    // thr_par->max_list_count = (unsigned short)atoi(params[4]); /* index = 4 */
-    // thr_par->list_offset = (unsigned short)atoi(params[5]); /* index = 5 */
-    // thr_par->order = (unsigned char)atoi(params[6]); /* index = 6 */
-
-    // if (sample_pbap_set_vcard_listing_name(bd_addr, folder, vcf, thr_par->name)) {
-    //     pbap_pce_pull_vcard_listing(bd_addr, thr_par);
-    // }
-    // bt_os_free(thr_par->name);
-    // bt_os_free(thr_par);
-}
-
-static bool sample_pbap_set_vcard_entry_name(
-    bd_addr_t *bd_addr, uint8_t folder, uint8_t vcf, const td_char *vcf_name, uint8_t *name)
-{
-    if (name == NULL) {
-        printf("empty name.\n");
-        return false;
-    }
-    uint8_t tel_name[8] = "telecom";
-    uint8_t sim_name[5] = "SIM1";
-    uint32_t ret = (uint32_t)pbap_pce_set_phone_book(bd_addr, NULL);
-    if (ret != ERRCODE_BT_SUCCESS) {
-        printf("0x%x %s\n", ret, sample_pbap_print_error(ret));
-        return false;
-    }
-    if (folder == PBAP_REPOSITORY_LOCAL) {
-        ret = (uint32_t)pbap_pce_set_phone_book(bd_addr, tel_name);
-        if (ret != ERRCODE_BT_SUCCESS) {
-            printf("0x%x %s\n", ret, sample_pbap_print_error(ret));
-            return false;
-        }
-    } else if (folder == PBAP_REPOSITORY_SIM) {
-        ret = (uint32_t)pbap_pce_set_phone_book(bd_addr, sim_name);
-        if (ret != ERRCODE_BT_SUCCESS) {
-            printf("0x%x %s\n", ret, sample_pbap_print_error(ret));
-            return false;
-        }
-        ret = (uint32_t)pbap_pce_set_phone_book(bd_addr, tel_name);
-        if (ret != ERRCODE_BT_SUCCESS) {
-            printf("0x%x %s\n", ret, sample_pbap_print_error(ret));
-            return false;
-        }
-    } else {
-        printf("no folder be seleted.\n");
-        return false;
-    }
-   if (sample_pbap_set_folder_vcf(name, vcf, false)) {
-        return false;
-    } else {
-        ret = (uint32_t)pbap_pce_set_phone_book(bd_addr, name);
-        if (ret != ERRCODE_BT_SUCCESS) {
-            printf("0x%x %s\n", ret, sample_pbap_print_error(ret));
-            return false;
-        }
-    }
-
-    if (strcpy_s((char *)name, PBAP_APP_FOLDER_MAXLENGTH, vcf_name) != EOK) {
-        printf("strcpy_s vcf_name fail\n");
-        return false;
-    }
-    return true;
-}
-
-/* get phone vCard-Entry */
-void uapi_pbap_cmd_pull_vcard_entry(td_char *vcf_name)
-{
-    printf("uapi_pbap_cmd_pull_vcard_entry: %s\r\n",vcf_name);
-    bd_addr_t bdaddr={0};
-    OHOS::uapi_get_br_address(&bdaddr);
-
-    uint8_t format=1;
-    uint8_t vcf=PBAP_VCF_PB;
-    uint8_t folder=1;
-    if (!wstp_pbap_check_param_valid(folder, vcf, 0, 0, format)) {
-        printf("pbap param invalid\n");
-        return;
-    }
-
-    pbap_pce_pull_vcard_entry_param_t *thr_par =
-        (pbap_pce_pull_vcard_entry_param_t*)(void *)malloc(sizeof(pbap_pce_pull_vcard_entry_param_t));
-    if (thr_par == NULL) {
-        printf("pbap param malloc failed\n");
-        return;
-    }
-    (void)memset_s(thr_par, sizeof(pbap_pce_pull_vcard_entry_param_t), 0, sizeof(pbap_pce_pull_vcard_entry_param_t));
-    thr_par->name = (uint8_t*)(void *)malloc(PBAP_APP_FOLDER_MAXLENGTH);
-    if (thr_par->name == NULL) {
-        printf("pbap param name malloc failed\n");
-        free(thr_par);
-        return;
-    }
-    (void)memset_s(thr_par->name, PBAP_APP_FOLDER_MAXLENGTH, 0, PBAP_APP_FOLDER_MAXLENGTH);
-
-    thr_par->format = format; /* index = 5 */
-    uint32_t property = PBAP_PROPERTY_MASK_TEL | PBAP_PROPERTY_MASK_FN; /* index = 6 */
-    sample_pbap_set_property(thr_par->property_selector, property);
-    uint8_t filter = 0; /* index = 7 */
-    if (filter != 0) {
-        sample_pbap_filter_composer(thr_par->property_selector, PBAP_PROPERTY_MASK_FILTER);
-    }
-
-    if (sample_pbap_set_vcard_entry_name(&bdaddr, folder, vcf, vcf_name, thr_par->name)) {
-        pbap_pce_pull_vcard_entry(&bdaddr, thr_par);
-    }
-    free(thr_par->name);
-    free(thr_par);
-    printf("uapi_pbap_cmd_pull_vcard_entry\n");
-}
-
-/* get phone vCard-Entry */
-static void sample_pbap_cmd_pull_vcard_entry(const char **params, int32_t params_cnt)
-{
-    // if (params_cnt != 8) { /* 8个参数 */
-    //     printf("params cnt err: %d!\n", params_cnt);
-    //     return;
-    // }
-
-    // uint32_t sample_mode;
-    // if (sscanf_s(params[0], "%x", &sample_mode) <= 0) {
-    //     printf("get sample_mode fail\n");
-    //     return;
-    // }
-    // bd_addr_t* bd_addr = NULL;
-    // if (!sample_pbap_is_null_pointer((uint16_t)sample_mode, 0)) {
-    //     bd_addr = sample_pbap_parse_addr(params[1]);
-    // }
-
-    // if (pbap_pce_get_device_connect_state(bd_addr) != PROFILE_STATE_CONNECTED) {
-    //     printf("No PBAP connection selected!\n");
-    //     return;
-    // }
-
-    // pbap_pce_pull_vcard_entry_param_t *thr_par =
-    //     (pbap_pce_pull_vcard_entry_param_t*)(void *)bt_os_new(sizeof(pbap_pce_pull_vcard_entry_param_t));
-    // if (thr_par == NULL) {
-    //     printf("pbap param malloc failed\n");
-    //     return;
-    // }
-    // (void)memset_s(thr_par, sizeof(pbap_pce_pull_vcard_entry_param_t), 0, sizeof(pbap_pce_pull_vcard_entry_param_t));
-    // thr_par->name = (uint8_t*)(void *)bt_os_new(PBAP_APP_FOLDER_MAXLENGTH);
-    // if (thr_par->name == NULL) {
-    //     printf("pbap param name malloc failed\n");
-    //     bt_os_free(thr_par);
-    //     return;
-    // }
-    // (void)memset_s(thr_par->name, PBAP_APP_FOLDER_MAXLENGTH, 0, PBAP_APP_FOLDER_MAXLENGTH);
-    // thr_par->format = (unsigned char)atoi(params[5]); /* index = 5 */
-    // uint32_t property = (uint32_t)atoi(params[6]); /* index = 6 */
-    // sample_pbap_set_property(thr_par->property_selector, property);
-    // int filter = atoi(params[7]); /* index = 7 */
-    // if (filter != 0) {
-    //     sample_pbap_filter_composer(thr_par->property_selector, PBAP_PROPERTY_MASK_FILTER);
-    // }
-    // uint8_t folder = (uint8_t)atoi(params[2]); /* index = 2 */
-    // uint8_t vcf = (uint8_t)atoi(params[3]); /* index = 3 */
-    // const td_char* vcf_name = params[4]; /* index = 4 */
-
-    // if (sample_pbap_set_vcard_entry_name(bd_addr, folder, vcf, vcf_name, thr_par->name)) {
-    //     pbap_pce_pull_vcard_entry(bd_addr, thr_par);
-    // }
-    // bt_os_free(thr_par->name);
-    // bt_os_free(thr_par);
-}
-
-/* pbap abort operation */
- void uapi_pbap_cmd_stop_trans(void)
-{
-
-    bd_addr_t bdaddr={0};
-    OHOS::uapi_get_br_address(&bdaddr);
-
-    if (pbap_pce_get_device_connect_state(&bdaddr) != PROFILE_STATE_CONNECTED) {
-        printf("No PBAP connection selected!\n");
-        return;
-    }
-    uint32_t result = (uint32_t)pbap_pce_stop_trans(&bdaddr);
-    printf("[Line: %d] finish, ret: 0x%x\n", __LINE__, result);
-}
-
-/* pbap get connect status */
-void uapi_pbap_amd_get_conn_state(void)
-{
-    bd_addr_t bdaddr={0};
-    OHOS::uapi_get_br_address(&bdaddr);
-
-    uint32_t result = (uint32_t)pbap_pce_get_device_connect_state(&bdaddr);
-    printf("[Line: %d] finish, conn state: 0x%x\n", __LINE__, result);
-}
-
-/* PBAP service test cmd id */
-typedef enum {
-    SAMPLE_PBAP_CMD_REG_CALLBACK,       /* 注册回调 */
-    SAMPLE_PBAP_CMD_START_CLIENT,       /* 启动PBAP客户端 */
-    SAMPLE_PBAP_CMD_STOP_CLIENT,        /* 关闭PBAP客户端 */
-    SAMPLE_PBAP_CMD_PULL_PHONEBOOK,     /* 下载电话簿 */
-    SAMPLE_PBAP_CMD_PULL_VCARD_LISTING, /* 下载vcard列表 */
-    SAMPLE_PBAP_CMD_PULL_VCARD_ENTRY,   /* 下载vcard条目 */
-    SAMPLE_PBAP_CMD_STOP_TRANS,         /* 中断传输 */
-    SAMPLE_PBAP_CMD_GET_CONN_STATE,     /* 获取连接状态 */
-} sample_pbap_cmd_id;
-
-typedef void (*pbap_sample_cmd_handle_func)(const char **params, int32_t params_cnt);
-
-typedef struct {
-    sample_pbap_cmd_id id;
-    pbap_sample_cmd_handle_func func;
-} sample_pbap_hdl_info;
-
-// sample_pbap_hdl_info g_sample_pbap_hdls[] = {
-//     { SAMPLE_PBAP_CMD_REG_CALLBACK, sample_pbap_cmd_reg_callback },
-//     { SAMPLE_PBAP_CMD_START_CLIENT, sample_pbap_cmd_start_client },
-//     { SAMPLE_PBAP_CMD_STOP_CLIENT, sample_pbap_cmd_stop_client },
-//     { SAMPLE_PBAP_CMD_PULL_PHONEBOOK, sample_pbap_cmd_pull_phonebook },
-//     { SAMPLE_PBAP_CMD_PULL_VCARD_LISTING, sample_pbap_cmd_pull_vcard_listing },
-//     { SAMPLE_PBAP_CMD_PULL_VCARD_ENTRY, sample_pbap_cmd_pull_vcard_entry },
-//     { SAMPLE_PBAP_CMD_STOP_TRANS, sample_pbap_cmd_stop_trans },
-//     { SAMPLE_PBAP_CMD_GET_CONN_STATE, sample_pbap_amd_get_conn_state },
-// };
-
-// void bt_pbap_service_sample_cmd(uint32_t cmd_id, const char **params, int32_t params_cnt)
-// {
-//     printf("id: %u\n", cmd_id);
-//     uint32_t hdl_cnt = sizeof(g_sample_pbap_hdls) / sizeof(sample_pbap_hdl_info);
-//     for (uint32_t i = 0; i < hdl_cnt; i++) {
-//         if (g_sample_pbap_hdls[i].id == cmd_id) {
-//             g_sample_pbap_hdls[i].func(params, params_cnt);
-//             return;
-//         }
-//     }
-//     printf("invalid cmd_id = %d \n", cmd_id);
-// }
-
-#ifdef  __cplusplus
-}
-#endif
-
index bd59fb6..5e1ca89 100644 (file)
@@ -57,9 +57,6 @@ MainBluetoothView *MainBluetoothView::GetInstance()
 \r
 void MainBluetoothView::OnStart()\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::~OnStart");\r
-   \r
-\r
     BluetoothModel *bluetoothModel = BluetoothModel::GetInstance();\r
     if (bluetoothModel == nullptr) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::InitView bluetoothModel nullptr err");\r
@@ -72,16 +69,14 @@ void MainBluetoothView::OnStart()
     int16_t unusedValue = BLUETOOTHEVIEW_MAX;\r
     bool ret = bluetoothCaseList.IsEmpty();\r
     if (!ret) {\r
-        ChangeView(unusedValue, BLUETOOTHDEVICELISTVIEW); //已连接设备列表不为空 ->切换到“已连接过的蓝牙设备列表视图”\r
+        ChangeView(unusedValue, BLUETOOTHDEVICELISTVIEW);\r
     } else {\r
-        ChangeView(unusedValue, BLUETOOTHEARPHONEVIEW);//若一个都没有连接过就进行搜索\r
+        ChangeView(unusedValue, BLUETOOTHEARPHONEVIEW);\r
     }\r
-   RootView::GetInstance()->Invalidate();\r
+    Draw();\r
     return;\r
 }\r
 \r
-\r
-/*跳转到已连接过的蓝牙设备列表视图*/\r
 bool MainBluetoothView::ChangeBluetoothDeviceListView(int16_t hideView, int16_t thisView)\r
 {\r
     UNUSED(hideView);\r
@@ -92,26 +87,24 @@ bool MainBluetoothView::ChangeBluetoothDeviceListView(int16_t hideView, int16_t
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothDeviceListView new fail");\r
             return false;\r
         }\r
-        UIViewGroup *group = bluetoothDeviceListView->CreateBluetoothDeviceListView();\r
+        // init view\r
+        UIViewGroup *group = bluetoothDeviceListView->InitShowUpView();\r
         if (group == nullptr) {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Device group nullptr fail");\r
             return false;\r
         }\r
         container[thisView] = group;\r
-       RootView::GetInstance()->Add(container[thisView]);\r
-    } \r
-    // else {\r
-    //     // 刷新列表\r
-    //     UIList *deviceList = bluetoothDeviceListView->GetDeviceUIList();\r
-    //     if (deviceList == nullptr) {\r
-    //         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick deviceList nullptr");\r
-    //         return false;\r
-    //     }\r
-    //     deviceList->RefreshList();\r
-    // }\r
-    if(bluetoothDeviceListView) {\r
-        bluetoothDeviceListView->RefreshBluetoothDeviceListView();\r
+        AddViewToRootContainer(container[thisView]);\r
+    } else {\r
+        // 刷新列表\r
+        UIList *deviceList = bluetoothDeviceListView->GetDeviceUIList();\r
+        if (deviceList == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick deviceList nullptr");\r
+            return false;\r
+        }\r
+        deviceList->RefreshList();\r
     }\r
+    bluetoothDeviceListView->RefreshText();\r
     return true;\r
 }\r
 \r
@@ -126,13 +119,13 @@ bool MainBluetoothView::ChangeTipsFailMessageView(int16_t hideView, int16_t this
             return false;\r
         }\r
         // init view\r
-        UIViewGroup *group = tipsFailMessageView->CreateTipsFailMessageView();\r
+        UIViewGroup *group = tipsFailMessageView->ShowUpViewInit();\r
         if (group == nullptr) {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group nullptr fail");\r
             return false;\r
         }\r
         container[thisView] = group;\r
-       RootView::GetInstance()->Add(container[thisView]);\r
+        AddViewToRootContainer(container[thisView]);\r
     }\r
     return true;\r
 }\r
@@ -154,7 +147,7 @@ bool MainBluetoothView::ChangeTipsConnFailMessageView(int16_t hideView, int16_t
             return false;\r
         }\r
         container[thisView] = group;\r
-       RootView::GetInstance()->Add(container[thisView]);\r
+        AddViewToRootContainer(container[thisView]);\r
     }\r
     if (bluetoothReconnectView == nullptr) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GapAclStateChangedCallback bluetoothReconnectView == nullptr");\r
@@ -165,7 +158,6 @@ bool MainBluetoothView::ChangeTipsConnFailMessageView(int16_t hideView, int16_t
     return true;\r
 }\r
 \r
-//连接成功界面\r
 bool MainBluetoothView::ChangeTipsSuccMessageView(int16_t hideView, int16_t thisView)\r
 {\r
     UNUSED(hideView);\r
@@ -183,12 +175,11 @@ bool MainBluetoothView::ChangeTipsSuccMessageView(int16_t hideView, int16_t this
             return false;\r
         }\r
         container[thisView] = group;\r
-       RootView::GetInstance()->Add(container[thisView]);\r
+        AddViewToRootContainer(container[thisView]);\r
     }\r
     return true;\r
 }\r
 \r
-//搜索界面\r
 bool MainBluetoothView::ChangeBluetoothEarPhoneView(int16_t hideView, int16_t thisView)\r
 {\r
     UNUSED(hideView);\r
@@ -205,7 +196,7 @@ bool MainBluetoothView::ChangeBluetoothEarPhoneView(int16_t hideView, int16_t th
             return false;\r
         }\r
         container[thisView] = group;\r
-       RootView::GetInstance()->Add(container[thisView]);\r
+        AddViewToRootContainer(container[thisView]);\r
     }\r
     // 动画开始\r
     bluetoothEarPhoneView->BtAnimatorStart();\r
@@ -214,7 +205,6 @@ bool MainBluetoothView::ChangeBluetoothEarPhoneView(int16_t hideView, int16_t th
     return true;\r
 }\r
 \r
-//扫描出来的设备列表界面\r
 bool MainBluetoothView::ChangeBluetoothEarListView(int16_t hideView, int16_t thisView)\r
 {\r
     if (container[thisView] == nullptr) {\r
@@ -230,21 +220,17 @@ bool MainBluetoothView::ChangeBluetoothEarListView(int16_t hideView, int16_t thi
             return false;\r
         }\r
         container[thisView] = group;\r
-       RootView::GetInstance()->Add(container[thisView]);\r
-    } \r
-    // else {\r
-    //     // 刷新列表\r
-    //     UIList *scanList = bluetoothEarListView->GetScanUIList();\r
-    //     if (scanList == nullptr) {\r
-    //         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick scanList nullptr");\r
-    //         return false;\r
-    //     }\r
-    //     scanList->RefreshList();\r
-    // }\r
-    // ResetEarListView(hideView);\r
-    if(bluetoothEarListView) {\r
-        bluetoothEarListView->RefreshBluetoothEarListView();\r
+        AddViewToRootContainer(container[thisView]);\r
+    } else {\r
+        // 刷新列表\r
+        UIList *scanList = bluetoothEarListView->GetScanUIList();\r
+        if (scanList == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick scanList nullptr");\r
+            return false;\r
+        }\r
+        scanList->RefreshList();\r
     }\r
+    ResetEarListView(hideView);\r
     return true;\r
 }\r
 \r
@@ -259,18 +245,17 @@ bool MainBluetoothView::ChangeBluetoothOptionsView(int16_t hideView, int16_t thi
             return false;\r
         }\r
         // init view\r
-        UIViewGroup *group = bluetoothOptionsView->CreateBluetoothOptionsView();\r
+        UIViewGroup *group = bluetoothOptionsView->InitShowUpView();\r
         if (group == nullptr) {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group nullptr fail");\r
             return false;\r
         }\r
         container[thisView] = group;\r
-       RootView::GetInstance()->Add(container[thisView]);\r
+        AddViewToRootContainer(container[thisView]);\r
     }\r
     return true;\r
 }\r
 \r
-//重新连接界面\r
 bool MainBluetoothView::ChangeBluetoothReconnectView(int16_t hideView, int16_t thisView)\r
 {\r
     UNUSED(hideView);\r
@@ -287,7 +272,7 @@ bool MainBluetoothView::ChangeBluetoothReconnectView(int16_t hideView, int16_t t
             return false;\r
         }\r
         container[thisView] = group;\r
-       RootView::GetInstance()->Add(container[thisView]);\r
+        AddViewToRootContainer(container[thisView]);\r
     }\r
     BluetoothModel::GetInstance()->SetTagDisconnectView(true);\r
     bluetoothReconnectView->RefreshBluetoothNameLabel();\r
@@ -295,7 +280,6 @@ bool MainBluetoothView::ChangeBluetoothReconnectView(int16_t hideView, int16_t t
     return true;\r
 }\r
 \r
-/*连接失败和蓝牙重连视图都跳转到已连接的蓝牙设备列表视图*/\r
 void MainBluetoothView::CorrespondingJump(int16_t hideView)\r
 {\r
     BluetoothModel *bluetoothModel = BluetoothModel::GetInstance();\r
@@ -303,19 +287,17 @@ void MainBluetoothView::CorrespondingJump(int16_t hideView)
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::DropView bluetoothModel == nullptr");\r
             return;\r
         }\r
-    ChangeView(hideView, BLUETOOTHDEVICELISTVIEW);/*查看已连接过的蓝牙耳机设备视图*/\r
-\r
-    // if (bluetoothModel->GetTagReconnectJump()) {\r
-    //     ChangeView(hideView, BLUETOOTHEOPTIONSVIEW);/*查看已连接过的蓝牙耳机设备视图*/\r
-    // } else {\r
-    //     std::list<BluetoothCaseInfo> &bluetoothScanList = BluetoothModel::GetInstance()->GetCase();\r
-    //     bool ret = bluetoothScanList.empty();\r
-    //     if (!ret) {\r
-    //         ChangeView(hideView, BLUETOOTHEARLISTVIEW);/*扫描出的耳机列表界面*/\r
-    //     } else {\r
-    //         ChangeView(hideView, BLUETOOTHEARPHONEVIEW);/*搜索界面*/\r
-    //     }\r
-    // }\r
+    if (bluetoothModel->GetTagReconnectJump()) {\r
+        ChangeView(hideView, BLUETOOTHEOPTIONSVIEW);\r
+    } else {\r
+        std::list<BluetoothCaseInfo> &bluetoothScanList = BluetoothModel::GetInstance()->GetCase();\r
+        bool ret = bluetoothScanList.empty();\r
+        if (!ret) {\r
+            ChangeView(hideView, BLUETOOTHEARLISTVIEW);\r
+        } else {\r
+            ChangeView(hideView, BLUETOOTHEARPHONEVIEW);\r
+        }\r
+    }\r
     return;\r
 }\r
 \r
@@ -324,8 +306,7 @@ void MainBluetoothView::ChangeSettingView()
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::ChangeSettingView");\r
     BluetoothModel::GetInstance()->SetTagConnectView(false);\r
     BluetoothModel::GetInstance()->SetTagScanDeviceClicked(false);\r
-    // NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
-    NativeAbility::GetInstance().Back();\r
+    NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
 }\r
 \r
 void MainBluetoothView::DropEarPhoneView()\r
@@ -338,9 +319,9 @@ void MainBluetoothView::DropEarPhoneView()
     bluetoothEarPhoneView->StopBtDiscovery();\r
     bool ret = BluetoothModel::GetInstance()->IsTagReturnToDeviceListView();\r
     if (ret) {\r
-        ChangeView(BLUETOOTHEARPHONEVIEW, BLUETOOTHDEVICELISTVIEW);//返回到已连接的设备列表界面\r
+        ChangeView(BLUETOOTHEARPHONEVIEW, BLUETOOTHDEVICELISTVIEW);\r
     } else {\r
-        ChangeSettingView(); //退出蓝牙耳机界面\r
+        ChangeSettingView();\r
     }\r
 }\r
 \r
@@ -372,33 +353,32 @@ void MainBluetoothView::DropEarListView()
 \r
 void MainBluetoothView::DropView(UIView& view)\r
 {\r
-    if (&view == container[BLUETOOTHEARPHONEVIEW]) { \r
+    if (&view == container[BLUETOOTHEARPHONEVIEW]) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::DropView::container[BLUETOOTHEARPHONEVIEW]");\r
-        DropEarPhoneView();//搜索界面右滑退出操作\r
+        DropEarPhoneView();\r
     } else if (&view == container[BLUETOOTHEOPTIONSVIEW]) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::DropView::container[BLUETOOTHEOPTIONSVIEW]");\r
-        ChangeView(BLUETOOTHEOPTIONSVIEW, BLUETOOTHDEVICELISTVIEW);//查看已连接过的蓝牙耳机设备视图->已连接过的蓝牙耳机设备视图\r
+        ChangeView(BLUETOOTHEOPTIONSVIEW, BLUETOOTHDEVICELISTVIEW);\r
     } else if (&view == container[TIPSCONNFAILMESSAGEVIEW]) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::DropView::container[TIPSCONNFAILMESSAGEVIEW]");\r
-        ChangeView(TIPSCONNFAILMESSAGEVIEW, BLUETOOTHDEVICELISTVIEW);/*连接失败的提示视图 ->已连接过的蓝牙耳机设备视图*/\r
+        CorrespondingJump(TIPSCONNFAILMESSAGEVIEW);\r
     } else if (&view == container[TIPSSUCCMESSAGEVIEW]) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::DropView::container[TIPSSUCCMESSAGEVIEW]");\r
-        ChangeView(TIPSSUCCMESSAGEVIEW, BLUETOOTHDEVICELISTVIEW);//连接成功的提示视图->已连接过的蓝牙设备列表视图\r
+        ChangeView(TIPSSUCCMESSAGEVIEW, BLUETOOTHDEVICELISTVIEW);\r
     } else if (&view == container[TIPSFAILMESSAGEVIEW]) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::DropView::container[TIPSFAILMESSAGEVIEW]");\r
-        // ChangeView(TIPSFAILMESSAGEVIEW, BLUETOOTHEARPHONEVIEW);//未搜索到蓝牙耳机界面->搜索界面\r
-        ChangeSettingView();//未搜索到蓝牙耳机界面->退出蓝牙耳机界面\r
+        ChangeView(TIPSFAILMESSAGEVIEW, BLUETOOTHEARPHONEVIEW);\r
     } else if (&view == container[BLUETOOTHEARLISTVIEW]) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::DropView::container[BLUETOOTHEARLISTVIEW]");\r
         DropEarListView();\r
     } else if (&view == container[BLUETOOTHDEVICELISTVIEW]) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::DropView::container[BLUETOOTHDEVICELISTVIEW]");\r
-        ChangeSettingView();//已连接过的蓝牙设备列表视图 -> 退出蓝牙耳机界面\r
+        ChangeSettingView();\r
     } else if (&view == container[BLUETOOTHRECONNECTVIEW]) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::DropView::container[BLUETOOTHRECONNECTVIEW]");\r
-        BluetoothModel::GetInstance()->SetTagDisconnectView(false);\r
         CorrespondingJump(BLUETOOTHRECONNECTVIEW);\r
-        bluetoothReconnectView->BtReconnectStop();/*停止动画*/\r
+        BluetoothModel::GetInstance()->SetTagDisconnectView(false);\r
+        bluetoothReconnectView->BtReconnectStop();\r
     }\r
 }\r
 \r
@@ -415,7 +395,7 @@ void MainBluetoothView::ResetEarListView(int16_t hideView)
     } else if (hideView == TIPSCONNFAILMESSAGEVIEW) {\r
         bluetoothEarListView->SetTitleLabel("扫描完成");\r
         bluetoothEarListView->SetNewEquipmentButtonAdd();\r
-       RootView::GetInstance()->Invalidate();\r
+        Draw();\r
     }\r
 }\r
 \r
@@ -461,7 +441,7 @@ void MainBluetoothView::ChangeView(int16_t hideView, int16_t showView)
     }\r
     container[showView]->SetVisible(true);\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView:: ChangeView end!!!%d", showView);\r
-   RootView::GetInstance()->Invalidate();\r
+    Draw();\r
     BluetoothModel::GetInstance()->SetCurView(showView);\r
 }\r
 }\r
index 78a9d07..552f968 100644 (file)
 #include "UiConfig.h"\r
 #include "PlayersPresenter.h"\r
 #include "BluetoothPresenter.h"\r
-#include "ui_resource_string.h"\r
-namespace OHOS\r
+\r
+namespace OHOS {\r
+static TipsConnFailMessageView *g_pConnFailMessageView{nullptr};\r
+TipsConnFailMessageView::TipsConnFailMessageView()\r
 {\r
-    static TipsConnFailMessageView *g_pConnFailMessageView{nullptr};\r
-    TipsConnFailMessageView::TipsConnFailMessageView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView::TipsConnFailMessageView");\r
-        g_pConnFailMessageView = this;\r
-    }\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView::TipsConnFailMessageView");\r
+    g_pConnFailMessageView = this;\r
+}\r
 \r
-    TipsConnFailMessageView::~TipsConnFailMessageView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView::~TipsConnFailMessageView");\r
-        if (group)\r
-        {\r
-            group->RemoveAll();\r
-            if (titleLabel)\r
-            {\r
-                delete titleLabel;\r
-                titleLabel = nullptr;\r
-            }\r
-            if (tipImg)\r
-            {\r
-                delete tipImg;\r
-                tipImg = nullptr;\r
-            }\r
-            if (backButton)\r
-            {\r
-                delete backButton;\r
-                backButton = nullptr;\r
-            }\r
-            if (tipLabel)\r
-            {\r
-                delete tipLabel;\r
-                tipLabel = nullptr;\r
-            }\r
-            if (conn_fail_Label)\r
-            {\r
-                delete conn_fail_Label;\r
-                conn_fail_Label = nullptr;\r
-            }\r
-            if (bluetoothNameLabel)\r
-            {\r
-                delete bluetoothNameLabel;\r
-                bluetoothNameLabel = nullptr;\r
-            }\r
-            delete group;\r
-            group = nullptr;\r
-        }\r
-        g_pConnFailMessageView = nullptr;\r
-    }\r
+TipsConnFailMessageView::~TipsConnFailMessageView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView::~TipsConnFailMessageView");\r
+    group->RemoveAll();\r
+    delete titleLabel;\r
+    titleLabel = nullptr;\r
+    delete backButton;\r
+    backButton = nullptr;\r
+    delete group;\r
+    group = nullptr;\r
+    delete tipImg;\r
+    tipImg = nullptr;\r
+    delete tipLabel;\r
+    tipLabel = nullptr;\r
+    delete tipTwoLabel;\r
+    tipTwoLabel = nullptr;\r
+    g_pConnFailMessageView = nullptr;\r
+}\r
 \r
-    TipsConnFailMessageView *TipsConnFailMessageView::GetInstance()\r
-    {\r
-        return g_pConnFailMessageView;\r
-    }\r
+TipsConnFailMessageView *TipsConnFailMessageView::GetInstance()\r
+{\r
+    return g_pConnFailMessageView;\r
+}\r
 \r
-    void TipsConnFailMessageView::ShowUpTipLabel()\r
-    {\r
-#if 0\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView::ShowUpTipLabel");\r
-        if (tipLabel == nullptr)\r
-        {\r
-            tipLabel = new UILabel();\r
-            if (tipLabel == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView tipLabel new fail");\r
-                return;\r
-            }\r
-            tipLabel->SetPosition(0, 247, HORIZONTAL_RESOLUTION, 35); // 0:x 247:y 454:width 35:height.\r
-            tipLabel->SetText("请确认该设备在通信范");\r
-            tipLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30:font data\r
-            tipLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
-            tipLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
-                               UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-            group->Add(tipLabel);\r
+void TipsConnFailMessageView::ShowUpTipLabel()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView::ShowUpTipLabel");\r
+    if (tipLabel == nullptr) {\r
+        tipLabel = new UILabel();\r
+        if (tipLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView tipLabel new fail");\r
+            return;\r
         }\r
-        if (tipTwoLabel == nullptr)\r
-        {\r
-            tipTwoLabel = new UILabel();\r
-            if (tipTwoLabel == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView tipTwoLabel new fail");\r
-                return;\r
-            }\r
-            tipTwoLabel->SetPosition(0, 300, HORIZONTAL_RESOLUTION, 34); // 0:x 300:y 454:width 34:height.\r
-            tipTwoLabel->SetText("围内且处于待配对状态。");\r
-            tipTwoLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30:font data\r
-            tipTwoLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
-            tipTwoLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
-                                  UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-            group->Add(tipTwoLabel);\r
+        tipLabel->SetPosition(0, 247, HORIZONTAL_RESOLUTION, 35); // 0:x 247:y 454:width 35:height.\r
+        tipLabel->SetText("请确认该设备在通信范");\r
+        tipLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30:font data\r
+        tipLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+        tipLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+                           UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+        group->Add(tipLabel);\r
+    }\r
+    if (tipTwoLabel == nullptr) {\r
+        tipTwoLabel = new UILabel();\r
+        if (tipTwoLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView tipTwoLabel new fail");\r
+            return;\r
         }\r
-#endif\r
-        return;\r
+        tipTwoLabel->SetPosition(0, 300, HORIZONTAL_RESOLUTION, 34); // 0:x 300:y 454:width 34:height.\r
+        tipTwoLabel->SetText("围内且处于待配对状态。");\r
+        tipTwoLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30:font data\r
+        tipTwoLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+        tipTwoLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+                              UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+        group->Add(tipTwoLabel);\r
     }\r
+    return;\r
+}\r
 \r
-    UIViewGroup *TipsConnFailMessageView::ShowUpViewInit(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView::ShowUpViewInit");\r
-        if (group == nullptr)\r
-        {\r
-            group = new UIViewGroup();\r
-            if (group == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
-                return nullptr;\r
-            }\r
-            group->SetPosition(0, 0);\r
-            group->SetWidth(HORIZONTAL_RESOLUTION);\r
-            group->SetHeight(VERTICAL_RESOLUTION);\r
-            UIView::OnDragListener *tipsDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
-            UIView::OnDragListener *tipsDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
-            if ((tipsDragListener == nullptr) && (tipsDragListener2 == nullptr))\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "tipsDragListener GetInstance fail");\r
-                return nullptr;\r
-            }\r
-            if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-            {\r
-                group->SetOnDragListener(tipsDragListener);\r
-            }\r
-            else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-            {\r
-                group->SetOnDragListener(tipsDragListener2);\r
-            }\r
-            group->SetViewId(TIPS_CONN_FAIL_MESSAGE_VIEW);\r
-            group->SetDraggable(true);\r
-            group->SetTouchable(true);\r
-            /* -------------------------------------------------------------------------- */\r
-            if (titleLabel == nullptr)\r
-            {\r
-                titleLabel = new UILabelExt();\r
-                if (titleLabel == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView titleLabel new fail");\r
-                    return nullptr;\r
-                }\r
-                titleLabel->SetPosition(83, 50, 300, 35);\r
-                titleLabel->SetTextId(STR_BLUETOOTH_HEADPHONES); // 蓝牙耳机\r
-                titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-                titleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
-                titleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-                titleLabel->SetRollSpeed(23);\r
-                titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-                titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-            }\r
-            /* --------------------------------- tipImg --------------------------------- */\r
-            if (tipImg == nullptr)\r
-            {\r
-                tipImg = new UIImageView();\r
-                if (tipImg == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView tipImg new fail");\r
-                    return nullptr;\r
-                }\r
-                tipImg->SetPosition(193, 121, 80, 80);\r
-                tipImg->SetSrc(PNG_ATTENTION_IMAGE);\r
-            }\r
-            /* --------------------------- bluetoothNameLabel --------------------------- */\r
-            if (bluetoothNameLabel == nullptr)\r
-            {\r
-                bluetoothNameLabel = new UILabelExt();\r
-                if (bluetoothNameLabel == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothNameLabel new fail");\r
-                    return nullptr;\r
-                }\r
-                bluetoothNameLabel->SetPosition(53, 235, 360, 35);\r
-                bluetoothNameLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
-                bluetoothNameLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-                bluetoothNameLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-                bluetoothNameLabel->SetRollSpeed(23);\r
-                bluetoothNameLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 30);\r
-                bluetoothNameLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-            }\r
-            /* ----------------------------- conn_fail_Label ---------------------------- */\r
-            if (conn_fail_Label == nullptr)\r
-            {\r
-                conn_fail_Label = new UILabelExt();\r
-                if (conn_fail_Label == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView conn_fail_Label new fail");\r
-                    return nullptr;\r
-                }\r
-                conn_fail_Label->SetPosition(53, bluetoothNameLabel->GetY() + bluetoothNameLabel->GetHeight(), 360, 35);\r
-                conn_fail_Label->SetTextId(STR_CONNECTION_FAIL);\r
-                conn_fail_Label->SetStyle(STYLE_TEXT_FONT, 30);\r
-                conn_fail_Label->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-                conn_fail_Label->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-                conn_fail_Label->SetRollSpeed(23);\r
-                conn_fail_Label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-                conn_fail_Label->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-                conn_fail_Label->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));\r
-            }\r
-            /* -------------------------------- tipLabel -------------------------------- */\r
-            if (tipLabel == nullptr)\r
-            {\r
-                tipLabel = new UILabelExt();\r
-                if (tipLabel == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView tipLabel new fail");\r
-                    return nullptr;\r
-                }\r
-                tipLabel->SetPosition(53, conn_fail_Label->GetY() + conn_fail_Label->GetHeight(), 360, 35);\r
-                tipLabel->SetTextId(STR_CONNECTION_FAIL);\r
-                tipLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
-                tipLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-                // tipLabel->SetText("请确认该设备在通信范围内且处于待配对状态");\r
-                tipLabel->SetTextId(STR_BTEARPHONE_CONN_FAIL_TIP);\r
-                tipLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-                // tipLabel->SetRollSpeed(23);\r
-                tipLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-                tipLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-                tipLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));\r
-            }\r
-            /* ------------------------------- backButton ------------------------------- */\r
-            if (backButton == nullptr)\r
-            {\r
-                backButton = new UILabelButtonExt();\r
-                if (backButton == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView backButton new fail");\r
-                    return nullptr;\r
-                }\r
-                UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
-                UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
-                if ((clickListener == nullptr) && (clickListener2 == nullptr))\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
-                    return nullptr;\r
-                }\r
-                backButton->SetPosition(0, 366, 466, 100);\r
-                backButton->SetTextId(STR_RETRY); // 重试\r
-                backButton->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-                backButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-                backButton->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);\r
-                backButton->SetViewId(BLUETOOTH_CONN_FAIL_BACK_BUTTON);\r
-                if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-                {\r
-                    backButton->SetOnClickListener(clickListener);\r
-                }\r
-                else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-                {\r
-                    backButton->SetOnClickListener(clickListener2);\r
-                }\r
-            }\r
-            group->Add(titleLabel);\r
-            group->Add(tipImg);\r
-            group->Add(bluetoothNameLabel);\r
-            group->Add(conn_fail_Label);\r
-            group->Add(tipLabel);\r
-            group->Add(backButton);\r
+void TipsConnFailMessageView::InitNameLabel(void)\r
+{\r
+    if (bluetoothNameLabel == nullptr) {\r
+        bluetoothNameLabel = new UILabel();\r
+        if (bluetoothNameLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothNameLabel new fail");\r
+            return;\r
         }\r
-        return group;\r
+        bluetoothNameLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+        bluetoothNameLabel->SetPosition(60, 139, 333, 45); // 60:x 139:y 333:width 45:height\r
+        bluetoothNameLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
+        bluetoothNameLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+        bluetoothNameLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+                                     UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+        group->Add(bluetoothNameLabel);\r
     }\r
+}\r
 \r
-    // 刷新设备名称\r
-    void TipsConnFailMessageView::RefreshNameLabel(const bd_addr_t &bdAddr)\r
-    {\r
-        BluetoothCaseInfo caseInfo;\r
-        (void)memcpy_s(caseInfo.addr, BD_ADDR_LEN, bdAddr.addr, BD_ADDR_LEN);\r
-        bool ret = BluetoothModel::GetInstance()->FindNameFromList(&caseInfo);\r
-        if (!ret)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView FindNameFromList fail");\r
+void TipsConnFailMessageView::ShowUpButtonBack()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView::ShowUpButtonBack");\r
+    if (backButton == nullptr) {\r
+        backButton = new UILabelButton();\r
+        if (backButton == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView backButton new fail");\r
             return;\r
         }\r
-        if (bluetoothNameLabel == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView::RefreshNameLabel bluetoothNameLabel == nullptr");\r
+        UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
+        UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
+        if ((clickListener == nullptr) && (clickListener2 == nullptr)) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
             return;\r
         }\r
-        bluetoothNameLabel->SetText(reinterpret_cast<const char *>(caseInfo.deviceName));\r
+        backButton->SetPosition(65, 359, 324, 101); // 65:x, 359:y, 324:width 101:height.\r
+        backButton->SetText("重试");\r
+        backButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40:font data\r
+        backButton->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
+        backButton->SetViewId(BLUETOOTH_CONN_FAIL_BACK_BUTTON);\r
+        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+            backButton->SetTextColor(Color::Red());\r
+            backButton->SetOnClickListener(clickListener);\r
+        } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+            backButton->SetTextColor(Color::Blue());\r
+            backButton->SetOnClickListener(clickListener2);\r
+        }\r
+        group->Add(backButton);\r
+    }\r
+    if (tipImg == nullptr) {\r
+        tipImg = new UIImageView();\r
+        if (tipImg == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView tipImg new fail");\r
+            return;\r
+        }\r
+        tipImg->SetPosition(178, 20, 90, 90); // 178:x 20:y 90:width 90:height.\r
+        tipImg->SetSrc(PNG_GANTAN);\r
+        group->Add(tipImg);\r
+    }\r
+    return;\r
+}\r
+\r
+UIViewGroup *TipsConnFailMessageView::ShowUpViewInit(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView::ShowUpViewInit");\r
+    if (group == nullptr) {\r
+        group = new UIViewGroup();\r
+        if (group == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
+            return nullptr;\r
+        }\r
+        group->SetPosition(0, 0);\r
+        group->SetWidth(HORIZONTAL_RESOLUTION);\r
+        group->SetHeight(VERTICAL_RESOLUTION);\r
+    }\r
+    if (titleLabel == nullptr) {\r
+        titleLabel = new UILabel();\r
+        if (titleLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView titleLabel new fail");\r
+            return nullptr;\r
+        }\r
+        titleLabel->SetPosition(0, 189, HORIZONTAL_RESOLUTION, 45); // 0:x 189:y 454:width 45:height.\r
+        titleLabel->SetText("连接失败");\r
+        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40:font data\r
+        titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+        titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+                             UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+        group->Add(titleLabel);\r
+    }\r
+    ShowUpButtonBack();\r
+    ShowUpTipLabel();\r
+    InitNameLabel();\r
+    UIView::OnDragListener *tipsDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
+    UIView::OnDragListener *tipsDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
+    if ((tipsDragListener == nullptr) && (tipsDragListener2 == nullptr)) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "tipsDragListener GetInstance fail");\r
+        return nullptr;\r
+    }\r
+    if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+        group->SetOnDragListener(tipsDragListener);\r
+    } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+        group->SetOnDragListener(tipsDragListener2);\r
+    }\r
+    group->SetViewId(TIPS_CONN_FAIL_MESSAGE_VIEW);\r
+    group->SetDraggable(true);\r
+    group->SetTouchable(true);\r
+    return group;\r
+}\r
+\r
+void TipsConnFailMessageView::RefreshNameLabel(const bd_addr_t &bdAddr)\r
+{\r
+    BluetoothCaseInfo caseInfo;\r
+    (void)memcpy_s(caseInfo.addr, BD_ADDR_LEN, bdAddr.addr, BD_ADDR_LEN);\r
+    bool ret = BluetoothModel::GetInstance()->FindNameFromList(&caseInfo);\r
+    if (!ret) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView FindNameFromList fail");\r
+        return;\r
+    }\r
+    if (bluetoothNameLabel == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsConnFailMessageView::RefreshNameLabel bluetoothNameLabel == nullptr");\r
+        return;\r
     }\r
+    bluetoothNameLabel->SetText(reinterpret_cast<const char *>(caseInfo.deviceName));\r
+}\r
 }
\ No newline at end of file
index c8bd189..4d732b8 100644 (file)
 #include "BluetoothModel.h"\r
 #include "wearable_log.h"\r
 #include "UiConfig.h"\r
-#include "player/include/PlayersPresenter.h"\r
-#include "player/include/PlayersView.h"\r
-#include "bluetooth/include/BluetoothPresenter.h"\r
-#include "ui_resource_string.h"\r
-#include "ui_resource_image.h"\r
+#include "PlayersPresenter.h"\r
+#include "BluetoothPresenter.h"\r
 \r
-namespace OHOS\r
+namespace OHOS {\r
+static TipsFailMessageView *g_pFailMessageView{nullptr};\r
+TipsFailMessageView::TipsFailMessageView()\r
 {\r
-    static TipsFailMessageView *g_pFailMessageView{nullptr};\r
-    TipsFailMessageView::TipsFailMessageView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::TipsFailMessageView");\r
-        g_pFailMessageView = this;\r
-    }\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::TipsFailMessageView");\r
+    g_pFailMessageView = this;\r
+}\r
 \r
-    TipsFailMessageView::~TipsFailMessageView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::~TipsFailMessageView");\r
-        if (group != nullptr)\r
-        {\r
-            group->RemoveAll();\r
-            if (titleLabel)\r
-            {\r
-                delete titleLabel;\r
-                titleLabel = nullptr;\r
-            }\r
-            if (btIconImage)\r
-            {\r
-                delete btIconImage;\r
-                btIconImage = nullptr;\r
-                ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_BLUETOOTH_GRAY, PLAYER_IAMGES);\r
-            }\r
-            if (btHeadsetNotFoundLabel)\r
-            {\r
-                delete btHeadsetNotFoundLabel;\r
-                btHeadsetNotFoundLabel = nullptr;\r
-            }\r
-            if (rescanButton)\r
-            {\r
-                delete rescanButton;\r
-                rescanButton = nullptr;\r
-            }\r
-            delete group;\r
-            group = nullptr;\r
-        }\r
-        g_pFailMessageView = nullptr;\r
-    }\r
+TipsFailMessageView::~TipsFailMessageView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::~TipsFailMessageView");\r
+    group->RemoveAll();\r
+    delete titleLabel;\r
+    titleLabel = nullptr;\r
+    delete backButton;\r
+    backButton = nullptr;\r
+    delete group;\r
+    group = nullptr;\r
+    delete tipImg;\r
+    tipImg = nullptr;\r
+    g_pFailMessageView = nullptr;\r
+}\r
 \r
-    TipsFailMessageView *TipsFailMessageView::GetInstance()\r
-    {\r
-        return g_pFailMessageView;\r
-    }\r
+TipsFailMessageView *TipsFailMessageView::GetInstance()\r
+{\r
+    return g_pFailMessageView;\r
+}\r
 \r
-    bool TipsFailMessageView::CreateTipsFailMessageLabelView(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageLabelView");\r
-        /* ------------------------------- titleLabel ------------------------------- */\r
-        if (titleLabel == nullptr)\r
-        {\r
-            titleLabel = new UILabelExt();\r
-            if (titleLabel == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleLabel new fail");\r
-                return false;\r
-            }\r
+int TipsFailMessageView::ShowUpButtonBack()\r
+{\r
+    if (backButton == nullptr) {\r
+        backButton = new UILabelButton();\r
+        if (backButton == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView backButton new fail");\r
+            return OHOS_FAILURE;\r
         }\r
-        titleLabel->SetPosition(83, 50, 300, 35);\r
-        titleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
-        titleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        titleLabel->SetTextId(STR_BLUETOOTH_HEADPHONES); /*蓝牙耳机*/\r
-        titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        /* ------------------------- btHeadsetNotFoundLabel ------------------------- */\r
-        if (btHeadsetNotFoundLabel == nullptr)\r
-        {\r
-            btHeadsetNotFoundLabel = new UILabelExt();\r
-            if (btHeadsetNotFoundLabel == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleLabel new fail");\r
-                return false;\r
-            }\r
+        UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
+        UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
+        if ((clickListener == nullptr) && (clickListener2 == nullptr)) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
+            return OHOS_FAILURE;\r
         }\r
-        btHeadsetNotFoundLabel->SetPosition(53, 305, 360, 30);\r
-        btHeadsetNotFoundLabel->SetStyle(STYLE_TEXT_FONT, 26);\r
-        btHeadsetNotFoundLabel->SetStyle(STYLE_LINE_HEIGHT, 30);\r
-        btHeadsetNotFoundLabel->SetTextId(STR_BT_HEADSET_NOFOND); /*当前搜索不到耳机蓝牙设备*/\r
-        btHeadsetNotFoundLabel->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
-        btHeadsetNotFoundLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-        btHeadsetNotFoundLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        btHeadsetNotFoundLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);\r
-\r
-        return true;\r
-    }\r
-\r
-    bool TipsFailMessageView::CreateTipsFailMessageImageView(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageImageView");\r
-        if (btIconImage == nullptr)\r
-        {\r
-            btIconImage = new UIImageView();\r
-            if (btIconImage == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
-                return false;\r
-            }\r
-            btIconImage->SetPosition(163, 126, 140, 140);\r
-            btIconImage->SetAutoEnable(false);\r
-            btIconImage->SetResizeMode(UIImageView::CENTER);\r
-            if (!PlayersView::LoadPlayerImage(btIconImage, PLAYER_BLUETOOTH_GRAY))\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btIconImage LoadPlayerImage fail");\r
-                return false;\r
-            }\r
+        backButton->SetPosition(65, 359, 324, 101); // 65:x, 359:y, 324:width 101:height\r
+        backButton->SetText("重试");\r
+        backButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40:font data\r
+        backButton->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
+        backButton->SetViewId(BLUETOOTH_FAIL_BACK_BUTTON);\r
+        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+            backButton->SetTextColor(Color::Red());\r
+            backButton->SetOnClickListener(clickListener);\r
+        } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+            backButton->SetTextColor(Color::Blue());\r
+            backButton->SetOnClickListener(clickListener2);\r
         }\r
-        return true;\r
+        group->Add(backButton);\r
     }\r
-\r
-    bool TipsFailMessageView::CreateTipsFailMessageLabelButton()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageLabelButton");\r
-        if (rescanButton == nullptr)\r
-        {\r
-            rescanButton = new UILabelExt();\r
-            if (rescanButton == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView rescanButton new fail");\r
-                return false;\r
-            }\r
-            UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
-            UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
-            if ((clickListener == nullptr) && (clickListener2 == nullptr))\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
-                return false;\r
-            }\r
-            rescanButton->SetPosition(73, 350, 320, 100);\r
-            rescanButton->SetTextId(STR_BT_HEADSET_RESCAN); /*重新搜索*/\r
-            rescanButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
-            rescanButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-            rescanButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-            rescanButton->SetViewId(BLUETOOTH_FAIL_BACK_BUTTON);\r
-            rescanButton->SetTextColor(Color::GetColorFromRGBA(0x35, 0x49, 0xff, 0xff));\r
-            // rescanButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
-            rescanButton->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-            rescanButton->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-            rescanButton->SetTouchable(true);\r
-            if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-            {\r
-                rescanButton->SetOnClickListener(clickListener);\r
-            }\r
-            else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-            {\r
-                rescanButton->SetOnClickListener(clickListener2);\r
-            }\r
+    if (tipImg == nullptr) {\r
+        tipImg = new UIImageView();\r
+        if (tipImg == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView tipImg new fail");\r
+            return OHOS_FAILURE;\r
         }\r
-        return true;\r
+        tipImg->SetPosition(181, 111, 90, 90); // 181:x 111:y 90:width 90:height\r
+        tipImg->SetSrc(PNG_GANTAN);\r
+        group->Add(tipImg);\r
     }\r
+    return OHOS_SUCCESS;\r
+}\r
 \r
-    UIViewGroup *TipsFailMessageView::CreateTipsFailMessageView(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageView");\r
-        if (group == nullptr)\r
-        {\r
-            group = new UIViewGroup();\r
-            if (group == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
-                return nullptr;\r
-            }\r
-            group->SetPosition(0, 0, 466, 466);\r
-        }\r
-        UIView::OnDragListener *tipsDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
-        UIView::OnDragListener *tipsDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
-        if ((tipsDragListener == nullptr) && (tipsDragListener2 == nullptr))\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "tipsDragListener GetInstance fail");\r
+UIViewGroup *TipsFailMessageView::ShowUpViewInit(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::ShowUpViewInit");\r
+    if (group == nullptr) {\r
+        group = new UIViewGroup();\r
+        if (group == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
             return nullptr;\r
         }\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-        {\r
-            group->SetOnDragListener(tipsDragListener);\r
-        }\r
-        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-        {\r
-            group->SetOnDragListener(tipsDragListener2);\r
-        }\r
-        group->SetViewId(TIPS_FAIL_MESSAGE_VIEW);\r
-        group->SetDraggable(true);\r
-        group->SetTouchable(true);\r
-        /* -------------------------------------------------------------------------- */\r
-        if (!CreateTipsFailMessageLabelView() || !CreateTipsFailMessageImageView() || !CreateTipsFailMessageLabelButton())\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageView fail!!");\r
+        group->SetPosition(0, 0);\r
+        group->SetWidth(HORIZONTAL_RESOLUTION);\r
+        group->SetHeight(VERTICAL_RESOLUTION);\r
+    }\r
+    if (titleLabel == nullptr) {\r
+        titleLabel = new UILabel();\r
+        if (titleLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView titleLabel new fail");\r
             return nullptr;\r
         }\r
-        /* ----------------------------------- Add ---------------------------------- */\r
+        titleLabel->SetPosition(0, 234, HORIZONTAL_RESOLUTION, 45); // 0:x 234:y 454:width 45:height\r
+        titleLabel->SetText("未发现蓝牙耳机");\r
+        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40:font data\r
+        titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+        titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+                             UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
         group->Add(titleLabel);\r
-        group->Add(btIconImage);\r
-        group->Add(btHeadsetNotFoundLabel);\r
-        group->Add(rescanButton);\r
-        /* -------------------------------------------------------------------------- */\r
-        return group;\r
     }\r
+    ShowUpButtonBack();\r
+    UIView::OnDragListener *tipsDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
+    UIView::OnDragListener *tipsDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
+    if ((tipsDragListener == nullptr) && (tipsDragListener2 == nullptr)) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "tipsDragListener GetInstance fail");\r
+        return nullptr;\r
+    }\r
+    if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+        group->SetOnDragListener(tipsDragListener);\r
+    } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+        group->SetOnDragListener(tipsDragListener2);\r
+    }\r
+    group->SetViewId(TIPS_FAIL_MESSAGE_VIEW);\r
+    group->SetDraggable(true);\r
+    group->SetTouchable(true);\r
+    return group;\r
+}\r
 }
\ No newline at end of file
index 89fb015..9bab50f 100644 (file)
 #include "UiConfig.h"\r
 #include "PlayersPresenter.h"\r
 #include "BluetoothPresenter.h"\r
-#include "ui_resource_string.h"\r
-namespace OHOS\r
+\r
+namespace OHOS {\r
+static TipsSuccMessageView *g_pSuccMessageView{nullptr};\r
+TipsSuccMessageView::TipsSuccMessageView()\r
 {\r
-    static TipsSuccMessageView *g_pSuccMessageView{nullptr};\r
-    TipsSuccMessageView::TipsSuccMessageView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView::TipsSuccMessageView");\r
-        g_pSuccMessageView = this;\r
-    }\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView::TipsSuccMessageView");\r
+    g_pSuccMessageView = this;\r
+}\r
 \r
-    TipsSuccMessageView::~TipsSuccMessageView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView::~TipsSuccMessageView");\r
-        if (group)\r
-        {\r
-            group->RemoveAll();\r
-            if (titleLabel)\r
-            {\r
-                delete titleLabel;\r
-                titleLabel = nullptr;\r
-            }\r
-            if (tipImg)\r
-            {\r
-                delete tipImg;\r
-                tipImg = nullptr;\r
-            }\r
-            if (bluetoothNameLabel)\r
-            {\r
-                delete bluetoothNameLabel;\r
-                bluetoothNameLabel = nullptr;\r
-            }\r
-            if (conn_succ_Label)\r
-            {\r
-                delete conn_succ_Label;\r
-                conn_succ_Label = nullptr;\r
-            }\r
-            if (backButton)\r
-            {\r
-                delete backButton;\r
-                backButton = nullptr;\r
-            }\r
-            delete group;\r
-            group = nullptr;\r
-        }\r
-        g_pSuccMessageView = nullptr;\r
-    }\r
+TipsSuccMessageView::~TipsSuccMessageView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView::~TipsSuccMessageView");\r
+    group->RemoveAll();\r
+    delete titleLabel;\r
+    titleLabel = nullptr;\r
+    delete backButton;\r
+    backButton = nullptr;\r
+    delete group;\r
+    group = nullptr;\r
+    delete tipImg;\r
+    tipImg = nullptr;\r
+    g_pSuccMessageView = nullptr;\r
+}\r
 \r
-    TipsSuccMessageView *TipsSuccMessageView::GetInstance()\r
-    {\r
-        return g_pSuccMessageView;\r
-    }\r
+TipsSuccMessageView *TipsSuccMessageView::GetInstance()\r
+{\r
+    return g_pSuccMessageView;\r
+}\r
 \r
-    UIViewGroup *TipsSuccMessageView::ShowUpViewInit(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView::ShowUpViewInit");\r
-        if (group == nullptr)\r
-        {\r
-            group = new UIViewGroup();\r
-            if (group == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
-                return nullptr;\r
-            }\r
-            group->SetPosition(0, 0);\r
-            group->SetWidth(HORIZONTAL_RESOLUTION);\r
-            group->SetHeight(VERTICAL_RESOLUTION);\r
-            UIView::OnDragListener *tipsDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
-            UIView::OnDragListener *tipsDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
-            if ((tipsDragListener == nullptr) && (tipsDragListener2 == nullptr))\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "tipsDragListener GetInstance fail");\r
-                return nullptr;\r
-            }\r
-            if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-            {\r
-                group->SetOnDragListener(tipsDragListener);\r
-            }\r
-            else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-            {\r
-                group->SetOnDragListener(tipsDragListener2);\r
-            }\r
-            group->SetViewId(TIPS_SUCC_MESSAGE_VIEW);\r
-            group->SetDraggable(true);\r
-            group->SetTouchable(true);\r
-            /* ------------------------------- titleLabel ------------------------------- */\r
-            if (titleLabel == nullptr)\r
-            {\r
-                titleLabel = new UILabelExt();\r
-                if (titleLabel == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceListView titleLabel new fail");\r
-                    return nullptr;\r
-                }\r
-                titleLabel->SetPosition(83, 50, 300, 35);\r
-                titleLabel->SetTextId(STR_BLUETOOTH_HEADPHONES); // 蓝牙耳机\r
-                titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-                titleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
-                titleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-                titleLabel->SetRollSpeed(23);\r
-                titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-                titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-            }\r
-            /* --------------------------------- tipImg --------------------------------- */\r
-            if (tipImg == nullptr)\r
-            {\r
-                tipImg = new UIImageView();\r
-                if (tipImg == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView tipImg new fail");\r
-                    return nullptr;\r
-                }\r
-                tipImg->SetPosition(193, 121, 80, 80);\r
-                tipImg->SetSrc("/user/res/OK.bin");\r
-            }\r
-            /* --------------------------- bluetoothNameLabel --------------------------- */\r
-            if (bluetoothNameLabel == nullptr)\r
-            {\r
-                bluetoothNameLabel = new UILabelExt();\r
-                if (bluetoothNameLabel == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothNameLabel new fail");\r
-                    return nullptr;\r
-                }\r
-                bluetoothNameLabel->SetPosition(53, 235, 360, 35);\r
-                bluetoothNameLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
-                bluetoothNameLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-                bluetoothNameLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-                bluetoothNameLabel->SetRollSpeed(23);\r
-                bluetoothNameLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 30);\r
-                bluetoothNameLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-            }\r
-            /* ----------------------------- conn_succ_Label ---------------------------- */\r
-            if (conn_succ_Label == nullptr)\r
-            {\r
-                conn_succ_Label = new UILabelExt();\r
-                if (conn_succ_Label == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView conn_succ_Label new fail");\r
-                    return nullptr;\r
-                }\r
-                conn_succ_Label->SetPosition(53, bluetoothNameLabel->GetY() + bluetoothNameLabel->GetHeight(), 360, 35);\r
-                // conn_succ_Label->SetText("连接成功");\r
-                conn_succ_Label->SetTextId(STR_CONNECTION_SUCC);\r
-                conn_succ_Label->SetStyle(STYLE_TEXT_FONT, 30);\r
-                conn_succ_Label->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-                conn_succ_Label->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
-                conn_succ_Label->SetRollSpeed(23);\r
-                conn_succ_Label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-                conn_succ_Label->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-                conn_succ_Label->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));\r
-            }\r
-            /* ------------------------------- backButton ------------------------------- */\r
-            if (backButton == nullptr)\r
-            {\r
-                backButton = new UILabelButtonExt();\r
-                if (backButton == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView backButton new fail");\r
-                    return nullptr;\r
-                }\r
-                UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
-                UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
-                if ((clickListener == nullptr) && (clickListener2 == nullptr))\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
-                    return nullptr;\r
-                }\r
-                backButton->SetPosition(0, 366, 466, 100);\r
-                backButton->SetTextId(STR_OK); // 确定\r
-                backButton->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-                backButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-                backButton->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);\r
-                backButton->SetViewId(BLUETOOTH_SUCC_BACK_BUTTON);\r
-                backButton->SetTextColor(Color::GetColorFromRGBA(0x35, 0x49, 0xff, 0xff));\r
-                if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
-                {\r
-                    backButton->SetOnClickListener(clickListener);\r
-                }\r
-                else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
-                {\r
-                    backButton->SetOnClickListener(clickListener2);\r
-                }\r
-            }\r
-            group->Add(titleLabel);\r
-            group->Add(tipImg);\r
-            group->Add(bluetoothNameLabel);\r
-            group->Add(conn_succ_Label);\r
-            group->Add(backButton);\r
+void TipsSuccMessageView::InitNameLabel(void)\r
+{\r
+    if (bluetoothNameLabel == nullptr) {\r
+        bluetoothNameLabel = new UILabel();\r
+        if (bluetoothNameLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothNameLabel new fail");\r
+            return;\r
         }\r
-        return group;\r
+        bluetoothNameLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+        bluetoothNameLabel->SetPosition(60, 180, 333, 45); // 60:x 180:y 333:width 45:height\r
+        bluetoothNameLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
+        bluetoothNameLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+        bluetoothNameLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+                                     UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+        group->Add(bluetoothNameLabel);\r
     }\r
+}\r
 \r
-    // 刷新设备名称\r
-    void TipsSuccMessageView::RefreshNameLabel(const bd_addr_t &bdAddr)\r
-    {\r
-        BluetoothCaseInfo caseInfo;\r
-        (void)memcpy_s(caseInfo.addr, BD_ADDR_LEN, bdAddr.addr, BD_ADDR_LEN);\r
-        bool ret = BluetoothModel::GetInstance()->FindNameFromList(&caseInfo);\r
-        if (!ret)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView FindNameFromList fail");\r
+void TipsSuccMessageView::ShowUpButtonBack()\r
+{\r
+    if (backButton == nullptr) {\r
+        backButton = new UILabelButton();\r
+        if (backButton == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView backButton new fail");\r
             return;\r
         }\r
-        if (bluetoothNameLabel == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView::RefreshNameLabel bluetoothNameLabel == nullptr");\r
+        UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
+        UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
+        if ((clickListener == nullptr) && (clickListener2 == nullptr)) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
+            return;\r
+        }\r
+        backButton->SetPosition(65, 359, 324, 101); // 65:x, 359:y, 324:width 101:height\r
+        backButton->SetText("确定");\r
+        backButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40:font data\r
+        backButton->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
+        backButton->SetViewId(BLUETOOTH_SUCC_BACK_BUTTON);\r
+        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+            backButton->SetTextColor(Color::Red());\r
+            backButton->SetOnClickListener(clickListener);\r
+        } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+            backButton->SetTextColor(Color::Blue());\r
+            backButton->SetOnClickListener(clickListener2);\r
+        }\r
+        group->Add(backButton);\r
+    }\r
+    if (tipImg == nullptr) {\r
+        tipImg = new UIImageView();\r
+        if (tipImg == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView tipImg new fail");\r
             return;\r
         }\r
-        bluetoothNameLabel->SetText(reinterpret_cast<const char *>(caseInfo.deviceName));\r
+        tipImg->SetPosition(181, 78, 90, 90); // 181:x 78:y 90:width 90:height\r
+        tipImg->SetSrc(PNG_RIGHT);\r
+        group->Add(tipImg);\r
+    }\r
+    return;\r
+}\r
+\r
+UIViewGroup *TipsSuccMessageView::ShowUpViewInit(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView::ShowUpViewInit");\r
+    if (group == nullptr) {\r
+        group = new UIViewGroup();\r
+        if (group == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
+            return nullptr;\r
+        }\r
+        group->SetPosition(0, 0);\r
+        group->SetWidth(HORIZONTAL_RESOLUTION);\r
+        group->SetHeight(VERTICAL_RESOLUTION);\r
+    }\r
+    if (titleLabel == nullptr) {\r
+        titleLabel = new UILabel();\r
+        if (titleLabel == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView titleLabel new fail");\r
+            return nullptr;\r
+        }\r
+        titleLabel->SetPosition(0, 244, HORIZONTAL_RESOLUTION, 45); // 0:x 244:y 454:width 45:height\r
+        titleLabel->SetText("连接成功");\r
+        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40:font data\r
+        titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
+        titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
+                             UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+        group->Add(titleLabel);\r
+    }\r
+    InitNameLabel();\r
+    ShowUpButtonBack();\r
+    UIView::OnDragListener *tipsDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
+    UIView::OnDragListener *tipsDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
+    if ((tipsDragListener == nullptr) && (tipsDragListener2 == nullptr)) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "tipsDragListener GetInstance fail");\r
+        return nullptr;\r
+    }\r
+    if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+        group->SetOnDragListener(tipsDragListener);\r
+    } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+        group->SetOnDragListener(tipsDragListener2);\r
+    }\r
+    group->SetViewId(TIPS_SUCC_MESSAGE_VIEW);\r
+    group->SetDraggable(true);\r
+    group->SetTouchable(true);\r
+    return group;\r
+}\r
+\r
+void TipsSuccMessageView::RefreshNameLabel(const bd_addr_t &bdAddr)\r
+{\r
+    BluetoothCaseInfo caseInfo;\r
+    (void)memcpy_s(caseInfo.addr, BD_ADDR_LEN, bdAddr.addr, BD_ADDR_LEN);\r
+    bool ret = BluetoothModel::GetInstance()->FindNameFromList(&caseInfo);\r
+    if (!ret) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView FindNameFromList fail");\r
+        return;\r
+    }\r
+    if (bluetoothNameLabel == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsSuccMessageView::RefreshNameLabel bluetoothNameLabel == nullptr");\r
+        return;\r
     }\r
+    bluetoothNameLabel->SetText(reinterpret_cast<const char *>(caseInfo.deviceName));\r
+}\r
 }
\ No newline at end of file