From 55d20cfa8ac7590bf04f3483faa829a7248fd353 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E7=BD=97=E6=AD=A3?= <1732036298@qq.com> Date: Sun, 29 Sep 2024 13:32:58 +0000 Subject: [PATCH] Merge #1055 into sdk602patch0626 from refs/changes/1055/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Code review from 罗正 * refs/changes/1055/head: (9 commits squashed) - 修改第一次启动时进入界面逻辑。不再根据手机是否连接做判断条件 - 解决,#695,手表,弧形列表使用编码器上下滑动时没有和列表显示一样增加震动反馈bug - 解决,#878,手表,恢复出厂设置时,频繁点击按钮会持续震动bug 恢复出厂添加关机动画 - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626 - 语言界面修改 - 指南针界面多国语言翻译 - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626 - Merge branch 'sdk602patch0626' 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 Merged-by: snickersun@163.com CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1055 --- .../nativeui/applist/src/ApplistView.cpp | 8 +- .../compass/include/CompassPresenter.h | 10 ++- .../nativeui/compass/include/CompassView.h | 5 +- .../nativeui/compass/src/CompassPresenter.cpp | 32 ++++--- .../nativeui/compass/src/CompassView.cpp | 18 +++- .../dnotdisturb/include/DnotDisturbView.h | 3 +- .../dnotdisturb/src/DnotDisturbView.cpp | 83 ++++++++++++++----- .../languagecode/src/LanguageSwitchModel.cpp | 5 +- .../src/LanguageSwitchPresenter.cpp | 4 +- .../include/ShutDownImageAnimatorView.h | 6 +- .../src/RebootAndShutdownModel.cpp | 15 ++-- .../src/RebootAndShutdownPresenter.cpp | 8 +- .../src/ShutDownImageAnimatorView.cpp | 26 +++--- .../nativeui/system/src/SystemPresenter.cpp | 8 +- 14 files changed, 156 insertions(+), 75 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp index 103e9b429..897e2edd3 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp @@ -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(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassPresenter.h index cd8770c78..c7d820c9b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassPresenter.h @@ -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; diff --git a/code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassView.h b/code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassView.h index 420dee6ee..9fb75c0fb 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassView.h @@ -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}; //放置标记图片 diff --git a/code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassPresenter.cpp index 454ae7615..9b8c4b87d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassPresenter.cpp @@ -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()); } } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassView.cpp b/code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassView.cpp index b28c82704..1eeeb5634 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassView.cpp @@ -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); diff --git a/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h b/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h index 80db09b20..f5f25ef3f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h @@ -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 diff --git a/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp b/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp index 7dea6f519..0cff23458 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp @@ -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(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(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(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::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::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::OnStop(); + if (container_ != nullptr) + { + container_->RemoveAll(); + delete container_; + container_ = nullptr; + } RootView::GetInstance()->RemoveAll(); RootView::GetInstance()->ClearOnKeyActListener(); ClearAll(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchModel.cpp index 3a7085b9e..71b7e706f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchModel.cpp @@ -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); } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchPresenter.cpp index e357fdd25..812e1749e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchPresenter.cpp @@ -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(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/ShutDownImageAnimatorView.h b/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/ShutDownImageAnimatorView.h index 89cc1e561..653ffb8c5 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/ShutDownImageAnimatorView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/include/ShutDownImageAnimatorView.h @@ -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}; }; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp index 027102b55..958358535 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp @@ -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); } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownPresenter.cpp index 90d00fad0..362a82631 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownPresenter.cpp @@ -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()) // 关机取消 diff --git a/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/ShutDownImageAnimatorView.cpp b/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/ShutDownImageAnimatorView.cpp index 60db0d238..7cf2bedb9 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/ShutDownImageAnimatorView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/ShutDownImageAnimatorView.cpp @@ -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) { diff --git a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp index 8daedb063..25111ea9e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp @@ -199,7 +199,7 @@ namespace OHOS start_shutdown_or_reboot(); shutdown_reboot_prejobs(); - ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(false); + ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(1); isShutDownImageAnimatorStart = true; return true; } @@ -214,7 +214,7 @@ namespace OHOS start_shutdown_or_reboot(); shutdown_reboot_prejobs(); - ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(true); + ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(0); isShutDownImageAnimatorStart = true; return true; } @@ -226,7 +226,9 @@ namespace OHOS else if (strcmp(view.GetViewId(), FACTORYRESET_CHECKON) == 0) // 恢复出厂设置确认 { ui_api_vibrate_once_func(); //恢复出厂增加震动 - do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING, NULL, 0); + p_SystemView->ChangeView(FACTORYRESETVIEW, SHUTDOWNANIMATIONVIEW); + ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(2); + isShutDownImageAnimatorStart = true; return true; } else if (strcmp(view.GetViewId(), FACTORYRESET_CHECKOFF) == 0) // 恢复出厂设置取消 -- 2.17.1