Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package it.fontanagianpaolo.www.project;
- import android.app.Dialog;
- import android.app.ListActivity;
- import android.content.Context;
- import android.content.Intent;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.net.Uri;
- import android.os.Bundle;
- import android.telephony.PhoneStateListener;
- import android.telephony.TelephonyManager;
- import android.util.Log;
- import android.view.View;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.ListView;
- import android.widget.TextView;
- import android.widget.Toast;
- import java.util.ArrayList;
- import java.util.List;
- import it.fontanagianpaolo.www.project.database.PersonaHelper;
- import it.fontanagianpaolo.www.project.database.PersonaManager;
- import it.fontanagianpaolo.www.project.model.Persona;
- public class ListaContatti extends ListActivity {
- PersonaManager manager;
- List<Persona> lista = new ArrayList<>();
- TextView visualizza;
- private PersonaHelper mPersonaHelper;
- private static final String TAG = "MyActivity";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_lista_contatti);
- mPersonaHelper = new PersonaHelper(this);
- manager = new PersonaManager(this);
- manager.open();
- visualizzaLista();
- //stampaCose();
- manager.close();
- final ArrayAdapter<Persona> adapter = new ArrayAdapter<>(this, R.layout.row, R.id.textViewList, lista.toArray(new Persona[0]));
- setListAdapter(adapter);
- }
- protected void onListItemClick(ListView list, View v, int position, long id) {
- final Dialog dialog = new Dialog(this);
- dialog.setTitle("Continua con ");
- dialog.setContentView(R.layout.custom_dialog_layout);
- TextView view = (TextView)findViewById(R.id.textViewList);
- final Button call = (Button) dialog.findViewById(R.id.call);
- Button sms = (Button) dialog.findViewById(R.id.sms);
- //Button social = (Button) dialog.findViewById(R.id.social);
- // add PhoneStateListener
- PhoneCallListener phoneListener = new PhoneCallListener();
- TelephonyManager telephonyManager = (TelephonyManager) this
- .getSystemService(Context.TELEPHONY_SERVICE);
- telephonyManager.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
- call.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- SQLiteDatabase db = mPersonaHelper.getReadableDatabase();
- // final Cursor cursor = db.rawQuery("SELECT TELEFONO FROM contatti", null);
- final Cursor cursor = db.query("contatti",new String[]{"TELEFONO"},null,null,null,null,null);
- cursor.moveToFirst();
- final int numeroTelefono = cursor.getColumnIndex(PersonaHelper.TELEFONO);
- while (cursor.isAfterLast() == false) {
- //view.append("n" + cursor.getString(numeroTelefono));
- cursor.moveToNext();
- }
- Intent callIntent = new Intent(Intent.ACTION_CALL);
- callIntent.setData(Uri.parse("tel:" + numeroTelefono ));
- //callIntent.setData(Uri.parse("tel" + db.query("contatti", new String[]{"TELEFONO"}, null, null, null, null, null)));
- startActivity(callIntent);
- }
- });
- sms.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- try {
- Intent sendIntent = new Intent(Intent.ACTION_VIEW);
- sendIntent.putExtra("sms_body", "default content");
- sendIntent.setType("vnd.android-dir/mms-sms");
- startActivity(sendIntent);
- } catch (Exception e) {
- Toast.makeText(getApplicationContext(),
- "SMS faild, please try again later!",
- Toast.LENGTH_LONG).show();
- e.printStackTrace();
- }
- }
- });
- dialog.show();
- }
- private void stampaCose() {
- StringBuilder sb = new StringBuilder();
- for (Persona attuale : lista) {
- sb.append(attuale.toString());
- sb.append("\n");
- }
- }
- private void visualizzaLista() {
- Cursor cursor = manager.getPersoneSalvate();
- lista.clear();
- cursor.moveToFirst();
- while (!cursor.isAfterLast()) {
- String cognome = cursor.getString(cursor.getColumnIndex(PersonaHelper.COGNOME));
- String nome = cursor.getString(cursor.getColumnIndex(PersonaHelper.NOME));
- String ruolo = cursor.getString(cursor.getColumnIndex(PersonaHelper.RUOLO));
- String numero = cursor.getString(cursor.getColumnIndex(PersonaHelper.TELEFONO));
- //String mail = cursor.getString(cursor.getColumnIndex(PersonaHelper.COLUMN_MAIL));
- // String descrizione = cursor.getString(cursor.getColumnIndex(PersonaHelper.COLUMN_DESCRIZIONE));
- //lista.add(new Persona(cognome,nome, numero, mail)); // al posto dei due null mettere mail e descrizione
- lista.add(new Persona(cognome, nome, ruolo, numero));
- cursor.moveToNext();
- }
- }
- //monitor phone call activities
- private class PhoneCallListener extends PhoneStateListener {
- private boolean isPhoneCalling = false;
- String LOG_TAG = "LOGGING 123";
- @Override
- public void onCallStateChanged(int state, String incomingNumber) {
- if (TelephonyManager.CALL_STATE_RINGING == state) {
- // phone ringing
- Log.i(LOG_TAG, "RINGING, number: " + incomingNumber);
- }
- if (TelephonyManager.CALL_STATE_OFFHOOK == state) {
- // active
- Log.i(LOG_TAG, "OFFHOOK");
- isPhoneCalling = true;
- }
- if (TelephonyManager.CALL_STATE_IDLE == state) {
- // run when class initial and phone call ended,
- // need detect flag from CALL_STATE_OFFHOOK
- Log.i(LOG_TAG, "IDLE");
- if (isPhoneCalling) {
- Log.i(LOG_TAG, "restart app");
- // restart app
- Intent i = getBaseContext().getPackageManager()
- .getLaunchIntentForPackage(
- getBaseContext().getPackageName());
- i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- startActivity(i);
- isPhoneCalling = false;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement