From 2165ecaa07cb2906d4a57155968b21ecfe60fb62 Mon Sep 17 00:00:00 2001 From: Federico Fissore Date: Fri, 28 Jun 2013 15:28:32 +0200 Subject: [PATCH] Avoiding duplicate boards in port menu --- .../packages/discoverers/NetworkDiscovery.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/src/cc/arduino/packages/discoverers/NetworkDiscovery.java b/app/src/cc/arduino/packages/discoverers/NetworkDiscovery.java index 039e959e2..971395957 100644 --- a/app/src/cc/arduino/packages/discoverers/NetworkDiscovery.java +++ b/app/src/cc/arduino/packages/discoverers/NetworkDiscovery.java @@ -120,11 +120,23 @@ public class NetworkDiscovery implements Discovery, ServiceListener, cc.arduino. port.setProtocol("network"); port.setPrefs(prefs); port.setLabel(label); + synchronized (this) { + removeDuplicateBoards(port); ports.add(port); } } + private void removeDuplicateBoards(BoardPort newBoard) { + Iterator iterator = ports.iterator(); + while (iterator.hasNext()) { + BoardPort board = iterator.next(); + if (newBoard.getAddress().equals(board.getAddress()) && newBoard.getBoardName().equals(board.getBoardName())) { + iterator.remove(); + } + } + } + @Override public void inetAddressAdded(InetAddress address) { if (mappedJmDNSs.containsKey(address)) {