Browse Source

修改新手指引

newdev_shunjiawei
tanlongsheng 1 year ago
parent
commit
2e9a94ab69
  1. 3
      lib/core/widgets/intro_overlay_builder.dart
  2. 2
      lib/data/services/novice_guide_service.dart
  3. 111
      lib/modules/agent/views/agent_view.dart

3
lib/core/widgets/intro_overlay_builder.dart

@ -7,6 +7,7 @@ class IntroOverlayBuilder {
static Widget homeBuilder(
StepWidgetParams params,
bool isWakeup, {
String title = '对着麦克风说:“小言小言”',
Function? onNext,
}) {
return Column(
@ -21,7 +22,7 @@ class IntroOverlayBuilder {
Padding(
padding: EdgeInsets.only(bottom: 20.w),
child: Text(
isWakeup ? '我在呢~' : '对着麦克风说:“小言小言”',
isWakeup ? '我在呢~' : title,
style: TextStyle(
fontSize: 15.sp,
color: Colors.white,

2
lib/data/services/novice_guide_service.dart

@ -12,7 +12,7 @@ class NoviceGuideService extends GetxService {
StreamSubscription<dynamic>? _statusSubscription;
bool isHomeGuide = true;
bool isAIGuide = true;
bool isAIGuide = false;
RxBool isWakeup = false.obs;

111
lib/modules/agent/views/agent_view.dart

@ -192,44 +192,40 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
],
),
body: Stack(
children: [
// 主要聊天界面
Column(
children: [
// 聊天内容
Expanded(
child: Stack(
children: [
IntroStepBuilder(
group: 'ai',
order: 3,
getOverlayPosition: ({
required Offset offset,
required Size screenSize,
required Size size,
}) {
return OverlayPosition(
top: 200.h,
width: screenSize.width,
crossAxisAlignment: CrossAxisAlignment.end,
);
},
overlayBuilder: (params) {
return IntroOverlayBuilder.aiBuilder(
return IntroOverlayBuilder.homeBuilder(
params,
controller.noviceGuideService.aiStepsList[
controller.noviceGuideService.aiStep]['end'],
onFinish: () async {
if (controller.noviceGuideService.aiStep < 5) {
await Future.delayed(
const Duration(milliseconds: 300));
controller.noviceGuideService.aiStep++;
Intro.of(Get.context!)
.start(group: 'ai', reset: true);
}
},
false,
title: '小言正在思考中~',
onNext: () {},
);
},
builder: (BuildContext context, GlobalKey key) => Align(
alignment: Alignment.bottomCenter,
child: SizedBox(
builder: (BuildContext context, GlobalKey key) => SizedBox(
key: key,
width: double.infinity,
height: 430.w,
),
),
),
Obx(
() => Align(
// 主要聊天界面
Column(
children: [
// 聊天内容
Expanded(
child: Obx(() {
return Align(
alignment: Alignment.topCenter,
child: ListView.builder(
controller: controller.scrollController,
@ -246,15 +242,41 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
return _buildLoadMoreIndicator();
}
final message = controller.messages[
controller.messages.length - 1 - index];
return Padding(
final message = controller
.messages[controller.messages.length - 1 - index];
return index == 0
? IntroStepBuilder(
group: 'ai',
order: 4,
overlayBuilder: (params) {
return IntroOverlayBuilder.aiBuilder(
params,
controller.noviceGuideService.aiStepsList[
controller
.noviceGuideService.aiStep]['end'],
onFinish: () async {
if (controller.noviceGuideService.aiStep <
5) {
await Future.delayed(
const Duration(milliseconds: 300));
controller.noviceGuideService.aiStep++;
Intro.of(Get.context!)
.start(group: 'ai', reset: true);
}
},
);
},
builder:
(BuildContext context, GlobalKey key) =>
Padding(
key: key,
padding: EdgeInsets.only(bottom: 8.h),
child: GestureDetector(
onLongPressStart:
(LongPressStartDetails details) {
messageActionController.onLongPressMessage(
context, isDarkMode, details, message);
messageActionController
.onLongPressMessage(context,
isDarkMode, details, message);
},
child: MessageBubble(
isUser: message.isUser,
@ -265,13 +287,32 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
imagePath: message.imagePath,
meta: message.meta,
),
));
},
),
),
)
: Padding(
padding: EdgeInsets.only(bottom: 8.h),
child: GestureDetector(
onLongPressStart:
(LongPressStartDetails details) {
messageActionController.onLongPressMessage(
context, isDarkMode, details, message);
},
child: MessageBubble(
isUser: message.isUser,
message: message.text,
timestamp: message.timestamp,
isRecognizing: message.isRecognizing,
hasImage: message.hasImage,
imagePath: message.imagePath,
meta: message.meta,
),
],
),
);
},
),
);
}),
),
// 输入区域

Loading…
Cancel
Save