1c36cf2e9Sopenharmony_ci/* 2c36cf2e9Sopenharmony_ci * Copyright (c) 2023-2023 Huawei Device Co., Ltd. 3c36cf2e9Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c36cf2e9Sopenharmony_ci * you may not use this file except in compliance with the License. 5c36cf2e9Sopenharmony_ci * You may obtain a copy of the License at 6c36cf2e9Sopenharmony_ci * 7c36cf2e9Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c36cf2e9Sopenharmony_ci * 9c36cf2e9Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c36cf2e9Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c36cf2e9Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c36cf2e9Sopenharmony_ci * See the License for the specific language governing permissions and 13c36cf2e9Sopenharmony_ci * limitations under the License. 14c36cf2e9Sopenharmony_ci */ 15c36cf2e9Sopenharmony_ci 16c36cf2e9Sopenharmony_ciimport { Constants } from '../model/Constants'; 17c36cf2e9Sopenharmony_ciimport { GlobalThisHelper } from '../model/GlobalThisHelper'; 18c36cf2e9Sopenharmony_ciimport { GlobalThisStorageKey} from '../model/GlobalThisStorageKey'; 19c36cf2e9Sopenharmony_ciimport type common from '@ohos.app.ability.common'; 20c36cf2e9Sopenharmony_ciimport CheckEmptyUtils from './CheckEmptyUtils'; 21c36cf2e9Sopenharmony_ciimport { Log } from './Log'; 22c36cf2e9Sopenharmony_ci 23c36cf2e9Sopenharmony_ciexport class StringUtil { 24c36cf2e9Sopenharmony_ci private static readonly DEFAULT_LEN_OF_COMMON_STR: number = 6; 25c36cf2e9Sopenharmony_ci private static readonly HALF_LEN_OF_COMMON_STR: number = 3; 26c36cf2e9Sopenharmony_ci private static readonly LINK_OF_COMMON_STR: string = '****'; 27c36cf2e9Sopenharmony_ci /** 28c36cf2e9Sopenharmony_ci * Get String from resources. 29c36cf2e9Sopenharmony_ci * 30c36cf2e9Sopenharmony_ci * @param {string} name - name of string.json 31c36cf2e9Sopenharmony_ci * @return {string} - string from res 32c36cf2e9Sopenharmony_ci */ 33c36cf2e9Sopenharmony_ci public static getString(name: string, ...args: Array<string | number>): string { 34c36cf2e9Sopenharmony_ci let abilityContext = GlobalThisHelper.getValue<common.UIExtensionContext>(GlobalThisStorageKey.KEY_MAIN_ABILITY_CONTEXT); 35c36cf2e9Sopenharmony_ci Log.info('getString abilityContext: ' +abilityContext) 36c36cf2e9Sopenharmony_ci if (abilityContext !== undefined && !CheckEmptyUtils.checkStrIsEmpty(name)) { 37c36cf2e9Sopenharmony_ci return <string> abilityContext?.resourceManager?.getStringByNameSync(name, ...args) ?? ''; 38c36cf2e9Sopenharmony_ci } 39c36cf2e9Sopenharmony_ci return ''; 40c36cf2e9Sopenharmony_ci } 41c36cf2e9Sopenharmony_ci /** 42c36cf2e9Sopenharmony_ci * Get String from resources. 43c36cf2e9Sopenharmony_ci * 44c36cf2e9Sopenharmony_ci * @param name string code 45c36cf2e9Sopenharmony_ci * @param context context 46c36cf2e9Sopenharmony_ci * @param args variable args 47c36cf2e9Sopenharmony_ci * @returns string value 48c36cf2e9Sopenharmony_ci */ 49c36cf2e9Sopenharmony_ci public static getStringByName(name: string, context: common.Context, ...args: Array<string | number>): string { 50c36cf2e9Sopenharmony_ci if (CheckEmptyUtils.isEmpty(context) || CheckEmptyUtils.checkStrIsEmpty(name)) { 51c36cf2e9Sopenharmony_ci return ''; 52c36cf2e9Sopenharmony_ci } 53c36cf2e9Sopenharmony_ci return context!.resourceManager?.getStringByNameSync(name, ...args) ?? ''; 54c36cf2e9Sopenharmony_ci } 55c36cf2e9Sopenharmony_ci /** 56c36cf2e9Sopenharmony_ci * get anonymization string 57c36cf2e9Sopenharmony_ci * 58c36cf2e9Sopenharmony_ci * @param {string} originStr - string 59c36cf2e9Sopenharmony_ci * @return {string} - anonymization string 60c36cf2e9Sopenharmony_ci */ 61c36cf2e9Sopenharmony_ci public static encodeCommonString(originStr: string):string { 62c36cf2e9Sopenharmony_ci if (!originStr) { 63c36cf2e9Sopenharmony_ci return originStr; 64c36cf2e9Sopenharmony_ci } 65c36cf2e9Sopenharmony_ci if (originStr.length <= this.DEFAULT_LEN_OF_COMMON_STR) { 66c36cf2e9Sopenharmony_ci return originStr; 67c36cf2e9Sopenharmony_ci } 68c36cf2e9Sopenharmony_ci return originStr.substring(0, this.HALF_LEN_OF_COMMON_STR) + 69c36cf2e9Sopenharmony_ci this.LINK_OF_COMMON_STR + 70c36cf2e9Sopenharmony_ci originStr.substring(originStr.length - this.HALF_LEN_OF_COMMON_STR); 71c36cf2e9Sopenharmony_ci } 72c36cf2e9Sopenharmony_ci 73c36cf2e9Sopenharmony_ci /** 74c36cf2e9Sopenharmony_ci * get split mac 75c36cf2e9Sopenharmony_ci * 76c36cf2e9Sopenharmony_ci * @param {string} str - string 77c36cf2e9Sopenharmony_ci * @return {string} - anonymization mac string 78c36cf2e9Sopenharmony_ci */ 79c36cf2e9Sopenharmony_ci public static splitMac(str: string):string { 80c36cf2e9Sopenharmony_ci if (!str) { 81c36cf2e9Sopenharmony_ci return str; 82c36cf2e9Sopenharmony_ci } 83c36cf2e9Sopenharmony_ci let strSplit = str.split('://'); 84c36cf2e9Sopenharmony_ci if (strSplit.length > 1) { 85c36cf2e9Sopenharmony_ci return strSplit[0] + '://' + this.encodeCommonString(strSplit[1]); 86c36cf2e9Sopenharmony_ci } else if (str.length > this.DEFAULT_LEN_OF_COMMON_STR) { 87c36cf2e9Sopenharmony_ci return this.encodeCommonString(str); 88c36cf2e9Sopenharmony_ci } else { 89c36cf2e9Sopenharmony_ci return str; 90c36cf2e9Sopenharmony_ci } 91c36cf2e9Sopenharmony_ci } 92c36cf2e9Sopenharmony_ci 93c36cf2e9Sopenharmony_ci public static getNetTypeByPrintId(printId: string):string { 94c36cf2e9Sopenharmony_ci if (!printId) { 95c36cf2e9Sopenharmony_ci return printId; 96c36cf2e9Sopenharmony_ci } 97c36cf2e9Sopenharmony_ci let printIdSplit = printId.split(':'); 98c36cf2e9Sopenharmony_ci let minLength = 2; 99c36cf2e9Sopenharmony_ci if (printIdSplit.length > minLength) { 100c36cf2e9Sopenharmony_ci return printIdSplit[1]; 101c36cf2e9Sopenharmony_ci } else { 102c36cf2e9Sopenharmony_ci return ''; 103c36cf2e9Sopenharmony_ci } 104c36cf2e9Sopenharmony_ci } 105c36cf2e9Sopenharmony_ci 106c36cf2e9Sopenharmony_ci}