#ifndef TJDUI_APP_BUSINESSCARD_VIEW_H #define TJDUI_APP_BUSINESSCARD_VIEW_H #include "TjdUiAppBusinesscardAdapter.h" #include "TjdUiAppBusinesscardPresenter.h" #include "View.h" #include "components/ui_button.h" #include "components/ui_image_view.h" #include "components/ui_label.h" #include "components/ui_list.h" #include "components/ui_qrcode.h" #include "components/ui_scroll_view.h" #include "components/ui_view_group.h" #include "sql_bt.h" #include "sys_typedef.h" #include "ui_label_ext.h" #include #include "components/tjd_ui_transform_list_group.h" #include "components/ui_scroll_view_nested.h" extern bool sql_bt_get_qrcode_show_flag(void); extern bool sql_bt_get_qrcode_exist(qrcode_type_t type); extern int8_t sql_bt_get_qrcode_info(qrcode_type_t type, char *info, uint16_t *len); namespace TJD { enum BusinessCardIndex { BUSINESSCARD_TIPVIEW, BUSINESSCARD_LISTVIEW, BUSINESSCARD_CARDVIEW, BUSINESSCARD_MAXTHVIEW }; class BusinesscardUIScrollView : public OHOS::UIScrollViewNested { public: BusinesscardUIScrollView() {} ~BusinesscardUIScrollView() {} bool OnDragStartEvent(const OHOS::DragEvent &event) override; bool OnDragEvent(const OHOS::DragEvent &event) override; bool OnDragEndEvent(const OHOS::DragEvent &event) override; private: bool isOnStart_{false}; }; // typedef bool (TjdUiAppBusinessCardView::*BusinessCardChangeView)(BusinessCardView hideView); // class TjdUiAppBusinesscardPresenter; // class TjdUiAppBusinessCardView : public OHOS::View, public OHOS::UIViewGroup // { // public: // TjdUiAppBusinessCardView(); // ~TjdUiAppBusinessCardView(); // static TjdUiAppBusinessCardView *GetInstance(void); // void InitBusinesscardList(); // void OnStart() override; // void OnStop() override; // void ChooseBusinesscardItem(BusinessCardItemIndex index); // void InitBusinesscardItemView(BusinessCardItemIndex index); // void ChangedView(BusinessCardView view, BusinessCardView hideView); // OHOS::UILabel &GetLblTipCardView() { return *lblTip_cardView; } // OHOS::UILabel &GetLblTitleCardView() { return *lblTitle_cardView; } // OHOS::UIImageView &GetImgReturnCardView() { return *imgReturn_cardView; } // OHOS::UIQrcode &GetQrcodeCardView() { return *qrcode_; } // OHOS::UIViewGroup &GetBusinesscardCardView() { return *cardView_; } // OHOS::List &GetBusinesscardItemList() { return *businessCardItemList_; } // OHOS::UIView::OnClickListener &GetCardViewClickListener() { return *onClickListener_; } // private: // // void InitSettingItemView(BusinessCardItemIndex index); // OHOS::UIViewGroup *containerAll_{nullptr}; // OHOS::UIViewGroup *groupList_[BusinessCardView::MAXTH_VIEW]{nullptr}; // // UIView::OnClickListener *onClickListener_{nullptr}; // // UIView::OnDragListener *OnDragListener_{nullptr}; // OHOS::UIScrollView *listView_{nullptr}; // OHOS::UIViewGroup *tipView_{nullptr}; // OHOS::UIViewGroup *cardView_{nullptr}; // // OHOS::UILabel *lblTitle_listView{nullptr}; // OHOS::UILabel *lblTitle_cardView{nullptr}; // OHOS::UILabel *lblTip_{nullptr}; // OHOS::UILabel *lblTip_cardView{nullptr}; // OHOS::UIImageView *imgReturn_{nullptr}; // OHOS::UIImageView *imgReturn_cardView{nullptr}; // OHOS::ImageInfo* imgInfo{nullptr}; // OHOS::UIQrcode *qrcode_{nullptr}; // TjdUiAppBusinessCardAdapter *businessCardListAdapter_{nullptr}; // OHOS::UIList *businessCardList_{nullptr}; // // SettingItemViewBase *itemView_[BUSINESSCARD_MAX_INDEX]{nullptr}; // BusinessCardItemIndex currentBusinessCardIItem_{BUSINESSCARD_MAX_INDEX}; // OHOS::List *businessCardItemList_{nullptr}; // OHOS::ImageInfo *imgItemInfo[BUSINESSCARD_MAX_INDEX]; // OHOS::UIViewGroup *InitTipView(); // OHOS::UIScrollView *InitListView(); // OHOS::UIViewGroup *InitCardView(); // bool ShowTipView(BusinessCardView hideView); // bool ShowListView(BusinessCardView hideView); // bool ShowCardView(BusinessCardView hideView); // // OHOS::List *settingItemList_{nullptr}; // BusinessCardChangeView viewMapper_[MAXTH_VIEW] = { // &TjdUiAppBusinessCardView::ShowTipView, // &TjdUiAppBusinessCardView::ShowListView, // &TjdUiAppBusinessCardView::ShowCardView, // }; // }; class TjdUiAppBusinessCardViewBase : public OHOS::UIScrollView { public: TjdUiAppBusinessCardViewBase() { SetHorizontalScrollState(false); } virtual ~TjdUiAppBusinessCardViewBase() {} virtual void ShowView() { SetVisible(true); }; virtual void HideView() { SetVisible(false); }; }; class BusinessCardTipView : public TjdUiAppBusinessCardViewBase { public: BusinessCardTipView(); ~BusinessCardTipView(); static BusinessCardTipView *GetInstance(void); void ShowView() override; void HideView() override; OHOS::UIImageView &GetReturnBtn() { return return_; } private: OHOS::UILabelExt title_; OHOS::UILabelExt tip_; // OHOS::UIButton return_; OHOS::UIImageView return_; }; class BusinessCardListView : public TjdUiAppBusinessCardViewBase { public: BusinessCardListView(); ~BusinessCardListView(); static BusinessCardListView *GetInstance(void); void ShowView() override; void HideView() override; void ChooseBusinesscardItem(BusinessCardItemIndex index); void InitBusinesscardItemView(BusinessCardItemIndex index); private: OHOS::UILabelExt listTitle_; TjdUITransformListGroup *businessCardListView{nullptr}; TjdUITransformListGroupAdapter> *businessCardAdapterPtr_{nullptr}; // TjdUiAppBusinessCardAdapter *businessCardListAdapter_{nullptr}; // OHOS::UIList businessCardList_; }; class BusinessCardCardView : public TjdUiAppBusinessCardViewBase { public: BusinessCardCardView(); ~BusinessCardCardView(); static BusinessCardCardView *GetInstance(void); void ShowView() override; void HideView() override; OHOS::UIQrcode &GetQrcode() { return qrcode_; } OHOS::UILabel *GetTitle() { return &descButtom_; } private: OHOS::UIImageView bg_; OHOS::UILabelExt desc_; OHOS::UILabel descButtom_; OHOS::UIQrcode qrcode_; }; class TjdUiAppBusinesscardPresenter; class TjdUiAppBusinessCardView : public OHOS::View { public: TjdUiAppBusinessCardView(); ~TjdUiAppBusinessCardView(); static TjdUiAppBusinessCardView *GetInstance(void); static BusinessCardIndex currentViewIndex_; void OnStart() override; void OnStop() override; void ShowView(BusinessCardIndex showIndex); void InitBusinesscardList(); std::list* GetBusinesscardItemList(void) { return businessCardItemList_; } private: TjdUiAppBusinessCardViewBase *viewManager_[BusinessCardIndex::BUSINESSCARD_MAXTHVIEW]{nullptr}; BusinesscardUIScrollView *mainView_{nullptr}; void InitTargetView(BusinessCardIndex index); std::list *businessCardItemList_{nullptr}; OHOS::ImageInfo *imgItemInfo[BUSINESSCARD_MAX_INDEX]; }; } // namespace TJD #endif