设置视图中将蓝牙耳机Slice修改为蓝牙Slice,蓝牙耳机界面可以通过蓝牙界面进入,并且蓝牙界面配置了开启传统蓝牙按钮,但需要开启蓝牙设备接口
authorluozheng <1732036298@qq.com>
Tue, 20 Feb 2024 09:57:18 +0000 (17:57 +0800)
committerluozheng <1732036298@qq.com>
Tue, 20 Feb 2024 09:57:18 +0000 (17:57 +0800)
16 files changed:
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h
code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/MainBluetoothView.cpp
code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/include/ClassicBlueToothModel.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/include/ClassicBlueToothPresenter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/include/ClassicBlueToothView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothModel.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingModel.cpp

index cc7c972..b8cebe0 100644 (file)
@@ -294,6 +294,11 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/MainCompassView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/MainCompassPresenter.cpp
 
+    #经典蓝牙
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/classicbluetooth/src/ClassicBlueToothModel.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/classicbluetooth/src/ClassicBlueToothView.cpp
+
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageAdapter.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageItemView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageModel.cpp
index df179b5..cd06e39 100644 (file)
@@ -33,6 +33,7 @@ typedef enum : uint16_t
     VIEW_MAIN_ALARM,              // 闹钟
     VIEW_ALARM_POP_UP,            // 闹铃界面
     VIEW_BLUETOOTH_EARPHONE,      // 连接蓝牙耳机界面
+    VIEW_CLASSIC_BLUETOOTH,       // 经典蓝牙
     VIEW_CALLER_LOG,              // 通话记录界面
     VIEW_INCOMING_CALL,           // 来电界面
     VIEW_BLOODOXY,                // 血氧饱和度界面
index 7a699f5..725c8f8 100644 (file)
@@ -67,6 +67,8 @@ namespace OHOS
         void InitMessageSlice(void);
         /* -------------------------------------------------------------------------- */
         void InitDisplayBrightnessSlice(void);
+        /* --------------------------------- 经典蓝牙界面 --------------------------------- */
+        void InitClassicBluetoothSlice(void);
         /* --------------------------------测试界面------------------------------------ */
 
         void InitBloodSlice(void);
index 437c34a..f6f7ed1 100644 (file)
@@ -57,7 +57,6 @@
 #include "UISampleView.h"
 #include "UISamplePresenter.h"
 
-
 #include "blood/include/BloodCardView.h"
 
 #include "weather/include/MainWeatherPresenter.h"
@@ -95,6 +94,9 @@
 #include "secondaryfunction/include/QuickAccessPresenter.h"
 #include "secondaryfunction/include/QuickAccessView.h"
 
+#include "classicbluetooth/include/ClassicBlueToothPresenter.h"
+#include "classicbluetooth/include/ClassicBlueToothView.h"
+
 #include "BluetoothHeadsetEvent.h"
 #include "graphic_hardware_config.h"
 #include "graphic_service.h"
@@ -141,8 +143,8 @@ namespace OHOS
         {VIEW_SYSTEM, &NativeLauncher::InitSystemSlice},                              // 系统实例化地址
         {VIEW_SOUND_VIBRATION, &NativeLauncher::InitSoundAndVibrationSlice},          // 声音与震动实例化地址
         {VIEW_SYSTEM_VOLUME, &NativeLauncher::InitSystemVolumeSlice},                 // 系统音量
-
-        {VIEW_DISPLAY_BRIGHTNESS, &NativeLauncher::InitDisplayBrightnessSlice}, // 显示与亮度的实例化地址
+        {VIEW_CLASSIC_BLUETOOTH, &NativeLauncher::InitClassicBluetoothSlice},         // 经典蓝牙slice
+        {VIEW_DISPLAY_BRIGHTNESS, &NativeLauncher::InitDisplayBrightnessSlice},       // 显示与亮度的实例化地址
         {VIEW_SECONDARY_FUNCTION, &NativeLauncher::InitSecondaryFunction},
         {VIEW_QUICK_ACCESS, &NativeLauncher::InitQuickAccessSlice}, // 快速访问实例化地址
         {VIEW_FAST_TRAINING, &NativeLauncher::InitFastTrainingSlice},
@@ -443,7 +445,6 @@ namespace OHOS
         NativeAbility::GetInstance().AddSliceProxy(VIEW_UISAMPLE, uisampleView);
     }
 
-
     void NativeLauncher::InitWeatherSlice(void) // 天气
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitWeatherSlice");
@@ -544,7 +545,6 @@ namespace OHOS
         NativeAbility::GetInstance().AddSliceProxy(VIEW_DISPLAY_BRIGHTNESS, uidisplaybrightnessView);
     }
 
-
     void NativeLauncher::InitSecondaryFunction(void) // 辅助功能
     {
         SliceProxy *secondaryfunction = new AbilitySliceProxy<SecondaryFunctionView, SecondaryFunctionPresenter>;
@@ -585,4 +585,16 @@ namespace OHOS
         NativeAbility::GetInstance().AddSliceProxy(VIEW_FAST_TRAINING_ATTENTION, fasttrainingattention);
     }
 
+    void NativeLauncher::InitClassicBluetoothSlice(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitClassicBluetoothSlice");
+        SliceProxy *classicbluetooth = new AbilitySliceProxy<ClassicBlueToothView, ClassicBlueToothPresenter>;
+        if (classicbluetooth == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "classicbluetooth");
+            return;
+        }
+        NativeAbility::GetInstance().AddSliceProxy(VIEW_CLASSIC_BLUETOOTH, classicbluetooth);
+    }
+
 }
index 7fbbc72..820589c 100644 (file)
@@ -343,7 +343,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().ChangeSlice(VIEW_CLASSIC_BLUETOOTH);\r
 }\r
 \r
 void MainBluetoothView::DropEarPhoneView()\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/include/ClassicBlueToothModel.h b/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/include/ClassicBlueToothModel.h
new file mode 100644 (file)
index 0000000..7201aae
--- /dev/null
@@ -0,0 +1,26 @@
+#ifndef CLASSIC_BLUETOOTH_MODEL_H\r
+#define CLASSIC_BLUETOOTH_MODEL_H\r
+\r
+#include "wearable_log.h"\r
+\r
+namespace OHOS\r
+{\r
+    class ClassicBlueToothModel\r
+    {\r
+    public:\r
+        static ClassicBlueToothModel *GetInstance(void);\r
+        void MarkTradionalBlueToothToggleButtonStatus(bool value);\r
+        bool TradionalBlueToothToggleButtonStatusInit();\r
+\r
+    private:\r
+        ClassicBlueToothModel();\r
+        ClassicBlueToothModel(const ClassicBlueToothModel &);\r
+        ClassicBlueToothModel &operator=(const ClassicBlueToothModel &);\r
+        virtual ~ClassicBlueToothModel();\r
+\r
+    private:\r
+        // 用来记录蓝牙开关状态,默认关闭状态\r
+        bool TradionalBlueToothToggleButtonState{false}; \r
+    };\r
+} // namespace OHOS\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/include/ClassicBlueToothPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/include/ClassicBlueToothPresenter.h
new file mode 100644 (file)
index 0000000..ce00c68
--- /dev/null
@@ -0,0 +1,34 @@
+#ifndef CLASSIC_BLUETOOTH_PRESENTER_H\r
+#define CLASSIC_BLUETOOTH_PRESENTER_H\r
+#include "Presenter.h"\r
+#include "ClassicBlueToothView.h"\r
+#include "wearable_log.h"\r
+namespace OHOS\r
+{\r
+    class ClassicBlueToothView;\r
+    class ClassicBlueToothPresenter : public Presenter<ClassicBlueToothView>,\r
+                                      public UIView::OnClickListener,\r
+                                      public UIView::OnDragListener,\r
+                                      public UICheckBox::OnChangeListener\r
+    {\r
+    public:\r
+        ClassicBlueToothPresenter();\r
+        virtual ~ClassicBlueToothPresenter();\r
+\r
+        virtual void OnStart() override;\r
+        virtual void OnPause() override;\r
+        virtual void OnResume() override;\r
+        virtual void OnStop() override;\r
+\r
+        static ClassicBlueToothPresenter *GetInstance();\r
+        void SetBluetoothDeviceSwitchState(bool value);\r
+    private:\r
+        // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
+        bool OnClick(UIView &view, const ClickEvent &event) override;\r
+        bool OnDrag(UIView &view, const DragEvent &event) override;\r
+        bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
+        bool OnChange(UICheckBox::UICheckBoxState state) override;\r
+    };\r
+}\r
+\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/include/ClassicBlueToothView.h b/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/include/ClassicBlueToothView.h
new file mode 100644 (file)
index 0000000..da44ba7
--- /dev/null
@@ -0,0 +1,64 @@
+#ifndef CLASSIC_BLUETOOTH_VIEW_H\r
+#define CLASSIC_BLUETOOTH_VIEW_H\r
+\r
+#include "BaseView.h"\r
+#include "View.h"\r
+#include "components/root_view.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_button.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_toggle_button.h"\r
+#include "wearable_log.h"\r
+namespace OHOS\r
+{\r
+    static const char *BLUETOOTHEARPHONEBUTTON = "BlueToothEarPhoneButton"; // 蓝牙耳机按钮ID\r
+    // 返回setting视图界面\r
+    class ClassicBlueToothPresenter;\r
+    class ClassicBlueToothView : public View<ClassicBlueToothPresenter>\r
+    {\r
+    public:\r
+        struct LabelConfig\r
+        {\r
+            int16_t left;\r
+            int16_t top;\r
+            int16_t width;\r
+            int16_t height;\r
+            int16_t fontSize;      // 字体大小\r
+            int16_t lineHeigh;     // 行高\r
+            const char *text;      // 文本\r
+            uint8_t lineBreakMode; // 断行模式。\r
+        };\r
+        ClassicBlueToothView();\r
+        virtual ~ClassicBlueToothView();\r
+        static ClassicBlueToothView *GetInstance(void);\r
+        void ClassicBlueToothViewInit(void);\r
+        void ClearAll(void);\r
+        bool GetTradionalBlueToothToggleButtonState(void);\r
+        void SetTradionalBlueToothToggleButtonState(bool state);\r
+\r
+    public:\r
+        virtual void OnStart() override;\r
+        virtual void OnSetUpView() override;\r
+        virtual void OnTearDownView() override;\r
+        virtual void OnStop() override;\r
+\r
+    private:\r
+        bool SetUpBlueToothScrollView(void);\r
+        UILabel *SetClassicBlueToothViewLabel(LabelConfig &labelconfig);\r
+        bool SetUpBlueToothLabel(void);\r
+        bool SetUpBlueToothEarPhoneButton(void);\r
+        bool SetUpBlueToothToggleButton(void);\r
+        bool SetUpImageView(void);\r
+        UIScrollView *BlueToothScrollView = nullptr;\r
+        UILabel *Title = nullptr;\r
+        UILabel *BlueToothEarPhoneLabel = nullptr;\r
+        UILabel *TradionalBlueToothLabel = nullptr;\r
+        UILabel *AttentionLabel = nullptr;\r
+        UIImageView *image[2]{nullptr};\r
+        UIButton *BlueToothEarPhoneButton = nullptr;\r
+        UIToggleButton *TradionalBlueToothToggleButton = nullptr;\r
+        bool initViewStatus{false};\r
+    };\r
+}\r
+#endif\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothModel.cpp
new file mode 100644 (file)
index 0000000..85ef8b6
--- /dev/null
@@ -0,0 +1,36 @@
+#include "classicbluetooth/include/ClassicBlueToothModel.h"\r
+#include "classicbluetooth/include/ClassicBlueToothPresenter.h"\r
+\r
+namespace OHOS\r
+{\r
+    ClassicBlueToothModel::ClassicBlueToothModel() {}\r
+\r
+    ClassicBlueToothModel::~ClassicBlueToothModel() {}\r
+\r
+    ClassicBlueToothModel *ClassicBlueToothModel::GetInstance(void)\r
+    {\r
+        static ClassicBlueToothModel instance;\r
+        return &instance;\r
+    }\r
+\r
+    /// @brief 标记蓝牙开关的状态\r
+    /// @param value true 开启状态 false 关闭状态\r
+    void ClassicBlueToothModel::MarkTradionalBlueToothToggleButtonStatus(bool value)\r
+    {\r
+        TradionalBlueToothToggleButtonState = value;\r
+    }\r
+\r
+    /// @brief  根据标记蓝牙开关的状态来确定蓝牙切换按钮是"开"还是"关状态\r
+    /// @return true 初始化成功 false 初始化失败\r
+    bool ClassicBlueToothModel::TradionalBlueToothToggleButtonStatusInit(void)\r
+    {\r
+        ClassicBlueToothPresenter *Classicbluetoothpresenter = ClassicBlueToothPresenter::GetInstance();\r
+        if (Classicbluetoothpresenter == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TradionalBlueToothToggleButtonStatusInit ClassicBlueToothPresenter GetInstance fail");\r
+            return false;\r
+        }\r
+        Classicbluetoothpresenter->SetBluetoothDeviceSwitchState(TradionalBlueToothToggleButtonState); // 蓝牙开关状态\r
+        return true;\r
+    }\r
+} // namespace OHOS\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp
new file mode 100644 (file)
index 0000000..4833642
--- /dev/null
@@ -0,0 +1,125 @@
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+#include "graphic_math.h"\r
+#include "classicbluetooth/include/ClassicBlueToothPresenter.h"\r
+#include "classicbluetooth/include/ClassicBlueToothModel.h"\r
+namespace OHOS\r
+{\r
+    // 当前Presenter属性实例化的内存指针\r
+    static ClassicBlueToothPresenter *g_pClassicBlueToothPresenter = nullptr;\r
+\r
+    ClassicBlueToothPresenter::ClassicBlueToothPresenter()\r
+    {\r
+        g_pClassicBlueToothPresenter = this;\r
+    }\r
+\r
+    ClassicBlueToothPresenter::~ClassicBlueToothPresenter()\r
+    {\r
+        g_pClassicBlueToothPresenter = nullptr;\r
+    }\r
+\r
+    ClassicBlueToothPresenter *ClassicBlueToothPresenter::GetInstance()\r
+    {\r
+        return g_pClassicBlueToothPresenter;\r
+    }\r
+\r
+    void ClassicBlueToothPresenter::OnStart()\r
+    {\r
+        Presenter<ClassicBlueToothView>::OnStart();\r
+    }\r
+\r
+    void ClassicBlueToothPresenter::OnPause(void)\r
+    {\r
+\r
+        Presenter<ClassicBlueToothView>::OnPause();\r
+    }\r
+\r
+    void ClassicBlueToothPresenter::OnResume(void)\r
+    {\r
+\r
+        Presenter<ClassicBlueToothView>::OnResume();\r
+    }\r
+\r
+    void ClassicBlueToothPresenter::OnStop(void)\r
+    {\r
+        Presenter<ClassicBlueToothView>::OnStop();\r
+    }\r
+\r
+    /// @brief 设置蓝牙设备的开关状态\r
+    /// @param value true 开启蓝牙 false 关闭蓝牙\r
+    void ClassicBlueToothPresenter::SetBluetoothDeviceSwitchState(bool value)\r
+    {\r
+        ClassicBlueToothView *classicBlueToothView = ClassicBlueToothView::GetInstance();\r
+        if (classicBlueToothView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetBluetoothDeviceSwitchState ClassicBlueToothView GetInstance fail");\r
+            return;\r
+        }\r
+        if (value != false)\r
+        {\r
+            classicBlueToothView->SetTradionalBlueToothToggleButtonState(true);\r
+            ClassicBlueToothModel::GetInstance()->MarkTradionalBlueToothToggleButtonStatus(false); // 将Model层保存的状态清除\r
+        }\r
+    }\r
+\r
+    bool ClassicBlueToothPresenter::OnClick(UIView &view, const ClickEvent &event)\r
+    {\r
+        UNUSED(event);\r
+        ClassicBlueToothView *classicBlueToothView = ClassicBlueToothView::GetInstance();\r
+        if (classicBlueToothView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::GetInstance");\r
+            return false;\r
+        }\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::OnClick");\r
+        if (strcmp(view.GetViewId(), BLUETOOTHEARPHONEBUTTON) == 0)\r
+        {\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_BLUETOOTH_EARPHONE);\r
+        }\r
+\r
+        return true;\r
+    }\r
+\r
+    bool ClassicBlueToothPresenter::OnDrag(UIView &view, const DragEvent &event)\r
+    {\r
+        return true;\r
+    }\r
+\r
+    bool ClassicBlueToothPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
+    {\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
+        {\r
+            uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();     // 上一个SliceId\r
+            uint16_t currentSlice = NativeAbility::GetInstance().GetCurSliceId(); // 当前SliceId\r
+\r
+            if (preSlice == VIEW_MAIN)\r
+            {\r
+                NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
+            }\r
+            else\r
+            {\r
+                NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
+            }\r
+        }\r
+\r
+        return true;\r
+    }\r
+\r
+    bool ClassicBlueToothPresenter::OnChange(UICheckBox::UICheckBoxState state)\r
+    {\r
+        switch (state)\r
+        {\r
+        case UICheckBox::SELECTED:\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BlueTooth Capability Is Enabled");\r
+\r
+            break;\r
+        case UICheckBox::UNSELECTED:\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BlueTooth Capability Is Disabled");\r
+\r
+            break;\r
+        default:\r
+            break;\r
+        }\r
+        return true;\r
+    }\r
+}\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothView.cpp b/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothView.cpp
new file mode 100644 (file)
index 0000000..e1e0ec7
--- /dev/null
@@ -0,0 +1,327 @@
+#include "classicbluetooth/include/ClassicBlueToothView.h"\r
+#include "classicbluetooth/include/ClassicBlueToothPresenter.h"\r
+#include "classicbluetooth/include/ClassicBlueToothModel.h"\r
+\r
+namespace OHOS\r
+{\r
+    static ClassicBlueToothView *g_pClassicBlueToothView{nullptr};\r
+\r
+    ClassicBlueToothView::ClassicBlueToothView()\r
+    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::ClassicBlueToothView");\r
+        g_pClassicBlueToothView = this;\r
+    }\r
+\r
+    ClassicBlueToothView::~ClassicBlueToothView()\r
+    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "~ClassicBlueToothView::ClassicBlueToothView");\r
+        ClearAll();\r
+        g_pClassicBlueToothView = nullptr;\r
+    }\r
+\r
+    ClassicBlueToothView *ClassicBlueToothView::GetInstance()\r
+    {\r
+        return g_pClassicBlueToothView;\r
+    }\r
+\r
+    void ClassicBlueToothView::ClearAll()\r
+    {\r
+        if (initViewStatus == true)\r
+        {\r
+            BlueToothScrollView->RemoveAll();\r
+\r
+            bool state = GetTradionalBlueToothToggleButtonState();\r
+            if (state == true)\r
+            {\r
+                ClassicBlueToothModel::GetInstance()->MarkTradionalBlueToothToggleButtonStatus(true);\r
+            }\r
+\r
+            delete Title;\r
+            Title = nullptr;\r
+\r
+            delete BlueToothEarPhoneLabel;\r
+            BlueToothEarPhoneLabel = nullptr;\r
+\r
+            delete TradionalBlueToothLabel;\r
+            TradionalBlueToothLabel = nullptr;\r
+\r
+            delete AttentionLabel;\r
+            AttentionLabel = nullptr;\r
+\r
+            for (int i = 0; i < 2; i++)\r
+            {\r
+                delete image[i];\r
+                image[i] = nullptr;\r
+            }\r
+\r
+            delete BlueToothEarPhoneButton;\r
+            BlueToothEarPhoneButton = nullptr;\r
+\r
+            delete TradionalBlueToothToggleButton;\r
+            TradionalBlueToothToggleButton = nullptr;\r
+\r
+            delete BlueToothScrollView;\r
+            BlueToothScrollView = nullptr;\r
+        }\r
+    }\r
+\r
+    bool ClassicBlueToothView::SetUpBlueToothScrollView(void)\r
+    {\r
+        BlueToothScrollView = new UIScrollView();\r
+        if (BlueToothScrollView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::BlueToothScrollView new fail!");\r
+            return false;\r
+        }\r
+        BlueToothScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        BlueToothScrollView->SetScrollBlankSize(35);\r
+        BlueToothScrollView->SetReboundSize(50);\r
+        BlueToothScrollView->SetDirection(1);\r
+        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(ClassicBlueToothPresenter::GetInstance());\r
+        if (draglistener == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::draglistener can not be nullptr!");\r
+            return false;\r
+        }\r
+        BlueToothScrollView->SetOnDragListener(draglistener);\r
+        BlueToothScrollView->SetTouchable(true);\r
+        BlueToothScrollView->SetDraggable(true);\r
+\r
+        return true;\r
+    }\r
+\r
+    // 标签配置\r
+    UILabel *ClassicBlueToothView::SetClassicBlueToothViewLabel(LabelConfig &labelconfig)\r
+    {\r
+        UILabel *label = new UILabel();\r
+        if (label == nullptr)\r
+        {\r
+            return nullptr;\r
+        }\r
+        label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); // 位置大小\r
+        label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize);                                       // 字体大小\r
+        label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh);                                    // 字体行高\r
+        label->SetText(labelconfig.text);                                                             // 内容\r
+        label->SetLineBreakMode(labelconfig.lineBreakMode);                                           // 断行模式。\r
+        label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
+        return label;\r
+    }\r
+\r
+    // 标签初始化\r
+    bool ClassicBlueToothView::SetUpBlueToothLabel(void)\r
+    {\r
+        LabelConfig labelconfig = {\r
+            .left = 203,\r
+            .top = 52,\r
+            .width = 65,\r
+            .height = 35,\r
+            .fontSize = 30,\r
+            .lineHeigh = 35,\r
+            .text = "蓝牙",\r
+            .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
+        };\r
+        Title = SetClassicBlueToothViewLabel(labelconfig);\r
+        if (nullptr == Title)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::Title is nullptr!");\r
+            return false;\r
+        }\r
+        labelconfig = {\r
+            .left = 90,\r
+            .top = 153,\r
+            .width = 120,\r
+            .height = 35,\r
+            .fontSize = 30,\r
+            .lineHeigh = 35,\r
+            .text = "蓝牙耳机",\r
+            .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
+        };\r
+        BlueToothEarPhoneLabel = SetClassicBlueToothViewLabel(labelconfig);\r
+        if (nullptr == BlueToothEarPhoneLabel)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::BlueToothEarPhoneLabel is nullptr!");\r
+            return false;\r
+        }\r
+        labelconfig.top = 273;\r
+        labelconfig.text = "传统蓝牙";\r
+        TradionalBlueToothLabel = SetClassicBlueToothViewLabel(labelconfig);\r
+        if (nullptr == TradionalBlueToothLabel)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::TradionalBlueToothLabel is nullptr!");\r
+            return false;\r
+        }\r
+\r
+        labelconfig = {\r
+            .left = 53,\r
+            .top = 379,\r
+            .width = 360,\r
+            .height = 180,\r
+            .fontSize = 20,\r
+            .lineHeigh = 30,\r
+            .text = "注:开启后10分钟没连接成功会自动关闭,因为传统蓝牙长时间打开会增加电耗,建议在有需要的时候使用\n\n(该功能主要用于电话拨打/通知、音乐控制/传输等)",\r
+            .lineBreakMode = UILabel::LINE_BREAK_WRAP,\r
+        };\r
+        AttentionLabel = SetClassicBlueToothViewLabel(labelconfig);\r
+        if (nullptr == AttentionLabel)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::AttentionLabel is nullptr!");\r
+            return false;\r
+        }\r
+\r
+        return true;\r
+    }\r
+\r
+    // 蓝牙耳机按钮\r
+    bool ClassicBlueToothView::SetUpBlueToothEarPhoneButton(void)\r
+    {\r
+        BlueToothEarPhoneButton = new UIButton();\r
+        if (BlueToothEarPhoneButton == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " ClassicBlueToothView::BlueToothEarPhoneButton new  fail!");\r
+            return false;\r
+        }\r
+        BlueToothEarPhoneButton->SetPosition(43, 120, 380, 100);\r
+        BlueToothEarPhoneButton->SetViewId(BLUETOOTHEARPHONEBUTTON);\r
+        BlueToothEarPhoneButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        BlueToothEarPhoneButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff4fc34c, UIButton::PRESSED);\r
+        BlueToothEarPhoneButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED);\r
+        BlueToothEarPhoneButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);\r
+\r
+        UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(ClassicBlueToothPresenter::GetInstance());\r
+        BlueToothEarPhoneButton->SetOnClickListener(clickListener);\r
+\r
+        return true;\r
+    }\r
+\r
+    // 手表蓝牙开关按钮\r
+    bool ClassicBlueToothView::SetUpBlueToothToggleButton()\r
+    {\r
+        TradionalBlueToothToggleButton = new UIToggleButton();\r
+        if (nullptr == TradionalBlueToothToggleButton)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " ClassicBlueToothView::BlueToothEarPhoneButton new  fail!");\r
+            return false;\r
+        }\r
+        TradionalBlueToothToggleButton->SetPosition(298, 265, 100, 50);\r
+        TradionalBlueToothToggleButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+        TradionalBlueToothToggleButton->SetImages("/user/res/TOGGLEBUTTON_ON.bin", "/user/res/TOGGLEBUTTON_OFF.bin");\r
+        UICheckBox::OnChangeListener *changeListener = static_cast<UICheckBox::OnChangeListener *>(ClassicBlueToothPresenter::GetInstance());\r
+        TradionalBlueToothToggleButton->SetOnChangeListener(changeListener);\r
+        return true;\r
+    }\r
+\r
+    bool ClassicBlueToothView::SetUpImageView(void)\r
+    {\r
+        image[0] = new UIImageView();\r
+        if (nullptr == image[0])\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " ClassicBlueToothView::image[0] new  fail!");\r
+            return false;\r
+        }\r
+        image[0]->SetPosition(369, 157, 14, 26);\r
+        image[0]->SetSrc("/user/res/SETTING_NEXT.bin");\r
+\r
+        image[1] = new UIImageView();\r
+        if (nullptr == image[1])\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " ClassicBlueToothView::image[1] new  fail!");\r
+            return false;\r
+        }\r
+        image[1]->SetPosition(43, 240, 380, 100);\r
+        image[1]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        image[1]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        image[1]->SetStyle(STYLE_BORDER_RADIUS, 100);\r
+        return true;\r
+    }\r
+\r
+    /// @brief 获取蓝牙切换按钮的状态\r
+    /// @param  void\r
+    /// @return true 表示开启状态 false 表示开启状态\r
+    bool ClassicBlueToothView::GetTradionalBlueToothToggleButtonState(void)\r
+    {\r
+        return TradionalBlueToothToggleButton->GetState();\r
+    }\r
+\r
+    /// @brief 设置蓝牙切换按钮的状态\r
+    /// @param state true 开启 false 关闭\r
+    void ClassicBlueToothView::SetTradionalBlueToothToggleButtonState(bool state)\r
+    {\r
+        if (TradionalBlueToothToggleButton == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TradionalBlueToothToggleButton is nullptr!");\r
+            return;\r
+        }\r
+        TradionalBlueToothToggleButton->SetState(state);\r
+    }\r
+\r
+    /// @brief 蓝牙界面初始化\r
+    /// @param  void\r
+    void ClassicBlueToothView::ClassicBlueToothViewInit(void)\r
+    {\r
+        if (!SetUpBlueToothScrollView())\r
+        {\r
+            return;\r
+        }\r
+\r
+        if (!SetUpBlueToothLabel())\r
+        {\r
+            return;\r
+        }\r
+\r
+        if (!SetUpBlueToothEarPhoneButton())\r
+        {\r
+            return;\r
+        }\r
+\r
+        if (!SetUpBlueToothToggleButton())\r
+        {\r
+            return;\r
+        }\r
+\r
+        if (!SetUpImageView())\r
+        {\r
+            return;\r
+        }\r
+        ClassicBlueToothModel::GetInstance()->TradionalBlueToothToggleButtonStatusInit();\r
+        initViewStatus = true;\r
+    }\r
+\r
+    void ClassicBlueToothView::OnStart()\r
+    {\r
+        View<ClassicBlueToothPresenter>::OnStart();\r
+        ClassicBlueToothViewInit();\r
+    }\r
+\r
+    void ClassicBlueToothView::OnSetUpView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::OnSetUpView");\r
+        View<ClassicBlueToothPresenter>::OnSetUpView();\r
+        BlueToothScrollView->Add(Title);\r
+        BlueToothScrollView->Add(BlueToothEarPhoneButton);\r
+        BlueToothScrollView->Add(image[0]);\r
+        BlueToothScrollView->Add(image[1]);\r
+        BlueToothScrollView->Add(BlueToothEarPhoneLabel);\r
+        BlueToothScrollView->Add(TradionalBlueToothLabel);\r
+        BlueToothScrollView->Add(AttentionLabel);\r
+        BlueToothScrollView->Add(TradionalBlueToothToggleButton);\r
+        RootView::GetInstance()->Add(BlueToothScrollView);\r
+        Draw();\r
+    }\r
+\r
+    void ClassicBlueToothView::OnTearDownView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::OnTearDownView");\r
+        View<ClassicBlueToothPresenter>::OnTearDownView();\r
+        RootView::GetInstance()->RemoveAll();\r
+        return;\r
+    }\r
+\r
+    void ClassicBlueToothView::OnStop()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::OnStop");\r
+        View<ClassicBlueToothPresenter>::OnStop();\r
+        return;\r
+    }\r
+\r
+}\r
index 43ac836..15f1df8 100644 (file)
@@ -34,7 +34,7 @@ namespace OHOS
         DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance();
         if (displayBrightnessPresent == nullptr)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RaiseToBrightnessCheckBoxButtonStateInit DisplayBrightnessPresenter GetInstance fail");
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail");
             return false;
         }
         displayBrightnessPresent->SetRaiseToBrightnessState(RaiseToBrightnessCheckBoxButtonState); // 抬腕按钮的状态
index eaa17ee..c5f92ac 100644 (file)
@@ -35,7 +35,7 @@ namespace OHOS
         DisplayBrightnessView *displayBrightnessView = DisplayBrightnessView::GetInstance();\r
         if (displayBrightnessView == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPlayerState playersView GetInstance fail");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetRaiseToBrightnessState displayBrightnessView GetInstance fail");\r
             return;\r
         }\r
         if (value != false)\r
index f6e03d8..1c7580d 100644 (file)
@@ -381,7 +381,7 @@ namespace OHOS
     {\r
         if (RaiseToBrightnessCheckBoxButton == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::SetPlayerButtonState playerButton NULL");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RaiseToBrightnessCheckBoxButton is nullptr!");\r
             return;\r
         }\r
         RaiseToBrightnessCheckBoxButton->SetState(state);\r
index 3672941..af86ed7 100644 (file)
@@ -32,12 +32,8 @@ namespace OHOS
 {
 
     map<string, AppViewId> g_jumpView = {
-        {MAIN_CLICK_WEATHER, VIEW_MAIN},                     // 天气界面
-        {MAIN_CLICK_ACTIVITY, VIEW_MAIN_ACTIVITY},           // 活动记录界面
-        {MAIN_CLICK_MESSAGE, VIEW_MAIN},                     // 消息app
-        {MAIN_CLICK_HEARTRATE, VIEW_MAIN},                   // 心率界面
         {DROPDOWN_CLICK_SETTING, VIEW_SETTING},              // 设置
-        {DROPDOWN_CLICK_BLUETOOTH, VIEW_BLUETOOTH_EARPHONE}, // 蓝牙
+        {DROPDOWN_CLICK_BLUETOOTH, VIEW_CLASSIC_BLUETOOTH}, // 蓝牙
     };
 
     // map<string, int> g_chanColor = {         { DROPDOWN_CLICK_FINDMYPHONE, DROPDOWN_DROPDOWN_FIND_PHONE_B },
@@ -143,12 +139,11 @@ namespace OHOS
                 SendMsgToUIService(SCREEN_OFF_ENABLE_TO_UI, 0, &enable, sizeof(int32_t));
             }
         }
-
+        #endif
         if (g_jumpView.count(curViewId) != 0)
         {
             NativeAbility::GetInstance().ChangeSlice(g_jumpView[curViewId]);
         }
-#endif
         return true;
     }
 
index 3dda499..06bc047 100644 (file)
@@ -29,7 +29,7 @@ namespace OHOS
         settings[4] = {SETTING_ITEM_FOUR, PNG_SETTINGS_SYSTEM, "系统", true};
         settings[5] = {SETTING_ITEM_FIVE, PNG_SETTINGS_SETTINGS_POWER_CONTROL, "关机和重启", true};
         settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_ZERO, VIEW_DISPLAY_BRIGHTNESS));
-        settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_ONE, VIEW_BLUETOOTH_EARPHONE));
+        settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_ONE, VIEW_CLASSIC_BLUETOOTH));
         settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_TWO, VIEW_SOUND_VIBRATION));
         settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_THREE, VIEW_SECONDARY_FUNCTION));
         settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_FOUR, VIEW_SYSTEM));