feat(permissions): add SMS permission screen and settings button; route from splash on Android
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:submanager/screens/sms_scan_screen.dart';
|
||||
import 'package:submanager/screens/analysis_screen.dart';
|
||||
import 'package:submanager/screens/settings_screen.dart';
|
||||
import 'package:submanager/screens/splash_screen.dart';
|
||||
import 'package:submanager/screens/sms_permission_screen.dart';
|
||||
import 'package:submanager/models/subscription_model.dart';
|
||||
|
||||
class AppRoutes {
|
||||
@@ -16,6 +17,7 @@ class AppRoutes {
|
||||
static const String smsScanner = '/sms-scanner';
|
||||
static const String analysis = '/analysis';
|
||||
static const String settings = '/settings';
|
||||
static const String smsPermission = '/sms-permission';
|
||||
|
||||
static Map<String, WidgetBuilder> getRoutes() {
|
||||
return {
|
||||
@@ -25,6 +27,7 @@ class AppRoutes {
|
||||
smsScanner: (context) => const SmsScanScreen(),
|
||||
analysis: (context) => const AnalysisScreen(),
|
||||
settings: (context) => const SettingsScreen(),
|
||||
smsPermission: (context) => const SmsPermissionScreen(),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -32,29 +35,33 @@ class AppRoutes {
|
||||
switch (routeSettings.name) {
|
||||
case splash:
|
||||
return _buildRoute(const SplashScreen(), routeSettings);
|
||||
|
||||
|
||||
case main:
|
||||
return _buildRoute(const MainScreen(), routeSettings);
|
||||
|
||||
|
||||
case addSubscription:
|
||||
return _buildRoute(const AddSubscriptionScreen(), routeSettings);
|
||||
|
||||
|
||||
case subscriptionDetail:
|
||||
final subscription = routeSettings.arguments as SubscriptionModel?;
|
||||
if (subscription != null) {
|
||||
return _buildRoute(DetailScreen(subscription: subscription), routeSettings);
|
||||
return _buildRoute(
|
||||
DetailScreen(subscription: subscription), routeSettings);
|
||||
}
|
||||
return _errorRoute();
|
||||
|
||||
|
||||
case smsScanner:
|
||||
return _buildRoute(const SmsScanScreen(), routeSettings);
|
||||
|
||||
|
||||
case analysis:
|
||||
return _buildRoute(const AnalysisScreen(), routeSettings);
|
||||
|
||||
|
||||
case settings:
|
||||
return _buildRoute(const SettingsScreen(), routeSettings);
|
||||
|
||||
|
||||
case smsPermission:
|
||||
return _buildRoute(const SmsPermissionScreen(), routeSettings);
|
||||
|
||||
default:
|
||||
return _errorRoute();
|
||||
}
|
||||
@@ -77,15 +84,18 @@ class AppRoutes {
|
||||
);
|
||||
}
|
||||
|
||||
static void navigateTo(BuildContext context, String routeName, {Object? arguments}) {
|
||||
static void navigateTo(BuildContext context, String routeName,
|
||||
{Object? arguments}) {
|
||||
Navigator.pushNamed(context, routeName, arguments: arguments);
|
||||
}
|
||||
|
||||
static void navigateAndReplace(BuildContext context, String routeName, {Object? arguments}) {
|
||||
static void navigateAndReplace(BuildContext context, String routeName,
|
||||
{Object? arguments}) {
|
||||
Navigator.pushReplacementNamed(context, routeName, arguments: arguments);
|
||||
}
|
||||
|
||||
static void navigateAndRemoveUntil(BuildContext context, String routeName, {Object? arguments}) {
|
||||
static void navigateAndRemoveUntil(BuildContext context, String routeName,
|
||||
{Object? arguments}) {
|
||||
Navigator.pushNamedAndRemoveUntil(
|
||||
context,
|
||||
routeName,
|
||||
@@ -103,4 +113,4 @@ class AppRoutes {
|
||||
static bool canPop(BuildContext context) {
|
||||
return Navigator.canPop(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user