DarkHobbit / doublecontact

Offline DE-independent Qt-based contact manager primarily for phonebooks editing/merging. Beta.
GNU General Public License v3.0
52 stars 11 forks source link

Неподдерживаемый тэг vCardLocation при открытии UDX #47

Closed itspec-ru closed 3 years ago

itspec-ru commented 3 years ago

При открытии UDX, выгруженного из Philips Xenium X501, выводится диалог с повторяющимися сообщениями

Неизвестный тип тега 'vCardfield': VCARDLOCATION
...
Неизвестный тип тега 'vCardfield': VCARDLOCATION
Прочитано записей: 262, ожидалось: 0

После закрытия данного сообщения файл загружается нормально. Если этот тэг не используется, то может тогда просто его игнорировать (не выводить сообщение)?

В моём файле данный тэг встречается в двух вариантах

<vCardLocation>MMI_NVRAM</vCardLocation>
<vCardLocation>MMI_SIM</vCardLocation>

Заголовок UDX-файла

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE DataExchangeInfo SYSTEM "udx.dtd">
<DataExchangeInfo>
<RecordInfo>
<VendorInfo>VendorUDX</VendorInfo>
<DeviceInfo>DeviceUDX</DeviceInfo>
<UdxVersion>1.0</UdxVersion>
<UserInfo>AgentUDX</UserInfo>
<Encoding>UTF-8</Encoding>
<Date>2020-08-15 21:12:00</Date>
<RecordOfvCard>262</RecordOfvCard>
<RecordOfvCalendar>0</RecordOfvCalendar>
<RecordOfSMS>0</RecordOfSMS>
<RecordOfMMS>0</RecordOfMMS>
<RecordOfEmail>0</RecordOfEmail>
</RecordInfo>
DarkHobbit commented 3 years ago

Лучше его добавить в программу, думаю. Судя по содержанию, он показывает, откуда сделан бэкап: с телефона или с SIM-карты. В файле он находится непосредственно внутри vCardfield, я правильно понял?

itspec-ru commented 3 years ago

Да, вот пример:

<vCardField>
<vCardLocation>MMI_NVRAM</vCardLocation>
<N>Some Name</N>
<TEL>+78001234567</TEL>
<ORGNAME>Some Company</ORGNAME>
</vCardField>
itspec-ru commented 3 years ago

Судя по содержанию, он показывает, откуда сделан бэкап: с телефона или с SIM-карты.

Нет, не откуда сделан бэкап, а где хранится конктетная запись в мобильнике: в адресной книге мобильника, или в SIM'ке. У меня в одном выгруженном файле записи с разными значениями тэга в зависимости от хранения в памяти или SIM'ке.

DarkHobbit commented 3 years ago

Хорошо, добавлю. Просто игнорить неизвестные теги - не очень хорошее решение, т.е. чревато потерей данных. К примеру, я не знаю, были ли разновидности UDX, сохраняющие информацию о мессенджерах (в vCard такое есть), и если были, то как называется тег. Но если есть, и кто-то из пользователей увидит предупреждение - есть шанс, что он сообщит мне.

DarkHobbit commented 3 years ago

Добавил vCardLocation как нередактируемый. Такие теги можно найти на вкладке "Прочее" окна редактирования контакта. Надо будет пошерстить по другим форматам, кажется, в каком-то из них тоже было указание на источник контакта. Тогда сделаю полноценное поле.