diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java index 32de99aa4..83565f912 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java @@ -39,6 +39,8 @@ public abstract class ContributedPlatform extends DownloadableContribution { public abstract String getCategory(); + public abstract void setCategory(String category); + public abstract String getArchitecture(); public abstract String getChecksum(); diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java index 50e67fb38..4f1bff48c 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java @@ -97,13 +97,21 @@ public class ContributionsIndexer { } private void mergeContributions(ContributionsIndex contributionsIndex, File indexFile) { + boolean signed = isSigned(indexFile); + for (ContributedPackage contributedPackage : contributionsIndex.getPackages()) { + if (!signed) { + for (ContributedPlatform contributedPlatform : contributedPackage.getPlatforms()) { + contributedPlatform.setCategory("Contributed"); + } + } + ContributedPackage targetPackage = index.getPackage(contributedPackage.getName()); if (targetPackage == null) { index.getPackages().add(contributedPackage); } else { - if (mergeAllowed(contributedPackage, indexFile)) { + if (signed || !isPackageNameProtected(contributedPackage)) { List platforms = contributedPackage.getPlatforms(); if (platforms == null) { platforms = new LinkedList(); @@ -131,8 +139,8 @@ public class ContributionsIndexer { } } - private boolean mergeAllowed(ContributedPackage contributedPackage, File indexFile) { - return !Constants.PROTECTED_PACKAGE_NAMES.contains(contributedPackage.getName()) || isSigned(indexFile); + private boolean isPackageNameProtected(ContributedPackage contributedPackage) { + return Constants.PROTECTED_PACKAGE_NAMES.contains(contributedPackage.getName()); } private boolean isSigned(File indexFile) {