From 6abb761724844fbac7af74db220d1d21b2f57ec9 Mon Sep 17 00:00:00 2001 From: Alberto Ponces Date: Fri, 23 Sep 2022 15:31:24 +0100 Subject: [PATCH] refactor: Move some logic to ManagerAPI and PatcherAPI --- lib/services/manager_api.dart | 10 ++++++++++ lib/ui/views/patcher/patcher_viewmodel.dart | 19 +++++++------------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/lib/services/manager_api.dart b/lib/services/manager_api.dart index d0482527..af5465e6 100644 --- a/lib/services/manager_api.dart +++ b/lib/services/manager_api.dart @@ -319,4 +319,14 @@ class ManagerAPI { } return newCommits; } + + Future isSplitApk(PatchedApplication patchedApp) async { + Application? app; + if (patchedApp.isFromStorage) { + app = await DeviceApps.getAppFromStorage(patchedApp.apkFilePath); + } else { + app = await DeviceApps.getApp(patchedApp.packageName); + } + return app != null && app.isSplit; + } } diff --git a/lib/ui/views/patcher/patcher_viewmodel.dart b/lib/ui/views/patcher/patcher_viewmodel.dart index 7125bde4..39733b88 100644 --- a/lib/ui/views/patcher/patcher_viewmodel.dart +++ b/lib/ui/views/patcher/patcher_viewmodel.dart @@ -1,4 +1,3 @@ -import 'package:device_apps/device_apps.dart'; import 'package:flutter/material.dart'; import 'package:flutter_i18n/flutter_i18n.dart'; import 'package:injectable/injectable.dart'; @@ -6,6 +5,7 @@ import 'package:revanced_manager/app/app.locator.dart'; import 'package:revanced_manager/app/app.router.dart'; import 'package:revanced_manager/models/patch.dart'; import 'package:revanced_manager/models/patched_application.dart'; +import 'package:revanced_manager/services/manager_api.dart'; import 'package:revanced_manager/services/patcher_api.dart'; import 'package:revanced_manager/ui/widgets/shared/custom_material_button.dart'; import 'package:stacked/stacked.dart'; @@ -14,6 +14,7 @@ import 'package:stacked_services/stacked_services.dart'; @lazySingleton class PatcherViewModel extends BaseViewModel { final NavigationService _navigationService = locator(); + final ManagerAPI _managerAPI = locator(); final PatcherAPI _patcherAPI = locator(); PatchedApplication? selectedApp; List selectedPatches = []; @@ -39,18 +40,12 @@ class PatcherViewModel extends BaseViewModel { } Future isValidPatchConfig() async { - bool needsResourcePatching = - await _patcherAPI.needsResourcePatching(selectedPatches); + bool needsResourcePatching = await _patcherAPI.needsResourcePatching( + selectedPatches, + ); if (needsResourcePatching && selectedApp != null) { - Application? app; - if (selectedApp!.isFromStorage) { - app = await DeviceApps.getAppFromStorage(selectedApp!.apkFilePath); - } else { - app = await DeviceApps.getApp(selectedApp!.packageName); - } - if (app != null && app.isSplit) { - return false; - } + bool isSplit = await _managerAPI.isSplitApk(selectedApp!); + return !isSplit; } return true; }