2022-08-01 21:05:11 +02:00
|
|
|
import 'dart:io';
|
2022-08-18 18:32:58 +02:00
|
|
|
import 'package:package_info_plus/package_info_plus.dart';
|
2022-08-06 23:35:35 +02:00
|
|
|
import 'package:revanced_manager/constants.dart';
|
2022-08-09 01:01:06 +02:00
|
|
|
import 'package:revanced_manager/services/github_api.dart';
|
2022-07-31 21:46:27 +02:00
|
|
|
|
2022-08-02 10:06:35 +02:00
|
|
|
class ManagerAPI {
|
2022-08-18 16:33:33 +02:00
|
|
|
final GithubAPI _githubAPI = GithubAPI();
|
2022-08-02 10:06:35 +02:00
|
|
|
|
2022-08-19 20:13:43 +02:00
|
|
|
Future<File?> downloadPatches(String extension) async {
|
|
|
|
return await _githubAPI.latestReleaseFile(extension, ghOrg, patchesRepo);
|
2022-08-02 10:06:35 +02:00
|
|
|
}
|
|
|
|
|
2022-08-19 20:13:43 +02:00
|
|
|
Future<File?> downloadIntegrations(String extension) async {
|
2022-08-18 18:32:58 +02:00
|
|
|
return await _githubAPI.latestReleaseFile(
|
2022-08-19 20:13:43 +02:00
|
|
|
extension,
|
|
|
|
ghOrg,
|
|
|
|
integrationsRepo,
|
2022-08-18 18:32:58 +02:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2022-08-19 20:13:43 +02:00
|
|
|
Future<File?> downloadManager(String extension) async {
|
|
|
|
return await _githubAPI.latestReleaseFile(extension, ghOrg, managerRepo);
|
|
|
|
}
|
|
|
|
|
2022-08-18 18:32:58 +02:00
|
|
|
Future<String?> getLatestPatchesVersion() async {
|
|
|
|
return await _githubAPI.latestReleaseVersion(ghOrg, patchesRepo);
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<String?> getLatestManagerVersion() async {
|
2022-08-19 20:13:43 +02:00
|
|
|
return await _githubAPI.latestReleaseVersion(ghOrg, managerRepo);
|
2022-08-18 18:32:58 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
Future<String> getCurrentManagerVersion() async {
|
|
|
|
PackageInfo packageInfo = await PackageInfo.fromPlatform();
|
|
|
|
return packageInfo.version;
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<bool> hasAppUpdates(String packageName) async {
|
|
|
|
// TODO: get status based on last update time on the folder of this app?
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<String> getAppChangelog(String packageName) async {
|
|
|
|
// TODO: get changelog based on last commits on the folder of this app?
|
|
|
|
return 'to be implemented';
|
2022-08-02 09:55:01 +02:00
|
|
|
}
|
2022-08-01 21:05:11 +02:00
|
|
|
}
|