diff options
Diffstat (limited to 'Software/Android_Studio')
6 files changed, 83 insertions, 274 deletions
diff --git a/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/ExternalBridgeService.java b/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/ExternalBridgeService.java index 99e2293ae..4788a8082 100644 --- a/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/ExternalBridgeService.java +++ b/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/ExternalBridgeService.java @@ -5,8 +5,6 @@ import android.net.DhcpInfo; import android.net.wifi.WifiManager; import android.os.StrictMode; import android.os.SystemClock; -import android.provider.SyncStateContract.Constants; -import android.util.Log; import com.elvishew.xlog.XLog; import com.google.protobuf.GeneratedMessageV3; @@ -21,7 +19,6 @@ import com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType; import com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket; import com.twine.tango.pmr.integration.ExternalClientLoginRequestOuterClass.ExternalClientLoginRequest; import com.twine.tango.pmr.integration.ExternalClientLoginResponseOuterClass.ExternalClientLoginResponse; -import com.twine.tango.transport.ITransportAdapter; import com.twine.tango.transport.ResponseErrorException; import com.twine.tango.transport.adapters.TcpTransportAdapter; import com.twine.tango.transport.transporters.ProtoTransporter; @@ -170,14 +167,13 @@ public class ExternalBridgeService extends ProtoTransporter implements IExternal if (newSocket != null) { - for (ITransportAdapter adapter : getAdapters()) + if (getAdapter() != null) { - adapter.disconnect().blockingAwait(); + getAdapter().disconnect().blockingAwait(); } - getAdapters().clear(); TcpTransportAdapter adapter = new TcpTransportAdapter(newSocket); adapter.setAuthenticated(false); - getAdapters().add(adapter); + setAdapter(adapter); connect().blockingAwait(); } @@ -205,7 +201,7 @@ public class ExternalBridgeService extends ProtoTransporter implements IExternal ExternalClientLoginRequest request = MessageFactory.parseMessageFromContainer(container); if (request.getPassword().equals("Aa123456")) //TODO: Compare with global machine settings password... { - getAdapters().get(0).setAuthenticated(true); + getAdapter().setAuthenticated(true); sendResponse(MessageFactory.createTangoMessage( ExternalClientLoginResponse.class, ExternalClientLoginResponse.newBuilder().setAuthenticated(true).build(), @@ -213,7 +209,7 @@ public class ExternalBridgeService extends ProtoTransporter implements IExternal } else { - getAdapters().get(0).setAuthenticated(false); + getAdapter().setAuthenticated(false); sendResponse(MessageFactory.createTangoMessage( ExternalClientLoginResponse.class, ExternalClientLoginResponse.newBuilder().setAuthenticated(false).build(), @@ -223,7 +219,7 @@ public class ExternalBridgeService extends ProtoTransporter implements IExternal return; } - if (getAdapters().get(0).isAuthenticated()) + if (getAdapter().isAuthenticated()) { GeneratedMessageV3 message = MessageFactory.parseMessageFromContainerAgnostic(container); diff --git a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/ITransporter.java b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/ITransporter.java index 82328ef18..5531f69c9 100644 --- a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/ITransporter.java +++ b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/ITransporter.java @@ -20,32 +20,28 @@ public interface ITransporter extends ITransportComponent { /** - * Gets the collection of adapters. + * Gets the adapter. * - * @return the adapters + * @return the adapter */ - ObservableCollection<ITransportAdapter> getAdapters(); + ITransportAdapter getAdapter(); /** - * Send a request to all adapters. + * Sets the adapter. * - * @param <Request> the type parameter - * @param <Response> the type parameter - * @param request the request - * @return the single + * @param adapter the adapter */ - <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Single<TangoMessage<Response>> sendRequest(TangoMessage<Request> request); + void setAdapter(ITransportAdapter adapter); /** - * Sends a request on the specified adapter. + * Send a request to all adapters. * * @param <Request> the type parameter * @param <Response> the type parameter * @param request the request - * @param adapter the adapter * @return the single */ - <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Single<TangoMessage<Response>> sendRequest(TangoMessage<Request> request, ITransportAdapter adapter); + <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Single<TangoMessage<Response>> sendRequest(TangoMessage<Request> request); /** * Send a request to all adapters. @@ -59,18 +55,6 @@ public interface ITransporter extends ITransportComponent <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Single<TangoMessage<Response>> sendRequest(TangoMessage<Request> request, Period timeout); /** - * Sends a request on the specified adapter. - * - * @param <Request> the type parameter - * @param <Response> the type parameter - * @param request the request - * @param adapter the adapter - * @param timeout the timeout - * @return the single - */ - <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Single<TangoMessage<Response>> sendRequest(TangoMessage<Request> request, ITransportAdapter adapter, Period timeout); - - /** * Sends a continuous request on all adapters. * * @param <Request> the type parameter @@ -81,17 +65,6 @@ public interface ITransporter extends ITransportComponent <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Observable<TangoMessage<Response>> sendContinuousRequest(TangoMessage<Request> request); /** - * Sends a continuous request on the specified adapter. - * - * @param <Request> the type parameter - * @param <Response> the type parameter - * @param request the request - * @param adapter the adapter - * @return the observable - */ - <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Observable<TangoMessage<Response>> sendContinuousRequest(TangoMessage<Request> request, ITransportAdapter adapter); - - /** * Sends a response. * * @param <Response> the type parameter @@ -158,19 +131,4 @@ public interface ITransporter extends ITransportComponent * @return the fails with adapter */ boolean getFailsWithAdapter(); - - /** - * Sets a value indicating whether the transporter should remove an adapter when it fails. - * - * @param value the value - */ - void setRemoveAdaptersOnFailed(boolean value); - - /** - * Gets a value indicating whether the transporter should remove an adapter when it fails. - * - * @return the remove adapters on fail - */ - boolean getRemoveAdaptersOnFail(); - } diff --git a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/PendingResponse.java b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/PendingResponse.java index bb4f2505a..91106aba0 100644 --- a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/PendingResponse.java +++ b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/PendingResponse.java @@ -4,30 +4,10 @@ package com.twine.tango.transport; /** * Represents a pending response waiting to be returned to the request sender. */ -public class PendingResponse { - - private ITransportAdapter adapter; - private boolean isContinuous; - - /** - * Gets adapter. - * - * @return the adapter - */ - public ITransportAdapter getAdapter() - { - return adapter; - } +public class PendingResponse +{ - /** - * Sets adapter. - * - * @param adapter the adapter - */ - public void setAdapter(ITransportAdapter adapter) - { - this.adapter = adapter; - } + private boolean isContinuous; /** * Is continuous boolean. @@ -55,9 +35,8 @@ public class PendingResponse { * @param adapter the adapter * @param isContinuous is continuous */ - public PendingResponse(ITransportAdapter adapter, boolean isContinuous) + public PendingResponse(boolean isContinuous) { - this.adapter = adapter; this.isContinuous = isContinuous; } } diff --git a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessage.java b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessage.java index 2acf2da85..a787d62ff 100644 --- a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessage.java +++ b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessage.java @@ -25,9 +25,9 @@ public class TransportMessage<T> extends TransportMessageBase * @param serialize the serialize * @param publishSubject the publish subject */ - public TransportMessage(ITransportAdapter adapter, String token, Object message, TransportMessageDirection direction, Func<byte[]> serialize, PublishSubject<T> publishSubject) + public TransportMessage(String token, Object message, TransportMessageDirection direction, Func<byte[]> serialize, PublishSubject<T> publishSubject) { - super(adapter, token, message, direction, serialize); + super(token, message, direction, serialize); this.publishSubject = publishSubject; } diff --git a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessageBase.java b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessageBase.java index 718a1c66b..49d2fd31a 100644 --- a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessageBase.java +++ b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessageBase.java @@ -8,8 +8,6 @@ import com.twine.tango.core.Func; */ public abstract class TransportMessageBase { - - private ITransportAdapter adapter; private boolean isContinuous; private String token; private TransportMessageDirection direction; @@ -32,26 +30,6 @@ public abstract class TransportMessageBase protected abstract void setException(Exception error); /** - * Gets adapter. - * - * @return the adapter - */ - public ITransportAdapter getAdapter() - { - return adapter; - } - - /** - * Sets adapter. - * - * @param adapter the adapter - */ - public void setAdapter(ITransportAdapter adapter) - { - this.adapter = adapter; - } - - /** * Is continuous boolean. * * @return the boolean @@ -160,9 +138,8 @@ public abstract class TransportMessageBase * @param direction the direction * @param serialize the serialize */ - public TransportMessageBase(ITransportAdapter adapter, String token, Object message, TransportMessageDirection direction, Func<byte[]> serialize) + public TransportMessageBase(String token, Object message, TransportMessageDirection direction, Func<byte[]> serialize) { - this.adapter = adapter; this.token = token; this.direction = direction; this.serialize = serialize; diff --git a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransporterBase.java b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransporterBase.java index 92ecf1220..8901b4c20 100644 --- a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransporterBase.java +++ b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransporterBase.java @@ -2,16 +2,14 @@ package com.twine.tango.transport; import android.os.AsyncTask; import android.os.SystemClock; -import android.util.Pair; import com.elvishew.xlog.XLog; import com.google.protobuf.GeneratedMessageV3; import com.google.protobuf.InvalidProtocolBufferException; import com.twine.tango.core.Event; -import com.twine.tango.core.IEventHandler; import com.twine.tango.core.Func; +import com.twine.tango.core.IEventHandler; import com.twine.tango.core.ObjectDisposedException; -import com.twine.tango.core.ObservableCollection; import com.twine.tango.pmr.MessageFactory; import com.twine.tango.pmr.TangoMessage; import com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode; @@ -47,17 +45,16 @@ public abstract class TransporterBase implements ITransporter private ConcurrentLinkedQueue<TransportMessageBase> sendingQueue; private List<TransportMessageBase> pendingRequests; - private ConcurrentLinkedQueue<Pair<ITransportAdapter, byte[]>> arrivedResponses; + private ConcurrentLinkedQueue<byte[]> arrivedResponses; private Thread pushThread; private Thread pullThread; private Thread keepAliveThread; - private ObservableCollection<ITransportAdapter> adapters; + private ITransportAdapter adapter; private Map<String, PendingResponse> pendingResponses; private TransportComponentState state; private Period requestTimeout; private boolean useKeepAlive; private boolean failsWithAdapter; - private boolean removeAdaptersOnFailed; //region Events @@ -69,29 +66,30 @@ public abstract class TransporterBase implements ITransporter //region Properties @Override - public ObservableCollection<ITransportAdapter> getAdapters() + public ITransportAdapter getAdapter() { - return adapters; + return adapter; } - /** - * Sets adapters. - * - * @param adapters the adapters - */ - protected void setAdapters(ObservableCollection<ITransportAdapter> adapters) + @Override + public void setAdapter(ITransportAdapter adapter) { + this.adapter = adapter; - if (this.adapters != null) - { - adapters.clearOnChangeListener(); - } - - this.adapters = adapters; + XLog.i("Adapter changed:"); - if (this.adapters != null) + if (this.adapter != null) { - adapters.setOnChangeListener(this::onAdaptersChanged); + XLog.i(adapter.getClass().getName() + ", " + adapter.getAddress() + ", " + adapter.getState()); + + adapter.removeStateChangedListener(this::onAdapterStateChanged); + adapter.addStateChangedListener(this::onAdapterStateChanged); + adapter.setDataAvailableListener(this::onAdapterDataAvailable); + + if (this.getState() == TransportComponentState.Connected && adapter.getState() == TransportComponentState.Disconnected) + { + adapter.connect().subscribe(); + } } } @@ -148,63 +146,21 @@ public abstract class TransporterBase implements ITransporter return failsWithAdapter; } - @Override - public void setRemoveAdaptersOnFailed(boolean value) - { - removeAdaptersOnFailed = value; - } - - @Override - public boolean getRemoveAdaptersOnFail() - { - return removeAdaptersOnFailed; - } - //endregion //region Protected Methods - /** - * On adapters changed. - */ - protected void onAdaptersChanged() - { - - XLog.i("Adapters collection changed, Listing adapters:"); - - for (ITransportAdapter adapter : adapters) - { - - XLog.i(adapter.getClass().getName() + ", " + adapter.getAddress() + ", " + adapter.getState()); - - adapter.removeStateChangedListener(this::onAdapterStateChanged); - adapter.addStateChangedListener(this::onAdapterStateChanged); - adapter.setDataAvailableListener(this::onAdapterDataAvailable); - - if (this.getState() == TransportComponentState.Connected && adapter.getState() == TransportComponentState.Disconnected) - { - adapter.connect().subscribe(); - } - } - } - private void onAdapterDataAvailable(Object sender, byte[] data) { - arrivedResponses.add(new Pair<>((ITransportAdapter) sender, data)); + arrivedResponses.add(data); } private void onAdapterStateChanged(Object sender, TransportComponentState state) { - - if (state == TransportComponentState.Failed && removeAdaptersOnFailed) - { - adapters.remove((ITransportAdapter) sender); - } - if (state == TransportComponentState.Failed && failsWithAdapter) { - onFailed(new ObjectDisposedException("One of the transporter adapters has failed. Going into a failed state...")); + onFailed(new ObjectDisposedException("The adapter has failed. Going into a failed state...")); } } @@ -303,7 +259,6 @@ public abstract class TransporterBase implements ITransporter public TransporterBase() { stateChangedEvent = new Event<>(); - setAdapters(new ObservableCollection<>()); pendingResponses = new HashMap<>(); sendingQueue = new ConcurrentLinkedQueue<>(); pendingRequests = new ArrayList<>(); @@ -319,7 +274,7 @@ public abstract class TransporterBase implements ITransporter public TransporterBase(ITransportAdapter adapter) { this(); - adapters.add(adapter); + this.adapter = adapter; } //endregion @@ -353,12 +308,7 @@ public abstract class TransporterBase implements ITransporter { throwIfDisposed(); - if (adapters.size() == 0) - { - throw new IllegalArgumentException("This transporter has zero adapters."); - } - - for (ITransportAdapter adapter : adapters) + if (adapter != null) { adapter.connect().blockingAwait(); } @@ -368,8 +318,7 @@ public abstract class TransporterBase implements ITransporter XLog.i("Transporter connected..."); x.onComplete(); - } - catch (Exception e) + } catch (Exception e) { XLog.e("Error connecting transporter", e); x.onError(e); @@ -386,7 +335,7 @@ public abstract class TransporterBase implements ITransporter { throwIfDisposed(); - for (ITransportAdapter adapter : adapters) + if (adapter != null) { adapter.disconnect().blockingAwait(); } @@ -396,8 +345,7 @@ public abstract class TransporterBase implements ITransporter XLog.i("Transporter disconnected..."); x.onComplete(); - } - catch (Exception e) + } catch (Exception e) { x.onError(e); } @@ -408,29 +356,17 @@ public abstract class TransporterBase implements ITransporter @Override public <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Single<TangoMessage<Response>> sendRequest(TangoMessage<Request> request) { - return sendRequest(request, null, getRequestTimeout()); - } - - @Override - public <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Single<TangoMessage<Response>> sendRequest(TangoMessage<Request> request, ITransportAdapter adapter) - { - return sendRequest(request, adapter, getRequestTimeout()); + return sendRequest(request, getRequestTimeout()); } @Override public <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Single<TangoMessage<Response>> sendRequest(TangoMessage<Request> request, Period timeout) { - return sendRequest(request, null, timeout); - } - - @Override - public <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Single<TangoMessage<Response>> sendRequest(TangoMessage<Request> request, ITransportAdapter adapter, Period timeout) - { - XLog.i("Queuing request message: " + request.getClass().getSimpleName() + " Token: " + request.getContainer().getToken() + " on adapter: " + (adapter != null ? adapter.getAddress() : "ALL")); + XLog.i("Queuing request message: " + request.getContainer().getType() + " Token: " + request.getContainer().getToken()); XLog.i("Expected response: " + Response.Builder.class.getSimpleName()); PublishSubject<TangoMessage<Response>> subject = PublishSubject.create(); - TransportMessage<TangoMessage<Response>> message = new TransportMessage<>(adapter, request.getContainer().getToken(), request, TransportMessageDirection.Request, onSerializingMessage(request), subject); + TransportMessage<TangoMessage<Response>> message = new TransportMessage<>(request.getContainer().getToken(), request, TransportMessageDirection.Request, onSerializingMessage(request), subject); sendingQueue.add(message); Completable.timer(getRequestTimeout().getSeconds(), TimeUnit.SECONDS) @@ -451,20 +387,14 @@ public abstract class TransporterBase implements ITransporter @Override public <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Observable<TangoMessage<Response>> sendContinuousRequest(TangoMessage<Request> request) { - return sendContinuousRequest(request, null); - } - - @Override - public <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Observable<TangoMessage<Response>> sendContinuousRequest(TangoMessage<Request> request, ITransportAdapter adapter) - { - XLog.i("Queuing continuous response request message: " + request.getClass().getSimpleName() + " Token: " + request.getContainer().getToken() + " on adapter: " + (adapter != null ? adapter.getAddress() : "ALL")); + XLog.i("Queuing continuous response request message: " + request.getContainer().getType() + " Token: " + request.getContainer().getToken()); XLog.i("Expected response: " + Response.Builder.class.getSimpleName()); request.getContainer().setContinuous(true); request.getContainer().setCompleted(false); PublishSubject<TangoMessage<Response>> subject = PublishSubject.create(); - TransportMessage<TangoMessage<Response>> message = new TransportMessage<>(adapter, request.getContainer().getToken(), request, TransportMessageDirection.Request, onSerializingMessage(request), subject); + TransportMessage<TangoMessage<Response>> message = new TransportMessage<>(request.getContainer().getToken(), request, TransportMessageDirection.Request, onSerializingMessage(request), subject); message.setContinuous(true); sendingQueue.add(message); @@ -486,7 +416,6 @@ public abstract class TransporterBase implements ITransporter XLog.i("Queuing response message: " + response.getClass().getSimpleName()); PendingResponse pendingResponse = null; - ITransportAdapter adapter = null; XLog.i("Searching for matching request token: " + token); @@ -494,21 +423,18 @@ public abstract class TransporterBase implements ITransporter if (pendingResponse != null) { - adapter = pendingResponse.getAdapter(); XLog.i("Found matching request token: " + token + " on adapter: " + adapter.getAddress()); if (!pendingResponse.isContinuous()) { XLog.i("Removing matching request token..."); pendingResponses.remove(token); - } - else if (response.getContainer().getCompleted()) + } else if (response.getContainer().getCompleted()) { XLog.i("Response completed. Removing matching request token..."); pendingResponses.remove(token); } - } - else + } else { //This should never happen. XLog.w("Matching request token was not found..."); @@ -516,7 +442,7 @@ public abstract class TransporterBase implements ITransporter } PublishSubject<Response> subject = PublishSubject.create(); - TransportMessage<Response> message = new TransportMessage<>(adapter, token, response, TransportMessageDirection.Response, onSerializingMessage(response), subject); + TransportMessage<Response> message = new TransportMessage<>(token, response, TransportMessageDirection.Response, onSerializingMessage(response), subject); sendingQueue.add(message); return subject.singleOrError().toCompletable(); @@ -571,7 +497,7 @@ public abstract class TransporterBase implements ITransporter while (getState() == TransportComponentState.Connected) { - if (sendingQueue.size() > 0) + if (adapter != null && sendingQueue.size() > 0) { TransportMessageBase message = null; message = sendingQueue.poll(); @@ -580,36 +506,20 @@ public abstract class TransporterBase implements ITransporter { try { - if (message.getAdapter() == null) + if (adapter.getState() == TransportComponentState.Connected) { - for (ITransportAdapter adapter : adapters) - { - if (adapter.getState() == TransportComponentState.Connected) - { - adapter.write(message.getSerialize().invoke()); - XLog.i("message sent on adapter: " + adapter.getAddress() + "..."); - } - } - } - else - { - if (message.getAdapter().getState() == TransportComponentState.Connected) - { - message.getAdapter().write(message.getSerialize().invoke()); - XLog.i("message sent on adapter: " + message.getAdapter().getAddress() + "..."); - } + adapter.write(message.getSerialize().invoke()); + XLog.i("message sent on adapter: " + adapter.getAddress() + "..."); } if (message.getDirection() == TransportMessageDirection.Request) { pendingRequests.add(message); - } - else + } else { message.setResult(new Object(), true); } - } - catch (Exception ex) + } catch (Exception ex) { message.setException(ex); } @@ -619,8 +529,7 @@ public abstract class TransporterBase implements ITransporter SystemClock.sleep(10); } - } - catch (Exception ex) + } catch (Exception ex) { onFailed(ex); } @@ -640,24 +549,23 @@ public abstract class TransporterBase implements ITransporter while (getState() == TransportComponentState.Connected) { - Pair<ITransportAdapter, byte[]> data; + byte[] data; - if (arrivedResponses.size() > 0) + if (adapter != null && arrivedResponses.size() > 0) { data = arrivedResponses.poll(); if (data != null) { - XLog.i("Message received on adapter: " + data.first.getAddress()); + XLog.i("Message received on adapter: " + adapter.getAddress()); XLog.i("Parsing message container..."); MessageContainer container; try { - container = onParseContainer(data.second); - } - catch (Exception e) + container = onParseContainer(data); + } catch (Exception e) { XLog.e("Invalid message container received!", e); continue; @@ -681,21 +589,18 @@ public abstract class TransporterBase implements ITransporter if (container.getError() == ErrorCode.NONE) { XLog.i("Response has returned with error: " + container.getError().toString()); - request.setResult(onParseTangoMessage(data.second), true); - } - else + request.setResult(onParseTangoMessage(data), true); + } else { XLog.i("Parsing inner response message and setting pending request task result..."); - request.setException(new ResponseErrorException(container.getError(), onParseTangoMessage(data.second))); + request.setException(new ResponseErrorException(container.getError(), onParseTangoMessage(data))); } - } - catch (Exception ex) + } catch (Exception ex) { XLog.e("Error parsing inner message", ex); request.setException(ex); } - } - else + } else { XLog.i("Pending request was identified as 'continuous response'. keeping pending request."); @@ -708,29 +613,26 @@ public abstract class TransporterBase implements ITransporter { XLog.i("Continuous sequence completed."); } - request.setResult(onParseTangoMessage(data.second), container.getCompleted()); - } - else + request.setResult(onParseTangoMessage(data), container.getCompleted()); + } else { XLog.i("Response has returned with error: " + container.getError().toString()); - request.setException(new ResponseErrorException(container.getError(), onParseTangoMessage(data.second))); + request.setException(new ResponseErrorException(container.getError(), onParseTangoMessage(data))); } - } - catch (Exception ex) + } catch (Exception ex) { XLog.e("Error parsing inner message", ex); request.setException(ex); } } - } - else + } else { XLog.i("Message was identified as a new request message: " + container.getType().toString()); try { - XLog.i("Saving request token and adapter: " + container.getToken() + ", " + data.first.getAddress()); - pendingResponses.put(container.getToken(), new PendingResponse(data.first, container.getContinuous())); + XLog.i("Saving request token: " + container.getToken()); + pendingResponses.put(container.getToken(), new PendingResponse(container.getContinuous())); if (container.getType() == MessageType.KeepAliveRequest) { @@ -741,14 +643,12 @@ public abstract class TransporterBase implements ITransporter { //ex.printStackTrace(); }); - } - else + } else { XLog.i("Invoking RequestReceived event..."); AsyncTask.execute(() -> onRequestReceived(container)); } - } - catch (Exception ex) + } catch (Exception ex) { //Ignore any exception that might occur on the event handler side... } @@ -759,8 +659,7 @@ public abstract class TransporterBase implements ITransporter SystemClock.sleep(10); } - } - catch (Exception ex) + } catch (Exception ex) { onFailed(ex); } |
