Merge #570 into sdk602patch0626 from refs/changes/570/head 573/target/1 574/target/1
author罗正 <1732036298@qq.com>
Tue, 23 Jul 2024 01:58:55 +0000 (01:58 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Tue, 23 Jul 2024 01:58:55 +0000 (01:58 +0000)
Code review from 罗正

* refs/changes/570/head: (4 commits squashed)

  - 修改恢复出厂设置适配多国语言

  - 1.优化设置视图:添加了表冠控制但效果不佳
    2.滑动关机和重启视图添加按键注册功能
    3.现在设置视图进入关机和重启为“滑动关机重启Slice”

  - 优化屏幕与亮度Slice:
    1.添加了scrollview的表冠控制,
    2.标签断行模式为LINE_BREAK_OSCILLATION改为LINE_BREAK_OSCILLATION
    3.亮屏时长视图实现点击按钮该变亮屏时长单选按钮选中状态

  - 解决手表解绑后恢复出厂设置,如果手机是直接与手表配对成功未选择语言,进入主界面后发现手表缺少字体问题。
    1.如果手机与手表先绑定成功,未选择语言,需选择语言才进入主界面。
    2.如果已选择语言,这时手机与手表绑定成功将自动进入主界面。

Signed-off-by: 罗正 <1732036298@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/570
23 files changed:
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessView.h
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h
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/displaybrightness/src/ScreenDurationView.cpp
code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/FactoryResetView.h
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/RebootAndShutdownModel.h
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/FactoryResetView.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
code/sdk/application/wearable/fd230app/nativeui/settings/include/SettingPresenter.h
code/sdk/application/wearable/fd230app/nativeui/settings/include/SettingView.h
code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingItemView.cpp
code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingModel.cpp
code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingView.cpp
code/sdk/application/wearable/fd230app/nativeui/system/src/SystemFactoryResetView.cpp
code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/drivers/peripheral/config/src/ConfigModel.cpp

index 373a5d5..9c35cbc 100644 (file)
 // #include "dialupdate/include/DialUpdateView.h"
 
 #include "ConfigModel.h"
-#include "rebootdevice/include/RebootModel.h"
+#include "rebootandshutdown/include/RebootAndShutdownModel.h"
 
 //#include "phone/include/PhoneView.h"
 //#include "phone/include/PhonePresenter.h"
@@ -280,7 +280,7 @@ namespace OHOS
         {VIEW_COMPASS, &NativeLauncher::InitCompassSlice},
         {VIEW_CONNECT_PHONE, &NativeLauncher::InitConnectPhoneSlice},
         {VIEW_INDOORWALK, &NativeLauncher::InitIndoorWalkSlice},
-        {VIEW_SHUTDOWN_OR_REBOOT, &NativeLauncher::InitRebootSlice},
+        // {VIEW_SHUTDOWN_OR_REBOOT, &NativeLauncher::InitRebootSlice},
         {VIEW_WEATHER, &NativeLauncher::InitWeatherSlice},                                   // 天气
         {VIEW_GOAL, &NativeLauncher::InitGoalSlice},                                         // 每日目标
         {VIEW_SYSTEM, &NativeLauncher::InitSystemSlice},                                     // 系统实例化地址
@@ -440,7 +440,7 @@ namespace OHOS
         ScreenModels::GetInstance()->PreLoadAppimages();
         // NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
         //  注册按键事件
-        RebootModel::GetInstance()->RegisterAllKeyEvents();
+        RebootAndShutdownModel::GetInstance().RegisterAllKeyEvents();
 
         // 开机检测充电状态
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "get_charge_stat is %d", get_charge_stat());
index 1e070ae..255e916 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-02-18 09:10:05\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-07 19:25:27\r
+ * @LastEditTime: 2024-07-22 16:24:31\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h\r
  */\r
 #ifndef _DISPLAY_BRIGHTNESS_PRESENTER_H\r
@@ -58,15 +58,17 @@ namespace OHOS
     static const char *SCREENDURATIONBUTTON_VIEWID = "SCREENDURATIONBUTTON";                       // 亮屏时长按钮视图id\r
     static const char *RAISETOBRIGHTNESSCHECKBOXBUTTON_VIEWID = "RAISETOBRIGHTNESSCHECKBOXBUTTON"; // 抬腕亮屏checkbox按钮视图id\r
 \r
-    class ScreenDurationRadiobuttonOnChangeListener : public UICheckBox::OnChangeListener\r
+    class ScreenDurationRadiobuttonOnChangeListener : public UICheckBox::OnChangeListener, public UIView::OnClickListener\r
     {\r
     public:\r
+        ScreenDurationRadiobuttonOnChangeListener() {}\r
         ScreenDurationRadiobuttonOnChangeListener(UIView *view)\r
         {\r
             m_view = view;\r
         }\r
         ~ScreenDurationRadiobuttonOnChangeListener() {}\r
         bool OnChange(UICheckBox::UICheckBoxState state) override;\r
+        bool OnClick(UIView &view, const ClickEvent &event) override;\r
 \r
     private:\r
         UIView *m_view{nullptr};\r
index 84b41b6..ea9dcb6 100644 (file)
@@ -35,7 +35,7 @@ namespace OHOS
             int16_t w;\r
             int16_t h;\r
             const char *ViewId;\r
-            //const char *ImageSrc;\r
+            // const char *ImageSrc;\r
         };\r
         struct LabelConfig\r
         {\r
@@ -43,9 +43,9 @@ namespace OHOS
             int16_t top;\r
             int16_t width;\r
             int16_t height;\r
-            int16_t fontSize;      // 字体大小\r
-            int16_t lineHeigh;     // 行高\r
-            //std::string text;      // 文本\r
+            int16_t fontSize;  // 字体大小\r
+            int16_t lineHeigh; // 行高\r
+            // std::string text;      // 文本\r
             int16_t textId;\r
             uint8_t lineBreakMode; // 断行模式。\r
         };\r
@@ -62,17 +62,15 @@ namespace OHOS
         DisplayBrightnessView();\r
         virtual ~DisplayBrightnessView();\r
         static DisplayBrightnessView *GetInstance(void);\r
-        void DisplayAndBrightnessViewInit(void);\r
-        void ClearAll(void);\r
+\r
         bool ChangeDisplayBrightnessView(int16_t thisView); // 切换到“屏幕与亮度”视图\r
         bool ChangeScreenDurationView(int16_t thisView);    // 切换到亮屏时长视图\r
         bool ClickFunc(int16_t interface);\r
         void ChangeView(int16_t hideView, int16_t showView);\r
-        UIScrollView *GetDisplayBrightnessScrollView(int16_t i);\r
-        UICheckBox::UICheckBoxState GetRaiseToBrightnessCheckBoxButtonState(void);\r
         void SetRaiseToBrightnessCheckBoxButtonState(UICheckBox::UICheckBoxState state);\r
         ScreenDurationView *GetScreenDurationView(void);\r
-        UILabelExt * GetSelectScreenDurationLabel(void);\r
+        UILabelExt *GetSelectScreenDurationLabel(void);\r
+\r
     public:\r
         void OnStart() override;\r
         void OnSetUpView() override;\r
@@ -80,20 +78,21 @@ namespace OHOS
         void OnStop() override;\r
 \r
     private:\r
-        // ScreenDurationView *p_ScreenDurationView{nullptr};       // 亮屏时长视图\r
-        std::shared_ptr<ScreenDurationView> p_ScreenDurationView;\r
+        ScreenDurationView *p_ScreenDurationView{nullptr}; // 亮屏时长视图\r
 \r
     private:\r
-        bool SetUpScrollView(void);\r
-        bool SetTheTitle(void);\r
+        UILabelExt *SetUpLabel(LabelConfig &labelconfig);          // 设置标签\r
+        UIImageView *SetUpImageView(ImageConfig &imageconfig);     // 设置图片\r
+        UICheckBox *SetUpCheckBox(CheckBoxConfig &checkboxconfig); // 设置复选框\r
         UIButton *SetTheButton(ButtonConfig &buttonconfig, UIView::OnClickListener *clickListener);\r
+        bool SetTheTitle(void);\r
         bool InitDisplayBrightnessViewButton(void);\r
-        UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
         bool InitDisplayBrightnessViewLabel(void);\r
-        UIImageView *SetUpImageView(ImageConfig &imageconfig); // 设置图片\r
         bool InitDisplayBrightnessViewImage(void);\r
-        UICheckBox *SetUpCheckBox(CheckBoxConfig &checkboxconfig); // 设置复选框\r
         bool InitDisplayBrightnessViewCheckBox(void);\r
+        bool SetUpScrollView(void);\r
+        void DisplayAndBrightnessViewInit(void);\r
+        void ClearAll(void);\r
         UIScrollView *DisplayBrightnessScrollView[2]{nullptr};\r
         UILabelExt *DisplayBrightnessTitleLabel = nullptr; // 显示与亮度标题\r
         UIButton *BringhtnessControlButton = nullptr;      // 亮度调节按钮\r
index 0a04d4c..66b0f20 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-05-06 11:14:31\r
+ * @LastEditTime: 2024-07-22 16:30:36\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h\r
  */\r
 #ifndef SCREEN_DUATION_VIEW_H\r
@@ -14,6 +14,7 @@
 #include "components/ui_image_view.h"\r
 #include "components/ui_label_ext.h"\r
 #include "components/ui_radio_button.h"\r
+#include "components/ui_button.h"\r
 namespace OHOS\r
 {\r
 #define DURATIONS 6\r
@@ -21,7 +22,7 @@ namespace OHOS
     class ScreenDurationView\r
     {\r
     public:\r
-        struct ImageConfig\r
+        struct ButtonConfig\r
         {\r
             int16_t x;\r
             int16_t y;\r
@@ -36,8 +37,7 @@ namespace OHOS
             int16_t height;\r
             int16_t fontSize;      // 字体大小\r
             int16_t lineHeigh;     // 行高\r
-            //const char *text;      // 文本\r
-            int16_t textId;\r
+            int16_t textId;        // 文本id\r
             uint8_t lineBreakMode; // 断行模式。\r
         };\r
         struct RadioButtonConfig\r
@@ -57,9 +57,10 @@ namespace OHOS
         void ClearAll(void);\r
         UIRadioButton *GetRadioButton(int16_t i);\r
         void SetRadioButtonSelectStatus(int16_t i);\r
+        UIButton *GetScreenDurationButton(int16_t i);\r
 \r
     private:\r
-        UIImageView *SetUpImageView(ImageConfig &imageconfig);                 // 设置图片\r
+        UIButton *SetUpButtonView(ButtonConfig &buttonConfig);                 // 设置按钮\r
         UILabelExt *SetUpLabel(LabelConfig &labelconfig);                      // 设置标签\r
         UIRadioButton *SetUpRadioButton(RadioButtonConfig &radiobuttonconfig); // 设置单选框\r
         bool SetUpScrollView(void);\r
@@ -69,9 +70,10 @@ namespace OHOS
         UIScrollView *ScreenDurationScrollView = nullptr;\r
         UILabelExt *ScreenDurationTitleLabel = nullptr;               // 标题\r
         UILabelExt *ScreenDurationLabel[DURATIONS]{nullptr};          // 亮屏时长标签\r
-        UIImageView *BackGroundImage[DURATIONS]{nullptr};             // 放置组件的背景\r
+        UIButton *ScreenDurationButton[DURATIONS]{nullptr};           // 放置组件的按钮\r
         UIRadioButton *ScreenDurationRadioButton[DURATIONS]{nullptr}; // 单选框\r
         UICheckBox::OnChangeListener *SimplifiedChineseRadioButtonChange[DURATIONS]{nullptr};\r
+        UIView::OnClickListener *ScreenDurationButtonClickListener{nullptr};\r
         bool initViewStatus{false};\r
     };\r
 } // namespace OHOS\r
index 95fe487..2add7fb 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-12 20:11:04
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-18 15:31:55
+ * @LastEditTime: 2024-07-22 12:00:13
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
  */
 #include "displaybrightness/include/DisplayBrightnessModel.h"
@@ -60,7 +60,8 @@ namespace OHOS
             return false;
         }
         displayBrightnessPresent->SetSelectScreenDurationLabel(GetScreenDurationTime());
-        UpdateRaiseToBrightnessCheckBoxButtonStatus();
+        // UpdateRaiseToBrightnessCheckBoxButtonStatus();
+        UpdateScreenDurationRadioButtonSlectStatus();
         return true;
     }
 
index 96e0d9e..88e1133 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-18 14:11:36\r
+ * @LastEditTime: 2024-07-22 16:37:02\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp\r
  */\r
 #include "AppViewIDs.h"\r
@@ -20,6 +20,7 @@
 #include <custom_utils.h>\r
 #include "map"\r
 #include "iostream"\r
+#include "string"\r
 #include "ConfigModel.h"\r
 namespace OHOS\r
 {\r
@@ -102,6 +103,12 @@ namespace OHOS
             return;\r
         }\r
 \r
+        if (p_DisplayBrightnessView->GetSelectScreenDurationLabel() == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_DisplayBrightnessView->GetSelectScreenDurationLabel()  is nullptr!");\r
+            return;\r
+        }\r
+\r
         const std::map<uint32_t, int16_t> durationMap = {\r
             {SCREENDURATION_FIVE, STR_5_SECONDS},\r
             {SCREENDURATION_TEN, STR_10_SECONDS},\r
@@ -127,24 +134,25 @@ namespace OHOS
 \r
     void DisplayBrightnessPresenter::OnStart()\r
     {\r
-\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnStart");\r
         Presenter<DisplayBrightnessView>::OnStart();\r
     }\r
 \r
     void DisplayBrightnessPresenter::OnPause(void)\r
     {\r
-\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnPause");\r
         Presenter<DisplayBrightnessView>::OnPause();\r
     }\r
 \r
     void DisplayBrightnessPresenter::OnResume(void)\r
     {\r
-\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnResume");\r
         Presenter<DisplayBrightnessView>::OnResume();\r
     }\r
 \r
     void DisplayBrightnessPresenter::OnStop(void)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnStop");\r
         Presenter<DisplayBrightnessView>::OnStop();\r
     }\r
 \r
@@ -159,11 +167,11 @@ namespace OHOS
         }\r
         if (strcmp(view.GetViewId(), BRINGHTNESSCONTROLBUTTON_VIEW) == 0)\r
         {\r
-            NativeAbility::GetInstance().EnterSlice(VIEW_BRIGHTNESSLEVEL);\r
+            NativeAbility::GetInstance().EnterSlice(VIEW_BRIGHTNESSLEVEL); /*切换到亮度调节slice*/\r
         }\r
         else if (strcmp(view.GetViewId(), SCREENDURATIONBUTTON_VIEWID) == 0)\r
         {\r
-            p_DisplayBrightnessView->ChangeView(DISPLAYBRIGHTNESSVIEW, SCREENDURATIONVIEW); // 切换到亮屏时长视图\r
+            p_DisplayBrightnessView->ChangeView(DISPLAYBRIGHTNESSVIEW, SCREENDURATIONVIEW); // å±\8få¹\95ä¸\8e亮度è§\86å\9b¾å\88\87æ\8d¢å\88°äº®å±\8fæ\97¶é\95¿è§\86å\9b¾\r
         }\r
         return true;\r
     }\r
@@ -181,7 +189,13 @@ namespace OHOS
 \r
     bool DisplayBrightnessPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnDragEnd");\r
         DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
+        if (p_DisplayBrightnessView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView GetInstance fail");\r
+            return false;\r
+        }\r
         if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && DisplayBrightnessPresenter::X_DRAG_FLAG)\r
         {\r
             if (strcmp(view.GetViewId(), SCREENDURATIONSCROLLVIEW) == 0)\r
@@ -203,12 +217,12 @@ namespace OHOS
         switch (state)\r
         {\r
         case UICheckBox::SELECTED:\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched on!");\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched on!");\r
             uapi_take_to_wake(WRIST_RAISE_TO_WAKE_ENABLED);\r
             ConfigModel::GetInstance()->SetRaiseToWake(true);\r
             break;\r
         case UICheckBox::UNSELECTED:\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched off!");\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched off!");\r
             uapi_take_to_wake(WRIST_RAISE_TO_WAKE_DISENABLED);\r
             ConfigModel::GetInstance()->SetRaiseToWake(false);\r
             break;\r
@@ -281,4 +295,48 @@ namespace OHOS
 \r
         return true;\r
     }\r
+\r
+    bool ScreenDurationRadiobuttonOnChangeListener::OnClick(UIView &view, const ClickEvent &event)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ScreenDurationRadiobuttonOnChangeListener::OnClick");\r
+        UIButton *button = dynamic_cast<UIButton *>(&view);\r
+        if (button == nullptr)\r
+        {\r
+            return false;\r
+        }\r
+\r
+        DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
+        if (p_DisplayBrightnessView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetInstance fail!");\r
+            return false;\r
+        }\r
+\r
+        ScreenDurationView *p_ScreenDurationView = p_DisplayBrightnessView->GetScreenDurationView();\r
+        if (p_ScreenDurationView == nullptr)\r
+        {\r
+            return false; // 相关视图不存在,直接返回\r
+        }\r
+        // 关联单选按钮视图和对应的持续时间\r
+        std::map<UIButton *, uint8_t> durationMap = {\r
+            {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton1), ScreenDurationRadioButton1},\r
+            {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton2), ScreenDurationRadioButton2},\r
+            {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton3), ScreenDurationRadioButton3},\r
+            {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton4), ScreenDurationRadioButton4},\r
+            {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton5), ScreenDurationRadioButton5},\r
+            {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton6), ScreenDurationRadioButton6}};\r
+\r
+        auto it = durationMap.find((UIButton *)button);\r
+        if (it != durationMap.end())\r
+        {\r
+            p_ScreenDurationView->SetRadioButtonSelectStatus(it->second);\r
+        }\r
+        else\r
+        {\r
+            // 如果没有找到对应的映射项,可能是逻辑错误或数据不一致\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Logic error or data inconsistency.");\r
+        }\r
+\r
+        return true;\r
+    }\r
 }
\ No newline at end of file
index 022e155..7fdfd34 100644 (file)
@@ -3,20 +3,20 @@
 #include "wearable_log.h"\r
 #include "ConfigModel.h"\r
 #include "ui_resource_string.h"\r
+#include <UiConfig.h>\r
 namespace OHOS\r
 {\r
     static DisplayBrightnessView *g_pDisplayBrightnessView{nullptr};\r
 \r
     DisplayBrightnessView::DisplayBrightnessView()\r
     {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessView");\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessView");\r
         g_pDisplayBrightnessView = this;\r
     }\r
 \r
     DisplayBrightnessView::~DisplayBrightnessView()\r
     {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::~DisplayBrightnessView");\r
-        ClearAll();\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::~DisplayBrightnessView");\r
         g_pDisplayBrightnessView = nullptr;\r
     }\r
 \r
@@ -67,6 +67,11 @@ namespace OHOS
             delete DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW];\r
             DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] = nullptr;\r
         }\r
+        if (p_ScreenDurationView != nullptr)\r
+        {\r
+            delete p_ScreenDurationView;\r
+            p_ScreenDurationView = nullptr;\r
+        }\r
     }\r
 \r
     // 显示与亮度视图scrollView初始化\r
@@ -85,6 +90,8 @@ namespace OHOS
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetDirection(1);\r
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetMaxScrollDistance(1000);\r
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetThrowDrag(true);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->RequestFocus();\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetRotateFactor(2);\r
         UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(DisplayBrightnessPresenter::GetInstance());\r
         if (draglistener == nullptr)\r
         {\r
@@ -108,13 +115,13 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessTitleLabel new fail!");\r
             return false;\r
         }\r
-        DisplayBrightnessTitleLabel->SetPosition(83, 52, 300, 35);\r
+        DisplayBrightnessTitleLabel->SetPosition(83, 50, 300, 35);\r
         DisplayBrightnessTitleLabel->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
         DisplayBrightnessTitleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
         DisplayBrightnessTitleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        // DisplayBrightnessTitleLabel->SetText("屏幕与亮度");\r
-        DisplayBrightnessTitleLabel->SetTextId(STR_SCREEN_AND_BRIGHTNESS);\r
-        DisplayBrightnessTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+        DisplayBrightnessTitleLabel->SetTextId(STR_SCREEN_AND_BRIGHTNESS); /*屏幕与亮度*/\r
+        DisplayBrightnessTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+        DisplayBrightnessTitleLabel->SetRollSpeed(70);\r
         DisplayBrightnessTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         DisplayBrightnessTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
         return true;\r
@@ -135,7 +142,6 @@ namespace OHOS
         button->SetViewId(buttonconfig.ViewId);\r
         button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
         button->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        // button->SetImageSrc(buttonconfig.ImageSrc, buttonconfig.ImageSrc);\r
         button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
         button->SetOnClickListener(clickListener);\r
         return button;\r
@@ -146,8 +152,6 @@ namespace OHOS
     /// @return true 设置成功,false 失败\r
     bool DisplayBrightnessView::InitDisplayBrightnessViewButton(void)\r
     {\r
-        /* -------------------------------------------------------------------------- */\r
-        UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(DisplayBrightnessPresenter::GetInstance());\r
         /* -------------------------------------------------------------------------- */\r
         ButtonConfig buttonconfig;\r
         buttonconfig.x = 43;\r
@@ -155,8 +159,7 @@ namespace OHOS
         buttonconfig.w = 380;\r
         buttonconfig.h = 100;\r
         buttonconfig.ViewId = BRINGHTNESSCONTROLBUTTON_VIEW;\r
-        // buttonconfig.ImageSrc = "/user/res/SETTING_BACKGROUND.bin";\r
-        BringhtnessControlButton = SetTheButton(buttonconfig, clickListener);\r
+        BringhtnessControlButton = SetTheButton(buttonconfig, presenter_);\r
         if (nullptr == BringhtnessControlButton)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::BringhtnessControlButton new fail!");\r
@@ -165,7 +168,7 @@ namespace OHOS
         /* -------------------------------------------------------------------------- */\r
         buttonconfig.y = 240;\r
         buttonconfig.ViewId = SCREENDURATIONBUTTON_VIEWID;\r
-        ScreenDurationButton = SetTheButton(buttonconfig, clickListener);\r
+        ScreenDurationButton = SetTheButton(buttonconfig, presenter_);\r
         if (nullptr == ScreenDurationButton)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ScreenDurationButton new fail!");\r
@@ -185,11 +188,9 @@ namespace OHOS
         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.c_str());                                                     // 内容\r
         label->SetTextId(labelconfig.textId);\r
         label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
-        // label->SetRollSpeed(40);\r
-        //  label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        label->SetRollSpeed(70);\r
         label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
         return label;\r
     }\r
@@ -206,9 +207,8 @@ namespace OHOS
             .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            //.text = "亮度调节",\r
-            .textId = STR_BRIGHTNESS_ADJUSTMENT,\r
-            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+            .textId = STR_BRIGHTNESS_ADJUSTMENT, /*亮度调节*/\r
+            .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
         };\r
         BringhtnessControlLabel = SetUpLabel(labelconfig);\r
         if (BringhtnessControlLabel == nullptr)\r
@@ -219,8 +219,7 @@ namespace OHOS
         /* -------------------------------------------------------------------------- */\r
         labelconfig.top = 273;\r
         labelconfig.width = 180;\r
-        // labelconfig.text = "亮屏时长";\r
-        labelconfig.textId = STR_SCREEN_ON_DURATION;\r
+        labelconfig.textId = STR_SCREEN_ON_DURATION; /*亮屏时长*/\r
         ScreenDurationLabel = SetUpLabel(labelconfig);\r
         if (ScreenDurationLabel == nullptr)\r
         {\r
@@ -229,8 +228,7 @@ namespace OHOS
         }\r
         /* -------------------------------------------------------------------------- */\r
         labelconfig.top = 393;\r
-        // labelconfig.text = "抬腕亮屏";\r
-        labelconfig.textId = STR_RAISE_TO_WAKE;\r
+        labelconfig.textId = STR_RAISE_TO_WAKE; /*抬腕亮屏*/\r
         RaiseToBrightnessLabel = SetUpLabel(labelconfig);\r
         if (RaiseToBrightnessLabel == nullptr)\r
         {\r
@@ -245,9 +243,8 @@ namespace OHOS
             .height = 40,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            //.text = "",\r
             .textId = 0,\r
-            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+            .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
         };\r
         selectScreenDurationLabel = SetUpLabel(labelconfig);\r
         if (selectScreenDurationLabel == nullptr)\r
@@ -278,13 +275,12 @@ namespace OHOS
     /// @return true 设置成功,false 失败\r
     bool DisplayBrightnessView::InitDisplayBrightnessViewImage(void)\r
     {\r
-        const char *NextImageSrc = "/user/res/SETTING_NEXT.bin";\r
         ImageConfig imageconfig = {\r
             .x = 369,\r
             .y = 157,\r
             .w = 14,\r
             .h = 26,\r
-            .ImageSrc = NextImageSrc,\r
+            .ImageSrc = PNG_SETTING_NEXT_IMAGE,\r
         };\r
         NextImage[0] = SetUpImageView(imageconfig);\r
         if (nullptr == NextImage[0])\r
@@ -306,7 +302,7 @@ namespace OHOS
             .y = 360,\r
             .w = 380,\r
             .h = 100,\r
-            .ImageSrc = "/user/res/SETTING_BACKGROUND.bin",\r
+            .ImageSrc = PNG_SETTING_BACKGROUND_IMAGE,\r
         };\r
         RaiseToBrightnessImage = SetUpImageView(imageconfig);\r
         if (nullptr == RaiseToBrightnessImage)\r
@@ -342,8 +338,8 @@ namespace OHOS
             .w = 100,\r
             .h = 50,\r
             .ViewId = RAISETOBRIGHTNESSCHECKBOXBUTTON_VIEWID,\r
-            .select = "/user/res/TOGGLEBUTTON_ON.bin",\r
-            .unselect = "/user/res/TOGGLEBUTTON_OFF.bin",\r
+            .select = PNG_TOGGLEBUTTON_ON_IMAGE,\r
+            .unselect = PNG_TOGGLEBUTTON_OFF_IMAGE,\r
         };\r
         RaiseToBrightnessCheckBoxButton = SetUpCheckBox(checkboxconfig);\r
         if (nullptr == RaiseToBrightnessCheckBoxButton)\r
@@ -351,97 +347,92 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::RaiseToBrightnessCheckBoxButton is nullptr");\r
             return false;\r
         }\r
-        UICheckBox::OnChangeListener *checkBoxListener = static_cast<UICheckBox::OnChangeListener *>(DisplayBrightnessPresenter::GetInstance());\r
-        RaiseToBrightnessCheckBoxButton->SetOnChangeListener(checkBoxListener);\r
+        RaiseToBrightnessCheckBoxButton->SetOnChangeListener(presenter_);\r
         return true;\r
     }\r
 \r
     // 显示与亮度视图初始化\r
     void DisplayBrightnessView::DisplayAndBrightnessViewInit()\r
     {\r
-        if (SetUpScrollView() != true)\r
-        {\r
-            return;\r
-        }\r
-        if (SetTheTitle() != true)\r
-        {\r
-            return;\r
-        }\r
-        if (InitDisplayBrightnessViewButton() != true)\r
-        {\r
-            return;\r
-        }\r
-        if (InitDisplayBrightnessViewLabel() != true)\r
-        {\r
-            return;\r
-        }\r
-        if (InitDisplayBrightnessViewImage() != true)\r
-        {\r
-            return;\r
-        }\r
-        if (InitDisplayBrightnessViewCheckBox() != true)\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayAndBrightnessViewInit");\r
+\r
+        if (!SetUpScrollView() || !SetTheTitle() || !InitDisplayBrightnessViewButton() || !InitDisplayBrightnessViewLabel() ||\r
+            !InitDisplayBrightnessViewImage() || !InitDisplayBrightnessViewCheckBox())\r
         {\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayAndBrightnessViewInit fail!!");\r
             return;\r
         }\r
-        if (!DisplayBrightnessModel::GetInstance()->UpdateRaiseToBrightnessCheckBoxButtonStatus())\r
+        DisplayBrightnessModel::GetInstance()->UpdateRaiseToBrightnessCheckBoxButtonStatus();\r
+        DisplayBrightnessModel::GetInstance()->UpdateSelectScreenDurationLabel();\r
+    }\r
+\r
+    void DisplayBrightnessView::OnStart()\r
+    {\r
+        View<DisplayBrightnessPresenter>::OnStart();\r
+        if (!initViewStatus)\r
         {\r
-            return;\r
+            DisplayAndBrightnessViewInit();\r
+            initViewStatus = true;\r
         }\r
-        if (!DisplayBrightnessModel::GetInstance()->UpdateSelectScreenDurationLabel())\r
+        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::DisplayBrightnessPresenter::GetInstance();\r
+        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+    }\r
+\r
+    void DisplayBrightnessView::OnSetUpView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::OnSetUpView");\r
+        View<DisplayBrightnessPresenter>::OnSetUpView();\r
+        if (DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] == nullptr)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: OnSetUpView  has nullptr");\r
             return;\r
         }\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(DisplayBrightnessTitleLabel);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(BringhtnessControlButton);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(ScreenDurationButton);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(BringhtnessControlLabel);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(ScreenDurationLabel);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(selectScreenDurationLabel);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(NextImage[0]);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(NextImage[1]);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessImage);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessLabel);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessCheckBoxButton);\r
+        RootView::GetInstance()->Add(DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]);\r
+        Draw();\r
     }\r
 \r
-    /// @brief 获取抬腕亮屏按钮状态\r
-    /// @param  void\r
-    /// @return 获取此复选框的状态。\r
-    UICheckBox::UICheckBoxState DisplayBrightnessView::GetRaiseToBrightnessCheckBoxButtonState(void)\r
+    void DisplayBrightnessView::OnTearDownView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::OnTearDownView");\r
+        View<DisplayBrightnessPresenter>::OnTearDownView();\r
+        return;\r
+    }\r
+\r
+    void DisplayBrightnessView::OnStop()\r
     {\r
-        return RaiseToBrightnessCheckBoxButton->GetState();\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::OnStop");\r
+        View<DisplayBrightnessPresenter>::OnStop();\r
+        RootView::GetInstance()->ClearOnKeyActListener();\r
+        RootView::GetInstance()->RemoveAll();\r
+        ClearAll();\r
+        return;\r
     }\r
 \r
     /// @brief 设置抬腕亮屏按钮状态\r
     /// @param state\r
     void DisplayBrightnessView::SetRaiseToBrightnessCheckBoxButtonState(UICheckBox::UICheckBoxState state)\r
     {\r
-        if (RaiseToBrightnessCheckBoxButton == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RaiseToBrightnessCheckBoxButton is nullptr!");\r
-            return;\r
-        }\r
         RaiseToBrightnessCheckBoxButton->SetState(state);\r
     }\r
 \r
-    /// @brief 获取显示与亮度视图中的scrollView\r
-    /// @param i 第几个scrollView\r
-    /// @return 第几个scrollView的指针\r
-    UIScrollView *DisplayBrightnessView::GetDisplayBrightnessScrollView(int16_t i)\r
-    {\r
-        if (DisplayBrightnessScrollView[i] == nullptr)\r
-        {\r
-            return nullptr;\r
-        }\r
-        return DisplayBrightnessScrollView[i];\r
-    }\r
-\r
     ScreenDurationView *DisplayBrightnessView::GetScreenDurationView(void)\r
     {\r
-        if (p_ScreenDurationView == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetScreenDurationView p_ScreenDurationView is nullptr!");\r
-            return nullptr;\r
-        }\r
-        return p_ScreenDurationView.get();\r
+        return p_ScreenDurationView;\r
     }\r
 \r
     UILabelExt *DisplayBrightnessView::GetSelectScreenDurationLabel(void)\r
     {\r
-        if (selectScreenDurationLabel == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetSelectScreenDurationLabel selectScreenDurationLabel is nullptr!");\r
-            return nullptr;\r
-        }\r
         return selectScreenDurationLabel;\r
     }\r
 \r
@@ -462,7 +453,7 @@ namespace OHOS
         if (DisplayBrightnessScrollView[thisView] == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ChangeScreenDurationView");\r
-            p_ScreenDurationView = std::make_shared<ScreenDurationView>();\r
+            p_ScreenDurationView = new ScreenDurationView();\r
             if (p_ScreenDurationView == nullptr)\r
             {\r
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: new scrollView[%d] fail", thisView);\r
@@ -474,7 +465,6 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    /* -------------------------------------------------------------------------- */\r
     // 1.DisplayBrightnessViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。\r
     struct DisplayBrightnessViewMapper\r
     {\r
@@ -520,56 +510,4 @@ namespace OHOS
         DisplayBrightnessScrollView[showView]->SetVisible(true);\r
         Draw();\r
     }\r
-    /* -------------------------------------------------------------------------- */\r
-\r
-    void DisplayBrightnessView::OnStart()\r
-    {\r
-        View<DisplayBrightnessPresenter>::OnStart();\r
-        if (!initViewStatus)\r
-        {\r
-            DisplayAndBrightnessViewInit();\r
-            initViewStatus = true;\r
-        }\r
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::DisplayBrightnessPresenter::GetInstance();\r
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
-    }\r
-\r
-    void DisplayBrightnessView::OnSetUpView()\r
-    {\r
-        View<DisplayBrightnessPresenter>::OnSetUpView();\r
-        if (DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: OnSetUpView  has nullptr");\r
-            return;\r
-        }\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(DisplayBrightnessTitleLabel);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(BringhtnessControlButton);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(ScreenDurationButton);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(BringhtnessControlLabel);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(ScreenDurationLabel);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(selectScreenDurationLabel);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(NextImage[0]);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(NextImage[1]);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessImage);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessLabel);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessCheckBoxButton);\r
-        RootView::GetInstance()->Add(DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]);\r
-        Draw();\r
-    }\r
-\r
-    void DisplayBrightnessView::OnTearDownView()\r
-    {\r
-\r
-        View<DisplayBrightnessPresenter>::OnTearDownView();\r
-        return;\r
-    }\r
-\r
-    void DisplayBrightnessView::OnStop()\r
-    {\r
-\r
-        View<DisplayBrightnessPresenter>::OnStop();\r
-        RootView::GetInstance()->ClearOnKeyActListener();\r
-        RootView::GetInstance()->RemoveAll();\r
-        return;\r
-    }\r
 }
\ No newline at end of file
index d1dc438..546b2ce 100644 (file)
@@ -3,6 +3,7 @@
 #include "displaybrightness/include/DisplayBrightnessModel.h"\r
 #include "wearable_log.h"\r
 #include "ui_resource_string.h"\r
+#include <UiConfig.h>\r
 namespace OHOS\r
 {\r
 \r
@@ -10,13 +11,13 @@ namespace OHOS
 \r
     ScreenDurationView::ScreenDurationView()\r
     {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationView");\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationView");\r
         g_pScreenDurationView = this;\r
     }\r
 \r
     ScreenDurationView::~ScreenDurationView()\r
     {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::~ScreenDurationView");\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::~ScreenDurationView");\r
         ClearAll();\r
         g_pScreenDurationView = nullptr;\r
     }\r
@@ -30,43 +31,61 @@ namespace OHOS
     {\r
         if (initViewStatus == true)\r
         {\r
-            ScreenDurationScrollView->RemoveAll();\r
-\r
-            delete ScreenDurationTitleLabel;\r
-            ScreenDurationTitleLabel = nullptr;\r
-\r
-            for (int i = 0; i < DURATIONS; i++)\r
+            if (ScreenDurationScrollView != nullptr)\r
             {\r
-                delete ScreenDurationLabel[i];\r
-                ScreenDurationLabel[i] = nullptr;\r
-\r
-                delete BackGroundImage[i];\r
-                BackGroundImage[i] = nullptr;\r
-\r
-                delete SimplifiedChineseRadioButtonChange[i];\r
-                SimplifiedChineseRadioButtonChange[i] = nullptr;\r
-\r
-                delete ScreenDurationRadioButton[i];\r
-                ScreenDurationRadioButton[i] = nullptr;\r
+                ScreenDurationScrollView->RemoveAll();\r
+                if (ScreenDurationTitleLabel != nullptr)\r
+                {\r
+                    delete ScreenDurationTitleLabel;\r
+                    ScreenDurationTitleLabel = nullptr;\r
+                }\r
+                for (int i = 0; i < DURATIONS; i++)\r
+                {\r
+                    if (ScreenDurationLabel[i] != nullptr)\r
+                    {\r
+                        delete ScreenDurationLabel[i];\r
+                        ScreenDurationLabel[i] = nullptr;\r
+                    }\r
+                    if (ScreenDurationButton[i])\r
+                    {\r
+                        delete ScreenDurationButton[i];\r
+                        ScreenDurationButton[i] = nullptr;\r
+                    }\r
+                    if (SimplifiedChineseRadioButtonChange[i] != nullptr)\r
+                    {\r
+                        delete SimplifiedChineseRadioButtonChange[i];\r
+                        SimplifiedChineseRadioButtonChange[i] = nullptr;\r
+                    }\r
+                    if (ScreenDurationRadioButton[i])\r
+                    {\r
+                        delete ScreenDurationRadioButton[i];\r
+                        ScreenDurationRadioButton[i] = nullptr;\r
+                    }\r
+                }\r
+                if (ScreenDurationButtonClickListener != nullptr)\r
+                {\r
+                    delete ScreenDurationButtonClickListener;\r
+                    ScreenDurationButtonClickListener = nullptr;\r
+                }\r
+                delete ScreenDurationScrollView;\r
+                ScreenDurationScrollView = nullptr;\r
             }\r
-            delete ScreenDurationScrollView;\r
-            ScreenDurationScrollView = nullptr;\r
         }\r
     }\r
 \r
     // 设置图片\r
-    UIImageView *ScreenDurationView::SetUpImageView(ImageConfig &imageconfig)\r
+    UIButton *ScreenDurationView::SetUpButtonView(ButtonConfig &buttonConfig)\r
     {\r
-        UIImageView *Image = new UIImageView();\r
-        if (Image == nullptr)\r
+        UIButton *button = new UIButton();\r
+        if (button == nullptr)\r
         {\r
             return nullptr;\r
         }\r
-        Image->SetPosition(imageconfig.x, imageconfig.y, imageconfig.w, imageconfig.h);\r
-        Image->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
-        Image->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        Image->SetStyle(STYLE_BORDER_RADIUS, 100);\r
-        return Image;\r
+        button->SetPosition(buttonConfig.x, buttonConfig.y, buttonConfig.w, buttonConfig.h);\r
+        button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
+\r
+        return button;\r
     }\r
 \r
     // 设置标签\r
@@ -80,10 +99,9 @@ namespace OHOS
         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->SetTextId(labelconfig.textId);               // 内容\r
-        label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
-        // label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        label->SetTextId(labelconfig.textId);                                                         // 内容\r
+        label->SetLineBreakMode(labelconfig.lineBreakMode);                                           // 断行模式。\r
+        label->SetRollSpeed(70);\r
         label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
         return label;\r
     }\r
@@ -118,6 +136,8 @@ namespace OHOS
         ScreenDurationScrollView->SetDirection(1);\r
         ScreenDurationScrollView->SetMaxScrollDistance(1000);\r
         ScreenDurationScrollView->SetThrowDrag(true);\r
+        ScreenDurationScrollView->RequestFocus();\r
+        ScreenDurationScrollView->SetRotateFactor(2);\r
         UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(DisplayBrightnessPresenter::GetInstance());\r
         if (draglistener == nullptr)\r
         {\r
@@ -133,22 +153,25 @@ namespace OHOS
     // 亮屏时长视图“图片”初始化\r
     bool ScreenDurationView::SetUpScreenDurationViewImageView(void)\r
     {\r
-        ImageConfig imageconfig = {\r
+        ButtonConfig buttonConfig = {\r
             .x = 39,\r
             .y = 120,\r
             .w = 380,\r
             .h = 100,\r
         };\r
 \r
+        ScreenDurationButtonClickListener = static_cast<UIView::OnClickListener *>(new ScreenDurationRadiobuttonOnChangeListener());\r
+\r
         for (int i = 0; i < DURATIONS; i++)\r
         {\r
-            imageconfig.y = 120 + (i * 120);\r
-            BackGroundImage[i] = SetUpImageView(imageconfig);\r
-            if (BackGroundImage[i] == nullptr)\r
+            buttonConfig.y = 120 + (i * 120);\r
+            ScreenDurationButton[i] = SetUpButtonView(buttonConfig);\r
+            if (ScreenDurationButton[i] == nullptr)\r
             {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::BackGroundImage[%d] is nullptr!", i);\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationButton[%d] is nullptr!", i);\r
                 return false;\r
             }\r
+            ScreenDurationButton[i]->SetOnClickListener(ScreenDurationButtonClickListener);\r
         }\r
         return true;\r
     }\r
@@ -159,14 +182,13 @@ namespace OHOS
         // 创建ScreenDurationTitleLabel\r
         LabelConfig labelconfig = {\r
             .left = 83,\r
-            .top = 52,\r
+            .top = 50,\r
             .width = 300,\r
             .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            //.text = "亮屏时长",\r
-            .textId = STR_SCREEN_ON_DURATION,\r
-            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+            .textId = STR_SCREEN_ON_DURATION, /*亮屏时长*/\r
+            .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
         };\r
 \r
         ScreenDurationTitleLabel = SetUpLabel(labelconfig);\r
@@ -186,7 +208,7 @@ namespace OHOS
             .fontSize = 30,\r
             .lineHeigh = 35,\r
             .textId = STR_SCREEN_ON_DURATION,\r
-            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+            .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
         };\r
 \r
         // const char *durations[DURATIONS] = {"5秒", "10秒", "15秒", "30秒", "60秒", "300秒"};\r
@@ -215,8 +237,8 @@ namespace OHOS
             .x = 300,\r
             .w = 80,\r
             .h = 80,\r
-            .select = "/user/res/CHECKBOX_ON.bin",\r
-            .unselect = "/user/res/CHECKBOX_OFF.bin",\r
+            .select = PNG_CHECKBOX_ON_IMAGE,\r
+            .unselect = PNG_CHECKBOX_OFF_IMAGE,\r
         };\r
 \r
         int y_positions = 130;\r
@@ -236,68 +258,66 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    // 设置哪个单选按钮被选中\r
-    void ScreenDurationView::SetRadioButtonSelectStatus(int16_t i)\r
+    // 亮屏时长视图初始化\r
+    UIScrollView *ScreenDurationView::ScreenDurationViewInit(void)\r
     {\r
-        if (GetRadioButton(i) != nullptr)\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationViewInit");\r
+        if (!SetUpScrollView() || !SetUpScreenDurationViewImageView() ||\r
+            !SetUpScreenDurationViewLabel() || !SetUpScreenDurationViewRadioButton())\r
         {\r
-            GetRadioButton(i)->SetState(UICheckBox::SELECTED);\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationViewInit fail!!");\r
+            return nullptr;\r
         }\r
-        else\r
+\r
+        if (!DisplayBrightnessModel::GetInstance()->UpdateScreenDurationRadioButtonSlectStatus())\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::GetRadioButton(%d) is nullptr!", i);\r
+            return nullptr;\r
         }\r
-    }\r
 \r
-    UIRadioButton *ScreenDurationView::GetRadioButton(int16_t i)\r
-    {\r
-        if (ScreenDurationRadioButton[i] == nullptr)\r
+        /* ----------------------------------- Add ---------------------------------- */\r
+        ScreenDurationScrollView->Add(ScreenDurationTitleLabel);\r
+        for (int i = 0; i < DURATIONS; i++)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", i);\r
-            return nullptr;\r
+            ScreenDurationScrollView->Add(ScreenDurationButton[i]);\r
+            ScreenDurationScrollView->Add(ScreenDurationLabel[i]);\r
+            ScreenDurationScrollView->Add(ScreenDurationRadioButton[i]);\r
         }\r
-        return ScreenDurationRadioButton[i];\r
+        initViewStatus = true;\r
+        return ScreenDurationScrollView;\r
     }\r
 \r
-    // 亮屏时长视图初始化\r
-    UIScrollView *ScreenDurationView::ScreenDurationViewInit(void)\r
+    // 设置哪个单选按钮被选中\r
+    void ScreenDurationView::SetRadioButtonSelectStatus(int16_t index)\r
     {\r
-        /* ------------------------ ScreenDurationScrollView ------------------------ */\r
-        if (!SetUpScrollView())\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationScrollView is nullptr!");\r
-            return nullptr;\r
-        }\r
-        /* ----------------------------- BackGroundImage[] ---------------------------- */\r
-        if (!SetUpScreenDurationViewImageView())\r
+        if (index >= DURATIONS || index < 0)\r
         {\r
-            return nullptr;\r
+            return;\r
         }\r
-        /* -------------------------- ScreenDurationLabel[] ------------------------- */\r
-        if (!SetUpScreenDurationViewLabel())\r
+\r
+        if (ScreenDurationRadioButton[index] == nullptr)\r
         {\r
-            return nullptr;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", index);\r
+            return;\r
         }\r
-        /* ----------------------- ScreenDurationRadioButton[] ---------------------- */\r
-        if (!SetUpScreenDurationViewRadioButton())\r
+\r
+        for (int i = 0; i < DURATIONS; i++)\r
         {\r
-            return nullptr;\r
+            ScreenDurationRadioButton[i]->SetState(i == index ? UICheckBox::SELECTED : UICheckBox::UNSELECTED);\r
         }\r
+    }\r
 \r
-        if (!DisplayBrightnessModel::GetInstance()->UpdateScreenDurationRadioButtonSlectStatus())\r
+    UIRadioButton *ScreenDurationView::GetRadioButton(int16_t i)\r
+    {\r
+        if (ScreenDurationRadioButton[i] == nullptr)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", i);\r
             return nullptr;\r
         }\r
+        return ScreenDurationRadioButton[i];\r
+    }\r
 \r
-        /* ----------------------------------- Add ---------------------------------- */\r
-        ScreenDurationScrollView->Add(ScreenDurationTitleLabel);\r
-        for (int i = 0; i < DURATIONS; i++)\r
-        {\r
-            ScreenDurationScrollView->Add(BackGroundImage[i]);\r
-            ScreenDurationScrollView->Add(ScreenDurationLabel[i]);\r
-            ScreenDurationScrollView->Add(ScreenDurationRadioButton[i]);\r
-        }\r
-        initViewStatus = true;\r
-        return ScreenDurationScrollView;\r
+    UIButton *ScreenDurationView::GetScreenDurationButton(int16_t i)\r
+    {\r
+        return ScreenDurationButton[i];\r
     }\r
 }
\ No newline at end of file
index fa31424..c7baeb3 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 14:17:43
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-20 18:11:50
+ * @LastEditTime: 2024-07-22 19:03:52
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchPresenter.cpp
  */
 #include "AppViewIDs.h"
@@ -14,6 +14,7 @@
 #include <custom_utils.h>
 #include "languagecode/LanguageInit.h"
 #include "ConfigModel.h"
+#include "settings/include/SettingModel.h"
 namespace OHOS
 {
     extern Language languages[];
@@ -94,10 +95,19 @@ namespace OHOS
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingPresenter::OnClick");
 
         /* -------------------------------------------------------------------------- */
-        if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
+        if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true && SettingModel::GetInstance().GetPhoneConnectStatus() == false)
         {
             NativeAbility::GetInstance().EnterSlice(VIEW_WATCH_QR_CODE);
         }
+        else if(ConfigModel::GetInstance()->GetisFirstTimeStart() == true && SettingModel::GetInstance().GetPhoneConnectStatus() == true)
+        {
+            if (ConfigModel::GetInstance()->GetLanguage() == -1)
+            {
+                uapi_set_screen_on_api();
+                NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+                ConfigModel::GetInstance()->SetisFirstTimeStart(false);
+            }
+        }
         /* -------------------------------------------------------------------------- */
 
         UNUSED(event);
index d6199e5..91f8a80 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-20 14:12:16
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-20 14:54:48
+ * @LastEditTime: 2024-07-22 09:33:26
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/FactoryResetVIew.h
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
@@ -17,6 +17,7 @@
 #include "components/ui_button.h"
 #include "components/ui_view_group.h"
 #include "components/ui_label_ext.h"
+#include "components/ui_scroll_view.h"
 namespace OHOS
 {
     static constexpr const char *FACTORY_RESET_GROUPVIEW = "FactoryResetGroupView";
@@ -35,6 +36,7 @@ namespace OHOS
 
     private:
         UIViewGroup *group{nullptr};
+        UIScrollView*scrollView{nullptr};
         UILabelExt *Title{nullptr};
         UIImageView *FactoryResetImage{nullptr};
         UILabelExt *FactoryResetNote{nullptr};
index 2702c81..d1393fd 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-18 14:55:21
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-20 18:53:51
+ * @LastEditTime: 2024-07-22 10:28:51
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/RebootAndShutdownModel.h
  */
 
@@ -16,12 +16,21 @@ namespace OHOS
     public:
         static RebootAndShutdownModel &GetInstance(void);
         void HandFirstTimeStartJumpToMainView(void);
+        void RegisterAllKeyEvents(void);
 
     private:
         RebootAndShutdownModel();
         ~RebootAndShutdownModel();
         RebootAndShutdownModel(const RebootAndShutdownModel &) = delete;
         RebootAndShutdownModel &operator=(const RebootAndShutdownModel &) = delete;
+
+        bool RegisterPowerKeyLongPressEvent(void);
+        bool RegisterPowerKeyDoubleClickEvent(void);
+        bool RegisterFuncKeyPressEvent(void);
+        bool RegisterFuncKeyLongPressEvent(void);
+        bool RegisterFuncKeyClickEvent(void);
+        bool RegisterFuncKeyDoubleClickEvent(void);
+
     };
 }
 
index b09d102..06a74c4 100644 (file)
@@ -31,37 +31,41 @@ namespace OHOS
     {
         if (initViewStatus == true)
         {
-            group->RemoveAll();
-
-            if (Title != nullptr)
+            if (scrollView != nullptr)
             {
-                delete Title;
-                Title = nullptr;
-            }
+                scrollView->RemoveAll();
+                if (Title != nullptr)
+                {
+                    delete Title;
+                    Title = nullptr;
+                }
 
-            if (FactoryResetImage != nullptr)
-            {
-                delete FactoryResetImage;
-                FactoryResetImage = nullptr;
-            }
+                if (FactoryResetImage != nullptr)
+                {
+                    delete FactoryResetImage;
+                    FactoryResetImage = nullptr;
+                }
 
-            if (FactoryResetNote != nullptr)
-            {
-                delete FactoryResetNote;
-                FactoryResetNote = nullptr;
-            }
+                if (FactoryResetNote != nullptr)
+                {
+                    delete FactoryResetNote;
+                    FactoryResetNote = nullptr;
+                }
 
-            if (FactoryResetButtonCheckOn != nullptr)
-            {
-                delete FactoryResetButtonCheckOn;
-                FactoryResetButtonCheckOn = nullptr;
+                if (FactoryResetButtonCheckOn != nullptr)
+                {
+                    delete FactoryResetButtonCheckOn;
+                    FactoryResetButtonCheckOn = nullptr;
+                }
+                if (FactoryResetButtonCheckOff != nullptr)
+                {
+                    delete FactoryResetButtonCheckOff;
+                    FactoryResetButtonCheckOff = nullptr;
+                }
+                group->Remove(scrollView);
+                delete scrollView;
+                scrollView = nullptr;
             }
-            if (FactoryResetButtonCheckOff != nullptr)
-            {
-                delete FactoryResetButtonCheckOff;
-                FactoryResetButtonCheckOff = nullptr;
-            }
-
             delete group;
             group = nullptr;
         }
@@ -91,6 +95,21 @@ namespace OHOS
                 return nullptr;
             }
             group->SetOnDragListener(dragListener);
+            /* ------------------------------- scrollView ------------------------------- */
+            scrollView = new UIScrollView();
+            if (scrollView == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FactoryResetView::scrollView new fail!");
+                return nullptr;
+            }
+            scrollView->SetPosition(0, 0, 466, 466);
+            scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+            scrollView->SetScrollBlankSize(50);
+            scrollView->SetReboundSize(35);
+            scrollView->SetMaxScrollDistance(1000);
+            scrollView->SetThrowDrag(true);
+            scrollView->RequestFocus();
+            scrollView->SetRotateFactor(2);
             /* ---------------------------------- Title --------------------------------- */
             Title = new UILabelExt();
             if (Title == nullptr)
@@ -137,10 +156,11 @@ namespace OHOS
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FactoryResetView::new FactoryResetButtonCheckOff fail!");
                 return nullptr;
             }
-            FactoryResetButtonCheckOff->SetPosition(97, 320, 130, 130);
+            FactoryResetButtonCheckOff->SetPosition(97, FactoryResetNote->GetTextHeight() + FactoryResetNote->GetY() + 30, 130, 130);
             FactoryResetButtonCheckOff->SetViewId(FACTORY_RESET_BUTTON_CHECK_OFF);
             FactoryResetButtonCheckOff->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
             FactoryResetButtonCheckOff->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+            FactoryResetButtonCheckOff->SetImagePosition(15, 15);
             FactoryResetButtonCheckOff->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);
             FactoryResetButtonCheckOff->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
             FactoryResetButtonCheckOff->SetImageSrc(PNG_SYSTEM_CHECK_OFF_IMAGE, PNG_SYSTEM_CHECK_OFF_IMAGE);
@@ -158,10 +178,11 @@ namespace OHOS
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FactoryResetView::new FactoryResetButtonCheckOn fail!");
                 return nullptr;
             }
-            FactoryResetButtonCheckOn->SetPosition(240, 320, 130, 130);
+            FactoryResetButtonCheckOn->SetPosition(240, FactoryResetButtonCheckOff->GetY(), 130, 130);
             FactoryResetButtonCheckOn->SetViewId(FACTORY_RESET_BUTTON_CHECK_ON);
             FactoryResetButtonCheckOn->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
             FactoryResetButtonCheckOn->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+            FactoryResetButtonCheckOn->SetImagePosition(15, 15);
             FactoryResetButtonCheckOn->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);
             FactoryResetButtonCheckOn->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
             FactoryResetButtonCheckOn->SetImageSrc(PNG_SYSTEM_CHECK_ON_IMAGE, PNG_SYSTEM_CHECK_ON_IMAGE);
@@ -174,11 +195,12 @@ namespace OHOS
             FactoryResetButtonCheckOn->SetOnClickListener(FactoryResetButtonCheckOnClick);
 
             /* ----------------------------- Add to scroView ---------------------------- */
-            group->Add(Title);
-            group->Add(FactoryResetImage);
-            group->Add(FactoryResetNote);
-            group->Add(FactoryResetButtonCheckOff);
-            group->Add(FactoryResetButtonCheckOn);
+            scrollView->Add(Title);
+            scrollView->Add(FactoryResetImage);
+            scrollView->Add(FactoryResetNote);
+            scrollView->Add(FactoryResetButtonCheckOff);
+            scrollView->Add(FactoryResetButtonCheckOn);
+            group->Add(scrollView);
 
             initViewStatus = true;
         }
index 618de55..227c699 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-18 14:55:27
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-20 18:55:10
+ * @LastEditTime: 2024-07-22 18:52:05
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
  */
 
@@ -12,6 +12,9 @@
 #include "NativeAbility.h"
 #include <AppViewIDs.h>
 #include "settings/include/SettingModel.h"
+#include <custom_utils.h>
+#include "themestyle/include/ThemeStyleModel.h"
+#include "aimodels/include/AiModelsModel.h"
 namespace OHOS
 {
     RebootAndShutdownModel::RebootAndShutdownModel() {}
@@ -24,12 +27,260 @@ namespace OHOS
         return instance;
     }
 
+    /*处理恢复出厂设置后第一次跳转主界面*/
     void RebootAndShutdownModel::HandFirstTimeStartJumpToMainView(void)
     {
-        if(ConfigModel::GetInstance()->GetisFirstTimeStart() == true && SettingModel::GetInstance().GetPhoneConnectStatus() == true)
+        if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true && SettingModel::GetInstance().GetPhoneConnectStatus() == true)
         {
-            NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
-            ConfigModel::GetInstance()->SetisFirstTimeStart(false);
+            if (ConfigModel::GetInstance()->GetLanguage() != -1)
+            {
+                uapi_set_screen_on_api();
+                NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+                ConfigModel::GetInstance()->SetisFirstTimeStart(false);
+            }
         }
     }
+
+#ifdef __cplusplus
+    extern "C"
+    {
+#endif
+
+#include "input_app.h"
+#ifdef __cplusplus
+    }
+#endif
+#include <power_display_service.h>
+
+    static void HandlePowerKeyLongPress(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HandlePowerKeyLongPress");
+        const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        if (!display_api)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr");
+            return;
+        }
+
+        if (display_api->get_screen_state() != SCREEN_ON)
+        {
+            display_api->turn_on_screen();
+        }
+
+        // 切换到关机/重启卡片
+        NativeAbility::GetInstance().EnterSlice(VIEW_REBOOTANDSHUTDOWN);
+    }
+
+    /*注册电源键的长按事件*/
+    bool RebootAndShutdownModel::RegisterPowerKeyLongPressEvent(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootAndShutdownModel::RegisterPowerKeyLongPressEvent");
+        int32_t ret = uapi_button_register_event_cb(HandlePowerKeyLongPress, BUTTON_PWR_LONGPRESS_3S);
+        if (ret != ERRCODE_SUCC)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register PowerKey LongPress Event error, ret = %d", ret);
+            return false;
+        }
+        return true;
+    }
+
+    static void HandlePowerKeyDoubleClick(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandlePowerKeyDoubleClick");
+        // Handle PowerKey DoubleClick logic here
+        const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        if (!display_api)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr");
+            return;
+        }
+
+        if (display_api->get_screen_state() == SCREEN_ON)
+        {
+            uint16_t cursliceId = NativeAbility::GetInstance().GetCurSliceId();
+            if (cursliceId == VIEW_APPLIST)
+            {
+                ThemeStyleModel &themeStyleModel = ThemeStyleModel::GetInstance();
+                ThemeStyle style = themeStyleModel.GetAppListDisplayStyle();
+                themeStyleModel.SetPreApplistStyle(style);
+                themeStyleModel.SetTheSameSliceChangeFlag(true);
+                themeStyleModel.SwitchApplistStyleOnPowerClick(); // 切换样式
+                NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+            }
+        }
+        else
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Screen is not on, skipping applist style change");
+        }
+    }
+
+    /*注册电源键的双击事件*/
+    bool RebootAndShutdownModel::RegisterPowerKeyDoubleClickEvent(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootAndShutdownModel::RegisterPowerKeyDoubleClickEvent");
+        // Register PowerKey DoubleClick event here
+        int32_t ret = uapi_button_register_event_cb(HandlePowerKeyDoubleClick, BUTTON_PWR_CLICKUP_2);
+        if (ret != ERRCODE_SUCC)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register PowerKey DoubleClick Event error, ret = %d", ret);
+            return false;
+        }
+        return true;
+    }
+
+    static void HandFuncKeyOnPress(void)
+    {
+        const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        if (!display_api)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr");
+            return;
+        }
+        display_api->turn_on_screen();
+        // if (display_api->get_screen_state() == SCREEN_OFF) /*处于灭屏状态才亮屏*/
+        // {
+
+        // }
+        // else
+        // {
+        //     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Screen is on not to turn_on_screen");
+        // }
+        return;
+    }
+
+    /*注册功能键的按下事件*/
+    bool RebootAndShutdownModel::RegisterFuncKeyPressEvent(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootAndShutdownModel::RegisterFuncKeyPressEvent");
+        // Register FuncKey Press event here
+        int32_t ret = uapi_button_register_event_cb(HandFuncKeyOnPress, BUTTON1_PRESS);
+        if (ret != ERRCODE_SUCC)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register FuncKey Press Event error, ret = %d", ret);
+            return false;
+        }
+        return true;
+    }
+
+    static void HandFuncKeyOnLongPress(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HandFuncKeyOnLongPress");
+        const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        if (!display_api)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr");
+            return;
+        }
+
+        if (display_api->get_screen_state() == SCREEN_ON)
+        {
+            uint16_t curSliceId = NativeAbility::GetInstance().GetCurSliceId();
+            if (curSliceId == VIEW_AI_VOICE) // 如果当前已在ai语音界面不做切换
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VIEW_AI_VOICE is not switched");
+                return;
+            }
+            // 全局切换到Ai语音界面
+            NativeAbility::GetInstance().EnterSlice(VIEW_AI_VOICE);
+        }
+        else
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Screen is not on, skipping AI voice change");
+        }
+    }
+
+    /*注册功能键的长按(2s)事件*/
+    bool RebootAndShutdownModel::RegisterFuncKeyLongPressEvent(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootAndShutdownModel::RegisterFuncKeyLongPressEvent");
+        int32_t ret = uapi_button_register_event_cb(HandFuncKeyOnLongPress, BUTTON1_LONGPRESS_2S);
+        if (ret != ERRCODE_SUCC)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register FuncKey LongPress Event error, ret = %d", ret);
+            return false;
+        }
+        return true;
+    }
+
+    static void HandleFuncKeyOnClick(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HandleFuncKeyOnClick");
+
+        const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        if (!display_api)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr");
+            return;
+        }
+
+        if (display_api->get_screen_state() == SCREEN_ON)
+        {
+            AiModelsModel &aiModelsModel = AiModelsModel::GetInstance();
+            if (!aiModelsModel.ChangeAiModel())
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to change AI model");
+            }
+        }
+        else
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Screen is not on, skipping AI model change");
+        }
+    }
+
+    /*注册功能键的单击事件*/
+    bool RebootAndShutdownModel::RegisterFuncKeyClickEvent(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootAndShutdownModel::RegisterFuncKeyClickEvent");
+        int32_t ret = uapi_button_register_event_cb(HandleFuncKeyOnClick, BUTTON1_CLICKUP);
+        if (ret != ERRCODE_SUCC)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register FuncKey Click Event error, ret = %d", ret);
+            return false;
+        }
+        return true;
+    }
+
+    static void HandleFuncKeyDoubleClick(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleFuncKeyDoubleClick");
+        const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        if (!display_api)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr");
+            return;
+        }
+        if (display_api->get_screen_state() == SCREEN_ON)
+        {
+            // 切换到显示方式界面
+            NativeAbility::GetInstance().EnterSlice(VIEW_AI_MODELS);
+        }
+        else
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Screen is not on, skipping Slice change");
+        }
+    }
+
+    /*注册功能键双击事件*/
+    bool RebootAndShutdownModel::RegisterFuncKeyDoubleClickEvent(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootAndShutdownModel::RegisterFuncKeyDoubleClickEvent");
+        int32_t ret = uapi_button_register_event_cb(HandleFuncKeyDoubleClick, BUTTON1_CLICKUP_2);
+        if (ret != ERRCODE_SUCC)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register FuncKey DoubleClick Event error, ret = %d", ret);
+            return false;
+        }
+        return true;
+    }
+
+    /*注册所有按键事件*/
+    void RebootAndShutdownModel::RegisterAllKeyEvents(void)
+    {
+        RegisterPowerKeyDoubleClickEvent();
+        RegisterPowerKeyLongPressEvent();
+        RegisterFuncKeyPressEvent();
+        RegisterFuncKeyLongPressEvent();
+        RegisterFuncKeyClickEvent();
+        RegisterFuncKeyDoubleClickEvent();
+    }
 }
index 3aa1fb8..fe56928 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-02-19 11:58:05
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-03 09:36:58
+ * @LastEditTime: 2024-07-22 11:05:00
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/include/SettingPresenter.h
  */
 #ifndef SETTING_PRESENTER_H
@@ -28,13 +28,16 @@ namespace OHOS
 
         void OnStart() override;
         void OnResume() override;
+        void OnPause() override;
         void OnStop() override;
 
         bool OnClick(UIView &view, const ClickEvent &event) override;
         bool OnDrag(UIView &view, const DragEvent &event) override;
+        bool OnDragEnd(UIView &view, const DragEvent &event) override;
         bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
     private:
         SettingModel *settingModel;
+        bool X_DRAG_FLAG{false};
     };
 }
 
index a3832d7..02d1af3 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-30 09:14:38
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-02 16:39:44
+ * @LastEditTime: 2024-07-22 11:13:50
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/include/SettingView.h
  */
 #ifndef SETTING_VIEW_H
@@ -34,11 +34,13 @@ namespace OHOS
         void AddSettingItemToList(const SettingItem &item);
 
     private:
+        void CreateSettingView(void);
+        void ClearAll(void);
         SettingAdapter *listAdapter{nullptr};
         UIScrollView *scrollView{nullptr};
         UIList *contentList{nullptr};
         UILabelExt *title{nullptr};
-        UIView::OnDragListener *dragListener{nullptr};
+        bool viewInitStatus{false};
     };
 }
 #endif // SETTING_VIEW_H
\ No newline at end of file
index fa0df2e..f3e5351 100644 (file)
@@ -2,12 +2,12 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-27 19:48:49
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-28 09:49:17
+ * @LastEditTime: 2024-07-22 11:26:36
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingItemView.cpp
  */
 
 #include "wearable_log.h"
-#include "SettingItemView.h"
+#include "settings/include/SettingItemView.h"
 #include "systemupdate/include/SystemUpdateModel.h"
 namespace OHOS
 {
@@ -22,7 +22,7 @@ namespace OHOS
     static constexpr int16_t SETTINGLABELEXT_H = 40;
     static constexpr int16_t SETTINGLABELEXT_TEXT_FONT = 30;
     static constexpr int16_t SETTINGLABELEXT_LINE_HEIGHT = 35;
-    static constexpr int16_t SETTINGLABELEXT_ROLLSPEED = 40;
+    static constexpr int16_t SETTINGLABELEXT_ROLLSPEED = 70;
 
     static constexpr int16_t SETTINGLABELBUTTONEXT_X = 0;
     static constexpr int16_t SETTINGLABELBUTTONEXT_Y = 0;
@@ -74,7 +74,8 @@ namespace OHOS
         settingLabelExt.SetPosition(SETTINGLABELEXT_X, SETTINGLABELEXT_Y, SETTINGLABELEXT_W, SETTINGLABELEXT_H);
         settingLabelExt.SetStyle(STYLE_TEXT_FONT, SETTINGLABELEXT_TEXT_FONT);
         settingLabelExt.SetStyle(STYLE_LINE_HEIGHT, SETTINGLABELEXT_LINE_HEIGHT);
-        settingLabelExt.SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+        settingLabelExt.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+        settingLabelExt.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
         settingLabelExt.SetRollSpeed(SETTINGLABELEXT_ROLLSPEED);
         settingLabelExt.SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTINGLABELEXT_TEXT_FONT);
 
index 69c7f7c..19ba3ac 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-02-18 09:09:13
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-17 18:34:15
+ * @LastEditTime: 2024-07-22 10:51:12
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingModel.cpp
  */
 #include "settings/include/SettingModel.h"
@@ -30,7 +30,7 @@ namespace OHOS
         settings[index++] = {VIEW_THEME_STYLE, PNG_SETTINGS_DISPLAY_MODE, STR_DISPLAY_MODE, true};
         settings[index++] = {VIEW_MOTION_RECOGNITION, PNG_SETTINGS_MOTION_RECOGNITION, STR_MOTION_RECOGNITION, true};
         settings[index++] = {VIEW_SYSTEM, PNG_SETTINGS_SYSTEM, STR_SYSTEM, true};
-        settings[index++] = {VIEW_SHUTDOWN_OR_REBOOT, PNG_SETTINGS_SHUTDOWN_AND_RESTART, STR_SHUTDOWN_AND_RESTART, true};
+        settings[index++] = {VIEW_REBOOTANDSHUTDOWN, PNG_SETTINGS_SHUTDOWN_AND_RESTART, STR_SHUTDOWN_AND_RESTART, true};
         usedLen = index;
     }
 
index a41033f..8761ed3 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-06-12 11:44:04
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-07-22 11:08:39
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingPresenter.cpp
+ */
 /*
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
  * Description: SettingPresenter.cpp
@@ -5,9 +12,9 @@
  * Create: 2021-11-23
  */
 
-#include "SettingView.h"
-#include "SettingModel.h"
-#include "SettingPresenter.h"
+#include "settings/include/SettingView.h"
+#include "settings/include/SettingModel.h"
+#include "settings/include/SettingPresenter.h"
 #include "RebootModel.h"
 #include "common/key_code.h"
 #include <custom_utils.h>
@@ -35,12 +42,14 @@ namespace OHOS
 
     void SettingPresenter::OnStart()
     {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnStart");
         Presenter<SettingView>::OnStart();
         settingModel->InitSettingItem();
     }
 
     void SettingPresenter::OnResume(void)
     {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnResume");
         if (view_ == nullptr)
         {
             return;
@@ -52,23 +61,43 @@ namespace OHOS
         }
     }
 
+    // 页面准备切换到后台前执行的逻辑
+    void SettingPresenter::OnPause(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnPause");
+        Presenter<SettingView>::OnPause();
+    }
+
     void SettingPresenter::OnStop(void)
     {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnStop");
+        Presenter<SettingView>::OnPause();
         return;
     }
 
     bool SettingPresenter::OnDrag(UIView &view, const DragEvent &event)
     {
+        UNUSED(view);
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnDrag");
+        if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动
+        {
+            X_DRAG_FLAG = true;
+        }
+        return true;
+    }
+
+    bool SettingPresenter::OnDragEnd(UIView &view, const DragEvent &event)
+    {
         UNUSED(view);
-        if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) &&
-            (event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY()))))
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnDragEnd");
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && X_DRAG_FLAG)
         {
-            // NativeAbility::GetInstance().Back();
             NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+            X_DRAG_FLAG = false;
         }
         return true;
     }
+
     // 增加按键事件
     bool SettingPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
     {
index 0596496..02a3073 100644 (file)
@@ -1,15 +1,15 @@
 /*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: SettingView.cpp
- * Author:
- * Create: 2021-11-23
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-07-12 09:55:29
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-07-22 11:33:17
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingView.cpp
  */
 
 #include <string>
-
-#include "SettingView.h"
-#include "SettingItem.h"
-#include "SettingPresenter.h"
+#include "settings/include/SettingView.h"
+#include "settings/include/SettingItem.h"
+#include "settings/include/SettingPresenter.h"
 #include "ui_resource_string.h"
 namespace OHOS
 {
@@ -23,12 +23,12 @@ namespace OHOS
     /* --------------------------------- 设置List --------------------------------- */
     static constexpr int16_t SETTING_LIST_POSITION_X = 43;
     static constexpr int16_t SETTING_LIST_POSITION_Y = 120;
-    static constexpr int16_t SETTING_SCROLLBLANKSIZE = 35; // 设置此滚动视图的空白大小。
+    static constexpr int16_t SETTING_SCROLLBLANKSIZE = 50; // 设置此滚动视图的空白大小。
     static constexpr int16 MAX_SCR_DIS = 1000;
     static constexpr int16 LIST_POS = 20;
     static constexpr int16 SNUM_2 = 2;
-    static constexpr int16 ROLLSPEED = 40;
-    static constexpr int16 REBOUNDSIZE = 30;
+    static constexpr int16 ROLLSPEED = 70;
+    static constexpr int16 REBOUNDSIZE = 35;
 
     SettingView::SettingView()
     {
@@ -38,45 +38,61 @@ namespace OHOS
     SettingView::~SettingView()
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::~SettingView");
-        if (scrollView != nullptr)
-        {
-            scrollView->RemoveAll();
-            delete scrollView;
-            scrollView = nullptr;
-        }
-
-        if (title != nullptr)
-        {
-            delete title;
-            title = nullptr;
-        }
-
-        if (listAdapter != nullptr)
-        {
-            delete listAdapter;
-            listAdapter = nullptr;
-        }
-
-        if (contentList != nullptr)
-        {
-            delete contentList;
-            contentList = nullptr;
-        }
+    }
 
-        if (dragListener != nullptr)
+    void SettingView::ClearAll(void)
+    {
+        if (viewInitStatus)
         {
-            delete dragListener;
-            dragListener = nullptr;
+            if (container_ != nullptr)
+            {
+                container_->RemoveAll();
+                if (scrollView != nullptr)
+                {
+                    scrollView->RemoveAll();
+                    if (title != nullptr)
+                    {
+                        delete title;
+                        title = nullptr;
+                    }
+                    if (listAdapter != nullptr)
+                    {
+                        delete listAdapter;
+                        listAdapter = nullptr;
+                    }
+                    if (contentList != nullptr)
+                    {
+                        delete contentList;
+                        contentList = nullptr;
+                    }
+                    delete scrollView;
+                    scrollView = nullptr;
+                }
+                delete container_;
+                container_ = nullptr;
+            }
         }
     }
 
-    void SettingView::OnStart()
+    void SettingView::CreateSettingView(void)
     {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart");
-        View<SettingPresenter>::OnStart();
-
-        BaseView::RootView(Color::Black().full);
-
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::CreateSettingView");
+        /* -------------------------------------------------------------------------- */
+        scrollView = new UIScrollView();
+        if (scrollView == nullptr)
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::scrollView is nullptr");
+            return;
+        }
+        scrollView->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+        scrollView->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+        scrollView->SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
+        scrollView->SetScrollBlankSize(SETTING_SCROLLBLANKSIZE);
+        scrollView->SetHorizontalScrollState(false);
+        scrollView->SetTouchable(true);
+        scrollView->SetThrowDrag(true);
+        scrollView->SetOnDragListener(presenter_);
+        /* -------------------------------------------------------------------------- */
         title = new UILabelExt();
         if (title == nullptr)
         {
@@ -84,11 +100,10 @@ namespace OHOS
             return;
         }
         title->SetPosition(SETTING_TITLE_POSITION_X, SETTING_TITLE_POSITION_Y, SETTING_TITLE_SIZE_WIDTH, SETTING_TITLE_SIZE_HEIGHT);
-        // title->SetText("设置");
-        title->SetTextId(STR_SETTINGS);
+        title->SetTextId(STR_SETTINGS); /*设置*/
         title->SetStyle(STYLE_TEXT_FONT, SETTINGS_TITLE_FONT_SIZE);
         title->SetStyle(STYLE_LINE_HEIGHT, SETTINGS_TITLE_FONT_HEIGHT);
-        title->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+        title->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
         title->SetRollSpeed(ROLLSPEED);
         title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTINGS_TITLE_FONT_SIZE);
         title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
@@ -116,36 +131,31 @@ namespace OHOS
         contentList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position
         contentList->SetDraggable(true);
         contentList->SetThrowDrag(true);
-        contentList->EnableAutoAlign(true);
         contentList->SetReboundSize(REBOUNDSIZE);
-        contentList->SetMaxScrollDistance(MAX_SCR_DIS / SNUM_2);
+        contentList->SetMaxScrollDistance(MAX_SCR_DIS);
+        contentList->RequestFocus();
+        contentList->SetRotateFactor(2);
+    }
 
-        scrollView = new UIScrollView();
-        if (scrollView == nullptr)
+    void SettingView::OnStart()
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart");
+        View<SettingPresenter>::OnStart();
+        SetContainerView(new UIViewGroup());
+        if (GetContainer() == nullptr)
         {
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::scrollView is nullptr");
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetContainerView fail!!");
             return;
         }
-        scrollView->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
-        scrollView->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
-        scrollView->SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
-        scrollView->SetScrollBlankSize(SETTING_SCROLLBLANKSIZE);
-        scrollView->SetHorizontalScrollState(false);
-        scrollView->SetTouchable(true);
-        scrollView->SetThrowDrag(true);
-
-        dragListener = new SettingPresenter();
-        if (dragListener == nullptr)
+        container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+        if (!viewInitStatus)
         {
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView:: OnStart::new dragListener is nullptr");
-            return;
+            CreateSettingView();
+            viewInitStatus = true;
         }
-        scrollView->SetOnDragListener(dragListener);
-        // scrollView->SetYScrollBarVisible(true);
 
         // 增加按键监听
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::SettingPresenter::GetInstance();
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+        RootView::GetInstance()->SetOnKeyActListener(presenter_);
     }
 
     void SettingView::OnSetUpView()
@@ -159,10 +169,9 @@ namespace OHOS
         }
         scrollView->Add(title);
         scrollView->Add(contentList);
-        RootView::GetInstance()->Add(scrollView);
         contentList->SetAdapter(listAdapter);
-        container_ = scrollView;
-
+        container_->Add(scrollView);
+        Draw();
         return;
     }
 
@@ -170,7 +179,6 @@ namespace OHOS
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnTearDownView");
         View<SettingPresenter>::OnTearDownView();
-        Draw();
         return;
     }
 
@@ -179,7 +187,7 @@ namespace OHOS
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStop");
         View<SettingPresenter>::OnStop();
         RootView::GetInstance()->ClearOnKeyActListener();
-        RootView::GetInstance()->RemoveAll();
+        ClearAll();
         return;
     }
 
index 2491335..e0002e5 100644 (file)
@@ -64,6 +64,12 @@ namespace OHOS
         scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
         scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
         scrollView->SetStyle(STYLE_BORDER_RADIUS, 100);\r
+        scrollView->SetScrollBlankSize(50);\r
+        scrollView->SetReboundSize(35);\r
+        scrollView->SetMaxScrollDistance(1000);\r
+        scrollView->SetThrowDrag(true);\r
+        scrollView->RequestFocus();\r
+        scrollView->SetRotateFactor(2);\r
         UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(SystemPresenter::GetInstance());\r
         if (dragListener == nullptr)\r
         {\r
@@ -81,9 +87,9 @@ namespace OHOS
         Title->SetPosition(83, 52, 300, 35);\r
         Title->SetStyle(STYLE_TEXT_FONT, 30);\r
         Title->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        // Title->SetText("恢复出厂");\r
-        Title->SetTextId(STR_FACTORY_RESET);\r
-        Title->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+        Title->SetTextId(STR_FACTORY_RESET);/*恢复出厂*/\r
+        Title->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+        Title->SetRollSpeed(70);\r
         Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
         /* ---------------------------- FactoryResetImage --------------------------- */\r
@@ -105,8 +111,7 @@ namespace OHOS
         FactoryResetNote->SetPosition(53, 228, 360, 70);\r
         FactoryResetNote->SetStyle(STYLE_TEXT_FONT, 30);\r
         FactoryResetNote->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        // FactoryResetNote->SetText("该操作会清空并重置手表数据,是否确认继续?");\r
-        FactoryResetNote->SetTextId(STR_RESET_CONFIRM_NOTE);\r
+        FactoryResetNote->SetTextId(STR_RESET_CONFIRM_NOTE); /*该操作会清空并重置手表数据,是否确认继续?*/\r
         FactoryResetNote->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
         FactoryResetNote->SetTextColor(Color::GetColorFromRGBA(0xff, 0x8a, 0x36, 0xff));\r
         FactoryResetNote->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
@@ -118,12 +123,13 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemFactoryResetView::new FactoryResetButtonCheckOff fail!");\r
             return nullptr;\r
         }\r
-        FactoryResetButtonCheckOff->SetPosition(97, 320, 130, 130);\r
+        FactoryResetButtonCheckOff->SetPosition(97, FactoryResetNote->GetY() + FactoryResetNote->GetTextHeight() + 30, 130, 130);\r
         FactoryResetButtonCheckOff->SetViewId(FACTORYRESET_CHECKOFF);\r
         FactoryResetButtonCheckOff->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
         FactoryResetButtonCheckOff->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+        FactoryResetButtonCheckOff->SetImagePosition(15, 15);\r
         FactoryResetButtonCheckOff->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);\r
-        FactoryResetButtonCheckOff->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+        FactoryResetButtonCheckOff->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
         FactoryResetButtonCheckOff->SetImageSrc(PNG_SYSTEM_CHECK_OFF_IMAGE, PNG_SYSTEM_CHECK_OFF_IMAGE);\r
         UIView::OnClickListener *FactoryResetButtonCheckOffClick = static_cast<UIView::OnClickListener *>(SystemPresenter::GetInstance());\r
         FactoryResetButtonCheckOff->SetOnClickListener(FactoryResetButtonCheckOffClick);\r
@@ -134,12 +140,13 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemFactoryResetView::new FactoryResetButtonCheckOn fail!");\r
             return nullptr;\r
         }\r
-        FactoryResetButtonCheckOn->SetPosition(240, 320, 130, 130);\r
+        FactoryResetButtonCheckOn->SetPosition(240, FactoryResetButtonCheckOff->GetY(), 130, 130);\r
         FactoryResetButtonCheckOn->SetViewId(FACTORYRESET_CHECKON);\r
         FactoryResetButtonCheckOn->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
         FactoryResetButtonCheckOn->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+        FactoryResetButtonCheckOn->SetImagePosition(15, 15);\r
         FactoryResetButtonCheckOn->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);\r
-        FactoryResetButtonCheckOn->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+        FactoryResetButtonCheckOn->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
         FactoryResetButtonCheckOn->SetImageSrc(PNG_SYSTEM_CHECK_ON_IMAGE, PNG_SYSTEM_CHECK_ON_IMAGE);\r
         UIView::OnClickListener *FactoryResetButtonCheckOnClick = static_cast<UIView::OnClickListener *>(SystemPresenter::GetInstance());\r
         FactoryResetButtonCheckOn->SetOnClickListener(FactoryResetButtonCheckOnClick);\r
index 4ba3c78..0393384 100644 (file)
@@ -463,7 +463,7 @@ void HandleRemoveSleepVeto(Request *request)
 //处理更新选择的亮屏时长标签内容
 void HandleUpdateScreenDuration(Request *request)
 {
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateRaiseToBrightness");
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateScreenDuration");
     GraphicService::GetInstance()->PostGraphicEvent(
         std::bind(&OHOS::DisplayBrightnessModel::UpdateSelectScreenDurationLabel, OHOS::DisplayBrightnessModel::GetInstance()));
 }
index 071f256..cf5ac79 100644 (file)
@@ -1552,6 +1552,7 @@ void set_ScreenDuration(int data) //设置亮屏时长
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     p_ConfigModel->SetScreenDuration(data);
+    uapi_setScreenDuration(data);
 #ifdef FD230
     SendMsgToUIService(UI_UPDATE_SCREEN_DURATION,0,nullptr,0);
 #endif
index 93bcf2a..7ff2738 100644 (file)
@@ -792,7 +792,7 @@ namespace OHOS
     void ConfigModel::SetScreenDuration(unsigned int value)
     {
         set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE,value);
-        cm_initializeScreenDuration();
+        // cm_initializeScreenDuration();
     }
 
     /// @brief 获取亮屏时长单位ms