package com.joyplus.tvhelper.adapter; import java.util.List; import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import com.joyplus.network.filedownload.model.DownloadTask; import com.joyplus.tvhelper.R; import com.joyplus.tvhelper.entity.PushedMovieDownLoadInfo; import com.joyplus.tvhelper.utils.PackageUtils; public class PushedMovieDownLoadAdapter extends BaseAdapter { private Context mContext; private List<PushedMovieDownLoadInfo> data; private java.text.DecimalFormat df = new java.text.DecimalFormat("#.##"); public PushedMovieDownLoadAdapter(Context c, List<PushedMovieDownLoadInfo> 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; PushedMovieDownLoadInfo info = data.get(position); if(convertView == null){ convertView = LayoutInflater.from(mContext).inflate(R.layout.item_download_movie, null); holder = new ViewHolder(); holder.icon = (ImageView) convertView.findViewById(R.id.app_icon); holder.name = (TextView) convertView.findViewById(R.id.app_name); holder.size = (TextView) convertView.findViewById(R.id.app_size); holder.progress = (ProgressBar) convertView.findViewById(R.id.progressbar); holder.progressText = (TextView) convertView.findViewById(R.id.progress_value); holder.statue = (TextView) convertView.findViewById(R.id.app_statue); holder.statue_icon = (ImageView) convertView.findViewById(R.id.app_statue_icon); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } holder.name.setText(info.getName()); int progress = 0; if(info.getTast().getSize()>0){ holder.progress.setMax((int)info.getTast().getSize()); progress = (int) ((info.getTast().getCurLength()*100d) / info.getTast().getSize()); }else{ holder.progress.setMax(100); } holder.statue.setTextColor(Color.GRAY); switch (info.getDownload_state()) { case PushedMovieDownLoadInfo.STATUE_WAITING_DOWNLOAD://等待下载 holder.statue.setText("等待下载"); // holder.progress.setProgress(progress); holder.progress.setProgress((int)info.getTast().getCurLength()); holder.progress.setSecondaryProgress(0); holder.size.setText(PackageUtils.fomartSize(info.getTast().getSize())); holder.progressText.setText(progress+"%"); break; case PushedMovieDownLoadInfo.STATUE_DOWNLOADING://正在下载 holder.statue.setText(getSpeed(info.getTast())); holder.progress.setProgress((int)info.getTast().getCurLength()); holder.size.setText(PackageUtils.fomartSize(info.getTast().getSize())); holder.progress.setSecondaryProgress(0); holder.progressText.setText(progress+"%"); break; case PushedMovieDownLoadInfo.STATUE_DOWNLOAD_PAUSE://暂停下载 holder.statue.setTextColor(Color.RED); holder.statue.setText("已暂停下载"); holder.progress.setProgress(0); // holder.progress.setSecondaryProgress(progress); holder.progress.setSecondaryProgress((int)info.getTast().getCurLength()); holder.size.setText(PackageUtils.fomartSize(info.getTast().getSize())); holder.progressText.setText(progress+"%"); break; case PushedMovieDownLoadInfo.STATUE_DOWNLOAD_PAUSEING: holder.statue.setText("正在暂停"); holder.statue.setTextColor(Color.RED); holder.progress.setProgress(0); // holder.progress.setSecondaryProgress(progress); holder.progress.setSecondaryProgress((int)info.getTast().getCurLength()); holder.size.setText(PackageUtils.fomartSize(info.getTast().getSize())); holder.progressText.setText(progress+"%"); break; // case PushedApkDownLoadInfo.STATUE_DOWNLOAD_COMPLETE://下载完成 // holder.statue.setText("正在安装"); //// holder.progress.setProgress(info.getProgress()); //// holder.progress.setSecondaryProgress(info.getProgress()); //// holder.progress.setSecondaryProgress(0); // holder.progressLayout.setTag(info.get_id()); //// holder.progressText.setText(info.getProgress()+"%"); // break; // case PushedApkDownLoadInfo.STATUE_INSTALL_FAILE://安装失败 // holder.statue.setText("安装失败"); // holder.progress.setProgress(progress); // holder.progress.setVisibility(View.INVISIBLE); // holder.progressLayout.setTag(info.get_id()); // break; } switch (info.getEdite_state()) { case PushedMovieDownLoadInfo.EDITE_STATUE_NOMAL: if(info.getDownload_state()==PushedMovieDownLoadInfo.STATUE_DOWNLOADING){ holder.statue_icon.setImageResource(R.drawable.icon_continue); }else{ holder.statue_icon.setImageResource(R.drawable.icon_puse); } break; case PushedMovieDownLoadInfo.EDITE_STATUE_EDIT: holder.statue_icon.setImageResource(R.drawable.item_statue_selete); break; case PushedMovieDownLoadInfo.EDITE_STATUE_SELETED: holder.statue_icon.setImageResource(R.drawable.item_statue_seleted); break; } return convertView; } /** * 实时任务信息 * @return */ private String getSpeed(DownloadTask task) { StringBuffer buffer = new StringBuffer(); if(task.getSpeed()>=1024){ buffer.append(df.format(task.getSpeed()/1024d)).append("M/s"); }else if(task.getSpeed() <= 0){ buffer.append(0).append("k/s"); }else{ buffer.append(task.getSpeed()).append("k/s"); } return buffer.toString(); } class ViewHolder{ ImageView icon; TextView name; TextView size; ProgressBar progress; TextView progressText; TextView statue; ImageView statue_icon; } }