|
|
@@ -12,7 +12,9 @@ import 'package:electronic_assistant/module/login/view.dart';
|
|
|
import 'package:electronic_assistant/module/record/record_handler.dart';
|
|
|
import 'package:electronic_assistant/module/store/view.dart';
|
|
|
import 'package:electronic_assistant/module/talk/mindmap/mind_util.dart';
|
|
|
+import 'package:electronic_assistant/module/talk/summary/view.dart';
|
|
|
import 'package:electronic_assistant/module/talk/todo/controller.dart';
|
|
|
+import 'package:electronic_assistant/module/talk/todo/view.dart';
|
|
|
import 'package:electronic_assistant/resource/assets.gen.dart';
|
|
|
import 'package:electronic_assistant/resource/colors.gen.dart';
|
|
|
import 'package:electronic_assistant/resource/string.gen.dart';
|
|
|
@@ -51,6 +53,9 @@ import '../../utils/system_share_util.dart';
|
|
|
import '../../utils/toast_util.dart';
|
|
|
import 'package:webview_flutter/webview_flutter.dart';
|
|
|
|
|
|
+import 'mindmap/view.dart';
|
|
|
+import 'original/view.dart';
|
|
|
+
|
|
|
class TalkController extends BaseController {
|
|
|
static const String argumentItem = 'argument_item';
|
|
|
static const String argumentTalkId = 'argument_talk_id';
|
|
|
@@ -90,13 +95,9 @@ class TalkController extends BaseController {
|
|
|
|
|
|
final Rxn<TalkBarBean> checkTabBean = Rxn();
|
|
|
|
|
|
- final List<TalkBarBean> tabBeans = [
|
|
|
- TalkBarBean(TalkBarType.summary, StringName.talkTabSummary.tr, true),
|
|
|
- TalkBarBean(TalkBarType.mindMap, StringName.talkMindMap.tr, false,
|
|
|
- isDisallowScroll: true),
|
|
|
- TalkBarBean(TalkBarType.myTask, StringName.talkTabMyTask.tr, true),
|
|
|
- TalkBarBean(TalkBarType.original, StringName.talkTabOriginal.tr, false)
|
|
|
- ];
|
|
|
+ final RxList<TalkBarBean> _tabBeans = RxList();
|
|
|
+
|
|
|
+ List<TalkBarBean> get tabBeans => _tabBeans;
|
|
|
|
|
|
bool get isEditModel => _isEditModel.value;
|
|
|
|
|
|
@@ -155,17 +156,81 @@ class TalkController extends BaseController {
|
|
|
|
|
|
DWebViewController? get temporaryController => _temporaryController.value;
|
|
|
|
|
|
+ RxBool isShowMindMap = false.obs;
|
|
|
+
|
|
|
+ final RxList<Widget> pages = RxList();
|
|
|
+
|
|
|
@override
|
|
|
- void onInit() {
|
|
|
+ void onInit() async {
|
|
|
super.onInit();
|
|
|
- checkTabBean.value = tabBeans[defaultIndex];
|
|
|
+ _getArguments();
|
|
|
+ await _analyticWebVersion();
|
|
|
+ checkTabBean.value = _tabBeans[defaultIndex];
|
|
|
+ }
|
|
|
+
|
|
|
+ Future<void> _analyticWebVersion() async {
|
|
|
+ if (Platform.isAndroid) {
|
|
|
+ String? userAgent = await webViewController.getUserAgent();
|
|
|
+ bool shouldShowMindMap = true;
|
|
|
+ String? version;
|
|
|
+ if (userAgent != null) {
|
|
|
+ RegExp regExp = RegExp(r'Chrome/(\d+)\.');
|
|
|
+ Match? match = regExp.firstMatch(userAgent);
|
|
|
+ if (match != null) {
|
|
|
+ version = match.group(1) ?? '';
|
|
|
+ if (version.isNotEmpty && isNumeric(version)) {
|
|
|
+ int versionNum = int.parse(version);
|
|
|
+ shouldShowMindMap = versionNum > 92;
|
|
|
+ } else {
|
|
|
+ shouldShowMindMap = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ shouldShowMindMap = false;
|
|
|
+ }
|
|
|
+ _setMindMap(shouldShowMindMap, version: version);
|
|
|
+ } else {
|
|
|
+ _setMindMap(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ void _setMindMap(bool isShow, {String? version}) {
|
|
|
+ isShowMindMap.value = isShow;
|
|
|
+ String? talkId = talkBean.value != null ? talkBean.value!.id : paramId;
|
|
|
+ if (isShow) {
|
|
|
+ pages.value = [
|
|
|
+ SummaryView(talkId),
|
|
|
+ MindMapView(talkId),
|
|
|
+ TodoView(talkId),
|
|
|
+ OriginalView(talkId),
|
|
|
+ ];
|
|
|
+ _tabBeans.value = [
|
|
|
+ TalkBarBean(TalkBarType.summary, StringName.talkTabSummary.tr, true),
|
|
|
+ TalkBarBean(TalkBarType.mindMap, StringName.talkMindMap.tr, false,
|
|
|
+ isDisallowScroll: true),
|
|
|
+ TalkBarBean(TalkBarType.myTask, StringName.talkTabMyTask.tr, true),
|
|
|
+ TalkBarBean(TalkBarType.original, StringName.talkTabOriginal.tr, false)
|
|
|
+ ];
|
|
|
+ EventHandler.report(EventId.event_101401, params: {EventId.id: version});
|
|
|
+ } else {
|
|
|
+ pages.value = [
|
|
|
+ SummaryView(talkId),
|
|
|
+ TodoView(talkId),
|
|
|
+ OriginalView(talkId),
|
|
|
+ ];
|
|
|
+ _tabBeans.value = [
|
|
|
+ TalkBarBean(TalkBarType.summary, StringName.talkTabSummary.tr, true),
|
|
|
+ TalkBarBean(TalkBarType.myTask, StringName.talkTabMyTask.tr, true),
|
|
|
+ TalkBarBean(TalkBarType.original, StringName.talkTabOriginal.tr, true)
|
|
|
+ ];
|
|
|
+ EventHandler.report(EventId.event_101402, params: {EventId.id: version});
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@override
|
|
|
void onReady() {
|
|
|
super.onReady();
|
|
|
_initAudioPlayer();
|
|
|
- _getArguments();
|
|
|
eventReport(EventId.event_101001, params: {EventId.id: eventTag});
|
|
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
|
|
_bottomViewHeight = bottomGlobalKey.currentContext?.size?.height;
|
|
|
@@ -523,7 +588,7 @@ class TalkController extends BaseController {
|
|
|
}
|
|
|
|
|
|
void updateTabIndex(int index) {
|
|
|
- checkTabBean.value = tabBeans[index];
|
|
|
+ checkTabBean.value = _tabBeans[index];
|
|
|
}
|
|
|
|
|
|
void onEditCancel() {
|