controller.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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 = talkController.talkBean.listen((status) {
  22. _dealTalkUpdate();
  23. });
  24. _dealTalkUpdate();
  25. }
  26. void _dealTalkUpdate() {
  27. refreshSummaryData();
  28. }
  29. void refreshSummaryData() {
  30. String? id = talkController.talkBean.value?.id;
  31. if (id == null) {
  32. return;
  33. }
  34. talkRepository.talkInfo(id).then((data) {
  35. summaryBean.value = data.talkInfo;
  36. if (data.talkInfo?.status.value == TalkStatus.analysisSuccess) {
  37. eventReport(EventId.event_101100);
  38. } else if (data.talkInfo?.status.value == TalkStatus.analysisFail) {
  39. eventReport(EventId.event_101101);
  40. }
  41. });
  42. talkController.refreshAgendaAllData();
  43. }
  44. void eventReport(String eventId, {Map<String, dynamic>? params}) {
  45. talkController.eventReport(eventId, params: params);
  46. }
  47. void removeTalkAgenda(List<Agenda>? list, Agenda agenda) {
  48. talkController.removeTalkAgenda(list, agenda);
  49. }
  50. void showAddAgendaDialog(BuildContext context) {
  51. talkController.showSingleAddAgendaDialog(context);
  52. }
  53. @override
  54. void onClose() {
  55. super.onClose();
  56. _talkStatusListener?.cancel();
  57. }
  58. }