package alura.com.br.UI.activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.List;
import alura.com.br.R;
import alura.com.br.UI.dao.AlunoDAO;
import alura.com.br.model.Aluno;
import static alura.com.br.UI.activity.ContatesActivities.CHAVE_ALUNO;
// o AppCompatActivity - Irá trazer o App Bar com o titulo do aplicativo
public class ListaAlunosActivity extends AppCompatActivity {
public static final String TITULO_APP_BAR = "Lista de Alunos";
private final AlunoDAO dao = new AlunoDAO();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_alunos);
// O setTitle, Muda o titulo que fica no app bar
setTitle(TITULO_APP_BAR);
configuraFABNovoAluno();
dao.salva(new Aluno("Cleriston", "11941529166", "cleriston@gmail.com"));
dao.salva(new Aluno("Marcelo", "11944512562", "Marcelo@gmail.com"));
}
private void configuraFABNovoAluno() {
FloatingActionButton botaoNovoAluno = findViewById(R.id.activity_lista_alunos_fab_novo_aluno);
botaoNovoAluno.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
abreFormularioModoInsereAluno();
}
});
}
private void abreFormularioModoInsereAluno() {
// ORIGEM PARA DESTINO
startActivity(new Intent(this, FormularioAlunoActivity.class));
}
@Override
protected void onResume() {
super.onResume();
// Instancia do DAO
confirguraLista();
}
private void confirguraLista() {
final ListView ListaDeAlunos = findViewById(R.id.activity_lista_alunos_listview);
final List<Aluno> alunos = dao.todos();
ConfiguraAdapter(ListaDeAlunos, alunos);
// Irá realizar uma ação com o Click
configiraListenerDeClickProItem(ListaDeAlunos);
}
private void configiraListenerDeClickProItem(ListView listaDeAlunos) {
listaDeAlunos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
// Incluindo os logis do LogCat
// Na parte da TAG indica a onde você deseja encontrar em qual posição esta o elemento do LogCat
// Log.i("Aluno", "" + position);
Aluno alunosEscolhido = (Aluno) adapterView.getItemAtPosition(position);
Intent vaiParaFormularioActivity = new Intent(ListaAlunosActivity.this, FormularioAlunoActivity.class);
// Extra - Serve para transferir dados para as activity's e atualiza-las
vaiParaFormularioActivity.putExtra(CHAVE_ALUNO, alunosEscolhido);
startActivity(vaiParaFormularioActivity);
}
});
}
private void ConfiguraAdapter(ListView listaDeAlunos, List<Aluno> alunos) {
listaDeAlunos.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, alunos));
}
}