From b2f8b9b6c16d9ab3eeca25ba8082128a08b47ef7 Mon Sep 17 00:00:00 2001 From: Chris--A Date: Tue, 12 May 2015 16:51:52 +1000 Subject: [PATCH] IDE: prevent multiple bad name notifications. This patch will prevent the IDE from informing the user about a bad sketch folder name multiple times. Now the user is informed once at start up only, or once when it is detected during a rescan of the folders. --- .../contributions/libraries/LibrariesIndexer.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java b/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java index 4b22c40f6..6ac33e065 100644 --- a/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java +++ b/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java @@ -51,6 +51,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.List; +import java.util.ArrayList; import static processing.app.I18n._; @@ -64,6 +65,8 @@ public class LibrariesIndexer { private final File indexFile; private final File stagingFolder; private File sketchbookLibrariesFolder; + + private static final List badLibNotified = new ArrayList(); public LibrariesIndexer(File preferencesFolder, ContributionsIndexer contributionsIndexer) { this.contributionsIndexer = contributionsIndexer; @@ -135,11 +138,18 @@ public class LibrariesIndexer { for (File subfolder : list) { if (!BaseNoGui.isSanitaryName(subfolder.getName())) { - String mess = I18n.format(_("The library \"{0}\" cannot be used.\n" + + // Detect whether the current folder name has already had a notification. + if(!badLibNotified.contains(subfolder.getName())) { + + badLibNotified.add(subfolder.getName()); + + String mess = I18n.format(_("The library \"{0}\" cannot be used.\n" + "Library names must contain only basic letters and numbers.\n" + "(ASCII only and no spaces, and it cannot start with a number)"), subfolder.getName()); - BaseNoGui.showMessage(_("Ignoring bad library name"), mess); + BaseNoGui.showMessage(_("Ignoring bad library name"), mess); + } continue; }