controller.dart 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import 'dart:async';
  2. import 'package:electronic_assistant/base/base_controller.dart';
  3. import 'package:electronic_assistant/data/repositories/talk_repository.dart';
  4. import 'package:get/get.dart';
  5. import '../../../data/bean/talk_original.dart';
  6. import '../../../data/bean/talks.dart';
  7. import '../controller.dart';
  8. class OriginalController extends BaseController {
  9. TalkController talkController = Get.find();
  10. final originalList = <TalkOriginal>[].obs;
  11. StreamSubscription? _talkBeanListener;
  12. @override
  13. void onReady() {
  14. super.onReady();
  15. _talkBeanListener = talkController.talkBean.listen((bean) {
  16. if (bean?.status.value == TalkStatus.analysisSuccess) {
  17. requestOriginal();
  18. }
  19. });
  20. requestOriginal();
  21. }
  22. void requestOriginal() {
  23. if (originalList.isNotEmpty) {
  24. return;
  25. }
  26. talkRepository.talkOriginal(talkController.talkBean.value?.id).then((value) {
  27. originalList.value = value;
  28. });
  29. }
  30. @override
  31. void onClose() {
  32. super.onClose();
  33. _talkBeanListener?.cancel();
  34. }
  35. }