package br.com.cursoandroid.cadastroaluno;
import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import br.com.cursoandroid.cadastroaluno.helper.FormularioHelper;
import br.com.cursoandroid.cadastroaluno.modelo.bean.Aluno;
import br.com.cursoandroid.cadastroaluno.modelo.dao.AlunoDAO;
public class FormularioActivity extends Activity {
private Button botao;
private FormularioHelper helper;
private String localArquivo;
private static final int FAZER_FOTO = 123;
private Aluno alunoParaSerAlterado = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.formulario);
// Criacao do objeto Helper
helper = new FormularioHelper(this);
botao = (Button) findViewById(R.id.sbSalvar);
if (savedInstanceState != null) {
localArquivo = (String) savedInstanceState
.getSerializable("localArquivo");
}
if (localArquivo != null) {
helper.carregarFoto(localArquivo);
}
helper.getFoto().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
localArquivo = Environment.getExternalStorageDirectory()
+ "/" + System.currentTimeMillis() + ".jpg";
File arquivo = new File(localArquivo);
//URI que informa onde o arquivo resultado deve ser salvo
Uri localFoto = Uri.fromFile(arquivo);
Intent irParaCamera = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);
irParaCamera.putExtra(MediaStore.EXTRA_OUTPUT, localFoto);
startActivityForResult(irParaCamera, FAZER_FOTO);
}
});
// Busca o aluno a ser alterado
alunoParaSerAlterado = (Aluno) getIntent().getSerializableExtra(
"ALUNO_SELECIONADO");
if (alunoParaSerAlterado != null) {
// Atualiza a tela com dados do Aluno
helper.setAluno(alunoParaSerAlterado);
}
botao.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// Utilizacao do Helper para recuperar dados do Aluno
Aluno aluno = helper.getAluno();
// Criacao do objeto DAO - inicio da conexao com o BD
AlunoDAO dao = new AlunoDAO(FormularioActivity.this);
// Verificacao para salvar ou cadastrar o aluno
if (aluno.getId() == null) {
dao.cadastrar(aluno);
} else {
dao.alterar(aluno);
}
// Encerramento da conexao com o Banco de Dados
dao.close();
// Encerrando a Activity
finish();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//Verificacao do resultado da nossa requisicao
if (requestCode == FAZER_FOTO) {
if (resultCode == Activity.RESULT_OK) {
helper.carregarFoto(this.localArquivo);
} else {
localArquivo = null;
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.formulario, menu);
return true;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("localArquivo", localArquivo);
}
}