package com.zhuinden.simplestackdemoexamplemvp.presentation.paths.addoredittask;
import android.annotation.TargetApi;
import android.content.Context;
import android.support.annotation.Nullable;
import android.text.Editable;
import android.util.AttributeSet;
import android.widget.EditText;
import android.widget.ScrollView;
import com.zhuinden.simplestackdemoexamplemvp.R;
import com.zhuinden.simplestackdemoexamplemvp.application.Injector;
import com.zhuinden.simplestack.Bundleable;
import com.zhuinden.statebundle.StateBundle;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnTextChanged;
/**
* Created by Owner on 2017. 01. 26..
*/
public class AddOrEditTaskView
extends ScrollView
implements Bundleable {
public AddOrEditTaskView(Context context) {
super(context);
init(context);
}
public AddOrEditTaskView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public AddOrEditTaskView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
@TargetApi(21)
public AddOrEditTaskView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init(context);
}
private void init(Context context) {
if(!isInEditMode()) {
Injector.get().inject(this);
}
}
@Inject
AddOrEditTaskPresenter addOrEditTaskPresenter;
@OnTextChanged(R.id.add_task_title)
public void titleChanged(Editable editable) {
addOrEditTaskPresenter.updateTitle(editable.toString());
}
@OnTextChanged(R.id.add_task_description)
public void descriptionChanged(Editable editable) {
addOrEditTaskPresenter.updateDescription(editable.toString());
}
@BindView(R.id.add_task_title)
EditText addTaskTitle;
@BindView(R.id.add_task_description)
EditText addTaskDescription;
public void saveTask() {
addOrEditTaskPresenter.saveTask();
}
public void navigateBack() {
addOrEditTaskPresenter.navigateBack();
}
@Override
public StateBundle toBundle() {
return addOrEditTaskPresenter.toBundle();
}
@Override
public void fromBundle(@Nullable StateBundle bundle) {
if(bundle != null) {
addOrEditTaskPresenter.fromBundle(bundle);
}
}
public void setTitle(String title) {
addTaskTitle.setText(title);
}
public void setDescription(String description) {
addTaskDescription.setText(description);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
ButterKnife.bind(this);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
addOrEditTaskPresenter.attachView(this);
}
@Override
protected void onDetachedFromWindow() {
addOrEditTaskPresenter.detachView(this);
super.onDetachedFromWindow();
}
}