@Override public View getView(int position, View convertView, ViewGroup parent) { ClementineSongDownloader downloader = App.downloaders.get(position); DownloadViewHolder downloadViewHolder; if (convertView == null) { convertView = ((Activity) mContext).getLayoutInflater().inflate(R.layout.download_row, parent, false); downloadViewHolder = new DownloadViewHolder(); downloadViewHolder.title = (TextView) convertView.findViewById(R.id.tvDlTitle); downloadViewHolder.subtitle = (TextView) convertView.findViewById(R.id.tvDlSubtitle); downloadViewHolder.progress = (ProgressBar) convertView.findViewById(R.id.pbDlProgress); downloadViewHolder.cancel = (ImageButton) convertView.findViewById(R.id.ibCancelDl); convertView.setTag(downloadViewHolder); } else { downloadViewHolder = (DownloadViewHolder) convertView.getTag(); } convertView.setBackgroundResource(R.drawable.selector_white_orange_selected); downloadViewHolder.cancel.setOnClickListener(oclCancel); downloadViewHolder.cancel.setTag(downloader); downloadViewHolder.progress.setMax(100); downloadViewHolder.progress.setProgress(downloader.getCurrentProgress()); downloadViewHolder.title.setText(downloader.getTitle()); downloadViewHolder.subtitle.setText(downloader.getSubtitle()); return convertView; }
@Override public void onClick(View v) { ClementineSongDownloader downloader = (ClementineSongDownloader) v.getTag(); if (downloader.getStatus() == AsyncTask.Status.RUNNING) { downloader.cancel(true); Toast.makeText(mContext, R.string.download_noti_canceled, Toast.LENGTH_SHORT).show(); } else { App.downloaders.remove(downloader); } notifyDataSetChanged(); }