From 2bf0eb9b45b4149d768cc7d0af6dad19e3b3a5b2 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Tue, 28 May 2024 18:42:14 +0800 Subject: [PATCH] =?utf8?q?add=5Fcard=E6=96=87=E4=BB=B6=E5=A4=B9=E6=9B=B4?= =?utf8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../add_card/include/AddCardAdapter.h | 8 ++--- .../nativeui/add_card/include/AddCardItem.h | 4 +-- .../nativeui/add_card/include/AddCardModel.h | 1 - .../add_card/include/AddCardPresenter.h | 30 +++++++++------- .../nativeui/add_card/include/AddCardView.h | 13 ++++--- .../add_card/src/AddCardPresenter.cpp | 34 ++++++++++++++++--- .../nativeui/add_card/src/AddCardView.cpp | 22 ++++++++++++ 7 files changed, 83 insertions(+), 29 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardAdapter.h b/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardAdapter.h index 34882c939..8f18d42be 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardAdapter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardAdapter.h @@ -23,13 +23,13 @@ namespace OHOS { class AddCardAdapter : public AbstractAdapter { public: explicit AddCardAdapter(); - virtual ~AddCardAdapter(); + ~AddCardAdapter() override; - virtual uint16 GetCount(void) override; + uint16 GetCount(void) override; - virtual UIView *GetView(UIView *inView, int16 index) override; + UIView *GetView(UIView *inView, int16 index) override; - virtual void AddListItem(const AddCardInfo &item); + void AddListItem(const AddCardInfo &item); void SetItemClickListener(UIView::OnClickListener *itemClickListener) { diff --git a/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardItem.h b/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardItem.h index 5ce44d585..5325f4e22 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardItem.h +++ b/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardItem.h @@ -23,10 +23,10 @@ typedef struct { const char *cardImg; } AddCardInfo; -class AddCardItem :public UIViewGroup { +class AddCardItem : public UIViewGroup { public: AddCardItem(); - virtual ~AddCardItem(); + ~AddCardItem() override; void SetItemInfo(const AddCardInfo &cardInfo); void SetOnClickListener(OnClickListener *onClickListener); void UpdateItemInfo(bool addFlag); diff --git a/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardModel.h b/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardModel.h index ae17e1a0f..9bdf0e41d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardModel.h @@ -28,7 +28,6 @@ namespace OHOS { AddCardModel &operator=(const AddCardModel &); virtual ~AddCardModel(); uint8_t selectedCardIndex{0}; - }; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardPresenter.h index f8e6f885b..ffaebdf7c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardPresenter.h @@ -12,31 +12,37 @@ #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, +class AddCardPresenter : public Presenter, public ModelListenerSample, public UIView::OnClickListener, public UIView::OnDragListener, public ListScrollListener { public: AddCardPresenter(); - virtual ~AddCardPresenter(); - - virtual void OnStart() override; - virtual void OnResume() override; - virtual void OnStop() override; + ~AddCardPresenter() override; + void OnStart() override; + void OnResume() override; + void OnStop() override; + void OnTickEvent() override; + void Notify() override {} bool OnClick(UIView &view, const ClickEvent &event) override; - virtual void OnScrollStart(int16_t index, UIView *view) override; - virtual void OnScrollEnd(int16_t index, UIView *view) override; - virtual void OnItemSelected(int16_t index, UIView* view) override; - virtual bool OnDrag(UIView& view, const DragEvent& 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: - KeyInputListener *keyActListenr{nullptr}; + void ResetTickTimer(void); AddCardModel *model{nullptr}; - + uint64_t startTime{0}; + bool cardCountEvent{false}; }; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardView.h b/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardView.h index 63d51bba5..6f7e9c34f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardView.h @@ -26,7 +26,7 @@ class AddCardPresenter; class AddCardView : public View { public: AddCardView(); - virtual ~AddCardView(); + ~AddCardView() override; static AddCardView *GetInstance() { @@ -34,15 +34,18 @@ public: return &instance; } - virtual void OnStart() override; - virtual void OnSetUpView() override; - virtual void OnTearDownView() override; - virtual void OnStop() override; + void OnStart() override; + void OnSetUpView() override; + void OnTearDownView() override; + void OnStop() override; void RefreshCardList(void); + void ExceedsCardCountEvent(bool isVisible); private: void SetUpListInfo(void); void SetUpListView(void); + void SetUpToast(void); UIList contentList_; + UILabel toastLabel_; AddCardAdapter *addCardAdapter_{nullptr}; }; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardPresenter.cpp index c815867e6..7b01f0f99 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardPresenter.cpp @@ -47,9 +47,15 @@ namespace OHOS { bool AddCardPresenter::OnClick(UIView &view, const ClickEvent &event) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::OnClick"); - model->AddCardSetting(); - view_->RefreshCardList(); - return true; + if (MainModel::GetInstance().GetCardSettingCount() >= CARD_SETTING_COUNT_MAX) { + cardCountEvent = true; + view_->ExceedsCardCountEvent(true); + ResetTickTimer(); + } else { + model->AddCardSetting(); + view_->RefreshCardList(); + } + return true; } void AddCardPresenter::OnScrollStart(int16_t index, UIView *view) @@ -67,12 +73,30 @@ namespace OHOS { 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) { return; - } + } + } + + void AddCardPresenter::OnTickEvent() + { + 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 = osKernelGetTick2ms(); + return; } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardView.cpp b/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardView.cpp index a696032d2..6e87bde5e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardView.cpp @@ -34,6 +34,7 @@ void AddCardView::OnStart() addCardAdapter_->SetItemClickListener(presenter_); SetUpListInfo(); SetUpListView(); + SetUpToast(); } void AddCardView::OnSetUpView() @@ -104,10 +105,31 @@ void AddCardView::SetUpListView(void) container_->Add(&contentList_); } +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); + container_->Add(&toastLabel_); +} + void AddCardView::RefreshCardList(void) { SetUpListInfo(); contentList_.RefreshList(); } +void AddCardView::ExceedsCardCountEvent(bool isVisible) +{ + toastLabel_.SetVisible(isVisible); + toastLabel_.Invalidate(); +} + } -- 2.17.1