Merge #1055 into sdk602patch0626 from refs/changes/1055/head 1064/target/1 1065/target/1
author罗正 <1732036298@qq.com>
Sun, 29 Sep 2024 13:32:58 +0000 (13:32 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Sun, 29 Sep 2024 13:32:58 +0000 (13:32 +0000)
Code review from 罗正

* refs/changes/1055/head: (9 commits squashed)

  - 修改第一次启动时进入界面逻辑。不再根据手机是否连接做判断条件

  - 解决,#695,手表,弧形列表使用编码器上下滑动时没有和列表显示一样增加震动反馈bug

  - 解决,#878,手表,恢复出厂设置时,频繁点击按钮会持续震动bug
    恢复出厂添加关机动画

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 语言界面修改

  - 指南针界面多国语言翻译

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 1.解决勿扰模式内存泄漏问题
    2.解决勿扰模式界面中label在切换成其他国语言导致字体遮盖下面的Button问题
    3.勿扰模式界面添加编码器控制界面问题
    4.解决勿扰模式内存泄漏问题

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/1055
14 files changed:
code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp
code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassPresenter.h
code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassView.h
code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassView.cpp
code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h
code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp
code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchModel.cpp
code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/ShutDownImageAnimatorView.h
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/ShutDownImageAnimatorView.cpp
code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp

index 103e9b4..897e2ed 100644 (file)
@@ -16,7 +16,7 @@
 namespace OHOS {
 static constexpr int16 NUM_2 = 2;
 static constexpr int16 MAX_SCROLL_DIS = 1000;
-static constexpr int16 ROTATE_FACTOR_2 = 2;
+static constexpr int16 ROTATE_FACTOR_2 = 2.0;
 
 #define ARC_SCALE_LIST_SCALE_FACTOR (400)//(400)
 #define ARC_SCALE_LIST_X (50)
@@ -289,17 +289,17 @@ void ApplistView::ArcScaleListStyleOnStart(void)
         ArcScaleList_->SetPosition(ARC_SCALE_LIST_X, ARC_SCALE_LIST_Y, ARC_SCALE_LIST_WIDTH, ARC_SCALE_LIST_HEIGHT);
         ArcScaleList_->SetItemTransformFunc(&TransformItemBaseOnPosition);
         ArcScaleList_->SetAdapter(ArcScaleListAdapter_);
+        ArcScaleList_->SetDraggable(true);
         ArcScaleList_->SetThrowDrag(true);
         ArcScaleList_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
         ArcScaleList_->SetScrollBlankSize(40);//(50);
-        ArcScaleList_->SetMaxScrollDistance(1000*2); // 1000: max scroll distance
-        ArcScaleList_->SetSwipeACCLevel(800); // 800: compensation distance
-        ArcScaleList_->SetDragACCLevel(5); // 5: drag acceleration
+        ArcScaleList_->SetMaxScrollDistance(MAX_SCROLL_DIS);
         ArcScaleList_->SetYScrollBarVisible(true);
         // ArcScaleList_->SetScrollStateListener(presenter_);
         ArcScaleList_->SetReboundSize(35);
         ArcScaleList_->EnableAutoAlign(true);
         ArcScaleList_->SetItemSpace(10);
+        ArcScaleList_->SetSelectPosition(ARC_SCALE_LIST_HEIGHT / 2);
         ArcScaleList_->SetRotateFactor(ROTATE_FACTOR_2);
         ArcScaleList_->RequestFocus();
         ArcScaleList_->RefreshList();
index cd8770c..c7d820c 100644 (file)
@@ -1,8 +1,9 @@
 /*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: CompassPresenter.h
- * Author:
- * Create: 2021-12-21
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-05 15:20:01
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-09-29 20:01:58
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassPresenter.h
  */
 #ifndef COMPASS_PRESENTER_H
 #define COMPASS_PRESENTER_H
@@ -22,6 +23,7 @@ typedef struct {
     uint16_t beginAngle;
     uint16_t endAngle;
     const char *dir;
+    int dir_textId;//方向的textid
 } CompassItem;
 
 class CompassView;
index 420dee6..9fb75c0 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-12 11:44:04
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-23 15:18:13
+ * @LastEditTime: 2024-09-29 19:48:52
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassView.h
  */
 
@@ -28,6 +28,7 @@ public:
     ~CompassView() override;
 
     void DirectionSetText(const char *text, const char *angle);
+    void DirectionSetTextId(int textId, const char *angle);
     static CompassView *GetInstance(void);
     void CompassStartRotate(int16_t numb);
     bool InitPage(void);
@@ -42,7 +43,7 @@ public:
 private:
     bool LoadCompassImage(UIImageView *view, uint32_t resId);
     void ClearAll(void);
-    UILabel *directionLabel{nullptr};                               //方向标签
+    UILabelExt *directionLabel{nullptr};                               //方向标签
     UILabel *angledLabel{nullptr};                                  //角度标签
     UIImageView *backGround{nullptr};                               //背景图片
     UIImageView *PlaceMarkerImage{nullptr};                         //放置标记图片
index 454ae76..9b8c4b8 100644 (file)
@@ -9,6 +9,7 @@
 #include "compass/include/CompassModel.h"
 #include "graphic_service.h"
 #include "gfx_utils/mem_check.h"
+#include "ui_resource_string.h"
 namespace OHOS {
 static constexpr int16_t RIGHT_NORTH_DOWN_23 = 23;
 static constexpr int16_t RIGHT_EASTNORTH_UP_68 = 68;
@@ -43,14 +44,23 @@ static constexpr const char *WESTSOUTH_DIRECTION =  (char *)"西南";
 static constexpr const char *EASTSOUTH_DIRECTION =  (char *)"东南";
 static constexpr const char *EASTNORTH_DIRECTION =  (char *)"东北";
 
+static constexpr const int NORTH_DIRECTION_TEXTID =  STR_NORTH;//北
+static constexpr const int SOUTH_DIRECTION_TEXTID =  STR_SOUTH;//南
+static constexpr const int WEST_DIRECTION_TEXTID =  STR_WEST;//西
+static constexpr const int EAST_DIRECTION_TEXTID =  STR_EAST;//东
+static constexpr const int WESTNORTH_DIRECTION_TEXTID =  STR_NORTHWEST;//西北
+static constexpr const int WESTSOUTH_DIRECTION_TEXTID =  STR_SOUTHWEST;//西南
+static constexpr const int EASTSOUTH_DIRECTION_TEXTID =  STR_SOUTHEAST;//西南
+static constexpr const int EASTNORTH_DIRECTION_TEXTID =  STR_NORTHEAST;//东北
+
 const CompassItem g_compassList[] = {
-    {RIGHT_NORTH_DOWN_23, RIGHT_EASTNORTH_UP_68, EASTNORTH_DIRECTION},
-    {RIGHT_EASTNORTH_UP_68, RIGHT_EAST_UP_113, EAST_DIRECTION},
-    {RIGHT_EAST_UP_113, RIGHT_EASTSOUTH_UP_158, EASTSOUTH_DIRECTION},
-    {RIGHT_EASTSOUTH_UP_158, RIGHT_SOUTH_UP_203, SOUTH_DIRECTION},
-    {RIGHT_SOUTH_UP_203, RIGHT_WESTSOUTH_UP_248, WESTSOUTH_DIRECTION},
-    {RIGHT_WESTSOUTH_UP_248, RIGHT_WEST_UP_293, WEST_DIRECTION},
-    {RIGHT_WEST_UP_293, RIGHT_WESTNORTH_UP_338, WESTNORTH_DIRECTION}
+    {RIGHT_NORTH_DOWN_23, RIGHT_EASTNORTH_UP_68, EASTNORTH_DIRECTION,EASTNORTH_DIRECTION_TEXTID},
+    {RIGHT_EASTNORTH_UP_68, RIGHT_EAST_UP_113, EAST_DIRECTION,EAST_DIRECTION_TEXTID},
+    {RIGHT_EAST_UP_113, RIGHT_EASTSOUTH_UP_158, EASTSOUTH_DIRECTION,EASTSOUTH_DIRECTION_TEXTID},
+    {RIGHT_EASTSOUTH_UP_158, RIGHT_SOUTH_UP_203, SOUTH_DIRECTION,SOUTH_DIRECTION_TEXTID},
+    {RIGHT_SOUTH_UP_203, RIGHT_WESTSOUTH_UP_248, WESTSOUTH_DIRECTION,WESTSOUTH_DIRECTION_TEXTID},
+    {RIGHT_WESTSOUTH_UP_248, RIGHT_WEST_UP_293, WEST_DIRECTION,WEST_DIRECTION_TEXTID},
+    {RIGHT_WEST_UP_293, RIGHT_WESTNORTH_UP_338, WESTNORTH_DIRECTION,WESTNORTH_DIRECTION_TEXTID}
 };
 
 static CompassPresenter *g_pMainView = nullptr;
@@ -85,12 +95,14 @@ void CompassPresenter::DisplayAngleRight(uint16_t angle)
 {
     if ((angle >= RIGHT_WESTNORTH_UP_338) || (angle >= 0 && angle < RIGHT_NORTH_DOWN_23)) {
         //CompassView::GetInstance()->DirectionSetText(NORTH_DIRECTION, ("~" + std::to_string(angle) + "°").c_str());
-        CompassView::GetInstance()->DirectionSetText(NORTH_DIRECTION, (std::to_string(angle) + "°").c_str());
+        // CompassView::GetInstance()->DirectionSetText(NORTH_DIRECTION, (std::to_string(angle) + "°").c_str());
+        CompassView::GetInstance()->DirectionSetTextId(NORTH_DIRECTION_TEXTID, (std::to_string(angle) + "°").c_str());
     }
     for (int i = 0; i < DIRECTION_COUNT; i++) {
         if ((angle >= g_compassList[i].beginAngle) && (angle < g_compassList[i].endAngle)) {
-            CompassView::GetInstance()->DirectionSetText(g_compassList[i].dir, ("~" + std::to_string(angle) + "°").c_str());
-            CompassView::GetInstance()->DirectionSetText(g_compassList[i].dir, (std::to_string(angle) + "°").c_str());
+            // CompassView::GetInstance()->DirectionSetText(g_compassList[i].dir, ("~" + std::to_string(angle) + "°").c_str());
+            // CompassView::GetInstance()->DirectionSetText(g_compassList[i].dir, (std::to_string(angle) + "°").c_str());
+            CompassView::GetInstance()->DirectionSetTextId(g_compassList[i].dir_textId, (std::to_string(angle) + "°").c_str());
         }
     }
 }
index b28c827..1eeeb56 100644 (file)
@@ -10,6 +10,7 @@
 #include "compass/include/CompassView.h"
 #include "compass/include/MainCompassView.h"
 #include "compass/include/CompassPresenter.h"
+#include "ui_resource_string.h"
 namespace OHOS {
 static constexpr int16_t COMPASSVIEW_W = 466;
 static constexpr int16_t COMPASSVIEW_H = 466;
@@ -83,6 +84,17 @@ void CompassView::DirectionSetText(const char *text, const char *angle)
     directionLabel->SetText(text);
     angledLabel->SetText(angle);
 }
+void CompassView::DirectionSetTextId(int textId, const char *angle)
+{
+    if(directionLabel && angledLabel) 
+    {
+        directionLabel->SetTextId(textId);
+        directionLabel->Invalidate();
+
+        angledLabel->SetText(angle);
+        angledLabel->Invalidate();
+    }
+}
 //加载指南针图片
 bool CompassView::LoadCompassImage(UIImageView *view, uint32_t resId)
 {
@@ -190,7 +202,7 @@ bool CompassView::InitPage(void)
         return false;
     }
 
-    directionLabel = new UILabel();
+    directionLabel = new UILabelExt();
     if (directionLabel == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "directionLabel new fail");
         ClearAll();
@@ -198,7 +210,7 @@ bool CompassView::InitPage(void)
     }
     directionLabel->SetPosition(DIRECTIONLABEL_X, DIRECTIONLABEL_Y);
     directionLabel->Resize(DIRECTIONLABEL_TEXT_WIDTH, DIRECTIONLABEL_TEXT_HEIGH);
-    directionLabel->SetText("北");
+    directionLabel->SetTextId(STR_NORTH);
     directionLabel->SetStyle(STYLE_TEXT_FONT, DIRECTIONLABEL_FONT_TEXT_SIZE);
     directionLabel->SetStyle(STYLE_LINE_HEIGHT, DIRECTIONLABEL_STYLE_LINE_HEIGHT);
     directionLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, DIRECTIONLABEL_FONT_TEXT_SIZE);
@@ -220,7 +232,7 @@ bool CompassView::InitPage(void)
     angledLabel->SetText("0°");
     angledLabel->SetStyle(STYLE_TEXT_FONT, ANGLEDLABEL_FONT_TEXT_SIZE);
     angledLabel->SetStyle(STYLE_LINE_HEIGHT, ANGLEDLABEL_STYLE_LINE_HEIGHT);
-    angledLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, ANGLEDLABEL_FONT_TEXT_SIZE);
+    angledLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, ANGLEDLABEL_FONT_TEXT_SIZE);
     angledLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
     angledLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
     angledLabel->SetStyle(STYLE_TEXT_OPA, OPA_OPAQUE);
index 80db09b..f5f25ef 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-10 11:58:15
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-29 16:04:53
+ * @LastEditTime: 2024-09-29 21:04:14
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h
  */
 #ifndef DNOTDISTURB_VIEW_H
@@ -45,6 +45,7 @@ namespace OHOS
         UILabelExt *AttentionLabel{nullptr};
         UILabelButtonExt *ButtonOn;
         UILabelButtonExt *ButtonOff;
+        UIImageView *temp{nullptr};
     };
 }
 #endif
\ No newline at end of file
index 7dea6f5..0cff234 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-10 11:58:21
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-26 17:39:08
+ * @LastEditTime: 2024-09-29 21:19:46
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp
  */
 #include "dnotdisturb/include/DnotDisturbView.h"
@@ -71,6 +71,13 @@ namespace OHOS
                 delete ButtonOff;
                 ButtonOff = nullptr;
             }
+            if (temp != nullptr)
+            {
+                delete temp;
+                temp = nullptr;
+            }
+            delete scrollView;
+            scrollView = nullptr;
         }
     }
 
@@ -89,6 +96,15 @@ namespace OHOS
             scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
             scrollView->SetTouchable(true);
             scrollView->SetDraggable(true);
+            scrollView->SetScrollBlankSize(30);
+            scrollView->SetReboundSize(30);
+            scrollView->SetDirection(1);
+            scrollView->SetThrowDrag(true);         // 设置手指抬起屏幕后是否继续滚动。
+            scrollView->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。
+            scrollView->SetSwipeACCLevel(800);      /*设置手指抬起屏幕后的补偿距离。*/
+            FocusManager::GetInstance()->RequestFocus(scrollView);
+            FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP);
+            scrollView->SetRotateFactor(1.0);
             UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(DnotDisturbPresenter::GetInstance());
             if (dragListener == nullptr)
             {
@@ -110,6 +126,7 @@ namespace OHOS
             showTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
             showTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
             showTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+            scrollView->Add(showTitleLabel);
             /* -------------------------------------------------------------------------- */
             DnotDisturbImage = new UIImageView();
             if (DnotDisturbImage == nullptr)
@@ -125,6 +142,7 @@ namespace OHOS
             DnotDisturbImage->SetAutoEnable(false);
             DnotDisturbImage->SetResizeMode(UIImageView::FILL);
             DnotDisturbImage->SetSrc(PNG_APPLIST_DISTURB_IMAGE);
+            scrollView->Add(DnotDisturbImage);
             /* -------------------------------------------------------------------------- */
             AttentionLabel = new UILabelExt();
             if (AttentionLabel == nullptr)
@@ -136,11 +154,12 @@ namespace OHOS
             AttentionLabel->SetStyle(STYLE_TEXT_FONT, 30);
             AttentionLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
             // bool ?勿扰模式已开启是否关闭:开启勿扰模式,手表将不会发出震动与铃声,是否开启
-            AttentionLabel->SetTextId(DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled() ? STR_DISTURBNOTE_OFF : STR_DO_NOT_DISTURB_MODE); 
+            AttentionLabel->SetTextId(DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled() ? STR_DISTURBNOTE_OFF : STR_DO_NOT_DISTURB_MODE);
             AttentionLabel->SetLineBreakMode(UILabelExt::LINE_BREAK_WRAP);
             AttentionLabel->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));
             AttentionLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
             AttentionLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+            scrollView->Add(AttentionLabel);
             /* -------------------------------------------------------------------------- */
             ButtonOn = new UILabelButtonExt();
             if (ButtonOn == nullptr)
@@ -148,7 +167,7 @@ namespace OHOS
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::ButtonOn new fail!!");
                 return;
             }
-            ButtonOn->SetPosition(256, 320, 120, 120);
+            ButtonOn->SetPosition(256, AttentionLabel->GetY() + AttentionLabel->GetHeight() + 20, 120, 120);
             ButtonOn->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
             ButtonOn->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
             const char *ButtonOnImgSrc = "/user/res/SYSTEM_CheckOn.bin";
@@ -156,8 +175,8 @@ namespace OHOS
             ButtonOn->SetImagePosition(10, 10);
             ButtonOn->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
             ButtonOn->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
-            UIView::OnClickListener *labelButtonClick1 = static_cast<UIView::OnClickListener *>(DnotDisturbPresenter::GetInstance());
-            ButtonOn->SetOnClickListener(labelButtonClick1);
+            ButtonOn->SetOnClickListener(presenter_);
+            scrollView->Add(ButtonOn);
             /* -------------------------------------------------------------------------- */
             ButtonOff = new UILabelButtonExt();
             if (ButtonOff == nullptr)
@@ -165,7 +184,7 @@ namespace OHOS
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::ButtonOff new fail!!");
                 return;
             }
-            ButtonOff->SetPosition(111, 320, 120, 120);
+            ButtonOff->SetPosition(111, AttentionLabel->GetY() + AttentionLabel->GetHeight() + 20, 120, 120);
             ButtonOff->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
             ButtonOff->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
             const char *ButtonOffImgSrc = "/user/res/SYSTEM_CheckOff.bin";
@@ -173,8 +192,24 @@ namespace OHOS
             ButtonOff->SetImagePosition(10, 10);
             ButtonOff->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
             ButtonOff->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
-            UIView::OnClickListener *labelButtonClick2 = static_cast<UIView::OnClickListener *>(DnotDisturbPresenter::GetInstance());
-            ButtonOff->SetOnClickListener(labelButtonClick2);
+            ButtonOff->SetOnClickListener(presenter_);
+            scrollView->Add(ButtonOff);
+            /* -------------------------------------------------------------------------- */
+            if ((ButtonOff->GetY() + ButtonOff->GetHeight() > Screen::GetInstance().GetHeight()))
+            {
+                if (temp == nullptr)
+                {
+                    temp = new UIImageView();
+                    if (temp == nullptr)
+                    {
+                        return;
+                    }
+
+                    temp->SetPosition(43, ButtonOff->GetY() + ButtonOff->GetHeight(), 380, 40);
+                    temp->SetVisible(false);
+                    scrollView->Add(temp);
+                }
+            }
         }
     }
 
@@ -211,23 +246,28 @@ namespace OHOS
     void DnotDisturbView::OnStart()
     {
         View<DnotDisturbPresenter>::OnStart();
+        SetContainerView(new UIViewGroup());
+        if (GetContainer() == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail!!");
+            return;
+        }
+        container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+        container_->SetTouchable(true);
+        container_->SetDraggable(true);
+
         DnotDisturbViewInit();
 
-        // 增加按键监听
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::DnotDisturbPresenter::GetInstance();
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+        RootView::GetInstance()->SetOnKeyActListener(presenter_);
     }
 
     void DnotDisturbView::OnSetUpView()
     {
         View<DnotDisturbPresenter>::OnSetUpView();
-        scrollView->Add(showTitleLabel);
-        scrollView->Add(DnotDisturbImage);
-        scrollView->Add(AttentionLabel);
-        scrollView->Add(ButtonOn);
-        scrollView->Add(ButtonOff);
-        RootView::GetInstance()->Add(scrollView);
-        container_ = scrollView;
+        if (scrollView)
+        {
+            container_->Add(scrollView);
+        }
         Draw();
     }
 
@@ -240,8 +280,13 @@ namespace OHOS
 
     void DnotDisturbView::OnStop()
     {
-
         View<DnotDisturbPresenter>::OnStop();
+        if (container_ != nullptr)
+        {
+            container_->RemoveAll();
+            delete container_;
+            container_ = nullptr;
+        }
         RootView::GetInstance()->RemoveAll();
         RootView::GetInstance()->ClearOnKeyActListener();
         ClearAll();
index 3a7085b..71b7e70 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 16:36:46
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-20 17:59:51
+ * @LastEditTime: 2024-09-29 19:42:28
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchModel.cpp
  */
 #include "languagecode/include/LanguageSwitchModel.h"
@@ -27,6 +27,7 @@ namespace OHOS
 
     void LanguageSwitchModel::LanguageSwitchViewupdata(uint32_t id)
     {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchViewupdata:%d",id);
         if(is_load_languages(id))
         {
             if(LanguageSwitchView::GetInstance())
@@ -46,7 +47,7 @@ namespace OHOS
             OHOS::language::GetInstance()->ChangeLanguage(id);
             if(LanguageSwitchView::GetInstance())
             {
-                NativeAbility::GetInstance().EnterSlice(VIEW_LANGUAGE_SWITCH);
+                NativeAbility::GetInstance().ChangeSlice(VIEW_LANGUAGE_SWITCH);
             }
 
         }
index e357fdd..812e174 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-09-28 19:09:27
+ * @LastEditTime: 2024-09-29 19:45:03
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchPresenter.cpp
  */
 #include "AppViewIDs.h"
@@ -94,7 +94,7 @@ namespace OHOS
 
     bool LanguageSwitchPresenter::OnClick(UIView &view, const ClickEvent &event)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingPresenter::OnClick");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchPresenter::OnClick");
 
         UNUSED(event);
         const char *lastLanguageCode = p_LanguageSwitchModel->GetLastLanguageCode();
index 89cc1e5..653ffb8 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-20 11:05:46
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-28 20:21:31
+ * @LastEditTime: 2024-09-29 18:03:03
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/ShutDownImageAnimatorView.h
  */
 
@@ -30,7 +30,7 @@ namespace OHOS
         static ShutDownImageAnimatorView *GetInstance();
         UIViewGroup *ShutDownAnimatorViewInit(void);
         UIImageAnimatorView *GeShutDownImageAnimatorView(void);
-        void ShutDownImageAnimator_Start(bool state);
+        void ShutDownImageAnimator_Start(int type);
         bool GetShutDownImageAnimatorIsStart(void);
 
     private:
@@ -42,7 +42,7 @@ namespace OHOS
         UIImageAnimatorView *shutDownImageAnimatorView{nullptr};                      // 关机动画
         ImageAnimatorInfo ShutDownImageInfo[SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES]; // 关机图像的信息
         const char **ShutDownPathsArray{nullptr};                                     // 关机图片路径数组
-        bool isShutDownOperation;
+        int OperationType;
         bool isShutDownImageAnimatorStart{false};
     };
 }
index 027102b..9583585 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-08-29 17:20:33
+ * @LastEditTime: 2024-09-29 15:35:47
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
  */
 
@@ -48,15 +48,12 @@ namespace OHOS
     /*处理恢复出厂设置后第一次跳转主界面*/
     void RebootAndShutdownModel::HandFirstTimeStartJumpToMainView(void)
     {
-        if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true && SettingModel::GetInstance().GetPhoneConnectStatus() == true)
+        if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
         {
-            if (ConfigModel::GetInstance()->GetLanguage() != -1)
-            {
-                uapi_set_screen_on_api();
-                NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
-                ConfigModel::GetInstance()->SetisFirstTimeStart(false);
-                NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
-            }
+            uapi_set_screen_on_api();
+            ConfigModel::GetInstance()->SetisFirstTimeStart(false);
+            NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+            NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
         }
     }
 
index 90d00fa..362a826 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 15:11:17
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-19 14:21:00
+ * @LastEditTime: 2024-09-29 18:14:14
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/RebootAndShutdownPresenter.cpp
  */
 #include "AppViewIDs.h"
@@ -83,7 +83,9 @@ namespace OHOS
         else if (strcmp(view.GetViewId(), FACTORY_RESET_BUTTON_CHECK_ON) == 0) // 恢复出厂设置确认
         {
             ui_api_vibrate_once_func(); //恢复出厂增加震动
-            do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING, NULL, 0);
+            view_->ChangeView(FACTORYRESET, SHUTDOWNANIMATOR);
+            ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(2);
+            isShutDownImageAnimatorStart = true;
             return true;
         }
         else if (strcmp(view.GetViewId(), FACTORY_RESET_BUTTON_CHECK_OFF) == 0) // 恢复出厂设置取消
@@ -100,7 +102,7 @@ namespace OHOS
             start_shutdown_or_reboot();
             shutdown_reboot_prejobs();
 
-            ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(true);
+            ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(0);
             isShutDownImageAnimatorStart = true;
         }
         else if (&view == view_->GetButtonCancel()) // 关机取消
index 60db0d2..7cf2bed 100644 (file)
@@ -50,13 +50,19 @@ namespace OHOS
     {
         UNUSED(view);
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootAndShutdownPresenter::OnAnimatorStop");
-        if (isShutDownOperation == true)
+        switch (OperationType)
         {
+        case 0:
             uapi_poweroff_device(); // 关机
-        }
-        else
-        {
+            break;
+        case 1:
             uapi_reboot_device(); // 重启
+            break;
+        case 2:
+            do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING, NULL, 0);
+            break;
+        default:
+            break;
         }
     }
 
@@ -65,15 +71,15 @@ namespace OHOS
         return shutDownImageAnimatorView;
     }
 
-    // true 关机 false 重启
-    void ShutDownImageAnimatorView::ShutDownImageAnimator_Start(bool state)
+    //  0 关机 1 重启 2 恢复出厂
+    void ShutDownImageAnimatorView::ShutDownImageAnimator_Start(int type)
     {
-        isShutDownOperation = state;
+        OperationType = type;
         shutDownImageAnimatorView->Start();
         isShutDownImageAnimatorStart = true;
-        ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);//关机动画已经开始了不能息屏
+        ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 关机动画已经开始了不能息屏
 
-        //关机增加震动
+        // 关机增加震动
         ui_api_vibrate_once_func();
     }
 
@@ -86,7 +92,7 @@ namespace OHOS
     bool ShutDownImageAnimatorView::ShowUpShutDownAnimatorView()
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShutDownImageAnimatorView::ShowUpShutDownAnimatorView");
-        ShutDownPathsArray = CreateImagePathsArray(ShutDownPaths,  SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);
+        ShutDownPathsArray = CreateImagePathsArray(ShutDownPaths, SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);
 
         if (shutDownImageAnimatorView == nullptr)
         {
index 8daedb0..25111ea 100644 (file)
@@ -199,7 +199,7 @@ namespace OHOS
             start_shutdown_or_reboot();\r
             shutdown_reboot_prejobs();\r
 \r
-            ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(false);\r
+            ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(1);\r
             isShutDownImageAnimatorStart = true;\r
             return true;\r
         }\r
@@ -214,7 +214,7 @@ namespace OHOS
             start_shutdown_or_reboot();\r
             shutdown_reboot_prejobs();\r
 \r
-            ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(true);\r
+            ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(0);\r
             isShutDownImageAnimatorStart = true;\r
             return true;\r
         }\r
@@ -226,7 +226,9 @@ namespace OHOS
         else if (strcmp(view.GetViewId(), FACTORYRESET_CHECKON) == 0) // 恢复出厂设置确认\r
         {\r
             ui_api_vibrate_once_func(); //恢复出厂增加震动\r
-            do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING, NULL, 0);\r
+            p_SystemView->ChangeView(FACTORYRESETVIEW, SHUTDOWNANIMATIONVIEW);\r
+            ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(2);\r
+            isShutDownImageAnimatorStart = true;\r
             return true;\r
         }\r
         else if (strcmp(view.GetViewId(), FACTORYRESET_CHECKOFF) == 0) // 恢复出厂设置取消\r