diff --git a/moonlight-common/src/com/limelight/nvstream/http/NvApp.java b/moonlight-common/src/com/limelight/nvstream/http/NvApp.java index 172cfec6..c5ef9952 100644 --- a/moonlight-common/src/com/limelight/nvstream/http/NvApp.java +++ b/moonlight-common/src/com/limelight/nvstream/http/NvApp.java @@ -4,6 +4,7 @@ public class NvApp { private String appName = ""; private int appId; private boolean isRunning; + private boolean initialized; public void setAppName(String appName) { this.appName = appName; @@ -11,6 +12,7 @@ public class NvApp { public void setAppId(String appId) { this.appId = Integer.parseInt(appId); + this.initialized = true; } public void setIsRunning(String isRunning) { @@ -32,4 +34,8 @@ public class NvApp { public boolean getIsRunning() { return this.isRunning; } + + public boolean isInitialized() { + return this.initialized; + } } diff --git a/moonlight-common/src/com/limelight/nvstream/http/NvHTTP.java b/moonlight-common/src/com/limelight/nvstream/http/NvHTTP.java index 34380522..442396b3 100644 --- a/moonlight-common/src/com/limelight/nvstream/http/NvHTTP.java +++ b/moonlight-common/src/com/limelight/nvstream/http/NvHTTP.java @@ -15,6 +15,7 @@ import java.security.PrivateKey; import java.security.SecureRandom; import java.security.cert.X509Certificate; import java.util.LinkedList; +import java.util.ListIterator; import java.util.Scanner; import java.util.Stack; import java.util.UUID; @@ -32,6 +33,7 @@ import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; +import com.limelight.LimeLog; import com.limelight.nvstream.ConnectionContext; import com.limelight.nvstream.http.PairingManager.PairState; import com.squareup.okhttp.OkHttpClient; @@ -341,7 +343,19 @@ public class NvHTTP { } eventType = xpp.next(); } - + + // Ensure that all apps in the list are initialized + ListIterator i = appList.listIterator(); + while (i.hasNext()) { + NvApp app = i.next(); + + // Remove uninitialized apps + if (!app.isInitialized()) { + LimeLog.warning("GFE returned incomplete app: "+app.getAppId()+" "+app.getAppName()+" "+app.getIsRunning()); + i.remove(); + } + } + return appList; }