feat: working patches selector and improve app selector.

This commit is contained in:
Alberto Ponces
2022-08-09 01:16:33 +01:00
parent 51801b5748
commit 33fb2a81b5
14 changed files with 228 additions and 188 deletions

View File

@ -7,23 +7,34 @@ class GithubAPI {
var github = GitHub();
Future<String?> latestRelease(String org, repoName) async {
var latestRelease = await github.repositories.getLatestRelease(
RepositorySlug(org, repoName),
);
var dlurl = latestRelease.assets
?.firstWhere((asset) =>
asset.name != null &&
(asset.name!.endsWith('.dex') || asset.name!.endsWith('.apk')) &&
!asset.name!.contains('-sources') &&
!asset.name!.contains('-javadoc'))
.browserDownloadUrl;
String? dlurl = '';
try {
var latestRelease = await github.repositories.getLatestRelease(
RepositorySlug(org, repoName),
);
dlurl = latestRelease.assets
?.firstWhere((asset) =>
asset.name != null &&
(asset.name!.endsWith('.dex') || asset.name!.endsWith('.apk')) &&
!asset.name!.contains('-sources') &&
!asset.name!.contains('-javadoc'))
.browserDownloadUrl;
} on Exception {
dlurl = '';
}
return dlurl;
}
Future<String> latestCommitTime(String org, repoName) async {
var repo = await github.repositories.getRepository(
RepositorySlug(org, repoName),
);
return format(repo.pushedAt!);
String pushedAt = '';
try {
var repo = await github.repositories.getRepository(
RepositorySlug(org, repoName),
);
pushedAt = repo.pushedAt != null ? format(repo.pushedAt!) : '';
} on Exception {
pushedAt = '';
}
return pushedAt;
}
}

View File

@ -14,23 +14,13 @@ class PatcherService {
final List<AppInfo> _filteredPackages = [];
final Map<String, List<Patch>> _filteredPatches = <String, List<Patch>>{};
File? _patchBundleFile;
String _selectedApp = '';
List<Patch> _selectedPatches = [];
static const platform = MethodChannel('app.revanced/patcher');
String getSelectedApp() => _selectedApp;
void setSelectedApp(String app) => _selectedApp = app;
List<Patch> getSelectedPatches() => _selectedPatches;
void setSelectedPatches(List<Patch> patches) => _selectedPatches = patches;
Future<void> loadPatches() async {
if (_patchBundleFile == null) {
String? dexFileUrl =
await githubAPI.latestRelease('revanced', 'revanced-patches');
if (dexFileUrl != null) {
if (dexFileUrl != null && dexFileUrl.isNotEmpty) {
_patchBundleFile =
await DefaultCacheManager().getSingleFile(dexFileUrl);
try {