【添加卡片】UI
authorCaisking <Casiking@zhihuishixun.com>
Tue, 15 Apr 2025 07:00:47 +0000 (15:00 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Tue, 15 Apr 2025 07:00:47 +0000 (15:00 +0800)
code/sdk/application/wearable/fd230/nativeapp/nativeui/add_card/include/AddCardItem.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/add_card/include/AddCardModel.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/add_card/include/AddCardPresenter.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/add_card/include/AddCardView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/add_card/src/AddCardItem.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/add_card/src/AddCardModel.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/add_card/src/AddCardPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/add_card/src/AddCardView.cpp

index 5325f4e..ddc18fe 100644 (file)
@@ -1,3 +1,9 @@
+/***\r
+ * @Date: 2024-05-30 15:59:37\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-06-28 16:53:50\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardItem.h\r
+ */\r
 /*\r
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
  * Description: AddCardItem.h\r
 #include "components/ui_view_group.h"\r
 #include "components/ui_image_view.h"\r
 #include "components/ui_label_button.h"\r
+#include "components/ui_toggle_button.h"\r
 #include "UiConfig.h"\r
+#include "components/ui_cross_view.h"\r
+#include "components/ui_canvas_ext.h"\r
+#include "ui_resource_string.h"\r
+#include "components/ui_label_ext.h"\r
+namespace OHOS\r
+{\r
+    typedef struct\r
+    {\r
+        CardId id;\r
+        bool addFlag;\r
+        const char *cardImg;\r
+        UIResourceTextId cardid;\r
+    } AddCardInfo;\r
 \r
-namespace OHOS {\r
-typedef struct {\r
-    CardId id;\r
-    bool addFlag;\r
-    const char *cardImg;\r
-} AddCardInfo;\r
+    class AddCardItem : public UIViewGroup\r
+    {\r
+    public:\r
+        AddCardItem();\r
+        ~AddCardItem() override;\r
+        void SetItemInfo(const AddCardInfo &cardInfo);\r
+        void SetOnClickListener(OnClickListener *onClickListener);\r
+        void UpdateItemInfo(bool addFlag);\r
 \r
-class AddCardItem : public UIViewGroup {\r
-public:\r
-    AddCardItem();\r
-    ~AddCardItem() override;\r
-    void SetItemInfo(const AddCardInfo &cardInfo);\r
-    void SetOnClickListener(OnClickListener *onClickListener);\r
-    void UpdateItemInfo(bool addFlag);\r
-private:\r
-    void SetUpChild();\r
-    UIImageView cardImg_;\r
-    UILabelButton cardLabel_;\r
-    AddCardInfo cardInfo_;\r
-};\r
+    private:\r
+        void SetUpChild();\r
+        UIImageView cardImg_;\r
+        UILabelExt cardLabel_;\r
+        UIButton button_;\r
+        AddCardInfo cardInfo_;\r
+        UICanvasExt canvas_;\r
+    };\r
 \r
 }\r
-\r
 #endif // ADD_CARD_ITEM_H
\ No newline at end of file
index 9bdf0e4..22a2490 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-05-30 15:59:37
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-06-28 18:18:30
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardModel.h
+ */
 /*
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
  * Description: AddCardModel.h
 #include "AddCardPresenter.h"
 #include "MainModel.h"
 
-namespace OHOS {
-    class AddCardModel {
+namespace OHOS
+{
+    class AddCardModel
+    {
     public:
         static AddCardModel &GetInstance(void);
         void SetSelectedCardIndex(uint8_t cardIndex);
         uint8_t GetSelectedCardIndex(void) const;
         void AddCardSetting(void);
+        void DelCardSetting(void);
+
     private:
         AddCardModel();
         AddCardModel(const AddCardModel &);
index f1fd42b..212efc2 100644 (file)
@@ -1,3 +1,15 @@
+/***
+ * @Date: 2024-05-30 15:59:37
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-15 11:31:56
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardPresenter.h
+ */
+/***
+ * @Date: 2024-05-30 15:59:37
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-06-29 14:46:02
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardPresenter.h
+ */
 /*
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
  * Description: AddCardPresenter.h
 #include "Presenter.h"
 #include "components/ui_list.h"
 #include "components/ui_view.h"
+#include "KeyInputListener.h"
 #include "ModelListenerSample.h"
 
-#define TOAST_KEEP_TIME  1000
-
-namespace OHOS {
-static const char *ADD_CARD_ADD = "addcardadd";
-
-class AddCardView;
-class AddCardModel;
-class AddCardPresenter : public Presenter<AddCardView>, public ModelListenerSample,
-                         public UIView::OnClickListener, public UIView::OnDragListener,
-                         public ListScrollListener  {
-public:
-    AddCardPresenter();
-    ~AddCardPresenter() override;
-
-    void OnTickEvent() override;
-    void Notify() override {}
-    bool OnClick(UIView &view, const ClickEvent &event) override;
-    void OnScrollStart(int16_t index, UIView *view) override;
-    void OnScrollEnd(int16_t index, UIView *view) override;
-    void OnItemSelected(int16_t index, UIView* view) override;
-    bool OnDrag(UIView& view, const DragEvent& event) override;
-private:
-    void ResetTickTimer(void);
-    AddCardModel *model{nullptr};
-    uint64_t startTime{0};
-    bool cardCountEvent{false};
-};
+#define TOAST_KEEP_TIME 1000
+
+namespace OHOS
+{
+    static const char *ADD_CARD_ADD = "addcardadd";
+
+    class AddCardView;
+    class AddCardModel;
+    class AddCardPresenter : public Presenter<AddCardView>,
+                             public ModelListenerSample,
+                             public UIView::OnClickListener,
+                             public UIView::OnDragListener,
+                             public ListScrollListener,
+                             public RootView::OnKeyActListener
+    {
+    public:
+        AddCardPresenter();
+        ~AddCardPresenter() override;
+
+
+       
+        void OnTickEvent() override;
+        void Notify() override {}
+        bool OnClick(UIView &view, const ClickEvent &event) override;
+        void OnScrollStart(int16_t index, UIView *view) override;
+        void OnScrollEnd(int16_t index, UIView *view) override;
+        void OnItemSelected(int16_t index, UIView *view) override;
+        bool OnDrag(UIView &view, const DragEvent &event) override;
+
+        bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
+
+        static AddCardPresenter *GetInstance();
+
+    private:
+        void ResetTickTimer(void);
+        AddCardModel *model{nullptr};
+        uint64_t startTime{0};
+        bool cardCountEvent{false};
+        KeyInputListener *keyActListenr{nullptr};
+    };
 }
 
 #endif // ADD_CARD_PRESENTER_H
\ No newline at end of file
index 12cca70..2b6c1a2 100644 (file)
@@ -13,6 +13,8 @@
 #include "components/ui_label.h"
 #include "components/ui_image_view.h"
 #include "components/ui_toggle_button.h"
+#include "window/window.h"
+
 #include "ChangeSliceListener.h"
 #include "UiConfig.h"
 #include "AddCardAdapter.h"
@@ -33,6 +35,7 @@ public:
     }
 
     void OnStart() override;
+    
     void RefreshCardList(void);
     void ExceedsCardCountEvent(bool isVisible);
 private:
index 67e287e..6e68bca 100644 (file)
+/***\r
+ * @Date: 2024-04-15 10:55:58\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-29 10:25:30\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardItem.cpp\r
+ */\r
+\r
 #include "AddCardItem.h"\r
 #include "AddCardPresenter.h"\r
 #include "wearable_log.h"\r
+#include "components/ui_canvas_ext.h"\r
 \r
-namespace OHOS {\r
+static constexpr const char *BUTTON_OK_IMGAE = "/user/res/add_card/button_ok.bin";\r
+static constexpr const char *BUTTON_NO_IMGAE = "/user/res/add_card/button_no.bin";\r
+namespace OHOS\r
+{\r
     AddCardItem::AddCardItem()\r
     {\r
-        SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+        SetPosition(0, 0, 466, 466);\r
         SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
         SetUpChild();\r
+        Add(&canvas_);\r
         Add(&cardImg_);\r
+        Add(&button_);\r
         Add(&cardLabel_);\r
     }\r
 \r
     AddCardItem::~AddCardItem()\r
     {\r
+        Remove(&canvas_);\r
         Remove(&cardImg_);\r
+        Remove(&button_);\r
         Remove(&cardLabel_);\r
     }\r
 \r
     void AddCardItem::SetUpChild()\r
     {\r
-        cardImg_.SetPosition(87, 60);\r
+        cardImg_.SetPosition(93, 93);\r
         cardImg_.Resize(280, 280);\r
         cardImg_.SetResizeMode(UIImageView::FILL);\r
         cardImg_.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);\r
 \r
-        cardLabel_.SetPosition(175, 360);\r
-        cardLabel_.Resize(100, 50);\r
-        cardLabel_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);\r
+        button_.SetPosition(143, 334);\r
+        button_.Resize(180, 70);\r
+        button_.SetViewId("toggleButton");\r
+        button_.SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+        button_.SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
+        button_.SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
+        button_.SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);\r
+        button_.SetStyleForState(STYLE_BORDER_RADIUS, 100, UIButton::PRESSED);\r
+\r
+        cardLabel_.SetPosition(83, 40);\r
+        cardLabel_.Resize(300, 35);\r
+        cardLabel_.SetViewId("cardLabel_");\r
+        cardLabel_.SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);\r
+        cardLabel_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        cardLabel_.SetStyle(STYLE_TEXT_FONT, 30);\r
+        cardLabel_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        canvas_.SetPosition(73, 73);\r
+        canvas_.Resize(320, 320);\r
+        canvas_.SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+        canvas_.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+        PaintExt paint;\r
+        Point center = {158, 158};\r
+        paint.SetStyle(Paint::PaintStyle::STROKE_STYLE);\r
+        paint.SetStrokeWidth(20);\r
+        paint.SetStrokeColor(Color::Cyan());\r
+        paint.SetAntialiased(true);\r
+        RadialGradient radial = {158, 158, 150, 150, 152};\r
+        ColorStop stops[3] = {{0, Color::Green().full}, {0.8, Color::White().full}, {1, 0x00ffffff}};\r
+        paint.SetRadialGradient(radial, stops, 3); // 3: count\r
+        canvas_.DrawCircle(center, 140, paint);\r
     }\r
 \r
     void AddCardItem::SetItemInfo(const AddCardInfo &cardInfo)\r
     {\r
         cardInfo_ = cardInfo;\r
         cardImg_.SetSrc(cardInfo.cardImg);\r
-        if (cardInfo.addFlag) {\r
-            cardLabel_.SetText("已添加");\r
-        } else {\r
-            cardLabel_.SetText("添加");\r
+        cardLabel_.SetTextId(cardInfo.cardid);\r
+        if (cardInfo.addFlag)\r
+        {\r
+            button_.SetImageSrc(BUTTON_OK_IMGAE, BUTTON_OK_IMGAE);\r
+        }\r
+        else\r
+        {\r
+            button_.SetImageSrc(BUTTON_NO_IMGAE, BUTTON_NO_IMGAE);\r
         }\r
     }\r
 \r
     void AddCardItem::UpdateItemInfo(bool addFlag)\r
     {\r
-        if (addFlag) {\r
-            cardLabel_.SetText("已添加");\r
-            cardInfo_.addFlag = addFlag;\r
-            Invalidate();\r
+        cardInfo_.addFlag = addFlag;\r
+        if (addFlag)\r
+        {\r
+            button_.SetImageSrc(BUTTON_OK_IMGAE, BUTTON_OK_IMGAE);\r
+        }\r
+        else\r
+        {\r
+            button_.SetImageSrc(BUTTON_NO_IMGAE, BUTTON_NO_IMGAE);\r
         }\r
+        Invalidate();\r
     }\r
 \r
     void AddCardItem::SetOnClickListener(OnClickListener *onClickListener)\r
     {\r
-        cardLabel_.SetOnClickListener(onClickListener);\r
+        // cardLabel_.SetOnClickListener(onClickListener);\r
+        button_.SetOnClickListener(onClickListener);\r
     }\r
 \r
 };\r
index fa052de..fd0c9d6 100644 (file)
@@ -1,3 +1,9 @@
+/***
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-06-28 18:18:55
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardModel.cpp
+ */
 /*
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
  * Description: AddCardModel.cpp
@@ -9,7 +15,8 @@
 #include "kv_store.h"
 #include "securec.h"
 
-namespace OHOS {
+namespace OHOS
+{
     AddCardModel::AddCardModel() {}
 
     AddCardModel::~AddCardModel() {}
@@ -34,4 +41,8 @@ namespace OHOS {
     {
         MainModel::GetInstance().AddCardSetting(selectedCardIndex);
     }
+    void AddCardModel::DelCardSetting(void)
+    {
+        MainModel::GetInstance().DeleteCardSetting(selectedCardIndex);
+    }
 }
index 7b69aa5..f71866e 100644 (file)
 #include "hal_tick.h"
 #include "NativeRegisterManager.h"
 
+#include "KeyInputListener.h"
+#include "custom_utils.h"
+#include "common/key_code.h"
+namespace OHOS
+{
 
-namespace OHOS {
-
-REGIST_SLICE(VIEW_ADD_CARD, AddCardView, AddCardPresenter);
+    // 当前Presenter属性实例化的内存指针
+    REGIST_SLICE(VIEW_ADD_CARD, AddCardView, AddCardPresenter);
 
     AddCardPresenter::AddCardPresenter()
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::AddCardPresenter");
         model = &AddCardModel::GetInstance();
+        //进入设置界面;将卡片序号设置为0
+        model->SetSelectedCardIndex(0);
+
     }
 
-    AddCardPresenter::~AddCardPresenter() {
+    AddCardPresenter::~AddCardPresenter()
+    {
     }
 
-    bool AddCardPresenter::OnDrag(UIView& view, const DragEvent& event)
+   
+
+    bool AddCardPresenter::OnDrag(UIView &view, const DragEvent &event)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::OnDrag");
         UNUSED(view);
-        if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) &&
-            (event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) {
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::OnDrag ChangeSlice");
-            NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+        /*回退*/
+        if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) && (event.GetDeltaX() > X_DRAG_OFFSET) &&
+            (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY()))))
+        {
+            // 回退
+            NativeAbility::GetInstance().Back();
+            return true;
         }
         return false;
     }
 
     bool AddCardPresenter::OnClick(UIView &view, const ClickEvent &event)
     {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::OnClick");
-        if (MainModel::GetInstance().GetCardSettingCount() >= CARD_SETTING_COUNT_MAX) {
-            cardCountEvent = true;
-            view_->ExceedsCardCountEvent(true);
-            ResetTickTimer();
-        } else {
-            model->AddCardSetting();
+        uint8_t index = model->GetSelectedCardIndex();
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::OnClick index %d", index);
+        if (!MainModel::GetInstance().GetCardInfoSet(index))
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::OnClick GetCardInfoSet ture");
+            // 超过最大卡片限制
+            if (MainModel::GetInstance().GetCardSettingCount() >= CARD_SETTING_COUNT_MAX)
+            {
+                cardCountEvent = true;
+                view_->ExceedsCardCountEvent(true);
+                ResetTickTimer();
+            }
+            else
+            {
+                model->AddCardSetting();
+                view_->RefreshCardList();
+            }
+        }
+        else
+        {
+            model->DelCardSetting();
             view_->RefreshCardList();
         }
         return true;
@@ -60,36 +87,52 @@ REGIST_SLICE(VIEW_ADD_CARD, AddCardView, AddCardPresenter);
     void AddCardPresenter::OnScrollEnd(int16_t index, UIView *view)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::OnScrollEnd index = %d", index);
-        if (view == nullptr) {
+        if (view == nullptr)
+        {
             return;
         }
         model->SetSelectedCardIndex(index);
     }
 
-    void AddCardPresenter::OnItemSelected(int16_t index, UIView* view)
+    void AddCardPresenter::OnItemSelected(int16_t index, UIView *view)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::OnItemSelected index = %d", index);
-        if (view == nullptr) {
+        if (view == nullptr)
+        {
             return;
         }
     }
 
     void AddCardPresenter::OnTickEvent()
     {
-        if (cardCountEvent) {
-            uint64_t current_time = static_cast<uint64_t>(HALTick::GetInstance().GetTime());
-            if (current_time - startTime > TOAST_KEEP_TIME) {
-                view_->ExceedsCardCountEvent(false);
-                cardCountEvent = false;
-            }
-        }
+        // if (cardCountEvent)
+        // {
+        //     uint64_t current_time = osKernelGetTick2ms();
+        //     if (current_time - startTime > TOAST_KEEP_TIME)
+        //     {
+        //         view_->ExceedsCardCountEvent(false);
+        //         cardCountEvent = false;
+        //     }
+        // }
         return;
     }
 
     void AddCardPresenter::ResetTickTimer(void)
     {
-        startTime = static_cast<uint64_t>(HALTick::GetInstance().GetTime());
+        // startTime = osKernelGetTick2ms();
         return;
     }
-
+    // 增加按键事件
+    bool AddCardPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
+    {
+        unsigned short keyID = event.GetKeyId();
+        unsigned short keyState = event.GetState();
+        // 如果是power键,且是亮屏状态,按键释放就返回上一级
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
+        {
+            // 回退
+            NativeAbility::GetInstance().Back();
+        }
+        return true;
+    }
 }
index abb1a63..5498e6d 100644 (file)
 #include "AddCardView.h"
 #include "AddCardPresenter.h"
 
-namespace OHOS {
-AddCardView::AddCardView()
+namespace OHOS
 {
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardView::AddCardView");
-}
+    AddCardView::AddCardView()
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardView::AddCardView");
+    }
 
-AddCardView::~AddCardView()
-{
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardView::~AddCardView");
-    if (addCardAdapter_ != nullptr) {
-        delete addCardAdapter_;
-        addCardAdapter_ = nullptr;
+    AddCardView::~AddCardView()
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardView::~AddCardView");
+        if (addCardAdapter_ != nullptr)
+        {
+            delete addCardAdapter_;
+            addCardAdapter_ = nullptr;
+        }
     }
-}
 
-void AddCardView::OnStart()
-{
-    addCardAdapter_ = new AddCardAdapter();
-    addCardAdapter_->SetItemClickListener(presenter_);
-    SetUpListInfo();
-    SetUpListView();
-    SetUpToast();
-}
+    void AddCardView::OnStart()
+    {
+       
+        addCardAdapter_ = new AddCardAdapter();
+        addCardAdapter_->SetItemClickListener(presenter_);
+        SetUpListInfo();
+        SetUpListView();
+        SetUpToast();
+//按键监听
+    }
 
-void AddCardView::SetUpListInfo(void)
-{
-    MainModel::GetInstance().InitCardSettings();
-    uint8_t cardCount = MainModel::GetInstance().GetCardSettingCount();
-    CardId *cardSettings = MainModel::GetInstance().GetCardSettings();
-    addCardAdapter_->ClearItem();
-    for (uint8_t i = WATCH_FACE + 1; i < MAX_CARD; i++) {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "All:cardId = %d", i);
-        const CardInfo *info = MainModel::GetInstance().GetCardInfo((CardId)i);
-        if (info != nullptr) {
-            AddCardInfo addInfo;
-            addInfo.id = info->id;
-            addInfo.cardImg = info->cardImg;
-            addInfo.addFlag = false;
-            for (uint8_t j = 0; j < cardCount; j++) {
-                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Settings:cardId = %d", cardSettings[j]);
-                if (cardSettings[j] == i) {
-                    addInfo.addFlag = true;
-                    break;
+   
+
+    void AddCardView::SetUpListInfo(void)
+    {
+        MainModel::GetInstance().InitCardSettings();
+        uint8_t cardCount = MainModel::GetInstance().GetCardSettingCount();
+        CardId *cardSettings = MainModel::GetInstance().GetCardSettings();
+        addCardAdapter_->ClearItem();
+        for (uint8_t i = WATCH_FACE + 1; i < MAX_CARD; i++)
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "All:cardId = %d", i);
+            const CardInfo *info = MainModel::GetInstance().GetCardInfo((CardId)i);
+            if (info != nullptr)
+            {
+                AddCardInfo addInfo;
+                addInfo.id = info->id;
+                addInfo.cardImg = info->cardImg;
+                addInfo.cardid = info->cardid;
+                addInfo.addFlag = false;
+                for (uint8_t j = 0; j < cardCount; j++)
+                {
+                    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Settings:cardId = %d", cardSettings[j]);
+                    if (cardSettings[j] == i)
+                    {
+                        addInfo.addFlag = true;
+                        break;
+                    }
                 }
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUpListInfo::%d %s %d",
+                              addInfo.id, addInfo.cardImg, addInfo.addFlag);
+                addCardAdapter_->AddListItem(addInfo);
             }
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUpListInfo::%d %s %d",
-                          addInfo.id, addInfo.cardImg, addInfo.addFlag);
-            addCardAdapter_->AddListItem(addInfo);
         }
     }
-}
 
-void AddCardView::SetUpListView(void)
-{
-    contentList_.SetPosition(0, 0);
-    contentList_.Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
-    contentList_.SetScrollBlankSize(VERTICAL_RESOLUTION / 2);
-    contentList_.SetSelectPosition(VERTICAL_RESOLUTION / 2);
-    contentList_.SetDraggable(true);
-    contentList_.SetThrowDrag(true);
-    contentList_.EnableAutoAlign(true);
-    contentList_.SetScrollStateListener(presenter_);
-    contentList_.SetOnDragListener(presenter_);
-    contentList_.SetMaxScrollDistance(1000);
-    contentList_.SetAdapter(addCardAdapter_);
-    contentList_.SetVisible(true);
-    AddViewToRootContainer(&contentList_);
-}
+    void AddCardView::SetUpListView(void)
+    {
+        contentList_.SetPosition(0, 0);
+        contentList_.Resize(HORIZONTAL_RESOLUTION, 466);
+        contentList_.SetScrollBlankSize(HORIZONTAL_RESOLUTION / 2);
+        contentList_.SetSelectPosition(HORIZONTAL_RESOLUTION / 2);
+        contentList_.SetDraggable(true);
+        contentList_.SetThrowDrag(true);
+        contentList_.EnableAutoAlign(true);
+        contentList_.SetScrollStateListener(presenter_);
+        contentList_.SetOnDragListener(presenter_);
+        contentList_.SetMaxScrollDistance(1000);
+        contentList_.SetLoopState(false);//设置不循环
+        contentList_.SetAdapter(addCardAdapter_);
 
-void AddCardView::SetUpToast(void)
-{
-    toastLabel_.SetPosition(77, 220);
-    toastLabel_.Resize(454, 60);
-    toastLabel_.SetViewId("toast");
-    toastLabel_.SetText("卡片数量已经到达上限");
-    toastLabel_.SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
-    toastLabel_.SetStyle(STYLE_BACKGROUND_OPA, 255);
-    toastLabel_.SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
-    toastLabel_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-    toastLabel_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-    toastLabel_.SetVisible(false);
-    AddViewToRootContainer(&toastLabel_);
-}
+        contentList_.SetVisible(true);
+        contentList_.SetRotateFactor(3.0);
+        contentList_.RequestFocus();
+        contentList_.SetYScrollBarVisible(true); // 设置滑动滚动条
 
-void AddCardView::RefreshCardList(void)
-{
-    SetUpListInfo();
-    contentList_.RefreshList();
-}
+        AddViewToRootContainer(&contentList_);
+    }
 
-void AddCardView::ExceedsCardCountEvent(bool isVisible)
-{
-    toastLabel_.SetVisible(isVisible);
-    toastLabel_.Invalidate();
-}
+    void AddCardView::SetUpToast(void)
+    {
+        toastLabel_.SetPosition(77, 220);
+        toastLabel_.Resize(454, 60);
+        toastLabel_.SetViewId("toast");
+        // toastLabel_.SetTextId(STR_MAX_CARD);//可以不增加多国语言。目前没有该需求
+        toastLabel_.SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
+        toastLabel_.SetStyle(STYLE_BACKGROUND_OPA, 255);
+        toastLabel_.SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+        toastLabel_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+        toastLabel_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+        toastLabel_.SetVisible(false);
+        AddViewToRootContainer(&toastLabel_);
+    }
 
+    void AddCardView::RefreshCardList(void)
+    {
+        SetUpListInfo();
+        contentList_.RefreshList();
+    }
+
+    void AddCardView::ExceedsCardCountEvent(bool isVisible)
+    {
+        toastLabel_.SetVisible(isVisible);
+        toastLabel_.Invalidate();
+    }
 }