diff --git a/lib/modules/meeting/controllers/meeting_details_controller.dart b/lib/modules/meeting/controllers/meeting_details_controller.dart index 8f085f76e..e894d1bf1 100644 --- a/lib/modules/meeting/controllers/meeting_details_controller.dart +++ b/lib/modules/meeting/controllers/meeting_details_controller.dart @@ -166,7 +166,7 @@ class MeetingDetailsController extends GetxController String text = ''; for (var element in textList) { if (element['speaker'].isNotEmpty) { - text += '${element['speaker']}:'; + text += '[${element['speaker']}]:'; } text += '${element['content']}\n'; } @@ -319,7 +319,7 @@ class MeetingDetailsController extends GetxController String speaker = ''; if (element['additions'].isNotEmpty) { speaker = 'Speaker ${element['additions']['speaker']}'; - text += '$speaker:'; + text += '[$speaker]:'; if (!personnel.contains(speaker)) { personnel += '[$speaker] '; } diff --git a/lib/modules/meeting/views/speaker_all_bottom_sheet.dart b/lib/modules/meeting/views/speaker_all_bottom_sheet.dart index bb3271747..cd455a945 100644 --- a/lib/modules/meeting/views/speaker_all_bottom_sheet.dart +++ b/lib/modules/meeting/views/speaker_all_bottom_sheet.dart @@ -462,12 +462,20 @@ class _SpeakerAllBottomSheetState extends State { List textList = _controller.textList; List newTextList = []; List editSpeakerList = []; + List personnelList = []; String personnel = ''; + bool isLoopEnd = false; for (var element in textList) { final dataMap = Map.from(element); for (var data in _dataList) { String speaker = data['speakerText'].text; if (speaker.isNotEmpty && speaker != data['speaker']) { + if (!isLoopEnd) { + personnelList.add({ + 'original': data['speaker'], + 'speaker': speaker, + }); + } if (dataMap['speaker'] == data['speaker']) { dataMap['speaker'] = speaker; editSpeakerList.add({ @@ -485,13 +493,36 @@ class _SpeakerAllBottomSheetState extends State { personnel += '[${dataMap['speaker']}] '; } newTextList.add(dataMap); + isLoopEnd = true; } - var result = await SqfliteApi.editMeetingSpeaker(editSpeakerList); - if (result != null) { - _controller.textList.value = newTextList; - SqfliteApi.editMeeting(_controller.id, {'personnel': personnel}); - _controller.meetingDetails.value.personnel = personnel; - _storage.write("speaker_list", _historySpeakerList); + if (editSpeakerList.isNotEmpty) { + var result = await SqfliteApi.editMeetingSpeaker(editSpeakerList); + if (result != null) { + bool isEditSummary = false; + String summaryText = _controller.meetingDetails.value.summary; + _controller.textList.value = newTextList; + for (var element in personnelList) { + if (summaryText.contains('[${element['original']}]')) { + summaryText = summaryText.replaceAll( + '[${element['original']}]', '[${element['speaker']}]'); + isEditSummary = true; + } + } + if (isEditSummary) { + SqfliteApi.editMeeting(_controller.id, { + 'summary': summaryText, + 'personnel': personnel, + }); + _controller.meetingDetails.value.summary = summaryText; + } else { + SqfliteApi.editMeeting(_controller.id, {'personnel': personnel}); + } + _controller.meetingDetails.value.personnel = personnel; + _controller.meetingDetails.refresh(); + _storage.write("speaker_list", _historySpeakerList); + Get.back(); + } + } else { Get.back(); } EasyLoading.dismiss(); diff --git a/lib/modules/meeting/views/speaker_bottom_sheet.dart b/lib/modules/meeting/views/speaker_bottom_sheet.dart index 3bc629643..94c6130cd 100644 --- a/lib/modules/meeting/views/speaker_bottom_sheet.dart +++ b/lib/modules/meeting/views/speaker_bottom_sheet.dart @@ -365,7 +365,19 @@ class _SpeakerBottomSheetState extends State { var result = await SqfliteApi.editMeetingSpeaker(editSpeakerList); if (result != null) { _controller.textList.value = newTextList; - SqfliteApi.editMeeting(_controller.id, {'personnel': personnel}); + if (_controller.meetingDetails.value.summary + .contains('[${widget.speakerName}]')) { + String summaryText = _controller.meetingDetails.value.summary + .replaceAll( + '[${widget.speakerName}]', '[${_speakerController.text}]'); + SqfliteApi.editMeeting(_controller.id, { + 'summary': summaryText, + 'personnel': personnel, + }); + _controller.meetingDetails.value.summary = summaryText; + } else { + SqfliteApi.editMeeting(_controller.id, {'personnel': personnel}); + } _controller.meetingDetails.value.personnel = personnel; _addHistorySpeaker(); Get.back(); diff --git a/lib/modules/meeting/views/speech_tab.dart b/lib/modules/meeting/views/speech_tab.dart index a61ebae6a..1d742a493 100644 --- a/lib/modules/meeting/views/speech_tab.dart +++ b/lib/modules/meeting/views/speech_tab.dart @@ -162,7 +162,7 @@ class SpeechTab extends GetView { } if (controller.currentDuration.value != 0) { if (controller.currentDuration.value >= starttime && - controller.currentDuration.value <= endtime) { + controller.currentDuration.value < endtime) { isActive = true; } }