package com.athena.asm.viewmodel;
import java.util.List;
import com.athena.asm.aSMApplication;
import com.athena.asm.data.Board;
import com.athena.asm.data.Subject;
import com.athena.asm.fragment.SubjectListFragment;
import com.athena.asm.util.SmthSupport;
public class SubjectListViewModel extends BaseViewModel {
private Board m_currentBoard;
private List<Subject> m_subjectList;
private int m_currentPageNo = 1;
private int m_boardType = SubjectListFragment.BOARD_TYPE_SUBJECT;
private boolean m_isFirstIn = true;
private boolean m_isInRotation = false;
private SmthSupport m_smthSupport;
public static final String SUBJECTLIST_PROPERTY_NAME = "SubjectList";
public SubjectListViewModel() {
m_smthSupport = SmthSupport.getInstance();
}
public Board getCurrentBoard() {
return m_currentBoard;
}
public boolean updateCurrentBoard(Board board, String boardType) {
boolean isNewBoard = true;
if (m_currentBoard != null) {
isNewBoard = !m_currentBoard.getEngName().equals(board.getEngName());
}
if (isNewBoard) {
setCurrentBoard(board);
if (boardType.equals("001")) {
setBoardType(SubjectListFragment.BOARD_TYPE_SUBJECT);
} else {
setBoardType(SubjectListFragment.BOARD_TYPE_NORMAL);
}
}
return isNewBoard;
}
public void setCurrentBoard(Board currentBoard) {
m_currentBoard = currentBoard;
}
public List<Subject> getSubjectList() {
return m_subjectList;
}
public void setSubjectList(List<Subject> subjectList) {
m_subjectList = subjectList;
}
public boolean isFirstIn() {
return m_isFirstIn;
}
public void setIsFirstIn(boolean isFirstIn) {
m_isFirstIn = isFirstIn;
}
public int getCurrentPageNumber() {
return m_currentPageNo;
}
public void setCurrentPageNumber(int pageNumber) {
if (pageNumber < 1 || pageNumber > m_currentBoard.getTotalPageNo()) {
return;
}
m_currentPageNo = pageNumber;
}
public int getBoardType() {
return m_boardType;
}
public void gotoFirstPage() {
m_currentPageNo = 1;
}
public void gotoLastPage() {
m_currentPageNo = m_currentBoard.getTotalPageNo();
}
public void gotoNextPage() {
m_currentPageNo++;
if (m_currentPageNo > m_currentBoard.getTotalPageNo()) {
m_currentPageNo = m_currentBoard.getTotalPageNo();
}
}
public void gotoPrevPage() {
m_currentPageNo--;
if (m_currentPageNo < 1) {
m_currentPageNo = 1;
}
}
public String getTitleText() {
return "[" + m_currentPageNo + "/" + m_currentBoard.getTotalPageNo() + "]" + m_currentBoard.getChsName();
}
public void updateBoardCurrentPage() {
m_currentBoard.setCurrentPageNo(m_currentPageNo);
}
public void setBoardType(int boardType) {
m_boardType = boardType;
}
public void toggleBoardType() {
if (m_boardType == SubjectListFragment.BOARD_TYPE_SUBJECT) {
m_boardType = SubjectListFragment.BOARD_TYPE_NORMAL;
} else {
m_boardType = SubjectListFragment.BOARD_TYPE_SUBJECT;
}
}
public void notifySubjectListChanged() {
notifyViewModelChange(this, SUBJECTLIST_PROPERTY_NAME);
}
public boolean isInRotation() {
return m_isInRotation;
}
public void setIsInRotation(boolean isInRotation) {
m_isInRotation = isInRotation;
}
public List<Subject> getSubjectListFromSmth(boolean isReloadPageNo) {
String boardID = m_currentBoard.getBoardID();
if (boardID == null || boardID.length() == 0 || boardID.equals("fake")) {
m_currentBoard.setBoardID(m_smthSupport.getBoardIDFromName(m_currentBoard.getEngName()));
// Log.e("getSubjectListFromSmth",
// String.format("update boardid from %s to %s", boardID, m_currentBoard.getBoardID()));
}
return m_smthSupport.getSubjectListFromMobile(m_currentBoard, m_boardType, isReloadPageNo, aSMApplication
.getCurrentApplication().getBlackList());
}
}