package com.aiyou.bbs.utils; import java.util.Arrays; import java.util.List; import com.aiyou.AiYouApplication; import com.aiyou.R; import com.aiyou.bbs.bean.Board; import com.aiyou.bbs.bean.Mailbox; import com.aiyou.bbs.bean.Mailbox.MailboxType; import com.aiyou.bbs.bean.Refer; import com.aiyou.bbs.bean.Refer.ReferType; import com.aiyou.bbs.bean.Search; import com.aiyou.bbs.bean.VoteList; import com.aiyou.bbs.bean.VoteList.VoteType; import com.aiyou.bbs.bean.Widget; /** * BBSListActivity的辅助类, * * @author sollian */ public class BBSListHelper { public enum BeanType { WIDGET, BOARD, REFER, SEARCH, VOTELIST, MAILBOX, COLLECT; } /** * 版面名称 */ public String title; /** * 版面标志 */ public BeanType beanType = BeanType.WIDGET; /** * 版面名称 */ public String boardName; /** * 提醒类型 */ public ReferType referType; /** * 搜索文本 */ public String searchTitle; /** * 是否是标题。true:是;false:是作者 */ public boolean isSearchTitle = true; /** * 投票类型 */ public VoteType voteType; /** * 信箱box */ public MailboxType mailboxType; /** * 含Article数组 */ private Widget mWidget; private Board mBoard; private Refer mRefer; private Search mSearch; /** * 含Vote数组 */ private VoteList mVoteList; /** * 含mail数组 */ private Mailbox mMailbox; private static BBSListHelper mInstance; private BBSListHelper() { title = AiYouApplication.getInstance().getString(R.string.topten); } public static BBSListHelper getInstance() { if (mInstance == null) { mInstance = new BBSListHelper(); } return mInstance; } public Widget getWidget() { return mWidget; } public Board getBoard() { return mBoard; } public Refer getRefer() { return mRefer; } public Search getSearch() { return mSearch; } public VoteList getVoteList() { return mVoteList; } public Mailbox getMailbox() { return mMailbox; } public void updateWidget(Widget widget) { this.mWidget = widget; } public void updateBoard(Board board) { this.mBoard = board; BBSManager.getInstance(AiYouApplication.getInstance()).setAllowAttachment(board.name, board.allow_attachment); } public void updateRefer(Refer refer) { this.mRefer = refer; } public void updateSearch(Search search) { this.mSearch = search; } public void updateVoteList(VoteList voteList) { this.mVoteList = voteList; } public void updateMailbox(Mailbox mailbox) { this.mMailbox = mailbox; } /** * 获取列表 * * @return */ @SuppressWarnings("rawtypes") public List getList() { List list = null; switch (beanType) { case BOARD: if (mBoard != null && mBoard.articles != null) { list = Arrays.asList(mBoard.articles); } break; case COLLECT: break; case MAILBOX: if (mMailbox != null && mMailbox.mails != null) { list = Arrays.asList(mMailbox.mails); } break; case REFER: if (mRefer != null && mRefer.refers != null) { list = Arrays.asList(mRefer.refers); } break; case SEARCH: if (mSearch != null && mSearch.articles != null) { list = Arrays.asList(mSearch.articles); } break; case VOTELIST: if (mVoteList != null && mVoteList.votes != null) { list = Arrays.asList(mVoteList.votes); } break; case WIDGET: if (mWidget != null && mWidget.articles != null) { list = Arrays.asList(mWidget.articles); } break; default: break; } return list; } /** * 获取标题 * * @return */ public String getTitle() { switch (beanType) { case BOARD: if (mBoard != null) { return mBoard.description; } break; case COLLECT: break; case MAILBOX: if (mMailbox != null) { return mMailbox.description; } break; case REFER: if (mRefer != null) { return mRefer.description; } break; case SEARCH: break; case VOTELIST: break; case WIDGET: if (mWidget != null) { return mWidget.title; } break; default: break; } return null; } /** * 获取总页数 * * @return */ public int getPageTotal() { switch (beanType) { case BOARD: if (mBoard != null && mBoard.pagination != null) { return mBoard.pagination.page_all_count; } break; case COLLECT: break; case MAILBOX: if (mMailbox != null && mMailbox.pagination != null) { return mMailbox.pagination.page_all_count; } break; case REFER: if (mRefer != null && mRefer.pagination != null) { return mRefer.pagination.page_all_count; } break; case SEARCH: if (mSearch != null && mSearch.pagination != null) { return mSearch.pagination.page_all_count; } break; case VOTELIST: if (mVoteList != null && mVoteList.pagination != null) { return mVoteList.pagination.page_all_count; } break; case WIDGET: break; default: break; } return 1; } /** * 获取当前页数 * * @return */ public int getPageCurrent() { switch (beanType) { case BOARD: if (mBoard != null && mBoard.pagination != null) { return mBoard.pagination.page_current_count; } break; case COLLECT: break; case MAILBOX: if (mMailbox != null && mMailbox.pagination != null) { return mMailbox.pagination.page_current_count; } break; case REFER: if (mRefer != null && mRefer.pagination != null) { return mRefer.pagination.page_current_count; } break; case SEARCH: if (mSearch != null && mSearch.pagination != null) { return mSearch.pagination.page_current_count; } break; case VOTELIST: if (mVoteList != null && mVoteList.pagination != null) { return mVoteList.pagination.page_current_count; } break; case WIDGET: break; default: break; } return 1; } }