|
|
|
@ -462,12 +462,20 @@ class _SpeakerAllBottomSheetState extends State<SpeakerAllBottomSheet> { |
|
|
|
List textList = _controller.textList; |
|
|
|
List newTextList = []; |
|
|
|
List editSpeakerList = []; |
|
|
|
List personnelList = []; |
|
|
|
String personnel = ''; |
|
|
|
bool isLoopEnd = false; |
|
|
|
for (var element in textList) { |
|
|
|
final dataMap = Map<String, dynamic>.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<SpeakerAllBottomSheet> { |
|
|
|
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(); |
|
|
|
|