From 378c226e4a59cd916069b575d85e8ef7d17fd703 Mon Sep 17 00:00:00 2001 From: DeathsGun Date: Mon, 23 Aug 2021 21:43:57 +0200 Subject: [PATCH] Hide updatable mods section when there are no updates Closes #10 Signed-off-by: DeathsGun --- .../modmanager/gui/widget/CategoryListWidget.java | 10 ++++++---- .../modmanager/services/UpdateCheckService.java | 5 +++++ .../xyz/deathsgun/modmanager/tasks/ModUpdateTask.java | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/xyz/deathsgun/modmanager/gui/widget/CategoryListWidget.java b/src/main/java/xyz/deathsgun/modmanager/gui/widget/CategoryListWidget.java index eb38f32..7174de8 100644 --- a/src/main/java/xyz/deathsgun/modmanager/gui/widget/CategoryListWidget.java +++ b/src/main/java/xyz/deathsgun/modmanager/gui/widget/CategoryListWidget.java @@ -40,10 +40,12 @@ public CategoryListWidget(MinecraftClient client, int width, int height, int top public void init() { try { this.categories = new ArrayList<>(); - this.addEntry(new CategoryListEntry(this, new Category( - "updatable", - new TranslatableText("modmanager.categories.updatable") - ))); + if (ModManager.getUpdateChecker().updatesAvailable()) { + this.addEntry(new CategoryListEntry(this, new Category( + "updatable", + new TranslatableText("modmanager.categories.updatable") + ))); + } ModManager.getModProvider().getCategories().forEach(category -> this.addEntry(new CategoryListEntry(this, category))); if (parent.getEntry(this) != null) { setSelected(parent.getEntry(this)); diff --git a/src/main/java/xyz/deathsgun/modmanager/services/UpdateCheckService.java b/src/main/java/xyz/deathsgun/modmanager/services/UpdateCheckService.java index bfa2402..1fc455b 100644 --- a/src/main/java/xyz/deathsgun/modmanager/services/UpdateCheckService.java +++ b/src/main/java/xyz/deathsgun/modmanager/services/UpdateCheckService.java @@ -36,6 +36,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Objects; public class UpdateCheckService extends Thread { @@ -115,6 +116,10 @@ public boolean updatesAvailable() { return !this.updates.isEmpty(); } + public void removeUpdate(String modId) { + this.updates.removeIf(update -> Objects.equals(update.modId, modId)); + } + @Nullable public ModVersion getUpdate(SummarizedMod mod) { for (AvailableUpdates update : this.updates) { diff --git a/src/main/java/xyz/deathsgun/modmanager/tasks/ModUpdateTask.java b/src/main/java/xyz/deathsgun/modmanager/tasks/ModUpdateTask.java index ed64646..b8d899f 100644 --- a/src/main/java/xyz/deathsgun/modmanager/tasks/ModUpdateTask.java +++ b/src/main/java/xyz/deathsgun/modmanager/tasks/ModUpdateTask.java @@ -43,5 +43,6 @@ protected void execute() throws Exception { Files.delete(jar); InstallationUtil.downloadMod(http, InstallationUtil.getVersionForMod(subject)); ModManager.getModManipulationManager().markManuallyUpdated(subject); + ModManager.getUpdateChecker().removeUpdate(subject.id()); } }