package br.com.concretesolutions.canarinho.sample.ui.fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputLayout;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import br.com.concretesolutions.canarinho.sample.R;
import br.com.concretesolutions.canarinho.sample.ui.model.Watchers;
import br.com.concretesolutions.canarinho.watcher.BaseCanarinhoTextWatcher;
public class WatcherFragment extends BaseWatcherFragment {
private EditText watcherEdit;
private TextView watcherTitle;
private TextInputLayout watcherInputLayout;
private TextWatcher currentWatcher;
public static WatcherFragment newInstance(Watchers model, TextWatcher watcher) {
final WatcherFragment watcherFragment = new WatcherFragment();
watcherFragment.setArguments(new Bundle());
watcherFragment.setWatcher(watcher);
watcherFragment.setModel(model);
return watcherFragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View layout = inflater.inflate(R.layout.fragment_canarinho_watcher, null);
watcherTitle = (TextView) layout.findViewById(R.id.watcher_title);
watcherInputLayout = (TextInputLayout) layout.findViewById(R.id.edit_input_layout);
watcherEdit = (EditText) layout.findViewById(R.id.edit_text);
bind(model);
return layout;
}
public WatcherFragment bind(Watchers model) {
watcherTitle.setText(model.getTitle());
watcherEdit.setHint(model.getHint());
if (currentWatcher != null) {
watcherEdit.removeTextChangedListener(currentWatcher);
}
watcherEdit.addTextChangedListener(currentWatcher);
if (currentWatcher instanceof BaseCanarinhoTextWatcher) {
final BaseCanarinhoTextWatcher canarinhoWatcher = (BaseCanarinhoTextWatcher) currentWatcher;
if (canarinhoWatcher.getEventoDeValidacao() != null) {
final Watchers.SampleEventoDeValidacao eventoDeValidacao = (Watchers.SampleEventoDeValidacao) canarinhoWatcher.getEventoDeValidacao();
eventoDeValidacao.setTextInputLayout(watcherInputLayout);
}
}
return this;
}
public void setWatcher(TextWatcher currentWatcher) {
this.currentWatcher = currentWatcher;
}
}