From dc7dd8045e31cb97dc6b66b98ee3e78e6442f56d Mon Sep 17 00:00:00 2001 From: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com> Date: Fri, 15 May 2026 15:07:15 +0700 Subject: [PATCH] Ensure extension installer's download IDs are non-negative (#1648) --- .../tachiyomi/extension/util/ExtensionInstaller.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt index 15b1af052..2995ae1de 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt @@ -58,8 +58,8 @@ internal class ExtensionInstaller( val pkgName = extension.pkgName + // KMK --> "_${extension.signatureHash}" + val downloadId = pkgName.toDownloadId() // KMK <-- - val downloadId = pkgName.hashCode().toLong() cancelInstall(pkgName) val step = MutableStateFlow(InstallStep.Pending) @@ -158,7 +158,7 @@ internal class ExtensionInstaller( */ fun cancelInstall(pkgName: String) { activeJobs.remove(pkgName)?.cancel() - Installer.cancelInstallQueue(context, pkgName.hashCode().toLong()) + Installer.cancelInstallQueue(context, /* KMK --> */ pkgName.toDownloadId() /* KMK <-- */) } /** @@ -191,5 +191,10 @@ internal class ExtensionInstaller( companion object { const val APK_MIME = "application/vnd.android.package-archive" const val EXTRA_DOWNLOAD_ID = "ExtensionInstaller.extra.DOWNLOAD_ID" + + // KMK --> + /** Convert packageName to download ID avoiding negative number */ + private fun String.toDownloadId(): Long = hashCode().toLong() and 0xFFFFFFFFL + // KMK <-- } }