package com.zhan_dui.adapters; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.squareup.picasso.Picasso; import com.zhan_dui.animetaste.R; import com.zhan_dui.download.alfred.defaults.MissionListenerForAdapter; import com.zhan_dui.download.alfred.missions.M3U8Mission; import com.zhan_dui.download.alfred.missions.Mission; import com.zhan_dui.model.Animation; import com.zhan_dui.model.DownloadRecord; /** * Created by daimajia on 14-3-25. */ public class DownloadAdapter extends MissionListenerForAdapter{ private Context mContext; private LayoutInflater mLayoutInflater; public DownloadAdapter(Context context) { super(); mContext = context; mLayoutInflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView thumb; TextView title,content,progress; ViewHolder holder; if(convertView == null){ convertView = mLayoutInflater.inflate(R.layout.download_item,null); thumb = (ImageView)convertView.findViewById(R.id.thumbImage); title = (TextView)convertView.findViewById(R.id.title); content = (TextView)convertView.findViewById(R.id.content); progress = (TextView)convertView.findViewById(R.id.progress); holder = new ViewHolder(title,progress,content,thumb); convertView.setTag(holder); }else{ holder = (ViewHolder)convertView.getTag(); title = holder.title; content = holder.content; progress = holder.progress; thumb = holder.thumb; } if(position > getCount() - 1){ return null; } Object mission = getItem(position); Animation animation = null; if(mission instanceof DownloadRecord){ animation = DownloadRecord.getAnimation((DownloadRecord)mission); progress.setVisibility(View.INVISIBLE); }else if(mission instanceof M3U8Mission){ Mission m = (M3U8Mission)mission; Object extra =m.getExtraInformation(m.getUri()); animation = (Animation)extra; if(m.isDone()){ progress.setVisibility(View.INVISIBLE); }else{ progress.setVisibility(View.VISIBLE); progress.setText(m.getReadablePercentage()); } } holder.animation = animation; Picasso.with(mContext).load(animation.HomePic) .placeholder(R.drawable.placeholder_thumb) .error(R.drawable.placeholder_fail).into(thumb); title.setText(animation.Name); content.setText(animation.Brief); return convertView; } public static class ViewHolder{ public Animation animation; public TextView title,progress,content; public ImageView thumb; private ViewHolder(TextView title, TextView progress, TextView content, ImageView thumb) { this.title = title; this.progress = progress; this.content = content; this.thumb = thumb; } } }