#ifndef TJDUIAPP_ALBUM_PRESENTER #define TJDUIAPP_ALBUM_PRESENTER #include "Presenter.h" #include "TjdUiAppAlbumAdapter.h" #include "TjdUiAppAlbumModel.h" #include "TjdUiScreenDrag.h" #include "root_view.h" #include "ui_list.h" #include "ui_view.h" namespace TJD { class TjdUiAppAlbumView; class TjdUiAppAlbumPresenter : public OHOS::Presenter, public OHOS::UIView::OnClickListener, public TjdUiScreenDragListener, public OHOS::RootView::OnKeyActListener, public OHOS::ListScrollListener { public: TjdUiAppAlbumPresenter(); ~TjdUiAppAlbumPresenter(); static TjdUiAppAlbumPresenter *GetInstance(void); void OnStart() override; void OnResume() override; void OnPause() override; void OnStop() override; bool OnClick(OHOS::UIView &view, const OHOS::ClickEvent &event) override; bool OnKeyAct(OHOS::UIView &view, const OHOS::KeyEvent &event) override; void OnItemSelected(int16_t index, OHOS::UIView *view) override; void ScreenDragEventCallback(OHOS::UIView &view, const OHOS::DragEvent &event) override { ExitCurrentView(); } void ExitAlbumView(void); void ExitCurrentView(void); uint8_t GetSelectedListId(void) { return selectedListId; } void SetSelectedListId(uint8_t id) { selectedListId = id; } OHOS::ImageInfo *GetAlbumIcon(AlbumIconType type) { return AlbumIconArray[type]; } TjdUiAppAlbumModel *GetAlbumModel(void) { return model; } void TaskProcess(AlbumItem *item); AlbumView GetCurrentView(void) { return currentView; } AlbumView currentView{ALBUM_LIST_VIEW}; bool isSetSucc{false}; bool firstEnter_{false}; private: void LoadIconRes(void); TjdUiAppAlbumModel *model{nullptr}; TjdAlbumItemView *itemViewSele{nullptr}; TjdAlbumItemView *preItemViewSele{nullptr}; uint8_t selectedListId = 0; OHOS::ImageInfo *AlbumIconArray[ALBUM_ICON_MAX]{nullptr}; bool isExit_{false}; int16_t dragStartX_{0}; int16_t dragCurrentX_{0}; int32_t dragDistance_{0}; }; } // namespace TJD #endif