package com.joyplus.tvhelper.adapter; 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.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import com.androidquery.AQuery; import com.joyplus.tvhelper.R; import com.joyplus.tvhelper.entity.PushedApkDownLoadInfo; import com.joyplus.tvhelper.faye.FayeService; import com.joyplus.tvhelper.utils.PackageUtils; public class PushedApkAdapter extends BaseAdapter { private Context mContext; private List<PushedApkDownLoadInfo> data; private AQuery aq; public PushedApkAdapter(Context c, List<PushedApkDownLoadInfo> data){ this.data = data; this.mContext = c; aq = new AQuery(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; PushedApkDownLoadInfo info = data.get(position); if(convertView == null){ convertView = LayoutInflater.from(mContext).inflate(R.layout.item_apk_list, 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.progressLayout = (LinearLayout) convertView.findViewById(R.id.progressLayout); 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(); } if(info.getIcon()!=null){ holder.icon.setImageDrawable(info.getIcon()); }else if(info.getIcon_url()!=null&&info.getIcon_url().length()>0){ aq.id(holder.icon).image(info.getIcon_url(),true,false,0,R.drawable.ic_launcher); }else{ holder.icon.setImageResource(R.drawable.defult_app_icon); } holder.progress.setVisibility(View.VISIBLE); holder.progressText.setVisibility(View.VISIBLE); holder.name.setText(info.getName()); holder.size.setText(PackageUtils.fomartSize(info.getTast().getSize())); int progress = 0; if(info.getTast().getSize()>0){ if(FayeService.isSystemApp){ progress = (int) ((info.getTast().getCurLength()*80d) / info.getTast().getSize()); }else{ progress = (int) ((info.getTast().getCurLength()*100d) / info.getTast().getSize()); } } switch (info.getDownload_state()) { case PushedApkDownLoadInfo.STATUE_WAITING_DOWNLOAD://等待下载 holder.statue.setText("等待下载"); holder.progress.setProgress(progress); holder.progress.setSecondaryProgress(0); holder.progressLayout.setTag(info.get_id()); holder.progressText.setText(progress+"%"); break; case PushedApkDownLoadInfo.STATUE_DOWNLOADING://正在下载 holder.statue.setText("正在下载"); holder.progress.setProgress(progress); holder.progress.setSecondaryProgress(0); holder.progressLayout.setTag(info.get_id()); holder.progressText.setText(progress+"%"); break; case PushedApkDownLoadInfo.STATUE_DOWNLOAD_PAUSE://暂停下载 holder.statue.setText("已暂停下载"); holder.progress.setProgress(0); holder.progress.setSecondaryProgress(progress); holder.progressLayout.setTag(info.get_id()); holder.progressText.setText(progress+"%"); break; case PushedApkDownLoadInfo.STATUE_DOWNLOAD_COMPLETE://下载完成 if(FayeService.isSystemApp){ holder.statue.setText("正在安装"); holder.progress.setProgress(progress); // holder.progress.setSecondaryProgress(info.getProgress()); // holder.progress.setSecondaryProgress(0); holder.progressLayout.setTag(info.get_id()); holder.progressText.setText(progress+"%"); }else{ holder.statue.setText("点击安装"); holder.progress.setMax(100); holder.progress.setProgress(holder.progress.getMax()); holder.progress.setSecondaryProgress(0); holder.progressText.setText("100%"); // holder.progress.setVisibility(View.INVISIBLE); // holder.progressText.setVisibility(View.INVISIBLE); } break; case PushedApkDownLoadInfo.STATUE_DOWNLOAD_PAUSEING://下载完成 holder.statue.setText("正在暂停"); holder.progress.setProgress(0); holder.progress.setSecondaryProgress(progress); holder.progressLayout.setTag(info.get_id()); holder.progressText.setText(progress+"%"); break; case PushedApkDownLoadInfo.STATUE_INSTALL_FAILE://安装失败 holder.statue.setText("安装失败"); holder.progress.setProgress(progress); holder.progress.setVisibility(View.INVISIBLE); holder.progressText.setVisibility(View.INVISIBLE); holder.progressLayout.setTag(info.get_id()); break; } holder.statue_icon.setVisibility(View.VISIBLE); switch (info.getEdite_state()) { case PushedApkDownLoadInfo.EDITE_STATUE_NOMAL: if(info.getDownload_state()==PushedApkDownLoadInfo.STATUE_DOWNLOADING){ holder.statue_icon.setImageResource(R.drawable.icon_continue); }else if(info.getDownload_state()==PushedApkDownLoadInfo.STATUE_DOWNLOAD_COMPLETE){ if(FayeService.isSystemApp){ holder.statue_icon.setImageResource(R.drawable.icon_puse); }else{ holder.statue_icon.setVisibility(View.INVISIBLE); } }else{ holder.statue_icon.setImageResource(R.drawable.icon_puse); } 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{ ImageView icon; TextView name; TextView size; ProgressBar progress; TextView progressText; LinearLayout progressLayout; TextView statue; ImageView statue_icon; } }