controller.dart 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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? _talkStatusListener;
  12. @override
  13. void onReady() {
  14. super.onReady();
  15. _talkStatusListener =
  16. talkController.talkBean.value?.status.listen((status) {
  17. if (status == TalkStatus.analysisSuccess) {
  18. requestOriginal();
  19. }
  20. });
  21. requestOriginal();
  22. }
  23. void requestOriginal() {
  24. if (originalList.isNotEmpty) {
  25. return;
  26. }
  27. talkRepository.talkOriginal(talkController.talkBean.value?.id).then((value) {
  28. originalList.value = value;
  29. });
  30. }
  31. @override
  32. void onClose() {
  33. super.onClose();
  34. _talkStatusListener?.cancel();
  35. }
  36. }