|
|
|
@ -4,16 +4,15 @@ import 'dart:math'; |
|
|
|
import 'package:flutter/material.dart'; |
|
|
|
import 'package:flutter_intro/flutter_intro.dart'; |
|
|
|
import 'package:get/get.dart'; |
|
|
|
import 'package:haptic_feedback/haptic_feedback.dart'; |
|
|
|
import '../../../core/widgets/intro_overlay_builder.dart'; |
|
|
|
import '../../../data/models/user_Info.dart'; |
|
|
|
import '../../../data/models/channel_app_model.dart'; |
|
|
|
import '../../../data/services/version_update_service.dart'; |
|
|
|
import '../controllers/agent_controller.dart'; |
|
|
|
import '../controllers/message_action_controller.dart'; |
|
|
|
import 'message_bubble.dart'; |
|
|
|
import '../widgets/full_screen_editor.dart'; |
|
|
|
import '../widgets/sound_bar_widget.dart'; |
|
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
|
|
|
import 'package:intl/intl.dart'; |
|
|
|
|
|
|
|
class AgentView extends StatefulWidget { |
|
|
|
const AgentView({Key? key}) : super(key: key); |
|
|
|
@ -64,6 +63,8 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver { |
|
|
|
final primaryColor = theme.primaryColor; |
|
|
|
final backgroundColor = theme.scaffoldBackgroundColor; |
|
|
|
final isDarkMode = Theme.of(context).brightness == Brightness.dark; |
|
|
|
final isOfficialChannel = Get.isRegistered<VersionUpdateService>() && |
|
|
|
VersionUpdateService.to.cachedChannel == UserChannel.OFFICIAL; |
|
|
|
|
|
|
|
return Scaffold( |
|
|
|
appBar: AppBar( |
|
|
|
@ -199,38 +200,40 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver { |
|
|
|
), |
|
|
|
color: isDarkMode ? Colors.grey[800] : Colors.white, |
|
|
|
itemBuilder: (context) => [ |
|
|
|
// 显示工具开关选项 |
|
|
|
PopupMenuItem( |
|
|
|
child: Obx(() => Row( |
|
|
|
children: [ |
|
|
|
Icon( |
|
|
|
controller.isShowToolInterruptEnabled.value |
|
|
|
? Icons.build_circle |
|
|
|
: Icons.build_circle_outlined, |
|
|
|
color: controller.isShowToolInterruptEnabled.value |
|
|
|
? primaryColor |
|
|
|
: (isDarkMode ? Colors.grey[400] : Colors.grey), |
|
|
|
size: 20.sp, |
|
|
|
), |
|
|
|
SizedBox(width: 8.w), |
|
|
|
Text( |
|
|
|
//'ttsInterruptToggle'.tr, |
|
|
|
"显示工具", |
|
|
|
style: TextStyle(fontSize: 14.sp), |
|
|
|
), |
|
|
|
const Spacer(), |
|
|
|
Switch( |
|
|
|
value: controller.isShowToolInterruptEnabled.value, |
|
|
|
onChanged: (value) => |
|
|
|
controller.toggleShowAIToolInterrupt(), |
|
|
|
activeColor: primaryColor, |
|
|
|
materialTapTargetSize: |
|
|
|
MaterialTapTargetSize.shrinkWrap, |
|
|
|
), |
|
|
|
], |
|
|
|
)), |
|
|
|
onTap: () => controller.toggleTtsInterrupt(), |
|
|
|
), |
|
|
|
if (isOfficialChannel) |
|
|
|
PopupMenuItem( |
|
|
|
child: Obx(() => Row( |
|
|
|
children: [ |
|
|
|
Icon( |
|
|
|
controller.isShowToolInterruptEnabled.value |
|
|
|
? Icons.build_circle |
|
|
|
: Icons.build_circle_outlined, |
|
|
|
color: controller.isShowToolInterruptEnabled.value |
|
|
|
? primaryColor |
|
|
|
: (isDarkMode |
|
|
|
? Colors.grey[400] |
|
|
|
: Colors.grey), |
|
|
|
size: 20.sp, |
|
|
|
), |
|
|
|
SizedBox(width: 8.w), |
|
|
|
Text( |
|
|
|
"显示工具", |
|
|
|
style: TextStyle(fontSize: 14.sp), |
|
|
|
), |
|
|
|
const Spacer(), |
|
|
|
Switch( |
|
|
|
value: |
|
|
|
controller.isShowToolInterruptEnabled.value, |
|
|
|
onChanged: (value) => |
|
|
|
controller.toggleShowAIToolInterrupt(), |
|
|
|
activeColor: primaryColor, |
|
|
|
materialTapTargetSize: |
|
|
|
MaterialTapTargetSize.shrinkWrap, |
|
|
|
), |
|
|
|
], |
|
|
|
)), |
|
|
|
onTap: () => controller.toggleTtsInterrupt(), |
|
|
|
), |
|
|
|
|
|
|
|
// 播报打断开关选项 |
|
|
|
PopupMenuItem( |
|
|
|
|