Created
October 12, 2018 03:14
-
-
Save gustavocaloi/9cfa8cbbc51aebfb755e1bcb28a8a702 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.gustavocaloi.agenda; | |
import android.Manifest; | |
import android.content.Intent; | |
import android.content.pm.PackageManager; | |
import android.net.Uri; | |
import android.os.Bundle; | |
import android.support.v4.app.ActivityCompat; | |
import android.support.v7.app.AppCompatActivity; | |
import android.view.ContextMenu; | |
import android.view.View; | |
import android.view.Menu; | |
import android.view.MenuItem; | |
import android.widget.AdapterView; | |
import android.widget.Button; | |
import android.widget.ListView; | |
import android.widget.Toast; | |
import com.example.gustavocaloi.agenda.adapter.AlunosAdapter; | |
import com.example.gustavocaloi.agenda.converter.AlunoConverter; | |
import com.example.gustavocaloi.agenda.dao.AlunoDAO; | |
import com.example.gustavocaloi.agenda.modelo.Aluno; | |
import java.util.List; | |
public class ListaAlunosActivity extends AppCompatActivity { | |
private ListView listaAlunos; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_lista_alunos); | |
//Carrega os dados | |
listaAlunos = (ListView) findViewById(R.id.lista_alunos); | |
listaAlunos.setOnItemClickListener(new AdapterView.OnItemClickListener() { | |
@Override | |
public void onItemClick(AdapterView<?> lista, View item, int position, long id) { | |
Aluno aluno = (Aluno) listaAlunos.getItemAtPosition(position); | |
//Chama Formulario Aluno | |
Intent intentVaiProFormulario = new Intent(ListaAlunosActivity.this, FormularioActivity.class); | |
intentVaiProFormulario.putExtra("aluno", aluno); | |
startActivity(intentVaiProFormulario); | |
} | |
}); | |
Button novoAluno = (Button) findViewById(R.id.novo_aluno); | |
novoAluno.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
Intent intentValProFormulario = new Intent(ListaAlunosActivity.this, FormularioActivity.class); | |
startActivity(intentValProFormulario); | |
} | |
}); | |
registerForContextMenu(listaAlunos); | |
} | |
@Override | |
public boolean onCreateOptionsMenu(Menu menu) { | |
getMenuInflater().inflate(R.menu.menu_lista_alunos, menu); | |
return true; | |
} | |
@Override | |
public boolean onOptionsItemSelected(MenuItem item) { | |
switch (item.getItemId()) { | |
case R.id.menu_enviar_notas: | |
//Chama thread background | |
new EnviaAlunosTask(this).execute(); | |
break; | |
case R.id.menu_baixar_provas: | |
Intent vaiParaProvas = new Intent(this, ProvasActivity.class); | |
startActivity(vaiParaProvas); | |
break; | |
} | |
return super.onOptionsItemSelected(item); | |
} | |
@Override | |
protected void onResume() { | |
super.onResume(); | |
carregaLista(); | |
} | |
@Override | |
public void onCreateContextMenu(ContextMenu menu, View v, final ContextMenu.ContextMenuInfo menuInfo) { | |
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; | |
final Aluno aluno = (Aluno) listaAlunos.getItemAtPosition(info.position); | |
//Sub-menu LIGAR | |
MenuItem itemLigar = menu.add("Ligar"); | |
itemLigar.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { | |
@Override | |
public boolean onMenuItemClick(MenuItem item) { | |
if (ActivityCompat.checkSelfPermission(ListaAlunosActivity.this, Manifest.permission.CALL_PHONE) | |
!= PackageManager.PERMISSION_GRANTED) { | |
ActivityCompat.requestPermissions(ListaAlunosActivity.this, new String[]{Manifest.permission.CALL_PHONE}, 123); | |
} else { | |
Intent intentLigar = new Intent(Intent.ACTION_CALL); | |
intentLigar.setData(Uri.parse("tel:" + aluno.getTelefone())); | |
startActivity(intentLigar); | |
} | |
return false; | |
} | |
}); | |
//Sub-menu SMS | |
MenuItem itemSMS = menu.add("Enviar SMS"); | |
Intent intentSMS = new Intent(Intent.ACTION_VIEW) ; | |
intentSMS.setData(Uri.parse("sms:" + aluno.getTelefone())); | |
itemSMS.setIntent(intentSMS); | |
//Sub-menu MAPA | |
MenuItem itemMapa = menu.add("Visualizar no mapa"); | |
Intent intentMapa = new Intent(Intent.ACTION_VIEW); | |
intentMapa.setData(Uri.parse("geo:0,0?q=" + aluno.getEndereco())); | |
itemMapa.setIntent(intentMapa); | |
//Sub-menu Site | |
MenuItem itemSite = menu.add("Visitar site"); | |
Intent intentSite = new Intent(Intent.ACTION_VIEW); | |
String site = aluno.getSite(); | |
if (!site.startsWith("https://")) { | |
site = "https://" + site; | |
} | |
intentSite.setData(Uri.parse(site)); | |
itemSite.setIntent(intentSite); | |
//Sub-menu deletar | |
MenuItem deletar = menu.add("Excluir"); | |
deletar.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { | |
@Override | |
public boolean onMenuItemClick(MenuItem item) { | |
AlunoDAO dao = new AlunoDAO(ListaAlunosActivity.this); | |
dao.deleta(aluno); | |
dao.close(); | |
carregaLista(); | |
Toast.makeText(ListaAlunosActivity.this, "Aluno " + aluno.getNome() + " excluido", Toast.LENGTH_SHORT).show(); | |
return false; | |
} | |
}); | |
} | |
private void carregaLista() { | |
AlunoDAO dao = new AlunoDAO(this); | |
List<Aluno> alunos = dao.buscaAlunos(); | |
dao.close(); | |
//Adapter padrao do Java | |
//ArrayAdapter<Aluno> adapter = new ArrayAdapter<Aluno>(this,android.R.layout.simple_list_item_1,alunos); | |
//Adapter especializado Alunos | |
AlunosAdapter adapter = new AlunosAdapter(this, alunos); | |
listaAlunos.setAdapter(adapter); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment