public Boolean isConnected() { return connected && socket != null && socket.isConnected(); }
private void connect(final Boolean joinOnly, final ResponseListener<Object> connectionListener) { if (socket != null && socket.getState() == WebOSTVServiceSocketClient.State.CONNECTING) { if (connectionListener != null) { connectionListener.onError( new ServiceCommandError( 0, "You have a connection request pending, please wait until it has finished", null)); } return; } if (isConnected()) { if (connectionListener != null) connectionListener.onSuccess(null); return; } mConnectionListener = new ResponseListener<ServiceCommand<ResponseListener<Object>>>() { @Override public void onError(ServiceCommandError error) { if (socket != null) disconnectFromWebApp(); if (connectionListener != null) { if (error == null) { error = new ServiceCommandError(0, "Unknown error connecting to web app", null); } connectionListener.onError(error); } } @Override public void onSuccess(ServiceCommand<ResponseListener<Object>> object) { ResponseListener<Object> finalConnectionListener = new ResponseListener<Object>() { @Override public void onError(ServiceCommandError error) { disconnectFromWebApp(); if (connectionListener != null) connectionListener.onError(error); } @Override public void onSuccess(Object object) { connected = true; if (connectionListener != null) connectionListener.onSuccess(object); } }; service.connectToWebApp(WebOSWebAppSession.this, joinOnly, finalConnectionListener); } }; if (socket != null) { if (socket.isConnected()) mConnectionListener.onSuccess(null); else socket.connect(); } else { socket = new WebOSTVServiceSocketClient(service, WebOSTVServiceSocketClient.getURI(service)); socket.setListener(mSocketListener); socket.connect(); } }