辅助功能快速访问界面适配功能键,跳转进入的Slice退出逻辑需要修改
authorluozheng <1732036298@qq.com>
Tue, 27 Feb 2024 12:36:44 +0000 (20:36 +0800)
committerluozheng <1732036298@qq.com>
Tue, 27 Feb 2024 12:36:44 +0000 (20:36 +0800)
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativeui/key/src/KeyInputListener.cpp
code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/include/QuickAccessView.h
code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/include/SecondaryFunctionModel.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/include/SecondaryFunctionPresenter.h
code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/src/QuickAccessView.cpp
code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/src/SecondaryFunctionModel.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/src/SecondaryFunctionPresenter.cpp

index 59d816f..ad88b2f 100644 (file)
@@ -281,6 +281,7 @@ set(SOURCES
     #辅助功能
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/SecondaryFunctionPresenter.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/SecondaryFunctionView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/SecondaryFunctionModel.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/FastTrainingAttentionPresenter.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/FastTrainingAttentionView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/FastTrainingPresenter.cpp
index b00cd41..2a1314b 100644 (file)
@@ -17,7 +17,7 @@
 #include "AlarmPopUpPresenter.h"
 #include "CallerLogModel.h"
 #include "MainCallingPresenter.h"
-
+#include "secondaryfunction/include/SecondaryFunctionModel.h"
 namespace OHOS {
 static bool IsCallingNotify()
 {
@@ -130,6 +130,15 @@ void KeyInputListener::OnKeyRelease(const KeyEvent& event)
                 CallVolumeDipSwitchControl(0);
             } else {
                 // 切换到用户配置的快捷卡片
+                if(SecondaryFunctionModel::GetInstance()->GetHeartRateOrBloodOxygenQuickAccessSwitch() == true)
+                {
+                    NativeAbility::GetInstance().ChangeSlice(VIEW_BLOODOXY, TRANSITION_ZOOM);
+                }
+                else
+                {
+                    //之后需要将VIEW_APPLIST改成心率的SliceID
+                    NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TRANSITION_ZOOM);
+                }
             }
         }
     }
index 937315e..5ee548a 100644 (file)
@@ -51,6 +51,7 @@ namespace OHOS
         UIScrollView *QuickAccessViewInit(void);\r
         void ClearAll(void);\r
         UIRadioButton * GetRadioButton(int i);\r
+        void HeartRateOrBloodOxygenQuickAccessRadioButtonSelectStateSet(int state);\r
     private:\r
         bool QuickAccessScrollViewInit(void);\r
         bool QuickAccessLabelInit(void);\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/include/SecondaryFunctionModel.h b/code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/include/SecondaryFunctionModel.h
new file mode 100644 (file)
index 0000000..0fa5897
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef SECONDARY_FUNCTION_MODEL_H
+#define SECONDARY_FUNCTION_MODEL_H
+
+namespace OHOS
+{
+    class SecondaryFunctionModel
+    {
+    public:
+        static SecondaryFunctionModel *GetInstance(void);
+        void KeepHeartRateOrBloodOxygenQuickAccessRadioButtonSelectState(int state);
+        bool HeartRateOrBloodOxygenQuickAccessRadioButtonSelectStateInit(void);
+        bool GetHeartRateOrBloodOxygenQuickAccessSwitch(void);
+    private:
+        SecondaryFunctionModel() {}
+        ~SecondaryFunctionModel() {}
+        SecondaryFunctionModel(const SecondaryFunctionModel &);
+        SecondaryFunctionModel &operator=(const SecondaryFunctionModel &);
+
+    private:
+        int HeartRateOrBloodOxygenQuickAccessSwitch{0}; // 心率或血氧快速访问开关,默认快速访问血氧打开
+    };
+}
+
+#endif
index d424753..39b8142 100644 (file)
@@ -47,7 +47,7 @@ namespace OHOS
         void OnStop() override;\r
 \r
         static SecondaryFunctionPresenter *GetInstance();\r
-\r
+        void SetHeartRateOrBloodOxygenQuickAccessRadioButtonSelectState(int state);\r
     private:\r
         // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
         bool OnClick(UIView &view, const ClickEvent &event) override;\r
index 9d38d76..fc6fffd 100644 (file)
@@ -1,5 +1,6 @@
 #include "secondaryfunction/include/QuickAccessView.h"\r
 #include "secondaryfunction/include/SecondaryFunctionPresenter.h"\r
+#include "secondaryfunction/include/SecondaryFunctionModel.h"\r
 namespace OHOS\r
 {\r
 \r
@@ -36,6 +37,15 @@ namespace OHOS
                 QuickAccessLabel[i] = nullptr;\r
             }\r
 \r
+            if (QuickAccessRadioButton[0]->GetState() == UICheckBox::SELECTED)\r
+            {\r
+                SecondaryFunctionModel::GetInstance()->KeepHeartRateOrBloodOxygenQuickAccessRadioButtonSelectState(0);\r
+            }\r
+            else if (QuickAccessRadioButton[1]->GetState() == UICheckBox::SELECTED)\r
+            {\r
+                SecondaryFunctionModel::GetInstance()->KeepHeartRateOrBloodOxygenQuickAccessRadioButtonSelectState(1);\r
+            }\r
+\r
             // 循环删除 UIImageView 和 UIRadioButton指针数组\r
             for (int i = 0; i < 2; i++)\r
             {\r
@@ -59,6 +69,17 @@ namespace OHOS
         return QuickAccessRadioButton[i];\r
     }\r
 \r
+    void QuickAccessView::HeartRateOrBloodOxygenQuickAccessRadioButtonSelectStateSet(int state)\r
+    {\r
+        if (state == 0)\r
+        {\r
+            QuickAccessRadioButton[0]->SetState(UICheckBox::SELECTED);\r
+        }\r
+        else\r
+        {\r
+            QuickAccessRadioButton[1]->SetState(UICheckBox::SELECTED);\r
+        }\r
+    }\r
     // 设置图片\r
     UIImageView *QuickAccessView::SetUpImageView(ImageConfig &imageconfig)\r
     {\r
@@ -233,6 +254,11 @@ namespace OHOS
             return nullptr;\r
         }\r
 \r
+        if (!SecondaryFunctionModel::GetInstance()->HeartRateOrBloodOxygenQuickAccessRadioButtonSelectStateInit())\r
+        {\r
+            return nullptr;\r
+        }\r
+\r
         initViewStatus = true;\r
         return QuickAccessScrollView;\r
     }\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/src/SecondaryFunctionModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/src/SecondaryFunctionModel.cpp
new file mode 100644 (file)
index 0000000..6fb72ee
--- /dev/null
@@ -0,0 +1,48 @@
+#include "secondaryfunction/include/SecondaryFunctionModel.h"
+#include "secondaryfunction/include/SecondaryFunctionPresenter.h"
+
+#include "wearable_log.h"
+
+namespace OHOS
+{
+    SecondaryFunctionModel *SecondaryFunctionModel::GetInstance(void)
+    {
+        static SecondaryFunctionModel instacne;
+        return &instacne;
+    }
+
+    /// @brief 保存心率或血氧快速访问单选按钮选中状态
+    /// @param state 0 选中心率 1 选中血氧
+    void SecondaryFunctionModel::KeepHeartRateOrBloodOxygenQuickAccessRadioButtonSelectState(int state)
+    {
+        HeartRateOrBloodOxygenQuickAccessSwitch = state;
+    }
+
+    /// @brief 心率或血氧快速访问单选按钮选中状态初始化
+    bool SecondaryFunctionModel::HeartRateOrBloodOxygenQuickAccessRadioButtonSelectStateInit(void)
+    {
+        SecondaryFunctionPresenter *p_SecondaryFunctionPresenter = SecondaryFunctionPresenter::GetInstance();
+        if (p_SecondaryFunctionPresenter == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SecondaryFunctionPresenter GetInstance fail");
+            return false;
+        }
+        p_SecondaryFunctionPresenter->SetHeartRateOrBloodOxygenQuickAccessRadioButtonSelectState(HeartRateOrBloodOxygenQuickAccessSwitch);
+        return true;
+    }
+
+    /// @brief 获取快速访问开关
+    /// @param  void
+    /// @return true 快速访问心率开关开启,反之血氧开关开启
+    bool SecondaryFunctionModel::GetHeartRateOrBloodOxygenQuickAccessSwitch(void)
+    {
+        if (HeartRateOrBloodOxygenQuickAccessSwitch == 0)
+        {
+            return true;
+        }
+        else
+        {
+            return false;
+        }
+    }
+}
index 5421a88..6bc6138 100644 (file)
@@ -2,7 +2,7 @@
 #include "AppViewIDs.h"\r
 #include "NativeAbility.h"\r
 #include "secondaryfunction/include/SecondaryFunctionPresenter.h"\r
-\r
+#include "secondaryfunction/include/SecondaryFunctionModel.h"\r
 namespace OHOS\r
 {\r
 \r
@@ -27,6 +27,27 @@ namespace OHOS
         return g_pSecondaryFunctionPresenter;\r
     }\r
 \r
+    /// @brief 设置心率或血氧快速访问单选按钮选中状态\r
+    /// @param state\r
+    void SecondaryFunctionPresenter::SetHeartRateOrBloodOxygenQuickAccessRadioButtonSelectState(int state)\r
+    {\r
+        QuickAccessView *p_QuickAccessView = QuickAccessView::GetInstance();\r
+        if (p_QuickAccessView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_QuickAccessView GetInstance fail");\r
+            return;\r
+        }\r
+        if (state != 0)\r
+        {\r
+            p_QuickAccessView->HeartRateOrBloodOxygenQuickAccessRadioButtonSelectStateSet(1);\r
+            SecondaryFunctionModel::GetInstance()->KeepHeartRateOrBloodOxygenQuickAccessRadioButtonSelectState(0);\r
+        }\r
+        else\r
+        {\r
+            p_QuickAccessView->HeartRateOrBloodOxygenQuickAccessRadioButtonSelectStateSet(0);\r
+        }\r
+    }\r
+\r
     void SecondaryFunctionPresenter::OnStart()\r
     {\r
 \r