package com.novoda.todoapp.task.view;
import android.content.Context;
import android.support.design.widget.CoordinatorLayout;
import android.util.AttributeSet;
import android.view.View;
import android.widget.CheckBox;
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.task.displayer.TaskActionListener;
import com.novoda.todoapp.task.displayer.TaskDisplayer;
public class TaskDetailView extends CoordinatorLayout implements TaskDisplayer {
private TextView titleView;
private TextView descriptionView;
private CheckBox completeCheckBox;
private View editActionButton;
private TaskActionListener taskActionListener;
public TaskDetailView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
View.inflate(getContext(), R.layout.merge_task_detail_view, this);
titleView = Views.findById(this, R.id.task_detail_title);
descriptionView = Views.findById(this, R.id.task_detail_description);
completeCheckBox = Views.findById(this, R.id.task_detail_complete);
editActionButton = Views.findById(this, R.id.fab_edit_task);
}
@Override
public void attach(TaskActionListener taskActionListener) {
this.taskActionListener = taskActionListener;
}
@Override
public void detach(TaskActionListener taskActionListener) {
this.taskActionListener = null;
}
@Override
public void display(SyncedData<Task> syncedData) {
final Task task = syncedData.data();
titleView.setText(task.title().orNull());
descriptionView.setText(task.description().orNull());
completeCheckBox.setChecked(task.isCompleted());
completeCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
taskActionListener.toggleCompletion(task);
}
});
editActionButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
taskActionListener.onEditSelected(task);
}
});
}
}