1df226684Sopenharmony_ci/* 2df226684Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3df226684Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4df226684Sopenharmony_ci * you may not use this file except in compliance with the License. 5df226684Sopenharmony_ci * You may obtain a copy of the License at 6df226684Sopenharmony_ci * 7df226684Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8df226684Sopenharmony_ci * 9df226684Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10df226684Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11df226684Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12df226684Sopenharmony_ci * See the License for the specific language governing permissions and 13df226684Sopenharmony_ci * limitations under the License. 14df226684Sopenharmony_ci */ 15df226684Sopenharmony_ci 16df226684Sopenharmony_ciimport UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession'; 17df226684Sopenharmony_ciimport { EditableLeftIconType } from '@ohos.arkui.advanced.EditableTitleBar'; 18df226684Sopenharmony_ciimport { EditableTitleBar } from '@ohos.arkui.advanced.EditableTitleBar'; 19df226684Sopenharmony_ciimport ConnectService from '../common/share/ConnectService'; 20df226684Sopenharmony_ciimport { LengthMetrics } from '@ohos.arkui.node'; 21df226684Sopenharmony_ciimport dlpPermission from '@ohos.dlpPermission'; 22df226684Sopenharmony_ciimport promptAction from '@ohos.promptAction'; 23df226684Sopenharmony_ciimport { BusinessError } from '@ohos.base'; 24df226684Sopenharmony_ciimport Want from '@ohos.app.ability.Want'; 25df226684Sopenharmony_ciimport fs from '@ohos.file.fs'; 26df226684Sopenharmony_ciimport emitter from '@ohos.events.emitter'; 27df226684Sopenharmony_ciimport { HiLog } from '../common/HiLog'; 28df226684Sopenharmony_ciimport Constants from '../common/constant'; 29df226684Sopenharmony_ciimport FileUtils, { FileMsg } from '../common/FileUtils'; 30df226684Sopenharmony_ciimport { 31df226684Sopenharmony_ci getFileUriByPath, 32df226684Sopenharmony_ci getFileFd, 33df226684Sopenharmony_ci sendDlpFileCreateProperties, 34df226684Sopenharmony_ci getFileSizeByUri, 35df226684Sopenharmony_ci sendDlpManagerAccountLogin, 36df226684Sopenharmony_ci getAppId, 37df226684Sopenharmony_ci getOsAccountInfo, 38df226684Sopenharmony_ci checkNetworkStatus 39df226684Sopenharmony_ci} from '../common/utils'; 40df226684Sopenharmony_ciimport { SystemUtils } from '../common/systemUtils'; 41df226684Sopenharmony_ci 42df226684Sopenharmony_ciconst TAG = 'Share'; 43df226684Sopenharmony_ci 44df226684Sopenharmony_ciclass Test { 45df226684Sopenharmony_ci public '0': number = 0; 46df226684Sopenharmony_ci public '1': number = 0; 47df226684Sopenharmony_ci public '4': string = ''; 48df226684Sopenharmony_ci} 49df226684Sopenharmony_ci 50df226684Sopenharmony_ciclass AuthUserList { 51df226684Sopenharmony_ci public authAccount: string = ''; 52df226684Sopenharmony_ci public authAccountType: number = 0; 53df226684Sopenharmony_ci public dlpFileAccess: number = 0; 54df226684Sopenharmony_ci public permExpiryTime: number = 0; 55df226684Sopenharmony_ci} 56df226684Sopenharmony_ci 57df226684Sopenharmony_cilet defaultDlpProperty: dlpPermission.DLPProperty = { 58df226684Sopenharmony_ci ownerAccount: '', 59df226684Sopenharmony_ci ownerAccountType: dlpPermission.AccountType.CLOUD_ACCOUNT, 60df226684Sopenharmony_ci authUserList: [], 61df226684Sopenharmony_ci contactAccount: '', 62df226684Sopenharmony_ci offlineAccess: true, 63df226684Sopenharmony_ci ownerAccountID: '', 64df226684Sopenharmony_ci everyoneAccessList: [] 65df226684Sopenharmony_ci}; 66df226684Sopenharmony_ci 67df226684Sopenharmony_cilet storage = LocalStorage.getShared(); 68df226684Sopenharmony_ci 69df226684Sopenharmony_ci@Entry(storage) 70df226684Sopenharmony_ci@Component 71df226684Sopenharmony_cistruct encryptedSharing { 72df226684Sopenharmony_ci private connectService: ConnectService = new ConnectService(getContext(this)); 73df226684Sopenharmony_ci @State titlebarMargin: LocalizedMargin = { 74df226684Sopenharmony_ci start: LengthMetrics.vp(Constants.SHARE_TITLE_HEAD_MARGIN_RIGHT), 75df226684Sopenharmony_ci end: LengthMetrics.vp(Constants.SHARE_TITLE_HEAD_MARGIN_RIGHT), 76df226684Sopenharmony_ci }; 77df226684Sopenharmony_ci @LocalStorageLink('commandSearchUserInfo') @Watch('beginToGenerateDLPFile') isInputInvalid: string = ''; 78df226684Sopenharmony_ci @LocalStorageLink('commandGetAccountInfo') @Watch('changeAccountInfo') commandGetAccountInfo: string = ''; 79df226684Sopenharmony_ci @State commandGetAccountInfoFlag: boolean = false; 80df226684Sopenharmony_ci @State dlpProperty: dlpPermission.DLPProperty = defaultDlpProperty; 81df226684Sopenharmony_ci @State enabledFocus: boolean = true; 82df226684Sopenharmony_ci @State isConfirmButtonEnabled: boolean = false; 83df226684Sopenharmony_ci @State isShowSheet: boolean = false; 84df226684Sopenharmony_ci @State showUIExtensionForAccountLogin: boolean = false; 85df226684Sopenharmony_ci @State actionWant: Want | undefined = storage.get<Want>('actionWant'); 86df226684Sopenharmony_ci @State inputValue: string = ''; 87df226684Sopenharmony_ci @State phoneFormatTips: boolean = false; 88df226684Sopenharmony_ci @State ownerAccount: string = ''; 89df226684Sopenharmony_ci @State ownerAccountID: string = ''; 90df226684Sopenharmony_ci @State contactExists: boolean = true; 91df226684Sopenharmony_ci @State credentialCallBackMsg: string | Resource = ''; 92df226684Sopenharmony_ci @State session: UIExtensionContentSession | undefined = 93df226684Sopenharmony_ci storage === undefined ? undefined : storage.get<UIExtensionContentSession>('session'); 94df226684Sopenharmony_ci @State placeHolderStr: ResourceStr = ''; 95df226684Sopenharmony_ci @State contactPerson: string = ''; 96df226684Sopenharmony_ci @State recordHashUid: string = ''; 97df226684Sopenharmony_ci @State osVersion: ResourceStr = ''; 98df226684Sopenharmony_ci @State isTextInputFocus: boolean = false; 99df226684Sopenharmony_ci @State generalType: string = 'general.file'; 100df226684Sopenharmony_ci 101df226684Sopenharmony_ci @Builder 102df226684Sopenharmony_ci contactsPicker() { 103df226684Sopenharmony_ci Column() { 104df226684Sopenharmony_ci UIExtensionComponent({ 105df226684Sopenharmony_ci bundleName: 'com.ohos.contacts', 106df226684Sopenharmony_ci abilityName: 'ContactUiExtentionAbility', 107df226684Sopenharmony_ci parameters: { 108df226684Sopenharmony_ci 'ability.want.params.uiExtensionType': 'sys/commonUI', 109df226684Sopenharmony_ci 'targetUrl': 'BatchSelectContactsPage', 110df226684Sopenharmony_ci 'isContactMultiSelect': false, 111df226684Sopenharmony_ci } 112df226684Sopenharmony_ci }) 113df226684Sopenharmony_ci .onRelease((code) => { 114df226684Sopenharmony_ci }) 115df226684Sopenharmony_ci .onResult((data) => { 116df226684Sopenharmony_ci }) 117df226684Sopenharmony_ci .onReceive((data) => { 118df226684Sopenharmony_ci let params: [] = JSON.parse((data.want as Want)?.parameters?.contactObjects as string); 119df226684Sopenharmony_ci for (let i = 0; i < params.length; i++) { 120df226684Sopenharmony_ci this.inputValue = (params[i] as Record<string, string>)?.telephone; 121df226684Sopenharmony_ci } 122df226684Sopenharmony_ci this.isShowSheet = false; 123df226684Sopenharmony_ci }) 124df226684Sopenharmony_ci .width(Constants.CONTACTS_PICKER_WIDTH) 125df226684Sopenharmony_ci .height(Constants.CONTACTS_PICKER_HEIGHT) 126df226684Sopenharmony_ci .hitTestBehavior(HitTestMode.Block) 127df226684Sopenharmony_ci } 128df226684Sopenharmony_ci .width(Constants.CONTACTS_PICKER_WIDTH) 129df226684Sopenharmony_ci .height(Constants.CONTACTS_PICKER_HEIGHT) 130df226684Sopenharmony_ci } 131df226684Sopenharmony_ci 132df226684Sopenharmony_ci private async beginShareEncrypt() { 133df226684Sopenharmony_ci HiLog.info(TAG, `begin Share Encrypt start`); 134df226684Sopenharmony_ci if (this.checkCloudPhone(this.inputValue)) { 135df226684Sopenharmony_ci this.enabledFocus = false; 136df226684Sopenharmony_ci this.isConfirmButtonEnabled = false; 137df226684Sopenharmony_ci this.getAccountInfo(); 138df226684Sopenharmony_ci } 139df226684Sopenharmony_ci } 140df226684Sopenharmony_ci 141df226684Sopenharmony_ci changeAccountInfo() { 142df226684Sopenharmony_ci HiLog.info(TAG, `changeAccountInfo start`); 143df226684Sopenharmony_ci if (!this.checkCloudPhone(this.inputValue)) { 144df226684Sopenharmony_ci return; 145df226684Sopenharmony_ci } 146df226684Sopenharmony_ci if (!this.commandGetAccountInfo) { 147df226684Sopenharmony_ci this.enabledFocus = true; 148df226684Sopenharmony_ci this.isConfirmButtonEnabled = true; 149df226684Sopenharmony_ci this.showToast($r('app.string.Share_File_Encrypted_Failed')); 150df226684Sopenharmony_ci } 151df226684Sopenharmony_ci let commandGetAccountInfoCallBack = JSON.parse(this.commandGetAccountInfo) as Record<string, object>; 152df226684Sopenharmony_ci HiLog.info(TAG, `commandGetAccountInfo Call Back errorCode: ${commandGetAccountInfoCallBack.errorCode}`); 153df226684Sopenharmony_ci let res = commandGetAccountInfoCallBack.result as Record<string, string>; 154df226684Sopenharmony_ci if (Number(commandGetAccountInfoCallBack.errorCode) === Constants.ERR_CODE_SUCCESS && res?.uid) { 155df226684Sopenharmony_ci this.ownerAccount = res?.uid; 156df226684Sopenharmony_ci this.ownerAccountID = res?.uid; 157df226684Sopenharmony_ci this.connectService.connectServiceShareAbility(Constants.COMMAND_SEARCH_USER_INFO); 158df226684Sopenharmony_ci } else { 159df226684Sopenharmony_ci this.enabledFocus = true; 160df226684Sopenharmony_ci this.isConfirmButtonEnabled = true; 161df226684Sopenharmony_ci this.recordHashUid = ''; 162df226684Sopenharmony_ci storage.setOrCreate('commandGetAccountInfo', ''); 163df226684Sopenharmony_ci if ([ 164df226684Sopenharmony_ci Constants.ERR_CODE_NETWORK_ERROR, 165df226684Sopenharmony_ci Constants.ERR_CODE_CONNECTION_FAIL, 166df226684Sopenharmony_ci Constants.ERR_CODE_CONNECTION_TIME_OUT 167df226684Sopenharmony_ci ].includes(Number(commandGetAccountInfoCallBack.errorCode))) { 168df226684Sopenharmony_ci this.showToast($r('app.string.network_invalid')); 169df226684Sopenharmony_ci return; 170df226684Sopenharmony_ci } 171df226684Sopenharmony_ci this.showToast($r('app.string.Share_File_Encrypted_Failed')); 172df226684Sopenharmony_ci } 173df226684Sopenharmony_ci } 174df226684Sopenharmony_ci 175df226684Sopenharmony_ci checkCloudPhone(phone: string): boolean { 176df226684Sopenharmony_ci if (!phone) { 177df226684Sopenharmony_ci return false; 178df226684Sopenharmony_ci } 179df226684Sopenharmony_ci let reg = /^(?:(?:\+|00)86)?1[3456789]\d{9}$/; 180df226684Sopenharmony_ci if (!(reg.test(phone))) { 181df226684Sopenharmony_ci HiLog.info(TAG, `Please enter the phone.`); 182df226684Sopenharmony_ci this.phoneFormatTips = true; 183df226684Sopenharmony_ci this.credentialCallBackMsg = $r('app.string.Share_Tips_Phone_Format'); 184df226684Sopenharmony_ci HiLog.info(TAG, `phoneFormatTips: ${this.phoneFormatTips}`); 185df226684Sopenharmony_ci return false; 186df226684Sopenharmony_ci } 187df226684Sopenharmony_ci reg = /^(0086|\+86)/; 188df226684Sopenharmony_ci let formatPhone = this.inputValue.replace(reg, ''); 189df226684Sopenharmony_ci let cloudPhone = `${Constants.INTERNATIONAL_DIALING_CODE}${formatPhone}`; 190df226684Sopenharmony_ci AppStorage.setOrCreate('cloudPhone', cloudPhone); 191df226684Sopenharmony_ci return true; 192df226684Sopenharmony_ci } 193df226684Sopenharmony_ci 194df226684Sopenharmony_ci async beginToGenerateDLPFile() { 195df226684Sopenharmony_ci HiLog.info(TAG, `beginToGenerateDLPFile start`); 196df226684Sopenharmony_ci if (!this.isInputValid()) { 197df226684Sopenharmony_ci this.enabledFocus = true; 198df226684Sopenharmony_ci this.isConfirmButtonEnabled = true; 199df226684Sopenharmony_ci this.textInputGetFocus(); 200df226684Sopenharmony_ci return; 201df226684Sopenharmony_ci } 202df226684Sopenharmony_ci let parameters = this.actionWant?.parameters as Record<string, Array<string>>; 203df226684Sopenharmony_ci let inputUri: string = parameters['ability.params.stream'][0]; 204df226684Sopenharmony_ci let inputFileName: string = this.getFileName(parameters, inputUri); 205df226684Sopenharmony_ci let dlpFileName = decodeURIComponent(inputFileName) + '.dlp'; 206df226684Sopenharmony_ci let inFileFd = getFileFd(inputUri); 207df226684Sopenharmony_ci let srcFileSize: number = await getFileSizeByUri(inputUri); 208df226684Sopenharmony_ci AppStorage.setOrCreate('hiFileSize', srcFileSize); 209df226684Sopenharmony_ci let filePath = getContext(this).filesDir + `/Share/${new Date().getTime()}/`; 210df226684Sopenharmony_ci try { 211df226684Sopenharmony_ci await fs.mkdir(filePath, true); 212df226684Sopenharmony_ci } catch (error) { 213df226684Sopenharmony_ci HiLog.error(TAG, `mkdir failed: ${JSON.stringify(error)}`); 214df226684Sopenharmony_ci } 215df226684Sopenharmony_ci let newFilePath = filePath + dlpFileName; 216df226684Sopenharmony_ci let file: fs.File | undefined; 217df226684Sopenharmony_ci let filePathUri = getFileUriByPath(newFilePath); 218df226684Sopenharmony_ci try { 219df226684Sopenharmony_ci file = fs.openSync(newFilePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE); 220df226684Sopenharmony_ci await dlpPermission.generateDLPFile(inFileFd, file.fd, this.dlpProperty); 221df226684Sopenharmony_ci this.showToast($r('app.string.Share_File_Encrypted_Success')); 222df226684Sopenharmony_ci let dstFileSize: number = await getFileSizeByUri(filePathUri); 223df226684Sopenharmony_ci AppStorage.setOrCreate('hiPolicySizeEnc', dstFileSize); 224df226684Sopenharmony_ci AppStorage.setOrCreate('hiCode', 201); 225df226684Sopenharmony_ci sendDlpFileCreateProperties(dlpPermission.AccountType.CLOUD_ACCOUNT); // 201: DLP_2C_FILE_CREATE_EVENT 226df226684Sopenharmony_ci this.backToPages(filePathUri, dlpFileName); 227df226684Sopenharmony_ci HiLog.info(TAG, `beginToGenerateDLPFile success`); 228df226684Sopenharmony_ci } catch (err) { 229df226684Sopenharmony_ci HiLog.error(TAG, `open temp failed: ${JSON.stringify(err)}`); 230df226684Sopenharmony_ci HiLog.info(TAG, `generateDLPFile file failed: ${JSON.stringify(err)}`); 231df226684Sopenharmony_ci storage.setOrCreate('commandSearchUserInfo', ''); 232df226684Sopenharmony_ci if (err.code === Constants.SHARE_FILE_NAME_TOO_LONG) { 233df226684Sopenharmony_ci this.showToast($r('app.string.Share_File_Name_Too_Long')); 234df226684Sopenharmony_ci return; 235df226684Sopenharmony_ci } 236df226684Sopenharmony_ci this.showToast($r('app.string.Share_File_Encrypted_Failed')); 237df226684Sopenharmony_ci this.enabledFocus = true; 238df226684Sopenharmony_ci this.isConfirmButtonEnabled = true; 239df226684Sopenharmony_ci } finally { 240df226684Sopenharmony_ci if (file) { 241df226684Sopenharmony_ci fs.closeSync(file); 242df226684Sopenharmony_ci } 243df226684Sopenharmony_ci } 244df226684Sopenharmony_ci } 245df226684Sopenharmony_ci 246df226684Sopenharmony_ci getFileName(parameters: Record<string, Array<string>>, inputUri: string): string { 247df226684Sopenharmony_ci let abilityPickerRecords = parameters['ability.picker.records']; 248df226684Sopenharmony_ci let srcFileMsg: FileMsg = FileUtils.getSuffixFileMsgByUri(inputUri); 249df226684Sopenharmony_ci AppStorage.setOrCreate('hiFileType', srcFileMsg.fileType); 250df226684Sopenharmony_ci let res: string = ''; 251df226684Sopenharmony_ci Object.keys(abilityPickerRecords).forEach(key => { 252df226684Sopenharmony_ci this.generalType = key; 253df226684Sopenharmony_ci res = abilityPickerRecords[key][0]?.['4']; 254df226684Sopenharmony_ci }); 255df226684Sopenharmony_ci if (res === undefined) { 256df226684Sopenharmony_ci res = srcFileMsg.fileName + srcFileMsg.fileType; 257df226684Sopenharmony_ci } 258df226684Sopenharmony_ci return res; 259df226684Sopenharmony_ci } 260df226684Sopenharmony_ci 261df226684Sopenharmony_ci showToast(msg: Resource) { 262df226684Sopenharmony_ci promptAction.showToast({ 263df226684Sopenharmony_ci message: msg, 264df226684Sopenharmony_ci duration: Constants.SHARE_SET_TIMEOUT 265df226684Sopenharmony_ci }); 266df226684Sopenharmony_ci } 267df226684Sopenharmony_ci 268df226684Sopenharmony_ci backToPages(filePathUri: string, dlpFileName: string) { 269df226684Sopenharmony_ci HiLog.info(TAG, `backToPages start: ${dlpFileName}`); 270df226684Sopenharmony_ci if (this.actionWant && this.actionWant.parameters) { 271df226684Sopenharmony_ci this.actionWant.parameters['ability.params.stream'] = [filePathUri]; 272df226684Sopenharmony_ci let arr: Test[] = [ 273df226684Sopenharmony_ci { 274df226684Sopenharmony_ci '0': 0, 275df226684Sopenharmony_ci '1': 0, 276df226684Sopenharmony_ci '4': dlpFileName 277df226684Sopenharmony_ci } 278df226684Sopenharmony_ci ]; 279df226684Sopenharmony_ci let generalFile: Record<string, Test[]> = {}; 280df226684Sopenharmony_ci generalFile[this.generalType] = arr; 281df226684Sopenharmony_ci this.actionWant.parameters['ability.picker.records'] = generalFile; 282df226684Sopenharmony_ci setTimeout(() => { 283df226684Sopenharmony_ci this.session!.terminateSelfWithResult({ 284df226684Sopenharmony_ci resultCode: 2, 285df226684Sopenharmony_ci want: this.actionWant 286df226684Sopenharmony_ci }); 287df226684Sopenharmony_ci }, Constants.SHARE_SET_TIMEOUT) 288df226684Sopenharmony_ci } 289df226684Sopenharmony_ci } 290df226684Sopenharmony_ci 291df226684Sopenharmony_ci isInputValid(): boolean { 292df226684Sopenharmony_ci if (!this.isInputInvalid) { 293df226684Sopenharmony_ci return false; 294df226684Sopenharmony_ci } 295df226684Sopenharmony_ci let credentialCallBack = JSON.parse(this.isInputInvalid) as Record<string, string>; 296df226684Sopenharmony_ci HiLog.info(TAG, `credential Call Back errorCode: ${credentialCallBack.errorCode}`); 297df226684Sopenharmony_ci if (!credentialCallBack.status && Number(credentialCallBack.errorCode) === Constants.ERR_CODE_SUCCESS) { 298df226684Sopenharmony_ci HiLog.info(TAG, `credentialCallBack msg`); 299df226684Sopenharmony_ci let str = this.getExternalResourceString(Constants.DLP_CREDMGR_BUNDLE_NAME, 'entry', 'no_user'); 300df226684Sopenharmony_ci this.credentialCallBackMsg = str.length > 0 ? str : credentialCallBack.msg; 301df226684Sopenharmony_ci this.phoneFormatTips = true; 302df226684Sopenharmony_ci storage.setOrCreate('commandSearchUserInfo', ''); 303df226684Sopenharmony_ci return false; 304df226684Sopenharmony_ci } 305df226684Sopenharmony_ci if (!credentialCallBack.status && [ 306df226684Sopenharmony_ci Constants.ERR_CODE_NETWORK_ERROR, 307df226684Sopenharmony_ci Constants.ERR_CODE_CONNECTION_FAIL, 308df226684Sopenharmony_ci Constants.ERR_CODE_CONNECTION_TIME_OUT 309df226684Sopenharmony_ci ].includes(Number(credentialCallBack.errorCode))) { 310df226684Sopenharmony_ci this.showToast($r('app.string.network_invalid')); 311df226684Sopenharmony_ci storage.setOrCreate('commandSearchUserInfo', ''); 312df226684Sopenharmony_ci return false; 313df226684Sopenharmony_ci } 314df226684Sopenharmony_ci if (!credentialCallBack.status && Number(credentialCallBack.errorCode) !== Constants.ERR_CODE_SUCCESS) { 315df226684Sopenharmony_ci this.showToast($r('app.string.Share_File_Encrypted_Failed')); 316df226684Sopenharmony_ci storage.setOrCreate('commandSearchUserInfo', ''); 317df226684Sopenharmony_ci return false; 318df226684Sopenharmony_ci } 319df226684Sopenharmony_ci let authUserList: AuthUserList[] = [ 320df226684Sopenharmony_ci { 321df226684Sopenharmony_ci 'authAccount': credentialCallBack.userIdCipher, 322df226684Sopenharmony_ci 'authAccountType': 1, 323df226684Sopenharmony_ci 'dlpFileAccess': 1, 324df226684Sopenharmony_ci 'permExpiryTime': Date.UTC(9999, 1, 1), 325df226684Sopenharmony_ci } 326df226684Sopenharmony_ci ]; 327df226684Sopenharmony_ci this.dlpProperty = { 328df226684Sopenharmony_ci 'ownerAccount': this.ownerAccount, 329df226684Sopenharmony_ci 'ownerAccountID': this.ownerAccountID, 330df226684Sopenharmony_ci 'ownerAccountType': 1, 331df226684Sopenharmony_ci 'authUserList': authUserList, 332df226684Sopenharmony_ci 'contactAccount': this.ownerAccount, 333df226684Sopenharmony_ci 'offlineAccess': true, 334df226684Sopenharmony_ci } 335df226684Sopenharmony_ci return true; 336df226684Sopenharmony_ci } 337df226684Sopenharmony_ci 338df226684Sopenharmony_ci async checkContacts() { 339df226684Sopenharmony_ci let callerBundleName = 'com.ohos.contacts'; 340df226684Sopenharmony_ci try { 341df226684Sopenharmony_ci await getAppId(callerBundleName); 342df226684Sopenharmony_ci this.contactExists = true; 343df226684Sopenharmony_ci } catch { 344df226684Sopenharmony_ci this.contactExists = false; 345df226684Sopenharmony_ci } 346df226684Sopenharmony_ci } 347df226684Sopenharmony_ci 348df226684Sopenharmony_ci async getLoginStatus() { 349df226684Sopenharmony_ci HiLog.info(TAG, `get login status start.`); 350df226684Sopenharmony_ci try { 351df226684Sopenharmony_ci await checkNetworkStatus(); 352df226684Sopenharmony_ci } catch { 353df226684Sopenharmony_ci this.showToast($r('app.string.network_invalid')); 354df226684Sopenharmony_ci this.enabledFocus = true; 355df226684Sopenharmony_ci this.isConfirmButtonEnabled = this.inputValue.length > 0; 356df226684Sopenharmony_ci this.isTextInputFocus = true; 357df226684Sopenharmony_ci this.textInputGetFocus(); 358df226684Sopenharmony_ci return 359df226684Sopenharmony_ci } 360df226684Sopenharmony_ci try { 361df226684Sopenharmony_ci let accountInfo = await getOsAccountInfo(); 362df226684Sopenharmony_ci if (accountInfo.distributedInfo.name === 'ohosAnonymousName' && 363df226684Sopenharmony_ci accountInfo.distributedInfo.id === 'ohosAnonymousUid') { 364df226684Sopenharmony_ci this.showUIExtensionForAccountLogin = true; 365df226684Sopenharmony_ci } else { 366df226684Sopenharmony_ci this.isTextInputFocus = true; 367df226684Sopenharmony_ci this.textInputGetFocus(); 368df226684Sopenharmony_ci } 369df226684Sopenharmony_ci } catch (err) { 370df226684Sopenharmony_ci HiLog.error(TAG, `getOsAccountInfo failed: ${JSON.stringify(err)}`); 371df226684Sopenharmony_ci } 372df226684Sopenharmony_ci } 373df226684Sopenharmony_ci 374df226684Sopenharmony_ci async getAccountInfo() { 375df226684Sopenharmony_ci HiLog.info(TAG, `get Account Info start`); 376df226684Sopenharmony_ci try { 377df226684Sopenharmony_ci await checkNetworkStatus(); 378df226684Sopenharmony_ci } catch { 379df226684Sopenharmony_ci this.showToast($r('app.string.network_invalid')); 380df226684Sopenharmony_ci this.enabledFocus = true; 381df226684Sopenharmony_ci this.isConfirmButtonEnabled = this.inputValue.length > 0; 382df226684Sopenharmony_ci this.isTextInputFocus = true; 383df226684Sopenharmony_ci this.textInputGetFocus(); 384df226684Sopenharmony_ci return; 385df226684Sopenharmony_ci } 386df226684Sopenharmony_ci try { 387df226684Sopenharmony_ci let accountInfo = await getOsAccountInfo(); 388df226684Sopenharmony_ci if (accountInfo.distributedInfo.name === 'ohosAnonymousName' && 389df226684Sopenharmony_ci accountInfo.distributedInfo.id === 'ohosAnonymousUid') { 390df226684Sopenharmony_ci this.showUIExtensionForAccountLogin = true; 391df226684Sopenharmony_ci return; 392df226684Sopenharmony_ci } 393df226684Sopenharmony_ci if (accountInfo.distributedInfo.id !== this.recordHashUid) { 394df226684Sopenharmony_ci HiLog.info(TAG, `COMMAND_GET_ACCOUNT_INFO start`); 395df226684Sopenharmony_ci this.connectService.connectServiceShareAbility(Constants.COMMAND_GET_ACCOUNT_INFO); 396df226684Sopenharmony_ci this.commandGetAccountInfoFlag = true; 397df226684Sopenharmony_ci this.recordHashUid = accountInfo.distributedInfo.id; 398df226684Sopenharmony_ci return; 399df226684Sopenharmony_ci } else { 400df226684Sopenharmony_ci this.changeAccountInfo(); 401df226684Sopenharmony_ci } 402df226684Sopenharmony_ci } catch (err) { 403df226684Sopenharmony_ci HiLog.error(TAG, `getOsAccountInfo failed: ${JSON.stringify(err)}`); 404df226684Sopenharmony_ci this.showToast($r('app.string.Share_File_Encrypted_Failed')); 405df226684Sopenharmony_ci this.enabledFocus = true; 406df226684Sopenharmony_ci this.isConfirmButtonEnabled = this.inputValue.length > 0; 407df226684Sopenharmony_ci } 408df226684Sopenharmony_ci } 409df226684Sopenharmony_ci 410df226684Sopenharmony_ci onLanguageChange() { 411df226684Sopenharmony_ci let str = this.getExternalResourceString(Constants.DLP_CREDMGR_BUNDLE_NAME, 'entry', 'add_users_hint'); 412df226684Sopenharmony_ci if (str.length > 0) { 413df226684Sopenharmony_ci this.placeHolderStr = str; 414df226684Sopenharmony_ci } 415df226684Sopenharmony_ci str = this.getExternalResourceString(Constants.DLP_CREDMGR_BUNDLE_NAME, 'entry', 'no_user'); 416df226684Sopenharmony_ci if (str.length > 0) { 417df226684Sopenharmony_ci this.credentialCallBackMsg = str; 418df226684Sopenharmony_ci } 419df226684Sopenharmony_ci str = this.getExternalResourceString(Constants.DLP_CREDMGR_BUNDLE_NAME, 'entry', 'hmos_version_label'); 420df226684Sopenharmony_ci if (str.length > 0) { 421df226684Sopenharmony_ci this.osVersion = str; 422df226684Sopenharmony_ci } 423df226684Sopenharmony_ci this.getContactPersonString(); 424df226684Sopenharmony_ci } 425df226684Sopenharmony_ci 426df226684Sopenharmony_ci subscribeLanguageChange() { 427df226684Sopenharmony_ci emitter.on('onConfigurationUpdate', () => { 428df226684Sopenharmony_ci this.onLanguageChange(); 429df226684Sopenharmony_ci }) 430df226684Sopenharmony_ci } 431df226684Sopenharmony_ci 432df226684Sopenharmony_ci getExternalResourceString(bundle: string, module: string, resourceName: string): string { 433df226684Sopenharmony_ci try { 434df226684Sopenharmony_ci let ctx = getContext().createModuleContext(bundle, module); 435df226684Sopenharmony_ci HiLog.info(TAG, 'getExternalResourceString get context from: ' + ctx.applicationInfo.name); 436df226684Sopenharmony_ci let str = ctx.resourceManager.getStringByNameSync(resourceName); 437df226684Sopenharmony_ci return str; 438df226684Sopenharmony_ci } catch (e) { 439df226684Sopenharmony_ci let error = e as BusinessError; 440df226684Sopenharmony_ci HiLog.error(TAG, 'getExternalResourceString error: ' + error.code + ' ' + error.message); 441df226684Sopenharmony_ci return ''; 442df226684Sopenharmony_ci } 443df226684Sopenharmony_ci } 444df226684Sopenharmony_ci 445df226684Sopenharmony_ci getContactPersonString() { 446df226684Sopenharmony_ci try { 447df226684Sopenharmony_ci getContext().resourceManager.getStringValue($r('app.string.Share_Contact_Person').id, 448df226684Sopenharmony_ci (error: BusinessError, value: string) => { 449df226684Sopenharmony_ci if (error === undefined || error === null) { 450df226684Sopenharmony_ci this.contactPerson = value; 451df226684Sopenharmony_ci } else { 452df226684Sopenharmony_ci HiLog.error(TAG, `error is ${JSON.stringify(error)}`); 453df226684Sopenharmony_ci } 454df226684Sopenharmony_ci }); 455df226684Sopenharmony_ci } catch (error) { 456df226684Sopenharmony_ci HiLog.error(TAG, `callback getStringValue failed, error ${JSON.stringify(error)}`); 457df226684Sopenharmony_ci } 458df226684Sopenharmony_ci } 459df226684Sopenharmony_ci 460df226684Sopenharmony_ci clearHistoryDLPFile() { 461df226684Sopenharmony_ci let pathDir = getContext(this).filesDir + '/Share'; 462df226684Sopenharmony_ci fs.listFile(pathDir).then((filenames: Array<string>) => { 463df226684Sopenharmony_ci HiLog.info(TAG, `listFile succeed`); 464df226684Sopenharmony_ci let filenamesLists = filenames.sort((a, b) => Number(a) - Number(b)); 465df226684Sopenharmony_ci if (filenamesLists.length > Constants.SHARE_TEMP_SAVE_FILE_NUMBER) { 466df226684Sopenharmony_ci let deleteArray = filenamesLists.slice(0, filenamesLists.length - Constants.SHARE_TEMP_SAVE_FILE_NUMBER); 467df226684Sopenharmony_ci deleteArray.forEach((item) => { 468df226684Sopenharmony_ci fs.rmdirSync(pathDir + `/${item}`); 469df226684Sopenharmony_ci }) 470df226684Sopenharmony_ci } 471df226684Sopenharmony_ci }).catch((err: BusinessError) => { 472df226684Sopenharmony_ci HiLog.error(TAG, `list file failed with error message: ${JSON.stringify(err)}`); 473df226684Sopenharmony_ci }); 474df226684Sopenharmony_ci } 475df226684Sopenharmony_ci 476df226684Sopenharmony_ci textInputGetFocus() { 477df226684Sopenharmony_ci setTimeout(() => { 478df226684Sopenharmony_ci try { 479df226684Sopenharmony_ci HiLog.info(TAG, `delay requestFocus start`); 480df226684Sopenharmony_ci this.getUIContext().getFocusController().requestFocus('phoneInput'); 481df226684Sopenharmony_ci } catch (error) { 482df226684Sopenharmony_ci HiLog.error(TAG, `requestFocus failed. Cause: ${JSON.stringify(error)}`); 483df226684Sopenharmony_ci } 484df226684Sopenharmony_ci }, Constants.ENCRYPTION_SET_TIMEOUT_TIME); 485df226684Sopenharmony_ci } 486df226684Sopenharmony_ci 487df226684Sopenharmony_ci aboutToAppear() { 488df226684Sopenharmony_ci HiLog.info(TAG, `aboutToAppear enter: ${this.showUIExtensionForAccountLogin}`); 489df226684Sopenharmony_ci this.getLoginStatus(); 490df226684Sopenharmony_ci AppStorage.setOrCreate('hiAccountType', dlpPermission.AccountType.CLOUD_ACCOUNT); 491df226684Sopenharmony_ci sendDlpManagerAccountLogin(-1); 492df226684Sopenharmony_ci this.checkContacts(); 493df226684Sopenharmony_ci this.clearHistoryDLPFile(); 494df226684Sopenharmony_ci this.subscribeLanguageChange(); 495df226684Sopenharmony_ci let str = this.getExternalResourceString(Constants.DLP_CREDMGR_BUNDLE_NAME, 'entry', 'add_users_hint'); 496df226684Sopenharmony_ci this.placeHolderStr = str.length > 0 ? str : ''; 497df226684Sopenharmony_ci str = this.getExternalResourceString(Constants.DLP_CREDMGR_BUNDLE_NAME, 'entry', 'hmos_version_label'); 498df226684Sopenharmony_ci this.osVersion = str.length > 0 ? str : ''; 499df226684Sopenharmony_ci this.getContactPersonString(); 500df226684Sopenharmony_ci } 501df226684Sopenharmony_ci 502df226684Sopenharmony_ci build() { 503df226684Sopenharmony_ci Stack() { 504df226684Sopenharmony_ci Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Start }) { 505df226684Sopenharmony_ci EditableTitleBar({ 506df226684Sopenharmony_ci leftIconStyle: EditableLeftIconType.Back, 507df226684Sopenharmony_ci title: $r('app.string.Share_Add_Viewable_Users'), 508df226684Sopenharmony_ci contentMargin: this.titlebarMargin, 509df226684Sopenharmony_ci menuItems: [ 510df226684Sopenharmony_ci { 511df226684Sopenharmony_ci value: $r('sys.media.ohos_ic_public_cancel'), 512df226684Sopenharmony_ci isEnabled: true, 513df226684Sopenharmony_ci label: $r('app.string.ban'), 514df226684Sopenharmony_ci action: () => { 515df226684Sopenharmony_ci if (this.session !== undefined) { 516df226684Sopenharmony_ci this.session.terminateSelfWithResult({ 517df226684Sopenharmony_ci 'resultCode': 1, 518df226684Sopenharmony_ci }); 519df226684Sopenharmony_ci } 520df226684Sopenharmony_ci } 521df226684Sopenharmony_ci } 522df226684Sopenharmony_ci ], 523df226684Sopenharmony_ci isSaveIconRequired: false, 524df226684Sopenharmony_ci onCancel: () => { 525df226684Sopenharmony_ci if (this.session !== undefined) { 526df226684Sopenharmony_ci this.session.terminateSelfWithResult({ 527df226684Sopenharmony_ci 'resultCode': 0, 528df226684Sopenharmony_ci }); 529df226684Sopenharmony_ci } 530df226684Sopenharmony_ci }, 531df226684Sopenharmony_ci }) 532df226684Sopenharmony_ci .constraintSize({ minHeight: Constants.SHARE_TITLE_HEAD_HEIGHT }) 533df226684Sopenharmony_ci .margin({ 534df226684Sopenharmony_ci top: Constants.SHARE_TITLE_HEAD_MARGIN_TOP, 535df226684Sopenharmony_ci }) 536df226684Sopenharmony_ci Scroll() { 537df226684Sopenharmony_ci Column() { 538df226684Sopenharmony_ci Row() { 539df226684Sopenharmony_ci TextInput({ placeholder: this.placeHolderStr, text: this.inputValue }) 540df226684Sopenharmony_ci .id('phoneInput') 541df226684Sopenharmony_ci .padding({ 542df226684Sopenharmony_ci left: SystemUtils.isRTL() ? 543df226684Sopenharmony_ci Constants.SHARE_TEXT_INPUT_CONTENT_PADDING_RIGHT : Constants.SHARE_TEXT_INPUT_CONTENT_PADDING_LEFT, 544df226684Sopenharmony_ci right: SystemUtils.isRTL() ? 545df226684Sopenharmony_ci Constants.SHARE_TEXT_INPUT_CONTENT_PADDING_LEFT : Constants.SHARE_TEXT_INPUT_CONTENT_PADDING_RIGHT 546df226684Sopenharmony_ci }) 547df226684Sopenharmony_ci .enabled(this.enabledFocus) 548df226684Sopenharmony_ci .constraintSize({ minHeight: Constants.SHARE_TEXT_INPUT_HEIGHT }) 549df226684Sopenharmony_ci .focusable(this.isTextInputFocus) 550df226684Sopenharmony_ci .defaultFocus(false) 551df226684Sopenharmony_ci .direction(SystemUtils.isRTL() ? Direction.Rtl : Direction.Ltr) 552df226684Sopenharmony_ci .type(InputType.PhoneNumber) 553df226684Sopenharmony_ci .contentType(ContentType.PHONE_COUNTRY_CODE) 554df226684Sopenharmony_ci .enterKeyType(EnterKeyType.NEW_LINE) 555df226684Sopenharmony_ci .border(this.phoneFormatTips ? 556df226684Sopenharmony_ci { width: Constants.DIALOG_MD_OFFSET, color: $r('sys.color.ohos_id_color_warning') } : { width: 0 }) 557df226684Sopenharmony_ci .onChange((value: string) => { 558df226684Sopenharmony_ci HiLog.info(TAG, `input length: ${value.length}`); 559df226684Sopenharmony_ci this.inputValue = value; 560df226684Sopenharmony_ci this.phoneFormatTips = false; 561df226684Sopenharmony_ci this.isConfirmButtonEnabled = value.length > 0; 562df226684Sopenharmony_ci }) 563df226684Sopenharmony_ci if (this.contactExists) { 564df226684Sopenharmony_ci Column() { 565df226684Sopenharmony_ci SymbolGlyph($r('sys.symbol.person_2')) 566df226684Sopenharmony_ci .fontSize(`${Constants.SYMBOL_GLYPH_FONT_SIZE}vp`) 567df226684Sopenharmony_ci .fontColor(this.enabledFocus ? [$r('sys.color.icon_primary')] : [$r('sys.color.icon_tertiary')]) 568df226684Sopenharmony_ci } 569df226684Sopenharmony_ci .accessibilityText(this.contactPerson) 570df226684Sopenharmony_ci .enabled(this.enabledFocus) 571df226684Sopenharmony_ci .offset({ 572df226684Sopenharmony_ci x: SystemUtils.isRTL() 573df226684Sopenharmony_ci ? Constants.SHARE_CONTACTS_GROUP_OFFSET_X_RTL : Constants.SHARE_CONTACTS_GROUP_OFFSET_X, 574df226684Sopenharmony_ci y: Constants.SHARE_CONTACTS_GROUP_OFFSET_Y 575df226684Sopenharmony_ci }) 576df226684Sopenharmony_ci .onClick(() => { 577df226684Sopenharmony_ci this.isShowSheet = !this.isShowSheet; 578df226684Sopenharmony_ci }) 579df226684Sopenharmony_ci .bindSheet(this.isShowSheet, this.contactsPicker(), { 580df226684Sopenharmony_ci height: SheetSize.LARGE, 581df226684Sopenharmony_ci dragBar: false, 582df226684Sopenharmony_ci showClose: true, 583df226684Sopenharmony_ci onWillDisappear: () => { 584df226684Sopenharmony_ci this.isShowSheet = false; 585df226684Sopenharmony_ci }, 586df226684Sopenharmony_ci backgroundColor: Color.Transparent, 587df226684Sopenharmony_ci blurStyle: BlurStyle.COMPONENT_ULTRA_THICK 588df226684Sopenharmony_ci }) 589df226684Sopenharmony_ci } 590df226684Sopenharmony_ci } 591df226684Sopenharmony_ci 592df226684Sopenharmony_ci Text(this.phoneFormatTips ? 593df226684Sopenharmony_ci this.credentialCallBackMsg : $r('app.string.Share_Enter_Mobile_Number', this.osVersion)) 594df226684Sopenharmony_ci .fontColor(this.phoneFormatTips ? 595df226684Sopenharmony_ci $r('sys.color.ohos_id_color_warning') : $r('sys.color.ohos_id_color_text_secondary')) 596df226684Sopenharmony_ci .fontSize($r('sys.float.ohos_id_text_size_body3')) 597df226684Sopenharmony_ci .fontWeight(FontWeight.Regular) 598df226684Sopenharmony_ci .margin({ top: Constants.ENCRYPTION_ADD_STAFF_BORDER_MARGIN_TOP }) 599df226684Sopenharmony_ci .backgroundColor(Color.Transparent) 600df226684Sopenharmony_ci .width(Constants.CONTACTS_PICKER_WIDTH) 601df226684Sopenharmony_ci .padding({ left: Constants.SHARE_TITLE_HEAD_PADDING_LEFT }) 602df226684Sopenharmony_ci } 603df226684Sopenharmony_ci .margin({ left: Constants.SHARE_TEXT_INPUT_MARGIN_LEFT, right: Constants.SHARE_TEXT_INPUT_MARGIN_RIGHT }) 604df226684Sopenharmony_ci } 605df226684Sopenharmony_ci .align(Alignment.TopStart) 606df226684Sopenharmony_ci .constraintSize({ 607df226684Sopenharmony_ci minHeight: `${Constants.SHARE_TEXTAREA_MAX_HEIGHT}vp` 608df226684Sopenharmony_ci }) 609df226684Sopenharmony_ci .padding({ 610df226684Sopenharmony_ci top: Constants.SHARE_TITLE_HEAD_MARGIN_BOTTOM 611df226684Sopenharmony_ci }) 612df226684Sopenharmony_ci 613df226684Sopenharmony_ci Column() { 614df226684Sopenharmony_ci Button($r('app.string.Share_Confirms'), { type: ButtonType.Capsule, stateEffect: true }) 615df226684Sopenharmony_ci .enabled(this.isConfirmButtonEnabled) 616df226684Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_text_primary_activated')) 617df226684Sopenharmony_ci .width(Constants.SHARE_BUTTON_WIDTH) 618df226684Sopenharmony_ci .controlSize(ControlSize.NORMAL) 619df226684Sopenharmony_ci .onClick(async () => { 620df226684Sopenharmony_ci this.beginShareEncrypt(); 621df226684Sopenharmony_ci }) 622df226684Sopenharmony_ci } 623df226684Sopenharmony_ci .justifyContent(FlexAlign.Center) 624df226684Sopenharmony_ci .margin({ 625df226684Sopenharmony_ci top: Constants.SHARE_BUTTON_MARGIN_TOP, 626df226684Sopenharmony_ci left: Constants.SHARE_BUTTON_MARGIN_LEFT, 627df226684Sopenharmony_ci right: Constants.SHARE_BUTTON_MARGIN_RIGHT, 628df226684Sopenharmony_ci bottom: Constants.SHARE_BUTTON_PADDING_BOTTOM 629df226684Sopenharmony_ci }) 630df226684Sopenharmony_ci } 631df226684Sopenharmony_ci .width(Constants.SHARE_PAGES_COLUMN_WIDTH) 632df226684Sopenharmony_ci .height(Constants.SHARE_PAGES_COLUMN_HEIGHT) 633df226684Sopenharmony_ci 634df226684Sopenharmony_ci if (this.showUIExtensionForAccountLogin) { 635df226684Sopenharmony_ci UIExtensionComponent({ 636df226684Sopenharmony_ci bundleName: 'com.huawei.hmos.dlpcredmgr', 637df226684Sopenharmony_ci abilityName: 'DlpCredAccountAbility', 638df226684Sopenharmony_ci parameters: { 639df226684Sopenharmony_ci 'ability.want.params.uiExtensionType': 'sys/commonUI' 640df226684Sopenharmony_ci } 641df226684Sopenharmony_ci }) 642df226684Sopenharmony_ci .id('cloudAccountLoginUI') 643df226684Sopenharmony_ci .onRemoteReady(() => { 644df226684Sopenharmony_ci try { 645df226684Sopenharmony_ci HiLog.info(TAG, `cloudAccountLoginUI requestFocus start`); 646df226684Sopenharmony_ci this.getUIContext().getFocusController().requestFocus('cloudAccountLoginUI'); 647df226684Sopenharmony_ci } catch (error) { 648df226684Sopenharmony_ci HiLog.error(TAG, `requestFocus failed. Cause: ${JSON.stringify(error)}`) 649df226684Sopenharmony_ci } 650df226684Sopenharmony_ci }) 651df226684Sopenharmony_ci .onReceive((data) => { 652df226684Sopenharmony_ci HiLog.info(TAG, `data.status: ${JSON.stringify(data.status)}`); 653df226684Sopenharmony_ci let res = data.result as Record<string, string>; 654df226684Sopenharmony_ci HiLog.info(TAG, `res.code: ${JSON.stringify(res.code)}`); 655df226684Sopenharmony_ci if (data.status) { 656df226684Sopenharmony_ci this.ownerAccount = res?.uid; 657df226684Sopenharmony_ci this.ownerAccountID = res?.uid; 658df226684Sopenharmony_ci let checkCloudPhone = this.checkCloudPhone(this.inputValue); 659df226684Sopenharmony_ci HiLog.info(TAG, `checkCloudPhone: ${checkCloudPhone}`); 660df226684Sopenharmony_ci if (checkCloudPhone) { 661df226684Sopenharmony_ci this.enabledFocus = false; 662df226684Sopenharmony_ci this.isConfirmButtonEnabled = false; 663df226684Sopenharmony_ci this.connectService.connectServiceShareAbility(Constants.COMMAND_SEARCH_USER_INFO); 664df226684Sopenharmony_ci } 665df226684Sopenharmony_ci } else { 666df226684Sopenharmony_ci this.enabledFocus = true; 667df226684Sopenharmony_ci this.isConfirmButtonEnabled = this.inputValue.length > 0; 668df226684Sopenharmony_ci if (['12300001', '1001502005', '1001502009'].includes(res.code.toString())) { 669df226684Sopenharmony_ci this.showToast($r('app.string.network_invalid')); 670df226684Sopenharmony_ci } 671df226684Sopenharmony_ci } 672df226684Sopenharmony_ci this.isTextInputFocus = true; 673df226684Sopenharmony_ci this.textInputGetFocus(); 674df226684Sopenharmony_ci this.showUIExtensionForAccountLogin = false; 675df226684Sopenharmony_ci }) 676df226684Sopenharmony_ci .size({ 677df226684Sopenharmony_ci width: Constants.SHARE_PAGES_COLUMN_WIDTH, height: Constants.SHARE_PAGES_COLUMN_HEIGHT 678df226684Sopenharmony_ci }) 679df226684Sopenharmony_ci } 680df226684Sopenharmony_ci } 681df226684Sopenharmony_ci } 682df226684Sopenharmony_ci}