1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
| package exemple.com.collect;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
import exemple.com.smsdatacollect.receiver.ListAdapter;
import exemple.com.smsdatacollect.receiver.SmsData;
public class ReceiveDataActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor> {
ArrayAdapter<SmsData> adapter =null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_receive_data);
getSupportLoaderManager().initLoader(1, null, this);
final ListView listView = (ListView) findViewById(R.id.receiveSMS);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
SmsData smsData = (SmsData) adapterView.getItemAtPosition(i);
Toast.makeText(ReceiveDataActivity.this, "Ouvrir message", Toast.LENGTH_SHORT).show();
Intent readMessageIntent = new Intent(ReceiveDataActivity.this, ReadMessageActivity.class);
readMessageIntent.putExtra("value", smsData.getBody());
startActivity(readMessageIntent);
}
});
}
@Override
public Loader onCreateLoader(int arg0, Bundle arg1) {
Uri uri = Uri.parse("content://sms/inbox");
CursorLoader cursorLoader = new CursorLoader(this, uri, null, null, null, null);
return cursorLoader;
}
@Override
public void onLoadFinished(Loader arg0, Cursor cursor) {
List<SmsData> listInput = new ArrayList<SmsData>();
// Read the sms data and store it in the list
if (cursor.moveToFirst()) {
for (int i = 0; i < cursor.getCount(); i++) {
String phone = cursor.getString(cursor.getColumnIndexOrThrow("address")).toString();
String body = cursor.getString(cursor.getColumnIndexOrThrow("body")).toString();
String date = cursor.getString(cursor.getColumnIndexOrThrow("date")).toString();
if(!body.contains("<smsdata>")){
cursor.moveToNext();
continue;
}
SmsData smsdata = new SmsData();
smsdata.setNumber(phone);
smsdata.setBody(body);
smsdata.setDate(date);
listInput.add(smsdata);
cursor.moveToNext();
}
}
adapter = new ListAdapter(this, listInput);
final ListView listView = (ListView) findViewById(R.id.receiveSMS);
listView.setAdapter(adapter);
}
@Override
public void onLoaderReset(Loader arg0) {
}
//Méthode qui se déclenchera lorsque vous appuierez sur le bouton menu du téléphone
public boolean onCreateOptionsMenu(Menu menu) {
//Création d'un MenuInflater qui va permettre d'instancier un Menu XML en un objet Menu
MenuInflater inflater = getMenuInflater();
//Instanciation du menu XML spécifier en un objet Menu
inflater.inflate(R.menu.menusuppression, menu);
return true;
}
//Méthode qui se déclenchera au clic sur un item
public boolean onOptionsItemSelected(MenuItem item) {
//On regarde quel item a été cliqué grâce à son id et on déclenche une action
switch (item.getItemId()) {
case R.id.supprimer:
Toast.makeText(ReceiveDataActivity.this, "Paramètres", Toast.LENGTH_SHORT).show();
return true;
case R.id.checkbox:
Toast.makeText(ReceiveDataActivity.this, "Selectionner", Toast.LENGTH_SHORT).show();
ListView listView = (ListView) findViewById(R.id.receiveSMS);
int visibility = View.VISIBLE;
if(adapter!=null && adapter instanceof ListAdapter) {
((ListAdapter)adapter).updateView(visibility,listView);
}
return true;
}
return false;
}
} |
Partager