public Transporte preencherDados(Transporte transporte) { if (transporte.getId() == 0) { // gerando id transportes.sort("id", Sort.DESCENDING); id = transportes.size() == 0 ? 1 : transportes.get(0).getId() + 1; transporte.setId(id); } transporte.setModelo(modelo.getText().toString()); transporte.setMarca(marca.getText().toString()); transporte.setAno(Integer.parseInt(ano.getText().toString())); transporte.setKm(Integer.parseInt(km.getText().toString())); transporte.setPotencia(Double.parseDouble(potencia.getText().toString())); transporte.setTipo(rgTipo.getCheckedRadioButtonId()); if (imagemSelecionada != 0) { transporte.setImagem(imagemSelecionada); } return transporte; }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_cadastro_transporte); realm = Realm.getDefaultInstance(); transportes = realm.where(Transporte.class).findAll(); collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); collapsingToolbarLayout.setTitle("Serviço"); Toolbar toolbar = (Toolbar) findViewById(R.id.detalhe_toolbar); toolbar.setTitle("Serviço"); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); modelo = (EditText) findViewById(R.id.edt_modelo); marca = (EditText) findViewById(R.id.edt_marca); ano = (EditText) findViewById(R.id.edt_ano); km = (EditText) findViewById(R.id.edt_km); potencia = (EditText) findViewById(R.id.edt_potencia); rgTipo = (RadioGroup) findViewById(R.id.rgTipo); imagem = (ImageView) findViewById(R.id.tb_imagem); btSalvar = (Button) findViewById(R.id.bt_salvar_transporte); rgTipo.setOnCheckedChangeListener( new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.rb_carro: imagem.setImageResource(R.drawable.carro); imagemSelecionada = R.drawable.carro; break; case R.id.rb_moto: imagem.setImageResource(R.drawable.moto); imagemSelecionada = R.drawable.moto; break; case R.id.rb_caminhao: imagem.setImageResource(R.drawable.caminao); imagemSelecionada = R.drawable.caminao; break; case R.id.rb_aviao: imagem.setImageResource(R.drawable.aviao); imagemSelecionada = R.drawable.aviao; break; } } }); transporte = new Transporte(); if (getIntent() != null && getIntent().getLongExtra(Transporte.ID, 0) > 0) { transporte.setId(getIntent().getLongExtra(Transporte.ID, 0)); transporte = transportes.where().equalTo("id", transporte.getId()).findFirst(); modelo.setText(transporte.getModelo()); marca.setText(transporte.getMarca()); ano.setText(String.valueOf(transporte.getAno())); km.setText(String.valueOf(transporte.getKm())); potencia.setText(String.valueOf(transporte.getPotencia())); rgTipo.check(transporte.getTipo()); imagem.setImageResource(transporte.getImagem()); btSalvar.setText("Atualizar"); } btSalvar.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { try { if (validarCampos()) { realm.beginTransaction(); preencherDados(transporte); realm.copyToRealmOrUpdate(transporte); realm.commitTransaction(); // Script de serviços if (getIntent().getLongExtra(Transporte.ID, 0) == 0) { Transporte tranporte = realm.where(Transporte.class).findFirst(); String descricao = "Oleo"; int img = R.drawable.oleo; for (int i = 0; i < 3; i++) { realm.beginTransaction(); Servicos servico = new Servicos(); servico.setId(i + 1); servico.setDescricao(descricao); servico.setUltimaTroca(tranporte.getKm()); servico.setPeriodo(1); servico.setProximaTroca( servico.getUltimaTroca() + (servico.getPeriodo() * 1000)); servico.setData(new Date()); servico.setImagem(img); realm.copyToRealmOrUpdate(servico); realm.commitTransaction(); if (i == 0) { descricao = "Pneu"; img = R.drawable.roda; } else if (i == 1) { descricao = "Manutenção"; img = R.drawable.manutencao; } } } msg("Dados salvo"); EventBus.getDefault().post(transporte); finish(); } } catch (Exception e) { msg("erro " + e.getMessage()); } } }); }