From 62882e0a4d758e0493d044f6b5671abc2c5ef6f9 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 22 Jan 2018 13:01:59 +0100 Subject: [PATCH] Fixed LibrariesIndex.getInstalled(..) method --- .../libraries/LibrariesIndex.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndex.java b/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndex.java index ca94f0f68..df16db50d 100644 --- a/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndex.java +++ b/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndex.java @@ -30,6 +30,7 @@ package cc.arduino.contributions.libraries; import cc.arduino.contributions.DownloadableContributionBuiltInAtTheBottomComparator; +import cc.arduino.contributions.VersionComparator; import cc.arduino.contributions.libraries.filters.LibraryWithNamePredicate; import java.util.*; @@ -91,13 +92,14 @@ public abstract class LibrariesIndex { } public Optional getInstalled(String name) { - List installedReleases = find(name).stream().filter(l -> l.isLibraryInstalled()).collect(Collectors.toList()); - Collections.sort(installedReleases, new DownloadableContributionBuiltInAtTheBottomComparator()); - - if (installedReleases.isEmpty()) { - return Optional.empty(); - } - - return Optional.of(installedReleases.get(0)); + return find(name).stream() // + .filter(l -> l.isLibraryInstalled()) // + .reduce((x, y) -> { + if (x.isIDEBuiltIn() == y.isIDEBuiltIn()) { + return VersionComparator.max(x, y); + } else { + return x.isIDEBuiltIn() ? y : x; + } + }); } }