diff --git a/lib/services/manager_api.dart b/lib/services/manager_api.dart index b8160e87..308562f4 100644 --- a/lib/services/manager_api.dart +++ b/lib/services/manager_api.dart @@ -228,6 +228,13 @@ class ManagerAPI { ); } + Future getLatestPatchesVersion() async { + return await _revancedAPI.getLatestReleaseVersion( + '.json', + defaultPatchesRepo, + ); + } + Future getCurrentManagerVersion() async { PackageInfo packageInfo = await PackageInfo.fromPlatform(); return packageInfo.version; diff --git a/lib/ui/views/patches_selector/patches_selector_view.dart b/lib/ui/views/patches_selector/patches_selector_view.dart index eac0c94f..35092327 100644 --- a/lib/ui/views/patches_selector/patches_selector_view.dart +++ b/lib/ui/views/patches_selector/patches_selector_view.dart @@ -55,6 +55,25 @@ class _PatchesSelectorViewState extends State { ), onPressed: () => Navigator.of(context).pop(), ), + actions: [ + Container( + height: 2, + margin: const EdgeInsets.only(right: 16, top: 12, bottom: 12), + padding: + const EdgeInsets.symmetric(horizontal: 6, vertical: 6), + decoration: BoxDecoration( + color: + Theme.of(context).colorScheme.tertiary.withOpacity(0.5), + borderRadius: BorderRadius.circular(6), + ), + child: Text( + model.patchesVersion!, + style: TextStyle( + color: Theme.of(context).textTheme.headline6!.color, + ), + ), + ), + ], bottom: PreferredSize( preferredSize: const Size.fromHeight(64.0), child: Padding( diff --git a/lib/ui/views/patches_selector/patches_selector_viewmodel.dart b/lib/ui/views/patches_selector/patches_selector_viewmodel.dart index 99fe9e8c..7b536044 100644 --- a/lib/ui/views/patches_selector/patches_selector_viewmodel.dart +++ b/lib/ui/views/patches_selector/patches_selector_viewmodel.dart @@ -3,6 +3,7 @@ import 'package:flutter_i18n/widgets/I18nText.dart'; import 'package:revanced_manager/app/app.locator.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/views/patcher/patcher_viewmodel.dart'; import 'package:revanced_manager/ui/widgets/shared/custom_material_button.dart'; @@ -11,11 +12,14 @@ import 'package:flutter/material.dart'; class PatchesSelectorViewModel extends BaseViewModel { final PatcherAPI _patcherAPI = locator(); + final ManagerAPI _managerAPI = locator(); final List patches = []; final List selectedPatches = locator().selectedPatches; + String? patchesVersion = ''; Future initialize() async { + getPatchesVersion(); patches.addAll(await _patcherAPI.getFilteredPatches( locator().selectedApp!.originalPackageName, )); @@ -68,6 +72,12 @@ class PatchesSelectorViewModel extends BaseViewModel { locator().notifyListeners(); } + Future getPatchesVersion() async { + patchesVersion = await _managerAPI.getLatestPatchesVersion(); + // print('Patches version: $patchesVersion'); + return patchesVersion ?? '0.0.0'; + } + List getQueriedPatches(String query) { return patches .where((patch) =>