package com.joyplus.tvhelper.adapter;
import java.net.URLDecoder;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.BaseExpandableListAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.joyplus.tvhelper.R;
import com.joyplus.tvhelper.entity.BTEpisode;
import com.joyplus.tvhelper.entity.MoviePlayHistoryInfo;
import com.joyplus.tvhelper.entity.PushedApkDownLoadInfo;
import com.joyplus.tvhelper.utils.Constant;
import com.joyplus.tvhelper.utils.Utils;
public class MoviePlayHistoryAdapter extends BaseExpandableListAdapter {
private Context mContext;
private List<MoviePlayHistoryInfo> data;
public MoviePlayHistoryAdapter(Context c, List<MoviePlayHistoryInfo> data){
this.data = data;
this.mContext = c;
}
//
// @Override
// public int getCount() {
// // TODO Auto-generated method stub
// return data.size();
//// return FayeService.infolist.size();
// }
//
// @Override
// public Object getItem(int position) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public long getItemId(int position) {
// // TODO Auto-generated method stub
// return 0;
// }
//
// @Override
// public View getView(int position, View convertView, ViewGroup parent) {
// // TODO Auto-generated method stub
// ViewHolder holder = null;
// MoviePlayHistoryInfo info = data.get(position);
// if(convertView == null){
// convertView = LayoutInflater.from(mContext).inflate(R.layout.item_downloaded_movie, null);
// holder = new ViewHolder();
// holder.name = (TextView) convertView.findViewById(R.id.movie_name);
// holder.size = (TextView) convertView.findViewById(R.id.movie_size);
// holder.statue_icon = (ImageView) convertView.findViewById(R.id.movie_statue_icon);
// convertView.setTag(holder);
// }else{
// holder = (ViewHolder) convertView.getTag();
// }
//
//
// if(info.getName()==null||"".equals(info.getName())){
// if(info.getPlay_type() == MoviePlayHistoryInfo.PLAY_TYPE_LOCAL){
// holder.name.setText(info.getLocal_url());
// }else{
// String str = info.getPush_url();
// try{
// str = URLDecoder.decode(str, "utf-8");
// }catch (Exception e) {
// // TODO: handle exception
// }
// holder.name.setText(str);
// }
// }else{
// holder.name.setText(info.getName());
// }
//
//// if(info.getPlay_type() == MoviePlayHistoryInfo.PLAY_TYPE_LOCAL){
//// holder.name.setText(Utils.getDisPlayFileNameforUrl(info.getLocal_url()));
//// }else{
//// holder.name.setText(Utils.getDisPlayFileNameforUrl(info.getPush_url()));
//// }
// if(info.getPlay_type()==MoviePlayHistoryInfo.PLAY_TYPE_BAIDU){
// holder.size.setText("");
// }else{
// if(info.getDuration()<10){
// holder.size.setText("已观看:"+Utils.formatDuration(info.getPlayback_time()*1000)+
// " / "+ "--:--:--");
// }else if(info.getDuration()<=info.getPlayback_time()+10&&info.getDuration()>10){
// holder.size.setText("已看完");
// }else{
// holder.size.setText("已观看:"+Utils.formatDuration(info.getPlayback_time()*1000)+
// " / "+ Utils.formatDuration(info.getDuration()*1000));
// }
// }
//
// switch (info.getEdite_state()) {
// case PushedApkDownLoadInfo.EDITE_STATUE_NOMAL:
// holder.statue_icon.setImageDrawable(null);
// break;
// case PushedApkDownLoadInfo.EDITE_STATUE_EDIT:
// holder.statue_icon.setImageResource(R.drawable.item_statue_selete);
// break;
// case PushedApkDownLoadInfo.EDITE_STATUE_SELETED:
// holder.statue_icon.setImageResource(R.drawable.item_statue_seleted);
// break;
// }
// return convertView;
// }
class ViewHolder{
TextView name;
TextView size;
ImageView statue_icon;
ImageView type_icon;
ImageView divider_line;
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return data.size();
}
@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return data.get(groupPosition).getBtEpisodes().size();
}
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return null;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder = null;
if(convertView == null){
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_downloaded_movie, null);
holder = new ViewHolder();
holder.name = (TextView) convertView.findViewById(R.id.movie_name);
holder.size = (TextView) convertView.findViewById(R.id.movie_size);
holder.statue_icon = (ImageView) convertView.findViewById(R.id.movie_statue_icon);
holder.type_icon = (ImageView) convertView.findViewById(R.id.movie_type);
holder.divider_line = (ImageView) convertView.findViewById(R.id.divider_line);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
if(groupPosition >= data.size()) return convertView;
MoviePlayHistoryInfo info = data.get(groupPosition);
if(info.getName()==null||"".equals(info.getName())){
if(info.getPlay_type() == MoviePlayHistoryInfo.PLAY_TYPE_LOCAL){
holder.name.setText(info.getLocal_url());
}else{
String str = info.getPush_url();
try{
str = URLDecoder.decode(str, "utf-8");
}catch (Exception e) {
// TODO: handle exception
}
holder.name.setText(str);
}
}else{
holder.name.setText(info.getName());
}
// if(info.getPlay_type() == MoviePlayHistoryInfo.PLAY_TYPE_LOCAL){
// holder.name.setText(Utils.getDisPlayFileNameforUrl(info.getLocal_url()));
// }else{
// holder.name.setText(Utils.getDisPlayFileNameforUrl(info.getPush_url()));
// }
if(info.getPlay_type() == MoviePlayHistoryInfo.PLAY_TYPE_BT_EPISODES){
if(isExpanded){
holder.type_icon.setImageResource(R.drawable.icon_tt_file_open);
}else{
holder.type_icon.setImageResource(R.drawable.icon_tt_file);
}
}else{
holder.type_icon.setImageResource(R.drawable.icon_tt_movie);
}
switch (info.getPlay_type()) {
case MoviePlayHistoryInfo.PLAY_TYPE_BAIDU:
holder.size.setText("");
break;
case MoviePlayHistoryInfo.PLAY_TYPE_ONLINE:
case MoviePlayHistoryInfo.PLAY_TYPE_LOCAL:
if(info.getDuration()<10){
holder.size.setText("已观看:"+Utils.formatDuration(info.getPlayback_time()*1000)+
" / "+ "--:--:--");
}else if(info.getDuration()<=info.getPlayback_time()+Constant.END_TIME&&info.getDuration()>10){
holder.size.setText("已看完");
}else{
holder.size.setText("已观看:"+Utils.formatDuration(info.getPlayback_time()*1000)+
" / "+ Utils.formatDuration(info.getDuration()*1000));
}
break;
case MoviePlayHistoryInfo.PLAY_TYPE_BT_EPISODES:
holder.size.setText("");
break;
}
switch (info.getEdite_state()) {
case PushedApkDownLoadInfo.EDITE_STATUE_NOMAL:
holder.statue_icon.setImageDrawable(null);
break;
case PushedApkDownLoadInfo.EDITE_STATUE_EDIT:
holder.statue_icon.setImageResource(R.drawable.item_statue_selete);
break;
case PushedApkDownLoadInfo.EDITE_STATUE_SELETED:
holder.statue_icon.setImageResource(R.drawable.item_statue_seleted);
break;
}
// if(groupPosition<data.size()-1){
// holder.divider_line.setVisibility(View.INVISIBLE);
// }else{
// holder.divider_line.setVisibility(View.VISIBLE);
// }
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder = null;
BTEpisode info = data.get(groupPosition).getBtEpisodes().get(childPosition);
if(convertView == null){
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_bt_episode, null);
holder = new ViewHolder();
holder.name = (TextView) convertView.findViewById(R.id.movie_name);
holder.size = (TextView) convertView.findViewById(R.id.movie_size);
holder.statue_icon = (ImageView) convertView.findViewById(R.id.movie_statue_icon);
holder.type_icon = (ImageView) convertView.findViewById(R.id.movie_type);
holder.divider_line = (ImageView) convertView.findViewById(R.id.divider_line);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.name.setText(info.getName());
// if(info.getPlay_type() == MoviePlayHistoryInfo.PLAY_TYPE_LOCAL){
// holder.name.setText(Utils.getDisPlayFileNameforUrl(info.getLocal_url()));
// }else{
// holder.name.setText(Utils.getDisPlayFileNameforUrl(info.getPush_url()));
// }
holder.type_icon.setImageResource(R.drawable.icon_tt_movie);
if(info.getDuration()<10){
holder.size.setText("已观看:"+Utils.formatDuration(info.getPlayback_time()*1000)+
" / "+ "--:--:--");
}else if(info.getDuration()<=info.getPlayback_time()+Constant.END_TIME&&info.getDuration()>10){
holder.size.setText("已看完");
}else{
holder.size.setText("已观看:"+Utils.formatDuration(info.getPlayback_time()*1000)+
" / "+ Utils.formatDuration(info.getDuration()*1000));
}
// if(childPosition<data.get(groupPosition).getBtEpisodes().size()-1){
// holder.divider_line.setVisibility(View.INVISIBLE);
// }else{
// holder.divider_line.setVisibility(View.VISIBLE);
// }
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
}