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; import br.com.concretesolutions.canarinho.watcher.ValorMonetarioWatcher; public class CanarinhoValorMonetarioWatcherFragment extends BaseWatcherFragment { private EditText watcherEdit; private TextView watcherTitle; private TextInputLayout watcherInputLayout; private TextWatcher currentWatcher; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View layout = inflater.inflate(R.layout.fragment_valor_monetario_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); setModel(Watchers.VALOR_MONETARIO); bind(model); return layout; } public CanarinhoValorMonetarioWatcherFragment bind(Watchers model) { watcherTitle.setText(model.getTitle()); watcherEdit.setHint(model.getHint()); if (currentWatcher != null) { watcherEdit.removeTextChangedListener(currentWatcher); } currentWatcher = new ValorMonetarioWatcher(); watcherEdit.addTextChangedListener(currentWatcher); if (currentWatcher instanceof BaseCanarinhoTextWatcher) { final BaseCanarinhoTextWatcher canarinhoWatcher = (BaseCanarinhoTextWatcher) currentWatcher; final Watchers.SampleEventoDeValidacao eventoDeValidacao = (Watchers.SampleEventoDeValidacao) canarinhoWatcher.getEventoDeValidacao(); eventoDeValidacao.setTextInputLayout(watcherInputLayout); } return this; } }