feat: M2.1 客户端骨架、BLE 修复、仓库整理与现状板
- BLE: 修复 BlueZ LocalName 与 Includes 冲突,串行注册与退避 - HTTP: 语音对话补 Live2D talking 标志与 session;Web 补 X-Session-Id - Flutter: 角色/对话/模型页 + API,Gradle/依赖升级,麦克风权限 - 文档: 新增 docs/STATUS.md,校准 CLAUDE/PROGRESS/README - 清理: 移除根目录截图与临时模型,运维脚本迁入 scripts/device
This commit is contained in:
@@ -2,15 +2,21 @@ import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'providers/character_provider.dart';
|
||||
import 'providers/chat_provider.dart';
|
||||
import 'providers/device_provider.dart';
|
||||
import 'providers/debug_provider.dart';
|
||||
import 'providers/ble_provider.dart';
|
||||
import 'providers/model_provider.dart';
|
||||
import 'providers/player_provider.dart';
|
||||
import 'providers/wifi_provider.dart';
|
||||
import 'screens/app_shell.dart';
|
||||
import 'screens/ble_provision_screen.dart';
|
||||
import 'screens/characters_screen.dart';
|
||||
import 'screens/chat_screen.dart';
|
||||
import 'screens/debug_screen.dart';
|
||||
import 'screens/home_screen.dart';
|
||||
import 'screens/models_screen.dart';
|
||||
import 'screens/network_screen.dart';
|
||||
import 'screens/playback_screen.dart';
|
||||
import 'screens/settings_screen.dart';
|
||||
@@ -36,6 +42,7 @@ Future<void> main() async {
|
||||
runApp(
|
||||
MultiProvider(
|
||||
providers: [
|
||||
Provider<HttpApiService>.value(value: httpApiService),
|
||||
Provider<WebSocketService>.value(value: webSocketService),
|
||||
ChangeNotifierProvider<DebugProvider>(
|
||||
create: (_) => DebugProvider(webSocketService: webSocketService),
|
||||
@@ -70,6 +77,24 @@ Future<void> main() async {
|
||||
debugProvider: context.read<DebugProvider>(),
|
||||
)..bootstrap(),
|
||||
),
|
||||
ChangeNotifierProvider<CharacterProvider>(
|
||||
create: (context) => CharacterProvider(
|
||||
httpApiService: httpApiService,
|
||||
debugProvider: context.read<DebugProvider>(),
|
||||
),
|
||||
),
|
||||
ChangeNotifierProvider<ChatProvider>(
|
||||
create: (context) => ChatProvider(
|
||||
httpApiService: httpApiService,
|
||||
debugProvider: context.read<DebugProvider>(),
|
||||
),
|
||||
),
|
||||
ChangeNotifierProvider<ModelProvider>(
|
||||
create: (context) => ModelProvider(
|
||||
httpApiService: httpApiService,
|
||||
debugProvider: context.read<DebugProvider>(),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: const ShowenApp(),
|
||||
),
|
||||
@@ -95,18 +120,27 @@ final GoRouter _router = GoRouter(
|
||||
StatefulShellBranch(
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: '/playback',
|
||||
name: 'playback',
|
||||
builder: (context, state) => const PlaybackScreen(),
|
||||
path: '/characters',
|
||||
name: 'characters',
|
||||
builder: (context, state) => const CharactersScreen(),
|
||||
),
|
||||
],
|
||||
),
|
||||
StatefulShellBranch(
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: '/trigger',
|
||||
name: 'trigger',
|
||||
builder: (context, state) => const TriggerScreen(),
|
||||
path: '/chat',
|
||||
name: 'chat',
|
||||
builder: (context, state) => const ChatScreen(),
|
||||
),
|
||||
],
|
||||
),
|
||||
StatefulShellBranch(
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: '/playback',
|
||||
name: 'playback',
|
||||
builder: (context, state) => const PlaybackScreen(),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -132,15 +166,23 @@ final GoRouter _router = GoRouter(
|
||||
path: '/settings',
|
||||
name: 'settings',
|
||||
builder: (context, state) => const SettingsScreen(),
|
||||
),
|
||||
],
|
||||
),
|
||||
StatefulShellBranch(
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: '/debug',
|
||||
name: 'debug',
|
||||
builder: (context, state) => const DebugScreen(),
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: 'models',
|
||||
name: 'models',
|
||||
builder: (context, state) => const ModelsScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: 'trigger',
|
||||
name: 'trigger',
|
||||
builder: (context, state) => const TriggerScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: 'debug',
|
||||
name: 'debug',
|
||||
builder: (context, state) => const DebugScreen(),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user