package sg.vinova.vss.group5.non.activity; import java.util.ArrayList; import java.util.List; import sg.vinova.vss.group5.non.R; import android.app.Activity; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class sendNewPhone extends Activity{ private ContactAdapter adapter; private ContactList contactList; private ListView lv; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.send_new_phone); lv =(ListView)findViewById(R.id.listView1); contactList = this.getContacts(); adapter = new ContactAdapter(this, contactList.getContacts()); lv.setAdapter(adapter); checkButtonClick(); } public class ContactAdapter extends BaseAdapter{ private Activity activity; private LayoutInflater inflater; public List<Contact> data; public ContactAdapter (Activity a, List<Contact> d){ activity = a; data = d; inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { // TODO Auto-generated method stub return data.size(); } @Override public Contact getItem(int position) { // TODO Auto-generated method stub return data.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } private class ViewHolder { TextView code; CheckBox name; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; Log.v("ConvertView", String.valueOf(position)); if (convertView == null) { convertView = inflater.inflate(R.layout.check_list_row, null); holder = new ViewHolder(); holder.code = (TextView) convertView.findViewById(R.id.code); holder.name = (CheckBox) convertView.findViewById(R.id.checkBox1); convertView.setTag(holder); holder.name.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { CheckBox cb = (CheckBox) v ; Contact Contact = (Contact) cb.getTag(); Toast.makeText(getApplicationContext(), "Clicked on Checkbox: " + cb.getText() + " is " + cb.isChecked(), Toast.LENGTH_LONG).show(); Contact.setSelected(cb.isChecked()); } }); } else { holder = (ViewHolder) convertView.getTag(); } Contact contact = data.get(position); holder.code.setText(" (" + contact.getPhoneNumber() + ")"); holder.name.setText(contact.getDisplayName()); holder.name.setChecked(contact.isSelected()); holder.name.setTag(contact); return convertView; } } private void checkButtonClick() { Button myButton = (Button) findViewById(R.id.findSelected); myButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { List<Contact> contactList = adapter.data; for(int i=0;i<contactList.size();i++){ Contact contact = (Contact)lv.getItemAtPosition(i); if(contact.isSelected()){ String phoneNumber = contact.getPhoneNumber(); sendSMS(phoneNumber); } } } }); } public void sendSMS(String phoneNumber) { Uri smsUri = Uri.parse("smsto:" + phoneNumber.trim()); Intent intent = new Intent(Intent.ACTION_SENDTO, smsUri); intent.putExtra("sms_body", "Sample Message"); startActivity(intent); } public class ContactList{ private List<Contact> _contact = new ArrayList<Contact>(); public List<Contact> getContacts() {return _contact;} public void addContact(Contact contact) { this._contact.add(contact); } } public class Contact { private String _id; private String _displayName; private String _phone_number; private String _mail; private int _thumb; private boolean selected = false; public String getId(){ return _id; } public String getDisplayName(){ return _displayName; } public String getPhoneNumber(){ return _phone_number; } public String getMail(){ return _mail; } public void setMail(String mail){ _mail = mail; } public void setId(String id){ _id = id; } public void setDisplayName(String displayName){ _displayName = displayName; } public void setPhoneNumber(String phoneNumber){ _phone_number = phoneNumber; } public void setDisplayImage(int image){ _thumb = image; } public int getDisplayImage(){ return _thumb; } public boolean isSelected(){ return selected; } public void setSelected(boolean selected){ this.selected = selected; } } public ContactList getContacts(){ ContactList contactList = new ContactList(); Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; String[] projection = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER}; ContentResolver cr = this.getContentResolver(); String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; Cursor cur = cr.query(uri, projection, null, null, sortOrder); if(cur.getCount()>0){ String name = null; String phone; /*int thumb;*/ while(cur.moveToNext()){ if(name != cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME))){ Contact c= new Contact(); name = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); phone = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); /*thumb = cur.getInt(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_THUMBNAIL_URI));*/ c.setDisplayName(name); c.setPhoneNumber(phone); /*c.setDisplayImage(thumb);*/ contactList.addContact(c); } } cur.close(); } return contactList; } }