feat: Patches Selector Screen.

This commit is contained in:
Aunali321
2022-08-08 00:45:52 +05:30
parent 645589fa0e
commit cceb7e6449
10 changed files with 191 additions and 22 deletions

View File

@ -1,6 +1,8 @@
import 'package:revanced_manager/services/patcher_api.dart';
import 'package:revanced_manager/ui/views/app_selector/app_selector_view.dart';
import 'package:revanced_manager/ui/views/home/home_view.dart';
import 'package:revanced_manager/ui/views/patcher/patcher_view.dart';
import 'package:revanced_manager/ui/views/patches_selector/patches_selector_view.dart';
import 'package:stacked/stacked_annotations.dart';
import 'package:stacked_services/stacked_services.dart';
@ -8,7 +10,9 @@ import 'package:stacked_services/stacked_services.dart';
MaterialRoute(page: HomeView),
MaterialRoute(page: AppSelectorView),
MaterialRoute(page: PatcherView),
MaterialRoute(page: PatchesSelectorView),
], dependencies: [
LazySingleton(classType: NavigationService),
LazySingleton(classType: PatcherService),
])
class AppSetup {}

View File

@ -6,11 +6,11 @@
// ignore_for_file: public_member_api_docs
// ignore: depend_on_referenced_packages
import 'package:stacked_core/stacked_core.dart';
// ignore: implementation_imports
import 'package:stacked_services/src/navigation/navigation_service.dart';
import '../services/patcher_api.dart';
final locator = StackedLocator.instance;
Future<void> setupLocator(
@ -21,4 +21,5 @@ Future<void> setupLocator(
// Register dependencies
locator.registerLazySingleton(() => NavigationService());
locator.registerLazySingleton(() => PatcherService());
}

View File

@ -7,11 +7,12 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'package:flutter/material.dart';
import 'package:stacked/stacked.dart' as _i1;
import 'package:stacked_services/stacked_services.dart' as _i5;
import 'package:stacked_services/stacked_services.dart' as _i6;
import '../ui/views/app_selector/app_selector_view.dart' as _i3;
import '../ui/views/home/home_view.dart' as _i2;
import '../ui/views/patcher/patcher_view.dart' as _i4;
import '../ui/views/patches_selector/patches_selector_view.dart' as _i5;
class Routes {
static const homeView = '/home-view';
@ -20,14 +21,22 @@ class Routes {
static const patcherView = '/patcher-view';
static const all = <String>{homeView, appSelectorView, patcherView};
static const patchesSelectorView = '/patches-selector-view';
static const all = <String>{
homeView,
appSelectorView,
patcherView,
patchesSelectorView
};
}
class StackedRouter extends _i1.RouterBase {
final _routes = <_i1.RouteDef>[
_i1.RouteDef(Routes.homeView, page: _i2.HomeView),
_i1.RouteDef(Routes.appSelectorView, page: _i3.AppSelectorView),
_i1.RouteDef(Routes.patcherView, page: _i4.PatcherView)
_i1.RouteDef(Routes.patcherView, page: _i4.PatcherView),
_i1.RouteDef(Routes.patchesSelectorView, page: _i5.PatchesSelectorView)
];
final _pagesMap = <Type, _i1.StackedRouteFactory>{
@ -48,6 +57,12 @@ class StackedRouter extends _i1.RouterBase {
builder: (context) => const _i4.PatcherView(),
settings: data,
);
},
_i5.PatchesSelectorView: (data) {
return MaterialPageRoute<dynamic>(
builder: (context) => const _i5.PatchesSelectorView(),
settings: data,
);
}
};
@ -57,7 +72,7 @@ class StackedRouter extends _i1.RouterBase {
Map<Type, _i1.StackedRouteFactory> get pagesMap => _pagesMap;
}
extension NavigatorStateExtension on _i5.NavigationService {
extension NavigatorStateExtension on _i6.NavigationService {
Future<dynamic> navigateToHomeView(
[int? routerId,
bool preventDuplicates = true,
@ -99,4 +114,18 @@ extension NavigatorStateExtension on _i5.NavigationService {
parameters: parameters,
transition: transition);
}
Future<dynamic> navigateToPatchesSelectorView(
[int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(
BuildContext, Animation<double>, Animation<double>, Widget)?
transition]) async {
navigateTo(Routes.patchesSelectorView,
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
}