controller.dart 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import 'dart:async';
  2. import 'package:electronic_assistant/base/base_controller.dart';
  3. import 'package:electronic_assistant/data/consts/event_report_id.dart';
  4. import 'package:electronic_assistant/data/repositories/talk_repository.dart';
  5. import 'package:get/get.dart';
  6. import '../../../data/bean/talk_original.dart';
  7. import '../../../data/bean/talks.dart';
  8. import '../controller.dart';
  9. class OriginalController extends BaseController {
  10. TalkController talkController = Get.find();
  11. final originalList = <TalkOriginal>[].obs;
  12. StreamSubscription? _talkStatusListener;
  13. @override
  14. void onReady() {
  15. super.onReady();
  16. _talkStatusListener =
  17. talkController.talkBean.value?.status.listen((status) {
  18. if (status == TalkStatus.analysisSuccess) {
  19. requestOriginal();
  20. }
  21. });
  22. requestOriginal();
  23. }
  24. void eventReport(String eventId, {Map<String, dynamic>? params}) {
  25. talkController.eventReport(eventId, params: params);
  26. }
  27. void requestOriginal() {
  28. if (talkController.talkBean.value?.status.value ==
  29. TalkStatus.analysisSuccess) {
  30. eventReport(EventId.event_101300);
  31. } else if (talkController.talkBean.value?.status.value ==
  32. TalkStatus.analysisFail) {
  33. eventReport(EventId.event_101301);
  34. }
  35. if (originalList.isNotEmpty) {
  36. return;
  37. }
  38. talkRepository.talkOriginal(talkController.talkBean.value?.id).then((value) {
  39. originalList.value = value;
  40. });
  41. }
  42. @override
  43. void onClose() {
  44. super.onClose();
  45. _talkStatusListener?.cancel();
  46. }
  47. }