diff --git a/lib/app/app.dart b/lib/app/app.dart index 653162dd..845800ba 100644 --- a/lib/app/app.dart +++ b/lib/app/app.dart @@ -1,5 +1,7 @@ +import 'package:revanced_manager/services/github_api.dart'; import 'package:revanced_manager/services/manager_api.dart'; import 'package:revanced_manager/services/patcher_api.dart'; +import 'package:revanced_manager/services/revanced_api.dart'; import 'package:revanced_manager/ui/views/app_selector/app_selector_view.dart'; import 'package:revanced_manager/ui/views/contributors/contributors_view.dart'; import 'package:revanced_manager/ui/views/home/home_viewmodel.dart'; @@ -32,6 +34,8 @@ import 'package:stacked_services/stacked_services.dart'; LazySingleton(classType: NavigationService), LazySingleton(classType: ManagerAPI), LazySingleton(classType: PatcherAPI), + LazySingleton(classType: RevancedAPI), + LazySingleton(classType: GithubAPI), ], ) class AppSetup {} diff --git a/lib/main.dart b/lib/main.dart index 925d9415..77f89813 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -3,8 +3,10 @@ import 'package:flutter_i18n/flutter_i18n.dart'; // ignore: depend_on_referenced_packages import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:revanced_manager/app/app.locator.dart'; +import 'package:revanced_manager/services/github_api.dart'; import 'package:revanced_manager/services/manager_api.dart'; import 'package:revanced_manager/services/patcher_api.dart'; +import 'package:revanced_manager/services/revanced_api.dart'; import 'package:revanced_manager/ui/theme/dynamic_theme_builder.dart'; import 'package:revanced_manager/ui/views/navigation/navigation_view.dart'; import 'package:stacked_themes/stacked_themes.dart'; @@ -15,6 +17,8 @@ Future main() async { WidgetsFlutterBinding.ensureInitialized(); await locator().initialize(); await locator().initialize(); + locator().initialize(); + locator().initialize(); runApp(const MyApp()); } diff --git a/lib/services/github_api.dart b/lib/services/github_api.dart index 5ede1729..be6d28e8 100644 --- a/lib/services/github_api.dart +++ b/lib/services/github_api.dart @@ -5,16 +5,17 @@ import 'package:collection/collection.dart'; import 'package:dio/dio.dart'; import 'package:dio_http_cache_lts/dio_http_cache_lts.dart'; import 'package:flutter_cache_manager/flutter_cache_manager.dart'; +import 'package:injectable/injectable.dart'; import 'package:revanced_manager/models/patch.dart'; +@lazySingleton class GithubAPI { final String apiUrl = 'https://api.github.com'; final Dio _dio = Dio(); - final DioCacheManager _dioCacheManager = DioCacheManager( - CacheConfig( - defaultMaxAge: const Duration(hours: 1), - defaultMaxStale: const Duration(days: 7), - ), + final DioCacheManager _dioCacheManager = DioCacheManager(CacheConfig()); + final Options _cacheOptions = buildCacheOptions( + const Duration(hours: 1), + maxStale: const Duration(days: 7), ); final Map repoAppPath = { 'com.google.android.youtube': 'youtube', @@ -38,13 +39,8 @@ class GithubAPI { try { var response = await _dio.get( '$apiUrl/repos/$repoName/releases/latest', - options: buildCacheOptions(const Duration(hours: 1)), + options: _cacheOptions, ); - if (response.headers.value(DIO_CACHE_HEADER_KEY_DATA_SOURCE) != null) { - print('1 - From cache'); - } else { - print('1 - From net'); - } return response.data; } on Exception { // ignore @@ -67,13 +63,8 @@ class GithubAPI { 'per_page': 3, 'since': since.toIso8601String(), }, - options: buildCacheOptions(const Duration(hours: 1)), + options: _cacheOptions, ); - if (response.headers.value(DIO_CACHE_HEADER_KEY_DATA_SOURCE) != null) { - print('2 - From cache'); - } else { - print('2 - From net'); - } List commits = response.data; return commits .map((commit) => diff --git a/lib/services/manager_api.dart b/lib/services/manager_api.dart index c429f18c..d621cb0c 100644 --- a/lib/services/manager_api.dart +++ b/lib/services/manager_api.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:device_apps/device_apps.dart'; import 'package:injectable/injectable.dart'; import 'package:package_info_plus/package_info_plus.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/github_api.dart'; @@ -12,8 +13,8 @@ import 'package:shared_preferences/shared_preferences.dart'; @lazySingleton class ManagerAPI { - final RevancedAPI _revancedAPI = RevancedAPI(); - final GithubAPI _githubAPI = GithubAPI(); + final RevancedAPI _revancedAPI = locator(); + final GithubAPI _githubAPI = locator(); final RootAPI _rootAPI = RootAPI(); final String patcherRepo = 'revanced-patcher'; final String cliRepo = 'revanced-cli'; diff --git a/lib/services/revanced_api.dart b/lib/services/revanced_api.dart index 0fbfcccb..8e19f986 100644 --- a/lib/services/revanced_api.dart +++ b/lib/services/revanced_api.dart @@ -14,7 +14,7 @@ class RevancedAPI { final Dio _dio = Dio(); final DioCacheManager _dioCacheManager = DioCacheManager(CacheConfig()); final Options _cacheOptions = buildCacheOptions( - const Duration(minutes: 10), + const Duration(hours: 1), maxStale: const Duration(days: 7), ); @@ -33,11 +33,6 @@ class RevancedAPI { '$apiUrl/contributors', options: _cacheOptions, ); - if (response.headers.value(DIO_CACHE_HEADER_KEY_DATA_SOURCE) != null) { - print('3 - From cache'); - } else { - print('3 - From net'); - } List repositories = response.data['repositories']; for (Map repo in repositories) { String name = repo['name']; @@ -52,11 +47,6 @@ class RevancedAPI { Future> getPatches() async { try { var response = await _dio.get('$apiUrl/patches', options: _cacheOptions); - if (response.headers.value(DIO_CACHE_HEADER_KEY_DATA_SOURCE) != null) { - print('4 - From cache'); - } else { - print('4 - From net'); - } List patches = response.data; return patches.map((patch) => Patch.fromJson(patch)).toList(); } on Exception { @@ -71,11 +61,6 @@ class RevancedAPI { ) async { try { var response = await _dio.get('$apiUrl/tools', options: _cacheOptions); - if (response.headers.value(DIO_CACHE_HEADER_KEY_DATA_SOURCE) != null) { - print('5 - From cache'); - } else { - print('5 - From net'); - } List tools = response.data['tools']; return tools.firstWhereOrNull( (t) =>