|
|
@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; |
|
|
import 'package:flutter_intro/flutter_intro.dart'; |
|
|
import 'package:flutter_intro/flutter_intro.dart'; |
|
|
import 'package:get/get.dart'; |
|
|
import 'package:get/get.dart'; |
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
|
|
|
|
|
import '../../../core/widgets/intro_overlay_builder.dart'; |
|
|
import '../controllers/home_controller.dart'; |
|
|
import '../controllers/home_controller.dart'; |
|
|
import '../../../routes/app_routes.dart'; |
|
|
import '../../../routes/app_routes.dart'; |
|
|
import '../../../core/widgets/common_bottom_nav.dart'; |
|
|
import '../../../core/widgets/common_bottom_nav.dart'; |
|
|
@ -84,31 +85,46 @@ class HomeView extends GetView<HomeController> { |
|
|
_buildAppBar(isDarkMode), |
|
|
_buildAppBar(isDarkMode), |
|
|
|
|
|
|
|
|
// 顶部图片 |
|
|
// 顶部图片 |
|
|
|
|
|
_buildEarbudsImage(), |
|
|
|
|
|
|
|
|
|
|
|
SizedBox(height: 20.h), |
|
|
|
|
|
|
|
|
|
|
|
// 设备状态卡片 |
|
|
IntroStepBuilder( |
|
|
IntroStepBuilder( |
|
|
group: 'home', |
|
|
group: 'home', |
|
|
order: 1, |
|
|
order: 1, |
|
|
text: '欢迎使用Voitrans!首先,让我们唤醒你的专属 AI—— 小言', |
|
|
|
|
|
onWidgetLoad: () { |
|
|
onWidgetLoad: () { |
|
|
controller.noviceGuideService.startHomeGuide(); |
|
|
controller.noviceGuideService.startHomeGuide(); |
|
|
}, |
|
|
}, |
|
|
|
|
|
overlayBuilder: (params) { |
|
|
|
|
|
return IntroOverlayBuilder.aiBuilder( |
|
|
|
|
|
params, |
|
|
|
|
|
'欢迎使用Voitrans!首先,让我们唤醒你的专属 AI—— 小言', |
|
|
|
|
|
onNext: () {}, |
|
|
|
|
|
); |
|
|
|
|
|
}, |
|
|
builder: (BuildContext context, GlobalKey key) => SizedBox( |
|
|
builder: (BuildContext context, GlobalKey key) => SizedBox( |
|
|
key: key, |
|
|
key: key, |
|
|
child: _buildEarbudsImage(), |
|
|
child: _buildDeviceStatusCard(isDarkMode), |
|
|
), |
|
|
), |
|
|
), |
|
|
), |
|
|
|
|
|
|
|
|
SizedBox(height: 20.h), |
|
|
SizedBox(height: 20.h), |
|
|
|
|
|
|
|
|
// 设备状态卡片 |
|
|
|
|
|
IntroStepBuilder( |
|
|
IntroStepBuilder( |
|
|
group: 'home', |
|
|
group: 'home', |
|
|
order: 2, |
|
|
order: 2, |
|
|
text: '对着麦克风说“小言小言”', |
|
|
overlayBuilder: (params) { |
|
|
|
|
|
return IntroOverlayBuilder.aiBuilder( |
|
|
|
|
|
params, |
|
|
|
|
|
'对着麦克风说“小言小言”', |
|
|
|
|
|
onNext: () {}, |
|
|
|
|
|
); |
|
|
|
|
|
}, |
|
|
builder: (BuildContext context, GlobalKey key) => SizedBox( |
|
|
builder: (BuildContext context, GlobalKey key) => SizedBox( |
|
|
key: key, |
|
|
key: key, |
|
|
child: _buildDeviceStatusCard(isDarkMode), |
|
|
|
|
|
), |
|
|
), |
|
|
), |
|
|
), |
|
|
SizedBox(height: 20.h), |
|
|
|
|
|
|
|
|
|
|
|
// 热门AI体验 |
|
|
// 热门AI体验 |
|
|
_buildSectionTitle(isDarkMode), |
|
|
_buildSectionTitle(isDarkMode), |
|
|
@ -645,11 +661,16 @@ class HomeView extends GetView<HomeController> { |
|
|
child: IntroStepBuilder( |
|
|
child: IntroStepBuilder( |
|
|
group: 'home', |
|
|
group: 'home', |
|
|
order: 3, |
|
|
order: 3, |
|
|
text: '太棒了!你已成功唤醒小言,接下来试试让它帮你做件事吧', |
|
|
|
|
|
onHighlightWidgetTap: () { |
|
|
onHighlightWidgetTap: () { |
|
|
Intro.of(Get.context!).dispose(); |
|
|
Intro.of(Get.context!).dispose(); |
|
|
controller.exploreAIFeatures(); |
|
|
controller.exploreAIFeatures(); |
|
|
}, |
|
|
}, |
|
|
|
|
|
overlayBuilder: (params) { |
|
|
|
|
|
return IntroOverlayBuilder.aiBuilder( |
|
|
|
|
|
params, |
|
|
|
|
|
'太棒了!你已成功唤醒小言,接下来试试让它帮你做件事吧', |
|
|
|
|
|
); |
|
|
|
|
|
}, |
|
|
builder: (BuildContext context, GlobalKey key) => _buildFeatureCard( |
|
|
builder: (BuildContext context, GlobalKey key) => _buildFeatureCard( |
|
|
key: key, |
|
|
key: key, |
|
|
title: 'aiAssistant'.tr, // AI全能助手 |
|
|
title: 'aiAssistant'.tr, // AI全能助手 |
|
|
|