|
|
|
@ -2,21 +2,23 @@ import 'package:flutter/material.dart'; |
|
|
|
import 'package:get/get.dart'; |
|
|
|
|
|
|
|
import '../../../data/services/db/sqflite_api.dart'; |
|
|
|
import '../model/meeting_details_model.dart'; |
|
|
|
import '../model/meeting_model.dart'; |
|
|
|
import 'meeting_controller.dart'; |
|
|
|
import 'meeting_details_controller.dart'; |
|
|
|
|
|
|
|
class MeetingEditController extends GetxController |
|
|
|
with GetSingleTickerProviderStateMixin { |
|
|
|
final MeetingController meetingController = Get.find<MeetingController>(); |
|
|
|
final MeetingDetailsController meetingDetailsController = |
|
|
|
Get.find<MeetingDetailsController>(); |
|
|
|
|
|
|
|
late AnimationController lottieController; |
|
|
|
|
|
|
|
late TextEditingController titleController; |
|
|
|
late TextEditingController contentController; |
|
|
|
|
|
|
|
int id = 0; |
|
|
|
int creationTime = 0; |
|
|
|
|
|
|
|
RxBool isLoading = true.obs; |
|
|
|
Rx<MeetingModel> meetingData = MeetingModel().obs; |
|
|
|
Rx<MeetingDetailsModel> dataDetails = MeetingDetailsModel().obs; |
|
|
|
int id = 0; |
|
|
|
|
|
|
|
RxBool isPlay = false.obs; |
|
|
|
|
|
|
|
@ -38,16 +40,13 @@ class MeetingEditController extends GetxController |
|
|
|
} |
|
|
|
|
|
|
|
void _getDataDetails() async { |
|
|
|
final data = await SqfliteApi.getMeetingDetails(id); |
|
|
|
meetingData.value = MeetingModel.fromJson(data); |
|
|
|
dataDetails.value = MeetingDetailsModel.fromJson(data['details']); |
|
|
|
titleController = TextEditingController( |
|
|
|
text: meetingData.value.title, |
|
|
|
text: meetingDetailsController.meetingData.value.title, |
|
|
|
); |
|
|
|
contentController = TextEditingController( |
|
|
|
text: dataDetails.value.content, |
|
|
|
text: meetingDetailsController.dataDetails.value.content, |
|
|
|
); |
|
|
|
isLoading.value = false; |
|
|
|
creationTime = meetingDetailsController.meetingData.value.creationtime; |
|
|
|
} |
|
|
|
|
|
|
|
void start() { |
|
|
|
@ -59,4 +58,39 @@ class MeetingEditController extends GetxController |
|
|
|
isPlay.value = true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void confirm() async { |
|
|
|
String content = contentController.text; |
|
|
|
String firstContent = |
|
|
|
content.length >= 20 ? content.substring(0, 20) : content; |
|
|
|
String title = titleController.text.isNotEmpty |
|
|
|
? titleController.text |
|
|
|
: meetingDetailsController.meetingData.value.title; |
|
|
|
Map<String, Object?> data = { |
|
|
|
'title': title, |
|
|
|
'firstContent': firstContent, |
|
|
|
'seconds': meetingDetailsController.seconds, |
|
|
|
'content': contentController.text, |
|
|
|
}; |
|
|
|
final result = await SqfliteApi.editMeeting(id, data); |
|
|
|
if (result != null) { |
|
|
|
int index = meetingController.dataList.indexWhere( |
|
|
|
(item) => item['id'] == id, |
|
|
|
); |
|
|
|
if (index != -1) { |
|
|
|
final dataMap = |
|
|
|
Map<String, dynamic>.from(meetingController.dataList[index]); |
|
|
|
dataMap['title'] = title; |
|
|
|
dataMap['content'] = firstContent; |
|
|
|
dataMap['seconds'] = meetingDetailsController.seconds; |
|
|
|
meetingController.dataList[index] = dataMap; |
|
|
|
} |
|
|
|
meetingDetailsController.meetingData.value.title = title; |
|
|
|
meetingDetailsController.dataDetails.value.content = |
|
|
|
contentController.text; |
|
|
|
meetingDetailsController.meetingData.refresh(); |
|
|
|
meetingDetailsController.dataDetails.refresh(); |
|
|
|
Get.back(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|