package com.sbj.sms_fire; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import com.sbj.sms_fire.adapter.ContactsAdapter; import com.sbj.sms_fire.model.ContactModel; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.provider.ContactsContract; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; public class ContactsList extends Activity { private ContactsAdapter adapter; private ArrayList<ContactModel> arrListContactModel; private StringBuilder contactList; private EditText edContacts; private List<String> lstSelectedContacts; private ListView lstView; private TextWatcher onSearchTextChange = new TextWatcher() { public void afterTextChanged(Editable paramAnonymousEditable) { } public void beforeTextChanged(CharSequence paramAnonymousCharSequence, int paramAnonymousInt1, int paramAnonymousInt2, int paramAnonymousInt3) { } public void onTextChanged(CharSequence paramAnonymousCharSequence, int paramAnonymousInt1, int paramAnonymousInt2, int paramAnonymousInt3) { ContactsList.this.adapter = new ContactsAdapter( ContactsList.this, ContactsList.this .filterText(paramAnonymousCharSequence)); ContactsList.this.lstView .setAdapter(ContactsList.this.adapter); } }; private String selctedContacts; private StringBuilder usersContactList; private ArrayList<ContactModel> filterText(CharSequence paramCharSequence) { ArrayList localArrayList = new ArrayList(); for (int i = 0;; i++) { if (i >= this.arrListContactModel.size()) return localArrayList; ContactModel localContactModel = (ContactModel) this.arrListContactModel .get(i); if (localContactModel .getContactName() .trim() .toLowerCase() .contains(paramCharSequence.toString().trim().toLowerCase())) localArrayList.add(localContactModel); } } private Cursor getContacts() { return managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[] { "_id", "display_name", "data1" }, null, (String[]) null, "display_name COLLATE LOCALIZED ASC"); } private void initializeComponents() { this.edContacts = ((EditText) findViewById(R.id.locateme_contacts_edContacts)); this.lstView = ((ListView) findViewById(R.id.locateme_contacts_lstView)); this.arrListContactModel = new ArrayList(); this.selctedContacts = getIntent().getStringExtra("SELECTED_ID"); this.usersContactList = new StringBuilder(); String[] arrayOfString = this.selctedContacts.split(","); this.lstSelectedContacts = new ArrayList(); int len = arrayOfString.length; for (int i = 0; i < len; i++) { StringTokenizer localStringTokenizer; if ((arrayOfString[i].contains("<")) && (arrayOfString[i].contains(">"))) { localStringTokenizer = new StringTokenizer(arrayOfString[i], "<>"); if (localStringTokenizer.countTokens() == 2) { localStringTokenizer.nextToken(); String str1 = localStringTokenizer.nextToken(); this.lstSelectedContacts.add(str1); } } } Cursor localCursor; this.edContacts.addTextChangedListener(this.onSearchTextChange); localCursor = getContacts(); Log.e("", "Count :" + localCursor.getCount()); localCursor.moveToFirst(); do { ContactModel localContactModel = new ContactModel(); localContactModel.setContactID(localCursor.getString(localCursor .getColumnIndex("_id"))); localContactModel.setContactName(localCursor.getString(localCursor .getColumnIndex("display_name"))); String str2 = localCursor.getString(localCursor .getColumnIndex("data1")); localContactModel.setContactNumber(str2); if (this.lstSelectedContacts.contains(str2)) localContactModel.setSelectFlag(true); else localContactModel.setSelectFlag(false); this.arrListContactModel.add(localContactModel); if (localCursor.isLast()) { localCursor.close(); this.adapter = new ContactsAdapter(this, this.arrListContactModel); this.lstView.setAdapter(this.adapter); break; } } while (localCursor.moveToNext()); } public void onButtonClick(View paramView) { ((InputMethodManager) getSystemService("input_method")) .hideSoftInputFromWindow(this.edContacts.getWindowToken(), 0); this.contactList = new StringBuilder(); for (int i = 0;; i++) { if (i >= this.arrListContactModel.size()) { Intent localIntent = new Intent(); localIntent.putExtra( "CONTACT_DATA", this.contactList.toString() + this.usersContactList.toString()); setResult(-1, localIntent); finish(); return; } ContactModel localContactModel = (ContactModel) this.arrListContactModel .get(i); if (localContactModel.isSelectFlag()) this.contactList.append(localContactModel.getContactName() + "<" + localContactModel.getContactNumber() + ">,"); } } protected void onCreate(Bundle paramBundle) { super.onCreate(paramBundle); requestWindowFeature(1); setContentView(R.layout.contacts_activity); initializeComponents(); this.edContacts .setOnEditorActionListener(new TextView.OnEditorActionListener() { public boolean onEditorAction( TextView paramAnonymousTextView, int paramAnonymousInt, KeyEvent paramAnonymousKeyEvent) { if (paramAnonymousInt == 6) ((InputMethodManager) ContactsList.this .getSystemService("input_method")) .hideSoftInputFromWindow( ContactsList.this.edContacts .getWindowToken(), 0); return false; } }); } }