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 EnvironmentProp from '../../feature/EnvironmentProp'; 178779efd5Sopenharmony_ciimport DialerPresenter from '../../presenter/dialer/DialerPresenter'; 188779efd5Sopenharmony_ciimport { MutiDialerButtonView } from '../mutisim/MutiDialerButtonView' 198779efd5Sopenharmony_ciimport { PhoneNumber } from '../../../../../../feature/phonenumber'; 208779efd5Sopenharmony_ciimport { HiLog } from '../../../../../../common/src/main/ets/util/HiLog'; 218779efd5Sopenharmony_ciimport promptAction from '@ohos.promptAction' 228779efd5Sopenharmony_ci 238779efd5Sopenharmony_ciconst TAG = 'DialerButtonView'; 248779efd5Sopenharmony_ci@Component 258779efd5Sopenharmony_ciexport struct DialerButtonView { 268779efd5Sopenharmony_ci emergencyNum: string; 278779efd5Sopenharmony_ci @Link mPresenter: DialerPresenter; 288779efd5Sopenharmony_ci @StorageLink('tele_number') tele_number: string = ''; 298779efd5Sopenharmony_ci @StorageLink('haveSimCard') haveSimCard: boolean = false; 308779efd5Sopenharmony_ci @StorageLink('haveMultiSimCard') haveMultiSimCard: boolean = false; 318779efd5Sopenharmony_ci @StorageLink('haveVoLteReg') haveVoLteReg: boolean = false; 328779efd5Sopenharmony_ci 338779efd5Sopenharmony_ci dialClick() { 348779efd5Sopenharmony_ci this.mPresenter.callBtnClick = true; 358779efd5Sopenharmony_ci if (!this.haveSimCard) { 368779efd5Sopenharmony_ci HiLog.i(TAG, 'No SIM card!'); 378779efd5Sopenharmony_ci this.emergencyNum = this.mPresenter.all_number; 388779efd5Sopenharmony_ci //TODO Pop-up window for dialing without a SIM card 398779efd5Sopenharmony_ci PhoneNumber.fromString(this.mPresenter.all_number).isDialEmergencyNum().then((res) => { 408779efd5Sopenharmony_ci this.mPresenter.isEmergencyNum = res; 418779efd5Sopenharmony_ci if (!this.mPresenter.isEmergencyNum) { 428779efd5Sopenharmony_ci HiLog.i(TAG, 'Is not Emergency Phone Number!'); 438779efd5Sopenharmony_ci promptAction.showToast({ 448779efd5Sopenharmony_ci message: $r('app.string.no_simCardDailog'), 458779efd5Sopenharmony_ci duration: 2000, 468779efd5Sopenharmony_ci bottom:'60%' 478779efd5Sopenharmony_ci }); 488779efd5Sopenharmony_ci return; 498779efd5Sopenharmony_ci } else { 508779efd5Sopenharmony_ci this.mPresenter.dialing(this.emergencyNum); 518779efd5Sopenharmony_ci } 528779efd5Sopenharmony_ci }) 538779efd5Sopenharmony_ci } else { 548779efd5Sopenharmony_ci if (this.tele_number.length > 0) { 558779efd5Sopenharmony_ci this.mPresenter.dialing(this.mPresenter.all_number); 568779efd5Sopenharmony_ci } 578779efd5Sopenharmony_ci } 588779efd5Sopenharmony_ci AppStorage.SetOrCreate('tele_number', ''); 598779efd5Sopenharmony_ci this.mPresenter.all_number = ''; 608779efd5Sopenharmony_ci this.mPresenter.callBtnClick = false; 618779efd5Sopenharmony_ci } 628779efd5Sopenharmony_ci 638779efd5Sopenharmony_ci build() { 648779efd5Sopenharmony_ci Row() { 658779efd5Sopenharmony_ci if (!this.haveMultiSimCard) { 668779efd5Sopenharmony_ci if (this.haveSimCard && this.haveVoLteReg) { 678779efd5Sopenharmony_ci Button() { 688779efd5Sopenharmony_ci Image($r('app.media.dial_single_button_hd')) 698779efd5Sopenharmony_ci .width($r('app.float.id_item_height_large')) 708779efd5Sopenharmony_ci .height($r('app.float.id_item_height_large')) 718779efd5Sopenharmony_ci } 728779efd5Sopenharmony_ci .width(this.mPresenter.dialerButtonHeight) 738779efd5Sopenharmony_ci .height(this.mPresenter.dialerButtonHeight) 748779efd5Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_connected')) 758779efd5Sopenharmony_ci .opacity(!EnvironmentProp.isTablet() || this.mPresenter.btnShow || this.haveSimCard 768779efd5Sopenharmony_ci ? 1 : $r('sys.float.ohos_id_alpha_disabled')) 778779efd5Sopenharmony_ci .onClick(() => { 788779efd5Sopenharmony_ci this.dialClick(); 798779efd5Sopenharmony_ci }) 808779efd5Sopenharmony_ci } else { 818779efd5Sopenharmony_ci Button() { 828779efd5Sopenharmony_ci Image($r('app.media.ic_public_phone_filled_white')) 838779efd5Sopenharmony_ci .width($r('app.float.id_card_margin_xxxxl')) 848779efd5Sopenharmony_ci .height($r('app.float.id_card_margin_xxxxl')) 858779efd5Sopenharmony_ci } 868779efd5Sopenharmony_ci .width(this.mPresenter.dialerButtonHeight) 878779efd5Sopenharmony_ci .height(this.mPresenter.dialerButtonHeight) 888779efd5Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_connected')) 898779efd5Sopenharmony_ci .opacity(!EnvironmentProp.isTablet() || this.mPresenter.btnShow || this.haveSimCard 908779efd5Sopenharmony_ci ? 1 : $r('sys.float.ohos_id_alpha_disabled')) 918779efd5Sopenharmony_ci .onClick(() => { 928779efd5Sopenharmony_ci this.dialClick(); 938779efd5Sopenharmony_ci }) 948779efd5Sopenharmony_ci } 958779efd5Sopenharmony_ci } else { 968779efd5Sopenharmony_ci MutiDialerButtonView({ 978779efd5Sopenharmony_ci mPresenter: $mPresenter, 988779efd5Sopenharmony_ci }).height(this.mPresenter.dialerButtonHeight) 998779efd5Sopenharmony_ci } 1008779efd5Sopenharmony_ci }.width(this.mPresenter.dialerButtonWidth) 1018779efd5Sopenharmony_ci .height(this.mPresenter.dialerButtonHeight) 1028779efd5Sopenharmony_ci .justifyContent(FlexAlign.Center) 1038779efd5Sopenharmony_ci } 1048779efd5Sopenharmony_ci}