联系人合并去重流程
2021-11-24 16:54:27 1 举报
无
作者其他创作
大纲/内容
联系人去重主要由这个类完成
mergeDuplicateContacts
DuplicateContactsManager
对比当前重复联系人和首要联系人(要保留的)之间的差异,只合并差异,相同则不合并
mergeDuplicateContactsWithCursor
加密联系人的处理,见 DuplicateContactsManager 370-380行代码的处理
根据cursor是否有encrypt字段判断是否是加密联系人如果是保存用于合并时关系判断
mergeDataToPrimaryContactWithCursor
getContactsRelation
deleteDuplicateContacts
initDuplicateContactFastLocators
fillingLocatorsWithCursor
根据旧手机发过来的名字和号码查询相应的联系人rawContactId
填充当前locator的成员变量
通过ContentProviderOperation查询删除联系人
fillingLocatorWithContact
获取首要联系人和当前联系人的关系,根据联系人之间的关系调整定位器坐标的索引值
getRawContactIds
根据rawContactIds查询数据库,用于合并
初始化locators,按照rawContactId排序顺序,保证每个联系人对应一个locator
获取到的联系人cursor数据循环填充locators中对应下标的locator
联系人去重,包括插入和删除重复联系人
0 条评论
下一页