Eric Kok
11 years ago
2 changed files with 103 additions and 5 deletions
@ -0,0 +1,102 @@
@@ -0,0 +1,102 @@
|
||||
/* |
||||
* Copyright 2010-2013 Eric Kok et al. |
||||
* |
||||
* Transdroid is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, either version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* Transdroid is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with Transdroid. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/ |
||||
package org.transdroid.core.widget; |
||||
|
||||
import java.util.List; |
||||
|
||||
import org.transdroid.core.R; |
||||
import org.transdroid.core.gui.lists.LocalTorrent; |
||||
import org.transdroid.daemon.Torrent; |
||||
|
||||
import android.content.Context; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.ArrayAdapter; |
||||
import android.widget.TextView; |
||||
|
||||
/** |
||||
* A list list item adapter that shows torrents as simplified, widget-style list items; the light theme is always used. |
||||
* @author Eric Kok |
||||
*/ |
||||
public class WidgetPreviewAdapter extends ArrayAdapter<Torrent> { |
||||
|
||||
/** |
||||
* Constructs the custom array adapter that shows torrents in a widget list style for preview. |
||||
* @param context The widget configuration activity context |
||||
* @param foo Ignored parameter; the light theme widget appearance is always used |
||||
* @param torrents The already-retrieved, non-null list of torrents to show |
||||
*/ |
||||
public WidgetPreviewAdapter(Context context, int foo, List<Torrent> torrents) { |
||||
super(context, R.layout.list_item_widget_light, torrents); |
||||
} |
||||
|
||||
@Override |
||||
public View getView(int position, View convertView, ViewGroup parent) { |
||||
|
||||
// Get the views
|
||||
ViewHolder holder; |
||||
if (convertView == null) { |
||||
convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item_widget_light, parent, false); |
||||
holder = new ViewHolder(); |
||||
holder.nameText = (TextView) convertView.findViewById(R.id.name_text); |
||||
holder.progressText = (TextView) convertView.findViewById(R.id.progress_text); |
||||
holder.ratioText = (TextView) convertView.findViewById(R.id.ratio_text); |
||||
holder.statusView = convertView.findViewById(R.id.status_view); |
||||
convertView.setTag(holder); |
||||
} else { |
||||
holder = (ViewHolder) convertView.getTag(); |
||||
} |
||||
|
||||
// Bind the torrent values
|
||||
Torrent torrent = getItem(position); |
||||
LocalTorrent local = LocalTorrent.fromTorrent(torrent); |
||||
|
||||
int statusColour; |
||||
switch (torrent.getStatusCode()) { |
||||
case Downloading: |
||||
statusColour = R.color.torrent_downloading; |
||||
break; |
||||
case Paused: |
||||
statusColour = R.color.torrent_paused; |
||||
break; |
||||
case Seeding: |
||||
statusColour = R.color.torrent_seeding; |
||||
break; |
||||
case Error: |
||||
statusColour = R.color.torrent_error; |
||||
break; |
||||
default: // Checking, Waiting, Queued, Unknown
|
||||
statusColour = R.color.torrent_other; |
||||
break; |
||||
} |
||||
holder.nameText.setText(torrent.getName()); |
||||
holder.progressText.setText(local.getProgressSizeText(getContext().getResources(), false)); |
||||
holder.ratioText.setText(local.getProgressEtaRatioText(getContext().getResources())); |
||||
holder.statusView.setBackgroundColor(getContext().getResources().getColor(statusColour)); |
||||
return convertView; |
||||
|
||||
} |
||||
|
||||
protected static class ViewHolder { |
||||
public TextView nameText; |
||||
public TextView progressText; |
||||
public TextView ratioText; |
||||
public View statusView; |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue