package com.novoda.todoapp.tasks.view;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.novoda.data.SyncedData;
import com.novoda.notils.caster.Views;
import com.novoda.todoapp.R;
import com.novoda.todoapp.task.data.model.Task;
import com.novoda.todoapp.tasks.displayer.TasksActionListener;
public class TaskItemView extends LinearLayout {
private TextView titleView;
private CheckBox completeCheckBox;
public TaskItemView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
View.inflate(getContext(), R.layout.merge_task_item_view, this);
titleView = Views.findById(this, R.id.title);
completeCheckBox = Views.findById(this, R.id.complete);
}
public void display(SyncedData<Task> syncedData, final TasksActionListener tasksActionListener) {
final Task task = syncedData.data();
titleView.setText(task.titleOrDescription().orNull());
setBackground(getBackgroundFor(task));
completeCheckBox.setChecked(task.isCompleted());
completeCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tasksActionListener.toggleCompletion(task);
}
});
setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
tasksActionListener.onTaskSelected(task);
}
});
}
private Drawable getBackgroundFor(Task task) {
if (task.isCompleted()) {
return getContext()
.getResources().getDrawable(R.drawable.list_completed_touch_feedback);
} else {
return getContext()
.getResources().getDrawable(R.drawable.touch_feedback);
}
}
}