controller.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. int? status = bean.status;
  17. if (status == null) {
  18. return;
  19. }
  20. if (status == TalkStatus.analysisSuccess) {
  21. requestOriginal();
  22. }
  23. });
  24. requestOriginal();
  25. }
  26. void requestOriginal() {
  27. if (originalList.isNotEmpty) {
  28. return;
  29. }
  30. talkRepository.talkOriginal(talkController.talkBean.value.id).then((value) {
  31. originalList.value = value;
  32. });
  33. }
  34. @override
  35. void onClose() {
  36. super.onClose();
  37. _talkBeanListener?.cancel();
  38. }
  39. }