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_ci/** 16048147e0Sopenharmony_ci * Message/MMS viewing page 17048147e0Sopenharmony_ci */ 18048147e0Sopenharmony_ciimport router from '@system.router'; 19048147e0Sopenharmony_ciimport emitter from '@ohos.events.emitter'; 20048147e0Sopenharmony_ciimport ConversationController from './conversationController'; 21048147e0Sopenharmony_ciimport { Receive } from '../../views/receive/receive'; 22048147e0Sopenharmony_ciimport LooseObject from '../../data/LooseObject'; 23048147e0Sopenharmony_ciimport { MoreMenu } from '../../views/MmsMenu'; 24048147e0Sopenharmony_ciimport { MultiSimCardMenu } from '../../views/MultiSimCardMenu'; 25048147e0Sopenharmony_ciimport WantUtil from '../../utils/WantUtil'; 26048147e0Sopenharmony_ciimport { DelConversionDialog } from '../../views/MmsDialogs'; 27048147e0Sopenharmony_ciimport MmsPreferences from '../../utils/MmsPreferences'; 28048147e0Sopenharmony_ciimport common from '../../data/commonData'; 29048147e0Sopenharmony_ciimport simCardService from '../../service/SimCardService' 30048147e0Sopenharmony_ci 31048147e0Sopenharmony_ci@Entry 32048147e0Sopenharmony_ci@Component 33048147e0Sopenharmony_ciexport struct Conversation { 34048147e0Sopenharmony_ci @StorageLink('curBp') curBp: string = 'sm' 35048147e0Sopenharmony_ci @State mConversationCtrl: ConversationController = ConversationController.getInstance(); 36048147e0Sopenharmony_ci @State slotId: number = MmsPreferences.getInstance().getSelectedSlotId(); 37048147e0Sopenharmony_ci @State cardImage: boolean = MmsPreferences.getInstance().haveMultiSimCardReady(); 38048147e0Sopenharmony_ci private gridColumns: GridRowColumnOption = { sm: 4, md: 8, lg: 12 }; 39048147e0Sopenharmony_ci private timeGirdSpan: GridColColumnOption = { sm: 4, md: 8, lg: 12 }; 40048147e0Sopenharmony_ci private messageGirdSpan: GridColColumnOption = { sm: 4, md: 6, lg: 8 }; 41048147e0Sopenharmony_ci private gridColOffset: GridColColumnOption = { sm: 0, md: 2, lg: 4 }; 42048147e0Sopenharmony_ci private gridGutter: string = '24vp'; 43048147e0Sopenharmony_ci private dialogGridCount: number = 4; 44048147e0Sopenharmony_ci @Provide menuItems: Array<any> = [ 45048147e0Sopenharmony_ci { 46048147e0Sopenharmony_ci value: $r('app.string.delete'), 47048147e0Sopenharmony_ci action: () => { 48048147e0Sopenharmony_ci this.mConversationCtrl.longPressMore(0); 49048147e0Sopenharmony_ci if (this.mConversationCtrl.mmsList.length == 1) { 50048147e0Sopenharmony_ci this.delConversionController.open(); 51048147e0Sopenharmony_ci } 52048147e0Sopenharmony_ci }, 53048147e0Sopenharmony_ci enabled: true 54048147e0Sopenharmony_ci }, 55048147e0Sopenharmony_ci { 56048147e0Sopenharmony_ci value: $r('app.string.msg_pre_call_editor'), 57048147e0Sopenharmony_ci action: () => { 58048147e0Sopenharmony_ci this.mConversationCtrl.longPressMore(3); 59048147e0Sopenharmony_ci }, 60048147e0Sopenharmony_ci enabled: true 61048147e0Sopenharmony_ci } 62048147e0Sopenharmony_ci ]; 63048147e0Sopenharmony_ci /** Message details dialog box */ 64048147e0Sopenharmony_ci dialogController: CustomDialogController = new CustomDialogController({ 65048147e0Sopenharmony_ci builder: DetailsDialog({ 66048147e0Sopenharmony_ci item: this.mConversationCtrl.mmsList[this.mConversationCtrl.mmsIndex], 67048147e0Sopenharmony_ci receiver: this.mConversationCtrl.strContactsName == '' 68048147e0Sopenharmony_ci ? this.mConversationCtrl.strContactsNumber : 69048147e0Sopenharmony_ci this.mConversationCtrl.strContactsName 70048147e0Sopenharmony_ci }), 71048147e0Sopenharmony_ci autoCancel: true, 72048147e0Sopenharmony_ci alignment: DialogAlignment.Bottom, 73048147e0Sopenharmony_ci offset: { dx: 0, dy: $r('app.float.dialog_bottom_margin') }, 74048147e0Sopenharmony_ci gridCount: this.dialogGridCount 75048147e0Sopenharmony_ci }) 76048147e0Sopenharmony_ci delConversionController: CustomDialogController = new CustomDialogController({ 77048147e0Sopenharmony_ci builder: DelConversionDialog({ 78048147e0Sopenharmony_ci cancel: () => { 79048147e0Sopenharmony_ci this.mConversationCtrl.deleteDialogCancel() 80048147e0Sopenharmony_ci }, 81048147e0Sopenharmony_ci confirm: () => { 82048147e0Sopenharmony_ci this.mConversationCtrl.deleteDialogConfirm() 83048147e0Sopenharmony_ci }, 84048147e0Sopenharmony_ci msg: this.mConversationCtrl.strMsgDeleteDialogTip, 85048147e0Sopenharmony_ci }), 86048147e0Sopenharmony_ci autoCancel: false, 87048147e0Sopenharmony_ci alignment: DialogAlignment.Bottom, 88048147e0Sopenharmony_ci offset: { dx: 0, dy: $r('app.float.dialog_bottom_margin') }, 89048147e0Sopenharmony_ci gridCount: this.dialogGridCount 90048147e0Sopenharmony_ci }); 91048147e0Sopenharmony_ci 92048147e0Sopenharmony_ci aboutToAppear() { 93048147e0Sopenharmony_ci this.mConversationCtrl.onInit(); 94048147e0Sopenharmony_ci this.mConversationCtrl.onShow(); 95048147e0Sopenharmony_ci emitter.on(simCardService.SIM_STATE_CHANGE_EVENT, () => { 96048147e0Sopenharmony_ci this.cardImage = MmsPreferences.getInstance().haveMultiSimCardReady(); 97048147e0Sopenharmony_ci }); 98048147e0Sopenharmony_ci emitter.on(simCardService.SLOTID_CHANGE_EVENT, () => { 99048147e0Sopenharmony_ci this.slotId = MmsPreferences.getInstance().getSelectedSlotId(); 100048147e0Sopenharmony_ci console.log('receive SLOTID_CHANGE_EVENT, this.slotId: ' + this.slotId); 101048147e0Sopenharmony_ci }); 102048147e0Sopenharmony_ci } 103048147e0Sopenharmony_ci 104048147e0Sopenharmony_ci aboutToDisappear() { 105048147e0Sopenharmony_ci emitter.off(common.int.EVENT_SIM_STATE_CHANGE); 106048147e0Sopenharmony_ci emitter.off(common.int.EVENT_SLOTID_CHANGE); 107048147e0Sopenharmony_ci 108048147e0Sopenharmony_ci this.dialogController = null; 109048147e0Sopenharmony_ci this.delConversionController = null; 110048147e0Sopenharmony_ci } 111048147e0Sopenharmony_ci 112048147e0Sopenharmony_ci onPageShow() { 113048147e0Sopenharmony_ci WantUtil.getWant(); 114048147e0Sopenharmony_ci } 115048147e0Sopenharmony_ci 116048147e0Sopenharmony_ci onPageHide() { 117048147e0Sopenharmony_ci this.mConversationCtrl.onHide() 118048147e0Sopenharmony_ci } 119048147e0Sopenharmony_ci 120048147e0Sopenharmony_ci onBackPress() { 121048147e0Sopenharmony_ci return this.mConversationCtrl.onBackPress(); 122048147e0Sopenharmony_ci } 123048147e0Sopenharmony_ci 124048147e0Sopenharmony_ci build() { 125048147e0Sopenharmony_ci Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) { 126048147e0Sopenharmony_ci Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.Start }) { 127048147e0Sopenharmony_ci // <!--Top titleBar--> 128048147e0Sopenharmony_ci // New page 129048147e0Sopenharmony_ci if (this.mConversationCtrl.isNewMsg) { 130048147e0Sopenharmony_ci Row() { 131048147e0Sopenharmony_ci Image($rawfile('icon/ic_message_back.svg')) 132048147e0Sopenharmony_ci .width('24vp') 133048147e0Sopenharmony_ci .height('24vp') 134048147e0Sopenharmony_ci .onClick(() => { 135048147e0Sopenharmony_ci // Click Return to restore the status of unselected SMs. 136048147e0Sopenharmony_ci if (!this.mConversationCtrl.onBackPress()) { 137048147e0Sopenharmony_ci router.back(); 138048147e0Sopenharmony_ci } 139048147e0Sopenharmony_ci }) 140048147e0Sopenharmony_ci Row().width($r('app.float.space_16')) 141048147e0Sopenharmony_ci Text($r('app.string.new_message')) 142048147e0Sopenharmony_ci .fontSize(20) 143048147e0Sopenharmony_ci .lineHeight(28) 144048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 145048147e0Sopenharmony_ci .fontWeight(FontWeight.Bold) 146048147e0Sopenharmony_ci } 147048147e0Sopenharmony_ci .width('100%') 148048147e0Sopenharmony_ci .height(56) 149048147e0Sopenharmony_ci .flexShrink(0) 150048147e0Sopenharmony_ci .padding({ left: '24vp', right: '24vp' }) 151048147e0Sopenharmony_ci .zIndex(2) 152048147e0Sopenharmony_ci .expandSafeArea([SafeAreaType.KEYBOARD]) 153048147e0Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_sub_background')) 154048147e0Sopenharmony_ci 155048147e0Sopenharmony_ci } 156048147e0Sopenharmony_ci // Page for viewing SMS details 157048147e0Sopenharmony_ci else { 158048147e0Sopenharmony_ci Row() { 159048147e0Sopenharmony_ci // Select Status 160048147e0Sopenharmony_ci if (this.mConversationCtrl.isSelectStatus) { 161048147e0Sopenharmony_ci Row() { 162048147e0Sopenharmony_ci Image($rawfile('icon/ic_public_cancel.svg')) 163048147e0Sopenharmony_ci .width(24) 164048147e0Sopenharmony_ci .height(24) 165048147e0Sopenharmony_ci .onClick(() => { 166048147e0Sopenharmony_ci // Click Return to restore the status of unselected SMs. 167048147e0Sopenharmony_ci this.mConversationCtrl.titleBarCancel() 168048147e0Sopenharmony_ci }) 169048147e0Sopenharmony_ci Text(this.mConversationCtrl.selectDeleteMsgCount == 0 170048147e0Sopenharmony_ci ? $r('app.string.msg_unselected_tip') 171048147e0Sopenharmony_ci : $r('app.string.msg_selected_tip', this.mConversationCtrl.selectDeleteMsgCount)) 172048147e0Sopenharmony_ci .margin({ left: 16 }) 173048147e0Sopenharmony_ci .fontSize(20) 174048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 175048147e0Sopenharmony_ci .fontWeight(FontWeight.Bold) 176048147e0Sopenharmony_ci } 177048147e0Sopenharmony_ci .alignItems(VerticalAlign.Center) 178048147e0Sopenharmony_ci .width('100%') 179048147e0Sopenharmony_ci } else { 180048147e0Sopenharmony_ci // Non-Selected Status 181048147e0Sopenharmony_ci Row() { 182048147e0Sopenharmony_ci Flex({ 183048147e0Sopenharmony_ci alignItems: ItemAlign.Center, 184048147e0Sopenharmony_ci }) { 185048147e0Sopenharmony_ci Row() { 186048147e0Sopenharmony_ci Image($rawfile('icon/ic_message_back.svg')) 187048147e0Sopenharmony_ci .width(24) 188048147e0Sopenharmony_ci .height(24) 189048147e0Sopenharmony_ci .margin({ right: 16 }) 190048147e0Sopenharmony_ci .onClick(() => { 191048147e0Sopenharmony_ci if (!this.mConversationCtrl.onBackPress()) { 192048147e0Sopenharmony_ci router.back(); 193048147e0Sopenharmony_ci } 194048147e0Sopenharmony_ci }) 195048147e0Sopenharmony_ci 196048147e0Sopenharmony_ci if (this.mConversationCtrl.strContactsName === '' || 197048147e0Sopenharmony_ci this.mConversationCtrl.photoFirstName === '-1') { 198048147e0Sopenharmony_ci Image($rawfile('icon/ic_user_portrait.svg')) 199048147e0Sopenharmony_ci .objectFit(ImageFit.Fill) 200048147e0Sopenharmony_ci .width(40) 201048147e0Sopenharmony_ci .height(40) 202048147e0Sopenharmony_ci .clip(new Circle({ width: 40, height: 40 })) 203048147e0Sopenharmony_ci .backgroundColor(this.mConversationCtrl.portraitColor) 204048147e0Sopenharmony_ci .onClick(() => { 205048147e0Sopenharmony_ci this.mConversationCtrl.titleBarAvatar(); 206048147e0Sopenharmony_ci }) 207048147e0Sopenharmony_ci } else { 208048147e0Sopenharmony_ci Text(this.mConversationCtrl.photoFirstName) 209048147e0Sopenharmony_ci .fontSize($r('sys.float.ohos_id_text_size_headline8')) 210048147e0Sopenharmony_ci .fontWeight(FontWeight.Medium) 211048147e0Sopenharmony_ci .fontColor(Color.White) 212048147e0Sopenharmony_ci .height('40vp') 213048147e0Sopenharmony_ci .width('40vp') 214048147e0Sopenharmony_ci .textAlign(TextAlign.Center) 215048147e0Sopenharmony_ci .clip(new Circle({ width: '40vp', height: '40vp' })) 216048147e0Sopenharmony_ci .backgroundColor(this.mConversationCtrl.portraitColor) 217048147e0Sopenharmony_ci .onClick(() => { 218048147e0Sopenharmony_ci this.mConversationCtrl.titleBarAvatar(); 219048147e0Sopenharmony_ci }) 220048147e0Sopenharmony_ci } 221048147e0Sopenharmony_ci } 222048147e0Sopenharmony_ci .flexBasis(80) 223048147e0Sopenharmony_ci 224048147e0Sopenharmony_ci Column() { 225048147e0Sopenharmony_ci Flex({ 226048147e0Sopenharmony_ci direction: FlexDirection.Column, 227048147e0Sopenharmony_ci justifyContent: FlexAlign.Center, 228048147e0Sopenharmony_ci alignItems: ItemAlign.Start 229048147e0Sopenharmony_ci }) { 230048147e0Sopenharmony_ci if (this.mConversationCtrl.contactsNum > 1) { 231048147e0Sopenharmony_ci Text(this.mConversationCtrl.strContactsName) 232048147e0Sopenharmony_ci .maxLines(1) 233048147e0Sopenharmony_ci .textOverflow({ overflow: TextOverflow.Ellipsis }) 234048147e0Sopenharmony_ci .fontSize(20) 235048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 236048147e0Sopenharmony_ci .fontWeight(FontWeight.Medium) 237048147e0Sopenharmony_ci Text($r('app.string.members', this.mConversationCtrl.contactsNum)) 238048147e0Sopenharmony_ci .maxLines(1) 239048147e0Sopenharmony_ci .textOverflow({ overflow: TextOverflow.Ellipsis }) 240048147e0Sopenharmony_ci .fontSize(20) 241048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_tertiary')) 242048147e0Sopenharmony_ci .fontWeight(FontWeight.Medium) 243048147e0Sopenharmony_ci } else if (this.mConversationCtrl.strContactsName == '' || 244048147e0Sopenharmony_ci this.mConversationCtrl.strContactsName == null) { 245048147e0Sopenharmony_ci Text(this.mConversationCtrl.strContactsNumberFormat) 246048147e0Sopenharmony_ci .maxLines(1) 247048147e0Sopenharmony_ci .textOverflow({ overflow: TextOverflow.Ellipsis }) 248048147e0Sopenharmony_ci .fontSize(20) 249048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 250048147e0Sopenharmony_ci .fontWeight(FontWeight.Medium) 251048147e0Sopenharmony_ci } else { 252048147e0Sopenharmony_ci Text(this.mConversationCtrl.strContactsName.replace(/\s*/g, '')) 253048147e0Sopenharmony_ci .maxLines(1) 254048147e0Sopenharmony_ci .textOverflow({ overflow: TextOverflow.Ellipsis }) 255048147e0Sopenharmony_ci .fontSize(20) 256048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 257048147e0Sopenharmony_ci .fontWeight(FontWeight.Medium) 258048147e0Sopenharmony_ci .lineHeight(28) 259048147e0Sopenharmony_ci if (this.mConversationCtrl.strContactsName.replace(/\s*/g, '') !== 260048147e0Sopenharmony_ci this.mConversationCtrl.strContactsNumberFormat) { 261048147e0Sopenharmony_ci Text(this.mConversationCtrl.strContactsNumberFormat) 262048147e0Sopenharmony_ci .maxLines(1) 263048147e0Sopenharmony_ci .textOverflow({ overflow: TextOverflow.Ellipsis }) 264048147e0Sopenharmony_ci .fontSize(20) 265048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_tertiary')) 266048147e0Sopenharmony_ci .lineHeight(19) 267048147e0Sopenharmony_ci .fontWeight(FontWeight.Medium) 268048147e0Sopenharmony_ci } 269048147e0Sopenharmony_ci } 270048147e0Sopenharmony_ci } 271048147e0Sopenharmony_ci } 272048147e0Sopenharmony_ci .flexGrow(1) 273048147e0Sopenharmony_ci .flexShrink(1) 274048147e0Sopenharmony_ci .alignItems(HorizontalAlign.Start) 275048147e0Sopenharmony_ci .padding({ left: 12, right: 16 }) 276048147e0Sopenharmony_ci .margin({ 277048147e0Sopenharmony_ci left: this.mConversationCtrl.strContactsNumberFormat.length > 17 ? 25 : 0 278048147e0Sopenharmony_ci }) 279048147e0Sopenharmony_ci 280048147e0Sopenharmony_ci Row() { 281048147e0Sopenharmony_ci Image($rawfile('icon/ic_message_phone.svg')) 282048147e0Sopenharmony_ci .width(24) 283048147e0Sopenharmony_ci .height(24) 284048147e0Sopenharmony_ci .onClick(() => { 285048147e0Sopenharmony_ci this.mConversationCtrl.clickCall(); 286048147e0Sopenharmony_ci }) 287048147e0Sopenharmony_ci Blank().width($r('app.float.space_16')) 288048147e0Sopenharmony_ci Column() { 289048147e0Sopenharmony_ci MoreMenu() 290048147e0Sopenharmony_ci } 291048147e0Sopenharmony_ci } 292048147e0Sopenharmony_ci .flexShrink(0) 293048147e0Sopenharmony_ci }.height('100%') 294048147e0Sopenharmony_ci } 295048147e0Sopenharmony_ci .width('100%') 296048147e0Sopenharmony_ci } 297048147e0Sopenharmony_ci } 298048147e0Sopenharmony_ci .height(56) 299048147e0Sopenharmony_ci .constraintSize({ minHeight: 56 }) 300048147e0Sopenharmony_ci .padding({ left: 24, right: 24 }) 301048147e0Sopenharmony_ci .zIndex(2) 302048147e0Sopenharmony_ci .expandSafeArea([SafeAreaType.KEYBOARD]) 303048147e0Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_sub_background')) 304048147e0Sopenharmony_ci } 305048147e0Sopenharmony_ci // <!--Middle Content Area--> 306048147e0Sopenharmony_ci Row() { 307048147e0Sopenharmony_ci // New Message Content 308048147e0Sopenharmony_ci if (this.mConversationCtrl.isNewMsg) { 309048147e0Sopenharmony_ci Row() { 310048147e0Sopenharmony_ci Receive({ mConversationController: $mConversationCtrl }) 311048147e0Sopenharmony_ci } 312048147e0Sopenharmony_ci .margin({ top: $r("app.float.new_message_margin_top") }) 313048147e0Sopenharmony_ci .expandSafeArea([SafeAreaType.KEYBOARD]) 314048147e0Sopenharmony_ci .backgroundColor($r("sys.color.ohos_id_color_sub_background")) 315048147e0Sopenharmony_ci } 316048147e0Sopenharmony_ci // SMS message content 317048147e0Sopenharmony_ci // <!--Information List--> 318048147e0Sopenharmony_ci if (!this.mConversationCtrl.isNewMsg) { 319048147e0Sopenharmony_ci List({ 320048147e0Sopenharmony_ci space: 10, 321048147e0Sopenharmony_ci initialIndex: this.mConversationCtrl.mmsList.length - 1, 322048147e0Sopenharmony_ci scroller: this.mConversationCtrl.scroller 323048147e0Sopenharmony_ci }) { 324048147e0Sopenharmony_ci ForEach(this.mConversationCtrl.mmsList, (item, index) => { 325048147e0Sopenharmony_ci ListItem() { 326048147e0Sopenharmony_ci Row() { 327048147e0Sopenharmony_ci GridRow({ columns: this.gridColumns, gutter: this.gridGutter }) { 328048147e0Sopenharmony_ci // <!--Information Sending Item--> 329048147e0Sopenharmony_ci if (!item.isReceive && !item.isDraft) { 330048147e0Sopenharmony_ci GridCol({ span: this.timeGirdSpan }) { 331048147e0Sopenharmony_ci Flex({ 332048147e0Sopenharmony_ci direction: FlexDirection.Column, 333048147e0Sopenharmony_ci justifyContent: FlexAlign.Center, 334048147e0Sopenharmony_ci alignItems: ItemAlign.Center 335048147e0Sopenharmony_ci }) { 336048147e0Sopenharmony_ci // SMS/MMS 337048147e0Sopenharmony_ci if (index == 0) { 338048147e0Sopenharmony_ci Text($r('app.string.msg_note_mms')) 339048147e0Sopenharmony_ci .fontSize(12) 340048147e0Sopenharmony_ci .lineHeight(16) 341048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_secondary')) 342048147e0Sopenharmony_ci .margin({ bottom: 2 }) 343048147e0Sopenharmony_ci } 344048147e0Sopenharmony_ci // Time 345048147e0Sopenharmony_ci if (item.dateShow) { 346048147e0Sopenharmony_ci Text() { 347048147e0Sopenharmony_ci Span(item.date) 348048147e0Sopenharmony_ci .fontSize(12) 349048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_secondary')) 350048147e0Sopenharmony_ci Span(item.week) 351048147e0Sopenharmony_ci .fontSize(12) 352048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_secondary')) 353048147e0Sopenharmony_ci }.lineHeight(16).margin({ bottom: 8 }) 354048147e0Sopenharmony_ci } 355048147e0Sopenharmony_ci }.width('100%') 356048147e0Sopenharmony_ci } 357048147e0Sopenharmony_ci 358048147e0Sopenharmony_ci GridCol({ span: this.messageGirdSpan, offset: this.gridColOffset }) { 359048147e0Sopenharmony_ci Flex({ 360048147e0Sopenharmony_ci direction: FlexDirection.Column, 361048147e0Sopenharmony_ci justifyContent: FlexAlign.Center, 362048147e0Sopenharmony_ci alignItems: ItemAlign.Center 363048147e0Sopenharmony_ci }) { 364048147e0Sopenharmony_ci Flex({ 365048147e0Sopenharmony_ci justifyContent: FlexAlign.Center, 366048147e0Sopenharmony_ci alignItems: ItemAlign.Start 367048147e0Sopenharmony_ci }) { 368048147e0Sopenharmony_ci Column() { 369048147e0Sopenharmony_ci Flex({ 370048147e0Sopenharmony_ci justifyContent: FlexAlign.End, 371048147e0Sopenharmony_ci alignItems: ItemAlign.End 372048147e0Sopenharmony_ci }) { 373048147e0Sopenharmony_ci // <!--Text--> 374048147e0Sopenharmony_ci Flex({ 375048147e0Sopenharmony_ci justifyContent: FlexAlign.End, 376048147e0Sopenharmony_ci alignItems: ItemAlign.End 377048147e0Sopenharmony_ci }) { 378048147e0Sopenharmony_ci // <!--Sending failed icon--> 379048147e0Sopenharmony_ci if (!item.isMsm && 380048147e0Sopenharmony_ci ((this.mConversationCtrl.contactsNum == 1 && 381048147e0Sopenharmony_ci item.sendStatus == 2) || 382048147e0Sopenharmony_ci (this.mConversationCtrl.contactsNum > 1 && 383048147e0Sopenharmony_ci item.failuresNumber > 0 && 384048147e0Sopenharmony_ci item.completeNumber == 385048147e0Sopenharmony_ci this.mConversationCtrl.contactsNum))) { 386048147e0Sopenharmony_ci Row() { 387048147e0Sopenharmony_ci Image($rawfile('icon/ic_send_fail.svg')) 388048147e0Sopenharmony_ci .width(20) 389048147e0Sopenharmony_ci .height(20) 390048147e0Sopenharmony_ci .objectFit(ImageFit.Fill) 391048147e0Sopenharmony_ci } 392048147e0Sopenharmony_ci .margin({ right: 8 }) 393048147e0Sopenharmony_ci .padding({ top: 9 }) 394048147e0Sopenharmony_ci } 395048147e0Sopenharmony_ci // Message Bubble 396048147e0Sopenharmony_ci bubbleText({ 397048147e0Sopenharmony_ci conversationCtrl: $mConversationCtrl, 398048147e0Sopenharmony_ci bubbleTextBorderRadius: [4, 24], 399048147e0Sopenharmony_ci bubbleTextDirection: 'right', 400048147e0Sopenharmony_ci content: item.content, 401048147e0Sopenharmony_ci bubbleTextBackgroundColor: $r('app.color.sender_bubble'), 402048147e0Sopenharmony_ci isShowMsgLongMenu: item.isShowMsgLongMenu, 403048147e0Sopenharmony_ci itemIndex: index, 404048147e0Sopenharmony_ci delConversionController: this.delConversionController 405048147e0Sopenharmony_ci }) 406048147e0Sopenharmony_ci .constraintSize({ maxWidth: 284 }) 407048147e0Sopenharmony_ci } 408048147e0Sopenharmony_ci } 409048147e0Sopenharmony_ci 410048147e0Sopenharmony_ci // <!--Sending time and sending status--> 411048147e0Sopenharmony_ci Flex({ 412048147e0Sopenharmony_ci alignItems: ItemAlign.Center, 413048147e0Sopenharmony_ci justifyContent: FlexAlign.End 414048147e0Sopenharmony_ci }) { 415048147e0Sopenharmony_ci if (this.mConversationCtrl.contactsNum == 1 && 416048147e0Sopenharmony_ci item.sendStatus != 1) { 417048147e0Sopenharmony_ci Text(item.time) 418048147e0Sopenharmony_ci .textAlign(TextAlign.Start) 419048147e0Sopenharmony_ci .fontSize(10) 420048147e0Sopenharmony_ci .lineHeight(13) 421048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_secondary')) 422048147e0Sopenharmony_ci .margin({ top: 8, right: 5 }) 423048147e0Sopenharmony_ci } 424048147e0Sopenharmony_ci // Card 1 or Card 2 425048147e0Sopenharmony_ci if (this.cardImage) { 426048147e0Sopenharmony_ci Image(item.subId == 0 ? 427048147e0Sopenharmony_ci $rawfile('icon/icon_mms_sim_1.svg') : 428048147e0Sopenharmony_ci $rawfile('icon/icon_mms_sim_2.svg')) 429048147e0Sopenharmony_ci .width(10) 430048147e0Sopenharmony_ci .height(10) 431048147e0Sopenharmony_ci .margin({ top: 8, right: 5 }) 432048147e0Sopenharmony_ci } 433048147e0Sopenharmony_ci // Locked 434048147e0Sopenharmony_ci if (item.isLock) { 435048147e0Sopenharmony_ci Image($rawfile('icon/msg_lock.svg')) 436048147e0Sopenharmony_ci .width(10) 437048147e0Sopenharmony_ci .height(10) 438048147e0Sopenharmony_ci .margin({ top: 8, right: 5 }) 439048147e0Sopenharmony_ci } 440048147e0Sopenharmony_ci Text($r('app.string.messageSendFailed')) 441048147e0Sopenharmony_ci .textAlign(TextAlign.Start) 442048147e0Sopenharmony_ci .fontSize(10) 443048147e0Sopenharmony_ci .lineHeight(13) 444048147e0Sopenharmony_ci .margin({ top: 8 }) 445048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_warning')) 446048147e0Sopenharmony_ci .visibility(item.sendStatus == 2 ? 447048147e0Sopenharmony_ci Visibility.Visible : Visibility.None) 448048147e0Sopenharmony_ci Text($r('app.string.messageSending')) 449048147e0Sopenharmony_ci .textAlign(TextAlign.Start) 450048147e0Sopenharmony_ci .fontSize(10) 451048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_secondary')) 452048147e0Sopenharmony_ci .lineHeight(13) 453048147e0Sopenharmony_ci .margin({ top: 8 }) 454048147e0Sopenharmony_ci .visibility(item.sendStatus == 1 ? 455048147e0Sopenharmony_ci Visibility.Visible : Visibility.None) 456048147e0Sopenharmony_ci Text($r('app.string.messageDeliver')) 457048147e0Sopenharmony_ci .textAlign(TextAlign.Start) 458048147e0Sopenharmony_ci .fontSize(10) 459048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_secondary')) 460048147e0Sopenharmony_ci .lineHeight(13) 461048147e0Sopenharmony_ci .margin({ top: 8 }) 462048147e0Sopenharmony_ci .visibility(item.sendStatus == 0 ? 463048147e0Sopenharmony_ci Visibility.Visible : Visibility.None) 464048147e0Sopenharmony_ci }.width('100%').margin({ right: 12 }) 465048147e0Sopenharmony_ci } 466048147e0Sopenharmony_ci .width('100%') 467048147e0Sopenharmony_ci .alignItems(HorizontalAlign.End) 468048147e0Sopenharmony_ci 469048147e0Sopenharmony_ci // Sender's avatar, which is available only for group messages. 470048147e0Sopenharmony_ci Flex({ direction: FlexDirection.Column, 471048147e0Sopenharmony_ci justifyContent: FlexAlign.Start, 472048147e0Sopenharmony_ci alignItems: ItemAlign.Center }) { 473048147e0Sopenharmony_ci Image($rawfile('icon/user_avatar_full_fill.svg')) 474048147e0Sopenharmony_ci .width(30) 475048147e0Sopenharmony_ci .height(30) 476048147e0Sopenharmony_ci } 477048147e0Sopenharmony_ci .width(50) 478048147e0Sopenharmony_ci .height(30) 479048147e0Sopenharmony_ci .visibility(this.mConversationCtrl.contactsNum > 1 ? 480048147e0Sopenharmony_ci Visibility.Visible : Visibility.None) 481048147e0Sopenharmony_ci } 482048147e0Sopenharmony_ci } 483048147e0Sopenharmony_ci .width('100%') 484048147e0Sopenharmony_ci } 485048147e0Sopenharmony_ci } 486048147e0Sopenharmony_ci // <!--Information receiving item--> 487048147e0Sopenharmony_ci else if (item.isReceive) { 488048147e0Sopenharmony_ci GridCol({ span: this.timeGirdSpan }) { 489048147e0Sopenharmony_ci // <!--Information receiving item--> 490048147e0Sopenharmony_ci Flex({ 491048147e0Sopenharmony_ci direction: FlexDirection.Column, 492048147e0Sopenharmony_ci justifyContent: FlexAlign.Center, 493048147e0Sopenharmony_ci alignItems: ItemAlign.Center 494048147e0Sopenharmony_ci }) { 495048147e0Sopenharmony_ci // SMS/MMS 496048147e0Sopenharmony_ci if (index == 0) { 497048147e0Sopenharmony_ci Text($r('app.string.msg_note_mms')) 498048147e0Sopenharmony_ci .fontSize(12) 499048147e0Sopenharmony_ci .lineHeight(16) 500048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_secondary')) 501048147e0Sopenharmony_ci .margin({ bottom: 2 }) 502048147e0Sopenharmony_ci } 503048147e0Sopenharmony_ci // Time 504048147e0Sopenharmony_ci if (item.dateShow) { 505048147e0Sopenharmony_ci Text() { 506048147e0Sopenharmony_ci Span(item.date) 507048147e0Sopenharmony_ci .fontSize(12) 508048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_secondary')) 509048147e0Sopenharmony_ci Span(item.week) 510048147e0Sopenharmony_ci .fontSize(12) 511048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_secondary')) 512048147e0Sopenharmony_ci }.lineHeight(16).margin({ bottom: 8 }) 513048147e0Sopenharmony_ci } 514048147e0Sopenharmony_ci }.width('100%') 515048147e0Sopenharmony_ci } 516048147e0Sopenharmony_ci 517048147e0Sopenharmony_ci GridCol({ span: this.messageGirdSpan }) { 518048147e0Sopenharmony_ci Flex({ 519048147e0Sopenharmony_ci direction: FlexDirection.Column, 520048147e0Sopenharmony_ci justifyContent: FlexAlign.Center, 521048147e0Sopenharmony_ci alignItems: ItemAlign.Center 522048147e0Sopenharmony_ci }) { 523048147e0Sopenharmony_ci Flex({ 524048147e0Sopenharmony_ci justifyContent: FlexAlign.Center, 525048147e0Sopenharmony_ci alignItems: ItemAlign.Start 526048147e0Sopenharmony_ci }) { 527048147e0Sopenharmony_ci Column() { 528048147e0Sopenharmony_ci Flex({ 529048147e0Sopenharmony_ci alignItems: ItemAlign.Start, 530048147e0Sopenharmony_ci justifyContent: FlexAlign.Start 531048147e0Sopenharmony_ci }) { 532048147e0Sopenharmony_ci // Message Bubble 533048147e0Sopenharmony_ci bubbleText({ 534048147e0Sopenharmony_ci conversationCtrl: $mConversationCtrl, 535048147e0Sopenharmony_ci bubbleTextBorderRadius: [4, 24], 536048147e0Sopenharmony_ci bubbleTextDirection: 'left', 537048147e0Sopenharmony_ci content: item.content, 538048147e0Sopenharmony_ci bubbleTextBackgroundColor: $r('sys.color.ohos_id_color_card_bg'), 539048147e0Sopenharmony_ci isShowMsgLongMenu: item.isShowMsgLongMenu, 540048147e0Sopenharmony_ci itemIndex: index, 541048147e0Sopenharmony_ci delConversionController: this.delConversionController 542048147e0Sopenharmony_ci }) 543048147e0Sopenharmony_ci .constraintSize({ maxWidth: 284 }) 544048147e0Sopenharmony_ci } 545048147e0Sopenharmony_ci 546048147e0Sopenharmony_ci // <!--Sending time and sending status--> 547048147e0Sopenharmony_ci Flex({ 548048147e0Sopenharmony_ci alignItems: ItemAlign.Center, 549048147e0Sopenharmony_ci justifyContent: FlexAlign.Start 550048147e0Sopenharmony_ci }) { 551048147e0Sopenharmony_ci Text(item.time) 552048147e0Sopenharmony_ci .textAlign(TextAlign.Start) 553048147e0Sopenharmony_ci .fontSize(10) 554048147e0Sopenharmony_ci .lineHeight(13) 555048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_secondary')) 556048147e0Sopenharmony_ci .margin({ top: 8, right: 5 }) 557048147e0Sopenharmony_ci // Card 1 or Card 2 558048147e0Sopenharmony_ci if (this.cardImage) { 559048147e0Sopenharmony_ci Image(item.subId == 0 ? 560048147e0Sopenharmony_ci $rawfile('icon/icon_mms_sim_1.svg') : 561048147e0Sopenharmony_ci $rawfile('icon/icon_mms_sim_2.svg')) 562048147e0Sopenharmony_ci .width(10) 563048147e0Sopenharmony_ci .height(10) 564048147e0Sopenharmony_ci .margin({ top: 8, left: 5 }) 565048147e0Sopenharmony_ci } 566048147e0Sopenharmony_ci // Locked 567048147e0Sopenharmony_ci if (item.isLock) { 568048147e0Sopenharmony_ci Image($rawfile('icon/msg_lock.svg')) 569048147e0Sopenharmony_ci .width(10) 570048147e0Sopenharmony_ci .height(10) 571048147e0Sopenharmony_ci .margin({ top: 8, left: 5 }) 572048147e0Sopenharmony_ci } 573048147e0Sopenharmony_ci }.width('70%').margin({ left: 12 }) 574048147e0Sopenharmony_ci } 575048147e0Sopenharmony_ci .width('100%') 576048147e0Sopenharmony_ci .alignItems(HorizontalAlign.Start) 577048147e0Sopenharmony_ci } 578048147e0Sopenharmony_ci }.width('100%') 579048147e0Sopenharmony_ci } 580048147e0Sopenharmony_ci } 581048147e0Sopenharmony_ci }.layoutWeight(1) 582048147e0Sopenharmony_ci 583048147e0Sopenharmony_ci if (this.mConversationCtrl.isSelectStatus) { 584048147e0Sopenharmony_ci Row() { 585048147e0Sopenharmony_ci Toggle({ 586048147e0Sopenharmony_ci type: ToggleType.Checkbox, 587048147e0Sopenharmony_ci isOn: item.isCbChecked 588048147e0Sopenharmony_ci }) 589048147e0Sopenharmony_ci .selectedColor($r('sys.color.ohos_id_color_activated')) 590048147e0Sopenharmony_ci .width(24) 591048147e0Sopenharmony_ci .height(24) 592048147e0Sopenharmony_ci .onChange(((isOn: boolean) => { 593048147e0Sopenharmony_ci this.mConversationCtrl.listCheckBoxChange(index, isOn) 594048147e0Sopenharmony_ci })) 595048147e0Sopenharmony_ci } 596048147e0Sopenharmony_ci .margin({ left: 4 }) 597048147e0Sopenharmony_ci .width(48) 598048147e0Sopenharmony_ci .height(48) 599048147e0Sopenharmony_ci } 600048147e0Sopenharmony_ci } 601048147e0Sopenharmony_ci .padding(this.curBp === 'sm' ? { left: 16, right: 16 } : { left: 24, right: 24 }) 602048147e0Sopenharmony_ci .width('100%') 603048147e0Sopenharmony_ci .alignItems(VerticalAlign.Center) 604048147e0Sopenharmony_ci }.onClick(() => { 605048147e0Sopenharmony_ci if (this.mConversationCtrl.isSelectStatus) { 606048147e0Sopenharmony_ci this.mConversationCtrl.listCheckBoxChange(index,!item.isCbChecked) 607048147e0Sopenharmony_ci } 608048147e0Sopenharmony_ci }) 609048147e0Sopenharmony_ci .padding(index == this.mConversationCtrl.mmsList.length - 1 ? { bottom: 20 } : null) 610048147e0Sopenharmony_ci }, item => JSON.stringify(item)) 611048147e0Sopenharmony_ci } 612048147e0Sopenharmony_ci .listDirection(Axis.Vertical) // Arrange Direction 613048147e0Sopenharmony_ci .edgeEffect(EdgeEffect.Spring) // Sliding to the edge has no effect 614048147e0Sopenharmony_ci .width('100%') 615048147e0Sopenharmony_ci .margin({ top: 16 }) 616048147e0Sopenharmony_ci } 617048147e0Sopenharmony_ci } 618048147e0Sopenharmony_ci .width('100%') 619048147e0Sopenharmony_ci .flexBasis('auto') 620048147e0Sopenharmony_ci .flexShrink(1) 621048147e0Sopenharmony_ci } 622048147e0Sopenharmony_ci .width('100%') 623048147e0Sopenharmony_ci 624048147e0Sopenharmony_ci // Input box at the bottom 625048147e0Sopenharmony_ci Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Start }) { 626048147e0Sopenharmony_ci // More options at the bottom 627048147e0Sopenharmony_ci if (this.mConversationCtrl.isSelectStatus && !this.mConversationCtrl.hasDetailDelete) { 628048147e0Sopenharmony_ci /** The Info button is checked at the bottom. */ 629048147e0Sopenharmony_ci Flex({ 630048147e0Sopenharmony_ci direction: FlexDirection.Row, 631048147e0Sopenharmony_ci alignItems: ItemAlign.Center, 632048147e0Sopenharmony_ci justifyContent: FlexAlign.SpaceBetween 633048147e0Sopenharmony_ci }) { 634048147e0Sopenharmony_ci /** Delete */ 635048147e0Sopenharmony_ci Column() { 636048147e0Sopenharmony_ci Image($rawfile('icon/ic_public_delete.svg')) 637048147e0Sopenharmony_ci .width(24) 638048147e0Sopenharmony_ci .height(24) 639048147e0Sopenharmony_ci Text($r('app.string.delete')) 640048147e0Sopenharmony_ci .fontSize(10) 641048147e0Sopenharmony_ci .margin({ top: 3 }) 642048147e0Sopenharmony_ci .lineHeight(14) 643048147e0Sopenharmony_ci .fontWeight(FontWeight.Medium) 644048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 645048147e0Sopenharmony_ci }.width('25%').opacity(this.mConversationCtrl.selectDeleteMsgCount == 0 ? 0.4 : 1) 646048147e0Sopenharmony_ci .onClick(() => { 647048147e0Sopenharmony_ci if (this.mConversationCtrl.selectDeleteMsgCount != 0) { 648048147e0Sopenharmony_ci this.mConversationCtrl.clickGroupDelete(); 649048147e0Sopenharmony_ci this.delConversionController.open(); 650048147e0Sopenharmony_ci } 651048147e0Sopenharmony_ci }) 652048147e0Sopenharmony_ci 653048147e0Sopenharmony_ci Column() { 654048147e0Sopenharmony_ci Image(this.mConversationCtrl.isMessageCheckAll ? $rawfile('icon/ic_select_all_filled.svg') 655048147e0Sopenharmony_ci : $rawfile('icon/ic_select_all.svg')) 656048147e0Sopenharmony_ci .width(24) 657048147e0Sopenharmony_ci .height(24) 658048147e0Sopenharmony_ci Text(this.mConversationCtrl.isMessageCheckAll ? $r('app.string.msg_deselect_all') 659048147e0Sopenharmony_ci : $r('app.string.msg_select_all')) { 660048147e0Sopenharmony_ci } 661048147e0Sopenharmony_ci .fontSize(10) 662048147e0Sopenharmony_ci .margin({ top: 3 }) 663048147e0Sopenharmony_ci .lineHeight(14) 664048147e0Sopenharmony_ci .fontWeight(FontWeight.Medium) 665048147e0Sopenharmony_ci .fontColor(this.mConversationCtrl.isMessageCheckAll ? 666048147e0Sopenharmony_ci $r('sys.color.ohos_id_color_subtab_text_on') : $r('sys.color.ohos_id_color_text_primary')) 667048147e0Sopenharmony_ci }.width('25%') 668048147e0Sopenharmony_ci .onClick(() => { 669048147e0Sopenharmony_ci this.mConversationCtrl.clickGroupCheckAll() 670048147e0Sopenharmony_ci }) 671048147e0Sopenharmony_ci 672048147e0Sopenharmony_ci /** more */ 673048147e0Sopenharmony_ci Column() { 674048147e0Sopenharmony_ci Image($rawfile('icon/ic_message_more1.svg')) 675048147e0Sopenharmony_ci .width(24) 676048147e0Sopenharmony_ci .height(24) 677048147e0Sopenharmony_ci Text($r('app.string.more')) { 678048147e0Sopenharmony_ci } 679048147e0Sopenharmony_ci .fontSize(10) 680048147e0Sopenharmony_ci .margin({ top: 3 }) 681048147e0Sopenharmony_ci .lineHeight(14) 682048147e0Sopenharmony_ci .fontWeight(FontWeight.Medium) 683048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 684048147e0Sopenharmony_ci } 685048147e0Sopenharmony_ci .width('25%') 686048147e0Sopenharmony_ci .enabled(this.mConversationCtrl.selectDeleteMsgCount == 1 ? true : false) 687048147e0Sopenharmony_ci // @ts-ignore 688048147e0Sopenharmony_ci .bindMenu(this.MenuBuilder) 689048147e0Sopenharmony_ci } 690048147e0Sopenharmony_ci .width('100%') 691048147e0Sopenharmony_ci .height(56) 692048147e0Sopenharmony_ci } 693048147e0Sopenharmony_ci // <!--Bottom Send Bar--> 694048147e0Sopenharmony_ci if (!this.mConversationCtrl.isSelectStatus) { 695048147e0Sopenharmony_ci Flex({ alignItems: ItemAlign.End, justifyContent: FlexAlign.Center }) { 696048147e0Sopenharmony_ci // <!--Left More and Full Screen Display--> 697048147e0Sopenharmony_ci Row() { 698048147e0Sopenharmony_ci Image($rawfile('icon/msg_add.svg')) 699048147e0Sopenharmony_ci .onClick(() => { 700048147e0Sopenharmony_ci 701048147e0Sopenharmony_ci }) 702048147e0Sopenharmony_ci .width(24) 703048147e0Sopenharmony_ci .height(24) 704048147e0Sopenharmony_ci .visibility(Visibility.Visible) 705048147e0Sopenharmony_ci .opacity(0.3) 706048147e0Sopenharmony_ci Blank().width(16) 707048147e0Sopenharmony_ci Row() { 708048147e0Sopenharmony_ci if (this.cardImage) { 709048147e0Sopenharmony_ci MultiSimCardMenu({ 710048147e0Sopenharmony_ci slotId: this.slotId 711048147e0Sopenharmony_ci }) 712048147e0Sopenharmony_ci } 713048147e0Sopenharmony_ci Row() { 714048147e0Sopenharmony_ci TextArea({ 715048147e0Sopenharmony_ci placeholder: $r('app.string.msg_note_mms'), 716048147e0Sopenharmony_ci text: this.mConversationCtrl.textValue 717048147e0Sopenharmony_ci }) 718048147e0Sopenharmony_ci .placeholderColor($r('sys.color.ohos_id_color_text_hint')) 719048147e0Sopenharmony_ci .caretColor($r('sys.color.ohos_id_color_focused_outline')) 720048147e0Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_background_transparent')) 721048147e0Sopenharmony_ci .onChange(value => { 722048147e0Sopenharmony_ci this.mConversationCtrl.changeValue(value); 723048147e0Sopenharmony_ci }) 724048147e0Sopenharmony_ci .padding({ left: 0, right: this.cardImage ? 42 : 0 }) 725048147e0Sopenharmony_ci .borderRadius(0) 726048147e0Sopenharmony_ci .fontSize(16) 727048147e0Sopenharmony_ci }.constraintSize({ minHeight: 40 }) 728048147e0Sopenharmony_ci } 729048147e0Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_text_field_sub_bg')) 730048147e0Sopenharmony_ci .padding({ left: 8, right: 8 }) 731048147e0Sopenharmony_ci .borderRadius(20) 732048147e0Sopenharmony_ci .width('100%') 733048147e0Sopenharmony_ci .layoutWeight(1) 734048147e0Sopenharmony_ci 735048147e0Sopenharmony_ci Image($rawfile('icon/ic_message_emoji.svg')) 736048147e0Sopenharmony_ci .width(24) 737048147e0Sopenharmony_ci .height(24) 738048147e0Sopenharmony_ci .margin({ left: 16 }) 739048147e0Sopenharmony_ci .visibility(Visibility.Visible) 740048147e0Sopenharmony_ci .opacity(0.3) 741048147e0Sopenharmony_ci // <!--send--> 742048147e0Sopenharmony_ci Image(this.mConversationCtrl.canSendMessage ? $rawfile('icon/ic_message_send_filled.svg') 743048147e0Sopenharmony_ci : $rawfile('icon/ic_message_send.svg')) 744048147e0Sopenharmony_ci .onClick(() => { 745048147e0Sopenharmony_ci // Click Send. 746048147e0Sopenharmony_ci this.mConversationCtrl.send(); 747048147e0Sopenharmony_ci }) 748048147e0Sopenharmony_ci .width(24) 749048147e0Sopenharmony_ci .height(24) 750048147e0Sopenharmony_ci .margin({ left: 16 }) 751048147e0Sopenharmony_ci }.width('100%') 752048147e0Sopenharmony_ci } 753048147e0Sopenharmony_ci .constraintSize({ minHeight: 56 }) 754048147e0Sopenharmony_ci .width('100%').padding({ bottom: 8, top: 8 }) 755048147e0Sopenharmony_ci } 756048147e0Sopenharmony_ci } 757048147e0Sopenharmony_ci .width('100%') 758048147e0Sopenharmony_ci .padding({ 759048147e0Sopenharmony_ci left: this.mConversationCtrl.isSelectStatus && !this.mConversationCtrl.hasDetailDelete ? 0 : 760048147e0Sopenharmony_ci $r('app.float.space_24'), 761048147e0Sopenharmony_ci right: this.mConversationCtrl.isSelectStatus && !this.mConversationCtrl.hasDetailDelete ? 0 : 762048147e0Sopenharmony_ci $r('app.float.bottom_send_bar_padding_right') 763048147e0Sopenharmony_ci }) 764048147e0Sopenharmony_ci .clip(new Rect({ 765048147e0Sopenharmony_ci width: '100%', 766048147e0Sopenharmony_ci height: '100%', 767048147e0Sopenharmony_ci radius: this.mConversationCtrl.isSelectStatus ? [] : [[20, 20], [20, 20], [0, 0], [0, 0]] 768048147e0Sopenharmony_ci })) 769048147e0Sopenharmony_ci .backgroundColor(this.mConversationCtrl.isSelectStatus && !this.mConversationCtrl.hasDetailDelete ? 770048147e0Sopenharmony_ci null : $r('sys.color.ohos_id_color_toolbar_bg')) 771048147e0Sopenharmony_ci } 772048147e0Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_sub_background')) 773048147e0Sopenharmony_ci .width('100%') 774048147e0Sopenharmony_ci .height('100%') 775048147e0Sopenharmony_ci } 776048147e0Sopenharmony_ci 777048147e0Sopenharmony_ci @Builder 778048147e0Sopenharmony_ci MenuBuilder() { 779048147e0Sopenharmony_ci Column() { 780048147e0Sopenharmony_ci Row() { 781048147e0Sopenharmony_ci Text($r('app.string.query_details')) 782048147e0Sopenharmony_ci .lineHeight(22) 783048147e0Sopenharmony_ci .fontSize(16) 784048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 785048147e0Sopenharmony_ci .margin({ left: 16, top: 13, bottom: 13 }) 786048147e0Sopenharmony_ci } 787048147e0Sopenharmony_ci .width('100%') 788048147e0Sopenharmony_ci .height(48) 789048147e0Sopenharmony_ci .onClick(() => { 790048147e0Sopenharmony_ci this.dialogController.open() 791048147e0Sopenharmony_ci this.mConversationCtrl.isSelectStatus = !this.mConversationCtrl.isSelectStatus 792048147e0Sopenharmony_ci this.mConversationCtrl.isMessageCheckAll = false 793048147e0Sopenharmony_ci this.mConversationCtrl.cancelCheckedAll() 794048147e0Sopenharmony_ci }) 795048147e0Sopenharmony_ci 796048147e0Sopenharmony_ci if (this.mConversationCtrl.hasReport) { 797048147e0Sopenharmony_ci Divider() 798048147e0Sopenharmony_ci .margin({ left: 16, right: 16 }) 799048147e0Sopenharmony_ci .strokeWidth(0.5) 800048147e0Sopenharmony_ci .color($r('sys.color.ohos_id_color_list_separator')) 801048147e0Sopenharmony_ci 802048147e0Sopenharmony_ci Row() { 803048147e0Sopenharmony_ci Text($r('app.string.query_report')) 804048147e0Sopenharmony_ci .lineHeight(22) 805048147e0Sopenharmony_ci .fontSize(16) 806048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 807048147e0Sopenharmony_ci .margin({ left: 16, top: 13, bottom: 13 }) 808048147e0Sopenharmony_ci }.height(48) 809048147e0Sopenharmony_ci .onClick(() => { 810048147e0Sopenharmony_ci this.mConversationCtrl.moreSelected(6) 811048147e0Sopenharmony_ci }) 812048147e0Sopenharmony_ci } 813048147e0Sopenharmony_ci }.borderRadius(24) 814048147e0Sopenharmony_ci .width(145) 815048147e0Sopenharmony_ci .alignItems(HorizontalAlign.Start) 816048147e0Sopenharmony_ci } 817048147e0Sopenharmony_ci} 818048147e0Sopenharmony_ci 819048147e0Sopenharmony_ci@CustomDialog 820048147e0Sopenharmony_cistruct DetailsDialog { 821048147e0Sopenharmony_ci controller: CustomDialogController 822048147e0Sopenharmony_ci item: LooseObject 823048147e0Sopenharmony_ci receiver: string 824048147e0Sopenharmony_ci 825048147e0Sopenharmony_ci build() { 826048147e0Sopenharmony_ci Column() { 827048147e0Sopenharmony_ci Text($r('app.string.msgDetails')) 828048147e0Sopenharmony_ci .fontSize(20) 829048147e0Sopenharmony_ci .lineHeight(28) 830048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 831048147e0Sopenharmony_ci .fontWeight(FontWeight.Bold) 832048147e0Sopenharmony_ci .fontFamily('HarmonyHeiTi') 833048147e0Sopenharmony_ci .margin({ top: 14, bottom: 14 }) 834048147e0Sopenharmony_ci Text() { 835048147e0Sopenharmony_ci Span($r('app.string.type')).fontSize(16) 836048147e0Sopenharmony_ci Span($r('app.string.sms')).fontSize(16) 837048147e0Sopenharmony_ci } 838048147e0Sopenharmony_ci .fontSize(16) 839048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 840048147e0Sopenharmony_ci .margin({ bottom: 4 }) 841048147e0Sopenharmony_ci .fontFamily('HarmonyHeiTi') 842048147e0Sopenharmony_ci 843048147e0Sopenharmony_ci Text() { 844048147e0Sopenharmony_ci Span(this.item.isReceive ? $r('app.string.sender') : $r('app.string.putAddresser')).fontSize(16) 845048147e0Sopenharmony_ci Span(this.receiver).fontSize(16) 846048147e0Sopenharmony_ci } 847048147e0Sopenharmony_ci .fontSize(16) 848048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 849048147e0Sopenharmony_ci .margin({ bottom: 4 }) 850048147e0Sopenharmony_ci .fontFamily('HarmonyHeiTi') 851048147e0Sopenharmony_ci 852048147e0Sopenharmony_ci Text() { 853048147e0Sopenharmony_ci Span($r('app.string.sendTime')).fontSize(16) 854048147e0Sopenharmony_ci Span(this.item.fullDate).fontSize(16) 855048147e0Sopenharmony_ci Span(this.item.timeOfSms).fontSize(16) 856048147e0Sopenharmony_ci } 857048147e0Sopenharmony_ci .fontSize(16) 858048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 859048147e0Sopenharmony_ci .margin({ bottom: 8 }) 860048147e0Sopenharmony_ci .fontFamily('HarmonyHeiTi') 861048147e0Sopenharmony_ci 862048147e0Sopenharmony_ci Flex({ justifyContent: FlexAlign.Center }) { 863048147e0Sopenharmony_ci Button() { 864048147e0Sopenharmony_ci Text($r('app.string.msg_know')) 865048147e0Sopenharmony_ci .fontFamily('HarmonyHeiTi') 866048147e0Sopenharmony_ci .fontWeight(FontWeight.Medium) 867048147e0Sopenharmony_ci .fontSize(16) 868048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_floating_button_bg_normal')) 869048147e0Sopenharmony_ci } 870048147e0Sopenharmony_ci .width(200) 871048147e0Sopenharmony_ci .backgroundColor(Color.Transparent) 872048147e0Sopenharmony_ci .margin({ top: 5 }) 873048147e0Sopenharmony_ci .onClick(() => { 874048147e0Sopenharmony_ci this.controller.close() 875048147e0Sopenharmony_ci }) 876048147e0Sopenharmony_ci }.height(40) 877048147e0Sopenharmony_ci } 878048147e0Sopenharmony_ci .borderRadius(24) 879048147e0Sopenharmony_ci .padding({ left: 24, right: 24, bottom: 16 }) 880048147e0Sopenharmony_ci .alignItems(HorizontalAlign.Start) 881048147e0Sopenharmony_ci } 882048147e0Sopenharmony_ci} 883048147e0Sopenharmony_ci 884048147e0Sopenharmony_ci// Custom Chat Bubble 885048147e0Sopenharmony_ci@Component 886048147e0Sopenharmony_cistruct bubbleText { 887048147e0Sopenharmony_ci @Link conversationCtrl: ConversationController; 888048147e0Sopenharmony_ci private delConversionController: any; 889048147e0Sopenharmony_ci private bubbleTextBorderRadius: Array<number>; // Fillet size, two parameters in total 890048147e0Sopenharmony_ci private bubbleTextDirection: string; // left: upper left corner right: upper right corner 891048147e0Sopenharmony_ci private content: string; // Bubble Display Content 892048147e0Sopenharmony_ci private bubbleTextBackgroundColor: Resource | string; // Bubble background color 893048147e0Sopenharmony_ci private isShowMsgLongMenu: boolean; 894048147e0Sopenharmony_ci private itemIndex: number; 895048147e0Sopenharmony_ci @State showMenu: boolean = false 896048147e0Sopenharmony_ci 897048147e0Sopenharmony_ci aboutToAppear() { 898048147e0Sopenharmony_ci this.showMenu = this.isShowMsgLongMenu 899048147e0Sopenharmony_ci } 900048147e0Sopenharmony_ci 901048147e0Sopenharmony_ci @Builder 902048147e0Sopenharmony_ci MenuBuilder() { 903048147e0Sopenharmony_ci Row() { 904048147e0Sopenharmony_ci Button($r('app.string.msg_transmit')) 905048147e0Sopenharmony_ci .fontSize(14) 906048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 907048147e0Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_dialog_bg')) 908048147e0Sopenharmony_ci .onClick(() => { 909048147e0Sopenharmony_ci this.conversationCtrl.longPressSelected(1) 910048147e0Sopenharmony_ci this.showMenu = false 911048147e0Sopenharmony_ci }) 912048147e0Sopenharmony_ci Button($r('app.string.delete')) 913048147e0Sopenharmony_ci .fontSize(14) 914048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 915048147e0Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_dialog_bg')) 916048147e0Sopenharmony_ci .onClick(() => { 917048147e0Sopenharmony_ci this.conversationCtrl.longPressSelected(2) 918048147e0Sopenharmony_ci this.showMenu = false 919048147e0Sopenharmony_ci this.delConversionController.open(); 920048147e0Sopenharmony_ci }) 921048147e0Sopenharmony_ci Button($r('app.string.more')) 922048147e0Sopenharmony_ci .fontSize(14) 923048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 924048147e0Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_dialog_bg')) 925048147e0Sopenharmony_ci .onClick(() => { 926048147e0Sopenharmony_ci this.conversationCtrl.longPressSelected(4) 927048147e0Sopenharmony_ci this.showMenu = false 928048147e0Sopenharmony_ci }) 929048147e0Sopenharmony_ci } 930048147e0Sopenharmony_ci .height(40) 931048147e0Sopenharmony_ci .borderRadius(20) 932048147e0Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_dialog_bg')) 933048147e0Sopenharmony_ci } 934048147e0Sopenharmony_ci 935048147e0Sopenharmony_ci build() { 936048147e0Sopenharmony_ci Row() { 937048147e0Sopenharmony_ci Text(this.content) 938048147e0Sopenharmony_ci .fontSize(16) 939048147e0Sopenharmony_ci .lineHeight(21) 940048147e0Sopenharmony_ci .padding({ left: 12, right: 12, top: 8, bottom: 8 }) 941048147e0Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 942048147e0Sopenharmony_ci } 943048147e0Sopenharmony_ci .backgroundColor(this.bubbleTextBackgroundColor) 944048147e0Sopenharmony_ci .borderRadius(this.bubbleTextDirection == 'right' ? 945048147e0Sopenharmony_ci { topLeft: this.bubbleTextBorderRadius[1], topRight: this.bubbleTextBorderRadius[0], 946048147e0Sopenharmony_ci bottomLeft: this.bubbleTextBorderRadius[1], bottomRight: this.bubbleTextBorderRadius[1] } : 947048147e0Sopenharmony_ci { topLeft: this.bubbleTextBorderRadius[0], topRight: this.bubbleTextBorderRadius[1], 948048147e0Sopenharmony_ci bottomLeft: this.bubbleTextBorderRadius[1], bottomRight: this.bubbleTextBorderRadius[1] }) 949048147e0Sopenharmony_ci .flexBasis('auto') 950048147e0Sopenharmony_ci .gesture( 951048147e0Sopenharmony_ci LongPressGesture({ 952048147e0Sopenharmony_ci repeat: false, 953048147e0Sopenharmony_ci duration: 500 954048147e0Sopenharmony_ci })//Touch and hold the action will be triggered continuously. 955048147e0Sopenharmony_ci .onAction(() => { 956048147e0Sopenharmony_ci if (!this.conversationCtrl.isSelectStatus) { 957048147e0Sopenharmony_ci this.conversationCtrl.mmsListLongPress(this.itemIndex) 958048147e0Sopenharmony_ci this.showMenu = true 959048147e0Sopenharmony_ci } 960048147e0Sopenharmony_ci }) 961048147e0Sopenharmony_ci ) 962048147e0Sopenharmony_ci .bindPopup(this.showMenu, { 963048147e0Sopenharmony_ci builder: this.MenuBuilder, 964048147e0Sopenharmony_ci placement: this.bubbleTextDirection == 'left' ? Placement.TopRight : Placement.TopLeft, 965048147e0Sopenharmony_ci maskColor: $r('sys.color.ohos_id_color_mask_thin'), 966048147e0Sopenharmony_ci popupColor: $r('sys.color.ohos_id_color_background_transparent'), 967048147e0Sopenharmony_ci enableArrow: false, 968048147e0Sopenharmony_ci onStateChange: (e) => { 969048147e0Sopenharmony_ci if (!e.isVisible) { 970048147e0Sopenharmony_ci this.showMenu = false 971048147e0Sopenharmony_ci } 972048147e0Sopenharmony_ci } 973048147e0Sopenharmony_ci }) 974048147e0Sopenharmony_ci } 975048147e0Sopenharmony_ci}