fix: code refactoring (#5)

This commit is contained in:
Alberto Ponces
2022-08-18 15:33:33 +01:00
committed by GitHub
parent 6153e1f9e8
commit 389eae1447
31 changed files with 318 additions and 361 deletions

View File

@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_i18n/flutter_i18n.dart';
import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/theme.dart';
import 'package:revanced_manager/ui/widgets/installed_app_item.dart';
import 'package:revanced_manager/ui/widgets/search_bar.dart';
@ -15,14 +14,13 @@ class AppSelectorView extends StatefulWidget {
}
class _AppSelectorViewState extends State<AppSelectorView> {
String query = '';
String _query = '';
@override
Widget build(BuildContext context) {
return ViewModelBuilder<AppSelectorViewModel>.reactive(
disposeViewModel: false,
onModelReady: (model) => model.initialize(),
viewModelBuilder: () => locator<AppSelectorViewModel>(),
viewModelBuilder: () => AppSelectorViewModel(),
builder: (context, model, child) => Scaffold(
floatingActionButton: FloatingActionButton.extended(
onPressed: () {
@ -51,17 +49,17 @@ class _AppSelectorViewState extends State<AppSelectorView> {
hintTextColor: Theme.of(context).colorScheme.tertiary,
onQueryChanged: (searchQuery) {
setState(() {
query = searchQuery;
_query = searchQuery;
});
},
),
const SizedBox(height: 12),
query.isEmpty || query.length < 2
_query.isEmpty || _query.length < 2
? _getAllResults(model)
: _getFilteredResults(model)
],
)
: query.isEmpty || query.length < 2
: _query.isEmpty || _query.length < 2
? Center(
child: CircularProgressIndicator(
color: Theme.of(context).colorScheme.secondary,
@ -105,7 +103,7 @@ class _AppSelectorViewState extends State<AppSelectorView> {
itemBuilder: (context, index) {
model.apps.sort((a, b) => a.appName.compareTo(b.appName));
if (model.apps[index].appName.toLowerCase().contains(
query.toLowerCase(),
_query.toLowerCase(),
)) {
return InkWell(
onTap: () {

View File

@ -8,30 +8,22 @@ import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/models/patched_application.dart';
import 'package:revanced_manager/services/patcher_api.dart';
import 'package:revanced_manager/ui/views/patcher/patcher_viewmodel.dart';
import 'package:revanced_manager/ui/views/patches_selector/patches_selector_viewmodel.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:stacked/stacked.dart';
class AppSelectorViewModel extends BaseViewModel {
final PatcherAPI patcherAPI = locator<PatcherAPI>();
bool isRooted = false;
bool isFromStorage = false;
List<ApplicationWithIcon> apps = [];
PatchedApplication? selectedApp;
final PatcherAPI _patcherAPI = locator<PatcherAPI>();
final List<ApplicationWithIcon> apps = [];
bool _isRooted = false;
Future<void> initialize() async {
await getApps();
apps.addAll(await _patcherAPI.getFilteredInstalledApps());
SharedPreferences prefs = await SharedPreferences.getInstance();
isRooted = prefs.getBool('isRooted') ?? false;
_isRooted = prefs.getBool('isRooted') ?? false;
notifyListeners();
}
Future<void> getApps() async {
apps = await patcherAPI.getFilteredInstalledApps();
}
void selectApp(ApplicationWithIcon application) async {
isFromStorage = false;
PatchedApplication app = PatchedApplication(
name: application.appName,
packageName: application.packageName,
@ -39,18 +31,16 @@ class AppSelectorViewModel extends BaseViewModel {
apkFilePath: application.apkFilePath,
icon: application.icon,
patchDate: DateTime.now(),
isRooted: isRooted,
isFromStorage: isFromStorage,
isRooted: _isRooted,
isFromStorage: false,
appliedPatches: [],
);
locator<AppSelectorViewModel>().selectedApp = app;
locator<PatchesSelectorViewModel>().selectedPatches.clear();
locator<PatchesSelectorViewModel>().notifyListeners();
locator<PatcherViewModel>().selectedApp = app;
locator<PatcherViewModel>().selectedPatches.clear();
locator<PatcherViewModel>().notifyListeners();
}
Future<void> selectAppFromStorage(BuildContext context) async {
isFromStorage = true;
try {
FilePickerResult? result = await FilePicker.platform.pickFiles(
type: FileType.custom,
@ -69,13 +59,12 @@ class AppSelectorViewModel extends BaseViewModel {
apkFilePath: result.files.single.path!,
icon: application.icon,
patchDate: DateTime.now(),
isRooted: isRooted,
isFromStorage: isFromStorage,
isRooted: _isRooted,
isFromStorage: true,
appliedPatches: [],
);
locator<AppSelectorViewModel>().selectedApp = app;
locator<PatchesSelectorViewModel>().selectedPatches.clear();
locator<PatchesSelectorViewModel>().notifyListeners();
locator<PatcherViewModel>().selectedApp = app;
locator<PatcherViewModel>().selectedPatches.clear();
locator<PatcherViewModel>().notifyListeners();
}
}