package com.athena.asm.Adapter;
import java.util.List;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;
import com.athena.asm.R;
import com.athena.asm.aSMApplication;
import com.athena.asm.data.Board;
public class FavoriteListAdapter extends BaseExpandableListAdapter {
private LayoutInflater m_inflater;
private List<String> m_directories;
private List<List<Board>> m_boards;
public List<List<Board>> getFavoriteBoards() {
return m_boards;
}
static class ChildViewHolder{
TextView categoryNameTextView;
TextView moderatorIDTextView;
TextView boardNameTextView;
}
static class GroupViewHolder{
TextView boardNameTextView;
}
public FavoriteListAdapter(LayoutInflater inflater,
List<String> directoryList, List<List<Board>> boardList) {
this.m_inflater = inflater;
this.m_directories = directoryList;
this.m_boards = boardList;
}
public Object getChild(int groupPosition, int childPosition) {
return m_boards.get(groupPosition).get(childPosition);
}
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
View convertView, ViewGroup parent) {
Board board = m_boards.get(groupPosition).get(childPosition);
ChildViewHolder holder;
if (convertView == null) {
convertView = m_inflater.inflate(R.layout.favorite_list_item, null);
holder = new ChildViewHolder();
holder.categoryNameTextView = (TextView) convertView.findViewById(R.id.CategoryName);
holder.moderatorIDTextView = (TextView) convertView.findViewById(R.id.ModeratorID);
holder.boardNameTextView = (TextView) convertView.findViewById(R.id.BoardName);
convertView.setTag(R.id.tag_first, holder);
} else {
holder = (ChildViewHolder) convertView.getTag(R.id.tag_first);
}
holder.categoryNameTextView.setText(board.getCategoryName());
holder.moderatorIDTextView.setText(board.getModerator());
holder.boardNameTextView.setText("[" + board.getEngName() + "]"
+ board.getChsName());
holder.boardNameTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, aSMApplication.getCurrentApplication().getGuidanceSecondFontSize());
convertView.setTag(R.id.tag_second, board);
if (aSMApplication.getCurrentApplication().isNightTheme()) {
holder.categoryNameTextView.setTextColor(convertView.getResources().getColor(R.color.status_text_night));
holder.moderatorIDTextView.setTextColor(convertView.getResources().getColor(R.color.blue_text_night));
holder.boardNameTextView.setTextColor(convertView.getResources().getColor(R.color.status_text_night));
}
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return m_boards.get(groupPosition).size();
}
@Override
public Object getGroup(int groupPosition) {
return m_directories.get(groupPosition);
}
@Override
public int getGroupCount() {
return m_directories.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
GroupViewHolder holder;
if(convertView == null){
convertView = m_inflater.inflate(R.layout.favorite_list_section_header, null);
holder = new GroupViewHolder();
holder.boardNameTextView = (TextView) convertView.findViewById(R.id.BoardName);
convertView.setTag(holder);
} else {
holder = (GroupViewHolder) convertView.getTag();
}
holder.boardNameTextView.setText(m_directories.get(groupPosition));
holder.boardNameTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP,
aSMApplication.getCurrentApplication().getGuidanceFontSize());
if (aSMApplication.getCurrentApplication().isNightTheme()) {
holder.boardNameTextView.setTextColor(convertView.getResources().getColor(R.color.status_text_night));
}
return convertView;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}