Merge #952 into sdk602patch0626 from refs/changes/952/head 955/target/1
author罗正 <1732036298@qq.com>
Thu, 12 Sep 2024 12:10:58 +0000 (12:10 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Thu, 12 Sep 2024 12:10:58 +0000 (12:10 +0000)
Code review from 罗正

* refs/changes/952/head: (13 commits squashed)

  - 闹钟UI优化:
    1.#636,解决,手表,闹钟只响铃3次bug
    2.闹钟编辑界面优化
    3.闹钟界面中星期缩写中文为:一,二...日,其他语言为:Mon,Tue...Sun

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

  - #534,解决闹钟设置多个闹钟,只响第一个,后续的没有提示闹钟bug

  - 解决#534,解决闹钟设置多个闹钟,只响第一个,后续的没有提示闹钟bug
    修改闹钟弹窗无操作50s后自动关闭

  - #642,解决:删除多余闹钟后,界面不能显示剩余闹钟bug

  - Merge branch &#39;sdk602patch0626&#39; 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 &#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

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/952
code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h
code/sdk/application/wearable/fd230app/nativeui/applist/src/AppItemView.cpp
code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp

index dc37cc2..311cd9b 100644 (file)
@@ -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;
index 6a5963b..6aafaa2 100644 (file)
@@ -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_;
+    }
 }
index 434903d..7a0ed4d 100644 (file)
@@ -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<UITransformGroup*>(item);
+    ArcScaleListItemView * group = dynamic_cast<ArcScaleListItemView*>(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<float>(temp) / ARC_SCALE_LIST_SCALE_FACTOR);
-        group->Scale(Vector2<float>(scale, scale), Vector2<float>(w >> 1,  h >> 1));
+        // group->Scale(Vector2<float>(scale, scale), Vector2<float>((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<float>(img_temp) / ARC_SCALE_LIST_SCALE_FACTOR);
+        group->GetImage()->Scale(Vector2<float>(img_scale, img_scale), Vector2<float>((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<float>(label_temp) / ARC_SCALE_LIST_SCALE_FACTOR);
+        group->GetLabel()->Scale(Vector2<float>(label_scale, label_scale), Vector2<float>((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_)