57 lines
2.1 KiB
Dart
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;
|
|
}
|
|
}
|