package com.todoroo.astrid.tags.reusable;
import java.util.concurrent.atomic.AtomicReference;
import android.content.Context;
import android.database.Cursor;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.timsu.astrid.R;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.utility.Flags;
public class ReusableTaskAdapter extends TaskAdapter {
public ReusableTaskAdapter(TaskListFragment fragment, int resource,
Cursor c, AtomicReference<String> query, boolean autoRequery,
OnCompletedTaskListener onCompletedTaskListener) {
super(fragment, resource, c, query, autoRequery, onCompletedTaskListener);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
ViewGroup view = (ViewGroup)inflater.inflate(resource, parent, false);
ReusableTaskViewHolder viewHolder = new ReusableTaskViewHolder();
viewHolder.task = new Task();
viewHolder.clone = (ImageView) view.findViewById(R.id.clone_task);
viewHolder.title = (TextView) view.findViewById(R.id.title);
boolean showFullTaskTitle = Preferences.getBoolean(R.string.p_fullTaskTitle, false);
if (showFullTaskTitle) {
viewHolder.title.setMaxLines(Integer.MAX_VALUE);
}
view.setTag(viewHolder);
for(int i = 0; i < view.getChildCount(); i++)
view.getChildAt(i).setTag(viewHolder);
viewHolder.clone.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ReusableTaskViewHolder holder = (ReusableTaskViewHolder) v.getTag();
taskService.cloneReusableTask(holder.task, null, RemoteModel.NO_UUID);
Toast.makeText(fragment.getActivity(), R.string.actfm_feat_list_task_clone_success, Toast.LENGTH_LONG).show();
Flags.set(Flags.REFRESH);
}
});
return view;
}
@Override
public void bindView(View view, Context context, Cursor c) {
TodorooCursor<Task> cursor = (TodorooCursor<Task>)c;
ReusableTaskViewHolder viewHolder = (ReusableTaskViewHolder) view.getTag();
Task task = viewHolder.task;
task.clear();
task.readFromCursor(cursor);
viewHolder.title.setText(task.getValue(Task.TITLE));
view.setMinimumHeight(minRowHeight);
}
public static class ReusableTaskViewHolder {
public Task task;
public ImageView clone;
public TextView title;
}
}