From 8f260819764fc2125eea949d40bf82bebd8ef69b Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E7=BD=97=E6=AD=A3?= <1732036298@qq.com> Date: Thu, 12 Sep 2024 12:10:58 +0000 Subject: [PATCH] Merge #952 into sdk602patch0626 from refs/changes/952/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Code review from 罗正 * refs/changes/952/head: (13 commits squashed) - 闹钟UI优化: 1.#636,解决,手表,闹钟只响铃3次bug 2.闹钟编辑界面优化 3.闹钟界面中星期缩写中文为:一,二...日,其他语言为:Mon,Tue...Sun - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626 - #534,解决闹钟设置多个闹钟,只响第一个,后续的没有提示闹钟bug - 解决#534,解决闹钟设置多个闹钟,只响第一个,后续的没有提示闹钟bug 修改闹钟弹窗无操作50s后自动关闭 - #642,解决:删除多余闹钟后,界面不能显示剩余闹钟bug - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626 - #370,解决:下拉状态栏中,开启4G开关,停留在下拉菜单中,信号格状态不刷新(息屏时不会刷新)bug #618,解决:4G开关开启,重启手表,4G开关状态颜色响应比较慢bug - #639,解决:设置-图标不圆,有缺失,勿扰模式,更换卡片,省电模式bug - #154,解决:手表端超时不操作后,绑定请求会继续留在手表界面bug - 6.天气界面UI修改,与figma上设计保持一致 - 优化弧形列表,调整应用之间间隔,调整文字对齐为左对齐 - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626 - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626 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/952 --- .../nativeui/applist/include/AppItemView.h | 6 +- .../nativeui/applist/src/AppItemView.cpp | 82 +++++++++++-------- .../nativeui/applist/src/ApplistView.cpp | 70 ++++++++++------ 3 files changed, 98 insertions(+), 60 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h b/code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h index dc37cc292..311cd9b5b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-07-06 17:36:42 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-07-06 18:25:00 + * @LastEditTime: 2024-09-12 17:37:28 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h */ @@ -66,6 +66,7 @@ private: AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr,nullptr, STR_EXERCISE_GENERAL,nullptr }; }; +//弧形列表ItemView class ArcScaleListItemView : public UITransformGroup { public: @@ -75,6 +76,9 @@ public: void SetItemInfo(const AppItem &itemInfo); AppViewId GetViewId(); const char * GetAppUid(); + void SetUpChild(); + UILabelExt *GetLabel(void); + UIImageView *GetImage(void); ArcScaleListItemView(const ArcScaleListItemView &) = delete; ArcScaleListItemView &operator=(const ArcScaleListItemView &) = delete; diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/src/AppItemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/applist/src/AppItemView.cpp index 6a5963b6b..6aafaa25a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/src/AppItemView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/src/AppItemView.cpp @@ -139,46 +139,22 @@ namespace OHOS { #define ARC_SCALE_LIST_ITEM_WIDTH (400) - #define ARC_SCALE_LIST_ITEM_HEIGHT (130) // (100) - #define ARC_SCALE_LIST_IMAGE_X (10)//(30) - #define ARC_SCALE_LIST_IMAGE_WIDTH (100) - #define ARC_SCALE_LIST_IMAGE_HEIGHT (100) - #define ARC_SCALE_LIST_TEXT_X (ARC_SCALE_LIST_IMAGE_X + ARC_SCALE_LIST_IMAGE_WIDTH) - #define ARC_SCALE_LIST_TEXT_WIDTH (ARC_SCALE_LIST_ITEM_WIDTH - ARC_SCALE_LIST_TEXT_X) - #define ARC_SCALE_LIST_TEXT_HEIGHT (100) + #define ARC_SCALE_LIST_ITEM_HEIGHT (100) + #define ARC_SCALE_LIST_IMAGE_X (0) + #define ARC_SCALE_LIST_IMAGE_Y (0) + #define ARC_SCALE_LIST_IMAGE_WIDTH (90) + #define ARC_SCALE_LIST_IMAGE_HEIGHT (90) + #define ARC_SCALE_LIST_TEXT_X (108) + #define ARC_SCALE_LIST_TEXT_WIDTH (180) + #define ARC_SCALE_LIST_TEXT_HEIGHT (42) + #define ARC_SCALE_LIST_TEXT_Y (ARC_SCALE_LIST_ITEM_HEIGHT - ARC_SCALE_LIST_TEXT_HEIGHT) / 2 ArcScaleListItemView::ArcScaleListItemView() { Resize(ARC_SCALE_LIST_ITEM_WIDTH, ARC_SCALE_LIST_ITEM_HEIGHT); SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); - // SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full); SetTouchable(true); - - if (image_ == nullptr) { - image_ = new UIImageView(); - if (image_ == nullptr) { - return ; - } - } - image_->SetPosition(ARC_SCALE_LIST_IMAGE_X, 0, ARC_SCALE_LIST_IMAGE_WIDTH, ARC_SCALE_LIST_IMAGE_HEIGHT); - image_->SetResizeMode(UIImageView::ImageResizeMode::CENTER); - - if (label_ == nullptr) { - label_ = new UILabelExt(); - if (label_ == nullptr) { - delete image_; - image_ = nullptr; - return ; - } - } - label_->SetPosition(ARC_SCALE_LIST_TEXT_X, 0, ARC_SCALE_LIST_TEXT_WIDTH, ARC_SCALE_LIST_TEXT_HEIGHT); - label_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); - label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40: item font size - label_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS); - label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - - Add(image_); - Add(label_); + SetUpChild(); } ArcScaleListItemView::~ArcScaleListItemView() @@ -201,6 +177,35 @@ namespace OHOS { label_->SetTextId(itemInfo.TextId); } + void ArcScaleListItemView::SetUpChild() + { + if (image_ == nullptr) { + image_ = new UIImageView(); + if (image_ == nullptr) { + return ; + } + } + image_->SetPosition(ARC_SCALE_LIST_IMAGE_X, ARC_SCALE_LIST_IMAGE_Y, ARC_SCALE_LIST_IMAGE_WIDTH, ARC_SCALE_LIST_IMAGE_HEIGHT); + Add(image_); + /* -------------------------------------------------------------------------- */ + if (label_ == nullptr) { + label_ = new UILabelExt(); + if (label_ == nullptr) { + delete image_; + image_ = nullptr; + return ; + } + } + label_->SetPosition(ARC_SCALE_LIST_TEXT_X, 25, ARC_SCALE_LIST_TEXT_WIDTH, ARC_SCALE_LIST_TEXT_HEIGHT); + label_->SetStyle(STYLE_LINE_HEIGHT,42); + label_->SetStyle(STYLE_TEXT_FONT,36); + label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 36); + label_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION); + label_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER); + Add(label_); + } + + AppViewId ArcScaleListItemView::GetViewId() { return itemInfo_.id; @@ -211,4 +216,13 @@ namespace OHOS { return itemInfo_.uid; } + UILabelExt *ArcScaleListItemView::GetLabel(void) + { + return label_; + } + + UIImageView *ArcScaleListItemView::GetImage(void) + { + return image_; + } } 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 434903d7b..7a0ed4dd5 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp @@ -18,11 +18,11 @@ static constexpr int16 NUM_2 = 2; static constexpr int16 MAX_SCROLL_DIS = 1000; static constexpr int16 ROTATE_FACTOR_2 = 2; -#define ARC_SCALE_LIST_SCALE_FACTOR (350)//(400) -#define ARC_SCALE_LIST_X (25) -#define ARC_SCALE_LIST_Y (30) +#define ARC_SCALE_LIST_SCALE_FACTOR (400)//(400) +#define ARC_SCALE_LIST_X (50) +#define ARC_SCALE_LIST_Y (0) #define ARC_SCALE_LIST_WIDTH (Screen::GetInstance().GetWidth() - ARC_SCALE_LIST_X) -#define ARC_SCALE_LIST_HEIGHT (Screen::GetInstance().GetHeight() - ARC_SCALE_LIST_Y * 2) +#define ARC_SCALE_LIST_HEIGHT (Screen::GetInstance().GetHeight()) ApplistView::ApplistView() @@ -75,6 +75,11 @@ ApplistView::~ApplistView() delete ArcScaleListGroup_; ArcScaleListGroup_ = nullptr; } + if(nullptr != ArcScaleListDragListener_) + { + delete ArcScaleListDragListener_; + ArcScaleListDragListener_ = nullptr; + } WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::~ApplistView end..."); } @@ -209,21 +214,37 @@ static bool TransformItemBaseOnPosition(UITransformList* list, UIView* item) if (item->GetViewType() != UI_TRANSFORM_GROUP) { return false; } - UITransformGroup * group = dynamic_cast(item); + ArcScaleListItemView * group = dynamic_cast(item); if (group == nullptr) { return false; } + if(group->GetImage() == nullptr) + { + return false; + } + if(group->GetLabel() == nullptr) + { + return false; + } // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TransformItemBaseOnPosition [%d]", __LINE__); int16_t w = group->GetWidth(); int16_t h = group->GetHeight(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TransformItemBaseOnPosition [%d] %d %d", __LINE__,w,h); if (list->GetDirection() == UIList::VERTICAL) { int16_t midY = list->GetY() + (list->GetHeight() >> 1); int16_t y = group->GetY(); int offset = (y + (h >> 1) - midY); - int temp = EasingEquation::SineEaseIn(0, ARC_SCALE_LIST_SCALE_FACTOR, abs(offset), ARC_SCALE_LIST_SCALE_FACTOR); - float scale = 1.0 - (static_cast(temp) / ARC_SCALE_LIST_SCALE_FACTOR); - group->Scale(Vector2(scale, scale), Vector2(w >> 1, h >> 1)); + // group->Scale(Vector2(scale, scale), Vector2((w>>1), h >> 1)); + + int img_temp = EasingEquation::SineEaseIn(0, ARC_SCALE_LIST_SCALE_FACTOR, abs(offset), ARC_SCALE_LIST_SCALE_FACTOR); + float img_scale = 1.0 - (static_cast(img_temp) / ARC_SCALE_LIST_SCALE_FACTOR); + group->GetImage()->Scale(Vector2(img_scale, img_scale), Vector2((w>>1), h >> 1)); + + int label_temp = EasingEquation::SineEaseIn(0, ARC_SCALE_LIST_SCALE_FACTOR/2, abs(offset), ARC_SCALE_LIST_SCALE_FACTOR); + float label_scale = 1.0 - (static_cast(label_temp) / ARC_SCALE_LIST_SCALE_FACTOR); + group->GetLabel()->Scale(Vector2(label_scale, label_scale), Vector2((w>>1), h >> 1)); + if ((y <= midY) && (y + group->GetHeight() >= midY)) { return true; } @@ -261,7 +282,7 @@ void ApplistView::ArcScaleListStyleOnStart(void) if (nullptr == ArcScaleList_) { - ArcScaleList_ = new UITransformList(); + ArcScaleList_ = new UITransformList(UIList::VERTICAL); if (nullptr == ArcScaleList_) return; @@ -271,14 +292,17 @@ void ApplistView::ArcScaleListStyleOnStart(void) ArcScaleList_->SetThrowDrag(true); ArcScaleList_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); ArcScaleList_->SetScrollBlankSize(40);//(50); - ArcScaleList_->SetMaxScrollDistance(1000); // 1000: max scroll distance + ArcScaleList_->SetMaxScrollDistance(1000*2); // 1000: max scroll distance ArcScaleList_->SetSwipeACCLevel(800); // 800: compensation distance ArcScaleList_->SetDragACCLevel(5); // 5: drag acceleration ArcScaleList_->SetYScrollBarVisible(true); // ArcScaleList_->SetScrollStateListener(presenter_); - + ArcScaleList_->SetReboundSize(35); + ArcScaleList_->EnableAutoAlign(true); + ArcScaleList_->SetItemSpace(10); ArcScaleList_->SetRotateFactor(ROTATE_FACTOR_2); ArcScaleList_->RequestFocus(); + ArcScaleList_->RefreshList(); if(nullptr == ArcScaleListDragListener_) { @@ -381,29 +405,24 @@ void ApplistView::OnStop() RootView::GetInstance()->ClearOnKeyActListener(); } else if (style == AppListStyle::HEXAGONS_STYLE) { HexagonsStyleOnStop();//蜂窝 - } - else if(AppListStyle::ARC_SCALE_LIST_STYLE == style) - { - ArcScaleListStyleOnStop(); + } else if(AppListStyle::ARC_SCALE_LIST_STYLE == style) { + ArcScaleListStyleOnStop(); //弧形 RootView::GetInstance()->ClearOnKeyActListener(); - } - else { + } else { ListStyleOnStop();//list RootView::GetInstance()->ClearOnKeyActListener(); } } else { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::OnStop GetPreApplistStyleFlag == true"); - if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::HEXAGONS_STYLE) - { + if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::HEXAGONS_STYLE) { HexagonsStyleOnStop(); - } - else if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::APPLIST_STYLE) - { + } else if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::APPLIST_STYLE) { ListStyleOnStop(); - } - else if(AppListStyle::ARC_SCALE_LIST_STYLE == ThemeStyleModel::GetInstance().GetPreApplistStyle()) - { + } else if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::ARC_SCALE_LIST_STYLE ) { ArcScaleListStyleOnStop(); + } else if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::FOOTBALL_STYLE) { + FootballStyleOnStop(); + RootView::GetInstance()->ClearOnKeyActListener(); } ThemeStyleModel::GetInstance().SetTheSameSliceChangeFlag(false); } @@ -462,6 +481,7 @@ void ApplistView::ListStyleOnStop() WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::ListStyleOnStop end..."); } +//弧形列表 void ApplistView::ArcScaleListStyleOnStop(void) { if(nullptr != ArcScaleListGroup_) -- 2.17.1