深色模式、首页设置页面和功能优化
This commit is contained in:
@@ -1,111 +1,56 @@
|
||||
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 '../widgets/main_navigation.dart';
|
||||
import '../views/profile/guide/beginner_page.dart';
|
||||
import '../views/profile/guide/permission.dart';
|
||||
import '../views/profile/guide/app-data.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
|
||||
/// 功能: 应用路由配置
|
||||
/// 介绍: 定义应用的路由规则和页面导航
|
||||
/// 最新变化: 简化路由逻辑,移除黑屏检测机制
|
||||
import '../views/active/tags/corr_page.dart';
|
||||
|
||||
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 const String mainNavigation = '/main';
|
||||
static const String beginnerGuide = '/beginner-guide';
|
||||
static const String permissionGuide = '/permission-guide';
|
||||
static const String appDataGuide = '/app-data-guide';
|
||||
static const String spGuide = '/sp-guide';
|
||||
static const String corrPage = '/corrPage';
|
||||
|
||||
static Route<dynamic> generateRoute(RouteSettings settings) {
|
||||
debugPrint('🎯 generateRoute 被调用: ${settings.name}');
|
||||
switch (settings.name) {
|
||||
case AppConstants.routeHome:
|
||||
debugPrint('✅ 返回主页');
|
||||
case mainNavigation:
|
||||
return MaterialPageRoute(builder: (_) => const MainNavigation());
|
||||
case beginnerGuide:
|
||||
return MaterialPageRoute(builder: (_) => const BeginnerPage());
|
||||
case permissionGuide:
|
||||
return MaterialPageRoute(builder: (_) => const PermissionPage());
|
||||
case appDataGuide:
|
||||
return MaterialPageRoute(builder: (_) => const AppDataPage());
|
||||
case spGuide:
|
||||
return MaterialPageRoute(builder: (_) => const SpGuidePage());
|
||||
case corrPage:
|
||||
final args = settings.arguments as Map<String, String>;
|
||||
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,
|
||||
builder: (_) =>
|
||||
CorrPage(label: args['label']!, searchType: args['searchType']!),
|
||||
);
|
||||
default:
|
||||
debugPrint('⚠️ 未知路由: ${settings.name},直接返回主页');
|
||||
return MaterialPageRoute(
|
||||
builder: (_) => const MainNavigation(),
|
||||
settings: settings,
|
||||
);
|
||||
return MaterialPageRoute(builder: (_) => const MainNavigation());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class SettingsPage extends StatelessWidget {
|
||||
const SettingsPage({super.key});
|
||||
static Future<String> getInitialRoute(SharedPreferences prefs) async {
|
||||
final bool? firstLaunch = prefs.getBool('firstLaunch');
|
||||
final bool? agreementAccepted = prefs.getBool('agreementAccepted');
|
||||
final bool? showGuideOnStartup = prefs.getBool('showGuideOnStartup');
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: const Text('设置')),
|
||||
body: const Center(child: Text('设置页面')),
|
||||
);
|
||||
if (firstLaunch == true || showGuideOnStartup == true) {
|
||||
return beginnerGuide;
|
||||
}
|
||||
|
||||
if (agreementAccepted == false) {
|
||||
return permissionGuide;
|
||||
}
|
||||
|
||||
return mainNavigation;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user