protected void bindNameAndViewId(final ContactListItemView view, Cursor cursor) { view.showDisplayName( cursor, ContactQuery.CONTACT_DISPLAY_NAME, getContactNameDisplayOrder()); // Note: we don't show phonetic any more (See issue 5265330) bindViewId(view, cursor, ContactQuery.CONTACT_ID); }
public Uri getFirstContactUri() { int partitionCount = getPartitionCount(); for (int i = 0; i < partitionCount; i++) { DirectoryPartition partition = (DirectoryPartition) getPartition(i); if (partition.isLoading()) { continue; } Cursor cursor = getCursor(i); if (cursor == null) { continue; } if (!cursor.moveToFirst()) { continue; } return getContactUri(i, cursor); } return null; }
/** * Builds the {@link Contacts#CONTENT_LOOKUP_URI} for the given * {@link ListView} position. */ public Uri getContactUri(int position) { int partitionIndex = getPartitionForPosition(position); Cursor item = (Cursor)getItem(position); return item != null ? getContactUri(partitionIndex, item) : null; }
int partitionCount = getPartitionCount(); for (int i = 0; i < partitionCount; i++) { DirectoryPartition partition = (DirectoryPartition) getPartition(i); if (partition.getDirectoryId() == mSelectedContactDirectoryId) { partitionIndex = i; cursor = getCursor(partitionIndex); if (cursor == null) { return -1; int position = getPositionForPartition(partitionIndex) + offset; if (hasHeader(partitionIndex)) { position++;
protected void bindPhoto(final ContactListItemView view, int partitionIndex, Cursor cursor) { if (!isPhotoSupported(partitionIndex)) { view.removePhotoView(); return; } // Set the photo, if available long photoId = 0; if (!cursor.isNull(ContactQuery.CONTACT_PHOTO_ID)) { photoId = cursor.getLong(ContactQuery.CONTACT_PHOTO_ID); } if (photoId != 0) { getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(), null); } else { final String photoUriString = cursor.getString(ContactQuery.CONTACT_PHOTO_URI); final Uri photoUri = photoUriString == null ? null : Uri.parse(photoUriString); DefaultImageRequest request = null; if (photoUri == null) { request = getDefaultImageRequestFromCursor(cursor, ContactQuery.CONTACT_DISPLAY_NAME, ContactQuery.CONTACT_LOOKUP_KEY); } getPhotoLoader().loadDirectoryPhoto(view.getPhotoView(), photoUri, false, getCircularPhotos(), request); } }
protected void bindSectionHeaderAndDivider(ContactListItemView view, int position, Cursor cursor) { view.setIsSectionHeaderEnabled(isSectionHeaderDisplayEnabled()); if (isSectionHeaderDisplayEnabled()) { Placement placement = getItemPlacementInSection(position); view.setSectionHeader(placement.sectionHeader); } else { view.setSectionHeader(null); } }
@Override public String getContactDisplayName(int position) { return ((Cursor) getItem(position)).getString(ContactQuery.CONTACT_DISPLAY_NAME); }
/** * @return Projection useful for children. */ protected final String[] getProjection(boolean forSearch) { final int sortOrder = getContactNameDisplayOrder(); if (forSearch) { if (sortOrder == ContactsPreferences.DISPLAY_ORDER_PRIMARY) { return ContactQuery.FILTER_PROJECTION_PRIMARY; } else { return ContactQuery.FILTER_PROJECTION_ALTERNATIVE; } } else { if (sortOrder == ContactsPreferences.DISPLAY_ORDER_PRIMARY) { return ContactQuery.CONTACT_PROJECTION_PRIMARY; } else { return ContactQuery.CONTACT_PROJECTION_ALTERNATIVE; } } } }
protected void configureUri(CursorLoader loader, long directoryId, ContactListFilter filter) { Uri uri = Contacts.CONTENT_URI; if (filter != null && filter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) { String lookupKey = getSelectedContactLookupKey(); if (lookupKey != null) { uri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, lookupKey); } else { uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, getSelectedContactId()); } } if (directoryId == Directory.DEFAULT && isSectionHeaderDisplayEnabled()) { uri = ContactListAdapter.buildSectionIndexerUri(uri); } // The "All accounts" filter is the same as the entire contents of Directory.DEFAULT if (filter != null && filter.filterType != ContactListFilter.FILTER_TYPE_CUSTOM && filter.filterType != ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) { final Uri.Builder builder = uri.buildUpon(); builder.appendQueryParameter( ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(Directory.DEFAULT)); if (filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) { filter.addAccountQueryParameterToUrl(builder); } uri = builder.build(); } loader.setUri(uri); }
@Override protected void bindView(View itemView, int partition, Cursor cursor, int position) { super.bindView(itemView, partition, cursor, position); final ContactListItemView view = (ContactListItemView)itemView; view.setHighlightedPrefix(isSearchMode() ? getUpperCaseQueryString() : null); if (isSelectionVisible()) { view.setActivated(isSelectedContact(partition, cursor)); } bindSectionHeaderAndDivider(view, position, cursor); if (isQuickContactEnabled()) { bindQuickContact(view, partition, cursor, ContactQuery.CONTACT_PHOTO_ID, ContactQuery.CONTACT_PHOTO_URI, ContactQuery.CONTACT_ID, ContactQuery.CONTACT_LOOKUP_KEY, ContactQuery.CONTACT_DISPLAY_NAME); } else { if (getDisplayPhotos()) { bindPhoto(view, partition, cursor); } } bindNameAndViewId(view, cursor); bindPresenceAndStatusMessage(view, cursor); if (isSearchMode()) { bindSearchSnippet(view, cursor); } else { view.setSnippet(null); } }
public boolean isEnterpriseContact(int position) { final Cursor cursor = (Cursor) getItem(position); if (cursor != null) { final long contactId = cursor.getLong(ContactQuery.CONTACT_ID); return ContactsCompat.isEnterpriseContactId(contactId); } return false; }