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 { PrinterInfo, PrintJob, queryAllPrintJobs} from '@ohos/common';
17c36cf2e9Sopenharmony_ciimport PrintAdapter from '../../Common/Adapter/PrintAdapter'
18c36cf2e9Sopenharmony_ciimport { GlobalThisHelper, GlobalThisStorageKey} from '@ohos/common';
19c36cf2e9Sopenharmony_ciimport {Constants } from '@ohos/common'
20c36cf2e9Sopenharmony_ciimport { Log } from '@ohos/common';
21c36cf2e9Sopenharmony_ciimport { CopyUtil }from '@ohos/common';
22c36cf2e9Sopenharmony_ciimport promptAction from '@ohos.promptAction';
23c36cf2e9Sopenharmony_ciimport {CancelButton} from '../component/BaseComponent';
24c36cf2e9Sopenharmony_ci
25c36cf2e9Sopenharmony_ciconst TAG = 'CusDialogComp'
26c36cf2e9Sopenharmony_ci
27c36cf2e9Sopenharmony_ci@CustomDialog
28c36cf2e9Sopenharmony_ciexport struct PrintingSelectDialog{
29c36cf2e9Sopenharmony_ci  @StorageLink('PrinterQueue') printerList: Array<PrinterInfo> = new Array();
30c36cf2e9Sopenharmony_ci  @Consume('PrintAdapter') adapter:PrintAdapter;
31c36cf2e9Sopenharmony_ci  @Consume('PrinterSelectFlag') printerSelectFlag:boolean;
32c36cf2e9Sopenharmony_ci  @Consume('WLANFlag') wlanFlag:boolean;
33c36cf2e9Sopenharmony_ci  private printingSelectDialogCtl?: CustomDialogController;
34c36cf2e9Sopenharmony_ci
35c36cf2e9Sopenharmony_ci  build(){
36c36cf2e9Sopenharmony_ci    Column() {
37c36cf2e9Sopenharmony_ci      Row(){
38c36cf2e9Sopenharmony_ci        Text($r('app.string.custom_dialog_choose_printer')).key('PrintingSelectDialog_Text_choosePrinter')
39c36cf2e9Sopenharmony_ci          .fontWeight(FontWeight.Medium)
40c36cf2e9Sopenharmony_ci          .fontSize($r('app.float.font_size_headline8'))
41c36cf2e9Sopenharmony_ci          .textAlign(TextAlign.Start)
42c36cf2e9Sopenharmony_ci      }
43c36cf2e9Sopenharmony_ci      .justifyContent(FlexAlign.Start)
44c36cf2e9Sopenharmony_ci      .width('100%')
45c36cf2e9Sopenharmony_ci      .height($r('app.float.printer_select_title_height'))
46c36cf2e9Sopenharmony_ci      .padding({left:$r('app.float.printer_select_padding_left'),right:$r('app.float.printer_select_padding_right')})
47c36cf2e9Sopenharmony_ci      //show printer list
48c36cf2e9Sopenharmony_ci      Stack(){
49c36cf2e9Sopenharmony_ci        List({initialIndex: Constants.NUMBER_0}){
50c36cf2e9Sopenharmony_ci          ForEach(this.printerList,(printer: PrinterInfo)=>{
51c36cf2e9Sopenharmony_ci            ListItem(){
52c36cf2e9Sopenharmony_ci              printerItem({currentPrinter:printer,printingSelectDialogCtl:this.printingSelectDialogCtl})
53c36cf2e9Sopenharmony_ci            }.key(`PrintingSelectDialog_ListItem_${printer.printerName}`)
54c36cf2e9Sopenharmony_ci          },(printer: PrinterInfo)=>JSON.stringify(printer))
55c36cf2e9Sopenharmony_ci        }.key('PrintingSelectDialog_List_printerList')
56c36cf2e9Sopenharmony_ci        .width('100%')
57c36cf2e9Sopenharmony_ci        .height(this.getAdjustedHeight())
58c36cf2e9Sopenharmony_ci        .edgeEffect(EdgeEffect.Spring)
59c36cf2e9Sopenharmony_ci
60c36cf2e9Sopenharmony_ci        Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
61c36cf2e9Sopenharmony_ci          Column(){
62c36cf2e9Sopenharmony_ci            Image($r('app.media.ic_no_printer')).fillColor('#66000000').width(96).height(96).margin({bottom:8})
63c36cf2e9Sopenharmony_ci            Text($r('app.string.custom_dialog_no_printer')).fontColor('#66000000').fontSize($r('app.float.font_size_body2'))
64c36cf2e9Sopenharmony_ci          }
65c36cf2e9Sopenharmony_ci        }.width($r('app.float.no_printer_image_width')).height($r('app.float.no_printer_image_height')).backgroundColor($r('app.color.white'))
66c36cf2e9Sopenharmony_ci        .visibility(this.printerList.length === Constants.NUMBER_0 ? Visibility.Visible : Visibility.None)
67c36cf2e9Sopenharmony_ci      }
68c36cf2e9Sopenharmony_ci
69c36cf2e9Sopenharmony_ci      CancelButton({
70c36cf2e9Sopenharmony_ci        cancelLabel: $r('app.string.Cancel'),
71c36cf2e9Sopenharmony_ci        cancelWidth: $r('app.float.dialog_button_width'),
72c36cf2e9Sopenharmony_ci        cancelHeight: $r('app.float.dialog_button_height'),
73c36cf2e9Sopenharmony_ci        cancelClick: () => {
74c36cf2e9Sopenharmony_ci          this.printingSelectDialogCtl?.close()
75c36cf2e9Sopenharmony_ci          GlobalThisHelper.createValue<boolean>(false, GlobalThisStorageKey.KEY_PRINTER_SELECT_DIALOG_OPEN, true)
76c36cf2e9Sopenharmony_ci        }
77c36cf2e9Sopenharmony_ci      })
78c36cf2e9Sopenharmony_ci        .margin({top:$r('app.float.printer_select_button_margin_top'), bottom:$r('app.float.printer_select_button_margin_bottom')})
79c36cf2e9Sopenharmony_ci        .key('PrintingSelectDialog_Button_cancel')
80c36cf2e9Sopenharmony_ci
81c36cf2e9Sopenharmony_ci
82c36cf2e9Sopenharmony_ci    }
83c36cf2e9Sopenharmony_ci    .width($r('app.float.dialog_width'))
84c36cf2e9Sopenharmony_ci    .backgroundColor(Color.White)
85c36cf2e9Sopenharmony_ci    .borderRadius($r('app.float.radius_l'))
86c36cf2e9Sopenharmony_ci    .alignItems(HorizontalAlign.Center)
87c36cf2e9Sopenharmony_ci  }
88c36cf2e9Sopenharmony_ci
89c36cf2e9Sopenharmony_ci  aboutToAppear(){
90c36cf2e9Sopenharmony_ci    Log.info(TAG,'PrintingSelectDialog aboutToAppear');
91c36cf2e9Sopenharmony_ci    GlobalThisHelper.createValue<boolean>(true, GlobalThisStorageKey.KEY_PRINTER_SELECT_DIALOG_OPEN, true);
92c36cf2e9Sopenharmony_ci    Log.info(TAG,'createValue KEY_PRINTER_SELECT_DIALOG_OPEN: '+true)
93c36cf2e9Sopenharmony_ci  }
94c36cf2e9Sopenharmony_ci
95c36cf2e9Sopenharmony_ci  getAdjustedHeight():number | Resource {
96c36cf2e9Sopenharmony_ci    let height: number | Resource = Constants.NUMBER_48;
97c36cf2e9Sopenharmony_ci    if(this.printerList.length < Constants.NUMBER_9){
98c36cf2e9Sopenharmony_ci      height = Constants.NUMBER_48 * this.printerList.length
99c36cf2e9Sopenharmony_ci    }else{
100c36cf2e9Sopenharmony_ci      height = $r('app.float.printer_select_max_height')
101c36cf2e9Sopenharmony_ci    }
102c36cf2e9Sopenharmony_ci    Log.info(TAG,'getAdjustedHeight: '+height)
103c36cf2e9Sopenharmony_ci    return height
104c36cf2e9Sopenharmony_ci  }
105c36cf2e9Sopenharmony_ci}
106c36cf2e9Sopenharmony_ci
107c36cf2e9Sopenharmony_ci@Component
108c36cf2e9Sopenharmony_cistruct printerItem{
109c36cf2e9Sopenharmony_ci  private printingSelectDialogCtl?: CustomDialogController;
110c36cf2e9Sopenharmony_ci  private currentPrinter ?: PrinterInfo;
111c36cf2e9Sopenharmony_ci  @Consume('CanPrint') canPrint:boolean;
112c36cf2e9Sopenharmony_ci  @Consume('Printer') printer:PrinterInfo;
113c36cf2e9Sopenharmony_ci  @Consume('PrintAdapter') adapter:PrintAdapter;
114c36cf2e9Sopenharmony_ci  @Consume('ConnectFlag') connectFlag:boolean;
115c36cf2e9Sopenharmony_ci  @Consume('PrinterSelectFlag') printerSelectFlag:boolean;
116c36cf2e9Sopenharmony_ci  @Consume('ConnectCountDownTimer') timer:number;
117c36cf2e9Sopenharmony_ci  @Consume('ConnectingPrinterId') connectingPrinterId:string;
118c36cf2e9Sopenharmony_ci  @Consume('UsedPrinterId') usedPrinterId: string;
119c36cf2e9Sopenharmony_ci  @State bgColor : Resource = $r('app.color.white')
120c36cf2e9Sopenharmony_ci
121c36cf2e9Sopenharmony_ci  build(){
122c36cf2e9Sopenharmony_ci    Row() {
123c36cf2e9Sopenharmony_ci      Image($r('app.media.ic_public_printer'))
124c36cf2e9Sopenharmony_ci        .width($r('app.float.image_comp_width'))
125c36cf2e9Sopenharmony_ci        .height($r('app.float.image_comp_height'))
126c36cf2e9Sopenharmony_ci        .margin({left:$r('app.float.printer_select_item_image_margin_left'),right:$r('app.float.printer_select_item_image_margin_right')})
127c36cf2e9Sopenharmony_ci      Text(this.currentPrinter?.printerName)
128c36cf2e9Sopenharmony_ci        .margin({right:$r('app.float.printer_select_item_text_margin_right')})
129c36cf2e9Sopenharmony_ci        .fontSize($r('app.float.font_size_body1'))
130c36cf2e9Sopenharmony_ci    }
131c36cf2e9Sopenharmony_ci    .backgroundColor(this.bgColor)
132c36cf2e9Sopenharmony_ci    .borderRadius($r('app.float.radius_l')).height($r('app.float.printer_select_item_height'))
133c36cf2e9Sopenharmony_ci    .width('100%').margin({left:$r('app.float.printer_select_item_padding_left'),right:$r('app.float.printer_select_item_padding_right')})
134c36cf2e9Sopenharmony_ci    .onClick(()=>{
135c36cf2e9Sopenharmony_ci      this.handleToConnect()
136c36cf2e9Sopenharmony_ci    })
137c36cf2e9Sopenharmony_ci    .onHover((isHover: boolean) => {
138c36cf2e9Sopenharmony_ci      if (isHover) {
139c36cf2e9Sopenharmony_ci        this.bgColor =  $r('app.color.effect_color_hover')
140c36cf2e9Sopenharmony_ci      } else {
141c36cf2e9Sopenharmony_ci        this.bgColor =  $r('app.color.white')
142c36cf2e9Sopenharmony_ci      }
143c36cf2e9Sopenharmony_ci    })
144c36cf2e9Sopenharmony_ci    .onTouch((event: TouchEvent) => {
145c36cf2e9Sopenharmony_ci      if (event.type === TouchType.Down) {
146c36cf2e9Sopenharmony_ci        this.bgColor =  $r('app.color.effect_color_press')
147c36cf2e9Sopenharmony_ci      }
148c36cf2e9Sopenharmony_ci      if (event.type === TouchType.Up) {
149c36cf2e9Sopenharmony_ci        this.bgColor =  $r('app.color.white')
150c36cf2e9Sopenharmony_ci      }
151c36cf2e9Sopenharmony_ci    })
152c36cf2e9Sopenharmony_ci  }
153c36cf2e9Sopenharmony_ci
154c36cf2e9Sopenharmony_ci  async handleToConnect(){
155c36cf2e9Sopenharmony_ci    let result:Array<PrintJob> = await queryAllPrintJobs(this.usedPrinterId)
156c36cf2e9Sopenharmony_ci    Log.info(TAG,'handleToConnect after queryAllPrintJobs')
157c36cf2e9Sopenharmony_ci    Log.info(TAG,'handleToConnect typeof result'+typeof result)
158c36cf2e9Sopenharmony_ci    Log.info(TAG,'handleToConnect this.currentPrinter.printerId'+this.currentPrinter?.printerId)
159c36cf2e9Sopenharmony_ci    if (this.usedPrinterId !== this.currentPrinter?.printerId
160c36cf2e9Sopenharmony_ci        && result!==undefined && result.length!==0
161c36cf2e9Sopenharmony_ci        && !this.checkPrintingPrinter(this.currentPrinter!.printerId,result)){
162c36cf2e9Sopenharmony_ci      this.printingSelectDialogCtl?.close()
163c36cf2e9Sopenharmony_ci      GlobalThisHelper.createValue<boolean>(false, GlobalThisStorageKey.KEY_PRINTER_SELECT_DIALOG_OPEN, true)
164c36cf2e9Sopenharmony_ci      this.showToast($r('app.string.toast_cannot_connect_while_printing'))
165c36cf2e9Sopenharmony_ci    }else{
166c36cf2e9Sopenharmony_ci      Log.info(TAG,'handleToConnect result.length==0 ')
167c36cf2e9Sopenharmony_ci      clearInterval(this.timer)
168c36cf2e9Sopenharmony_ci      if (this.printer === undefined ||
169c36cf2e9Sopenharmony_ci      this.printer.printerId === Constants.STRING_NEGATIVE_ONE ||
170c36cf2e9Sopenharmony_ci      this.printer.printerId !== this.currentPrinter!.printerId) {
171c36cf2e9Sopenharmony_ci        this.checkConnectingPrinter()
172c36cf2e9Sopenharmony_ci        if (this.canPrint) {
173c36cf2e9Sopenharmony_ci          this.canPrint = false
174c36cf2e9Sopenharmony_ci        }
175c36cf2e9Sopenharmony_ci      }
176c36cf2e9Sopenharmony_ci      this.printer = CopyUtil.deepClone(this.currentPrinter)
177c36cf2e9Sopenharmony_ci      this.printingSelectDialogCtl?.close()
178c36cf2e9Sopenharmony_ci      GlobalThisHelper.createValue<boolean>(false, GlobalThisStorageKey.KEY_PRINTER_SELECT_DIALOG_OPEN, true)
179c36cf2e9Sopenharmony_ci    }
180c36cf2e9Sopenharmony_ci
181c36cf2e9Sopenharmony_ci  }
182c36cf2e9Sopenharmony_ci
183c36cf2e9Sopenharmony_ci
184c36cf2e9Sopenharmony_ci  checkConnectingPrinter(){
185c36cf2e9Sopenharmony_ci    if (this.connectingPrinterId !== Constants.DEFAULT_CONNECTING_PRINTER_ID) {
186c36cf2e9Sopenharmony_ci      this.adapter?.getPrinterDiscCtl()?.disconnectPrinter(this.connectingPrinterId).then(() => {
187c36cf2e9Sopenharmony_ci        this.startConnect();
188c36cf2e9Sopenharmony_ci      });
189c36cf2e9Sopenharmony_ci    } else {
190c36cf2e9Sopenharmony_ci      this.startConnect()
191c36cf2e9Sopenharmony_ci    }
192c36cf2e9Sopenharmony_ci  }
193c36cf2e9Sopenharmony_ci
194c36cf2e9Sopenharmony_ci  checkPrintingPrinter(printerId: string,jobs: Array<PrintJob>): boolean{
195c36cf2e9Sopenharmony_ci    let job = jobs.find((printJob)=>{
196c36cf2e9Sopenharmony_ci      return printJob.printerId === printerId
197c36cf2e9Sopenharmony_ci    });
198c36cf2e9Sopenharmony_ci    if (job === undefined || job === null) {
199c36cf2e9Sopenharmony_ci      Log.info(TAG,'checkPrintingPrinter false')
200c36cf2e9Sopenharmony_ci      return false;
201c36cf2e9Sopenharmony_ci    }else{
202c36cf2e9Sopenharmony_ci      Log.info(TAG,'checkPrintingPrinter true')
203c36cf2e9Sopenharmony_ci      return true;
204c36cf2e9Sopenharmony_ci    }
205c36cf2e9Sopenharmony_ci  }
206c36cf2e9Sopenharmony_ci
207c36cf2e9Sopenharmony_ci  startConnect(){
208c36cf2e9Sopenharmony_ci    Log.info(TAG, 'startConnect printConnect: ' + JSON.stringify(this.currentPrinter));
209c36cf2e9Sopenharmony_ci    this.adapter?.getPrinterDiscCtl()?.connectPrinter(this.currentPrinter)
210c36cf2e9Sopenharmony_ci    this.connectingPrinterId = this.currentPrinter!.printerId
211c36cf2e9Sopenharmony_ci  }
212c36cf2e9Sopenharmony_ci
213c36cf2e9Sopenharmony_ci  showToast(message: Resource) {
214c36cf2e9Sopenharmony_ci    try {
215c36cf2e9Sopenharmony_ci      promptAction.showToast({
216c36cf2e9Sopenharmony_ci        message: message,
217c36cf2e9Sopenharmony_ci        duration: Constants.TOAST_INTERVAL,
218c36cf2e9Sopenharmony_ci        bottom: Constants.TOAST_BOTTOM
219c36cf2e9Sopenharmony_ci      });
220c36cf2e9Sopenharmony_ci    } catch (error) {
221c36cf2e9Sopenharmony_ci      Log.error(TAG, `showToast args error code is ${error.code}, message is ${error.message}`);
222c36cf2e9Sopenharmony_ci    };
223c36cf2e9Sopenharmony_ci  }
224c36cf2e9Sopenharmony_ci
225c36cf2e9Sopenharmony_ci
226c36cf2e9Sopenharmony_ci
227c36cf2e9Sopenharmony_ci}
228c36cf2e9Sopenharmony_ci
229c36cf2e9Sopenharmony_ci@CustomDialog
230c36cf2e9Sopenharmony_ciexport struct alarmDialog{
231c36cf2e9Sopenharmony_ci  private alarmDialogCtl?: CustomDialogController
232c36cf2e9Sopenharmony_ci  private alarmText: string = Constants.STRING_NONE;
233c36cf2e9Sopenharmony_ci  build(){
234c36cf2e9Sopenharmony_ci    Column(){
235c36cf2e9Sopenharmony_ci      Image($r('app.media.ic_tip')).key('AlarmDialog_Image_tips')
236c36cf2e9Sopenharmony_ci        .height($r('app.float.alarm_dialog_image_height'))
237c36cf2e9Sopenharmony_ci        .width($r('app.float.alarm_dialog_image_width'))
238c36cf2e9Sopenharmony_ci        .margin({top:$r('app.float.alarm_dialog_image_margin_top')})
239c36cf2e9Sopenharmony_ci      Text(this.alarmText).key('AlarmDialog_Text_alarmText')
240c36cf2e9Sopenharmony_ci        .fontWeight(FontWeight.Medium)
241c36cf2e9Sopenharmony_ci        .fontSize($r('app.float.font_size_headline8'))
242c36cf2e9Sopenharmony_ci        .margin({top:$r('app.float.alarm_dialog_text_margin_top'),left:$r('app.float.alarm_dialog_text_margin_left')
243c36cf2e9Sopenharmony_ci                ,right:$r('app.float.alarm_dialog_text_margin_right'),bottom:$r('app.float.alarm_dialog_text_margin_bottom')})
244c36cf2e9Sopenharmony_ci      Button($r('app.string.confirm')).key('AlarmDialog_Button_confirm')
245c36cf2e9Sopenharmony_ci        .width($r('app.float.dialog_button_width'))
246c36cf2e9Sopenharmony_ci        .height($r('app.float.dialog_button_height'))
247c36cf2e9Sopenharmony_ci        .margin({bottom:$r('app.float.dialog_button_margin_bottom')})
248c36cf2e9Sopenharmony_ci        .onClick(()=>{
249c36cf2e9Sopenharmony_ci          this.alarmDialogCtl?.close()
250c36cf2e9Sopenharmony_ci        })
251c36cf2e9Sopenharmony_ci    }
252c36cf2e9Sopenharmony_ci    .width($r('app.float.dialog_width'))
253c36cf2e9Sopenharmony_ci    .height($r('app.float.alarm_dialog_height'))
254c36cf2e9Sopenharmony_ci    .backgroundColor($r('app.color.white'))
255c36cf2e9Sopenharmony_ci    .borderRadius($r('app.float.radius_l'))
256c36cf2e9Sopenharmony_ci    .alignItems(HorizontalAlign.Center)
257c36cf2e9Sopenharmony_ci  }
258c36cf2e9Sopenharmony_ci}
259c36cf2e9Sopenharmony_ci
260c36cf2e9Sopenharmony_ci@CustomDialog
261c36cf2e9Sopenharmony_ciexport struct WLANConfirmDialog{
262c36cf2e9Sopenharmony_ci  private WLANConfirmDialogCtl: CustomDialogController
263c36cf2e9Sopenharmony_ci  @Consume('PrintAdapter') adapter:PrintAdapter;
264c36cf2e9Sopenharmony_ci  @Consume('PrinterSelectFlag') printerSelectFlag:boolean
265c36cf2e9Sopenharmony_ci  @Consume('IsNeedListenWlan') isNeedListenWlan:boolean
266c36cf2e9Sopenharmony_ci  build(){
267c36cf2e9Sopenharmony_ci    Column(){
268c36cf2e9Sopenharmony_ci      Text($r('app.string.wlan_confirm_dialog_open_wlan')).key('WLANConfirmDialog_Text_openWIFI')
269c36cf2e9Sopenharmony_ci        .fontWeight(FontWeight.Regular)
270c36cf2e9Sopenharmony_ci        .fontSize($r('app.float.font_size_body1'))
271c36cf2e9Sopenharmony_ci        .margin({top:$r('app.float.wlan_dialog_text_margin_top'),left:$r('app.float.wlan_dialog_text_margin_left')
272c36cf2e9Sopenharmony_ci                ,right:$r('app.float.wlan_dialog_text_margin_right'),bottom:$r('app.float.wlan_dialog_text_margin_bottom')})
273c36cf2e9Sopenharmony_ci      Row(){
274c36cf2e9Sopenharmony_ci        CancelButton({
275c36cf2e9Sopenharmony_ci          cancelLabel: $r('app.string.JobManagerPage_ok'),
276c36cf2e9Sopenharmony_ci          cancelWidth: $r('app.float.wlan_dialog_button_width'),
277c36cf2e9Sopenharmony_ci          cancelHeight: $r('app.float.dialog_button_height'),
278c36cf2e9Sopenharmony_ci          cancelClick: () => {
279c36cf2e9Sopenharmony_ci            this.WLANConfirmDialogCtl.close()
280c36cf2e9Sopenharmony_ci          }
281c36cf2e9Sopenharmony_ci        })
282c36cf2e9Sopenharmony_ci          .margin({right:$r('app.float.wlan_dialog_button_cancel_margin_right')})
283c36cf2e9Sopenharmony_ci          .key('WLANConfirmDialog_Button_cancel')
284c36cf2e9Sopenharmony_ci      }.margin({left:$r('app.float.wlan_dialog_buttons_margin_left'),right:$r('app.float.wlan_dialog_buttons_margin_right')
285c36cf2e9Sopenharmony_ci                ,bottom:$r('app.float.wlan_dialog_buttons_margin_bottom')})
286c36cf2e9Sopenharmony_ci    }
287c36cf2e9Sopenharmony_ci    .width($r('app.float.dialog_width'))
288c36cf2e9Sopenharmony_ci    .backgroundColor($r('app.color.white'))
289c36cf2e9Sopenharmony_ci    .borderRadius($r('app.float.radius_l'))
290c36cf2e9Sopenharmony_ci    .alignItems(HorizontalAlign.Center)
291c36cf2e9Sopenharmony_ci  }
292c36cf2e9Sopenharmony_ci
293c36cf2e9Sopenharmony_ci  aboutToAppear(){
294c36cf2e9Sopenharmony_ci//    this.isNeedListenWlan = true
295c36cf2e9Sopenharmony_ci  }
296c36cf2e9Sopenharmony_ci
297c36cf2e9Sopenharmony_ci  showToast(message: Resource) {
298c36cf2e9Sopenharmony_ci    try {
299c36cf2e9Sopenharmony_ci      promptAction.showToast({
300c36cf2e9Sopenharmony_ci        message: message,
301c36cf2e9Sopenharmony_ci        duration: Constants.TOAST_INTERVAL,
302c36cf2e9Sopenharmony_ci        bottom: Constants.TOAST_BOTTOM
303c36cf2e9Sopenharmony_ci      });
304c36cf2e9Sopenharmony_ci    } catch (error) {
305c36cf2e9Sopenharmony_ci      Log.error(TAG, `showToast args error code is ${error.code}, message is ${error.message}`);
306c36cf2e9Sopenharmony_ci    };
307c36cf2e9Sopenharmony_ci  }
308c36cf2e9Sopenharmony_ci}
309c36cf2e9Sopenharmony_ci
310c36cf2e9Sopenharmony_ci@CustomDialog
311c36cf2e9Sopenharmony_ciexport struct connectConfirmDialog{
312c36cf2e9Sopenharmony_ci  private connectConfirmDialogCtl: CustomDialogController
313c36cf2e9Sopenharmony_ci  @Consume('ConnectCountDown') count:number
314c36cf2e9Sopenharmony_ci
315c36cf2e9Sopenharmony_ci  build(){
316c36cf2e9Sopenharmony_ci    Column(){
317c36cf2e9Sopenharmony_ci      Text($r('app.string.connect_confirm_dialog_confirm')).key('ConnectConfirmDialog_Text_confirm')
318c36cf2e9Sopenharmony_ci        .fontWeight(FontWeight.Medium)
319c36cf2e9Sopenharmony_ci        .maxFontSize($r('app.float.connect_dialog_text_max_font'))
320c36cf2e9Sopenharmony_ci        .minFontSize($r('app.float.connect_dialog_text_min_font'))
321c36cf2e9Sopenharmony_ci        .maxLines(Constants.NUMBER_2)
322c36cf2e9Sopenharmony_ci        .textOverflow({overflow:TextOverflow.Ellipsis})
323c36cf2e9Sopenharmony_ci        .margin({top:$r('app.float.connect_dialog_text_margin_top'),left:$r('app.float.connect_dialog_text_margin_left')
324c36cf2e9Sopenharmony_ci                ,right:$r('app.float.connect_dialog_text_margin_right'),bottom:$r('app.float.connect_dialog_text_margin_bottom')})
325c36cf2e9Sopenharmony_ci      Text($r('app.string.connect_confirm_dialog_tips')).key('ConnectConfirmDialog_Text_tips')
326c36cf2e9Sopenharmony_ci        .fontWeight(FontWeight.Medium)
327c36cf2e9Sopenharmony_ci        .fontSize($r('app.float.font_size_body1'))
328c36cf2e9Sopenharmony_ci        .margin({left:$r('app.float.connect_dialog_confirm_text_margin_left'),right:$r('app.float.connect_dialog_confirm_text_margin_right')
329c36cf2e9Sopenharmony_ci                ,bottom:$r('app.float.connect_dialog_confirm_text_margin_bottom')})
330c36cf2e9Sopenharmony_ci      Button($r('app.string.connectConfirmDialog_countDown',this.count-Constants.COUNTDOWN_TO_FAIL))
331c36cf2e9Sopenharmony_ci        .key('ConnectConfirmDialog_Button_confirmed')
332c36cf2e9Sopenharmony_ci        .fontColor($r('sys.color.ohos_id_color_text_primary_activated'))
333c36cf2e9Sopenharmony_ci        .backgroundColor($r('sys.color.ohos_id_color_button_normal'))
334c36cf2e9Sopenharmony_ci        .width($r('app.float.dialog_button_width'))
335c36cf2e9Sopenharmony_ci        .height($r('app.float.dialog_button_height'))
336c36cf2e9Sopenharmony_ci        .margin({bottom:$r('app.float.connect_dialog_button_margin_bottom')})
337c36cf2e9Sopenharmony_ci        .onClick(()=>{
338c36cf2e9Sopenharmony_ci          this.connectConfirmDialogCtl.close()
339c36cf2e9Sopenharmony_ci        })
340c36cf2e9Sopenharmony_ci    }
341c36cf2e9Sopenharmony_ci    .width($r('app.float.dialog_width'))
342c36cf2e9Sopenharmony_ci    .backgroundColor($r('app.color.white'))
343c36cf2e9Sopenharmony_ci    .borderRadius($r('app.float.radius_l'))
344c36cf2e9Sopenharmony_ci    .alignItems(HorizontalAlign.Center)
345c36cf2e9Sopenharmony_ci  }
346c36cf2e9Sopenharmony_ci
347c36cf2e9Sopenharmony_ci}