18779efd5Sopenharmony_ci/** 28779efd5Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 38779efd5Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 48779efd5Sopenharmony_ci * you may not use this file except in compliance with the License. 58779efd5Sopenharmony_ci * You may obtain a copy of the License at 68779efd5Sopenharmony_ci * 78779efd5Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 88779efd5Sopenharmony_ci * 98779efd5Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 108779efd5Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 118779efd5Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 128779efd5Sopenharmony_ci * See the License for the specific language governing permissions and 138779efd5Sopenharmony_ci * limitations under the License. 148779efd5Sopenharmony_ci */ 158779efd5Sopenharmony_ci 168779efd5Sopenharmony_ciimport MorandiColor from '../model/bean/MorandiColor'; 178779efd5Sopenharmony_ciimport dataShare from '@ohos.data.dataShare'; 188779efd5Sopenharmony_ciimport dataSharePredicates from '@ohos.data.dataSharePredicates'; 198779efd5Sopenharmony_ciimport { ContactVo } from '../model/bean/ContactVo'; 208779efd5Sopenharmony_ciimport { ContactInfo } from '../model/bean/ContactInfo'; 218779efd5Sopenharmony_ciimport { ContactRepository } from '../../../../../feature/contact/src/main/ets/repo/ContactRepository'; 228779efd5Sopenharmony_ciimport { DataItem } from '../../../../../feature/contact/src/main/ets/entity/DataItem'; 238779efd5Sopenharmony_ciimport { DataItemType } from '../../../../../feature/contact/src/main/ets/contract/DataType'; 248779efd5Sopenharmony_ciimport { Data } from '../../../../../feature/contact/src/main/ets/contract/Data'; 258779efd5Sopenharmony_ciimport { RawContacts } from '../../../../../feature/contact/src/main/ets/contract/RawContacts'; 268779efd5Sopenharmony_ciimport { Contacts } from '../../../../../feature/contact/src/main/ets/contract/Contacts'; 278779efd5Sopenharmony_ciimport { HiLog } from '../../../../../common/src/main/ets/util/HiLog'; 288779efd5Sopenharmony_ciimport { StringUtil } from '../../../../../common/src/main/ets/util/StringUtil'; 298779efd5Sopenharmony_ciimport { ArrayUtil } from '../../../../../common/src/main/ets/util/ArrayUtil'; 308779efd5Sopenharmony_ciimport { CallLogRepository } from '../../../../../feature/call/src/main/ets/repo/CallLogRepository'; 318779efd5Sopenharmony_ciimport { PhoneNumber } from '../../../../../feature/phonenumber/src/main/ets/PhoneNumber'; 328779efd5Sopenharmony_ciimport { FavoriteBean } from './bean/FavoriteBean'; 338779efd5Sopenharmony_ciimport { CallLog } from '../../../../../feature/call/src/main/ets/entity/CallLog'; 348779efd5Sopenharmony_ciimport { SearchContactsBean } from './bean/SearchContactsBean'; 358779efd5Sopenharmony_ci 368779efd5Sopenharmony_ciconst TAG = 'ContactAbility: '; 378779efd5Sopenharmony_ciconst PROFILE_CONTACT_DATA_URI = 'datashare:///com.ohos.contactsdataability/profile/contact_data'; 388779efd5Sopenharmony_ci 398779efd5Sopenharmony_ciexport default { 408779efd5Sopenharmony_ci /** 418779efd5Sopenharmony_ci * Add Contact 428779efd5Sopenharmony_ci * 438779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 448779efd5Sopenharmony_ci * @param {Object} callBack 458779efd5Sopenharmony_ci */ 468779efd5Sopenharmony_ci addContact: async function (addParams: ContactInfo, callBack?, context?) { 478779efd5Sopenharmony_ci HiLog.i(TAG, 'Start to create a new contact.'); 488779efd5Sopenharmony_ci if (addParams == undefined || addParams == null) { 498779efd5Sopenharmony_ci HiLog.e(TAG, 'The addParams of parameter is NULL'); 508779efd5Sopenharmony_ci return ''; 518779efd5Sopenharmony_ci } 528779efd5Sopenharmony_ci let DAHelper = await dataShare.createDataShareHelper(context ? context : globalThis.context, Contacts.CONTENT_URI); 538779efd5Sopenharmony_ci let insertValues = { 548779efd5Sopenharmony_ci 'display_name': this.getDisplayName(addParams), 558779efd5Sopenharmony_ci }; 568779efd5Sopenharmony_ci DAHelper.insert( 578779efd5Sopenharmony_ci RawContacts.CONTENT_URI, 588779efd5Sopenharmony_ci insertValues 598779efd5Sopenharmony_ci ).then(data => { 608779efd5Sopenharmony_ci if (data == -1 || data == undefined) { 618779efd5Sopenharmony_ci HiLog.e(TAG, 'Data inserted failed'); 628779efd5Sopenharmony_ci return; 638779efd5Sopenharmony_ci } 648779efd5Sopenharmony_ci addParams.id = data.toString(); 658779efd5Sopenharmony_ci this.dealParam(DAHelper, addParams, false, callBack); 668779efd5Sopenharmony_ci }).catch(error => { 678779efd5Sopenharmony_ci HiLog.e(TAG, 'logMessage insert error: ' + JSON.stringify(error.message)); 688779efd5Sopenharmony_ci }); 698779efd5Sopenharmony_ci HiLog.i(TAG, 'End of creating a contact.'); 708779efd5Sopenharmony_ci }, 718779efd5Sopenharmony_ci 728779efd5Sopenharmony_ci /** 738779efd5Sopenharmony_ci * Read the name, which needs to be optimized. 748779efd5Sopenharmony_ci * Edit Contact 758779efd5Sopenharmony_ci * 768779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 778779efd5Sopenharmony_ci * @return {string} Contact Name 788779efd5Sopenharmony_ci */ 798779efd5Sopenharmony_ci getDisplayName: function (addParams: ContactInfo): String { 808779efd5Sopenharmony_ci let displayName = ''; 818779efd5Sopenharmony_ci if (addParams.display_name != undefined && addParams.display_name.length > 0) { 828779efd5Sopenharmony_ci displayName = addParams.display_name; 838779efd5Sopenharmony_ci } else if (addParams.nickname != undefined && addParams.nickname.length > 0) { 848779efd5Sopenharmony_ci displayName = addParams.nickname; 858779efd5Sopenharmony_ci } else if (addParams.hasOwnProperty('company') && addParams.company.length > 0) { 868779efd5Sopenharmony_ci displayName = addParams.company; 878779efd5Sopenharmony_ci } else if (addParams.hasOwnProperty('position') && addParams.position.length > 0) { 888779efd5Sopenharmony_ci displayName = addParams.position; 898779efd5Sopenharmony_ci } else if (addParams.hasOwnProperty('phones') && addParams.phones.length > 0) { 908779efd5Sopenharmony_ci for (let element of addParams.phones) { 918779efd5Sopenharmony_ci if (StringUtil.isEmpty(element.num)) { 928779efd5Sopenharmony_ci continue; 938779efd5Sopenharmony_ci } 948779efd5Sopenharmony_ci displayName = PhoneNumber.fromString(element.num).getNumber(); 958779efd5Sopenharmony_ci break; 968779efd5Sopenharmony_ci } 978779efd5Sopenharmony_ci } 988779efd5Sopenharmony_ci return displayName; 998779efd5Sopenharmony_ci }, 1008779efd5Sopenharmony_ci 1018779efd5Sopenharmony_ci /** 1028779efd5Sopenharmony_ci * Convert the data to the database. 1038779efd5Sopenharmony_ci * 1048779efd5Sopenharmony_ci * @param {string} DAHelper Database path 1058779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 1068779efd5Sopenharmony_ci * @param {boolean} isCard Indicates whether the information is a business card. 1078779efd5Sopenharmony_ci */ 1088779efd5Sopenharmony_ci dealParam: function (DAHelper, addParams: ContactInfo, isCard, callBack) { 1098779efd5Sopenharmony_ci let result = addParams.id; 1108779efd5Sopenharmony_ci let uri = isCard ? PROFILE_CONTACT_DATA_URI : Data.CONTENT_URI; 1118779efd5Sopenharmony_ci 1128779efd5Sopenharmony_ci this.dataContact(addParams, DAHelper, result, uri); 1138779efd5Sopenharmony_ci this.organizationContact(addParams, DAHelper, result, uri); 1148779efd5Sopenharmony_ci this.noteContact(addParams, DAHelper, result, uri); 1158779efd5Sopenharmony_ci this.phoneContact(addParams, DAHelper, result, uri); 1168779efd5Sopenharmony_ci this.emailContact(addParams, DAHelper, result, uri); 1178779efd5Sopenharmony_ci this.postalContact(addParams, DAHelper, result, uri); 1188779efd5Sopenharmony_ci this.eventContact(addParams, DAHelper, result, uri); 1198779efd5Sopenharmony_ci this.imContact(addParams, DAHelper, result, uri); 1208779efd5Sopenharmony_ci this.groupsContact(addParams, DAHelper, result, uri); 1218779efd5Sopenharmony_ci this.websiteContact(addParams, DAHelper, result, uri); 1228779efd5Sopenharmony_ci this.nickContact(addParams, DAHelper, result, uri); 1238779efd5Sopenharmony_ci this.relationsContact(addParams, DAHelper, result, uri); 1248779efd5Sopenharmony_ci 1258779efd5Sopenharmony_ci if (callBack != undefined) { 1268779efd5Sopenharmony_ci HiLog.d(TAG, 'Start the callback function.'); 1278779efd5Sopenharmony_ci callBack(addParams.id); 1288779efd5Sopenharmony_ci } 1298779efd5Sopenharmony_ci }, 1308779efd5Sopenharmony_ci 1318779efd5Sopenharmony_ci /** 1328779efd5Sopenharmony_ci * Save the contact name to the database. 1338779efd5Sopenharmony_ci * 1348779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 1358779efd5Sopenharmony_ci * @param {string} DAHelper Database path 1368779efd5Sopenharmony_ci * @param {string} result Contact ID 1378779efd5Sopenharmony_ci * @param {string} uri Database address 1388779efd5Sopenharmony_ci */ 1398779efd5Sopenharmony_ci dataContact: function (addParams, DAHelper, result, uri) { 1408779efd5Sopenharmony_ci let displayName = ''; 1418779efd5Sopenharmony_ci let updateFlag = 0; 1428779efd5Sopenharmony_ci if (addParams.display_name != undefined && addParams.display_name.length > 0) { 1438779efd5Sopenharmony_ci displayName = addParams.display_name; 1448779efd5Sopenharmony_ci } else { 1458779efd5Sopenharmony_ci updateFlag = 1; 1468779efd5Sopenharmony_ci displayName = this.getDisplayName(addParams); 1478779efd5Sopenharmony_ci } 1488779efd5Sopenharmony_ci 1498779efd5Sopenharmony_ci if (displayName.length > 0) { 1508779efd5Sopenharmony_ci let dataContact = { 1518779efd5Sopenharmony_ci 'raw_contact_id': result, 1528779efd5Sopenharmony_ci 'detail_info': displayName, 1538779efd5Sopenharmony_ci 'alpha_name': displayName, 1548779efd5Sopenharmony_ci 'phonetic_name': addParams.hasOwnProperty('phonetic_name') ? (addParams.phonetic_name) : '', 1558779efd5Sopenharmony_ci 'other_lan_last_name': addParams.hasOwnProperty('other_lan_last_name') ? (addParams.other_lan_last_name) : '', 1568779efd5Sopenharmony_ci 'other_lan_first_name': addParams.hasOwnProperty('other_lan_first_name') ? (addParams.other_lan_first_name) : '', 1578779efd5Sopenharmony_ci 'type_id': 6, 1588779efd5Sopenharmony_ci 'extend7': updateFlag 1598779efd5Sopenharmony_ci }; 1608779efd5Sopenharmony_ci DAHelper.insert( 1618779efd5Sopenharmony_ci uri, 1628779efd5Sopenharmony_ci dataContact 1638779efd5Sopenharmony_ci ).then(data => { 1648779efd5Sopenharmony_ci if (data == -1) { 1658779efd5Sopenharmony_ci HiLog.e(TAG, 'name-insert data failed!'); 1668779efd5Sopenharmony_ci } 1678779efd5Sopenharmony_ci HiLog.d(TAG, 'name-insert data success!'); 1688779efd5Sopenharmony_ci }).catch(err => { 1698779efd5Sopenharmony_ci HiLog.e(TAG, 'name-insert failed. Cause: ' + JSON.stringify(err.message)); 1708779efd5Sopenharmony_ci }); 1718779efd5Sopenharmony_ci } 1728779efd5Sopenharmony_ci }, 1738779efd5Sopenharmony_ci 1748779efd5Sopenharmony_ci /** 1758779efd5Sopenharmony_ci * Save the contact nickname information to the database. 1768779efd5Sopenharmony_ci * 1778779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 1788779efd5Sopenharmony_ci * @param {string} DAHelper Database path 1798779efd5Sopenharmony_ci * @param {number} result Contact ID 1808779efd5Sopenharmony_ci * @param {string} uri Database address 1818779efd5Sopenharmony_ci */ 1828779efd5Sopenharmony_ci nickContact: function (addParams, DAHelper, result, uri) { 1838779efd5Sopenharmony_ci if (addParams.nickname != undefined && addParams.nickname.length > 0) { 1848779efd5Sopenharmony_ci let nickContact = { 1858779efd5Sopenharmony_ci 'raw_contact_id': result, 1868779efd5Sopenharmony_ci 'detail_info': addParams.nickname, 1878779efd5Sopenharmony_ci 'type_id': 9, 1888779efd5Sopenharmony_ci }; 1898779efd5Sopenharmony_ci DAHelper.insert( 1908779efd5Sopenharmony_ci uri, 1918779efd5Sopenharmony_ci nickContact 1928779efd5Sopenharmony_ci ).then(data => { 1938779efd5Sopenharmony_ci if (data == -1) { 1948779efd5Sopenharmony_ci HiLog.e(TAG, 'nickname-insert data failed!'); 1958779efd5Sopenharmony_ci } 1968779efd5Sopenharmony_ci HiLog.d(TAG, 'nickname-insert data success!'); 1978779efd5Sopenharmony_ci }).catch(err => { 1988779efd5Sopenharmony_ci HiLog.e(TAG, 'nickname-insert failed. Cause: ' + JSON.stringify(err.message)); 1998779efd5Sopenharmony_ci }); 2008779efd5Sopenharmony_ci } 2018779efd5Sopenharmony_ci }, 2028779efd5Sopenharmony_ci /** 2038779efd5Sopenharmony_ci * Save the position information of the contact company to the database. 2048779efd5Sopenharmony_ci * 2058779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 2068779efd5Sopenharmony_ci * @param {string} DAHelper Database path 2078779efd5Sopenharmony_ci * @param {string} result Contact ID 2088779efd5Sopenharmony_ci * @param {string} uri Database address 2098779efd5Sopenharmony_ci */ 2108779efd5Sopenharmony_ci organizationContact: function (addParams, DAHelper, result, uri) { 2118779efd5Sopenharmony_ci let company = ''; 2128779efd5Sopenharmony_ci let position = ''; 2138779efd5Sopenharmony_ci if (addParams.company != undefined && addParams.company.length > 0) { 2148779efd5Sopenharmony_ci company = addParams.company; 2158779efd5Sopenharmony_ci } 2168779efd5Sopenharmony_ci if (addParams.position != undefined && addParams.position.length > 0) { 2178779efd5Sopenharmony_ci position = addParams.position; 2188779efd5Sopenharmony_ci } 2198779efd5Sopenharmony_ci if (addParams.company != undefined && addParams.company.length > 0 2208779efd5Sopenharmony_ci || addParams.position != undefined && addParams.position.length > 0) { 2218779efd5Sopenharmony_ci let organizationContact = { 2228779efd5Sopenharmony_ci 'raw_contact_id': result, 2238779efd5Sopenharmony_ci 'detail_info': company, 2248779efd5Sopenharmony_ci 'position': position, 2258779efd5Sopenharmony_ci 'type_id': 4, 2268779efd5Sopenharmony_ci }; 2278779efd5Sopenharmony_ci DAHelper.insert( 2288779efd5Sopenharmony_ci uri, 2298779efd5Sopenharmony_ci organizationContact 2308779efd5Sopenharmony_ci ).then(data => { 2318779efd5Sopenharmony_ci if (data == -1) { 2328779efd5Sopenharmony_ci HiLog.e(TAG, 'organizationContact-insert data failed!'); 2338779efd5Sopenharmony_ci } 2348779efd5Sopenharmony_ci HiLog.d(TAG, 'organizationContact-insert data success!'); 2358779efd5Sopenharmony_ci }).catch(error => { 2368779efd5Sopenharmony_ci HiLog.e(TAG, 'organizationContact-insert failed. Cause: ' + JSON.stringify(error.message)); 2378779efd5Sopenharmony_ci }); 2388779efd5Sopenharmony_ci } 2398779efd5Sopenharmony_ci }, 2408779efd5Sopenharmony_ci 2418779efd5Sopenharmony_ci /** 2428779efd5Sopenharmony_ci * Save the contact remarks to the database. 2438779efd5Sopenharmony_ci * 2448779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 2458779efd5Sopenharmony_ci * @param {string} DAHelper Database path 2468779efd5Sopenharmony_ci * @param {number} result Contact ID 2478779efd5Sopenharmony_ci * @param {string} uri Database address 2488779efd5Sopenharmony_ci */ 2498779efd5Sopenharmony_ci noteContact: function (addParams, DAHelper, result, uri) { 2508779efd5Sopenharmony_ci if (addParams.remarks != undefined && addParams.remarks.length > 0) { 2518779efd5Sopenharmony_ci let noteContact = { 2528779efd5Sopenharmony_ci 'raw_contact_id': result, 2538779efd5Sopenharmony_ci 'detail_info': addParams.remarks, 2548779efd5Sopenharmony_ci 'type_id': 10, 2558779efd5Sopenharmony_ci }; 2568779efd5Sopenharmony_ci DAHelper.insert( 2578779efd5Sopenharmony_ci uri, 2588779efd5Sopenharmony_ci noteContact 2598779efd5Sopenharmony_ci ).then(data => { 2608779efd5Sopenharmony_ci if (data == -1) { 2618779efd5Sopenharmony_ci HiLog.e(TAG, 'noteContact-insert data failed!'); 2628779efd5Sopenharmony_ci } 2638779efd5Sopenharmony_ci HiLog.d(TAG, 'noteContact-insert insert data success!'); 2648779efd5Sopenharmony_ci }).catch(error => { 2658779efd5Sopenharmony_ci HiLog.e(TAG, 'noteContact-insert failed. Cause: ' + JSON.stringify(error.message)); 2668779efd5Sopenharmony_ci }); 2678779efd5Sopenharmony_ci } 2688779efd5Sopenharmony_ci }, 2698779efd5Sopenharmony_ci 2708779efd5Sopenharmony_ci /** 2718779efd5Sopenharmony_ci * The contact mobile number information is saved to the database. 2728779efd5Sopenharmony_ci * 2738779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 2748779efd5Sopenharmony_ci * @param {string} DAHelper Database path 2758779efd5Sopenharmony_ci * @param {number} result Contact ID 2768779efd5Sopenharmony_ci * @param {string} uri Database address 2778779efd5Sopenharmony_ci */ 2788779efd5Sopenharmony_ci phoneContact: function (addParams, DAHelper, result, uri) { 2798779efd5Sopenharmony_ci if (addParams.phones != undefined && addParams.phones.length > 0) { 2808779efd5Sopenharmony_ci let index = 1; 2818779efd5Sopenharmony_ci addParams.phones.forEach(element => { 2828779efd5Sopenharmony_ci if (StringUtil.isEmpty(element.num)) { 2838779efd5Sopenharmony_ci return; 2848779efd5Sopenharmony_ci } 2858779efd5Sopenharmony_ci let phoneContact = { 2868779efd5Sopenharmony_ci 'raw_contact_id': result, 2878779efd5Sopenharmony_ci 'detail_info': element.num, 2888779efd5Sopenharmony_ci 'extend7': (index++).toString(), 2898779efd5Sopenharmony_ci 'custom_data': element.numType, 2908779efd5Sopenharmony_ci 'type_id': 5, 2918779efd5Sopenharmony_ci }; 2928779efd5Sopenharmony_ci DAHelper.insert( 2938779efd5Sopenharmony_ci uri, 2948779efd5Sopenharmony_ci phoneContact 2958779efd5Sopenharmony_ci ).then(data => { 2968779efd5Sopenharmony_ci if (data == -1) { 2978779efd5Sopenharmony_ci HiLog.e(TAG, 'phoneContact-insert data failed!'); 2988779efd5Sopenharmony_ci } 2998779efd5Sopenharmony_ci HiLog.d(TAG, 'phoneContact-insert data success!'); 3008779efd5Sopenharmony_ci }).catch(error => { 3018779efd5Sopenharmony_ci HiLog.e(TAG, 'phoneContact-insert failed. Cause: ' + JSON.stringify(error.message)); 3028779efd5Sopenharmony_ci }); 3038779efd5Sopenharmony_ci }); 3048779efd5Sopenharmony_ci } 3058779efd5Sopenharmony_ci }, 3068779efd5Sopenharmony_ci 3078779efd5Sopenharmony_ci /** 3088779efd5Sopenharmony_ci * Save the contact email information to the database. 3098779efd5Sopenharmony_ci * 3108779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 3118779efd5Sopenharmony_ci * @param {string} DAHelper Database path 3128779efd5Sopenharmony_ci * @param {number} result Contact ID 3138779efd5Sopenharmony_ci * @param {string} uri Database address 3148779efd5Sopenharmony_ci */ 3158779efd5Sopenharmony_ci emailContact: function (addParams, DAHelper, result, uri) { 3168779efd5Sopenharmony_ci if (addParams.emails != undefined && addParams.emails.length > 0) { 3178779efd5Sopenharmony_ci let index = 1; 3188779efd5Sopenharmony_ci addParams.emails.forEach(element => { 3198779efd5Sopenharmony_ci if (StringUtil.isEmpty(element.address)) { 3208779efd5Sopenharmony_ci return; 3218779efd5Sopenharmony_ci } 3228779efd5Sopenharmony_ci let emailContact = { 3238779efd5Sopenharmony_ci 'raw_contact_id': result, 3248779efd5Sopenharmony_ci 'detail_info': element.address, 3258779efd5Sopenharmony_ci 'extend7': (index++).toString(), 3268779efd5Sopenharmony_ci 'custom_data': element.emailType, 3278779efd5Sopenharmony_ci 'type_id': 1, 3288779efd5Sopenharmony_ci }; 3298779efd5Sopenharmony_ci DAHelper.insert( 3308779efd5Sopenharmony_ci uri, 3318779efd5Sopenharmony_ci emailContact 3328779efd5Sopenharmony_ci ).then(data => { 3338779efd5Sopenharmony_ci if (data == -1) { 3348779efd5Sopenharmony_ci HiLog.e(TAG, 'emailContact-insert data failed!'); 3358779efd5Sopenharmony_ci } 3368779efd5Sopenharmony_ci HiLog.d(TAG, 'emailContact-insert data success!'); 3378779efd5Sopenharmony_ci }).catch(error => { 3388779efd5Sopenharmony_ci HiLog.e(TAG, 'emailContact-insert failed. Cause: ' + JSON.stringify(error.message)); 3398779efd5Sopenharmony_ci }); 3408779efd5Sopenharmony_ci }); 3418779efd5Sopenharmony_ci } 3428779efd5Sopenharmony_ci }, 3438779efd5Sopenharmony_ci 3448779efd5Sopenharmony_ci /** 3458779efd5Sopenharmony_ci * The contact address information is saved to the database. 3468779efd5Sopenharmony_ci * 3478779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 3488779efd5Sopenharmony_ci * @param {string} DAHelper Database path 3498779efd5Sopenharmony_ci * @param {number} result Contact ID 3508779efd5Sopenharmony_ci * @param {string} uri Database address 3518779efd5Sopenharmony_ci */ 3528779efd5Sopenharmony_ci postalContact: function (addParams, DAHelper, result, uri) { 3538779efd5Sopenharmony_ci if (addParams.houses != undefined && addParams.houses.length > 0) { 3548779efd5Sopenharmony_ci let index = 1; 3558779efd5Sopenharmony_ci addParams.houses.forEach(element => { 3568779efd5Sopenharmony_ci if (StringUtil.isEmpty(element.houseName)) { 3578779efd5Sopenharmony_ci return; 3588779efd5Sopenharmony_ci } 3598779efd5Sopenharmony_ci let postalContact = { 3608779efd5Sopenharmony_ci 'raw_contact_id': result, 3618779efd5Sopenharmony_ci 'detail_info': element.houseName, 3628779efd5Sopenharmony_ci 'extend7': (index++).toString(), 3638779efd5Sopenharmony_ci 'custom_data': element.houseType, 3648779efd5Sopenharmony_ci 'type_id': 7, 3658779efd5Sopenharmony_ci }; 3668779efd5Sopenharmony_ci DAHelper.insert( 3678779efd5Sopenharmony_ci uri, 3688779efd5Sopenharmony_ci postalContact 3698779efd5Sopenharmony_ci ).then(data => { 3708779efd5Sopenharmony_ci if (data == -1) { 3718779efd5Sopenharmony_ci HiLog.e(TAG, 'postalContact-insert data failed!'); 3728779efd5Sopenharmony_ci } 3738779efd5Sopenharmony_ci HiLog.d(TAG, 'postalContact-insert data success!'); 3748779efd5Sopenharmony_ci }).catch(error => { 3758779efd5Sopenharmony_ci HiLog.e(TAG, 'postalContact-insert failed. Cause: ' + JSON.stringify(error.message)); 3768779efd5Sopenharmony_ci }); 3778779efd5Sopenharmony_ci }); 3788779efd5Sopenharmony_ci } 3798779efd5Sopenharmony_ci }, 3808779efd5Sopenharmony_ci 3818779efd5Sopenharmony_ci 3828779efd5Sopenharmony_ci /** 3838779efd5Sopenharmony_ci * Save the contact special date information to the database. 3848779efd5Sopenharmony_ci * 3858779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 3868779efd5Sopenharmony_ci * @param {string} DAHelper Database path 3878779efd5Sopenharmony_ci * @param {number} result Contact ID 3888779efd5Sopenharmony_ci * @param {string} uri Database address 3898779efd5Sopenharmony_ci */ 3908779efd5Sopenharmony_ci eventContact: function (addParams, DAHelper, result, uri) { 3918779efd5Sopenharmony_ci if (addParams.events != undefined && addParams.events.length > 0) { 3928779efd5Sopenharmony_ci let index = 1; 3938779efd5Sopenharmony_ci addParams.events.forEach(element => { 3948779efd5Sopenharmony_ci if (StringUtil.isEmpty(element.data)) { 3958779efd5Sopenharmony_ci return; 3968779efd5Sopenharmony_ci } 3978779efd5Sopenharmony_ci let eventContact = { 3988779efd5Sopenharmony_ci 'raw_contact_id': result, 3998779efd5Sopenharmony_ci 'detail_info': element.data, 4008779efd5Sopenharmony_ci 'extend7': (index++).toString(), 4018779efd5Sopenharmony_ci 'custom_data': element.eventType, 4028779efd5Sopenharmony_ci 'type_id': 11 4038779efd5Sopenharmony_ci }; 4048779efd5Sopenharmony_ci DAHelper.insert( 4058779efd5Sopenharmony_ci uri, 4068779efd5Sopenharmony_ci eventContact 4078779efd5Sopenharmony_ci ).then(data => { 4088779efd5Sopenharmony_ci if (data == -1) { 4098779efd5Sopenharmony_ci HiLog.e(TAG, 'eventContact-insert data failed!'); 4108779efd5Sopenharmony_ci } 4118779efd5Sopenharmony_ci HiLog.d(TAG, 'eventContact-insert data success!'); 4128779efd5Sopenharmony_ci }).catch(error => { 4138779efd5Sopenharmony_ci HiLog.e(TAG, 'eventContact-insert failed. Cause: ' + JSON.stringify(error.message)); 4148779efd5Sopenharmony_ci }); 4158779efd5Sopenharmony_ci }); 4168779efd5Sopenharmony_ci } 4178779efd5Sopenharmony_ci }, 4188779efd5Sopenharmony_ci 4198779efd5Sopenharmony_ci /** 4208779efd5Sopenharmony_ci * Save the contact IMA information to the database. 4218779efd5Sopenharmony_ci * 4228779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 4238779efd5Sopenharmony_ci * @param {string} DAHelper Database path 4248779efd5Sopenharmony_ci * @param {number} result Contact ID 4258779efd5Sopenharmony_ci * @param {string} uri Database address 4268779efd5Sopenharmony_ci */ 4278779efd5Sopenharmony_ci imContact: function (addParams, DAHelper, result, uri) { 4288779efd5Sopenharmony_ci if (addParams.aims != undefined && addParams.aims.length > 0) { 4298779efd5Sopenharmony_ci let index = 1; 4308779efd5Sopenharmony_ci addParams.aims.forEach(element => { 4318779efd5Sopenharmony_ci if (StringUtil.isEmpty(element.aimName)) { 4328779efd5Sopenharmony_ci return; 4338779efd5Sopenharmony_ci } 4348779efd5Sopenharmony_ci let imContact = { 4358779efd5Sopenharmony_ci 'raw_contact_id': result, 4368779efd5Sopenharmony_ci 'detail_info': element.aimName, 4378779efd5Sopenharmony_ci 'extend7': (index++).toString(), 4388779efd5Sopenharmony_ci 'custom_data': element.aimType, 4398779efd5Sopenharmony_ci 'type_id': 2, 4408779efd5Sopenharmony_ci }; 4418779efd5Sopenharmony_ci DAHelper.insert( 4428779efd5Sopenharmony_ci uri, 4438779efd5Sopenharmony_ci imContact 4448779efd5Sopenharmony_ci ).then(data => { 4458779efd5Sopenharmony_ci if (data == -1) { 4468779efd5Sopenharmony_ci HiLog.e(TAG, 'imContact-insert data failed!'); 4478779efd5Sopenharmony_ci } 4488779efd5Sopenharmony_ci HiLog.d(TAG, 'imContact-insert data success!'); 4498779efd5Sopenharmony_ci }).catch(error => { 4508779efd5Sopenharmony_ci HiLog.e(TAG, 'imContact-insert failed. Cause: ' + JSON.stringify(error.message)); 4518779efd5Sopenharmony_ci }); 4528779efd5Sopenharmony_ci }); 4538779efd5Sopenharmony_ci } 4548779efd5Sopenharmony_ci }, 4558779efd5Sopenharmony_ci 4568779efd5Sopenharmony_ci /** 4578779efd5Sopenharmony_ci * Save the contact group information to the database. 4588779efd5Sopenharmony_ci * 4598779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 4608779efd5Sopenharmony_ci * @param {string} DAHelper Database path 4618779efd5Sopenharmony_ci * @param {number} result Contact ID 4628779efd5Sopenharmony_ci * @param {string} uri Database address 4638779efd5Sopenharmony_ci */ 4648779efd5Sopenharmony_ci groupsContact: function (addParams, DAHelper, result, uri) { 4658779efd5Sopenharmony_ci if (addParams.groups != undefined && addParams.groups.length > 0) { 4668779efd5Sopenharmony_ci addParams.groups.forEach(element => { 4678779efd5Sopenharmony_ci let groupsContact = { 4688779efd5Sopenharmony_ci 'raw_contact_id': result, 4698779efd5Sopenharmony_ci 'detail_info': element.groupName, 4708779efd5Sopenharmony_ci 'extend7': element.groupId + '', 4718779efd5Sopenharmony_ci 'custom_data': element.groupType, 4728779efd5Sopenharmony_ci 'type_id': 9, 4738779efd5Sopenharmony_ci }; 4748779efd5Sopenharmony_ci DAHelper.insert( 4758779efd5Sopenharmony_ci uri, 4768779efd5Sopenharmony_ci groupsContact 4778779efd5Sopenharmony_ci ).then(data => { 4788779efd5Sopenharmony_ci if (data == -1) { 4798779efd5Sopenharmony_ci HiLog.e(TAG, 'groupsContact-insert data failed!'); 4808779efd5Sopenharmony_ci } 4818779efd5Sopenharmony_ci HiLog.d(TAG, 'groupsContact-insert data success!'); 4828779efd5Sopenharmony_ci }).catch(error => { 4838779efd5Sopenharmony_ci HiLog.e(TAG, 'groupsContact-insert failed. Cause: %s', JSON.stringify(error.message)); 4848779efd5Sopenharmony_ci }); 4858779efd5Sopenharmony_ci }); 4868779efd5Sopenharmony_ci } 4878779efd5Sopenharmony_ci }, 4888779efd5Sopenharmony_ci 4898779efd5Sopenharmony_ci /** 4908779efd5Sopenharmony_ci * Save the contact website information to the database. 4918779efd5Sopenharmony_ci * 4928779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 4938779efd5Sopenharmony_ci * @param {string} DAHelper Database path 4948779efd5Sopenharmony_ci * @param {number} result Contact ID 4958779efd5Sopenharmony_ci * @param {string} uri Database address 4968779efd5Sopenharmony_ci */ 4978779efd5Sopenharmony_ci websiteContact: function (addParams, DAHelper, result, uri) { 4988779efd5Sopenharmony_ci if (!ArrayUtil.isEmpty(addParams.websites)) { 4998779efd5Sopenharmony_ci addParams.websites.forEach(element => { 5008779efd5Sopenharmony_ci if (StringUtil.isEmpty(element)) 5018779efd5Sopenharmony_ci return; 5028779efd5Sopenharmony_ci let websiteContact = { 5038779efd5Sopenharmony_ci 'raw_contact_id': result, 5048779efd5Sopenharmony_ci 'detail_info': element, 5058779efd5Sopenharmony_ci 'type_id': 12, 5068779efd5Sopenharmony_ci }; 5078779efd5Sopenharmony_ci DAHelper.insert( 5088779efd5Sopenharmony_ci uri, 5098779efd5Sopenharmony_ci websiteContact 5108779efd5Sopenharmony_ci ).then(data => { 5118779efd5Sopenharmony_ci if (data == -1) { 5128779efd5Sopenharmony_ci HiLog.e(TAG, 'websiteContact-insert data failed!'); 5138779efd5Sopenharmony_ci } 5148779efd5Sopenharmony_ci HiLog.d(TAG, 'websiteContact-insert data success!'); 5158779efd5Sopenharmony_ci }).catch(error => { 5168779efd5Sopenharmony_ci HiLog.e(TAG, 'websiteContact-insert failed. Cause: %s', JSON.stringify(error.message)); 5178779efd5Sopenharmony_ci }); 5188779efd5Sopenharmony_ci }); 5198779efd5Sopenharmony_ci } 5208779efd5Sopenharmony_ci }, 5218779efd5Sopenharmony_ci 5228779efd5Sopenharmony_ci /** 5238779efd5Sopenharmony_ci * The relation information of the contact is saved to the database. 5248779efd5Sopenharmony_ci * 5258779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 5268779efd5Sopenharmony_ci * @param {string} DAHelper Database path 5278779efd5Sopenharmony_ci * @param {number} result Contact ID 5288779efd5Sopenharmony_ci * @param {string} uri Database address 5298779efd5Sopenharmony_ci */ 5308779efd5Sopenharmony_ci relationsContact: function (addParams, DAHelper, result, uri) { 5318779efd5Sopenharmony_ci if (!ArrayUtil.isEmpty(addParams.relationships)) { 5328779efd5Sopenharmony_ci let index = 1; 5338779efd5Sopenharmony_ci addParams.relationships.forEach(element => { 5348779efd5Sopenharmony_ci if (StringUtil.isEmpty(element.name)) { 5358779efd5Sopenharmony_ci return; 5368779efd5Sopenharmony_ci } 5378779efd5Sopenharmony_ci let relationsContact = { 5388779efd5Sopenharmony_ci 'raw_contact_id': result, 5398779efd5Sopenharmony_ci 'detail_info': element.name, 5408779efd5Sopenharmony_ci 'extend7': (index++).toString(), 5418779efd5Sopenharmony_ci 'custom_data': element.associatedType, 5428779efd5Sopenharmony_ci 'type_id': 13, 5438779efd5Sopenharmony_ci }; 5448779efd5Sopenharmony_ci DAHelper.insert( 5458779efd5Sopenharmony_ci uri, 5468779efd5Sopenharmony_ci relationsContact 5478779efd5Sopenharmony_ci ).then(data => { 5488779efd5Sopenharmony_ci if (data == -1) { 5498779efd5Sopenharmony_ci HiLog.e(TAG, 'relationsContact-insert data failed!'); 5508779efd5Sopenharmony_ci } 5518779efd5Sopenharmony_ci HiLog.d(TAG, 'relationsContact-insert data success!'); 5528779efd5Sopenharmony_ci }).catch(error => { 5538779efd5Sopenharmony_ci HiLog.e(TAG, 'relationsContact-insert failed. Cause: %s', JSON.stringify(error.message)); 5548779efd5Sopenharmony_ci }); 5558779efd5Sopenharmony_ci }); 5568779efd5Sopenharmony_ci } 5578779efd5Sopenharmony_ci }, 5588779efd5Sopenharmony_ci 5598779efd5Sopenharmony_ci /** 5608779efd5Sopenharmony_ci * Querying the Mobile Numbers of All Contacts 5618779efd5Sopenharmony_ci * 5628779efd5Sopenharmony_ci * @param {string} DAHelper 5638779efd5Sopenharmony_ci * @param {Object} callBack 5648779efd5Sopenharmony_ci */ 5658779efd5Sopenharmony_ci getAllContact: async function (actionData, callBack, context?) { 5668779efd5Sopenharmony_ci HiLog.i(TAG, 'Start to query all contacts without PhoneNumbers'); 5678779efd5Sopenharmony_ci if (context) { 5688779efd5Sopenharmony_ci ContactRepository.getInstance().init(context); 5698779efd5Sopenharmony_ci } 5708779efd5Sopenharmony_ci ContactRepository.getInstance().findAll(actionData, contactList => { 5718779efd5Sopenharmony_ci if (ArrayUtil.isEmpty(contactList)) { 5728779efd5Sopenharmony_ci HiLog.i(TAG, 'queryContacts-SelectcontactsModel queryContact resultSet is empty!'); 5738779efd5Sopenharmony_ci let emptyResult: ContactVo[] = []; 5748779efd5Sopenharmony_ci callBack(emptyResult); 5758779efd5Sopenharmony_ci return; 5768779efd5Sopenharmony_ci } 5778779efd5Sopenharmony_ci let resultList = []; 5788779efd5Sopenharmony_ci for (let contactItem of contactList) { 5798779efd5Sopenharmony_ci let jsonObj: ContactVo = new ContactVo('', '', '', '', '', '', true, '', ''); 5808779efd5Sopenharmony_ci jsonObj.contactId = contactItem.id.toString(); 5818779efd5Sopenharmony_ci jsonObj.emptyNameData = contactItem.displayName; 5828779efd5Sopenharmony_ci jsonObj.namePrefix = contactItem.sortFirstLetter; 5838779efd5Sopenharmony_ci jsonObj.nameSuffix = contactItem.photoFirstName; 5848779efd5Sopenharmony_ci jsonObj.company = contactItem.company; 5858779efd5Sopenharmony_ci jsonObj.position = contactItem.position; 5868779efd5Sopenharmony_ci jsonObj.portraitColor = MorandiColor.Color[Math.abs(parseInt(jsonObj.contactId)) % 6]; 5878779efd5Sopenharmony_ci jsonObj.show = false; 5888779efd5Sopenharmony_ci jsonObj.setShowName(); 5898779efd5Sopenharmony_ci resultList.push(jsonObj); 5908779efd5Sopenharmony_ci } 5918779efd5Sopenharmony_ci callBack(resultList); 5928779efd5Sopenharmony_ci HiLog.i(TAG, 'End of querying all contacts'); 5938779efd5Sopenharmony_ci }); 5948779efd5Sopenharmony_ci }, 5958779efd5Sopenharmony_ci 5968779efd5Sopenharmony_ci /** 5978779efd5Sopenharmony_ci * 查询所有联系人手机号 5988779efd5Sopenharmony_ci * 5998779efd5Sopenharmony_ci * @param {string} DAHelper 数据库地址 6008779efd5Sopenharmony_ci * @param {Object} callBack 回调 6018779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 6028779efd5Sopenharmony_ci */ 6038779efd5Sopenharmony_ci getAllContactWithPhoneNumbers: function (callBack, addParams, context?) { 6048779efd5Sopenharmony_ci HiLog.i(TAG, 'Start to query all contacts with PhoneNumbers'); 6058779efd5Sopenharmony_ci if (context) { 6068779efd5Sopenharmony_ci ContactRepository.getInstance().init(context); 6078779efd5Sopenharmony_ci } 6088779efd5Sopenharmony_ci ContactRepository.getInstance().findByPhoneIsNotNull(addParams.favorite, addParams.editContact, contactList => { 6098779efd5Sopenharmony_ci if (ArrayUtil.isEmpty(contactList)) { 6108779efd5Sopenharmony_ci HiLog.i(TAG, 'getAllContactWithPhoneNumbers-SelectcontactsModel queryContact resultSet is empty!'); 6118779efd5Sopenharmony_ci let emptyResult: ContactVo[] = []; 6128779efd5Sopenharmony_ci callBack(emptyResult); 6138779efd5Sopenharmony_ci return; 6148779efd5Sopenharmony_ci } 6158779efd5Sopenharmony_ci let resultList = []; 6168779efd5Sopenharmony_ci for (let contactItem of contactList) { 6178779efd5Sopenharmony_ci let jsonObj: ContactVo = new ContactVo('', '', '', '', '', '', true, '', ''); 6188779efd5Sopenharmony_ci jsonObj.contactId = contactItem.id.toString(); 6198779efd5Sopenharmony_ci jsonObj.emptyNameData = contactItem.displayName; 6208779efd5Sopenharmony_ci jsonObj.namePrefix = contactItem.sortFirstLetter; 6218779efd5Sopenharmony_ci jsonObj.nameSuffix = contactItem.photoFirstName; 6228779efd5Sopenharmony_ci jsonObj.company = contactItem.company; 6238779efd5Sopenharmony_ci jsonObj.position = contactItem.position; 6248779efd5Sopenharmony_ci jsonObj.portraitColor = MorandiColor.Color[Math.abs(parseInt(jsonObj.contactId)) % 6]; 6258779efd5Sopenharmony_ci jsonObj.show = false; 6268779efd5Sopenharmony_ci jsonObj.phoneNumbers = contactItem.phoneNumbers; 6278779efd5Sopenharmony_ci jsonObj.setShowName(); 6288779efd5Sopenharmony_ci resultList.push(jsonObj); 6298779efd5Sopenharmony_ci } 6308779efd5Sopenharmony_ci callBack(resultList); 6318779efd5Sopenharmony_ci HiLog.i(TAG, 'End of querying all contacts'); 6328779efd5Sopenharmony_ci }); 6338779efd5Sopenharmony_ci }, 6348779efd5Sopenharmony_ci 6358779efd5Sopenharmony_ci /** 6368779efd5Sopenharmony_ci * Obtain contact details. 6378779efd5Sopenharmony_ci * 6388779efd5Sopenharmony_ci * @param {Object} contactId Contact data ID. 6398779efd5Sopenharmony_ci * @param {Object} callback Contact details 6408779efd5Sopenharmony_ci */ 6418779efd5Sopenharmony_ci getContactById: function (contactId, callback, context?) { 6428779efd5Sopenharmony_ci HiLog.i(TAG, 'Start to query contact by id.'); 6438779efd5Sopenharmony_ci if (context) { 6448779efd5Sopenharmony_ci ContactRepository.getInstance().init(context); 6458779efd5Sopenharmony_ci } 6468779efd5Sopenharmony_ci ContactRepository.getInstance().findById(contactId, contact => { 6478779efd5Sopenharmony_ci let res = { 6488779efd5Sopenharmony_ci 'data': {} 6498779efd5Sopenharmony_ci }; 6508779efd5Sopenharmony_ci if (contact == undefined || ArrayUtil.isEmpty(contact.rowContacts)) { 6518779efd5Sopenharmony_ci HiLog.e(TAG, 'Query contact by id failed.'); 6528779efd5Sopenharmony_ci callback(res); 6538779efd5Sopenharmony_ci return; 6548779efd5Sopenharmony_ci } 6558779efd5Sopenharmony_ci let contactDetailInfo: any = {}; 6568779efd5Sopenharmony_ci for (let dataItem of contact.rowContacts[0].dataItems) { 6578779efd5Sopenharmony_ci this.dealResult(dataItem, contactDetailInfo); 6588779efd5Sopenharmony_ci } 6598779efd5Sopenharmony_ci contactDetailInfo.id = contact.rowContacts[0].id; 6608779efd5Sopenharmony_ci contactDetailInfo.photoFirstName = contact.rowContacts[0].values.get(RawContacts.PHOTO_FIRST_NAME); 6618779efd5Sopenharmony_ci res.data = contactDetailInfo; 6628779efd5Sopenharmony_ci callback(res); 6638779efd5Sopenharmony_ci HiLog.i(TAG, 'End of querying contacts by ID.'); 6648779efd5Sopenharmony_ci }); 6658779efd5Sopenharmony_ci }, 6668779efd5Sopenharmony_ci 6678779efd5Sopenharmony_ci /** 6688779efd5Sopenharmony_ci * Process contact details 6698779efd5Sopenharmony_ci * 6708779efd5Sopenharmony_ci * @param {Object} resultSet 6718779efd5Sopenharmony_ci * @param {Object} contactDetailInfo Contact details data 6728779efd5Sopenharmony_ci * @param {Object} actionData Contact data 6738779efd5Sopenharmony_ci */ 6748779efd5Sopenharmony_ci dealResult: function (dataItem: DataItem, contactDetailInfo) { 6758779efd5Sopenharmony_ci contactDetailInfo.favorite = dataItem.getFavorite(); 6768779efd5Sopenharmony_ci switch (dataItem.getContentTypeId()) { 6778779efd5Sopenharmony_ci case DataItemType.NAME: 6788779efd5Sopenharmony_ci contactDetailInfo.display_name = dataItem.getData(); 6798779efd5Sopenharmony_ci contactDetailInfo.nameUpdate = dataItem.getLabelId(); 6808779efd5Sopenharmony_ci break; 6818779efd5Sopenharmony_ci case DataItemType.PHONE: 6828779efd5Sopenharmony_ci let phone_element = { 6838779efd5Sopenharmony_ci 'num': dataItem.getData(), 6848779efd5Sopenharmony_ci 'id': dataItem.getLabelId(), 6858779efd5Sopenharmony_ci 'numType': dataItem.getLabelName() 6868779efd5Sopenharmony_ci }; 6878779efd5Sopenharmony_ci if (contactDetailInfo.phones) { 6888779efd5Sopenharmony_ci contactDetailInfo.phones.push(phone_element); 6898779efd5Sopenharmony_ci } else { 6908779efd5Sopenharmony_ci contactDetailInfo.phones = [phone_element]; 6918779efd5Sopenharmony_ci } 6928779efd5Sopenharmony_ci break; 6938779efd5Sopenharmony_ci case DataItemType.EMAIL: 6948779efd5Sopenharmony_ci let email_element = { 6958779efd5Sopenharmony_ci 'address': dataItem.getData(), 6968779efd5Sopenharmony_ci 'id': dataItem.getLabelId(), 6978779efd5Sopenharmony_ci 'emailType': dataItem.getLabelName() 6988779efd5Sopenharmony_ci }; 6998779efd5Sopenharmony_ci if (contactDetailInfo.emails) { 7008779efd5Sopenharmony_ci contactDetailInfo.emails.push(email_element); 7018779efd5Sopenharmony_ci } else { 7028779efd5Sopenharmony_ci contactDetailInfo.emails = [email_element]; 7038779efd5Sopenharmony_ci } 7048779efd5Sopenharmony_ci break; 7058779efd5Sopenharmony_ci case DataItemType.NOTE: 7068779efd5Sopenharmony_ci contactDetailInfo.remarks = dataItem.getData(); 7078779efd5Sopenharmony_ci break; 7088779efd5Sopenharmony_ci case DataItemType.ORGANIZATION: 7098779efd5Sopenharmony_ci contactDetailInfo.position = dataItem.values.get(Data.POSITION); 7108779efd5Sopenharmony_ci contactDetailInfo.company = dataItem.getData(); 7118779efd5Sopenharmony_ci break; 7128779efd5Sopenharmony_ci case DataItemType.IM: 7138779efd5Sopenharmony_ci let aim_element = { 7148779efd5Sopenharmony_ci 'aimName': dataItem.getData(), 7158779efd5Sopenharmony_ci 'aimId': dataItem.getLabelId(), 7168779efd5Sopenharmony_ci 'aimType': dataItem.getLabelName() 7178779efd5Sopenharmony_ci }; 7188779efd5Sopenharmony_ci if (contactDetailInfo.aims) { 7198779efd5Sopenharmony_ci contactDetailInfo.aims.push(aim_element); 7208779efd5Sopenharmony_ci } else { 7218779efd5Sopenharmony_ci contactDetailInfo.aims = [aim_element]; 7228779efd5Sopenharmony_ci } 7238779efd5Sopenharmony_ci break; 7248779efd5Sopenharmony_ci case DataItemType.STRUCTURED_POSTAL: 7258779efd5Sopenharmony_ci let house_element = { 7268779efd5Sopenharmony_ci 'houseName': dataItem.getData(), 7278779efd5Sopenharmony_ci 'houseId': dataItem.getLabelId(), 7288779efd5Sopenharmony_ci 'houseType': dataItem.getLabelName() 7298779efd5Sopenharmony_ci }; 7308779efd5Sopenharmony_ci if (contactDetailInfo.houses) { 7318779efd5Sopenharmony_ci contactDetailInfo.houses.push(house_element); 7328779efd5Sopenharmony_ci } else { 7338779efd5Sopenharmony_ci contactDetailInfo.houses = [house_element]; 7348779efd5Sopenharmony_ci } 7358779efd5Sopenharmony_ci break; 7368779efd5Sopenharmony_ci case DataItemType.GROUP_MEMBERSHIP: 7378779efd5Sopenharmony_ci contactDetailInfo.nickname = dataItem.getData(); 7388779efd5Sopenharmony_ci break; 7398779efd5Sopenharmony_ci case DataItemType.EVENT: 7408779efd5Sopenharmony_ci let event_element = { 7418779efd5Sopenharmony_ci 'id': dataItem.getLabelId(), 7428779efd5Sopenharmony_ci 'data': dataItem.getData(), 7438779efd5Sopenharmony_ci 'eventType': dataItem.getLabelName(), 7448779efd5Sopenharmony_ci 'eventName': '' 7458779efd5Sopenharmony_ci }; 7468779efd5Sopenharmony_ci if (contactDetailInfo.events) { 7478779efd5Sopenharmony_ci contactDetailInfo.events.push(event_element); 7488779efd5Sopenharmony_ci } else { 7498779efd5Sopenharmony_ci contactDetailInfo.events = [event_element]; 7508779efd5Sopenharmony_ci } 7518779efd5Sopenharmony_ci break; 7528779efd5Sopenharmony_ci case DataItemType.WEBSITE: 7538779efd5Sopenharmony_ci let website_element = dataItem.getData(); 7548779efd5Sopenharmony_ci if (contactDetailInfo.websites) { 7558779efd5Sopenharmony_ci contactDetailInfo.websites.push(website_element); 7568779efd5Sopenharmony_ci } else { 7578779efd5Sopenharmony_ci contactDetailInfo.websites = [website_element]; 7588779efd5Sopenharmony_ci } 7598779efd5Sopenharmony_ci break; 7608779efd5Sopenharmony_ci case DataItemType.RELATION: 7618779efd5Sopenharmony_ci let relation_element = { 7628779efd5Sopenharmony_ci 'id': dataItem.getLabelId(), 7638779efd5Sopenharmony_ci 'associatedPersonId': '', 7648779efd5Sopenharmony_ci 'name': dataItem.getData(), 7658779efd5Sopenharmony_ci 'associatedType': dataItem.getLabelName(), 7668779efd5Sopenharmony_ci }; 7678779efd5Sopenharmony_ci if (contactDetailInfo.relationships) { 7688779efd5Sopenharmony_ci contactDetailInfo.relationships.push(relation_element); 7698779efd5Sopenharmony_ci } else { 7708779efd5Sopenharmony_ci contactDetailInfo.relationships = [relation_element]; 7718779efd5Sopenharmony_ci } 7728779efd5Sopenharmony_ci break; 7738779efd5Sopenharmony_ci } 7748779efd5Sopenharmony_ci }, 7758779efd5Sopenharmony_ci 7768779efd5Sopenharmony_ci /** 7778779efd5Sopenharmony_ci * Obtains the contact ID of the number by phone number 7788779efd5Sopenharmony_ci * 7798779efd5Sopenharmony_ci * @param {string} DAHelper 7808779efd5Sopenharmony_ci * @param {string} number Mobile number 7818779efd5Sopenharmony_ci * @param {Object} callBack Contact ID 7828779efd5Sopenharmony_ci */ 7838779efd5Sopenharmony_ci getContactIdByNumber: async function (DAHelper, number, callBack) { 7848779efd5Sopenharmony_ci HiLog.i(TAG, 'Start to query contacts by phone number.'); 7858779efd5Sopenharmony_ci if (DAHelper == undefined || DAHelper.length == 0) { 7868779efd5Sopenharmony_ci DAHelper = await dataShare.createDataShareHelper(globalThis.context, Contacts.CONTENT_URI); 7878779efd5Sopenharmony_ci } 7888779efd5Sopenharmony_ci if (StringUtil.isEmpty(number)) { 7898779efd5Sopenharmony_ci return; 7908779efd5Sopenharmony_ci } 7918779efd5Sopenharmony_ci let resultColumns = [ 7928779efd5Sopenharmony_ci 'raw_contact_id', 7938779efd5Sopenharmony_ci ]; 7948779efd5Sopenharmony_ci let cleanNumber = StringUtil.removeSpace(number); 7958779efd5Sopenharmony_ci let condition = new dataSharePredicates.DataSharePredicates(); 7968779efd5Sopenharmony_ci condition.equalTo('detail_info', cleanNumber); 7978779efd5Sopenharmony_ci condition.and(); 7988779efd5Sopenharmony_ci condition.equalTo('is_deleted', 0); 7998779efd5Sopenharmony_ci condition.and(); 8008779efd5Sopenharmony_ci condition.equalTo('type_id', '5'); 8018779efd5Sopenharmony_ci let resultSet = await DAHelper.query(Data.CONTENT_URI, resultColumns, condition); 8028779efd5Sopenharmony_ci if (StringUtil.isEmpty(resultSet) || resultSet.rowCount == 0) { 8038779efd5Sopenharmony_ci HiLog.i(TAG, 'getContactIdByNumber-contactId resultSet is empty!'); 8048779efd5Sopenharmony_ci callBack(); 8058779efd5Sopenharmony_ci return; 8068779efd5Sopenharmony_ci } 8078779efd5Sopenharmony_ci resultSet.goToFirstRow(); 8088779efd5Sopenharmony_ci let contactId = resultSet.getString(0); 8098779efd5Sopenharmony_ci resultSet.close(); 8108779efd5Sopenharmony_ci callBack(contactId); 8118779efd5Sopenharmony_ci HiLog.i(TAG, 'End of querying contacts by phone number.'); 8128779efd5Sopenharmony_ci }, 8138779efd5Sopenharmony_ci 8148779efd5Sopenharmony_ci /** 8158779efd5Sopenharmony_ci * Edit Contact Information 8168779efd5Sopenharmony_ci * 8178779efd5Sopenharmony_ci * @param {string} DAHelper 8188779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 8198779efd5Sopenharmony_ci * @param {Object} callBack Contact ID 8208779efd5Sopenharmony_ci */ 8218779efd5Sopenharmony_ci updateContact: async function (DAHelper, addParams, callBack, context?) { 8228779efd5Sopenharmony_ci HiLog.i(TAG, 'Start to update contacts.'); 8238779efd5Sopenharmony_ci try { 8248779efd5Sopenharmony_ci if (DAHelper == undefined || DAHelper.length == 0 || DAHelper == null) { 8258779efd5Sopenharmony_ci DAHelper = await dataShare.createDataShareHelper(context ? context : globalThis.context, Contacts.CONTENT_URI); 8268779efd5Sopenharmony_ci } 8278779efd5Sopenharmony_ci let condition = new dataSharePredicates.DataSharePredicates(); 8288779efd5Sopenharmony_ci condition.equalTo('raw_contact_id', addParams.id); 8298779efd5Sopenharmony_ci DAHelper.delete( 8308779efd5Sopenharmony_ci Data.CONTENT_URI, 8318779efd5Sopenharmony_ci condition, 8328779efd5Sopenharmony_ci ).then(data => { 8338779efd5Sopenharmony_ci this.dealParam(DAHelper, addParams, false, callBack); 8348779efd5Sopenharmony_ci }).catch(error => { 8358779efd5Sopenharmony_ci HiLog.e(TAG, 'updateContact-update contact error: %s', JSON.stringify(error.message)); 8368779efd5Sopenharmony_ci }); 8378779efd5Sopenharmony_ci HiLog.i(TAG, 'End to update contacts.'); 8388779efd5Sopenharmony_ci } catch(err) { 8398779efd5Sopenharmony_ci HiLog.e(TAG, 'updateContact err : ' + JSON.stringify(err)); 8408779efd5Sopenharmony_ci } 8418779efd5Sopenharmony_ci }, 8428779efd5Sopenharmony_ci /** 8438779efd5Sopenharmony_ci * Querying IDs by Phone Number 8448779efd5Sopenharmony_ci * 8458779efd5Sopenharmony_ci * @param {string} DAHelper 8468779efd5Sopenharmony_ci * @param {string} addParams Phone number 8478779efd5Sopenharmony_ci * @param {Object} callBack Contact ID array 8488779efd5Sopenharmony_ci */ 8498779efd5Sopenharmony_ci getIdByTelephone: async function (number, callBack, context?) { 8508779efd5Sopenharmony_ci HiLog.i(TAG, 'Start to query contactID by phone number.'); 8518779efd5Sopenharmony_ci let DAHelper = await dataShare.createDataShareHelper(context ?context : globalThis.context, Contacts.CONTENT_URI); 8528779efd5Sopenharmony_ci let condition = new dataSharePredicates.DataSharePredicates(); 8538779efd5Sopenharmony_ci condition.equalTo('detail_info', number) 8548779efd5Sopenharmony_ci .and() 8558779efd5Sopenharmony_ci .equalTo('type_id', 5) 8568779efd5Sopenharmony_ci .and() 8578779efd5Sopenharmony_ci .equalTo('is_deleted', 0); 8588779efd5Sopenharmony_ci let columns = ['raw_contact_id']; 8598779efd5Sopenharmony_ci let data_row = await DAHelper.query(Data.CONTENT_URI, condition, columns); 8608779efd5Sopenharmony_ci let resultList = []; 8618779efd5Sopenharmony_ci if (data_row.rowCount <= 0) { 8628779efd5Sopenharmony_ci data_row.close(); 8638779efd5Sopenharmony_ci callBack(resultList); 8648779efd5Sopenharmony_ci return; 8658779efd5Sopenharmony_ci } 8668779efd5Sopenharmony_ci data_row.goToFirstRow(); 8678779efd5Sopenharmony_ci let maxRows = data_row.rowCount; 8688779efd5Sopenharmony_ci let tempIndex = data_row.rowCount; 8698779efd5Sopenharmony_ci let index = 0; 8708779efd5Sopenharmony_ci do { 8718779efd5Sopenharmony_ci resultList.push(data_row.getString(data_row.getColumnIndex('raw_contact_id'))); 8728779efd5Sopenharmony_ci if ((++index) >= maxRows) { 8738779efd5Sopenharmony_ci data_row.close(); 8748779efd5Sopenharmony_ci callBack(resultList); 8758779efd5Sopenharmony_ci } 8768779efd5Sopenharmony_ci if (!data_row.goToNextRow()) { 8778779efd5Sopenharmony_ci break; 8788779efd5Sopenharmony_ci } 8798779efd5Sopenharmony_ci } while ((--tempIndex) >= 0) 8808779efd5Sopenharmony_ci data_row.close(); 8818779efd5Sopenharmony_ci HiLog.i(TAG, 'End to query contactID by phone number.'); 8828779efd5Sopenharmony_ci }, 8838779efd5Sopenharmony_ci 8848779efd5Sopenharmony_ci /** 8858779efd5Sopenharmony_ci * Edit Contact Favorite 8868779efd5Sopenharmony_ci * 8878779efd5Sopenharmony_ci * @param {string} DAHelper 8888779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 8898779efd5Sopenharmony_ci * @param {Object} callBack Contact ID 8908779efd5Sopenharmony_ci */ 8918779efd5Sopenharmony_ci updateFavorite: async function (DAHelper, addParams, callBack, context?) { 8928779efd5Sopenharmony_ci HiLog.i(TAG, 'updateFavorite start.'); 8938779efd5Sopenharmony_ci if (DAHelper == undefined || DAHelper == null || DAHelper.length == 0) { 8948779efd5Sopenharmony_ci DAHelper = await dataShare.createDataShareHelper(context ? context : globalThis.context, Contacts.CONTENT_URI); 8958779efd5Sopenharmony_ci } 8968779efd5Sopenharmony_ci let condition = new dataSharePredicates.DataSharePredicates(); 8978779efd5Sopenharmony_ci condition.equalTo('contact_id', addParams.id); 8988779efd5Sopenharmony_ci const va = { 8998779efd5Sopenharmony_ci 'favorite': addParams.favorite, 9008779efd5Sopenharmony_ci } 9018779efd5Sopenharmony_ci DAHelper.update( 9028779efd5Sopenharmony_ci RawContacts.CONTENT_URI, 9038779efd5Sopenharmony_ci condition, 9048779efd5Sopenharmony_ci va 9058779efd5Sopenharmony_ci ).then(data => { 9068779efd5Sopenharmony_ci if (data == -1) { 9078779efd5Sopenharmony_ci HiLog.e(TAG, 'updateFavorite data failed!'); 9088779efd5Sopenharmony_ci } 9098779efd5Sopenharmony_ci HiLog.i(TAG, 'updateFavorite data success!'); 9108779efd5Sopenharmony_ci callBack(addParams.favorite) 9118779efd5Sopenharmony_ci }).catch(err => { 9128779efd5Sopenharmony_ci HiLog.e(TAG, 'updateFavorite failed. Cause: ' + JSON.stringify(err.message)); 9138779efd5Sopenharmony_ci }); 9148779efd5Sopenharmony_ci HiLog.i(TAG, 'updateFavorite end.'); 9158779efd5Sopenharmony_ci }, 9168779efd5Sopenharmony_ci 9178779efd5Sopenharmony_ci /** 9188779efd5Sopenharmony_ci * Querying the Mobile Numbers of All Favorites 9198779efd5Sopenharmony_ci * 9208779efd5Sopenharmony_ci * @param {string} DAHelper 9218779efd5Sopenharmony_ci * @param {Object} callBack 9228779efd5Sopenharmony_ci */ 9238779efd5Sopenharmony_ci getAllFavorite: async function (actionData, callBack, context?) { 9248779efd5Sopenharmony_ci HiLog.i(TAG, 'getAllFavorite start.'); 9258779efd5Sopenharmony_ci if (context) { 9268779efd5Sopenharmony_ci ContactRepository.getInstance().init(context); 9278779efd5Sopenharmony_ci ContactRepository.getInstance().findAllFavorite(actionData, favoriteList => { 9288779efd5Sopenharmony_ci if (ArrayUtil.isEmpty(favoriteList)) { 9298779efd5Sopenharmony_ci let emptyResult: FavoriteBean[] = []; 9308779efd5Sopenharmony_ci callBack(emptyResult); 9318779efd5Sopenharmony_ci return; 9328779efd5Sopenharmony_ci } 9338779efd5Sopenharmony_ci let resultList = []; 9348779efd5Sopenharmony_ci for (let contactItem of favoriteList) { 9358779efd5Sopenharmony_ci let jsonObj: FavoriteBean = new FavoriteBean('', -1, '', '', '', '', '', true, '', false, 0, ''); 9368779efd5Sopenharmony_ci jsonObj.contactId = contactItem.id.toString(); 9378779efd5Sopenharmony_ci jsonObj.isCommonUseType = 0; 9388779efd5Sopenharmony_ci jsonObj.displayName = contactItem.displayName; 9398779efd5Sopenharmony_ci jsonObj.namePrefix = contactItem.sortFirstLetter; 9408779efd5Sopenharmony_ci jsonObj.nameSuffix = contactItem.photoFirstName; 9418779efd5Sopenharmony_ci jsonObj.position = contactItem.position; 9428779efd5Sopenharmony_ci jsonObj.portraitColor = MorandiColor.Color[Math.abs(parseInt(jsonObj.contactId)) % 6]; 9438779efd5Sopenharmony_ci jsonObj.show = contactItem.show; 9448779efd5Sopenharmony_ci jsonObj.isUsuallyShow = false; 9458779efd5Sopenharmony_ci jsonObj.favorite = 1; 9468779efd5Sopenharmony_ci jsonObj.setShowName(); 9478779efd5Sopenharmony_ci resultList.push(jsonObj); 9488779efd5Sopenharmony_ci } 9498779efd5Sopenharmony_ci HiLog.i(TAG, 'getAllFavorite data success!'); 9508779efd5Sopenharmony_ci callBack(resultList); 9518779efd5Sopenharmony_ci }); 9528779efd5Sopenharmony_ci } 9538779efd5Sopenharmony_ci HiLog.i(TAG, 'getAllFavorite end.'); 9548779efd5Sopenharmony_ci }, 9558779efd5Sopenharmony_ci 9568779efd5Sopenharmony_ci /** 9578779efd5Sopenharmony_ci * Query call records 9588779efd5Sopenharmony_ci * 9598779efd5Sopenharmony_ci * @param {string} DAHelper 9608779efd5Sopenharmony_ci * @param {Object} callBack call records 9618779efd5Sopenharmony_ci */ 9628779efd5Sopenharmony_ci getAllUsually: async function (actionData, callBack, context?) { 9638779efd5Sopenharmony_ci HiLog.i(TAG, 'getAllUsually start.'); 9648779efd5Sopenharmony_ci if (context) { 9658779efd5Sopenharmony_ci ContactRepository.getInstance().init(context); 9668779efd5Sopenharmony_ci ContactRepository.getInstance().findAllUsually(actionData, callLog => { 9678779efd5Sopenharmony_ci if (ArrayUtil.isEmpty(callLog)) { 9688779efd5Sopenharmony_ci let emptyResult: CallLog[] = []; 9698779efd5Sopenharmony_ci callBack(emptyResult); 9708779efd5Sopenharmony_ci return; 9718779efd5Sopenharmony_ci } 9728779efd5Sopenharmony_ci let resultList = []; 9738779efd5Sopenharmony_ci resultList = callLog; 9748779efd5Sopenharmony_ci HiLog.i(TAG, 'getAllUsually data success! '); 9758779efd5Sopenharmony_ci callBack(resultList); 9768779efd5Sopenharmony_ci }); 9778779efd5Sopenharmony_ci } 9788779efd5Sopenharmony_ci HiLog.i(TAG, 'getAllUsually end.'); 9798779efd5Sopenharmony_ci }, 9808779efd5Sopenharmony_ci 9818779efd5Sopenharmony_ci /** 9828779efd5Sopenharmony_ci * DisplayName Query Favorite 9838779efd5Sopenharmony_ci * 9848779efd5Sopenharmony_ci * @param {string} DAHelper 9858779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 9868779efd5Sopenharmony_ci * @param {Object} callBack Contact Information 9878779efd5Sopenharmony_ci */ 9888779efd5Sopenharmony_ci getDisplayNamesFindUsually: async function (displayName, usuallyPhone, callBack, context?){ 9898779efd5Sopenharmony_ci HiLog.i(TAG, 'getDisplayNamesFindUsually start.'); 9908779efd5Sopenharmony_ci if (context) { 9918779efd5Sopenharmony_ci ContactRepository.getInstance().init(context); 9928779efd5Sopenharmony_ci ContactRepository.getInstance().getDisplayNameByFavorite(displayName, usuallyPhone, favoriteList => { 9938779efd5Sopenharmony_ci if (ArrayUtil.isEmpty(favoriteList)) { 9948779efd5Sopenharmony_ci let emptyResult: FavoriteBean[] = []; 9958779efd5Sopenharmony_ci callBack(emptyResult); 9968779efd5Sopenharmony_ci return; 9978779efd5Sopenharmony_ci } 9988779efd5Sopenharmony_ci let resultList = []; 9998779efd5Sopenharmony_ci for (let i = 0; i < favoriteList.length; i++) { 10008779efd5Sopenharmony_ci let jsonObj: FavoriteBean = new FavoriteBean('', -1, '', '', '', '', '', false, '', false, 0, ''); 10018779efd5Sopenharmony_ci jsonObj.contactId = favoriteList[i].id.toString(); 10028779efd5Sopenharmony_ci jsonObj.isCommonUseType = 1; 10038779efd5Sopenharmony_ci jsonObj.displayName = favoriteList[i].displayName; 10048779efd5Sopenharmony_ci jsonObj.namePrefix = favoriteList[i].sortFirstLetter; 10058779efd5Sopenharmony_ci jsonObj.nameSuffix = favoriteList[i].photoFirstName; 10068779efd5Sopenharmony_ci jsonObj.position = favoriteList[i].position; 10078779efd5Sopenharmony_ci jsonObj.portraitColor = MorandiColor.Color[Math.abs(parseInt(jsonObj.contactId)) % 6]; 10088779efd5Sopenharmony_ci jsonObj.show = favoriteList[i].show; 10098779efd5Sopenharmony_ci jsonObj.isUsuallyShow = false; 10108779efd5Sopenharmony_ci jsonObj.favorite = 0; 10118779efd5Sopenharmony_ci jsonObj.phoneNum = favoriteList[i].detailInfo; 10128779efd5Sopenharmony_ci jsonObj.setShowName(); 10138779efd5Sopenharmony_ci resultList.push(jsonObj); 10148779efd5Sopenharmony_ci } 10158779efd5Sopenharmony_ci HiLog.i(TAG, 'getDisplayNamesFindUsually sc.'); 10168779efd5Sopenharmony_ci callBack(resultList); 10178779efd5Sopenharmony_ci }) 10188779efd5Sopenharmony_ci } 10198779efd5Sopenharmony_ci HiLog.i(TAG, 'getDisplayNamesFindUsually end! '); 10208779efd5Sopenharmony_ci }, 10218779efd5Sopenharmony_ci 10228779efd5Sopenharmony_ci /** 10238779efd5Sopenharmony_ci * Move Favorite Data Sorting 10248779efd5Sopenharmony_ci * 10258779efd5Sopenharmony_ci * @param {string} DAHelper 10268779efd5Sopenharmony_ci * @param {Object} addParams Contact Information 10278779efd5Sopenharmony_ci * @param {Object} callBack favoriteOrder 10288779efd5Sopenharmony_ci */ 10298779efd5Sopenharmony_ci moveSortFavorite: async function (DAHelper, addParams, callBack, context?) { 10308779efd5Sopenharmony_ci HiLog.i(TAG, 'moveSortFavorite start.'); 10318779efd5Sopenharmony_ci if (DAHelper == undefined || DAHelper == null || DAHelper.length == 0) { 10328779efd5Sopenharmony_ci DAHelper = await dataShare.createDataShareHelper(context ? context : globalThis.context, Contacts.CONTENT_URI); 10338779efd5Sopenharmony_ci } 10348779efd5Sopenharmony_ci let condition = new dataSharePredicates.DataSharePredicates(); 10358779efd5Sopenharmony_ci condition.equalTo('contact_id', addParams.id); 10368779efd5Sopenharmony_ci const va = { 10378779efd5Sopenharmony_ci 'favorite_order': addParams.favoriteOrder > 9 ? addParams.favoriteOrder : '0' + addParams.favoriteOrder 10388779efd5Sopenharmony_ci } 10398779efd5Sopenharmony_ci DAHelper.update( 10408779efd5Sopenharmony_ci RawContacts.CONTENT_URI, 10418779efd5Sopenharmony_ci condition, 10428779efd5Sopenharmony_ci va 10438779efd5Sopenharmony_ci ).then(data => { 10448779efd5Sopenharmony_ci if (data == -1) { 10458779efd5Sopenharmony_ci HiLog.e(TAG, 'moveSortFavorite data failed!'); 10468779efd5Sopenharmony_ci callBack('') 10478779efd5Sopenharmony_ci return; 10488779efd5Sopenharmony_ci } 10498779efd5Sopenharmony_ci HiLog.i(TAG, 'moveSortFavorite data success!'); 10508779efd5Sopenharmony_ci callBack(addParams.favoriteOrder); 10518779efd5Sopenharmony_ci }).catch(err => { 10528779efd5Sopenharmony_ci HiLog.e(TAG, 'moveSortFavorite failed. Cause: ' + JSON.stringify(err.message)); 10538779efd5Sopenharmony_ci }); 10548779efd5Sopenharmony_ci HiLog.i(TAG, 'End to update moveSortFavorite.'); 10558779efd5Sopenharmony_ci }, 10568779efd5Sopenharmony_ci 10578779efd5Sopenharmony_ci /** 10588779efd5Sopenharmony_ci * Querying the Mobile Numbers of Search Contacts 10598779efd5Sopenharmony_ci * 10608779efd5Sopenharmony_ci * @param {string} DAHelper 10618779efd5Sopenharmony_ci * @param {Object} callBack 10628779efd5Sopenharmony_ci */ 10638779efd5Sopenharmony_ci getSearchContact: async function (actionData, callBack, context?) { 10648779efd5Sopenharmony_ci HiLog.i(TAG, 'getSearchContact start.'); 10658779efd5Sopenharmony_ci if (context) { 10668779efd5Sopenharmony_ci ContactRepository.getInstance().init(context); 10678779efd5Sopenharmony_ci } 10688779efd5Sopenharmony_ci ContactRepository.getInstance().searchContact(actionData, contactList => { 10698779efd5Sopenharmony_ci if (ArrayUtil.isEmpty(contactList)) { 10708779efd5Sopenharmony_ci HiLog.i(TAG, 'getSearchContact resultSet is empty!'); 10718779efd5Sopenharmony_ci let emptyResult: SearchContactsBean[] = []; 10728779efd5Sopenharmony_ci callBack(emptyResult); 10738779efd5Sopenharmony_ci return; 10748779efd5Sopenharmony_ci } 10758779efd5Sopenharmony_ci let resultList = []; 10768779efd5Sopenharmony_ci for (let contactItem of contactList) { 10778779efd5Sopenharmony_ci let jsonObj: SearchContactsBean = new SearchContactsBean('', '', '', '', '', '', '', '', '', 0,'', '', '', '', '', ''); 10788779efd5Sopenharmony_ci jsonObj.id = contactItem.id.toString(); 10798779efd5Sopenharmony_ci jsonObj.accountId = contactItem.accountId; 10808779efd5Sopenharmony_ci jsonObj.contactId = contactItem.contactId; 10818779efd5Sopenharmony_ci jsonObj.rawContactId = contactItem.rawContactId; 10828779efd5Sopenharmony_ci jsonObj.searchName = contactItem.searchName; 10838779efd5Sopenharmony_ci jsonObj.displayName = contactItem.displayName; 10848779efd5Sopenharmony_ci jsonObj.phoneticName = contactItem.phoneticName; 10858779efd5Sopenharmony_ci jsonObj.photoId = contactItem.photoId; 10868779efd5Sopenharmony_ci jsonObj.photoFileId = contactItem.photoFileId; 10878779efd5Sopenharmony_ci jsonObj.isDeleted = contactItem.isDeleted; 10888779efd5Sopenharmony_ci jsonObj.position = contactItem.position; 10898779efd5Sopenharmony_ci jsonObj.sortFirstLetter = contactItem.sortFirstLetter; 10908779efd5Sopenharmony_ci jsonObj.photoFirstName = contactItem.photoFirstName; 10918779efd5Sopenharmony_ci jsonObj.portraitColor = MorandiColor.Color[Math.abs(parseInt(jsonObj.contactId)) % 6]; 10928779efd5Sopenharmony_ci jsonObj.detailInfo = contactItem.detailInfo; 10938779efd5Sopenharmony_ci jsonObj.hasPhoneNumber = contactItem.hasPhoneNumber; 10948779efd5Sopenharmony_ci resultList.push(jsonObj); 10958779efd5Sopenharmony_ci } 10968779efd5Sopenharmony_ci callBack(resultList); 10978779efd5Sopenharmony_ci HiLog.i(TAG, 'getSearchContact end.'); 10988779efd5Sopenharmony_ci }); 10998779efd5Sopenharmony_ci }, 11008779efd5Sopenharmony_ci 11018779efd5Sopenharmony_ci getQueryT9PhoneNumbers: function (callBack, addParams, context?) { 11028779efd5Sopenharmony_ci if (context) { 11038779efd5Sopenharmony_ci ContactRepository.getInstance().init(context); 11048779efd5Sopenharmony_ci } 11058779efd5Sopenharmony_ci ContactRepository.getInstance().queryT9PhoneIsNotNull(addParams.favorite, contactList => { 11068779efd5Sopenharmony_ci if (ArrayUtil.isEmpty(contactList)) { 11078779efd5Sopenharmony_ci HiLog.i(TAG, 'getQueryT9PhoneNumbers queryContact resultSet is empty!'); 11088779efd5Sopenharmony_ci let emptyResult: ContactVo[] = []; 11098779efd5Sopenharmony_ci callBack(emptyResult); 11108779efd5Sopenharmony_ci return; 11118779efd5Sopenharmony_ci } 11128779efd5Sopenharmony_ci let resultList = []; 11138779efd5Sopenharmony_ci for (let contactItem of contactList) { 11148779efd5Sopenharmony_ci let jsonObj: ContactVo = new ContactVo('', '', '', '', '', '', true, '', ''); 11158779efd5Sopenharmony_ci jsonObj.contactId = contactItem.id.toString(); 11168779efd5Sopenharmony_ci jsonObj.emptyNameData = contactItem.displayName; 11178779efd5Sopenharmony_ci jsonObj.namePrefix = contactItem.sortFirstLetter; 11188779efd5Sopenharmony_ci jsonObj.nameSuffix = contactItem.photoFirstName; 11198779efd5Sopenharmony_ci jsonObj.company = contactItem.company; 11208779efd5Sopenharmony_ci jsonObj.position = contactItem.position; 11218779efd5Sopenharmony_ci jsonObj.portraitColor = MorandiColor.Color[Math.abs(parseInt(jsonObj.contactId)) % 6]; 11228779efd5Sopenharmony_ci jsonObj.show = false; 11238779efd5Sopenharmony_ci jsonObj.phoneNumbers = contactItem.phoneNumbers; 11248779efd5Sopenharmony_ci jsonObj.setShowName(); 11258779efd5Sopenharmony_ci resultList.push(jsonObj); 11268779efd5Sopenharmony_ci } 11278779efd5Sopenharmony_ci callBack(resultList); 11288779efd5Sopenharmony_ci HiLog.i(TAG, 'End of querying all contacts'); 11298779efd5Sopenharmony_ci }); 11308779efd5Sopenharmony_ci }, 11318779efd5Sopenharmony_ci}