Contact display phone numbers + don't reload contacts on back

This commit is contained in:
Sylvain Berfini 2012-06-22 16:28:20 +02:00
parent 78f83b9a71
commit af3d82ae8d
2 changed files with 27 additions and 12 deletions

View file

@ -107,17 +107,10 @@ public class ContactsFragment extends Fragment implements OnClickListener, OnIte
} }
@Override @Override
public void onResume() { public void onCreate(Bundle savedInstanceState) {
super.onResume(); super.onCreate(savedInstanceState);
if (LinphoneActivity.isInstanciated()) {
LinphoneActivity.instance().selectMenu(FragmentsAvailable.CONTACTS);
}
if (contactsList.getAdapter() == null) {
cursor = Compatibility.getContactsCursor(getActivity().getContentResolver()); cursor = Compatibility.getContactsCursor(getActivity().getContentResolver());
contactsList.setAdapter(new ContactsListAdapter());
contactsList.setFastScrollEnabled(true);
contacts = new ArrayList<Contact>(); contacts = new ArrayList<Contact>();
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
@ -130,6 +123,18 @@ public class ContactsFragment extends Fragment implements OnClickListener, OnIte
}).start(); }).start();
} }
@Override
public void onResume() {
super.onResume();
if (LinphoneActivity.isInstanciated()) {
LinphoneActivity.instance().selectMenu(FragmentsAvailable.CONTACTS);
}
if (contactsList.getAdapter() == null) {
contactsList.setAdapter(new ContactsListAdapter());
contactsList.setFastScrollEnabled(true);
}
contactsList.setSelectionFromTop(lastKnownPosition, 0); contactsList.setSelectionFromTop(lastKnownPosition, 0);
} }

View file

@ -14,6 +14,7 @@ import android.content.Intent;
import android.database.Cursor; import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
import android.provider.ContactsContract; import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.SipAddress; import android.provider.ContactsContract.CommonDataKinds.SipAddress;
import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Contacts.Data; import android.provider.ContactsContract.Contacts.Data;
@ -71,6 +72,7 @@ public class ApiFivePlus {
Uri uri = ContactsContract.Data.CONTENT_URI; Uri uri = ContactsContract.Data.CONTENT_URI;
String[] projection = {ContactsContract.CommonDataKinds.Im.DATA}; String[] projection = {ContactsContract.CommonDataKinds.Im.DATA};
// SIP addresses
if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) {
String selection = new StringBuilder() String selection = new StringBuilder()
.append(ContactsContract.Data.CONTACT_ID) .append(ContactsContract.Data.CONTACT_ID)
@ -106,6 +108,14 @@ public class ApiFivePlus {
c.close(); c.close();
} }
// Phone Numbers
Cursor c = cr.query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + " = " + id, null, null);
while (c.moveToNext()) {
String number = c.getString(c.getColumnIndex(Phone.NUMBER));
list.add(number);
}
c.close();
return list; return list;
} }