From 215b079bc97d45823c6e3a29b661a38c39901b89 Mon Sep 17 00:00:00 2001
From: tobias <tobias@thecodedev.de>
Date: Sun, 29 Sep 2019 20:52:34 +0200
Subject: [PATCH] Fixed update items: Filter remote versions that are newer
 then local version

---
 .../option/global/UpdateTabViewController.java       | 12 +++++++++++-
 .../playpad/initialize/VersionizerSetupTask.scala    |  1 +
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/global/UpdateTabViewController.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/global/UpdateTabViewController.java
index f3ebf8e5..fd2bb3bc 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/global/UpdateTabViewController.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/global/UpdateTabViewController.java
@@ -5,8 +5,10 @@ import de.thecodelabs.utils.application.ApplicationInfo;
 import de.thecodelabs.utils.application.ApplicationUtils;
 import de.thecodelabs.utils.threading.Worker;
 import de.thecodelabs.utils.util.Localization;
+import de.thecodelabs.versionizer.config.Artifact;
 import de.thecodelabs.versionizer.model.Version;
 import de.thecodelabs.versionizer.service.UpdateService;
+import de.thecodelabs.versionizer.service.VersionTokenizer;
 import de.tobias.playpad.PlayPad;
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.Strings;
@@ -22,6 +24,8 @@ import javafx.fxml.FXML;
 import javafx.scene.control.*;
 
 import java.io.IOException;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 public class UpdateTabViewController extends GlobalSettingsTabViewController {
 
@@ -99,10 +103,16 @@ public class UpdateTabViewController extends GlobalSettingsTabViewController {
 				// Search for updates
 				updateService.fetchCurrentVersion();
 
+				// Filter remote versions that are newer then local version
+				final Map<Artifact, Version> remoteVersions = updateService.getRemoteVersions();
+				final Map<Artifact, Version> availableUpdates = remoteVersions.entrySet().stream()
+						.filter(entry -> entry.getValue().isNewerThen(VersionTokenizer.getVersion(entry.getKey())))
+						.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+
 				Platform.runLater(() ->
 				{
 					openUpdateList.setPlaceholder(placeholderLabel);
-					openUpdateList.getItems().setAll(updateService.getRemoteVersions().values());
+					openUpdateList.getItems().setAll(availableUpdates.values());
 					updateButton.setDisable(openUpdateList.getItems().isEmpty());
 				});
 			});
diff --git a/PlayWall/src/main/scala/de/tobias/playpad/initialize/VersionizerSetupTask.scala b/PlayWall/src/main/scala/de/tobias/playpad/initialize/VersionizerSetupTask.scala
index ff860996..3c78ccb9 100644
--- a/PlayWall/src/main/scala/de/tobias/playpad/initialize/VersionizerSetupTask.scala
+++ b/PlayWall/src/main/scala/de/tobias/playpad/initialize/VersionizerSetupTask.scala
@@ -18,6 +18,7 @@ class VersionizerSetupTask extends PlayPadInitializeTask {
 
 		val versionizerItem = new VersionizerItem(repository, SystemUtils.getRunPath.toString)
 		val updateService = UpdateService.startVersionizer(versionizerItem, UpdateService.Strategy.JAR, UpdateService.InteractionType.GUI)
+
 		updateService.addArtifact(artifact, SystemUtils.getRunPath)
 		updateService.setRepositoryType(globalSettings.getUpdateChannel)
 		instance.setUpdateService(updateService)
-- 
GitLab