@Override
protected Uri getContactUri(int partitionIndex, Cursor cursor,
int contactIdColumn, int lookUpKeyColumn) {
final DirectoryPartition directory = (DirectoryPartition) getPartition(partitionIndex);
final long directoryId = directory.getDirectoryId();
if (!isExtendedDirectory(directoryId)) {
return super.getContactUri(partitionIndex, cursor, contactIdColumn, lookUpKeyColumn);
}
return Contacts.CONTENT_LOOKUP_URI.buildUpon()
.appendPath(Constants.LOOKUP_URI_ENCODED)
.appendQueryParameter(Directory.DISPLAY_NAME, directory.getLabel())
.appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
String.valueOf(directoryId))
.encodedFragment(cursor.getString(lookUpKeyColumn))
.build();
}