Browse Source

Merge branch 'new_dev' of https://github.com/deepcloud2048/deep_voice into new_dev

newdev_shunjiawei
lxm 1 year ago
parent
commit
3d8ddf5579
  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( static Widget homeBuilder(
StepWidgetParams params, StepWidgetParams params,
bool isWakeup, { bool isWakeup, {
String title = '对着麦克风说:“小言小言”',
Function? onNext, Function? onNext,
}) { }) {
return Column( return Column(
@ -21,7 +22,7 @@ class IntroOverlayBuilder {
Padding( Padding(
padding: EdgeInsets.only(bottom: 20.w), padding: EdgeInsets.only(bottom: 20.w),
child: Text( child: Text(
isWakeup ? '我在呢~' : '对着麦克风说:“小言小言”', isWakeup ? '我在呢~' : title,
style: TextStyle( style: TextStyle(
fontSize: 15.sp, fontSize: 15.sp,
color: Colors.white, color: Colors.white,

2
lib/data/services/novice_guide_service.dart

@ -12,7 +12,7 @@ class NoviceGuideService extends GetxService {
StreamSubscription<dynamic>? _statusSubscription; StreamSubscription<dynamic>? _statusSubscription;
bool isHomeGuide = true; bool isHomeGuide = true;
bool isAIGuide = true; bool isAIGuide = false;
RxBool isWakeup = false.obs; 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( body: Stack(
children: [
// 主要聊天界面
Column(
children: [
// 聊天内容
Expanded(
child: Stack(
children: [ children: [
IntroStepBuilder( IntroStepBuilder(
group: 'ai', group: 'ai',
order: 3, 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) { overlayBuilder: (params) {
return IntroOverlayBuilder.aiBuilder( return IntroOverlayBuilder.homeBuilder(
params, params,
controller.noviceGuideService.aiStepsList[ false,
controller.noviceGuideService.aiStep]['end'], title: '小言正在思考中~',
onFinish: () async { onNext: () {},
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) => Align( builder: (BuildContext context, GlobalKey key) => SizedBox(
alignment: Alignment.bottomCenter,
child: SizedBox(
key: key, key: key,
width: double.infinity,
height: 430.w,
),
), ),
), ),
Obx( // 主要聊天界面
() => Align( Column(
children: [
// 聊天内容
Expanded(
child: Obx(() {
return Align(
alignment: Alignment.topCenter, alignment: Alignment.topCenter,
child: ListView.builder( child: ListView.builder(
controller: controller.scrollController, controller: controller.scrollController,
@ -246,15 +242,41 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
return _buildLoadMoreIndicator(); return _buildLoadMoreIndicator();
} }
final message = controller.messages[ final message = controller
controller.messages.length - 1 - index]; .messages[controller.messages.length - 1 - index];
return Padding( 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), padding: EdgeInsets.only(bottom: 8.h),
child: GestureDetector( child: GestureDetector(
onLongPressStart: onLongPressStart:
(LongPressStartDetails details) { (LongPressStartDetails details) {
messageActionController.onLongPressMessage( messageActionController
context, isDarkMode, details, message); .onLongPressMessage(context,
isDarkMode, details, message);
}, },
child: MessageBubble( child: MessageBubble(
isUser: message.isUser, isUser: message.isUser,
@ -265,13 +287,32 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
imagePath: message.imagePath, imagePath: message.imagePath,
meta: message.meta, 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