From 825233309d8089d0ce59543a8bf5369818156017 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 4 Jul 2014 15:11:31 -0700 Subject: [PATCH] Remove init hack in DiscoveryService --- libs/limelight-common.jar | Bin 408696 -> 408610 bytes .../limelight/discovery/DiscoveryService.java | 65 ++++++------------ 2 files changed, 20 insertions(+), 45 deletions(-) diff --git a/libs/limelight-common.jar b/libs/limelight-common.jar index 1e437dcc39f1ddaea10f0024b446b918beeae0fa..405a6b9f700cc310bab99f0a1f19e13bf09c2b17 100644 GIT binary patch delta 3919 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 W+=v|bZ&3ZK=L;qwsk*9?ko*s0#wor4 delta 4018 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 diff --git a/src/com/limelight/discovery/DiscoveryService.java b/src/com/limelight/discovery/DiscoveryService.java index 108cf8e2..8bf9cb3a 100644 --- a/src/com/limelight/discovery/DiscoveryService.java +++ b/src/com/limelight/discovery/DiscoveryService.java @@ -1,6 +1,5 @@ package com.limelight.discovery; -import java.io.IOException; import java.util.List; import com.limelight.nvstream.mdns.MdnsComputer; @@ -47,59 +46,35 @@ public class DiscoveryService extends Service { multicastLock = wifiMgr.createMulticastLock("Limelight mDNS"); multicastLock.setReferenceCounted(false); - // This pattern is nasty. We have to do it - // because we can't do network on the main thread - // even if it's non-blocking - Thread initThread = new Thread() { + discoveryAgent = new MdnsDiscoveryAgent(new MdnsDiscoveryListener() { @Override - public void run() { - try { - discoveryAgent = MdnsDiscoveryAgent.createDiscoveryAgent(new MdnsDiscoveryListener() { - @Override - public void notifyComputerAdded(MdnsComputer computer) { - if (boundListener != null) { - boundListener.notifyComputerAdded(computer); - } - } - - @Override - public void notifyComputerRemoved(MdnsComputer computer) { - if (boundListener != null) { - boundListener.notifyComputerRemoved(computer); - } - } - - @Override - public void notifyDiscoveryFailure(Exception e) { - if (boundListener != null) { - boundListener.notifyDiscoveryFailure(e); - } - } - }); - } catch (IOException e) { - e.printStackTrace(); - discoveryAgent = null; + public void notifyComputerAdded(MdnsComputer computer) { + if (boundListener != null) { + boundListener.notifyComputerAdded(computer); } } - }; - initThread.start(); - try { - initThread.join(); - } catch (InterruptedException e) { - discoveryAgent = null; - } + + @Override + public void notifyComputerRemoved(MdnsComputer computer) { + if (boundListener != null) { + boundListener.notifyComputerRemoved(computer); + } + } + + @Override + public void notifyDiscoveryFailure(Exception e) { + if (boundListener != null) { + boundListener.notifyDiscoveryFailure(e); + } + } + }); } private DiscoveryBinder binder = new DiscoveryBinder(); @Override public IBinder onBind(Intent intent) { - // We should only be bindable if discovery can happen - if (discoveryAgent != null) { - return binder; - } - - return null; + return binder; } @Override