import 'dart:async'; import 'package:electronic_assistant/base/base_controller.dart'; import 'package:electronic_assistant/data/repositories/talk_repository.dart'; import 'package:electronic_assistant/module/talk/summary/view.dart'; import 'package:electronic_assistant/module/talk/todo/view.dart'; import 'package:electronic_assistant/resource/string.gen.dart'; import 'package:electronic_assistant/utils/toast_util.dart'; import 'package:get/get.dart'; import '../../data/bean/agenda_list_all_bean.dart'; import '../../data/bean/talks.dart'; import '../../data/repositories/agenda_repository.dart'; import 'original/view.dart'; class TalkController extends BaseController { final talkBean = TalkBean().obs; final analyseStatus = TalkStatus.notAnalysis.obs; // final isOriginalAnalysed = false.obs; final isShowElectricLow = false.obs; final isAudioPlaying = false.obs; final audioProgressValue = 0.0.obs; final agendaAllList = [].obs; final List tabBeans = [ StringName.talkTabSummary.tr, StringName.talkTabMyTask.tr, StringName.talkTabOriginal.tr ]; StreamSubscription? _talkBeanListener; final pages = [const SummaryView(), const TodoView(), const OriginalView()]; @override void onReady() { super.onReady(); _initListener(); _getArguments(); } void _initListener() { _talkBeanListener = talkBean.listen((bean) { analyseStatus.value = bean.status ?? TalkStatus.notAnalysis; }); } void _getArguments() { if (Get.arguments is TalkBean) { talkBean.value = Get.arguments as TalkBean; } } void checkCanAnalyze() { String? id = talkBean.value.id; double? duration = talkBean.value.duration; if (id == null || duration == null) { return; } talkRepository.checkElectric(duration).then((data) { if (data.enough) { //提交分析 _requestAnalyze(); } else { ToastUtil.showToast(StringName.talkAnalyseLowToast.tr); isShowElectricLow.value = true; } }).catchError((error) { ToastUtil.showToast(error); }); } void _requestAnalyze() { //提交文件 } void goElectricStore() { //TODO 跳转至商店页 } void refreshAgendaAllData() { String? id = talkBean.value.id; if (id == null) { return; } agendaRepository.agendaListAll(id).then((agenda) { if (agenda.list != null) { agendaAllList.value = agenda.list!; } }); } @override void onClose() { super.onClose(); _talkBeanListener?.cancel(); } void updateProgress(double value) { audioProgressValue.value = value; } }