diff --git a/app/src/main/java/com/droiddeck/launcher/stores/itch/ItchInstaller.kt b/app/src/main/java/com/droiddeck/launcher/stores/itch/ItchInstaller.kt index f084e503d..83dbd4752 100644 --- a/app/src/main/java/com/droiddeck/launcher/stores/itch/ItchInstaller.kt +++ b/app/src/main/java/com/droiddeck/launcher/stores/itch/ItchInstaller.kt @@ -216,6 +216,7 @@ internal class ItchInstaller( throw t } ItchStaging.merge(work, folder) + if (cancelled.get()) return null ItchStaging.delete(work) } return exe diff --git a/app/src/main/java/com/droiddeck/launcher/stores/itch/ItchUpdates.kt b/app/src/main/java/com/droiddeck/launcher/stores/itch/ItchUpdates.kt index 44d988704..30bcbb324 100644 --- a/app/src/main/java/com/droiddeck/launcher/stores/itch/ItchUpdates.kt +++ b/app/src/main/java/com/droiddeck/launcher/stores/itch/ItchUpdates.kt @@ -38,7 +38,7 @@ internal object ItchUpdates { val stamp = ItchUploads.updatedAt(current) return if (stamp > version) ItchUpdate(uploadId, stamp, ItchUploads.filename(current), false) else null } - val next = ItchUploads.windows(uploads) ?: return null + val next = ItchUploads.windows(uploads)?.takeIf { ItchUploads.windows(it) } ?: return null val stamp = ItchUploads.updatedAt(next) if (uploadId.isBlank() && stamp <= version) return null return ItchUpdate(next.optString("id"), stamp, ItchUploads.filename(next), uploadId.isNotBlank()) diff --git a/app/src/test/java/com/droiddeck/launcher/stores/itch/ItchUpdatesTest.kt b/app/src/test/java/com/droiddeck/launcher/stores/itch/ItchUpdatesTest.kt index 8c263173d..d8f969a8a 100644 --- a/app/src/test/java/com/droiddeck/launcher/stores/itch/ItchUpdatesTest.kt +++ b/app/src/test/java/com/droiddeck/launcher/stores/itch/ItchUpdatesTest.kt @@ -41,6 +41,12 @@ class ItchUpdatesTest { assertTrue(update.replaced) } + @Test fun aReplacedUploadWithNoWindowsBuildLeftIsNotOffered() { + val linux = list(upload("8", "2026-10-01T10:00:00Z", windows = false)) + assertNull(ItchUpdates.evaluate(linux, "7", "2026-09-01T10:00:00Z")) + assertNull(ItchUpdates.evaluate(linux, "", "2026-09-01T10:00:00Z")) + } + @Test fun anUnknownInstalledVersionNeverReportsAnUpdate() { assertNull(ItchUpdates.evaluate(list(upload("7", "2026-10-20T10:00:00Z")), "7", "")) }