Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save fernandocamargoai/56ec3eee89d44c97c108 to your computer and use it in GitHub Desktop.
Save fernandocamargoai/56ec3eee89d44c97c108 to your computer and use it in GitHub Desktop.
TipoDeIngressoParaComissarioCard - Updated
package com.meubilhete.pontodevenda.ui.card;
import android.content.Context;
import android.content.res.Resources;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import br.com.cybereagle.androidlibrary.dagger.ForActivity;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import com.meubilhete.pontodevenda.R;
import com.meubilhete.pontodevenda.model.domain.PedidoDeBilhete;
import com.meubilhete.pontodevenda.model.domain.TipoDeIngresso;
import com.meubilhete.pontodevenda.model.event.MudouQuantidadeDeBilheteEvent;
import com.meubilhete.pontodevenda.ui.BaseActivity;
import com.meubilhete.pontodevenda.utils.LogUtils;
import com.meubilhete.pontodevenda.utils.TelaUtils;
import de.greenrobot.event.EventBus;
import it.gmariotti.cardslib.library.internal.Card;
import javax.inject.Inject;
import java.text.NumberFormat;
public class TipoDeIngressoParaComissarioCard extends Card {
private PedidoDeBilhete pedidoDeBilhete;
private TipoDeIngresso tipoDeIngresso;
private int color;
@Inject
@ForActivity
Context context;
@Inject
Resources resources;
@Inject
LogUtils logUtils;
@Inject
TelaUtils telaUtils;
@Inject
LayoutInflater inflater;
@Inject
EventBus eventBus;
@InjectView(R.id.informacoes)
View viewInformacoes;
@InjectView(R.id.nome)
TextView tvNome;
@InjectView(R.id.preco)
TextView tvPreco;
@InjectView(R.id.quantidade_de_bilhetes)
EditText etQuantidadeDeBilhetes;
@InjectView(R.id.btn_aumentar)
Button btnAumentar;
@InjectView(R.id.btn_diminuir)
Button btnDiminuir;
View layout;
private TextWatcher textWatcher;
public TipoDeIngressoParaComissarioCard(BaseActivity activity, PedidoDeBilhete pedidoDeBilhete, int color) {
super(activity, R.layout.card_tipo_de_ingresso_para_comissario);
activity.inject(this);
this.pedidoDeBilhete = pedidoDeBilhete;
this.tipoDeIngresso = pedidoDeBilhete.getTipoDeIngresso();
this.color = color;
}
@Override
public void setupInnerViewElements(ViewGroup parent, View view) {
if(textWatcher == null){
textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
pedidoDeBilhete.setQuantidade(Integer.parseInt(etQuantidadeDeBilhetes.getText().toString()));
}
};
}
if(etQuantidadeDeBilhetes != null){
etQuantidadeDeBilhetes.removeTextChangedListener(textWatcher);
}
if(btnAumentar != null){
btnAumentar.setOnClickListener(null);
}
if(btnDiminuir != null){
btnDiminuir.setOnClickListener(null);
}
layout = view;
ButterKnife.inject(this, view);
if(tipoDeIngresso != null){
tvNome.setText(String.format("%s - %s", tipoDeIngresso.getNome(), tipoDeIngresso.isMeia() ? "meia" : "inteira"));
tvPreco.setText(NumberFormat.getCurrencyInstance().format(tipoDeIngresso.getValorUnitario()));
atualizeQuantidade();
viewInformacoes.setBackgroundColor(color);
etQuantidadeDeBilhetes.addTextChangedListener(textWatcher);
}
}
private void atualizeQuantidade() {
etQuantidadeDeBilhetes.setText(String.valueOf(pedidoDeBilhete.getQuantidade()));
}
@OnClick(R.id.btn_aumentar)
public void onClickAumentar(){
pedidoDeBilhete.setQuantidade(pedidoDeBilhete.getQuantidade()+1);
atualizeQuantidade();
eventBus.post(new MudouQuantidadeDeBilheteEvent());
}
@OnClick(R.id.btn_diminuir)
public void onClickDiminuir(){
int quantidade = pedidoDeBilhete.getQuantidade();
if(quantidade >0){
pedidoDeBilhete.setQuantidade(quantidade-1);
atualizeQuantidade();
eventBus.post(new MudouQuantidadeDeBilheteEvent());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment