Browse Source

修改新手指引

weicu
tanlongsheng 1 year ago
parent
commit
232b5153f1
  1. 5
      lib/data/services/novice_guide_service.dart
  2. 54
      lib/modules/agent/views/agent_view.dart
  3. 22
      lib/modules/home/views/home_view.dart

5
lib/data/services/novice_guide_service.dart

@ -1,4 +1,5 @@
import 'dart:async';
import 'dart:io';
import 'package:ble_service/ble_service.dart';
import 'package:flutter_intro/flutter_intro.dart';
@ -82,6 +83,7 @@ class NoviceGuideService extends GetxService {
'send': '小言会为你拨打电话',
'end': '小言已成功为您拨打电话,试试其他指令吧',
'method': () async {
if (Platform.isAndroid) {
// 拨打电话需要电话权限
await PermissionUtil.instance.requestPermission(
permissionType: Permission.phone,
@ -97,6 +99,7 @@ class NoviceGuideService extends GetxService {
permanentDenialText:
'contactsPermissionDetailDesc'.tr, // 拨打电话功能需要联系人权限
);
}
},
},
{
@ -105,6 +108,7 @@ class NoviceGuideService extends GetxService {
'send': '小言会为你发送短信',
'end': '短信已发送,语音操控更便捷',
'method': () async {
if (Platform.isAndroid) {
// 发送短信需要短信权限
await PermissionUtil.instance.requestPermission(
permissionType: Permission.sms,
@ -120,6 +124,7 @@ class NoviceGuideService extends GetxService {
permanentDenialText:
'contactsPermissionDetailDesc'.tr, // 发送短信功能需要联系人权限
);
}
},
},
];

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

@ -196,17 +196,7 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
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,
);
},
getOverlayPosition: IntroOverlayBuilder.overlayPosition,
overlayBuilder: (params) {
return Obx(
() => IntroOverlayBuilder.homeBuilder(
@ -252,6 +242,8 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
? IntroStepBuilder(
group: 'ai',
order: 4,
getOverlayPosition:
IntroOverlayBuilder.overlayPosition,
overlayBuilder: (params) {
return IntroOverlayBuilder.aiBuilder(
params,
@ -511,6 +503,8 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
return IntroStepBuilder(
group: 'ai',
order: 1,
getOverlayPosition:
IntroOverlayBuilder.overlayPosition,
overlayBuilder: (params) {
return IntroOverlayBuilder.aiBuilder(
params,
@ -756,34 +750,31 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
SizedBox(width: 8.w),
// 动态按钮区域:展开按钮 + 发送按钮 或 图片选择按钮
Builder(builder: (context) {
StepWidgetParams? widgetParams;
return IntroStepBuilder(
IntroStepBuilder(
group: 'ai',
order: 2,
onHighlightWidgetTap: () async {
await controller
.noviceGuideService.aiStepsList[
controller.noviceGuideService.aiStep]
['method']();
widgetParams!.onNext!();
controller.sendMessage();
},
getOverlayPosition:
IntroOverlayBuilder.overlayPosition,
overlayBuilder: (params) {
widgetParams = params;
return IntroOverlayBuilder.aiBuilder(
params,
'点击发送,${controller.noviceGuideService.aiStepsList[controller.noviceGuideService.aiStep]['send']}',
alignment: false,
onTap: () async {
await controller
.noviceGuideService.aiStepsList[
controller.noviceGuideService
.aiStep]['method']();
params.onNext!();
controller.sendMessage();
},
);
},
builder:
(BuildContext context, GlobalKey key) =>
builder: (BuildContext context, GlobalKey key) =>
Obx(
key: key,
() {
final hasText =
controller.hasTextInput.value;
final hasText = controller.hasTextInput.value;
final hasImage =
controller.isImageInputActive.value;
final shouldShowSend = hasText || hasImage;
@ -802,8 +793,7 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
child: GestureDetector(
onTap: () {
// 打开底部弹出编辑模式
controller
.openFullScreenEdit();
controller.openFullScreenEdit();
showModalBottomSheet(
context: context,
isScrollControlled: true,
@ -840,8 +830,7 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
),
// 发送按钮
GestureDetector(
onTap: () =>
controller.sendMessage(),
onTap: () => controller.sendMessage(),
child: Container(
width: 44.w,
height: 44.w,
@ -897,8 +886,7 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
}
},
),
);
}),
),
],
),

22
lib/modules/home/views/home_view.dart

@ -96,6 +96,7 @@ class HomeView extends GetView<HomeController> {
onWidgetLoad: () {
controller.noviceGuideService.startHomeGuide();
},
getOverlayPosition: IntroOverlayBuilder.overlayPosition,
overlayBuilder: (params) {
return IntroOverlayBuilder.aiBuilder(
params,
@ -116,17 +117,7 @@ class HomeView extends GetView<HomeController> {
IntroStepBuilder(
group: 'home',
order: 2,
getOverlayPosition: ({
required Offset offset,
required Size screenSize,
required Size size,
}) {
return OverlayPosition(
top: 200.h,
width: screenSize.width,
crossAxisAlignment: CrossAxisAlignment.end,
);
},
getOverlayPosition: IntroOverlayBuilder.overlayPosition,
overlayBuilder: (params) {
return Obx(
() => IntroOverlayBuilder.homeBuilder(
@ -730,14 +721,15 @@ class HomeView extends GetView<HomeController> {
child: IntroStepBuilder(
group: 'home',
order: 3,
onHighlightWidgetTap: () {
Intro.of(Get.context!).dispose();
controller.exploreAIFeatures();
},
getOverlayPosition: IntroOverlayBuilder.overlayPosition,
overlayBuilder: (params) {
return IntroOverlayBuilder.aiBuilder(
params,
'太棒了!你已成功唤醒小言,接下来试试让它帮你做件事吧',
onTap: () {
params.onFinish();
controller.exploreAIFeatures();
},
);
},
builder: (BuildContext context, GlobalKey key) => SizedBox(

Loading…
Cancel
Save