mirror of
https://github.com/arduino/Arduino.git
synced 2025-02-20 14:54:31 +01:00
Unified method for selection of IDE_BUNDLED libraries
Libraries installed in the sketchbook have priority over the bundled.
This commit is contained in:
parent
b03a9af19a
commit
926b73b538
@ -29,14 +29,12 @@
|
||||
|
||||
package cc.arduino.contributions.libraries;
|
||||
|
||||
import cc.arduino.contributions.DownloadableContributionBuiltInAtTheBottomComparator;
|
||||
import cc.arduino.contributions.VersionComparator;
|
||||
import processing.app.packages.UserLibraryFolder.Location;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ContributedLibraryReleases {
|
||||
|
||||
@ -49,6 +47,10 @@ public class ContributedLibraryReleases {
|
||||
add(library);
|
||||
}
|
||||
|
||||
public ContributedLibraryReleases(List<ContributedLibrary> libraries) {
|
||||
libraries.forEach(this::add);
|
||||
}
|
||||
|
||||
public List<ContributedLibrary> getReleases() {
|
||||
return releases;
|
||||
}
|
||||
@ -76,12 +78,16 @@ public class ContributedLibraryReleases {
|
||||
}
|
||||
|
||||
public Optional<ContributedLibrary> getInstalled() {
|
||||
List<ContributedLibrary> installedReleases = releases.stream().filter(l -> l.isLibraryInstalled()).collect(Collectors.toList());
|
||||
if (installedReleases.isEmpty()) {
|
||||
return Optional.empty();
|
||||
}
|
||||
Collections.sort(installedReleases, new DownloadableContributionBuiltInAtTheBottomComparator());
|
||||
return Optional.of(installedReleases.get(0));
|
||||
return releases.stream() //
|
||||
.filter(ContributedLibrary::isLibraryInstalled) //
|
||||
.reduce((x, y) -> {
|
||||
Location lx = x.getInstalledLibrary().get().getLocation();
|
||||
Location ly = y.getInstalledLibrary().get().getLocation();
|
||||
if (lx == ly) {
|
||||
return VersionComparator.max(x, y);
|
||||
}
|
||||
return lx == Location.SKETCHBOOK ? x : y;
|
||||
});
|
||||
}
|
||||
|
||||
public ContributedLibrary getLatest() {
|
||||
|
@ -29,13 +29,16 @@
|
||||
|
||||
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.*;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cc.arduino.contributions.libraries.filters.LibraryWithNamePredicate;
|
||||
|
||||
public abstract class LibrariesIndex {
|
||||
|
||||
public abstract List<ContributedLibrary> getLibraries();
|
||||
@ -92,14 +95,7 @@ public abstract class LibrariesIndex {
|
||||
}
|
||||
|
||||
public Optional<ContributedLibrary> getInstalled(String name) {
|
||||
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;
|
||||
}
|
||||
});
|
||||
ContributedLibraryReleases rel = new ContributedLibraryReleases(find(name));
|
||||
return rel.getInstalled();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user