controller.dart 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import 'dart:async';
  2. import 'package:electronic_assistant/base/base_controller.dart';
  3. import 'package:electronic_assistant/data/bean/agenda.dart';
  4. import 'package:electronic_assistant/data/bean/talks.dart';
  5. import 'package:electronic_assistant/data/consts/event_report_id.dart';
  6. import 'package:electronic_assistant/data/repositories/talk_repository.dart';
  7. import 'package:flutter/cupertino.dart';
  8. import 'package:get/get.dart';
  9. import '../../../data/bean/agenda_list_all_bean.dart';
  10. import '../controller.dart';
  11. class SummaryController extends BaseController {
  12. final TalkController talkController = Get.find();
  13. final Rxn<TalkBean> summaryBean = Rxn();
  14. StreamSubscription? _talkStatusListener;
  15. RxList<AgendaListAllBean> get agendaAllList => talkController.agendaAllList;
  16. RxBool get _isEditModel => talkController.isEditModelRx;
  17. bool get isEditModel => _isEditModel.value;
  18. @override
  19. void onReady() {
  20. super.onReady();
  21. _talkStatusListener =
  22. talkController.talkBean.value?.status.listen((status) {
  23. _dealTalkUpdate();
  24. });
  25. _dealTalkUpdate();
  26. }
  27. void _dealTalkUpdate() {
  28. refreshSummaryData();
  29. }
  30. void refreshSummaryData() {
  31. String? id = talkController.talkBean.value?.id;
  32. if (id == null) {
  33. return;
  34. }
  35. talkRepository.talkInfo(id).then((data) {
  36. summaryBean.value = data.talkInfo;
  37. if (data.talkInfo?.status.value == TalkStatus.analysisSuccess) {
  38. eventReport(EventId.event_101100);
  39. } else if (data.talkInfo?.status.value == TalkStatus.analysisFail) {
  40. eventReport(EventId.event_101101);
  41. }
  42. });
  43. talkController.refreshAgendaAllData();
  44. }
  45. void eventReport(String eventId, {Map<String, dynamic>? params}) {
  46. talkController.eventReport(eventId, params: params);
  47. }
  48. void removeTalkAgenda(List<Agenda>? list, Agenda agenda) {
  49. talkController.removeTalkAgenda(list, agenda);
  50. }
  51. void showAddAgendaDialog(BuildContext context) {
  52. talkController.showSingleAddAgendaDialog(context);
  53. }
  54. @override
  55. void onClose() {
  56. super.onClose();
  57. _talkStatusListener?.cancel();
  58. }
  59. }