Ensure extension installer's download IDs are non-negative (#1648)

This commit is contained in:
Cuong-Tran 2026-05-15 15:07:15 +07:00
parent 0b285f83b1
commit dc7dd8045e

View file

@ -58,8 +58,8 @@ internal class ExtensionInstaller(
val pkgName = extension.pkgName + val pkgName = extension.pkgName +
// KMK --> // KMK -->
"_${extension.signatureHash}" "_${extension.signatureHash}"
val downloadId = pkgName.toDownloadId()
// KMK <-- // KMK <--
val downloadId = pkgName.hashCode().toLong()
cancelInstall(pkgName) cancelInstall(pkgName)
val step = MutableStateFlow(InstallStep.Pending) val step = MutableStateFlow(InstallStep.Pending)
@ -158,7 +158,7 @@ internal class ExtensionInstaller(
*/ */
fun cancelInstall(pkgName: String) { fun cancelInstall(pkgName: String) {
activeJobs.remove(pkgName)?.cancel() 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 { companion object {
const val APK_MIME = "application/vnd.android.package-archive" const val APK_MIME = "application/vnd.android.package-archive"
const val EXTRA_DOWNLOAD_ID = "ExtensionInstaller.extra.DOWNLOAD_ID" 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 <--
} }
} }