From 8e2f1bd511a0d191661790923ed39cd15152513f Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Wed, 6 May 2026 02:36:21 +0300 Subject: [PATCH 01/17] Update pubspec.lock --- pubspec.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.lock b/pubspec.lock index 8cc3c175c..848aaa4ba 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1262,7 +1262,7 @@ packages: source: hosted version: "6.6.1" yaml: - dependency: transitive + dependency: "direct main" description: name: yaml sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce From dbfb7603b6dd18285f921c31a2057de6e9690cd5 Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Tue, 5 May 2026 19:09:45 +0300 Subject: [PATCH 02/17] Update --- android_package_manager_fix | 1 + pubspec.lock | 7 +++---- pubspec.yaml | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) create mode 160000 android_package_manager_fix diff --git a/android_package_manager_fix b/android_package_manager_fix new file mode 160000 index 000000000..d3203d136 --- /dev/null +++ b/android_package_manager_fix @@ -0,0 +1 @@ +Subproject commit d3203d1367e53bdb4d44b8c555b7b76b816db3a1 diff --git a/pubspec.lock b/pubspec.lock index 848aaa4ba..69d15a393 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -12,10 +12,9 @@ packages: android_package_manager: dependency: "direct main" description: - name: android_package_manager - sha256: "2de859fae7226a7de1c1ff9a2308f1967599408800330501a1ce97927c051153" - url: "https://pub.dev" - source: hosted + path: android_package_manager_fix + relative: true + source: path version: "0.7.1" android_system_font: dependency: "direct main" diff --git a/pubspec.yaml b/pubspec.yaml index 3f9893eee..44903950c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -159,6 +159,10 @@ flutter: fonts: - asset: assets/fonts/NotoSansArabic-Regular.ttf +dependency_overrides: + android_package_manager: + path: ./android_package_manager_fix + dev_dependencies: flutter_test: sdk: flutter From 8cdaedf784bdb55add89f55217dcb94b0e0bc062 Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Tue, 5 May 2026 21:09:01 +0300 Subject: [PATCH 03/17] Fix dependency path for CI/CD - Remove leading './' from android_package_manager path in dependency override - Resolves 'No pubspec.yaml found for package' error in CI environment --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 44903950c..aa8796533 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -161,7 +161,7 @@ flutter: dependency_overrides: android_package_manager: - path: ./android_package_manager_fix + path: android_package_manager_fix dev_dependencies: flutter_test: From c2105498808e76ac43ea45f1599a099d45ba6558 Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Tue, 5 May 2026 21:42:19 +0300 Subject: [PATCH 04/17] Update 2 --- android_package_manager_fix | 1 - 1 file changed, 1 deletion(-) delete mode 160000 android_package_manager_fix diff --git a/android_package_manager_fix b/android_package_manager_fix deleted file mode 160000 index d3203d136..000000000 --- a/android_package_manager_fix +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d3203d1367e53bdb4d44b8c555b7b76b816db3a1 From e90bc30e5feb733f27b2d9e6eeb321e94531380e Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Tue, 5 May 2026 21:42:33 +0300 Subject: [PATCH 05/17] Add android_package_manager as proper git submodule - Remove local copy and add as git submodule from nsNeruno/android_package_manager - This should resolve CI dependency path issues in nested directory structures - Submodule points to original repository with namespace fixes applied --- .gitmodules | 3 +++ android_package_manager_fix | 1 + 2 files changed, 4 insertions(+) create mode 160000 android_package_manager_fix diff --git a/.gitmodules b/.gitmodules index 5791650eb..53399eb11 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule ".flutter"] path = .flutter url = https://github.com/flutter/flutter/ +[submodule "android_package_manager_fix"] + path = android_package_manager_fix + url = https://github.com/nsNeruno/android_package_manager.git diff --git a/android_package_manager_fix b/android_package_manager_fix new file mode 160000 index 000000000..d3203d136 --- /dev/null +++ b/android_package_manager_fix @@ -0,0 +1 @@ +Subproject commit d3203d1367e53bdb4d44b8c555b7b76b816db3a1 From 1a56a7153e9d09acce6b60e5a9b1e715650f2ae9 Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Tue, 5 May 2026 21:44:47 +0300 Subject: [PATCH 06/17] Resolve conflicts and continue cherry-picking --- android/build.gradle.kts | 4 ++++ android/gradle/wrapper/gradle-wrapper.properties | 2 +- pubspec.lock | 7 ++++--- pubspec.yaml | 3 --- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/android/build.gradle.kts b/android/build.gradle.kts index a3dfb706e..257322553 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -22,6 +22,7 @@ subprojects { project.evaluationDependsOn(":app") } +<<<<<<< HEAD // Special handling for android_package_manager plugin for AGP 9 compatibility if (project.name == "android_package_manager") { project.logger.lifecycle("Configuring android_package_manager for AGP 9 compatibility") @@ -58,6 +59,9 @@ subprojects { } } +======= + +>>>>>>> 6057f431 (Revert to AGP 8 and remove submodule approach) return@subprojects } } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 76d4386de..8bc9958ab 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip diff --git a/pubspec.lock b/pubspec.lock index 69d15a393..848aaa4ba 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -12,9 +12,10 @@ packages: android_package_manager: dependency: "direct main" description: - path: android_package_manager_fix - relative: true - source: path + name: android_package_manager + sha256: "2de859fae7226a7de1c1ff9a2308f1967599408800330501a1ce97927c051153" + url: "https://pub.dev" + source: hosted version: "0.7.1" android_system_font: dependency: "direct main" diff --git a/pubspec.yaml b/pubspec.yaml index aa8796533..ff568c44e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -159,9 +159,6 @@ flutter: fonts: - asset: assets/fonts/NotoSansArabic-Regular.ttf -dependency_overrides: - android_package_manager: - path: android_package_manager_fix dev_dependencies: flutter_test: From 863dd9abd153eccf18837c5888e42fe2b1ae0466 Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Tue, 5 May 2026 21:55:32 +0300 Subject: [PATCH 07/17] Update --- android_package_manager_fix | 1 - lib/pages/app.dart | 10 ++++++++-- lib/pages/apps.dart | 10 ++++++++-- 3 files changed, 16 insertions(+), 5 deletions(-) delete mode 160000 android_package_manager_fix diff --git a/android_package_manager_fix b/android_package_manager_fix deleted file mode 160000 index d3203d136..000000000 --- a/android_package_manager_fix +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d3203d1367e53bdb4d44b8c555b7b76b816db3a1 diff --git a/lib/pages/app.dart b/lib/pages/app.dart index 96d1d6e5d..0e35b1d38 100644 --- a/lib/pages/app.dart +++ b/lib/pages/app.dart @@ -16,6 +16,7 @@ import 'package:url_launcher/url_launcher_string.dart'; import 'package:provider/provider.dart'; import 'package:markdown/markdown.dart' as md; import 'package:updatium/components/generated_form.dart'; +import 'package:android_intent_plus/android_intent.dart'; // Material 3 spacing tokens const gap8 = SizedBox(height: 8); @@ -817,8 +818,13 @@ class _AppPageState extends State { icon: Icons.open_in_new, semanticLabel: tr('open'), tooltip: tr('open'), - onPressed: () { - pm.openApp(app.app.id); + onPressed: () async { + AndroidIntent intent = AndroidIntent( + action: 'android.intent.action.MAIN', + category: 'android.intent.category.LAUNCHER', + package: app.app.id, + ); + await intent.launch(); }, ), if (!updating && diff --git a/lib/pages/apps.dart b/lib/pages/apps.dart index 2bf7f3ace..24bd3a3e9 100644 --- a/lib/pages/apps.dart +++ b/lib/pages/apps.dart @@ -18,6 +18,7 @@ import 'package:updatium/providers/settings_provider.dart'; import 'package:updatium/providers/source_provider.dart'; import 'package:provider/provider.dart'; import 'package:share_plus/share_plus.dart'; +import 'package:android_intent_plus/android_intent.dart'; import 'package:url_launcher/url_launcher_string.dart'; import 'package:markdown/markdown.dart' as md; @@ -587,8 +588,13 @@ class AppsPageState extends State with TickerProviderStateMixin { ), ); }, - onDoubleTap: () { - pm.openApp(listedApps[appIndex].app.id); + onDoubleTap: () async { + AndroidIntent intent = AndroidIntent( + action: 'android.intent.action.MAIN', + category: 'android.intent.category.LAUNCHER', + package: listedApps[appIndex].app.id, + ); + await intent.launch(); }, onLongPress: () { Navigator.push( From 2b37dd4920ea3ee314283a37f85c2001bc7e40b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 May 2026 20:19:22 +0000 Subject: [PATCH 08/17] Update Gradle to v8.14.4 (#322) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- android/gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 8bc9958ab..41d01ac9b 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-all.zip From eec79e220abf2b8fa2cdfad885f1766ae7ae126d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 May 2026 20:19:57 +0000 Subject: [PATCH 09/17] Update Gradle to v9 (#323) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Omer I.S. <137101815+omeritzics@users.noreply.github.com> --- android/gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 41d01ac9b..76d4386de 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-all.zip From d76c524b985788a1abde8c988db94ed81f01bf5c Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Tue, 5 May 2026 23:23:40 +0300 Subject: [PATCH 10/17] Update --- android/gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/gradle.properties b/android/gradle.properties index 0b84ac2c1..bbcc09fd0 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -6,7 +6,7 @@ android.compileSdk=36 android.newDsl=false android.nonTransitiveRClass=true android.nonFinalResIds=true -# Kotlin version for compatibility with AGP 9 -kotlin.version=2.2.0 +# Kotlin version for compatibility with Flutter 3.41.9 +kotlin.version=2.3.21 # Suppress android_package_manager manifest validation error android.disableManifestValidation=true \ No newline at end of file From 13d37cd03b7af350bb98bbbfdb724e6dd4504e57 Mon Sep 17 00:00:00 2001 From: omeritzics <137101815+omeritzics@users.noreply.github.com> Date: Wed, 6 May 2026 01:24:00 +0000 Subject: [PATCH 11/17] style: auto-fix linting and formatting issues --- pubspec.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 848aaa4ba..b2f4195ab 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1185,10 +1185,10 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: d0412fcf4c6b31ecfdb7762359b7206ffba3bbffd396c6d9f9c4616ece476c1f + sha256: "85c81589622fbc87c1c683aaea164d3604a7777495a79d91e39ffcdec39ddb34" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" url_launcher_windows: dependency: transitive description: From 7ae7e8b487a422be15eb767be87c57f3fbba0ced Mon Sep 17 00:00:00 2001 From: "Omer I.S." <137101815+omeritzics@users.noreply.github.com> Date: Wed, 6 May 2026 01:29:32 +0000 Subject: [PATCH 12/17] Fix merge conflicts in android/build.gradle.kts --- android/build.gradle.kts | 41 ---------------------------------------- 1 file changed, 41 deletions(-) diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 257322553..fdeb197b1 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -22,47 +22,6 @@ subprojects { project.evaluationDependsOn(":app") } -<<<<<<< HEAD - // Special handling for android_package_manager plugin for AGP 9 compatibility - if (project.name == "android_package_manager") { - project.logger.lifecycle("Configuring android_package_manager for AGP 9 compatibility") - - // Fix manifest by removing package attribute during build - project.tasks.whenTaskAdded { task -> - if (task.name == "processReleaseManifest" || task.name == "processDebugManifest") { - task.doFirst { - val manifestFile = file("${project.projectDir}/src/main/AndroidManifest.xml") - if (manifestFile.exists()) { - val manifestContent = manifestFile.readText() - val fixedContent = manifestContent.replace( - Regex("""package="[^"]*"""), - "" - ) - manifestFile.writeText(fixedContent) - project.logger.lifecycle("Fixed AndroidManifest.xml for android_package_manager") - } - } - } - } - - project.afterEvaluate { - if (project.hasProperty("android")) { - try { - val android = project.extensions.getByName("android") as com.android.build.gradle.LibraryExtension - if (android.namespace == null) { - android.namespace = "com.android_package_manager" - project.logger.lifecycle("Set namespace for android_package_manager: ${android.namespace}") - } - } catch (e: Exception) { - println("Warning: Could not configure namespace for android_package_manager: ${e.message}") - } - } - } - -======= - ->>>>>>> 6057f431 (Revert to AGP 8 and remove submodule approach) - return@subprojects } } From 4dc0f556df424c665153e4579de18bc45412b0dd Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Wed, 6 May 2026 14:55:33 +0300 Subject: [PATCH 13/17] Fix Kotlin syntax errors in android/build.gradle.kts --- android/build.gradle.kts | 2 -- 1 file changed, 2 deletions(-) diff --git a/android/build.gradle.kts b/android/build.gradle.kts index fdeb197b1..aebc80b80 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -21,8 +21,6 @@ subprojects { if (project.path != ":app") { project.evaluationDependsOn(":app") } - - } } tasks.register("clean") { From 351010bf089a79c15434b12d04c4b2ae652a6d79 Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Wed, 6 May 2026 18:09:49 +0300 Subject: [PATCH 14/17] Add namespace configuration for android_package_manager plugin (AGP 8+ compatibility) --- android/build.gradle.kts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/android/build.gradle.kts b/android/build.gradle.kts index aebc80b80..62697f9a0 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -21,6 +21,20 @@ subprojects { if (project.path != ":app") { project.evaluationDependsOn(":app") } + + // Fix for android_package_manager plugin namespace issue with AGP 8+ + if (project.name == "android_package_manager") { + project.afterEvaluate { + if (project.hasProperty("android")) { + val androidExtension = project.extensions.findByName("android") + if (androidExtension is com.android.build.gradle.LibraryExtension) { + if (androidExtension.namespace == null) { + androidExtension.namespace = "com.android_package_manager" + } + } + } + } + } } tasks.register("clean") { From a7eb32c972fcb00e69b5e5807deb7676753968bc Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Wed, 6 May 2026 18:19:57 +0300 Subject: [PATCH 15/17] Replace PackageInstallerStatus with simple error message to remove android_package_manager dependency --- lib/providers/source_provider.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/providers/source_provider.dart b/lib/providers/source_provider.dart index 36d058655..3422829e8 100644 --- a/lib/providers/source_provider.dart +++ b/lib/providers/source_provider.dart @@ -1713,8 +1713,7 @@ class DowngradeError extends UpdatiumError { } class InstallError extends UpdatiumError { - InstallError(int code) - : super(PackageInstallerStatus.byCode(code).name.substring(7)); + InstallError(int code) : super('${tr('installError')} (code: $code)'); } class IDChangedError extends UpdatiumError { From 186ef675240d734d9e56ee304b6a9a491eb4d740 Mon Sep 17 00:00:00 2001 From: "Omer I.S." Date: Wed, 6 May 2026 18:22:00 +0300 Subject: [PATCH 16/17] Add installed_apps package as potential android_package_manager replacement --- pubspec.lock | 8 ++++++++ pubspec.yaml | 1 + 2 files changed, 9 insertions(+) diff --git a/pubspec.lock b/pubspec.lock index b2f4195ab..da02ddb2a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -574,6 +574,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" + installed_apps: + dependency: "direct main" + description: + name: installed_apps + sha256: dd2b7c531f91114cd6df447c56567593c9799ca83f057137ae719324ae0afd06 + url: "https://pub.dev" + source: hosted + version: "1.6.0" intl: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index ff568c44e..4cc3165e4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -49,6 +49,7 @@ dependencies: animations: ^2.1.1 flutter_app_installer: ^2.0.0 android_package_manager: ^0.7.1 + installed_apps: ^1.0.0 share_plus: ^13.1.0 sqflite: ^2.4.2 simple_localization: From f08cb8d023ae3d26b2f7804c2e10c21a155838ad Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 May 2026 12:24:56 +0000 Subject: [PATCH 17/17] Update dependency installed_apps to v2 --- pubspec.lock | 4 ++-- pubspec.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index da02ddb2a..7e433e77e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -578,10 +578,10 @@ packages: dependency: "direct main" description: name: installed_apps - sha256: dd2b7c531f91114cd6df447c56567593c9799ca83f057137ae719324ae0afd06 + sha256: "62b9cb196e2b34558ef0586024251e5dcc5a08199ea0c55c708f0ecc53116341" url: "https://pub.dev" source: hosted - version: "1.6.0" + version: "2.1.1" intl: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 4cc3165e4..2368d09d6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -49,7 +49,7 @@ dependencies: animations: ^2.1.1 flutter_app_installer: ^2.0.0 android_package_manager: ^0.7.1 - installed_apps: ^1.0.0 + installed_apps: ^2.0.0 share_plus: ^13.1.0 sqflite: ^2.4.2 simple_localization: