199da06d0Sopenharmony_ci/**
299da06d0Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
399da06d0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
499da06d0Sopenharmony_ci * you may not use this file except in compliance with the License.
599da06d0Sopenharmony_ci * You may obtain a copy of the License at
699da06d0Sopenharmony_ci *
799da06d0Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
899da06d0Sopenharmony_ci *
999da06d0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1099da06d0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1199da06d0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1299da06d0Sopenharmony_ci * See the License for the specific language governing permissions and
1399da06d0Sopenharmony_ci * limitations under the License.
1499da06d0Sopenharmony_ci */
1599da06d0Sopenharmony_ci
1699da06d0Sopenharmony_ci/**
1799da06d0Sopenharmony_ci * Call Util
1899da06d0Sopenharmony_ci *
1999da06d0Sopenharmony_ci * standard:
2099da06d0Sopenharmony_ci * 1. define TAG, recommend class name.
2199da06d0Sopenharmony_ci * 2. switch IS_DEBUG_ON as true, when debugging.
2299da06d0Sopenharmony_ci * 3. msg should be short and valuable.
2399da06d0Sopenharmony_ci * 4. choose appropriate function.
2499da06d0Sopenharmony_ci * 5. the function execute many times can not print.
2599da06d0Sopenharmony_ci * 6. uniqueness.
2699da06d0Sopenharmony_ci */
2799da06d0Sopenharmony_ciimport call from '@ohos.telephony.call';
2899da06d0Sopenharmony_ciimport sim from '@ohos.telephony.sim';
2999da06d0Sopenharmony_ciimport LogUtils from './LogUtils';
3099da06d0Sopenharmony_ci
3199da06d0Sopenharmony_ciconst TAG = 'CallUtils';
3299da06d0Sopenharmony_ci
3399da06d0Sopenharmony_ci/**
3499da06d0Sopenharmony_ci *  calllog package tool class
3599da06d0Sopenharmony_ci */
3699da06d0Sopenharmony_ciexport class CallUtils {
3799da06d0Sopenharmony_ci  /**
3899da06d0Sopenharmony_ci   * Judge whether there is a sim card.
3999da06d0Sopenharmony_ci   *
4099da06d0Sopenharmony_ci   * @param { accountId } accountId
4199da06d0Sopenharmony_ci   *
4299da06d0Sopenharmony_ci   * @return { boolean } - return success true fail false
4399da06d0Sopenharmony_ci   */
4499da06d0Sopenharmony_ci  public hasSimeCard: Function = (accountId) => new Promise((resolve, reject) => {
4599da06d0Sopenharmony_ci    sim.hasSimCard(accountId).then((res) => {
4699da06d0Sopenharmony_ci      resolve(res);
4799da06d0Sopenharmony_ci      if (accountId === 0) {
4899da06d0Sopenharmony_ci        AppStorage.SetOrCreate('hasSimCard1', res);
4999da06d0Sopenharmony_ci      } else if (accountId === 1) {
5099da06d0Sopenharmony_ci        AppStorage.SetOrCreate('hasSimCard2', res);
5199da06d0Sopenharmony_ci      }
5299da06d0Sopenharmony_ci    })
5399da06d0Sopenharmony_ci      .catch((err) => {
5499da06d0Sopenharmony_ci        reject(err);
5599da06d0Sopenharmony_ci        LogUtils.i(TAG, 'catch:hasSimeCard :' + JSON.stringify(err));
5699da06d0Sopenharmony_ci      });
5799da06d0Sopenharmony_ci  });
5899da06d0Sopenharmony_ci
5999da06d0Sopenharmony_ci  /**
6099da06d0Sopenharmony_ci   * Determine whether the call is an emergency call.
6199da06d0Sopenharmony_ci   *
6299da06d0Sopenharmony_ci   * @param { phoneNumber } phoneNumber-number
6399da06d0Sopenharmony_ci   *
6499da06d0Sopenharmony_ci   * @return { boolean } - return success true fail false
6599da06d0Sopenharmony_ci   */
6699da06d0Sopenharmony_ci  public isEmergencyPhoneNumber: Function = (phoneNumber) => new Promise((resolve, reject) => {
6799da06d0Sopenharmony_ci    call.isEmergencyPhoneNumber(phoneNumber, {
6899da06d0Sopenharmony_ci      slotId: 0
6999da06d0Sopenharmony_ci    }).then((res) => {
7099da06d0Sopenharmony_ci      resolve(res);
7199da06d0Sopenharmony_ci      AppStorage.SetOrCreate('IsEmergencyPhoneNumber', res);
7299da06d0Sopenharmony_ci      LogUtils.i(TAG, 'then:isEmergencyPhoneNumber :' + JSON.stringify(res));
7399da06d0Sopenharmony_ci    }).catch((err) => {
7499da06d0Sopenharmony_ci      reject(err);
7599da06d0Sopenharmony_ci      LogUtils.i(TAG, 'catch:isEmergencyPhoneNumber :' + JSON.stringify(err));
7699da06d0Sopenharmony_ci    });
7799da06d0Sopenharmony_ci  });
7899da06d0Sopenharmony_ci}
7999da06d0Sopenharmony_ci
8099da06d0Sopenharmony_cilet mCallUtil = new CallUtils();
8199da06d0Sopenharmony_ci
8299da06d0Sopenharmony_ciexport default mCallUtil as CallUtils;
8399da06d0Sopenharmony_ci
84