private void insertStructuredName(Cursor c, SQLiteStatement insert) { String name = c.getString(PeopleQuery.NAME); if (TextUtils.isEmpty(name)) { return; } long id = c.getLong(PeopleQuery._ID); insert.bindLong(StructuredNameInsert.RAW_CONTACT_ID, id); insert.bindLong(StructuredNameInsert.MIMETYPE_ID, mStructuredNameMimetypeId); bindString(insert, StructuredNameInsert.DISPLAY_NAME, name); NameSplitter.Name splitName = new NameSplitter.Name(); mNameSplitter.split(splitName, name); bindString(insert, StructuredNameInsert.PREFIX, splitName.getPrefix()); bindString(insert, StructuredNameInsert.GIVEN_NAME, splitName.getGivenNames()); bindString(insert, StructuredNameInsert.MIDDLE_NAME, splitName.getMiddleName()); bindString(insert, StructuredNameInsert.FAMILY_NAME, splitName.getFamilyName()); bindString(insert, StructuredNameInsert.SUFFIX, splitName.getSuffix()); final String joined = mNameSplitter.join(splitName, true); bindString(insert, StructuredNameInsert.DISPLAY_NAME, joined); if (mPhoneticNameAvailable) { String phoneticName = c.getString(PeopleQuery.PHONETIC_NAME); if (phoneticName != null) { int index = phoneticName.indexOf(' '); if (index == -1) { splitName.phoneticFamilyName = phoneticName; } else { splitName.phoneticFamilyName = phoneticName.substring(0, index).trim(); splitName.phoneticGivenName = phoneticName.substring(index + 1).trim(); } } } mNameSplitter.guessNameStyle(splitName); int fullNameStyle = splitName.getFullNameStyle(); insert.bindLong(StructuredNameInsert.FULL_NAME_STYLE, fullNameStyle); bindString(insert, StructuredNameInsert.PHONETIC_FAMILY_NAME, splitName.phoneticFamilyName); bindString(insert, StructuredNameInsert.PHONETIC_MIDDLE_NAME, splitName.phoneticMiddleName); bindString(insert, StructuredNameInsert.PHONETIC_GIVEN_NAME, splitName.phoneticGivenName); insert.bindLong(StructuredNameInsert.PHONETIC_NAME_STYLE, splitName.phoneticNameStyle); long dataId = insert(insert); mContactsProvider.insertNameLookupForStructuredName( id, dataId, name, mNameSplitter.getAdjustedFullNameStyle(fullNameStyle)); if (splitName.phoneticFamilyName != null || splitName.phoneticMiddleName != null || splitName.phoneticGivenName != null) { mContactsProvider.insertNameLookupForPhoneticName( id, dataId, splitName.phoneticFamilyName, splitName.phoneticMiddleName, splitName.phoneticGivenName); } }
private void insertStructuredName(Cursor c, SQLiteStatement insert) { String name = c.getString(PeopleQuery.NAME); if (TextUtils.isEmpty(name)) { return; } long id = c.getLong(PeopleQuery._ID); insert.bindLong(StructuredNameInsert.RAW_CONTACT_ID, id); insert.bindLong(StructuredNameInsert.MIMETYPE_ID, mStructuredNameMimetypeId); bindString(insert, StructuredNameInsert.DISPLAY_NAME, name); NameSplitter.Name splitName = new NameSplitter.Name(); mNameSplitter.split(splitName, name); bindString(insert, StructuredNameInsert.PREFIX, splitName.getPrefix()); bindString(insert, StructuredNameInsert.GIVEN_NAME, splitName.getGivenNames()); bindString(insert, StructuredNameInsert.MIDDLE_NAME, splitName.getMiddleName()); bindString(insert, StructuredNameInsert.FAMILY_NAME, splitName.getFamilyName()); bindString(insert, StructuredNameInsert.SUFFIX, splitName.getSuffix()); if (mPhoneticNameAvailable) { // TODO: add the ability to insert an unstructured phonetic name String phoneticName = c.getString(PeopleQuery.PHONETIC_NAME); } long dataId = insert(insert); mContactsProvider.insertNameLookupForStructuredName(id, dataId, name); }