Files
wushu/lib/routes/app_routes.dart
2026-04-02 07:06:55 +08:00

57 lines
2.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.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/active/tags/corr_page.dart';
class AppRoutes {
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) {
switch (settings.name) {
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: (_) =>
CorrPage(label: args['label']!, searchType: args['searchType']!),
);
default:
return MaterialPageRoute(builder: (_) => const MainNavigation());
}
}
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');
if (firstLaunch == true || showGuideOnStartup == true) {
return beginnerGuide;
}
if (agreementAccepted == false) {
return permissionGuide;
}
return mainNavigation;
}
}