mirror of
https://gitee.com/openharmony/telephony_core_service
synced 2025-02-16 23:37:45 +00:00
!2437 修复VCard单双导入导出一致性
Merge pull request !2437 from mayuecheng/vcard_release_1111
This commit is contained in:
commit
908c451bb4
@ -46,7 +46,7 @@ bool NrSsbInformation::Marshalling(Parcel &parcel) const
|
||||
if (!parcel.WriteInt32(timeAdvance_)) {
|
||||
return false;
|
||||
}
|
||||
for (int32_t i = 0; i < SCELL_SSB_LIST; ++i) {
|
||||
for (int32_t i = 0; i < SCELL_SSB_LIST && i < static_cast<int32_t>(sCellSsbList_.size()); ++i) {
|
||||
if (!parcel.WriteInt32(sCellSsbList_[i].ssbId)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -77,6 +77,7 @@ constexpr const char *VCARD_TYPE_X_SKYPE_USERNAME = "X-SKYPE-USERNAME";
|
||||
constexpr const char *VCARD_TYPE_X_QQ = "X-QQ";
|
||||
constexpr const char *VCARD_TYPE_X_NETMEETING = "X-NETMEETING";
|
||||
constexpr const char *VCARD_TYPE_X_SKYPE_PSTNNUMBER = "X-SKYPE-PSTNNUMBER";
|
||||
constexpr const char *VCARD_TYPE_X_HUANLIAO = "X-HUANLIAO";
|
||||
|
||||
constexpr const char *VCARD_TYPE_X_CLASS = "X-CLASS";
|
||||
constexpr const char *VCARD_TYPE_X_REDUCTION = "X-REDUCTION";
|
||||
@ -84,6 +85,10 @@ constexpr const char *VCARD_TYPE_X_NO = "X-NO";
|
||||
constexpr const char *VCARD_TYPE_X_DCM_HMN_MODE = "X-DCM-HMN-MODE";
|
||||
constexpr const char *VCARD_TYPE_X_OHOS_CUSTOM = "X_OHOS_CUSTOM";
|
||||
|
||||
constexpr const char *VCARD_TYPE_X_MOBILE_CUSTOM = "X-OHOS-CUSTOM";
|
||||
constexpr const char *VCARD_TYPE_X_MOBILE_RELATION = "RELATION";
|
||||
constexpr const char *VCARD_TYPE_X_MOBILE_EVENTS = "CONTACT_EVENT";
|
||||
|
||||
constexpr const char *VCARD_PARAM_TYPE = "TYPE";
|
||||
constexpr const char *VCARD_PARAM_X_IRMC_N = "X-IRMC-N";
|
||||
|
||||
@ -161,7 +166,7 @@ constexpr const int32_t CONTACTS_NOT_DELETED = 0;
|
||||
constexpr const int32_t ENCODEN_QUOTED_PRIN_MAX_LEN = 67;
|
||||
constexpr const int32_t NUM_MINUS_ONE = -1;
|
||||
constexpr const int32_t DECODE_CHAR_MAX_SIZE = 16;
|
||||
constexpr const int32_t BATCH_INSERT_MAX_SIZE = 300;
|
||||
constexpr const int32_t BATCH_INSERT_MAX_SIZE = 100;
|
||||
constexpr const int32_t INT_64_LENTGH = 19;
|
||||
|
||||
class TypeId {
|
||||
@ -251,6 +256,7 @@ public:
|
||||
static constexpr const char *CITY = "city";
|
||||
static constexpr const char *POSITION = "position";
|
||||
static constexpr const char *PHONETIC_NAME = "phonetic_name";
|
||||
static constexpr const char *BLOB_DATA = "blob_data";
|
||||
};
|
||||
|
||||
enum class EmailType {
|
||||
@ -292,17 +298,29 @@ enum class EventType {
|
||||
/**
|
||||
* Indicates an anniversary event.
|
||||
*/
|
||||
EVENT_ANNIVERSARY = 1,
|
||||
EVENT_ANNIVERSARY = 3,
|
||||
|
||||
/**
|
||||
* Indicates an event of the OTHER type.
|
||||
*/
|
||||
EVENT_OTHER = 2,
|
||||
EVENT_OTHER = 4,
|
||||
|
||||
/**
|
||||
* Indicates an birthday event.
|
||||
*/
|
||||
EVENT_BIRTHDAY = 3,
|
||||
EVENT_BIRTHDAY = 1,
|
||||
|
||||
/**
|
||||
* Indicates a lunar birthday event.
|
||||
*/
|
||||
EVENT_LUNAR_BIRTHDAY = 2,
|
||||
};
|
||||
|
||||
enum class EventHM4Type {
|
||||
EVENT_HM4_ANNIVERSARY = 1,
|
||||
EVENT_HM4_OTHER = 2,
|
||||
EVENT_HM4_BIRTHDAY = 3,
|
||||
EVENT_HM4_LUNAR_BIRTHDAY = 4,
|
||||
};
|
||||
|
||||
enum class ImType {
|
||||
@ -319,37 +337,42 @@ enum class ImType {
|
||||
/**
|
||||
* Indicates an AIM instant message.
|
||||
*/
|
||||
IM_AIM = 0,
|
||||
IM_AIM = 1,
|
||||
|
||||
/**
|
||||
* Indicates a Windows Live instant message.
|
||||
*/
|
||||
IM_MSN = 1,
|
||||
IM_MSN = 2,
|
||||
|
||||
/**
|
||||
* Indicates a Yahoo instant message.
|
||||
*/
|
||||
IM_YAHOO = 2,
|
||||
IM_YAHOO = 3,
|
||||
|
||||
/**
|
||||
* Indicates a Skype instant message.
|
||||
*/
|
||||
IM_SKYPE = 3,
|
||||
IM_SKYPE = 4,
|
||||
|
||||
/**
|
||||
* Indicates a QQ instant message.
|
||||
*/
|
||||
IM_QQ = 4,
|
||||
IM_QQ = 5,
|
||||
|
||||
/**
|
||||
* Indicates an ICQ instant message.
|
||||
*/
|
||||
IM_ICQ = 6,
|
||||
IM_ICQ = 7,
|
||||
|
||||
/**
|
||||
* Indicates a huanliao instant message.
|
||||
*/
|
||||
IM_HUANLIAO = 6,
|
||||
|
||||
/**
|
||||
* Indicates a Jabber instant message.
|
||||
*/
|
||||
IM_JABBER = 7,
|
||||
IM_JABBER = 8,
|
||||
};
|
||||
|
||||
enum class PhoneVcType {
|
||||
@ -527,7 +550,7 @@ enum class RelationType {
|
||||
/**
|
||||
* Indicates a custom label.
|
||||
*/
|
||||
CUSTOM_LABEL = 0,
|
||||
CUSTOM_LABEL = 10000,
|
||||
|
||||
/**
|
||||
* Indicates an assistant.
|
||||
|
@ -137,6 +137,8 @@ private:
|
||||
std::map<std::string, std::vector<std::string>> parasMap);
|
||||
std::vector<std::string> GetValueListFromParasMap(
|
||||
std::string rawValue, std::string propValue, std::map<std::string, std::vector<std::string>> parasMap);
|
||||
void CheckNameExist();
|
||||
std::string ConvertHarmonyEvents(std::string type, std::string value);
|
||||
|
||||
private:
|
||||
const int32_t SORT_NAME_MAX_VALUE_SIZE = 3;
|
||||
|
@ -22,7 +22,7 @@ namespace Telephony {
|
||||
int32_t VCardPhotoData::BuildValuesBucket(OHOS::DataShare::DataShareValuesBucket &valuesBucket)
|
||||
{
|
||||
valuesBucket.Put(ContactData::TYPE_ID, TypeId::PHOTO);
|
||||
valuesBucket.Put(ContactData::DETAIL_INFO, bytes_);
|
||||
valuesBucket.Put(ContactData::BLOB_DATA, std::vector<uint8_t>(bytes_.begin(), bytes_.end()));
|
||||
return TELEPHONY_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -85,6 +85,9 @@ void VCardPostalData::InitPostalData(std::vector<std::string> propValueList, int
|
||||
pobox_ = dataArray[POBOX_VALUE_INDEX];
|
||||
postalAddress_ = dataArray[POSTAL_ADDRESS_VALUE_INDEX];
|
||||
street_ = dataArray[STREET_VALUE_INDEX];
|
||||
if (!street_.empty() && postalAddress_.empty()) {
|
||||
postalAddress_ = street_;
|
||||
}
|
||||
city_ = dataArray[CITY_VALUE_INDEX];
|
||||
region_ = dataArray[REGION_VALUE_INDEX];
|
||||
postCode_ = dataArray[POSTCODE_VALUE_INDEX];
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
#include <iomanip>
|
||||
#include <set>
|
||||
#include <map>
|
||||
|
||||
#include "telephony_errors.h"
|
||||
#include "telephony_log_wrapper.h"
|
||||
@ -377,8 +378,12 @@ int32_t VCardConstructor::ConstructRelation(std::shared_ptr<VCardContact> contac
|
||||
if (relationData == nullptr) {
|
||||
continue;
|
||||
}
|
||||
AddCustomType(TypeData::RELATION,
|
||||
{ relationData->GetRelationName(), relationData->GetLabelId(), relationData->GetLabelName() });
|
||||
std::string labelId = relationData->GetLabelId();
|
||||
if (labelId == std::to_string(static_cast<int32_t>(RelationType::CUSTOM_LABEL))) {
|
||||
labelId = std::to_string(VALUE_INDEX_ZERO);
|
||||
}
|
||||
AddCustomType(VCARD_TYPE_X_MOBILE_RELATION,
|
||||
{ relationData->GetRelationName(), labelId, relationData->GetLabelName() });
|
||||
}
|
||||
return TELEPHONY_SUCCESS;
|
||||
}
|
||||
@ -387,7 +392,7 @@ void VCardConstructor::AddCustomType(const std::string &type, std::vector<std::s
|
||||
{
|
||||
bool needAddCharset = IsNeedCharsetParam(values);
|
||||
bool needAddQuotedPrintable = needQP_ && !VCardUtils::IsPrintableAscii(values);
|
||||
result_ << VCARD_TYPE_X_OHOS_CUSTOM;
|
||||
result_ << VCARD_TYPE_X_MOBILE_CUSTOM;
|
||||
AddCharsetOrQuotedPrintable(needAddCharset, needAddQuotedPrintable);
|
||||
result_ << DATA_SEPARATOR << type;
|
||||
for (auto value : values) {
|
||||
@ -532,7 +537,7 @@ void VCardConstructor::AddPostalLine(
|
||||
postalTypeStr = "X-" + labelName;
|
||||
}
|
||||
if (postalType == static_cast<int32_t>(PostalType::ADDR_OTHER)) {
|
||||
postalTypeStr = "X-" + std::string(VCARD_PARAM_ADR_EXTRA_TYPE_OTHER);
|
||||
postalTypeStr = "";
|
||||
}
|
||||
if (!postalTypeStr.empty()) {
|
||||
paramTypes.push_back(postalTypeStr);
|
||||
@ -699,23 +704,30 @@ int32_t VCardConstructor::ConstructEvents(std::shared_ptr<VCardContact> contact)
|
||||
return TELEPHONY_ERR_LOCAL_PTR_NULL;
|
||||
}
|
||||
std::string birthdayDate = "";
|
||||
std::map<int32_t, int32_t> eventMap = {
|
||||
{static_cast<int32_t>(EventType::EVENT_ANNIVERSARY), static_cast<int32_t>(EventHM4Type::EVENT_HM4_ANNIVERSARY)},
|
||||
{static_cast<int32_t>(EventType::EVENT_LUNAR_BIRTHDAY),
|
||||
static_cast<int32_t>(EventHM4Type::EVENT_HM4_LUNAR_BIRTHDAY)},
|
||||
{static_cast<int32_t>(EventType::CUSTOM_LABEL), static_cast<int32_t>(EventHM4Type::EVENT_HM4_OTHER)},
|
||||
{static_cast<int32_t>(EventType::EVENT_BIRTHDAY), static_cast<int32_t>(EventHM4Type::EVENT_HM4_BIRTHDAY)}
|
||||
};
|
||||
for (auto eventData : contact->GetEventDatas()) {
|
||||
if (eventData == nullptr) {
|
||||
continue;
|
||||
}
|
||||
int32_t labelId = static_cast<int32_t>(EventType::EVENT_OTHER);
|
||||
if (VCardUtils::IsNum(eventData->GetLabelId())) {
|
||||
labelId = std::stoi(eventData->GetLabelId());
|
||||
labelId = eventMap[std::stoi(eventData->GetLabelId())];
|
||||
}
|
||||
if (labelId == static_cast<int32_t>(EventType::EVENT_BIRTHDAY)) {
|
||||
if (labelId == static_cast<int32_t>(EventHM4Type::EVENT_HM4_BIRTHDAY)) {
|
||||
if (eventData->GetEventDate().empty()) {
|
||||
continue;
|
||||
}
|
||||
birthdayDate = eventData->GetEventDate();
|
||||
continue;
|
||||
}
|
||||
AddCustomType(
|
||||
TypeData::CONTACT_EVENT, { eventData->GetEventDate(), eventData->GetLabelId(), eventData->GetLabelName() });
|
||||
AddCustomType(VCARD_TYPE_X_MOBILE_EVENTS,
|
||||
{ eventData->GetEventDate(), std::to_string(labelId), eventData->GetLabelName() });
|
||||
}
|
||||
VCardUtils::Trim(birthdayDate);
|
||||
if (!birthdayDate.empty()) {
|
||||
@ -793,6 +805,9 @@ void VCardConstructor::AddEmailLine(
|
||||
if (emailType == static_cast<int32_t>(EmailType::CUSTOM_LABEL)) {
|
||||
postalTypeStr = "X-" + labelName;
|
||||
}
|
||||
if (emailType == static_cast<int32_t>(EmailType::EMAIL_OTHER)) {
|
||||
postalTypeStr = "";
|
||||
}
|
||||
if (!postalTypeStr.empty()) {
|
||||
paramTypes.push_back(postalTypeStr);
|
||||
}
|
||||
|
@ -98,18 +98,48 @@ void VCardContact::AddOtherDatas(std::string name, std::string rawValue, std::st
|
||||
AddImppDatas(propValue, parasMap);
|
||||
} else if (name == VCARD_TYPE_X_SIP) {
|
||||
AddSipData(rawValue, parasMap, propValue);
|
||||
} else if (name == VCARD_TYPE_X_OHOS_CUSTOM) {
|
||||
} else if (name == VCARD_TYPE_X_OHOS_CUSTOM || name == VCARD_TYPE_X_MOBILE_CUSTOM) {
|
||||
AddCustom(rawValue, parasMap, propValue);
|
||||
} else if (name == VCARD_TYPE_X_AIM || name == VCARD_TYPE_X_MSN || name == VCARD_TYPE_X_YAHOO ||
|
||||
name == VCARD_TYPE_X_ICQ || name == VCARD_TYPE_X_JABBER || name == VCARD_TYPE_X_QQ) {
|
||||
name == VCARD_TYPE_X_ICQ || name == VCARD_TYPE_X_JABBER || name == VCARD_TYPE_X_QQ ||
|
||||
name == VCARD_TYPE_X_SKYPE_USERNAME || name == VCARD_TYPE_X_HUANLIAO) {
|
||||
AddIms(name, rawValue, propValue, values, parasMap);
|
||||
} else {
|
||||
TELEPHONY_LOGI("No need to do anything");
|
||||
}
|
||||
}
|
||||
|
||||
void VCardContact::CheckNameExist()
|
||||
{
|
||||
if (nameData_ == nullptr) {
|
||||
return;
|
||||
}
|
||||
if (!nameData_->GetPrefix().empty() || !nameData_->GetFamily().empty() || !nameData_->GetMiddle().empty() ||
|
||||
!nameData_->GetSuffix().empty() || !nameData_->GetFormatted().empty() || !nameData_->GetSort().empty() ||
|
||||
!nameData_->GetFormatted().empty() || !nameData_->GetPhoneticFamily().empty() ||
|
||||
!nameData_->GetPhoneticGiven().empty() || !nameData_->GetPhoneticMiddle().empty() ||
|
||||
!nameData_->GetDisplayName().empty()) {
|
||||
return;
|
||||
}
|
||||
for (auto data : phones_) {
|
||||
if (data != nullptr && !data->GetNumber().empty()) {
|
||||
TELEPHONY_LOGI("replace phone as name: %{public}s", data->GetNumber().c_str());
|
||||
nameData_->setDispalyName(data->GetNumber());
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (auto data : emails_) {
|
||||
if (data != nullptr && !data->GetAddress().empty()) {
|
||||
TELEPHONY_LOGI("replace email as name: %{public}s", data->GetAddress().c_str());
|
||||
nameData_->setDispalyName(data->GetAddress());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int32_t VCardContact::BuildContactData(int32_t rawId, std::vector<DataShare::DataShareValuesBucket> &contactDataValues)
|
||||
{
|
||||
CheckNameExist();
|
||||
BuildValuesBucket(rawId, contactDataValues, nameData_);
|
||||
if (!birthday_->GetBirthday().empty()) {
|
||||
BuildValuesBucket(rawId, contactDataValues, birthday_);
|
||||
@ -721,13 +751,15 @@ void VCardContact::AddCustom(
|
||||
i++;
|
||||
}
|
||||
nicknames_.push_back(object);
|
||||
} else if (type == TypeData::RELATION) {
|
||||
} else if (type == TypeData::RELATION || type == VCARD_TYPE_X_MOBILE_RELATION) {
|
||||
std::shared_ptr<VCardRelationData> object = std::make_shared<VCardRelationData>();
|
||||
int i = 0;
|
||||
for (std::string value : values) {
|
||||
if (i == SIZE_ONE) {
|
||||
object->SetRelationName(value);
|
||||
} else if (i == SIZE_TWO) {
|
||||
value = value == std::to_string(VALUE_INDEX_ZERO) ?
|
||||
std::to_string(static_cast<int32_t>(RelationType::CUSTOM_LABEL)) : value;
|
||||
object->SetLabelId(value);
|
||||
} else if (i == SIZE_THREE) {
|
||||
object->SetLabelName(value);
|
||||
@ -736,13 +768,14 @@ void VCardContact::AddCustom(
|
||||
i++;
|
||||
}
|
||||
relations_.push_back(object);
|
||||
} else if (type == TypeData::CONTACT_EVENT) {
|
||||
} else if (type == TypeData::CONTACT_EVENT || type == VCARD_TYPE_X_MOBILE_EVENTS) {
|
||||
std::shared_ptr<VCardEventData> object = std::make_shared<VCardEventData>();
|
||||
int i = 0;
|
||||
for (std::string value : values) {
|
||||
if (i == SIZE_ONE) {
|
||||
object->SetEventDate(value);
|
||||
} else if (i == SIZE_TWO) {
|
||||
value = ConvertHarmonyEvents(type, value);
|
||||
object->SetLabelId(value);
|
||||
} else if (i == SIZE_THREE) {
|
||||
object->SetLabelName(value);
|
||||
@ -754,6 +787,24 @@ void VCardContact::AddCustom(
|
||||
}
|
||||
}
|
||||
|
||||
std::string VCardContact::ConvertHarmonyEvents(std::string type, std::string value)
|
||||
{
|
||||
if (type != VCARD_TYPE_X_MOBILE_EVENTS) {
|
||||
return value;
|
||||
}
|
||||
std::string convertedValue = value;
|
||||
if (value == std::to_string(static_cast<int32_t>(EventHM4Type::EVENT_HM4_ANNIVERSARY))) {
|
||||
convertedValue = std::to_string(static_cast<int32_t>(EventType::EVENT_ANNIVERSARY));
|
||||
}
|
||||
if (value == std::to_string(static_cast<int32_t>(EventHM4Type::EVENT_HM4_OTHER))) {
|
||||
convertedValue = std::to_string(static_cast<int32_t>(EventType::EVENT_OTHER));
|
||||
}
|
||||
if (value == std::to_string(static_cast<int32_t>(EventHM4Type::EVENT_HM4_LUNAR_BIRTHDAY))) {
|
||||
convertedValue = std::to_string(static_cast<int32_t>(EventType::EVENT_LUNAR_BIRTHDAY));
|
||||
}
|
||||
return convertedValue;
|
||||
}
|
||||
|
||||
void VCardContact::SetSip(
|
||||
std::string rawValue, std::map<std::string, std::vector<std::string>> parasMap, std::string propValue)
|
||||
{
|
||||
@ -896,8 +947,8 @@ void VCardContact::AddEmailsData(std::string rawValue, std::string propValue, st
|
||||
std::vector<std::string> typeCollection;
|
||||
std::map<std::string, std::vector<std::string>>::iterator it = parasMap.find(VCARD_PARAM_TYPE);
|
||||
if (it == parasMap.end()) {
|
||||
TELEPHONY_LOGE("Map does not contain this key, %{public}s", VCARD_PARAM_TYPE);
|
||||
return;
|
||||
TELEPHONY_LOGI("Map does not contain this key, %{public}s, use OTHER type", VCARD_PARAM_TYPE);
|
||||
// contains no type info will fallback to OTHER type
|
||||
} else {
|
||||
typeCollection = it->second;
|
||||
}
|
||||
@ -952,8 +1003,8 @@ void VCardContact::AddPostalDatas(std::string rawValue, std::string propValue, s
|
||||
std::vector<std::string> typeCollection;
|
||||
std::map<std::string, std::vector<std::string>>::iterator it = parasMap.find(VCARD_PARAM_TYPE);
|
||||
if (it == parasMap.end()) {
|
||||
TELEPHONY_LOGE("Map does not contain this key, %{public}s", VCARD_PARAM_TYPE);
|
||||
return;
|
||||
TELEPHONY_LOGI("Map does not contain this key, %{public}s, use OTHER type", VCARD_PARAM_TYPE);
|
||||
// contains no type info will fallback to OTHER type
|
||||
} else {
|
||||
typeCollection = it->second;
|
||||
}
|
||||
@ -984,7 +1035,7 @@ void VCardContact::AddPostalDatas(std::string rawValue, std::string propValue, s
|
||||
TELEPHONY_LOGI("No need to do anything");
|
||||
}
|
||||
}
|
||||
AddPostal(type < 0 ? static_cast<int32_t>(PostalType::ADDR_HOME) : type, values, label, isPrimary);
|
||||
AddPostal(type < 0 ? static_cast<int32_t>(PostalType::ADDR_OTHER) : type, values, label, isPrimary);
|
||||
}
|
||||
|
||||
void VCardContact::AddSoundDatas(std::string rawValue, std::string propValue, std::vector<std::string> values,
|
||||
|
@ -739,7 +739,7 @@ std::string VCardDecoderV21::GetBase64(const std::string &value, int32_t &errorC
|
||||
str += value;
|
||||
while (true) {
|
||||
std::string line = PeekLine();
|
||||
if (line.empty()) {
|
||||
if (line[0] != ' ') {
|
||||
break;
|
||||
}
|
||||
std::string nameUp = getUpperName(line);
|
||||
|
@ -196,7 +196,6 @@ void VCardManager::BatchInsertContactData(
|
||||
std::vector<DataShare::DataShareValuesBucket> contactDataValues;
|
||||
for (size_t i = 0; i < rawIds.size(); i++) {
|
||||
int32_t rawId = rawIds[i];
|
||||
TELEPHONY_LOGI("rawId %{public}d", rawId);
|
||||
std::shared_ptr<VCardContact> contact = contactList[i];
|
||||
if (contact == nullptr) {
|
||||
errorCode = TELEPHONY_ERROR;
|
||||
|
@ -37,9 +37,10 @@ namespace {
|
||||
std::map<ImType, std::string> imLabelIdToType = { { ImType::IM_AIM, VCARD_TYPE_X_AIM },
|
||||
{ ImType::IM_MSN, VCARD_TYPE_X_MSN }, { ImType::IM_YAHOO, VCARD_TYPE_X_YAHOO },
|
||||
{ ImType::IM_ICQ, VCARD_TYPE_X_ICQ }, { ImType::IM_JABBER, VCARD_TYPE_X_JABBER },
|
||||
{ ImType::IM_SKYPE, VCARD_TYPE_X_SKYPE_USERNAME }, { ImType::IM_QQ, VCARD_TYPE_X_QQ } };
|
||||
std::map<PhoneVcType, std::string> phoneLabelIdToType = { { PhoneVcType::NUM_HOME, VCARD_PARAM_TYPE_HOME },
|
||||
{ PhoneVcType::NUM_MOBILE, VCARD_PARAM_TYPE_CELL }, { PhoneVcType::NUM_WORK, VCARD_PARAM_TYPE_WORK },
|
||||
{ ImType::IM_SKYPE, VCARD_TYPE_X_SKYPE_USERNAME }, { ImType::IM_QQ, VCARD_TYPE_X_QQ },
|
||||
{ ImType::IM_HUANLIAO, VCARD_TYPE_X_HUANLIAO} };
|
||||
std::map<PhoneVcType, std::string> phoneLabelIdToType = { { PhoneVcType::NUM_HOME, VCARD_PARAM_TYPE_CELL },
|
||||
{ PhoneVcType::NUM_MOBILE, VCARD_PARAM_TYPE_HOME }, { PhoneVcType::NUM_WORK, VCARD_PARAM_TYPE_WORK },
|
||||
{ PhoneVcType::NUM_PAGER, VCARD_PARAM_TYPE_PAGER }, { PhoneVcType::NUM_OTHER, VCARD_PARAM_TYPE_VOICE },
|
||||
{ PhoneVcType::NUM_CALLBACK, VCARD_PARAM_PHONE_EXTRA_TYPE_CALLBACK },
|
||||
{ PhoneVcType::NUM_CAR, VCARD_PARAM_TYPE_CAR }, { PhoneVcType::NUM_COMPANY_MAIN, VCARD_PARAM_TYPE_WORK },
|
||||
@ -47,11 +48,11 @@ std::map<PhoneVcType, std::string> phoneLabelIdToType = { { PhoneVcType::NUM_HOM
|
||||
{ PhoneVcType::NUM_RADIO, VCARD_PARAM_PHONE_EXTRA_TYPE_RADIO }, { PhoneVcType::NUM_TELEX, VCARD_PARAM_TYPE_TLX },
|
||||
{ PhoneVcType::NUM_TTY_TDD, VCARD_PARAM_PHONE_EXTRA_TYPE_TTY_TDD },
|
||||
{ PhoneVcType::NUM_ASSISTANT, VCARD_PARAM_PHONE_EXTRA_TYPE_ASSISTANT },
|
||||
{ PhoneVcType::NUM_MMS, VCARD_PARAM_TYPE_MSG } };
|
||||
{ PhoneVcType::NUM_MMS, VCARD_PARAM_TYPE_MSG }, { PhoneVcType::NUM_MAIN, VCARD_PARAM_TYPE_PREF }};
|
||||
std::map<std::string, PhoneVcType> typeToPhoneTypeMap = { { VCARD_PARAM_TYPE_CAR, PhoneVcType::NUM_CAR },
|
||||
{ VCARD_PARAM_TYPE_PAGER, PhoneVcType::NUM_PAGER }, { VCARD_PARAM_TYPE_ISDN, PhoneVcType::NUM_ISDN },
|
||||
{ VCARD_PARAM_TYPE_HOME, PhoneVcType::NUM_HOME }, { VCARD_PARAM_TYPE_WORK, PhoneVcType::NUM_WORK },
|
||||
{ VCARD_PARAM_TYPE_CELL, PhoneVcType::NUM_MOBILE },
|
||||
{ VCARD_PARAM_TYPE_HOME, PhoneVcType::NUM_MOBILE }, { VCARD_PARAM_TYPE_WORK, PhoneVcType::NUM_WORK },
|
||||
{ VCARD_PARAM_TYPE_CELL, PhoneVcType::NUM_HOME },
|
||||
{ VCARD_PARAM_PHONE_EXTRA_TYPE_CALLBACK, PhoneVcType::NUM_CALLBACK },
|
||||
{ VCARD_PARAM_PHONE_EXTRA_TYPE_RADIO, PhoneVcType::NUM_RADIO },
|
||||
{ VCARD_PARAM_PHONE_EXTRA_TYPE_TTY_TDD, PhoneVcType::NUM_TTY_TDD },
|
||||
@ -282,6 +283,10 @@ int32_t VCardUtils::GetLabelIdFromImType(std::string type)
|
||||
return static_cast<int32_t>(ImType::IM_JABBER);
|
||||
} else if (type == VCARD_TYPE_X_QQ) {
|
||||
return static_cast<int32_t>(ImType::IM_QQ);
|
||||
} else if (type == VCARD_TYPE_X_SKYPE_USERNAME) {
|
||||
return static_cast<int32_t>(ImType::IM_SKYPE);
|
||||
} else if (type == VCARD_TYPE_X_HUANLIAO) {
|
||||
return static_cast<int32_t>(ImType::IM_HUANLIAO);
|
||||
} else {
|
||||
return static_cast<int32_t>(ImType::CUSTOM_LABEL);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user