package app.create.rpg.task; import android.content.Context; import android.util.SparseArray; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ProgressBar; import app.create.rpg.R; import app.create.rpg.ServiceFileTask.MyBinder; import app.create.rpg.ServiceFileTask.MyQueue; public class TaskListAdapter extends ArrayAdapter<MyQueue> { public TaskListAdapter (Context context) { super(context, R.layout.list_task_item, android.R.id.text1); } public void update (MyBinder binder) { SparseArray<MyQueue> queues = binder.getTasks(); synchronized (queues) { setNotifyOnChange(false); clear(); for (int i = 0; i < queues.size(); ++i) add(queues.valueAt(i)); notifyDataSetChanged(); } } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); ProgressBar bar = (ProgressBar) view.findViewById(R.id.progressBar); float prog = getItem(position).getProgress(); if (prog < 0f || prog > 1f) bar.setVisibility(View.GONE); else { bar.setVisibility(View.VISIBLE); bar.setProgress((int) (prog * 10000)); } return view; } }