@Override protected ContactEntryListAdapter createListAdapter() { PhoneNumberListAdapter adapter = new PhoneNumberListAdapter(getActivity()); adapter.setDisplayPhotos(true); adapter.setUseCallableUri(mUseCallableUri); return adapter; }
ContactListItemView view = (ContactListItemView)itemView; setHighlight(view, cursor); bindViewId(view, cursor, PhoneQuery.PHONE_ID); bindSectionHeaderAndDivider(view, position); if (isFirstEntry) { bindName(view, cursor); if (isQuickContactEnabled()) { bindQuickContact(view, partition, cursor, PhoneQuery.PHOTO_ID, PhoneQuery.PHOTO_URI, PhoneQuery.CONTACT_ID, PhoneQuery.LOOKUP_KEY, PhoneQuery.DISPLAY_NAME); } else { if (getDisplayPhotos()) { bindPhoto(view, partition, cursor); unbindName(view); final DirectoryPartition directory = (DirectoryPartition) getPartition(partition); bindPhoneNumber(view, cursor, directory.isDisplayNumber(), position);
@Override public void configureLoader(CursorLoader loader, long directoryId) { String query = getQueryString(); if (query == null) { query = ""; if (isExtendedDirectory(directoryId)) { final DirectoryPartition directory = getExtendedDirectoryFromId(directoryId); final String contentUri = directory.getContentUri(); if (contentUri == null) { builder.appendPath(query); builder.appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY, String.valueOf(getDirectoryResultLimit(directory))); loader.setUri(builder.build()); loader.setProjection(PhoneQuery.PROJECTION_PRIMARY); = DirectoryCompat.isRemoteDirectoryId(directoryId); final Builder builder; if (isSearchMode()) { final Uri baseUri; if (isRemoteDirectoryQuery) { if (isRemoteDirectoryQuery) { builder.appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY, String.valueOf(getDirectoryResultLimit(getDirectoryById(directoryId)))); builder = baseUri.buildUpon().appendQueryParameter( ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(Directory.DEFAULT)); if (isSectionHeaderDisplayEnabled()) {
public void changeDirectories(Cursor cursor) { super.changeDirectories(cursor); if (getDirectorySearchMode() == DirectoryListLoader.SEARCH_MODE_NONE) { return; if (getPartitionCount() == cursor.getCount() + numExtendedDirectories) { for (int i = 0, n = getPartitionCount(); i < n; i++) { final DirectoryPartition partition = (DirectoryPartition) getPartition(i); final long id = partition.getDirectoryId(); if (id > maxId) { final long id = mFirstExtendedDirectoryId + i; final DirectoryPartition directory = mExtendedDirectories.get(i); if (getPartitionByDirectoryId(id) == -1) { addPartition(insertIndex, directory); directory.setDirectoryId(id);
protected void bindPhoto(final ContactListItemView view, int partitionIndex, Cursor cursor) { if (!isPhotoSupported(partitionIndex)) { view.removePhotoView(); return; } long photoId = 0; if (!cursor.isNull(PhoneQuery.PHOTO_ID)) { photoId = cursor.getLong(PhoneQuery.PHOTO_ID); } if (photoId != 0) { getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(), null); } else { final String photoUriString = cursor.getString(PhoneQuery.PHOTO_URI); final Uri photoUri = photoUriString == null ? null : Uri.parse(photoUriString); DefaultImageRequest request = null; if (photoUri == null) { final String displayName = cursor.getString(PhoneQuery.DISPLAY_NAME); final String lookupKey = cursor.getString(PhoneQuery.LOOKUP_KEY); request = new DefaultImageRequest(displayName, lookupKey, getCircularPhotos()); } getPhotoLoader().loadDirectoryPhoto(view.getPhotoView(), photoUri, false, getCircularPhotos(), request); } }