Initial commit: Flutter 无书应用项目

This commit is contained in:
Developer
2026-03-30 02:35:31 +08:00
commit 9175ff9905
566 changed files with 103261 additions and 0 deletions

111
lib/routes/app_routes.dart Normal file
View File

@@ -0,0 +1,111 @@
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../constants/app_constants.dart';
import '../config/app_config.dart';
import '../views/main_navigation.dart';
import '../views/profile/guide/sp-guide.dart';
import '../views/profile/profile_page.dart';
import '../views/profile/settings/widgets.dart';
import '../views/footprint/collect_notes.dart';
/// 时间: 2026-03-27
/// 功能: 应用路由配置
/// 介绍: 定义应用的路由规则和页面导航
/// 最新变化: 简化路由逻辑,移除黑屏检测机制
class AppRoutes {
static const String initial = AppConstants.routeHome;
static Future<String> getInitialRoute(SharedPreferences prefs) async {
try {
debugPrint('========================================');
debugPrint('=== AppRoutes.getInitialRoute ===');
// 获取首次启动状态
final bool firstLaunch = prefs.getBool(AppConfig.keyFirstLaunch) ?? true;
final bool agreementAccepted =
prefs.getBool(AppConfig.keyAgreementAccepted) ?? false;
debugPrint('firstLaunch: $firstLaunch');
debugPrint('agreementAccepted: $agreementAccepted');
// 简化逻辑,避免复杂条件判断
if (firstLaunch) {
debugPrint('✅ 首次启动,返回: /guide');
await prefs.setBool(AppConfig.keyFirstLaunch, false);
return '/guide';
}
if (!agreementAccepted) {
debugPrint('✅ 未同意协议,返回: /guide');
return '/guide';
}
debugPrint('✅ 正常启动,返回: ${AppConstants.routeHome}');
return AppConstants.routeHome;
} catch (e) {
debugPrint('❌ 异常: $e,返回主页');
return AppConstants.routeHome;
}
}
static Route<dynamic> generateRoute(RouteSettings settings) {
debugPrint('🎯 generateRoute 被调用: ${settings.name}');
switch (settings.name) {
case AppConstants.routeHome:
debugPrint('✅ 返回主页');
return MaterialPageRoute(
builder: (_) => const MainNavigation(),
settings: settings,
);
case '/guide':
debugPrint('✅ 返回引导页');
return MaterialPageRoute(
builder: (_) => const SpGuidePage(),
settings: settings,
);
case AppConstants.routeSettings:
debugPrint('✅ 返回设置页');
return MaterialPageRoute(
builder: (_) => const SettingsPage(),
settings: settings,
);
case AppConstants.routeProfile:
debugPrint('✅ 返回个人页');
return MaterialPageRoute(
builder: (_) => const ProfilePage(),
settings: settings,
);
case AppConstants.routeWidgetsPage:
debugPrint('✅ 返回卡片设置页');
return MaterialPageRoute(
builder: (_) => const WidgetsPage(),
settings: settings,
);
case AppConstants.routeCollectNotes:
debugPrint('✅ 返回笔记页面');
return MaterialPageRoute(
builder: (_) => const CollectNotesPage(),
settings: settings,
);
default:
debugPrint('⚠️ 未知路由: ${settings.name},直接返回主页');
return MaterialPageRoute(
builder: (_) => const MainNavigation(),
settings: settings,
);
}
}
}
class SettingsPage extends StatelessWidget {
const SettingsPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('设置')),
body: const Center(child: Text('设置页面')),
);
}
}