Java 类android.provider.ContactsContract.CommonDataKinds.Im 实例源码
项目:AndroidContacts
文件:ContactsGetter.java
private SparseArray<List<IMAddress>> getIMAddressesMap() {
SparseArray<List<IMAddress>> idImAddressMap = new SparseArray<>();
Cursor cur = getCursorFromContentType(new String[]{ID_KEY, MAIN_DATA_KEY, Im.PROTOCOL, Im.CUSTOM_PROTOCOL}, Im.CONTENT_ITEM_TYPE);
if (cur != null) {
while (cur.moveToNext()) {
int id = cur.getInt(cur.getColumnIndex(ID_KEY));
String data = cur.getString(cur.getColumnIndex(MAIN_DATA_KEY));
int labelId = cur.getInt(cur.getColumnIndex(Im.PROTOCOL));
String customLabel = cur.getString(cur.getColumnIndex(Im.CUSTOM_PROTOCOL));
IMAddress current;
if (customLabel == null)
current = new IMAddress(mCtx, data, labelId);
else
current = new IMAddress(data, customLabel);
List<IMAddress> currentWebsiteList = idImAddressMap.get(id);
if (currentWebsiteList == null) {
currentWebsiteList = new ArrayList<>();
currentWebsiteList.add(current);
idImAddressMap.put(id, currentWebsiteList);
} else currentWebsiteList.add(current);
}
cur.close();
}
return idImAddressMap;
}
项目:mc_backup
文件:ContactService.java
private void initColumnNameConstantsMap() {
if (mColumnNameConstantsMap != null) {
return;
}
mColumnNameConstantsMap = new HashMap<String, String>();
mColumnNameConstantsMap.put("name", StructuredName.DISPLAY_NAME);
mColumnNameConstantsMap.put("givenname", StructuredName.GIVEN_NAME);
mColumnNameConstantsMap.put("familyname", StructuredName.FAMILY_NAME);
mColumnNameConstantsMap.put("honorificprefix", StructuredName.PREFIX);
mColumnNameConstantsMap.put("honorificsuffix", StructuredName.SUFFIX);
mColumnNameConstantsMap.put("additionalname", CUSTOM_DATA_COLUMN);
mColumnNameConstantsMap.put("nickname", Nickname.NAME);
mColumnNameConstantsMap.put("adr", StructuredPostal.STREET);
mColumnNameConstantsMap.put("email", Email.ADDRESS);
mColumnNameConstantsMap.put("url", Website.URL);
mColumnNameConstantsMap.put("category", GroupMembership.GROUP_ROW_ID);
mColumnNameConstantsMap.put("tel", Phone.NUMBER);
mColumnNameConstantsMap.put("org", Organization.COMPANY);
mColumnNameConstantsMap.put("jobTitle", Organization.TITLE);
mColumnNameConstantsMap.put("note", Note.NOTE);
mColumnNameConstantsMap.put("impp", Im.DATA);
mColumnNameConstantsMap.put("sex", CUSTOM_DATA_COLUMN);
mColumnNameConstantsMap.put("genderidentity", CUSTOM_DATA_COLUMN);
mColumnNameConstantsMap.put("key", CUSTOM_DATA_COLUMN);
}
项目:mc_backup
文件:ContactService.java
private void initMimeTypeConstantsMap() {
if (mMimeTypeConstantsMap != null) {
return;
}
mMimeTypeConstantsMap = new HashMap<String, String>();
mMimeTypeConstantsMap.put("name", StructuredName.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("givenname", StructuredName.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("familyname", StructuredName.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("honorificprefix", StructuredName.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("honorificsuffix", StructuredName.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("additionalname", MIMETYPE_ADDITIONAL_NAME);
mMimeTypeConstantsMap.put("nickname", Nickname.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("email", Email.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("url", Website.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("category", GroupMembership.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("tel", Phone.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("org", Organization.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("jobTitle", Organization.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("note", Note.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("impp", Im.CONTENT_ITEM_TYPE);
mMimeTypeConstantsMap.put("sex", MIMETYPE_SEX);
mMimeTypeConstantsMap.put("genderidentity", MIMETYPE_GENDER_IDENTITY);
mMimeTypeConstantsMap.put("key", MIMETYPE_KEY);
}
项目:ntsync-android
文件:ContactOperations.java
public ContactOperations addIm(String data, int type, String label,
boolean isPrimary, boolean isSuperPrimary, int imProtocolType,
String customProtocolName) {
mValues.clear();
if (!TextUtils.isEmpty(data)) {
mValues.put(Im.DATA, data);
mValues.put(Im.TYPE, type);
mValues.put(Im.MIMETYPE, Im.CONTENT_ITEM_TYPE);
if (!TextUtils.isEmpty(label)) {
mValues.put(Im.LABEL, label);
}
if (isSuperPrimary) {
mValues.put(Email.IS_SUPER_PRIMARY, 1);
}
if (isPrimary) {
mValues.put(Email.IS_PRIMARY, 1);
}
mValues.put(Im.PROTOCOL, imProtocolType);
if (!TextUtils.isEmpty(customProtocolName)) {
mValues.put(Im.CUSTOM_PROTOCOL, customProtocolName);
}
addInsertOp();
}
return this;
}
项目:ntsync-android
文件:ContactManager.java
public static int getAndroidImProtocolType(ImProtocolType type) {
switch (type) {
case PROTOCOL_AIM:
return Im.PROTOCOL_AIM;
case PROTOCOL_CUSTOM:
return Im.PROTOCOL_CUSTOM;
case PROTOCOL_GOOGLE_TALK:
return Im.PROTOCOL_GOOGLE_TALK;
case PROTOCOL_ICQ:
return Im.PROTOCOL_ICQ;
case PROTOCOL_JABBER:
return Im.PROTOCOL_JABBER;
case PROTOCOL_MSN:
return Im.PROTOCOL_MSN;
case PROTOCOL_NETMEETING:
return Im.PROTOCOL_NETMEETING;
case PROTOCOL_QQ:
return Im.PROTOCOL_QQ;
case PROTOCOL_SKYPE:
return Im.PROTOCOL_SKYPE;
case PROTOCOL_YAHOO:
return Im.PROTOCOL_YAHOO;
default:
return Im.PROTOCOL_CUSTOM;
}
}
项目:ntsync-android
文件:ContactManager.java
public static ImProtocolType getImProtocolType(int androidType) {
switch (androidType) {
case Im.PROTOCOL_AIM:
return ImProtocolType.PROTOCOL_AIM;
case Im.PROTOCOL_CUSTOM:
return ImProtocolType.PROTOCOL_CUSTOM;
case Im.PROTOCOL_GOOGLE_TALK:
return ImProtocolType.PROTOCOL_GOOGLE_TALK;
case Im.PROTOCOL_ICQ:
return ImProtocolType.PROTOCOL_ICQ;
case Im.PROTOCOL_JABBER:
return ImProtocolType.PROTOCOL_JABBER;
case Im.PROTOCOL_MSN:
return ImProtocolType.PROTOCOL_MSN;
case Im.PROTOCOL_NETMEETING:
return ImProtocolType.PROTOCOL_NETMEETING;
case Im.PROTOCOL_QQ:
return ImProtocolType.PROTOCOL_QQ;
case Im.PROTOCOL_SKYPE:
return ImProtocolType.PROTOCOL_SKYPE;
case Im.PROTOCOL_YAHOO:
return ImProtocolType.PROTOCOL_YAHOO;
default:
return ImProtocolType.PROTOCOL_CUSTOM;
}
}
项目:Simplicissimus
文件:Assets.java
public Assets(Context context, long contactId) {
this.context = context;
cursor = context.getContentResolver().query(
Data.CONTENT_URI,
new String[]{Data._ID,
Data.RAW_CONTACT_ID, Data.MIMETYPE, Data.IS_PRIMARY,
Data.IS_SUPER_PRIMARY, Data.DATA_VERSION, Data.DATA1,
Data.DATA2, Data.DATA3, Data.DATA4, Data.DATA5, Data.DATA6,
Data.DATA7, Data.DATA8, Data.DATA9, Data.DATA10, Data.DATA11,
Data.DATA12, Data.DATA13, Data.DATA14, Data.DATA15, Data.SYNC1,
Data.SYNC2, Data.SYNC3, Data.SYNC4, },
Data.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + " IN ( ?, ?, ?, ?, ?, ? )",
new String[]{
String.valueOf(contactId),
Nickname.CONTENT_ITEM_TYPE,
Im.CONTENT_ITEM_TYPE,
Photo.CONTENT_ITEM_TYPE,
},
null);
//cursor.moveToFirst();
columnNames = cursor.getColumnNames();
}
项目:SafeSlinger-Android
文件:ContactAccessorApi5.java
@Override
public boolean addIM(ContactStruct contact, Cursor ims, Context ctx, boolean removeMatches) {
boolean ret = false;
String data = ims.getString(ims.getColumnIndexOrThrow(Im.DATA));
String protocol = ims.getString(ims.getColumnIndexOrThrow(Im.PROTOCOL));
String label = ims.getString(ims.getColumnIndexOrThrow(Im.LABEL));
int type = ims.getInt(ims.getColumnIndexOrThrow(Im.TYPE));
boolean primary = (ims.getInt(ims.getColumnIndexOrThrow(Im.IS_PRIMARY)) != 0);
int prot = 0;
if (!TextUtils.isEmpty(protocol) && !TextUtils.isEmpty(data)) {
String value = data;
prot = Integer.valueOf(protocol);
if (prot == Im.PROTOCOL_CUSTOM) {
return false;
} else {
label = lookupProviderNameFromId(prot).toLowerCase(Locale.US);
}
if (!TextUtils.isEmpty(label) && isImNew(contact, value, label, removeMatches)) {
contact.addContactmethod(Contacts.KIND_IM, type, value, label, primary);
ret = true;
}
}
return ret;
}
项目:SafeSlinger-Android
文件:ContactAccessorApi5.java
@Override
public String lookupProviderNameFromId(int protocol) {
switch (protocol) {
case Im.PROTOCOL_GOOGLE_TALK:
return GTALK;
case Im.PROTOCOL_AIM:
return AIM;
case Im.PROTOCOL_MSN:
return MSN;
case Im.PROTOCOL_YAHOO:
return YAHOO;
case Im.PROTOCOL_ICQ:
return ICQ;
case Im.PROTOCOL_JABBER:
return JABBER;
case Im.PROTOCOL_SKYPE:
return SKYPE;
case Im.PROTOCOL_QQ:
return QQ;
case Im.PROTOCOL_NETMEETING:
return NETMEETING;
}
return null;
}
项目:SafeSlinger-Android
文件:ContactAccessorApi5.java
@Override
public int lookupProviderIdFromName(String name) {
if (GTALK.equalsIgnoreCase(name))
return Im.PROTOCOL_GOOGLE_TALK;
else if (AIM.equalsIgnoreCase(name))
return Im.PROTOCOL_AIM;
else if (MSN.equalsIgnoreCase(name))
return Im.PROTOCOL_MSN;
else if (YAHOO.equalsIgnoreCase(name))
return Im.PROTOCOL_YAHOO;
else if (ICQ.equalsIgnoreCase(name))
return Im.PROTOCOL_ICQ;
else if (JABBER.equalsIgnoreCase(name))
return Im.PROTOCOL_JABBER;
else if (SKYPE.equalsIgnoreCase(name))
return Im.PROTOCOL_SKYPE;
else if (QQ.equalsIgnoreCase(name))
return Im.PROTOCOL_QQ;
else if (NETMEETING.equalsIgnoreCase(name))
return Im.PROTOCOL_NETMEETING;
else
return Im.PROTOCOL_CUSTOM;
}
项目:ContactMerger
文件:ImMetadata.java
/**
* Retrieve the Protocol instance for a given raw database value.
* @param id The raw database value.
* @return The corresponding Protocol instance, or null.
*/
public static Protocol byProtocolId(int id) {
switch(id) {
case Im.PROTOCOL_CUSTOM: return CUSTOM;
case Im.PROTOCOL_AIM: return AIM;
case Im.PROTOCOL_MSN: return MSN;
case Im.PROTOCOL_YAHOO: return YAHOO;
case Im.PROTOCOL_SKYPE: return SKYPE;
case Im.PROTOCOL_QQ: return QQ;
case Im.PROTOCOL_GOOGLE_TALK: return GOOGLE_TALK;
case Im.PROTOCOL_ICQ: return ICQ;
case Im.PROTOCOL_JABBER: return JABBER;
case Im.PROTOCOL_NETMEETING: return NETMEETING;
}
return null;
}
项目:alerta-fraude
文件:ContactAccessorSdk5.java
/**
* Add an im to a list of database actions to be performed
*
* @param ops the list of database actions
* @param im the item to be inserted
*/
private void insertIm(ArrayList<ContentProviderOperation> ops, JSONObject im) {
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, CommonDataKinds.Im.CONTENT_ITEM_TYPE)
.withValue(CommonDataKinds.Im.DATA, getJsonString(im, "value"))
.withValue(CommonDataKinds.Im.PROTOCOL, getImType(getJsonString(im, "type")))
.withValue(CommonDataKinds.Im.CUSTOM_PROTOCOL, getJsonString(im, "type"))
.build());
}
项目:alerta-fraude
文件:ContactAccessorSdk5.java
/**
* Converts a string from the W3C Contact API to it's Android int value.
* @param string
* @return Android int value
*/
private int getImType(String string) {
int type = CommonDataKinds.Im.PROTOCOL_CUSTOM;
if (string != null) {
String lowerType = string.toLowerCase(Locale.getDefault());
if ("aim".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_AIM;
}
else if ("google talk".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_GOOGLE_TALK;
}
else if ("icq".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_ICQ;
}
else if ("jabber".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_JABBER;
}
else if ("msn".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_MSN;
}
else if ("netmeeting".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_NETMEETING;
}
else if ("qq".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_QQ;
}
else if ("skype".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_SKYPE;
}
else if ("yahoo".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_YAHOO;
}
}
return type;
}
项目:alerta-fraude
文件:ContactAccessorSdk5.java
/**
* getPhoneType converts an Android phone type into a string
* @param type
* @return phone type as string.
*/
@SuppressWarnings("unused")
private String getImType(int type) {
String stringType;
switch (type) {
case CommonDataKinds.Im.PROTOCOL_AIM:
stringType = "AIM";
break;
case CommonDataKinds.Im.PROTOCOL_GOOGLE_TALK:
stringType = "Google Talk";
break;
case CommonDataKinds.Im.PROTOCOL_ICQ:
stringType = "ICQ";
break;
case CommonDataKinds.Im.PROTOCOL_JABBER:
stringType = "Jabber";
break;
case CommonDataKinds.Im.PROTOCOL_MSN:
stringType = "MSN";
break;
case CommonDataKinds.Im.PROTOCOL_NETMEETING:
stringType = "NetMeeting";
break;
case CommonDataKinds.Im.PROTOCOL_QQ:
stringType = "QQ";
break;
case CommonDataKinds.Im.PROTOCOL_SKYPE:
stringType = "Skype";
break;
case CommonDataKinds.Im.PROTOCOL_YAHOO:
stringType = "Yahoo";
break;
default:
stringType = "custom";
break;
}
return stringType;
}
项目:alerta-fraude
文件:ContactAccessorSdk5.java
/**
* Add an im to a list of database actions to be performed
*
* @param ops the list of database actions
* @param im the item to be inserted
*/
private void insertIm(ArrayList<ContentProviderOperation> ops, JSONObject im) {
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, CommonDataKinds.Im.CONTENT_ITEM_TYPE)
.withValue(CommonDataKinds.Im.DATA, getJsonString(im, "value"))
.withValue(CommonDataKinds.Im.PROTOCOL, getImType(getJsonString(im, "type")))
.withValue(CommonDataKinds.Im.CUSTOM_PROTOCOL, getJsonString(im, "type"))
.build());
}
项目:alerta-fraude
文件:ContactAccessorSdk5.java
/**
* Converts a string from the W3C Contact API to it's Android int value.
* @param string
* @return Android int value
*/
private int getImType(String string) {
int type = CommonDataKinds.Im.PROTOCOL_CUSTOM;
if (string != null) {
String lowerType = string.toLowerCase(Locale.getDefault());
if ("aim".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_AIM;
}
else if ("google talk".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_GOOGLE_TALK;
}
else if ("icq".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_ICQ;
}
else if ("jabber".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_JABBER;
}
else if ("msn".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_MSN;
}
else if ("netmeeting".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_NETMEETING;
}
else if ("qq".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_QQ;
}
else if ("skype".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_SKYPE;
}
else if ("yahoo".equals(lowerType)) {
return CommonDataKinds.Im.PROTOCOL_YAHOO;
}
}
return type;
}
项目:alerta-fraude
文件:ContactAccessorSdk5.java
/**
* getPhoneType converts an Android phone type into a string
* @param type
* @return phone type as string.
*/
@SuppressWarnings("unused")
private String getImType(int type) {
String stringType;
switch (type) {
case CommonDataKinds.Im.PROTOCOL_AIM:
stringType = "AIM";
break;
case CommonDataKinds.Im.PROTOCOL_GOOGLE_TALK:
stringType = "Google Talk";
break;
case CommonDataKinds.Im.PROTOCOL_ICQ:
stringType = "ICQ";
break;
case CommonDataKinds.Im.PROTOCOL_JABBER:
stringType = "Jabber";
break;
case CommonDataKinds.Im.PROTOCOL_MSN:
stringType = "MSN";
break;
case CommonDataKinds.Im.PROTOCOL_NETMEETING:
stringType = "NetMeeting";
break;
case CommonDataKinds.Im.PROTOCOL_QQ:
stringType = "QQ";
break;
case CommonDataKinds.Im.PROTOCOL_SKYPE:
stringType = "Skype";
break;
case CommonDataKinds.Im.PROTOCOL_YAHOO:
stringType = "Yahoo";
break;
default:
stringType = "custom";
break;
}
return stringType;
}
项目:react-native-paged-contacts
文件:InstantMessagingAddress.java
private String getProtocolName(String protocolId, String customProtocol) {
if (protocolId == null) {
throw new InvalidCursorTypeException();
}
switch (Integer.valueOf(protocolId)) {
case Im.PROTOCOL_AIM:
return "AIM";
case Im.PROTOCOL_MSN:
return "MSN";
case Im.PROTOCOL_YAHOO:
return "Yahoo";
case Im.PROTOCOL_SKYPE:
return "Skype";
case Im.PROTOCOL_QQ:
return "QQ";
case Im.PROTOCOL_GOOGLE_TALK:
return "Google Talk";
case Im.PROTOCOL_ICQ:
return "ICQ";
case Im.PROTOCOL_JABBER:
return "Jabber";
case Im.PROTOCOL_NETMEETING:
return "NetMeeting";
case Im.PROTOCOL_CUSTOM:
return customProtocol;
default:
return "Other";
}
}
项目:mc_backup
文件:ContactService.java
private void getImsValues(final JSONArray ims, List<ContentValues> newContactValues) throws JSONException {
if (ims == null) {
return;
}
for (int i = 0; i < ims.length(); i++) {
JSONObject im = ims.getJSONObject(i);
JSONArray imTypes = im.optJSONArray("type");
if (imTypes != null && imTypes.length() > 0) {
for (int j = 0; j < imTypes.length(); j++) {
// Translate the IM type string to an integer constant
// provided by the ContactsContract API
final String type = imTypes.getString(j);
final int typeConstant = getImType(type);
newContactValues.add(createContentValues(Im.CONTENT_ITEM_TYPE,
im.optString("value"),
typeConstant, type,
im.optBoolean("pref")));
}
} else {
newContactValues.add(createContentValues(Im.CONTENT_ITEM_TYPE,
im.optString("value"),
-1, null, im.optBoolean("pref")));
}
}
}
项目:mc_backup
文件:ContactService.java
private void initImTypesMap() {
if (mImTypesMap != null) {
return;
}
mImTypesMap = new HashMap<String, Integer>();
mImTypesMap.put("home", Im.TYPE_HOME);
mImTypesMap.put("work", Im.TYPE_WORK);
}
项目:ntsync-android
文件:ContactOperations.java
public ContactOperations updateIm(String imAddress, String label,
boolean isPrimary, boolean isSuperPrimary, int proType,
String customProName, Uri uri) {
mValues.clear();
mValues.put(Im.DATA, imAddress);
mValues.put(Im.LABEL, label);
mValues.put(Im.PROTOCOL, proType);
mValues.put(Im.CUSTOM_PROTOCOL, customProName);
mValues.put(Im.IS_PRIMARY, isPrimary ? 1 : 0);
mValues.put(Im.IS_SUPER_PRIMARY, isSuperPrimary ? 1 : 0);
addUpdateOp(uri);
return this;
}
项目:ntsync-android
文件:ContactManager.java
public static int getAndroidImType(ImType type) {
switch (type) {
case TYPE_CUSTOM:
return Im.TYPE_CUSTOM;
case TYPE_HOME:
return Im.TYPE_HOME;
case TYPE_OTHER:
return Im.TYPE_OTHER;
case TYPE_WORK:
return Im.TYPE_WORK;
default:
return Im.TYPE_OTHER;
}
}
项目:ntsync-android
文件:ContactManager.java
public static ImType getImType(int androidType) {
switch (androidType) {
case Im.TYPE_CUSTOM:
return ImType.TYPE_CUSTOM;
case Im.TYPE_HOME:
return ImType.TYPE_HOME;
case Im.TYPE_OTHER:
return ImType.TYPE_OTHER;
case Im.TYPE_WORK:
return ImType.TYPE_WORK;
default:
return ImType.TYPE_OTHER;
}
}
项目:Securecom-Messaging
文件:ContactAccessor.java
public void insertIdentityKey(Context context, List<Long> rawContactIds, IdentityKey identityKey) {
for (long rawContactId : rawContactIds) {
Log.w("ContactAccessorNewApi", "Inserting data for raw contact id: " + rawContactId);
ContentValues contentValues = new ContentValues();
contentValues.put(Data.RAW_CONTACT_ID, rawContactId);
contentValues.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
contentValues.put(Im.PROTOCOL, Im.PROTOCOL_CUSTOM);
contentValues.put(Im.CUSTOM_PROTOCOL, "TextSecure-IdentityKey");
contentValues.put(Im.DATA, Base64.encodeBytes(identityKey.serialize()));
context.getContentResolver().insert(Data.CONTENT_URI, contentValues);
}
}
项目:Securecom-Text
文件:ContactAccessor.java
public void insertIdentityKey(Context context, List<Long> rawContactIds, IdentityKey identityKey) {
for (long rawContactId : rawContactIds) {
Log.w("ContactAccessorNewApi", "Inserting data for raw contact id: " + rawContactId);
ContentValues contentValues = new ContentValues();
contentValues.put(Data.RAW_CONTACT_ID, rawContactId);
contentValues.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
contentValues.put(Im.PROTOCOL, Im.PROTOCOL_CUSTOM);
contentValues.put(Im.CUSTOM_PROTOCOL, "TextSecure-IdentityKey");
contentValues.put(Im.DATA, Base64.encodeBytes(identityKey.serialize()));
context.getContentResolver().insert(Data.CONTENT_URI, contentValues);
}
}
项目:SafeSlinger-Android
文件:ContactAccessorApi5.java
@Override
public String[] getProjIM() {
return new String[] {
Im.MIMETYPE, Im.DATA, Im.TYPE, Im.PROTOCOL, Im.CUSTOM_PROTOCOL, Im.IS_PRIMARY,
Im.LABEL
};
}
项目:SafeSlinger-Android
文件:ContactAccessorApi5.java
private boolean updateIm(ContactMethod cmethod, String rawContactId, Context ctx) {
int protocol = lookupProviderIdFromName(cmethod.label);
boolean isCustom = isCustomIm(cmethod.label);
String custom = isCustom ? cmethod.label : null;
// seek for raw contact + data + label/type = same
String[] proj = new String[] {
Im.RAW_CONTACT_ID, Data.MIMETYPE, Im.PROTOCOL, Im.CUSTOM_PROTOCOL
};
String where = null;
String[] args = null;
if (isCustom) {
where = Im.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=? AND " + Im.PROTOCOL
+ "=? AND " + Im.CUSTOM_PROTOCOL + "=?";
args = new String[] {
rawContactId, Im.CONTENT_ITEM_TYPE, String.valueOf(protocol), custom
};
} else {
where = Im.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=? AND " + Im.PROTOCOL + "=?";
args = new String[] {
rawContactId, Im.CONTENT_ITEM_TYPE, String.valueOf(protocol)
};
}
ContentValues values = valuesIm(cmethod);
values.put(Im.RAW_CONTACT_ID, rawContactId);
return updateDataRow(ctx, proj, where, args, values);
}
项目:ContactMerger
文件:ImMetadata.java
/**
* Retrieve a type instalce for a given database value, or null.
* @param id The database value.
* @return A corresponding Type instance, or null.
*/
private static Type byTypeId(int id) {
switch(id) {
case Im.TYPE_CUSTOM: return CUSTOM;
case Im.TYPE_HOME: return HOME;
case Im.TYPE_OTHER: return OTHER;
case Im.TYPE_WORK: return WORK;
}
return null;
}
项目:react-native-paged-contacts
文件:InstantMessagingAddress.java
private void fillFromCursor() {
data = getString(Im.DATA);
final String protocolId = getString(Im.PROTOCOL);
final String customProtocol = getString(Im.CUSTOM_PROTOCOL);
protocol = getProtocolName(protocolId, customProtocol);
}
项目:mc_backup
文件:ContactService.java
private int getImType(String imType) {
initImTypesMap();
Integer type = mImTypesMap.get(imType.toLowerCase());
return type != null ? type : Im.TYPE_CUSTOM;
}
项目:CucumberSync
文件:LocalAddressBook.java
protected Builder buildIMPP(Builder builder, Impp impp) {
int typeCode = 0;
String typeLabel = null;
for (ImppType type : impp.getTypes())
if (type == ImppType.HOME)
typeCode = Im.TYPE_HOME;
else if (type == ImppType.WORK || type == ImppType.BUSINESS)
typeCode = Im.TYPE_WORK;
if (typeCode == 0)
if (impp.getTypes().isEmpty())
typeCode = Im.TYPE_OTHER;
else {
typeCode = Im.TYPE_CUSTOM;
typeLabel = xNameToLabel(impp.getTypes().iterator().next().getValue());
}
int protocolCode = 0;
String protocolLabel = null;
String protocol = impp.getProtocol();
if (protocol == null) {
Log.w(TAG, "Ignoring IMPP address without protocol");
return null;
}
// SIP addresses are IMPP entries in the VCard but locally stored in SipAddress rather than Im
boolean sipAddress = false;
if (impp.isAim())
protocolCode = Im.PROTOCOL_AIM;
else if (impp.isMsn())
protocolCode = Im.PROTOCOL_MSN;
else if (impp.isYahoo())
protocolCode = Im.PROTOCOL_YAHOO;
else if (impp.isSkype())
protocolCode = Im.PROTOCOL_SKYPE;
else if (protocol.equalsIgnoreCase("qq"))
protocolCode = Im.PROTOCOL_QQ;
else if (protocol.equalsIgnoreCase("google-talk"))
protocolCode = Im.PROTOCOL_GOOGLE_TALK;
else if (impp.isIcq())
protocolCode = Im.PROTOCOL_ICQ;
else if (impp.isXmpp() || protocol.equalsIgnoreCase("jabber"))
protocolCode = Im.PROTOCOL_JABBER;
else if (protocol.equalsIgnoreCase("netmeeting"))
protocolCode = Im.PROTOCOL_NETMEETING;
else if (protocol.equalsIgnoreCase("sip"))
sipAddress = true;
else {
protocolCode = Im.PROTOCOL_CUSTOM;
protocolLabel = protocol;
}
if (sipAddress)
// save as SIP address
builder = builder
.withValue(Data.MIMETYPE, SipAddress.CONTENT_ITEM_TYPE)
.withValue(Im.DATA, impp.getHandle())
.withValue(Im.TYPE, typeCode);
else {
// save as IM address
builder = builder
.withValue(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE)
.withValue(Im.DATA, impp.getHandle())
.withValue(Im.TYPE, typeCode)
.withValue(Im.PROTOCOL, protocolCode);
if (protocolLabel != null)
builder = builder.withValue(Im.CUSTOM_PROTOCOL, protocolLabel);
}
if (typeLabel != null)
builder = builder.withValue(Im.LABEL, typeLabel);
return builder;
}
项目:SafeSlinger-Android
文件:BaseActivity.java
private boolean doCleanupOldKeyData(String[] keyNames) {
if (!SafeSlinger.doesUserHavePermission(Manifest.permission.READ_CONTACTS)) {
return true;
}
if (keyNames == null || keyNames.length == 0)
return false;
String[] args = new String[2 + keyNames.length];
StringBuilder where = new StringBuilder();
where.append(Data.MIMETYPE);
where.append(" = ? AND ");
args[0] = (Im.CONTENT_ITEM_TYPE);
where.append(Im.PROTOCOL);
where.append(" = ? AND ");
args[1] = (String.valueOf(Im.PROTOCOL_CUSTOM));
where.append("(");
for (int i = 0; i < keyNames.length; i++) {
where.append(Im.CUSTOM_PROTOCOL);
where.append(" LIKE ?");
args[2 + i] = (keyNames[i]);
if ((1 + i) < keyNames.length)
where.append(" OR ");
}
where.append(")");
String query = where.toString();
Cursor c = getContentResolver().query(Data.CONTENT_URI, null, query, args, null);
if (c != null) {
try {
int rowsOutdated = c.getCount();
if (rowsOutdated > 0) {
MyLog.d(TAG, String.format("%d deprecated IM rows found", rowsOutdated));
int deletedRows = getContentResolver().delete(Data.CONTENT_URI, query, args);
MyLog.d(TAG, String.format("%d deprecated IM rows removed", deletedRows));
}
} finally {
c.close();
}
}
return true;
}
项目:SafeSlinger-Android
文件:ContactAccessorApi5.java
@Override
public String getQueryIM() {
return Im.MIMETYPE + " = " + DatabaseUtils.sqlEscapeString("" + Im.CONTENT_ITEM_TYPE);
}
项目:SafeSlinger-Android
文件:ContactAccessorApi5.java
@Override
public boolean isCustomIm(String label) {
int protocol = lookupProviderIdFromName(label);
return (protocol == Im.PROTOCOL_CUSTOM);
}
项目:silent-text-android
文件:SystemContactRepository.java
@Override
public Intent getShowOrCreateIntent( String email ) {
Intent intent = criteria.getShowOrCreateIntent( email );
intent.putExtra( Insert.NAME, getDisplayName( email ) );
intent.putExtra( Insert.IM_PROTOCOL, Im.PROTOCOL_JABBER );
intent.putExtra( Insert.IM_HANDLE, email );
return intent;
}