diff --git a/.github/workflows/build_pull_request.yml b/.github/workflows/build_pull_request.yml index b3870a7e..2c4e4ed8 100644 --- a/.github/workflows/build_pull_request.yml +++ b/.github/workflows/build_pull_request.yml @@ -107,7 +107,7 @@ jobs: - App flavor: ${{ inputs.app-flavour }} - name: Upload - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: if-no-files-found: error name: revanced-manager-(${{ env.COMMIT_HASH }}-${{ inputs.pr-number }}-${{ inputs.app-flavour }}) diff --git a/.github/workflows/update_documentation.yml b/.github/workflows/update_documentation.yml index 77097e2f..541a7aa5 100644 --- a/.github/workflows/update_documentation.yml +++ b/.github/workflows/update_documentation.yml @@ -11,7 +11,7 @@ jobs: name: Dispatch event to documentation repository if: github.ref == 'refs/heads/main' steps: - - uses: peter-evans/repository-dispatch@v2 + - uses: peter-evans/repository-dispatch@v3 with: token: ${{ secrets.DOCUMENTATION_REPO_ACCESS_TOKEN }} repository: revanced/revanced-documentation diff --git a/android/app/build.gradle b/android/app/build.gradle index f1473e85..ea6a2456 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -113,9 +113,8 @@ flutter { } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.22" + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.22") - // ReVanced - implementation "app.revanced:revanced-patcher:19.3.1" - implementation "app.revanced:revanced-library:2.1.0" + implementation("app.revanced:revanced-patcher:19.3.1") + implementation("app.revanced:revanced-library:2.2.0") } diff --git a/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt b/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt index e3ac9beb..f0fc99b6 100644 --- a/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt +++ b/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt @@ -9,7 +9,6 @@ import android.os.Handler import android.os.Looper import app.revanced.library.ApkUtils import app.revanced.library.ApkUtils.applyTo -import app.revanced.library.ApkUtils.sign import app.revanced.manager.flutter.utils.Aapt import app.revanced.manager.flutter.utils.packageInstaller.InstallerReceiver import app.revanced.manager.flutter.utils.packageInstaller.UninstallerReceiver @@ -339,16 +338,15 @@ class MainActivity : FlutterActivity() { patcher.get() } - inFile.copyTo(outFile) + if (cancel(patcher::close)) return@Thread + + patcherResult.applyTo(inFile) if (cancel(patcher::close)) return@Thread - patcherResult.applyTo(outFile) - - if (cancel(patcher::close)) return@Thread - updateProgress(0.8, "Signing...", "") - - outFile.sign( + ApkUtils.sign( + inFile, + outFile, ApkUtils.SigningOptions( keyStoreFile, keystorePassword, diff --git a/docs/2_4_settings.md b/docs/2_4_settings.md index 5d188e3a..08dbf9d2 100644 --- a/docs/2_4_settings.md +++ b/docs/2_4_settings.md @@ -9,32 +9,32 @@ Learn how to configure ReVanced Manager. By default, you can not change the patch selection and the default selection is used. Enabling this will allow you to change the patch selection. > ⚠️ Warning - > Changing the selection may cause cause unexpected issues. Unless you know what you are doing, it is recommended to keep this disabled. + > Changing the selection may cause unexpected issues. Unless you know what you are doing, it is recommended to keep this disabled. - ### 📦 Require suggested app version - By default, ReVanced Manager allows you to patch an app if the suggested version to patch matches the app you selected. Disabling this will allow you to patch an app even if the suggested version does not match the app you selected. + By default, ReVanced Manager allows you to patch an app if the suggested version to patch matches the version of the app you selected. Disabling this will allow you to patch an app even if the suggested version does not match the version of the app you selected. > ⚠️ Warning > Patches are more likely to fail on versions that are not suggested by ReVanced Manager. Unless you know what you are doing, it is recommended to keep this enabled. - ### ✅ Version compatibility check - By default, ReVanced Manager allows you to select patches that are not compatible with the version of the app you selected. Disabling this will allow you to select patches that are not compatible with the app version you selected. + By default, ReVanced Manager does not allow you to select patches that are not compatible with the version of the app you selected. Disabling this will allow you to select patches that are not compatible with the version of the app you selected. > ⚠️ Warning > Patches are more likely to fail on versions they are not compatible with. Unless you know what you are doing, it is recommended to keep this enabled. - ### 🧑‍🔬 Show universal patches - By default, ReVanced Manager only shows patches that are compatible with specifc apps. Enabling this will show patches that are intended to work on all apps. + By default, ReVanced Manager only shows patches that are compatible with specific apps. Enabling this will show patches that are intended to work on all apps. > ⚠️ Warning - > Patches that are intended to work on all apps may not work on all apps. Unless you know what you are doing, it is recommended to keep this disabled. + > Patches that are intended to may not work on all apps. Unless you know what you are doing, it is recommended to keep this disabled. - ### 🔗 API URL - Configure the API URL to use. The API is used to download updates and patches. + Configure the API URL to use. The API is used to download patches and updates. - ### 🧬 Use alternative source diff --git a/lib/services/patcher_api.dart b/lib/services/patcher_api.dart index 7d45a8bb..c65cd630 100644 --- a/lib/services/patcher_api.dart +++ b/lib/services/patcher_api.dart @@ -297,6 +297,18 @@ class PatcherAPI { ); bool cleanInstall = false; final bool isFixable = statusCode == 4 || statusCode == 5; + + var description = t['installErrorDialog.${statusValue}_description']; + if (statusCode == 2) { + description = description( + packageName: statusCode == 2 + ? { + 'packageName': status['otherPackageName'], + } + : null, + ); + } + await showDialog( context: _managerAPI.ctx!, builder: (context) => AlertDialog( @@ -306,15 +318,7 @@ class PatcherAPI { crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - Text( - t['installErrorDialog.${statusValue}_description']( - packageName: statusCode == 2 - ? { - 'packageName': status['otherPackageName'], - } - : null, - ), - ), + Text(description), ], ), actions: (status == null) diff --git a/lib/ui/views/app_selector/app_selector_view.dart b/lib/ui/views/app_selector/app_selector_view.dart index 6c3540dd..fc29cae2 100644 --- a/lib/ui/views/app_selector/app_selector_view.dart +++ b/lib/ui/views/app_selector/app_selector_view.dart @@ -78,7 +78,7 @@ class _AppSelectorViewState extends State { ), ), ) - : model.allApps.isEmpty + : model.allApps.isEmpty && model.apps.isEmpty ? const AppSkeletonLoader() : Padding( padding: const EdgeInsets.symmetric(horizontal: 12.0) diff --git a/lib/ui/views/app_selector/app_selector_viewmodel.dart b/lib/ui/views/app_selector/app_selector_viewmodel.dart index 55d9ce85..bb6ad937 100644 --- a/lib/ui/views/app_selector/app_selector_viewmodel.dart +++ b/lib/ui/views/app_selector/app_selector_viewmodel.dart @@ -54,7 +54,7 @@ class AppSelectorViewModel extends BaseViewModel { .toSet() .where((name) => !apps.any((app) => app.packageName == name)) .toList(); - noApps = allApps.isEmpty; + noApps = allApps.isEmpty && apps.isEmpty; return allApps; } diff --git a/package-lock.json b/package-lock.json index 36812cb5..bf706cdf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "devDependencies": { - "@droidsolutions-oss/semantic-release-update-file": "^1.3.2", + "@droidsolutions-oss/semantic-release-update-file": "^1.4.0-beta.1", "@saithodev/semantic-release-backmerge": "^4.0.1", "@semantic-release/changelog": "^6.0.3", "@semantic-release/exec": "^6.0.3", @@ -60,9 +60,9 @@ } }, "node_modules/@droidsolutions-oss/semantic-release-update-file": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@droidsolutions-oss/semantic-release-update-file/-/semantic-release-update-file-1.3.2.tgz", - "integrity": "sha512-ahV0OWiEUf20e7lLH3gnBLF1SfRNPN99MeaLVaFX6jT3DegTLzkVPeY2CZWa+K4tAXBALc29Bq/kzjv8PAXFGw==", + "version": "1.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@droidsolutions-oss/semantic-release-update-file/-/semantic-release-update-file-1.4.0-beta.1.tgz", + "integrity": "sha512-CdqG3vIceWFBmwz0qcY0NdqaE+TGNuhhbgFXHIj/M1fYAD1lQ4QyGEaoD3d4F4ZHYsBqR0HrHNMTG4bycBRKNw==", "dev": true, "dependencies": { "aggregate-error": "^3.1.0", diff --git a/package.json b/package.json index c4b4619e..3e5d19e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "devDependencies": { - "@droidsolutions-oss/semantic-release-update-file": "^1.3.2", + "@droidsolutions-oss/semantic-release-update-file": "^1.4.0-beta.1", "@saithodev/semantic-release-backmerge": "^4.0.1", "@semantic-release/changelog": "^6.0.3", "@semantic-release/exec": "^6.0.3", diff --git a/pubspec.lock b/pubspec.lock index e588a7af..0842621f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -459,10 +459,10 @@ packages: dependency: "direct main" description: name: google_fonts - sha256: "5b1726fee554d1cc9db1baef8061b126567ff0a1140a03ed7de936e62f2ab98b" + sha256: b1ac0fe2832c9cc95e5e88b57d627c5e68c223b9657f4b96e1487aa9098c7b82 url: "https://pub.dev" source: hosted - version: "6.2.0" + version: "6.2.1" graphs: dependency: transitive description: @@ -1361,4 +1361,4 @@ packages: version: "3.1.2" sdks: dart: ">=3.3.0 <4.0.0" - flutter: ">=3.19.0" + flutter: ">=3.19.2" diff --git a/pubspec.yaml b/pubspec.yaml index 919e0e54..09013c84 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -4,7 +4,7 @@ homepage: https://github.com/ReVanced/revanced-manager publish_to: 'none' -version: 1.19.1+101800002 +version: 1.19.2-dev.1+101800003 environment: sdk: '>=3.0.0 <4.0.0' @@ -37,7 +37,7 @@ dependencies: flutter_markdown: ^0.6.14 fluttertoast: ^8.2.4 font_awesome_flutter: ^10.4.0 - google_fonts: ^6.1.0 + google_fonts: ^6.2.1 injectable: ^2.1.1 intl: ^0.18.0 json_annotation: ^4.8.1