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}