Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.org.citi.braapgo.views.Fragment;
- import android.content.DialogInterface;
- import android.os.Bundle;
- import android.support.annotation.NonNull;
- import android.support.annotation.Nullable;
- import android.support.design.widget.Snackbar;
- import android.support.v4.app.Fragment;
- import android.support.v7.app.AlertDialog;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.RadioButton;
- import android.widget.TextView;
- import com.satsuware.usefulviews.LabelledSpinner;
- import java.util.ArrayList;
- import java.util.List;
- import br.org.citi.braapgo.R;
- import br.org.citi.braapgo.controller.Facade;
- import br.org.citi.braapgo.controller.Interfaces.OnGetDataListener;
- import br.org.citi.braapgo.model.Compra;
- import br.org.citi.braapgo.model.User;
- import br.org.citi.braapgo.model.pagarme.Address;
- import br.org.citi.braapgo.model.pagarme.Billing;
- import br.org.citi.braapgo.model.pagarme.Pagamento;
- import br.org.citi.braapgo.model.pagarme.Transacao;
- import br.org.citi.braapgo.util.APIUtils;
- import br.org.citi.braapgo.util.CardDateInputMask;
- import br.org.citi.braapgo.util.Util;
- import br.org.citi.braapgo.views.Adapter.CompraAdapter;
- import br.org.citi.braapgo.views.BraapApp;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- /**
- * Created by eduardo on 26/02/18.
- */
- public class PagarmeFragment extends Fragment {
- private Button pagar;
- private Compra compra;
- private RecyclerView mRecyclerView;
- private LinearLayoutManager mLayoutManager;
- private String final_cpf;
- private String endereco_country;
- private String endereco_state;
- private String endereco_neighborhood;
- private String endereco_city;
- private String endereco_street;
- private String endereco_number;
- private String endereco_zip_code;
- //private List<String> telefones;
- private String telefone_number;
- TextView telefone;
- TextView telefone_info;
- TextView telefone_btn;
- private TextView metodo_pagamento;
- private TextView metodo_pagamento_info;
- private TextView metodo_pagamento_btn;
- private TextView CPF_nota;
- private TextView CPF_nota_info;
- private TextView CPF_nota_btn;
- private TextView Endereco;
- private TextView Endereco_info;
- private TextView Endereco_btn;
- private Address address = new Address();
- private Pagamento pagamento;
- @Override
- public void onActivityCreated(@Nullable final Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- pagar.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(final View v) {
- Facade.getInstance().getCurrentUser(new OnGetDataListener() {
- @Override
- public void onSuccess(Object o) {
- User user = (User) o;
- Pagamento pagamento = new Pagamento();
- pagamento.setApiKey("ak_test_KHdKO63nvi6Kng7ZOCA3ZGwknAWF1q");
- //testei com meus dados e pegou
- // pagamento.setPayment_method();
- //todo:ajustar telefone
- // if (telefone == null || telefones.size() == 0) {
- // telefones = new ArrayList<>();
- // telefones.add("+5581981334808");
- // }
- ArrayList<String>telefones = new ArrayList<>();
- telefones.add(telefone_number);
- pagamento.setCustomer(user.toCustumer(final_cpf, telefones));
- //todo: endereço
- Billing billing = new Billing();
- billing.setName(user.getNome());
- Address address = new Address();
- address.setCity(endereco_city);
- address.setCountry(endereco_country);
- address.setState(endereco_state);
- address.setNeighborhood(endereco_neighborhood);
- address.setStreet(endereco_street);
- address.setStreetNumber(endereco_number);
- address.setZipcode(endereco_zip_code);
- billing.setAddress(address);
- pagamento.setBilling(billing);
- pagamento.setItems(compra.getItens());
- APIUtils.getAPIPagarme().postPagamento(pagamento).enqueue(new Callback<Transacao>() {
- @Override
- public void onResponse(Call<Transacao> call, Response<Transacao> response) {
- try {
- if (response.isSuccessful()) {
- //todo:salvar transacoes no banco de dados
- //todo:gerar QRCode a paartir do id da transacao
- Snackbar.make(v, "sucess", Snackbar.LENGTH_LONG).show();
- } else {
- Snackbar.make(v, response.errorBody().string(), Snackbar.LENGTH_LONG).show();
- Log.e("pagamento", response.errorBody().string());
- }
- } catch (Exception e) {
- Snackbar.make(v, e.getMessage(), Snackbar.LENGTH_LONG).show();
- Log.e("pagamento", e.getMessage());
- }
- }
- @Override
- public void onFailure(Call<Transacao> call, Throwable t) {
- Snackbar.make(v, t.getMessage(), Snackbar.LENGTH_LONG).show();
- Log.e("pagamento", t.getMessage());
- }
- });
- }
- @Override
- public void onFailure(String message) {
- }
- });
- Log.d("pagamento", pagamento.toString());
- }
- });
- }
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View rootView = inflater.inflate(R.layout.fragment_pagarme, container, false);
- Bundle bundle = this.getArguments();
- compra = (Compra) bundle.getSerializable("compra");
- mRecyclerView = rootView.findViewById(R.id.item_ingresso_recycler);
- mLayoutManager = new LinearLayoutManager(getActivity());
- mRecyclerView.setLayoutManager(mLayoutManager);
- CompraAdapter compraAdapter = new CompraAdapter(compra);
- mRecyclerView.setAdapter(compraAdapter);
- pagamento = new Pagamento();
- pagamento.setAmount(compra.getTotalInt());//+imposto?
- //todo:imposto? Como faz?
- TextView imposto = rootView.findViewById(R.id.imposto);
- TextView total = rootView.findViewById(R.id.preco_total);
- total.setText(String.valueOf(compra.getTotalPrice()));
- metodo_pagamento = rootView.findViewById(R.id.metodo_pagamento);
- metodo_pagamento_info = rootView.findViewById(R.id.metodo_pagamento_info);
- metodo_pagamento_btn = rootView.findViewById(R.id.metodo_pagamento_btn);
- //final AlertDialog metodo_pagamento_dialog = dialogCartao();
- metodo_pagamento_btn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- //metodo_pagamento_dialog.show();
- dialogMetodoPagamento();
- }
- });
- //todo:pagamento, cpf e telefones nao podem se perder quando o app for minimizado
- CPF_nota = rootView.findViewById(R.id.CPF_nota);
- CPF_nota_info = rootView.findViewById(R.id.CPF_nota_info);
- CPF_nota_btn = rootView.findViewById(R.id.CPF_nota_btn);
- final AlertDialog CPF_nota_dialog = dialogCPF();
- CPF_nota_btn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- CPF_nota_dialog.show();
- }
- });
- telefone = rootView.findViewById(R.id.telefone);
- telefone_info = rootView.findViewById(R.id.telefone_info);
- telefone_btn = rootView.findViewById(R.id.telefone_btn);
- telefone_btn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- dialogTelefone();
- }
- });
- //todo:alertDialog para telefone
- Endereco = rootView.findViewById(R.id.endereco);
- Endereco_info = rootView.findViewById(R.id.endereco_info);
- Endereco_btn = rootView.findViewById(R.id.endereco_btn);
- final AlertDialog Endereco_dialog = dialogEndereco();
- Endereco_btn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Endereco_dialog.show();
- }
- });
- pagar = rootView.findViewById(R.id.pagamento_btn);
- Log.d("compra", compra.toString());
- return rootView;
- }
- private void dialogMetodoPagamento(){
- AlertDialog.Builder dialog = new AlertDialog.Builder(BraapApp.getContext());
- LayoutInflater li = getLayoutInflater();
- final View view = li.inflate(R.layout.dialog_metodo_pagamento, null);
- final RadioButton boleto = view.findViewById(R.id.boleto_radio);
- final RadioButton cartao = view.findViewById(R.id.cartao_radio);
- dialog.setTitle("Selecione o método de pagamento");
- dialog.setView(view)
- .setPositiveButton("Selecionar", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- if(cartao.isChecked()){
- dialogCartao();
- }else if(boleto.isChecked()){
- //todo: não sei como tratar o boleto
- }
- dialog.cancel();
- }
- })
- .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- }).show();
- }
- private void dialogCartao() {
- AlertDialog.Builder dialog = new AlertDialog.Builder(BraapApp.getContext());
- LayoutInflater li = getLayoutInflater();
- final View view = li.inflate(R.layout.dialog_cartao, null);
- final EditText nome = view.findViewById(R.id.card_nome);
- final EditText numero = view.findViewById(R.id.card_number);
- final EditText cvv = view.findViewById(R.id.card_cvv);
- final EditText data = view.findViewById(R.id.card_expiration_date);
- new CardDateInputMask(data);
- dialog.setTitle("Adicionar informações do cartão");
- dialog.setView(view)
- .setPositiveButton("Modificar", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- try {
- String cardNumber = (numero != null) ? numero.getText().toString() : null;
- String cvvNumber = (cvv != null) ? cvv.getText().toString() : null;
- String dataNumber = (data != null) ? data.getText().toString() : null;
- String Nome = (nome != null) ? nome.getText().toString() : null;
- pagamento.setCardHolderName(Nome);
- pagamento.setCardNumber(cardNumber);
- pagamento.setCardCvv(cvvNumber);
- pagamento.setCardExpirationDate(dataNumber);
- metodo_pagamento_info.setText(Util.hideCardNumber(cardNumber));
- } catch (Exception e) {
- Snackbar.make(view, "Informações digitadas incorretamente: " + e.getMessage(), Snackbar.LENGTH_LONG).show();
- } finally {
- dialog.cancel();
- }
- }
- })
- .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
- }
- private AlertDialog dialogCPF() {
- AlertDialog.Builder dialog = new AlertDialog.Builder(BraapApp.getContext());
- LayoutInflater li = getLayoutInflater();
- View view = li.inflate(R.layout.dialog_cpf, null);
- final EditText cpf = view.findViewById(R.id.cpf_in);
- dialog.setTitle("Adicionar CPF do contratante");
- dialog.setView(view)
- .setPositiveButton("Modificar", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- final_cpf = (cpf != null) ? cpf.getText().toString() : null;
- CPF_nota_info.setText(final_cpf);
- dialog.cancel();
- }
- })
- .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
- return dialog.create();
- }
- private AlertDialog dialogEndereco() {
- AlertDialog.Builder dialog = new AlertDialog.Builder(BraapApp.getContext());
- LayoutInflater li = getLayoutInflater();
- View view = li.inflate(R.layout.dialog_endereco, null);
- final LabelledSpinner endereco_country_tv = view.findViewById(R.id.endereco_pais);
- final LabelledSpinner endereco_state_tv = view.findViewById(R.id.endereco_estado);
- final EditText endereco_city_tv = view.findViewById(R.id.endereco_cidade);
- final EditText endereco_neighborhood_tv = view.findViewById(R.id.endereco_bairro);
- final EditText endereco_street_tv = view.findViewById(R.id.endereco_rua);
- final EditText endereco_number_tv = view.findViewById(R.id.endereco_numero);
- final EditText endereco_zip_code_tv = view.findViewById(R.id.endereco_postal);
- dialog.setTitle("Adicionar Endereço de cobrança");
- dialog.setView(view)
- .setPositiveButton("Modificar", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- endereco_country = (endereco_country_tv != null) ? endereco_country_tv.getLabel().getText().toString() : null;
- endereco_state = (endereco_state_tv != null) ? endereco_state_tv.getLabel().getText().toString() : null;
- endereco_city = (endereco_city_tv != null) ? endereco_city_tv.getText().toString() : null;
- endereco_neighborhood = (endereco_neighborhood_tv != null) ? endereco_neighborhood_tv.getText().toString() : null;
- endereco_city = (endereco_city_tv != null) ? endereco_city_tv.getText().toString() : null;
- endereco_street = (endereco_street_tv != null) ? endereco_street_tv.getText().toString() : null;
- endereco_number = (endereco_number_tv != null) ? endereco_number_tv.getText().toString() : null;
- endereco_zip_code = (endereco_zip_code_tv != null) ? endereco_zip_code_tv.getText().toString() : null;
- address.setCity(endereco_city);
- dialog.cancel();
- }
- })
- .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
- return dialog.create();
- }
- private void dialogTelefone(){
- AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
- LayoutInflater li = getLayoutInflater();
- View view = li.inflate(R.layout.dialog_telefone, null);
- final EditText telefone_tv = view.findViewById(R.id.telefone_in);
- dialog.setTitle("Adiciona Telefone(s)");
- dialog.setView(view)
- .setPositiveButton("Modificar", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- // todo: atribuir informacoes ao pagamento
- telefone_number = (telefone_tv != null) ? telefone_tv.getText().toString() : null;
- telefone_info.setText(telefone_number);
- Util.InputMethod(telefone_tv, false);
- dialog.cancel();
- }
- })
- .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- Util.InputMethod(telefone_tv, false);
- dialog.cancel();
- }
- });
- dialog.create().show();
- }
- }
Add Comment
Please, Sign In to add comment