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)
{
const char *cardImg;\r
} AddCardInfo;\r
\r
-class AddCardItem :public UIViewGroup {\r
+class AddCardItem : public UIViewGroup {\r
public:\r
AddCardItem();\r
- virtual ~AddCardItem();\r
+ ~AddCardItem() override;\r
void SetItemInfo(const AddCardInfo &cardInfo);\r
void SetOnClickListener(OnClickListener *onClickListener);\r
void UpdateItemInfo(bool addFlag);\r
AddCardModel &operator=(const AddCardModel &);
virtual ~AddCardModel();
uint8_t selectedCardIndex{0};
-
};
}
#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>,
+class AddCardPresenter : public Presenter<AddCardView>, 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};
};
}
class AddCardView : public View<AddCardPresenter> {
public:
AddCardView();
- virtual ~AddCardView();
+ ~AddCardView() override;
static AddCardView *GetInstance()
{
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};
};
}
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)
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;
}
}
addCardAdapter_->SetItemClickListener(presenter_);
SetUpListInfo();
SetUpListView();
+ SetUpToast();
}
void AddCardView::OnSetUpView()
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();
+}
+
}