1048147e0Sopenharmony_ci/**
2048147e0Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
3048147e0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4048147e0Sopenharmony_ci * you may not use this file except in compliance with the License.
5048147e0Sopenharmony_ci * You may obtain a copy of the License at
6048147e0Sopenharmony_ci *
7048147e0Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8048147e0Sopenharmony_ci *
9048147e0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10048147e0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11048147e0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12048147e0Sopenharmony_ci * See the License for the specific language governing permissions and
13048147e0Sopenharmony_ci * limitations under the License.
14048147e0Sopenharmony_ci */
15048147e0Sopenharmony_ciimport DeviceUtil from '../utils/DeviceUtil';
16048147e0Sopenharmony_ci
17048147e0Sopenharmony_ci/**
18048147e0Sopenharmony_ci * Type of the dialog box: No title, 1 message, and 2 buttons
19048147e0Sopenharmony_ci */
20048147e0Sopenharmony_ci@CustomDialog
21048147e0Sopenharmony_ciexport struct DeleteDialog {
22048147e0Sopenharmony_ci    controller: CustomDialogController;
23048147e0Sopenharmony_ci    /**
24048147e0Sopenharmony_ci     * Cancel Event
25048147e0Sopenharmony_ci     */
26048147e0Sopenharmony_ci    cancel: () => void;
27048147e0Sopenharmony_ci    /**
28048147e0Sopenharmony_ci     * Acknowledge Event
29048147e0Sopenharmony_ci     */
30048147e0Sopenharmony_ci    confirm: () => void;
31048147e0Sopenharmony_ci    /**
32048147e0Sopenharmony_ci     * Message content
33048147e0Sopenharmony_ci     */
34048147e0Sopenharmony_ci    msg: string | Resource;
35048147e0Sopenharmony_ci    /**
36048147e0Sopenharmony_ci     * Check whether the deleted information contains locked information.
37048147e0Sopenharmony_ci     */
38048147e0Sopenharmony_ci    hasLockMsg: boolean;
39048147e0Sopenharmony_ci    setSelectLock?: () => void;
40048147e0Sopenharmony_ci    /**
41048147e0Sopenharmony_ci     * Whether to delete lock information synchronously
42048147e0Sopenharmony_ci     */
43048147e0Sopenharmony_ci    isSelectLockMsg?: boolean;
44048147e0Sopenharmony_ci    setSelectLockChange?: (isOn: boolean) => void;
45048147e0Sopenharmony_ci
46048147e0Sopenharmony_ci    build() {
47048147e0Sopenharmony_ci        Column() {
48048147e0Sopenharmony_ci            Text(this.msg)
49048147e0Sopenharmony_ci                .width('100%')
50048147e0Sopenharmony_ci                .margin({ bottom: 8 })
51048147e0Sopenharmony_ci                .textAlign(TextAlign.Center)
52048147e0Sopenharmony_ci                .fontSize(16)
53048147e0Sopenharmony_ci                .fontColor($r('sys.color.ohos_id_color_text_primary'))
54048147e0Sopenharmony_ci                .lineHeight(22)
55048147e0Sopenharmony_ci                .fontWeight(FontWeight.Regular)
56048147e0Sopenharmony_ci                .fontFamily('HarmonyHeiTi')
57048147e0Sopenharmony_ci            if (this.hasLockMsg) {
58048147e0Sopenharmony_ci                Flex({ direction: FlexDirection.Row, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
59048147e0Sopenharmony_ci                    Toggle({ type: ToggleType.Checkbox, isOn: this.isSelectLockMsg })
60048147e0Sopenharmony_ci                        .width('20vp')
61048147e0Sopenharmony_ci                        .height('20vp')
62048147e0Sopenharmony_ci                        .onChange((isOn: boolean) => {
63048147e0Sopenharmony_ci                            this.setSelectLockChange(isOn)
64048147e0Sopenharmony_ci                        })
65048147e0Sopenharmony_ci                    Text($r('app.string.msg_delete_dialog_cb_tip')).height('100%')
66048147e0Sopenharmony_ci                }
67048147e0Sopenharmony_ci                .width('100%')
68048147e0Sopenharmony_ci                .height('32vp')
69048147e0Sopenharmony_ci                .onClick((event?: ClickEvent) => {
70048147e0Sopenharmony_ci                    this.setSelectLock();
71048147e0Sopenharmony_ci                })
72048147e0Sopenharmony_ci            }
73048147e0Sopenharmony_ci            Flex({
74048147e0Sopenharmony_ci                direction: FlexDirection.Row,
75048147e0Sopenharmony_ci                justifyContent: FlexAlign.SpaceEvenly,
76048147e0Sopenharmony_ci                alignItems: ItemAlign.Center
77048147e0Sopenharmony_ci            }) {
78048147e0Sopenharmony_ci                Button() {
79048147e0Sopenharmony_ci                    Text($r('app.string.cancel'))
80048147e0Sopenharmony_ci                        .textAlign(TextAlign.Center)
81048147e0Sopenharmony_ci                        .fontSize(16)
82048147e0Sopenharmony_ci                        .fontColor($r('sys.color.ohos_id_color_floating_button_bg_normal'))
83048147e0Sopenharmony_ci                        .fontWeight(FontWeight.Medium)
84048147e0Sopenharmony_ci                        .fontFamily('HarmonyHeiTi')
85048147e0Sopenharmony_ci                        .lineHeight(22)
86048147e0Sopenharmony_ci                }
87048147e0Sopenharmony_ci                .backgroundColor($r('sys.color.ohos_id_color_background_transparent'))
88048147e0Sopenharmony_ci                .layoutWeight(1)
89048147e0Sopenharmony_ci                .onClick(() => {
90048147e0Sopenharmony_ci                    this.controller.close();
91048147e0Sopenharmony_ci                    this.cancel();
92048147e0Sopenharmony_ci                })
93048147e0Sopenharmony_ci
94048147e0Sopenharmony_ci                Divider()
95048147e0Sopenharmony_ci                    .vertical(true)
96048147e0Sopenharmony_ci                    .strokeWidth('1px')
97048147e0Sopenharmony_ci                    .height('20vp')
98048147e0Sopenharmony_ci                    .color($r('sys.color.ohos_id_color_list_separator'))
99048147e0Sopenharmony_ci                Button() {
100048147e0Sopenharmony_ci                    Text($r('app.string.delete'))
101048147e0Sopenharmony_ci                        .textAlign(TextAlign.Center)
102048147e0Sopenharmony_ci                        .fontSize(16)
103048147e0Sopenharmony_ci                        .fontColor($r('sys.color.ohos_id_color_warning'))
104048147e0Sopenharmony_ci                        .fontWeight(FontWeight.Medium)
105048147e0Sopenharmony_ci                        .fontFamily('HarmonyHeiTi')
106048147e0Sopenharmony_ci                        .lineHeight(22)
107048147e0Sopenharmony_ci                }
108048147e0Sopenharmony_ci                .backgroundColor($r('sys.color.ohos_id_color_background_transparent'))
109048147e0Sopenharmony_ci                .layoutWeight(1)
110048147e0Sopenharmony_ci                .onClick(() => {
111048147e0Sopenharmony_ci                    this.controller.close();
112048147e0Sopenharmony_ci                    this.confirm();
113048147e0Sopenharmony_ci                })
114048147e0Sopenharmony_ci            }
115048147e0Sopenharmony_ci            .width('100%')
116048147e0Sopenharmony_ci            .height(40)
117048147e0Sopenharmony_ci        }
118048147e0Sopenharmony_ci        .width('100%')
119048147e0Sopenharmony_ci        .padding({ left: 24, right: 24, top: 24, bottom: 16 })
120048147e0Sopenharmony_ci    }
121048147e0Sopenharmony_ci}
122048147e0Sopenharmony_ci
123048147e0Sopenharmony_ci@CustomDialog
124048147e0Sopenharmony_ciexport struct DelConversionDialog {
125048147e0Sopenharmony_ci    controller: CustomDialogController;
126048147e0Sopenharmony_ci    /**
127048147e0Sopenharmony_ci     * Cancel Event
128048147e0Sopenharmony_ci     */
129048147e0Sopenharmony_ci    cancel: () => void;
130048147e0Sopenharmony_ci    /**
131048147e0Sopenharmony_ci     * Acknowledge Event
132048147e0Sopenharmony_ci     */
133048147e0Sopenharmony_ci    confirm: () => void;
134048147e0Sopenharmony_ci    /**
135048147e0Sopenharmony_ci     * Message content
136048147e0Sopenharmony_ci     */
137048147e0Sopenharmony_ci    msg: string | Resource;
138048147e0Sopenharmony_ci
139048147e0Sopenharmony_ci    build() {
140048147e0Sopenharmony_ci        Column() {
141048147e0Sopenharmony_ci            Text(this.msg)
142048147e0Sopenharmony_ci                .width('100%')
143048147e0Sopenharmony_ci                .margin({ bottom: 8 })
144048147e0Sopenharmony_ci                .textAlign(TextAlign.Center)
145048147e0Sopenharmony_ci                .fontSize(16)
146048147e0Sopenharmony_ci                .fontColor($r('sys.color.ohos_id_color_text_primary'))
147048147e0Sopenharmony_ci                .lineHeight(22)
148048147e0Sopenharmony_ci                .fontWeight(FontWeight.Regular)
149048147e0Sopenharmony_ci                .fontFamily('HarmonyHeiTi')
150048147e0Sopenharmony_ci            Flex({
151048147e0Sopenharmony_ci                direction: FlexDirection.Row,
152048147e0Sopenharmony_ci                justifyContent: FlexAlign.SpaceEvenly,
153048147e0Sopenharmony_ci                alignItems: ItemAlign.Center
154048147e0Sopenharmony_ci            }) {
155048147e0Sopenharmony_ci                Button() {
156048147e0Sopenharmony_ci                    Text($r('app.string.cancel'))
157048147e0Sopenharmony_ci                        .textAlign(TextAlign.Center)
158048147e0Sopenharmony_ci                        .fontSize(16)
159048147e0Sopenharmony_ci                        .fontColor($r('sys.color.ohos_id_color_floating_button_bg_normal'))
160048147e0Sopenharmony_ci                        .fontWeight(FontWeight.Medium)
161048147e0Sopenharmony_ci                        .fontFamily('HarmonyHeiTi')
162048147e0Sopenharmony_ci                        .lineHeight(22)
163048147e0Sopenharmony_ci                }
164048147e0Sopenharmony_ci                .backgroundColor($r('sys.color.ohos_id_color_background_transparent'))
165048147e0Sopenharmony_ci                .layoutWeight(1)
166048147e0Sopenharmony_ci                .onClick(() => {
167048147e0Sopenharmony_ci                    this.controller.close();
168048147e0Sopenharmony_ci                    this.cancel();
169048147e0Sopenharmony_ci                })
170048147e0Sopenharmony_ci
171048147e0Sopenharmony_ci                Divider()
172048147e0Sopenharmony_ci                    .vertical(true)
173048147e0Sopenharmony_ci                    .strokeWidth('1px')
174048147e0Sopenharmony_ci                    .height('20vp')
175048147e0Sopenharmony_ci                    .color($r('sys.color.ohos_id_color_list_separator'))
176048147e0Sopenharmony_ci                Button() {
177048147e0Sopenharmony_ci                    Text($r('app.string.delete'))
178048147e0Sopenharmony_ci                        .textAlign(TextAlign.Center)
179048147e0Sopenharmony_ci                        .fontSize(16)
180048147e0Sopenharmony_ci                        .fontColor($r('sys.color.ohos_id_color_warning'))
181048147e0Sopenharmony_ci                        .fontWeight(FontWeight.Medium)
182048147e0Sopenharmony_ci                        .fontFamily('HarmonyHeiTi')
183048147e0Sopenharmony_ci                        .lineHeight(22)
184048147e0Sopenharmony_ci                }
185048147e0Sopenharmony_ci                .backgroundColor($r('sys.color.ohos_id_color_background_transparent'))
186048147e0Sopenharmony_ci                .layoutWeight(1)
187048147e0Sopenharmony_ci                .onClick(() => {
188048147e0Sopenharmony_ci                    this.controller.close();
189048147e0Sopenharmony_ci                    this.confirm();
190048147e0Sopenharmony_ci                })
191048147e0Sopenharmony_ci            }
192048147e0Sopenharmony_ci            .width('100%')
193048147e0Sopenharmony_ci            .height(40)
194048147e0Sopenharmony_ci        }
195048147e0Sopenharmony_ci        .width('100%')
196048147e0Sopenharmony_ci        .padding({ left: 24, right: 24, top: 24, bottom: 16 })
197048147e0Sopenharmony_ci    }
198048147e0Sopenharmony_ci}
199048147e0Sopenharmony_ci
200048147e0Sopenharmony_ciexport class MmsSimpleDialog {
201048147e0Sopenharmony_ci    value: AlertDialogParamWithMms;
202048147e0Sopenharmony_ci    private dialogGridCount: number = 4;
203048147e0Sopenharmony_ci    private dialogAlignment: DialogAlignment = DeviceUtil.isTablet() ? DialogAlignment.Center : DialogAlignment.Bottom;
204048147e0Sopenharmony_ci    private dialogOffset: Offset = DeviceUtil.isTablet() ? { dx: 0, dy: 0 } : { dx: 0, dy: -12 };
205048147e0Sopenharmony_ci
206048147e0Sopenharmony_ci    constructor(value: AlertDialogParamWithMms) {
207048147e0Sopenharmony_ci        this.value = value;
208048147e0Sopenharmony_ci    }
209048147e0Sopenharmony_ci
210048147e0Sopenharmony_ci    show() {
211048147e0Sopenharmony_ci        AlertDialog.show(
212048147e0Sopenharmony_ci            {
213048147e0Sopenharmony_ci                message: this.value.message,
214048147e0Sopenharmony_ci                autoCancel: false,
215048147e0Sopenharmony_ci                alignment: this.dialogAlignment,
216048147e0Sopenharmony_ci                offset: this.dialogOffset,
217048147e0Sopenharmony_ci                gridCount: this.dialogGridCount,
218048147e0Sopenharmony_ci                primaryButton: {
219048147e0Sopenharmony_ci                    value: this.value.primaryButton.value,
220048147e0Sopenharmony_ci                    action: this.value.primaryButton.action,
221048147e0Sopenharmony_ci                    fontColor: $r('sys.color.ohos_id_color_activated')
222048147e0Sopenharmony_ci                },
223048147e0Sopenharmony_ci                secondaryButton: {
224048147e0Sopenharmony_ci                    value: this.value.secondaryButton.value,
225048147e0Sopenharmony_ci                    action: this.value.secondaryButton.action,
226048147e0Sopenharmony_ci                    fontColor: $r('sys.color.ohos_id_color_warning')
227048147e0Sopenharmony_ci                }
228048147e0Sopenharmony_ci            }
229048147e0Sopenharmony_ci        )
230048147e0Sopenharmony_ci    }
231048147e0Sopenharmony_ci}
232048147e0Sopenharmony_ci
233048147e0Sopenharmony_ci
234048147e0Sopenharmony_ci@CustomDialog
235048147e0Sopenharmony_ciexport struct SysSimpleExample {
236048147e0Sopenharmony_ci    controller: CustomDialogController
237048147e0Sopenharmony_ci    cancel: () => void
238048147e0Sopenharmony_ci    confirm: () => void
239048147e0Sopenharmony_ci    value: AlertDialogParamWithMms;
240048147e0Sopenharmony_ci    private dialogAlignment: DialogAlignment = DeviceUtil.isTablet() ? DialogAlignment.Center : DialogAlignment.Bottom;
241048147e0Sopenharmony_ci    private dialogOffset: Offset = DeviceUtil.isTablet() ? { dx: 0, dy: 0 } : { dx: 0, dy: -12 };
242048147e0Sopenharmony_ci
243048147e0Sopenharmony_ci    build() {
244048147e0Sopenharmony_ci        Column() {
245048147e0Sopenharmony_ci            Text(this.value.message)
246048147e0Sopenharmony_ci                .fontSize(16)
247048147e0Sopenharmony_ci                .fontWeight(FontWeight.Regular)
248048147e0Sopenharmony_ci                .margin({ top: 24, bottom: 8 })
249048147e0Sopenharmony_ci            Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) {
250048147e0Sopenharmony_ci                Button($r('app.string.cancel'))
251048147e0Sopenharmony_ci                    .onClick(() => {
252048147e0Sopenharmony_ci                        this.controller.close()
253048147e0Sopenharmony_ci                        this.cancel()
254048147e0Sopenharmony_ci                    })
255048147e0Sopenharmony_ci                    .backgroundColor(0xffffff)
256048147e0Sopenharmony_ci                    .fontColor($r('sys.color.ohos_id_color_activated'))
257048147e0Sopenharmony_ci                    .fontWeight(FontWeight.Medium)
258048147e0Sopenharmony_ci                    .layoutWeight(1)
259048147e0Sopenharmony_ci                Text('|').fontSize(16).fontColor(Color.Gray)
260048147e0Sopenharmony_ci                Button($r('app.string.restore'))
261048147e0Sopenharmony_ci                    .onClick(() => {
262048147e0Sopenharmony_ci                        this.controller.close()
263048147e0Sopenharmony_ci                        this.confirm()
264048147e0Sopenharmony_ci                    })
265048147e0Sopenharmony_ci                    .backgroundColor(0xffffff)
266048147e0Sopenharmony_ci                    .fontColor($r('sys.color.ohos_id_color_warning'))
267048147e0Sopenharmony_ci                    .fontWeight(FontWeight.Medium)
268048147e0Sopenharmony_ci                    .layoutWeight(1)
269048147e0Sopenharmony_ci            }.margin({ bottom: 12, top: 12 })
270048147e0Sopenharmony_ci        }.borderRadius(24)
271048147e0Sopenharmony_ci    }
272048147e0Sopenharmony_ci}
273048147e0Sopenharmony_ci
274048147e0Sopenharmony_cideclare interface AlertDialogParamWithMms {
275048147e0Sopenharmony_ci    message: ResourceStr;
276048147e0Sopenharmony_ci    primaryButton: {
277048147e0Sopenharmony_ci        value: ResourceStr;
278048147e0Sopenharmony_ci        action: () => void;
279048147e0Sopenharmony_ci    };
280048147e0Sopenharmony_ci    secondaryButton: {
281048147e0Sopenharmony_ci        value: ResourceStr;
282048147e0Sopenharmony_ci        action: () => void;
283048147e0Sopenharmony_ci    };
284048147e0Sopenharmony_ci}
285048147e0Sopenharmony_ci
286048147e0Sopenharmony_ciexport interface CheckBoxItem {
287048147e0Sopenharmony_ci    title: string | Resource;
288048147e0Sopenharmony_ci    isOn: boolean;
289048147e0Sopenharmony_ci    onClick: (event?: ClickEvent) => void;
290048147e0Sopenharmony_ci}
291048147e0Sopenharmony_ci
292048147e0Sopenharmony_ci/**
293048147e0Sopenharmony_ci * Type of the dialog box: 1 title, 2 options, and 2 buttons
294048147e0Sopenharmony_ci */
295048147e0Sopenharmony_ci@CustomDialog
296048147e0Sopenharmony_ciexport struct CheckBoxDialog {
297048147e0Sopenharmony_ci    controller: CustomDialogController;
298048147e0Sopenharmony_ci    /**
299048147e0Sopenharmony_ci     * Cancel Event
300048147e0Sopenharmony_ci     */
301048147e0Sopenharmony_ci    cancel: () => void;
302048147e0Sopenharmony_ci    /**
303048147e0Sopenharmony_ci     * Acknowledge Event
304048147e0Sopenharmony_ci     */
305048147e0Sopenharmony_ci    confirm: () => void;
306048147e0Sopenharmony_ci    /**
307048147e0Sopenharmony_ci     * Title
308048147e0Sopenharmony_ci     */
309048147e0Sopenharmony_ci    title: string | Resource;
310048147e0Sopenharmony_ci    /**
311048147e0Sopenharmony_ci     * Option Collection
312048147e0Sopenharmony_ci     */
313048147e0Sopenharmony_ci    @State itemList: Array<CheckBoxItem> = [];
314048147e0Sopenharmony_ci
315048147e0Sopenharmony_ci    build() {
316048147e0Sopenharmony_ci        Column() {
317048147e0Sopenharmony_ci            // dialog title
318048147e0Sopenharmony_ci            Text(this.title)
319048147e0Sopenharmony_ci                .width('100%')
320048147e0Sopenharmony_ci                .margin({ bottom: 8 })
321048147e0Sopenharmony_ci                .fontSize(16)
322048147e0Sopenharmony_ci                .fontColor($r('sys.color.ohos_id_color_text_primary'))
323048147e0Sopenharmony_ci                .lineHeight(22)
324048147e0Sopenharmony_ci                .fontWeight(FontWeight.Regular)
325048147e0Sopenharmony_ci                .fontFamily('HarmonyHeiTi')
326048147e0Sopenharmony_ci            // item Checklist
327048147e0Sopenharmony_ci            ForEach(this.itemList, (item, index) => {
328048147e0Sopenharmony_ci                Flex({
329048147e0Sopenharmony_ci                    direction: FlexDirection.Row,
330048147e0Sopenharmony_ci                    justifyContent: FlexAlign.SpaceBetween,
331048147e0Sopenharmony_ci                    alignItems: ItemAlign.Center
332048147e0Sopenharmony_ci                }) {
333048147e0Sopenharmony_ci                    Text(item.title)
334048147e0Sopenharmony_ci                    Toggle({ type: ToggleType.Checkbox, isOn: item.isOn })
335048147e0Sopenharmony_ci                        .width('20vp')
336048147e0Sopenharmony_ci                        .height('20vp')
337048147e0Sopenharmony_ci                        .enabled(false)
338048147e0Sopenharmony_ci                }
339048147e0Sopenharmony_ci                .width('100%')
340048147e0Sopenharmony_ci                .height('32vp')
341048147e0Sopenharmony_ci                .onClick(item.onClick)
342048147e0Sopenharmony_ci            }, (item, index) => index.toString())
343048147e0Sopenharmony_ci            // OK and Cancel Buttons
344048147e0Sopenharmony_ci            Flex({
345048147e0Sopenharmony_ci                direction: FlexDirection.Row,
346048147e0Sopenharmony_ci                justifyContent: FlexAlign.SpaceEvenly,
347048147e0Sopenharmony_ci                alignItems: ItemAlign.Center
348048147e0Sopenharmony_ci            }) {
349048147e0Sopenharmony_ci                Button() {
350048147e0Sopenharmony_ci                    Text($r('app.string.cancel'))
351048147e0Sopenharmony_ci                        .textAlign(TextAlign.Center)
352048147e0Sopenharmony_ci                        .fontSize(16)
353048147e0Sopenharmony_ci                        .fontColor($r('sys.color.ohos_id_color_floating_button_bg_normal'))
354048147e0Sopenharmony_ci                        .fontWeight(FontWeight.Medium)
355048147e0Sopenharmony_ci                        .fontFamily('HarmonyHeiTi')
356048147e0Sopenharmony_ci                        .lineHeight(22)
357048147e0Sopenharmony_ci                        .onClick(() => {
358048147e0Sopenharmony_ci                            this.controller.close();
359048147e0Sopenharmony_ci                            this.cancel();
360048147e0Sopenharmony_ci                        })
361048147e0Sopenharmony_ci                }.backgroundColor($r('sys.color.ohos_id_color_background_transparent')).layoutWeight(1)
362048147e0Sopenharmony_ci
363048147e0Sopenharmony_ci                Divider()
364048147e0Sopenharmony_ci                    .vertical(true)
365048147e0Sopenharmony_ci                    .strokeWidth('1px')
366048147e0Sopenharmony_ci                    .height('20vp')
367048147e0Sopenharmony_ci                    .color($r('sys.color.ohos_id_color_list_separator'))
368048147e0Sopenharmony_ci                Button() {
369048147e0Sopenharmony_ci                    Text($r('app.string.ok'))
370048147e0Sopenharmony_ci                        .textAlign(TextAlign.Center)
371048147e0Sopenharmony_ci                        .fontSize(16)
372048147e0Sopenharmony_ci                        .fontColor($r('sys.color.ohos_id_color_floating_button_bg_normal'))
373048147e0Sopenharmony_ci                        .fontWeight(FontWeight.Medium)
374048147e0Sopenharmony_ci                        .fontFamily('HarmonyHeiTi')
375048147e0Sopenharmony_ci                        .lineHeight(22)
376048147e0Sopenharmony_ci                        .onClick(() => {
377048147e0Sopenharmony_ci                            this.controller.close();
378048147e0Sopenharmony_ci                            this.confirm();
379048147e0Sopenharmony_ci                        })
380048147e0Sopenharmony_ci                }.backgroundColor($r('sys.color.ohos_id_color_background_transparent')).layoutWeight(1)
381048147e0Sopenharmony_ci            }
382048147e0Sopenharmony_ci            .width('100%')
383048147e0Sopenharmony_ci            .height(40)
384048147e0Sopenharmony_ci        }
385048147e0Sopenharmony_ci        .width('100%')
386048147e0Sopenharmony_ci        .padding({ left: 24, right: 24, top: 24, bottom: 16 })
387048147e0Sopenharmony_ci    }
388048147e0Sopenharmony_ci}
389048147e0Sopenharmony_ci
390048147e0Sopenharmony_ci@CustomDialog
391048147e0Sopenharmony_ciexport struct TransmitMsgDialog {
392048147e0Sopenharmony_ci    scroller: Scroller = new Scroller()
393048147e0Sopenharmony_ci    controller: CustomDialogController;
394048147e0Sopenharmony_ci    /**
395048147e0Sopenharmony_ci     * Cancel an event
396048147e0Sopenharmony_ci     */
397048147e0Sopenharmony_ci    cancel: () => void;
398048147e0Sopenharmony_ci    /**
399048147e0Sopenharmony_ci     * Acknowledgment Events
400048147e0Sopenharmony_ci     */
401048147e0Sopenharmony_ci    confirm: () => void;
402048147e0Sopenharmony_ci    /**
403048147e0Sopenharmony_ci     * Message content
404048147e0Sopenharmony_ci     */
405048147e0Sopenharmony_ci    msg: object | Resource | any;
406048147e0Sopenharmony_ci    isChecked: boolean = true;
407048147e0Sopenharmony_ci    changeValue?: () => void;
408048147e0Sopenharmony_ci    clickChecked?: () => void;
409048147e0Sopenharmony_ci
410048147e0Sopenharmony_ci    build() {
411048147e0Sopenharmony_ci        Column() {
412048147e0Sopenharmony_ci            Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.Start }) {
413048147e0Sopenharmony_ci                Flex({
414048147e0Sopenharmony_ci                    direction: FlexDirection.Column,
415048147e0Sopenharmony_ci                    alignItems: ItemAlign.Start,
416048147e0Sopenharmony_ci                    justifyContent: FlexAlign.Start
417048147e0Sopenharmony_ci                }) {
418048147e0Sopenharmony_ci                    // Title
419048147e0Sopenharmony_ci                    Column() {
420048147e0Sopenharmony_ci                        if (this.msg.contactsParam.contactsNum > 1) {
421048147e0Sopenharmony_ci                            Text() {
422048147e0Sopenharmony_ci                                Span($r('app.string.contentSentTo'))
423048147e0Sopenharmony_ci                                    .fontSize(20)
424048147e0Sopenharmony_ci                                    .fontColor($r('sys.color.ohos_id_color_text_primary'))
425048147e0Sopenharmony_ci                                    .fontWeight(FontWeight.Bold)
426048147e0Sopenharmony_ci                                Span(this.msg.contactsParam.contactName == '' ?
427048147e0Sopenharmony_ci                                this.msg.contactsParam.telephoneFormatSplit :
428048147e0Sopenharmony_ci                                this.msg.contactsParam.contactNameSplit)
429048147e0Sopenharmony_ci                                    .fontSize(20)
430048147e0Sopenharmony_ci                                    .fontColor($r('sys.color.ohos_id_color_text_primary'))
431048147e0Sopenharmony_ci                                    .fontWeight(FontWeight.Bold)
432048147e0Sopenharmony_ci                                Span($r('app.string.including'))
433048147e0Sopenharmony_ci                                    .fontSize(20)
434048147e0Sopenharmony_ci                                    .fontColor($r('sys.color.ohos_id_color_text_primary'))
435048147e0Sopenharmony_ci                                    .fontWeight(FontWeight.Bold)
436048147e0Sopenharmony_ci                                Span(this.msg.contactsParam.contactsNum)
437048147e0Sopenharmony_ci                                    .fontSize(20)
438048147e0Sopenharmony_ci                                    .fontColor($r('sys.color.ohos_id_color_text_primary'))
439048147e0Sopenharmony_ci                                    .fontWeight(FontWeight.Bold)
440048147e0Sopenharmony_ci                                Span($r('app.string.people'))
441048147e0Sopenharmony_ci                                    .fontSize(20)
442048147e0Sopenharmony_ci                                    .fontColor($r('sys.color.ohos_id_color_text_primary'))
443048147e0Sopenharmony_ci                                    .fontWeight(FontWeight.Bold)
444048147e0Sopenharmony_ci                            }
445048147e0Sopenharmony_ci                        } else {
446048147e0Sopenharmony_ci                            Text() {
447048147e0Sopenharmony_ci                                Span($r('app.string.contentSentTo'))
448048147e0Sopenharmony_ci                                    .fontSize(20)
449048147e0Sopenharmony_ci                                    .fontColor($r('sys.color.ohos_id_color_text_primary'))
450048147e0Sopenharmony_ci                                    .fontWeight(FontWeight.Bold)
451048147e0Sopenharmony_ci                                Span(this.msg.contactsParam.contactName == '' ?
452048147e0Sopenharmony_ci                                this.msg.contactsParam.telephoneFormat :
453048147e0Sopenharmony_ci                                this.msg.contactsParam.contactName)
454048147e0Sopenharmony_ci                                    .fontSize(20)
455048147e0Sopenharmony_ci                                    .fontColor($r('sys.color.ohos_id_color_text_primary'))
456048147e0Sopenharmony_ci                                    .fontWeight(FontWeight.Bold)
457048147e0Sopenharmony_ci                            }
458048147e0Sopenharmony_ci                        }
459048147e0Sopenharmony_ci                    }
460048147e0Sopenharmony_ci                    .alignItems(HorizontalAlign.Start)
461048147e0Sopenharmony_ci                    .width('100%')
462048147e0Sopenharmony_ci
463048147e0Sopenharmony_ci                    // Forwarded content
464048147e0Sopenharmony_ci                    Column() {
465048147e0Sopenharmony_ci                        List() {
466048147e0Sopenharmony_ci                            ForEach(this.msg.transmitContentList, item => {
467048147e0Sopenharmony_ci                                ListItem() {
468048147e0Sopenharmony_ci                                    if (item.msgShowType == 0 || item.msgShowType == 4) {
469048147e0Sopenharmony_ci                                        Flex() {
470048147e0Sopenharmony_ci                                            if (item.msgUriPath != '' && (item.msgType == 1 || item.msgType == 2)) {
471048147e0Sopenharmony_ci                                                Image($rawfile(item.msgUriPath))
472048147e0Sopenharmony_ci                                                    .width('100%')
473048147e0Sopenharmony_ci                                                    .height(150)
474048147e0Sopenharmony_ci                                            } else if (item.msgUriPath != '' && item.msgType == 5) {
475048147e0Sopenharmony_ci                                                Image($rawfile('icon/msg_contacts.svg'))
476048147e0Sopenharmony_ci                                                    .height(48)
477048147e0Sopenharmony_ci                                                    .width(48)
478048147e0Sopenharmony_ci                                                    .margin({ left: 10, right: 10 })
479048147e0Sopenharmony_ci                                                Flex() {
480048147e0Sopenharmony_ci                                                    Text(item.msgUriPath)
481048147e0Sopenharmony_ci                                                        .align(Alignment.Center)
482048147e0Sopenharmony_ci                                                    if (item.audioTime != '') {
483048147e0Sopenharmony_ci                                                        Text(item.audioTime)
484048147e0Sopenharmony_ci                                                            .align(Alignment.Center)
485048147e0Sopenharmony_ci                                                    }
486048147e0Sopenharmony_ci                                                }
487048147e0Sopenharmony_ci                                                .padding(5)
488048147e0Sopenharmony_ci                                                .margin({ right: 40 })
489048147e0Sopenharmony_ci                                            } else if (item.content != '') {
490048147e0Sopenharmony_ci                                                if (this.isChecked || (!this.isChecked && item.isMsm)) {
491048147e0Sopenharmony_ci                                                    Column() {
492048147e0Sopenharmony_ci                                                        Column() {
493048147e0Sopenharmony_ci                                                            Text(this.msg.transmitContent)
494048147e0Sopenharmony_ci                                                            Text(item.contentInfo)
495048147e0Sopenharmony_ci                                                        }
496048147e0Sopenharmony_ci
497048147e0Sopenharmony_ci                                                        Column() {
498048147e0Sopenharmony_ci                                                            Text(item.content)
499048147e0Sopenharmony_ci                                                                .fontSize(16)
500048147e0Sopenharmony_ci                                                                .margin({ top: 5 })
501048147e0Sopenharmony_ci                                                        }
502048147e0Sopenharmony_ci                                                    }
503048147e0Sopenharmony_ci                                                    .padding({ top: 20 })
504048147e0Sopenharmony_ci                                                    .width('100%')
505048147e0Sopenharmony_ci                                                    .alignItems(HorizontalAlign.Start)
506048147e0Sopenharmony_ci
507048147e0Sopenharmony_ci                                                } else if (!this.isChecked && !item.isMsm) {
508048147e0Sopenharmony_ci                                                    TextArea({
509048147e0Sopenharmony_ci                                                        text: item.content
510048147e0Sopenharmony_ci                                                    })
511048147e0Sopenharmony_ci                                                        .onChange((item) => {
512048147e0Sopenharmony_ci                                                            this.changeValue()
513048147e0Sopenharmony_ci                                                        })
514048147e0Sopenharmony_ci                                                }
515048147e0Sopenharmony_ci                                            }
516048147e0Sopenharmony_ci                                        }
517048147e0Sopenharmony_ci                                    } else if (item.msgShowType == 1 || item.msgShowType == 2) {
518048147e0Sopenharmony_ci                                        Flex() {
519048147e0Sopenharmony_ci                                            Image($rawfile('icon/ppt.svg'))
520048147e0Sopenharmony_ci                                                .width('100%')
521048147e0Sopenharmony_ci                                                .height(150)
522048147e0Sopenharmony_ci                                            if (item.content != '') {
523048147e0Sopenharmony_ci                                                Text(item.content)
524048147e0Sopenharmony_ci                                            }
525048147e0Sopenharmony_ci                                        }
526048147e0Sopenharmony_ci                                        .padding(20)
527048147e0Sopenharmony_ci                                        .backgroundColor('#20A9A9A9')
528048147e0Sopenharmony_ci                                        .borderRadius(15)
529048147e0Sopenharmony_ci                                    } else {
530048147e0Sopenharmony_ci                                        Flex() {
531048147e0Sopenharmony_ci                                            if (item.content != '') {
532048147e0Sopenharmony_ci                                                Text(item.content)
533048147e0Sopenharmony_ci                                                    .margin({ top: 10, left: 30, bottom: 10 })
534048147e0Sopenharmony_ci                                            }
535048147e0Sopenharmony_ci                                        }
536048147e0Sopenharmony_ci                                    }
537048147e0Sopenharmony_ci
538048147e0Sopenharmony_ci                                }
539048147e0Sopenharmony_ci                            }, item => item.msgType.toString())
540048147e0Sopenharmony_ci                        }
541048147e0Sopenharmony_ci                    }
542048147e0Sopenharmony_ci                    .alignItems(HorizontalAlign.Start)
543048147e0Sopenharmony_ci                    .width('100%')
544048147e0Sopenharmony_ci                }
545048147e0Sopenharmony_ci            }
546048147e0Sopenharmony_ci
547048147e0Sopenharmony_ci            Flex({ justifyContent: FlexAlign.SpaceAround }) {
548048147e0Sopenharmony_ci                Button() {
549048147e0Sopenharmony_ci                    Text($r('app.string.cancel'))
550048147e0Sopenharmony_ci                        .textAlign(TextAlign.Center)
551048147e0Sopenharmony_ci                        .fontSize(16)
552048147e0Sopenharmony_ci                        .fontColor($r('sys.color.ohos_id_color_floating_button_bg_normal'))
553048147e0Sopenharmony_ci                        .fontWeight(FontWeight.Medium)
554048147e0Sopenharmony_ci                        .fontFamily('HarmonyHeiTi')
555048147e0Sopenharmony_ci                        .lineHeight(22)
556048147e0Sopenharmony_ci                }
557048147e0Sopenharmony_ci                .backgroundColor($r('sys.color.ohos_id_color_background_transparent'))
558048147e0Sopenharmony_ci                .layoutWeight(1)
559048147e0Sopenharmony_ci                .onClick(() => {
560048147e0Sopenharmony_ci                    this.controller.close();
561048147e0Sopenharmony_ci                    this.cancel();
562048147e0Sopenharmony_ci                })
563048147e0Sopenharmony_ci
564048147e0Sopenharmony_ci                Divider()
565048147e0Sopenharmony_ci                    .vertical(true)
566048147e0Sopenharmony_ci                    .strokeWidth('1px')
567048147e0Sopenharmony_ci                    .height('20vp')
568048147e0Sopenharmony_ci                    .color($r('sys.color.ohos_id_color_list_separator'))
569048147e0Sopenharmony_ci                Button() {
570048147e0Sopenharmony_ci                    Text($r('app.string.msg_transmit'))
571048147e0Sopenharmony_ci                        .textAlign(TextAlign.Center)
572048147e0Sopenharmony_ci                        .fontSize(16)
573048147e0Sopenharmony_ci                        .fontColor($r('sys.color.ohos_id_color_warning'))
574048147e0Sopenharmony_ci                        .fontWeight(FontWeight.Medium)
575048147e0Sopenharmony_ci                        .fontFamily('HarmonyHeiTi')
576048147e0Sopenharmony_ci                        .lineHeight(22)
577048147e0Sopenharmony_ci                }
578048147e0Sopenharmony_ci                .backgroundColor($r('sys.color.ohos_id_color_background_transparent'))
579048147e0Sopenharmony_ci                .layoutWeight(1)
580048147e0Sopenharmony_ci                .onClick(() => {
581048147e0Sopenharmony_ci                    this.controller.close();
582048147e0Sopenharmony_ci                    this.confirm();
583048147e0Sopenharmony_ci                })
584048147e0Sopenharmony_ci            }
585048147e0Sopenharmony_ci        }
586048147e0Sopenharmony_ci        .width('100%')
587048147e0Sopenharmony_ci        .height(200)
588048147e0Sopenharmony_ci        .padding({ left: 24, right: 24, top: 24, bottom: 40 })
589048147e0Sopenharmony_ci    }
590048147e0Sopenharmony_ci}