From bc9b65dca10b678d4bbf8486dbf5aa4bf26affaf Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Thu, 13 Jun 2024 18:33:30 +0800 Subject: [PATCH] =?utf8?q?=E8=AF=AD=E8=A8=80=E9=80=89=E6=8B=A9=E7=95=8C?= =?utf8?q?=E9=9D=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/language/LanguageInit.cpp | 5 +- .../include/LanguageSwitchListitemView.h | 3 +- .../language/include/LanguageSwitchModel.h | 12 +- .../include/LanguageSwitchPresenter.h | 4 +- .../language/include/LanguageSwitchView.h | 10 +- .../src/LanguageSwitchListAdapter.cpp | 7 +- .../src/LanguageSwitchListitemView.cpp | 8 +- .../language/src/LanguageSwitchModel.cpp | 23 ++-- .../language/src/LanguageSwitchPresenter.cpp | 32 ++++-- .../language/src/LanguageSwitchView.cpp | 105 ++++++++++-------- .../nativeui/system/src/SystemView.cpp | 11 +- 11 files changed, 131 insertions(+), 89 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/LanguageInit.cpp b/code/sdk/application/wearable/fd230app/nativeui/language/LanguageInit.cpp index 6337536ea..ce80767c7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/LanguageInit.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/language/LanguageInit.cpp @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-30 09:14:38 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-04-30 10:25:43 + * @LastEditTime: 2024-06-13 17:18:54 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/LanguageInit.cpp */ #include @@ -16,6 +16,7 @@ #include "ConfigModel.h" #include #include "AppViewIDs.h" +#include "language/include/LanguageSwitchModel.h" namespace OHOS { // 初始化 languages 数组 @@ -125,10 +126,12 @@ namespace OHOS */ //thelanguage = 0; NativeAbility::GetInstance().SetDefaultSliceId(VIEW_LANGUAGE_SWITCH); + LanguageSwitchModel::GetInstance().SetisFirstTimeStart(true); } else { NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN); + LanguageSwitchModel::GetInstance().SetisFirstTimeStart(false); } FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, thelanguage); return true; diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchListitemView.h b/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchListitemView.h index babd0ae53..3e7ed8710 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchListitemView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchListitemView.h @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-28 14:28:25 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-03-30 11:12:28 + * @LastEditTime: 2024-06-13 15:52:44 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchListitemView.h */ #ifndef LANGUAGE_SWITCH_LIST_ITEM_VIEW @@ -22,6 +22,7 @@ namespace OHOS virtual void SetItemInfo(const Language itemInfo); virtual void SetUpChild(); UILabelButtonExt *GetUILabelButtonExt(void); + private: LanguageSwitchListitemView(const LanguageSwitchListitemView &); UILabelButtonExt m_LabelButtonExt; diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchModel.h b/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchModel.h index b3c0babd4..697a60a86 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchModel.h @@ -2,13 +2,15 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-28 16:36:58 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-04-30 11:34:16 + * @LastEditTime: 2024-06-13 18:05:27 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchModel.h */ #ifndef LANGUAGE_SWITCH_MODEL_H #define LANGUAGE_SWITCH_MODEL_H +#include +#include "string" #include "language/include/LanguageSwitchListAdapter.h" namespace OHOS { @@ -21,15 +23,17 @@ namespace OHOS const char *GetCurLanguageCode(void); void SetLastLanguageCode(std::string prelanguageid); const char *GetLastLanguageCode(void); - + + void SetisFirstTimeStart(bool value); + bool GetisFirstTimeStart(void); private: LanguageSwitchModel(); ~LanguageSwitchModel(); LanguageSwitchModel(const LanguageSwitchModel &) = delete; const LanguageSwitchModel &operator=(const LanguageSwitchModel &) = delete; static const uint16_t LANGUAGE_ITEM_MAX = MAX_LANGUAGE; // 语言总数 - char *CurLanguageCode = "zh"; // 当前语言,默认简体中文 - std::string PreLanguageCode; // 上一次切换的语言 + std::string PreLanguageCode; // 上一次切换的语言 + bool isFirstTimeStart; // 手表是否是第一次启动 }; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchPresenter.h index 1c80b780a..2ff50ec6b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchPresenter.h @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-28 14:16:52 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-05-07 10:01:25 + * @LastEditTime: 2024-06-13 16:04:05 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchPresenter.h */ #ifndef LANGUAGE_SWITCH_PRESENTER_H @@ -40,10 +40,10 @@ namespace OHOS bool OnDragEnd(UIView &view, const DragEvent &event) override; bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件 LanguageSwitchModel *p_LanguageSwitchModel{nullptr}; - //UILabelButtonExt *LabelButton[MAX_LANGUAGE]{nullptr}; ImageInfo *NotSelectedImg; ImageInfo *SelectedImg; UILabelExt *m_labelext{nullptr}; + bool X_DRAG_FLAG{false}; }; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchView.h b/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchView.h index 5ca6432dc..99eec0a36 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchView.h @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-28 11:58:38 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-03-30 16:33:22 + * @LastEditTime: 2024-06-13 16:11:04 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchView.h */ #ifndef LANGUAGE_SWITCH_VIEW_H @@ -32,17 +32,17 @@ namespace OHOS void OnStop() override; void AddLanguageItemToList(const Language &item); UIList *GetLanguageList(void); + private: + bool LanguageSwitchScrollViewInit(void); + bool LanguageSwitchLabelViewInit(void); + bool LanguageSwitchListViewInit(void); void LanguageSwitchViewInit(void); void ClearAll(void); - bool LanguageSwitchViewScrollViewInit(void); - bool LanguageSwitchViewTitleLabelInit(void); - bool LanguageListInit(void); UIScrollView *LanguageSwitchScrollView{nullptr}; UILabelExt *LanguageSwitchViewTitleLabel{nullptr}; // "语言" UIList *LanguageList{nullptr}; // 语言列表 LanguageSwitchListAdapter *p_LanguageSwitchListAdapter{nullptr}; // 语言列表适配器 - bool viewInitStatus{false}; }; } #endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListAdapter.cpp b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListAdapter.cpp index 97d87311e..1ebdadb29 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListAdapter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListAdapter.cpp @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-28 14:27:05 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-04-30 11:40:50 + * @LastEditTime: 2024-06-13 15:50:29 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListAdapter.cpp */ #include "language/include/LanguageSwitchListAdapter.h" @@ -11,20 +11,21 @@ #include "language/include/LanguageSwitchModel.h" #include "language/include/LanguageSwitchPresenter.h" #include "language/LanguageInit.h" +#include namespace OHOS { LanguageSwitchListAdapter::LanguageSwitchListAdapter() { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListAdapter::LanguageSwitchListAdapter"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListAdapter::LanguageSwitchListAdapter"); NotSelectedImg = ImageCacheManager::GetInstance().LoadSingleRes(PNG_CHECKBOX_OFF_IMAGE); SelectedImg = ImageCacheManager::GetInstance().LoadSingleRes(PNG_CHECKBOX_ON_IMAGE); } LanguageSwitchListAdapter::~LanguageSwitchListAdapter() { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListAdapter::~LanguageSwitchListAdapter"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListAdapter::~LanguageSwitchListAdapter"); listData.clear(); } diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListitemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListitemView.cpp index 114c4d550..b9d82f906 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListitemView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListitemView.cpp @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-28 14:28:03 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-03-30 17:37:32 + * @LastEditTime: 2024-06-13 15:54:59 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListitemView.cpp */ #include "language/include/LanguageSwitchListitemView.h" @@ -13,18 +13,17 @@ namespace OHOS LanguageSwitchListitemView::LanguageSwitchListitemView() { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListitemView::LanguageSwitchListitemView"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListitemView::LanguageSwitchListitemView"); SetPosition(43, 120, 380, 120); SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full); SetStyle(STYLE_BACKGROUND_OPA, 255); - // SetTouchable(true); SetUpChild(); Add(&m_LabelButtonExt); } LanguageSwitchListitemView::~LanguageSwitchListitemView() { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListitemView::~LanguageSwitchListitemView"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListitemView::~LanguageSwitchListitemView"); Remove(&m_LabelButtonExt); } @@ -37,6 +36,7 @@ namespace OHOS void LanguageSwitchListitemView::SetUpChild() { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListitemView::SetUpChild"); m_LabelButtonExt.SetPosition(0, 0, 380, 100); m_LabelButtonExt.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); m_LabelButtonExt.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchModel.cpp index 9729f7697..28c868381 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/language/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-04-30 11:58:38 + * @LastEditTime: 2024-06-13 17:17:45 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchModel.cpp */ #include "language/include/LanguageSwitchModel.h" @@ -12,14 +12,9 @@ namespace OHOS { - LanguageSwitchModel::LanguageSwitchModel() - { - // CurLanguageCode = const_cast(ConfigModel::GetInstance()->GetLanguageCode().c_str()); - } + LanguageSwitchModel::LanguageSwitchModel() {} - LanguageSwitchModel::~LanguageSwitchModel() - { - } + LanguageSwitchModel::~LanguageSwitchModel() {} LanguageSwitchModel &LanguageSwitchModel::GetInstance() { @@ -32,7 +27,6 @@ namespace OHOS */ void LanguageSwitchModel::SetCurLanguageCode(char *curlanguagecode) { - // CurLanguageCode = curlanguagecode; ConfigModel::GetInstance()->SetLanguageCode(curlanguagecode); } @@ -41,7 +35,6 @@ namespace OHOS */ const char *LanguageSwitchModel::GetCurLanguageCode(void) { - // return CurLanguageCode; return ConfigModel::GetInstance()->GetLanguageCode().c_str(); } @@ -60,4 +53,14 @@ namespace OHOS { return PreLanguageCode.c_str(); } + + void LanguageSwitchModel::SetisFirstTimeStart(bool value) + { + isFirstTimeStart = value; + } + + bool LanguageSwitchModel::GetisFirstTimeStart(void) + { + return isFirstTimeStart; + } } \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp index e5b02a894..914872ca2 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/language/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-06-07 10:36:33 + * @LastEditTime: 2024-06-13 18:02:08 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp */ #include "AppViewIDs.h" @@ -53,9 +53,12 @@ namespace OHOS { return; } - for (uint8_t i = 0; i < MAX_LANGUAGE; i++) + else { - view_->AddLanguageItemToList(languages[i]); + for (uint8_t i = 0; i < MAX_LANGUAGE; i++) + { + view_->AddLanguageItemToList(languages[i]); + } } } @@ -71,23 +74,30 @@ namespace OHOS bool LanguageSwitchPresenter::OnDrag(UIView &view, const DragEvent &event) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingPresenter::OnDrag"); UNUSED(view); - UNUSED(event); + if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动 + { + LanguageSwitchPresenter::X_DRAG_FLAG = true; + } return true; } bool LanguageSwitchPresenter::OnDragEnd(UIView &view, const DragEvent &event) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingPresenter::OnDragEnd"); UNUSED(view); - if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) + if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && LanguageSwitchPresenter::X_DRAG_FLAG) { - NativeAbility::GetInstance().Back(); + NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS); + LanguageSwitchPresenter::X_DRAG_FLAG = false; } return true; } bool LanguageSwitchPresenter::OnClick(UIView &view, const ClickEvent &event) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingPresenter::OnClick"); UNUSED(event); const char *lastLanguageCode = p_LanguageSwitchModel->GetLastLanguageCode(); UILabelButtonExt *p_UILabelButtonExt = dynamic_cast(&view); @@ -123,7 +133,15 @@ namespace OHOS // 更新上一个语言ID p_LanguageSwitchModel->SetLastLanguageCode(p_LanguageSwitchModel->GetCurLanguageCode()); } - NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);//暂定选完语言后设置默认的Sliceid为主界面 + if (p_LanguageSwitchModel->GetisFirstTimeStart() == true) + { + NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN); + NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN); // 暂定选完语言后设置默认的Sliceid为主界面 + } + else + { + NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS); + } return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchView.cpp b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchView.cpp index cc44e53a2..2f5831961 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchView.cpp @@ -18,6 +18,8 @@ namespace OHOS static constexpr int16_t MAX_SCROLL_DIS = 1000; static constexpr int16_t MAX_REBOUND_SIZE = 40; static constexpr int16_t MAX_LANGUAGE_LIST_SCROLLBLANKSIZE = 50; + static constexpr int16_t ROTATEFACTORVALUE = 4; + static LanguageSwitchView *g_pLanguageSwitchView{nullptr}; LanguageSwitchView::LanguageSwitchView() { @@ -28,19 +30,35 @@ namespace OHOS LanguageSwitchView::~LanguageSwitchView() { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::~LanguageSwitchView"); - ClearAll(); g_pLanguageSwitchView = nullptr; } LanguageSwitchView *LanguageSwitchView::GetInstance() { - return g_pLanguageSwitchView; } + // 设置按键监听 + static void SetKeyActListener() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener"); + RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::LanguageSwitchPresenter::GetInstance(); + RootView::GetInstance()->SetOnKeyActListener(keyactListener); + } + + void LanguageSwitchView::AddLanguageItemToList(const Language &item) + { + p_LanguageSwitchListAdapter->AddListItem(item); + } + + UIList *LanguageSwitchView::GetLanguageList(void) + { + return LanguageList; + } + void LanguageSwitchView::ClearAll(void) { - if (viewInitStatus == true) + if (LanguageSwitchScrollView != nullptr) { LanguageSwitchScrollView->RemoveAll(); @@ -58,8 +76,9 @@ namespace OHOS } } - bool LanguageSwitchView::LanguageSwitchViewScrollViewInit(void) + bool LanguageSwitchView::LanguageSwitchScrollViewInit(void) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::LanguageSwitchScrollViewInit"); LanguageSwitchScrollView = new UIScrollView(); if (LanguageSwitchScrollView == nullptr) { @@ -67,13 +86,6 @@ namespace OHOS return false; } LanguageSwitchScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); - UIView::OnDragListener *draglistener = static_cast(LanguageSwitchPresenter::GetInstance()); - if (draglistener == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::draglistener can not be nullptr!"); - return false; - } - LanguageSwitchScrollView->SetOnDragListener(draglistener); LanguageSwitchScrollView->SetScrollBlankSize(MAX_LANGUAGE_LIST_SCROLLBLANKSIZE); LanguageSwitchScrollView->SetHorizontalScrollState(false); LanguageSwitchScrollView->SetTouchable(true); @@ -82,8 +94,9 @@ namespace OHOS return true; } - bool LanguageSwitchView::LanguageSwitchViewTitleLabelInit(void) + bool LanguageSwitchView::LanguageSwitchLabelViewInit(void) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::LanguageSwitchLabelViewInit"); LanguageSwitchViewTitleLabel = new UILabelExt(); if (LanguageSwitchViewTitleLabel == nullptr) { @@ -95,25 +108,26 @@ namespace OHOS LanguageSwitchViewTitleLabel->SetStyle(STYLE_LINE_HEIGHT, TITLE_LABEL_LINE_HEIGHT); // LanguageSwitchViewTitleLabel->SetText("语言"); LanguageSwitchViewTitleLabel->SetTextId(STR_LANGUAGE_SELECTION); - LanguageSwitchViewTitleLabel->ForceResetText(); LanguageSwitchViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE); LanguageSwitchViewTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); LanguageSwitchViewTitleLabel->SetRollSpeed(TITLE_LABEL_TEXT_ROLLSPEED); LanguageSwitchViewTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, TITLE_LABEL_TEXT_FONT); LanguageSwitchPresenter::GetInstance()->SetLabelExt(LanguageSwitchViewTitleLabel); + LanguageSwitchScrollView->Add(LanguageSwitchViewTitleLabel); + return true; } - bool LanguageSwitchView::LanguageListInit(void) + bool LanguageSwitchView::LanguageSwitchListViewInit(void) { - // UIList 的适配器 - p_LanguageSwitchListAdapter = new LanguageSwitchListAdapter(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::LanguageSwitchListViewInit"); + p_LanguageSwitchListAdapter = new LanguageSwitchListAdapter(); // UIList 的适配器 if (p_LanguageSwitchListAdapter == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::p_LanguageSwitchListAdapter is nullptr!"); return false; } - p_LanguageSwitchListAdapter->SetItemClickListener(LanguageSwitchPresenter::GetInstance()); + p_LanguageSwitchListAdapter->SetItemClickListener(static_cast(LanguageSwitchPresenter::GetInstance())); LanguageList = new UIList(UIList::VERTICAL); if (LanguageList == nullptr) { @@ -127,70 +141,65 @@ namespace OHOS LanguageList->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。 LanguageList->SetMaxScrollDistance(MAX_SCROLL_DIS); // 设置手指抬起屏幕后的最大滚动距离。 LanguageList->SetReboundSize(MAX_REBOUND_SIZE); + LanguageList->SetRotateFactor(ROTATEFACTORVALUE); + FocusManager::GetInstance()->RequestFocus(LanguageList); return true; } void LanguageSwitchView::LanguageSwitchViewInit(void) { - if (!LanguageSwitchViewScrollViewInit()) - { - return; - } - if (!LanguageSwitchViewTitleLabelInit()) + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::LanguageSwitchViewInit"); + if (!LanguageSwitchScrollViewInit() || !LanguageSwitchLabelViewInit() || !LanguageSwitchListViewInit()) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::LanguageSwitchViewInit fail!!"); return; } - if (!LanguageListInit()) - { - return; - } - viewInitStatus = true; } void LanguageSwitchView::OnStart() { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::OnStart"); View::OnStart(); - LanguageSwitchViewInit(); + SetContainerView(new UIViewGroup()); + container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + container_->SetTouchable(true); + container_->SetDraggable(true); + container_->SetOnDragListener(presenter_); - RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::LanguageSwitchPresenter::GetInstance(); - RootView::GetInstance()->SetOnKeyActListener(keyactListener); + LanguageSwitchViewInit(); + SetKeyActListener(); } void LanguageSwitchView::OnSetUpView() { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::OnSetUpView"); View::OnSetUpView(); - LanguageSwitchScrollView->Add(LanguageSwitchViewTitleLabel); - LanguageSwitchScrollView->Add(LanguageList); - RootView::GetInstance()->Add(LanguageSwitchScrollView); + container_->Add(LanguageSwitchScrollView); LanguageList->SetAdapter(p_LanguageSwitchListAdapter); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d", p_LanguageSwitchListAdapter->GetCount()); - LanguageSwitchViewTitleLabel->ForceResetText(); + LanguageSwitchScrollView->Add(LanguageList); Draw(); } void LanguageSwitchView::OnTearDownView() { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::OnTearDownView"); View::OnTearDownView(); return; } void LanguageSwitchView::OnStop() { - + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::OnStop"); View::OnStop(); - RootView::GetInstance()->RemoveAll(); + if (container_ != nullptr) + { + container_->RemoveAll(); + delete container_; + container_ = nullptr; + } RootView::GetInstance()->ClearOnKeyActListener(); + FocusManager::GetInstance()->ClearFocus(); + ClearAll(); return; } - - void LanguageSwitchView::AddLanguageItemToList(const Language &item) - { - p_LanguageSwitchListAdapter->AddListItem(item); - } - - UIList *LanguageSwitchView::GetLanguageList(void) - { - return LanguageList; - } - } \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp index e5e1e0b17..4110fabdd 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp @@ -92,7 +92,8 @@ namespace OHOS Title = nullptr; } - for (int i = 0; i < (sizeof(ViewMapper_t) / sizeof(SystemViewMapper_ext)); i++) + int num = (sizeof(ViewMapper_t) / sizeof(SystemViewMapper_ext)); + for (int i = 0; i < num; i++) { delete SystemViewButton[i]; SystemViewButton[i] = nullptr; @@ -146,9 +147,11 @@ namespace OHOS } SystemScrollView[SYSTEMVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); SystemScrollView[SYSTEMVIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - SystemScrollView[SYSTEMVIEW]->SetScrollBlankSize(35); - SystemScrollView[SYSTEMVIEW]->SetReboundSize(50); + SystemScrollView[SYSTEMVIEW]->SetScrollBlankSize(75); + SystemScrollView[SYSTEMVIEW]->SetReboundSize(35); SystemScrollView[SYSTEMVIEW]->SetDirection(1); + SystemScrollView[SYSTEMVIEW]->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。 + SystemScrollView[SYSTEMVIEW]->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。 UIView::OnDragListener *draglistener = static_cast(SystemPresenter::GetInstance()); if (draglistener == nullptr) { @@ -359,7 +362,7 @@ namespace OHOS } NeedToUpdateImage->SetPosition(323, 280, 20, 20); NeedToUpdateImage->SetStyle(STYLE_BORDER_RADIUS, 200); - char *imagesPath = "/user/res/system/SYSTEM_UPDATE_FLAG.bin"; + const char *imagesPath = "/user/res/system/SYSTEM_UPDATE_FLAG.bin"; NeedToUpdateImage->SetSrc(imagesPath); SystemScrollView[SYSTEMVIEW]->Add(NeedToUpdateImage); -- 2.17.1