Skip to content

Commit ee8e3f1

Browse files
author
Robert Henigan
authored
Merge pull request #1456 from smartdevicelink/feature/issue_1455_remove_onerror
Remove onError from RPC response listeners
2 parents 89c6876 + 7d27d47 commit ee8e3f1

22 files changed

Lines changed: 174 additions & 425 deletions

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.smartdevicelink.managers;
22

33
import android.content.Context;
4+
45
import androidx.test.ext.junit.runners.AndroidJUnit4;
56

67
import com.livio.taskmaster.Taskmaster;
@@ -18,7 +19,6 @@
1819
import com.smartdevicelink.proxy.rpc.TemplateColorScheme;
1920
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
2021
import com.smartdevicelink.proxy.rpc.enums.Language;
21-
import com.smartdevicelink.proxy.rpc.enums.Result;
2222
import com.smartdevicelink.proxy.rpc.listeners.OnMultipleRequestListener;
2323
import com.smartdevicelink.proxy.rpc.listeners.OnRPCResponseListener;
2424
import com.smartdevicelink.test.TestValues;
@@ -403,10 +403,6 @@ public void onFinished() {
403403
listenerCalledCounter++;
404404
}
405405

406-
@Override
407-
public void onError(int correlationId, Result resultCode, String info) {
408-
}
409-
410406
@Override
411407
public void onResponse(int correlationId, RPCResponse response) {
412408
}

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/file/FileManagerTests.java

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,9 @@ public Void answer(InvocationOnMock invocation) throws Throwable {
7272
RPCRequest message = (RPCRequest) args[0];
7373
if (message instanceof PutFile) {
7474
int correlationId = message.getCorrelationID();
75-
Result resultCode = Result.REJECTED;
76-
PutFileResponse putFileResponse = new PutFileResponse();
77-
putFileResponse.setSuccess(false);
78-
message.getOnRPCResponseListener().onError(correlationId, resultCode, "Binary data empty");
75+
PutFileResponse putFileResponse = new PutFileResponse(false, Result.REJECTED);
76+
putFileResponse.setInfo("Binary data empty");
77+
message.getOnRPCResponseListener().onResponse(correlationId, putFileResponse);
7978
}
8079
return null;
8180
}
@@ -88,13 +87,12 @@ public Void answer(InvocationOnMock invocation) throws Throwable {
8887
List<RPCRequest> rpcs = (List<RPCRequest>) args[0];
8988
OnMultipleRequestListener listener = (OnMultipleRequestListener) args[1];
9089
if (rpcs.get(0) instanceof PutFile) {
91-
Result resultCode = Result.REJECTED;
9290
for (RPCRequest message : rpcs) {
9391
int correlationId = message.getCorrelationID();
9492
listener.addCorrelationId(correlationId);
95-
PutFileResponse putFileResponse = new PutFileResponse();
96-
putFileResponse.setSuccess(true);
97-
listener.onError(correlationId, resultCode, "Binary data empty");
93+
PutFileResponse putFileResponse = new PutFileResponse(false, Result.REJECTED);
94+
putFileResponse.setInfo("Binary data empty");
95+
listener.onResponse(correlationId, putFileResponse);
9896
}
9997
listener.onFinished();
10098
}
@@ -197,13 +195,12 @@ public Void answer(InvocationOnMock invocation) {
197195
List<RPCRequest> rpcs = (List<RPCRequest>) args[0];
198196
OnMultipleRequestListener listener = (OnMultipleRequestListener) args[1];
199197
if (rpcs.get(0) instanceof DeleteFile) {
200-
Result resultCode = Result.REJECTED;
201198
for (RPCRequest message : rpcs) {
202199
int correlationId = message.getCorrelationID();
203200
listener.addCorrelationId(correlationId);
204-
DeleteFileResponse deleteFileResponse = new DeleteFileResponse();
205-
deleteFileResponse.setSuccess(true);
206-
listener.onError(correlationId, resultCode, "Binary data empty");
201+
DeleteFileResponse deleteFileResponse = new DeleteFileResponse(false, Result.REJECTED);
202+
deleteFileResponse.setInfo("Binary data empty");
203+
listener.onResponse(correlationId, deleteFileResponse);
207204
}
208205
listener.onFinished();
209206
}
@@ -218,7 +215,6 @@ public Void answer(InvocationOnMock invocation) throws Throwable {
218215
List<RPCRequest> rpcs = (List<RPCRequest>) args[0];
219216
OnMultipleRequestListener listener = (OnMultipleRequestListener) args[1];
220217
if (rpcs.get(0) instanceof PutFile) {
221-
Result resultCode = Result.REJECTED;
222218
boolean flip = false;
223219
for (RPCRequest message : rpcs) {
224220
int correlationId = message.getCorrelationID();
@@ -231,7 +227,9 @@ public Void answer(InvocationOnMock invocation) throws Throwable {
231227
} else {
232228
flip = true;
233229
putFileResponse.setSuccess(false);
234-
listener.onError(correlationId, resultCode, "Binary data empty");
230+
putFileResponse.setResultCode(Result.REJECTED);
231+
putFileResponse.setInfo("Binary data empty");
232+
listener.onResponse(correlationId, putFileResponse);
235233
}
236234
}
237235
listener.onFinished();

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/SubscribeButtonManagerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ public Void answer(InvocationOnMock invocation) {
6161
Object[] args = invocation.getArguments();
6262
RPCRequest message = (RPCRequest) args[0];
6363
if(message instanceof SubscribeButton){
64-
SubscribeButtonResponse subscribeButtonResponse = new SubscribeButtonResponse();
65-
subscribeButtonResponse.setSuccess(false);
66-
message.getOnRPCResponseListener().onError(message.getCorrelationID(), Result.GENERIC_ERROR, "Fail");
64+
SubscribeButtonResponse subscribeButtonResponse = new SubscribeButtonResponse(false, Result.GENERIC_ERROR);
65+
subscribeButtonResponse.setInfo("Fail");
66+
message.getOnRPCResponseListener().onResponse(message.getCorrelationID(), subscribeButtonResponse);
6767
}
6868
return null;
6969
}

android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import com.smartdevicelink.proxy.SdlProxyBuilder;
1616
import com.smartdevicelink.proxy.SdlProxyConfigurationResources;
1717
import com.smartdevicelink.proxy.interfaces.IProxyListenerALM;
18+
import com.smartdevicelink.proxy.rpc.GenericResponse;
1819
import com.smartdevicelink.proxy.rpc.Show;
1920
import com.smartdevicelink.proxy.rpc.ShowResponse;
2021
import com.smartdevicelink.proxy.rpc.Speak;
@@ -228,16 +229,15 @@ public void onFinished() {
228229
onFinishedListenerCounter++;
229230
}
230231

231-
@Override
232-
public void onError(int correlationId, Result resultCode, String info) {
233-
onErrorListenerCounter++;
234-
remainingRequestsExpected--;
235-
}
236-
237232
@Override
238233
public void onResponse(int correlationId, RPCResponse response) {
239-
onResponseListenerCounter++;
240-
remainingRequestsExpected--;
234+
if (response.getSuccess()) {
235+
onResponseListenerCounter++;
236+
remainingRequestsExpected--;
237+
} else {
238+
onErrorListenerCounter++;
239+
remainingRequestsExpected--;
240+
}
241241
}
242242
};
243243
try {
@@ -280,7 +280,7 @@ public void onResponse(int correlationId, RPCResponse response) {
280280
while (rpcsTempList.size() != 0){
281281
RPCRequest request = rpcsTempList.remove(0);
282282
if (request instanceof Speak) {
283-
requestsMap.get(request).onError(request.getCorrelationID(), Result.DISALLOWED, "ERROR");
283+
requestsMap.get(request).onResponse(request.getCorrelationID(), new GenericResponse(false, Result.DISALLOWED));
284284
} else if (request instanceof Show) {
285285
requestsMap.get(request).onResponse(request.getCorrelationID(), new ShowResponse(true, Result.SUCCESS));
286286
}

android/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java

Lines changed: 14 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import android.os.Handler;
4141
import android.os.Looper;
4242
import android.os.SystemClock;
43-
import androidx.annotation.NonNull;
4443
import android.telephony.TelephonyManager;
4544
import android.util.DisplayMetrics;
4645
import android.util.SparseArray;
@@ -49,6 +48,8 @@
4948
import android.view.MotionEvent;
5049
import android.view.Surface;
5150

51+
import androidx.annotation.NonNull;
52+
5253
import com.livio.taskmaster.Taskmaster;
5354
import com.smartdevicelink.BuildConfig;
5455
import com.smartdevicelink.Dispatcher.IDispatchingStrategy;
@@ -58,7 +59,6 @@
5859
import com.smartdevicelink.encoder.VirtualDisplayEncoder;
5960
import com.smartdevicelink.exception.SdlException;
6061
import com.smartdevicelink.exception.SdlExceptionCause;
61-
//import com.smartdevicelink.managers.video.HapticInterfaceManager;
6262
import com.smartdevicelink.managers.ServiceEncryptionListener;
6363
import com.smartdevicelink.managers.lifecycle.RpcConverter;
6464
import com.smartdevicelink.managers.lifecycle.SystemCapabilityManager;
@@ -67,7 +67,6 @@
6767
import com.smartdevicelink.protocol.enums.FunctionID;
6868
import com.smartdevicelink.protocol.enums.MessageType;
6969
import com.smartdevicelink.protocol.enums.SessionType;
70-
import com.smartdevicelink.protocol.heartbeat.HeartbeatMonitor;
7170
import com.smartdevicelink.proxy.LockScreenManager.OnLockScreenIconDownloadedListener;
7271
import com.smartdevicelink.proxy.callbacks.InternalProxyMessage;
7372
import com.smartdevicelink.proxy.callbacks.OnError;
@@ -158,6 +157,8 @@
158157
import java.util.concurrent.FutureTask;
159158
import java.util.concurrent.ScheduledExecutorService;
160159

160+
//import com.smartdevicelink.managers.video.HapticInterfaceManager;
161+
161162

162163
/**
163164
* @deprecated use {@link com.smartdevicelink.managers.SdlManager} instead.
@@ -2142,7 +2143,9 @@ protected void sendRPCMessagePrivate(RPCMessage message) throws SdlException {
21422143
RPCRequest request = (RPCRequest) message;
21432144
OnRPCResponseListener listener = ((RPCRequest) message).getOnRPCResponseListener();
21442145
if (listener != null) {
2145-
listener.onError(request.getCorrelationID(), Result.ABORTED, errorInfo);
2146+
GenericResponse response = new GenericResponse(false, Result.REJECTED);
2147+
response.setInfo(errorInfo);
2148+
listener.onResponse(request.getCorrelationID(), response);
21462149
}
21472150
}
21482151
DebugTool.logWarning(TAG, errorInfo);
@@ -2217,11 +2220,7 @@ private boolean onRPCResponseReceived(RPCResponse msg){
22172220
if(rpcResponseListeners !=null
22182221
&& rpcResponseListeners.indexOfKey(correlationId)>=0){
22192222
OnRPCResponseListener listener = rpcResponseListeners.get(correlationId);
2220-
if(msg.getSuccess()){
2221-
listener.onResponse(correlationId, msg);
2222-
}else{
2223-
listener.onError(correlationId, msg.getResultCode(), msg.getInfo());
2224-
}
2223+
listener.onResponse(correlationId, msg);
22252224
rpcResponseListeners.remove(correlationId);
22262225
return true;
22272226
}
@@ -4495,27 +4494,9 @@ public void onResponse(int correlationId, RPCResponse response) {
44954494
} catch (SdlException e) {
44964495
e.printStackTrace();
44974496
if (listener != null) {
4498-
listener.onError(correlationId, Result.GENERIC_ERROR, e.toString());
4499-
}
4500-
}
4501-
}
4502-
4503-
@Override
4504-
public void onError(int correlationId, Result resultCode, String info) {
4505-
if (devOnRPCResponseListener != null){
4506-
devOnRPCResponseListener.onError(correlationId, resultCode, info);
4507-
}
4508-
if (listener != null) {
4509-
listener.onError(correlationId, resultCode, info);
4510-
listener.onUpdate(rpcs.size());
4511-
}
4512-
try {
4513-
// recurse after onError
4514-
sendSequentialRequests(rpcs, listener);
4515-
} catch (SdlException e) {
4516-
e.printStackTrace();
4517-
if (listener != null) {
4518-
listener.onError(correlationId, Result.GENERIC_ERROR, e.toString());
4497+
GenericResponse genericResponse = new GenericResponse(false, Result.GENERIC_ERROR);
4498+
genericResponse.setInfo(e.toString());
4499+
listener.onResponse(correlationId, genericResponse);
45194500
}
45204501
}
45214502
}
@@ -4533,7 +4514,9 @@ public void onError(int correlationId, Result resultCode, String info) {
45334514
} catch (SdlException e) {
45344515
e.printStackTrace();
45354516
if (listener != null) {
4536-
listener.onError(0, Result.GENERIC_ERROR, e.toString());
4517+
GenericResponse response = new GenericResponse(false, Result.REJECTED);
4518+
response.setInfo(e.toString());
4519+
listener.onResponse(0, response);
45374520
}
45384521
}
45394522
}
@@ -4597,17 +4580,6 @@ public void onResponse(int correlationId, RPCResponse response) {
45974580
listener.getSingleRpcResponseListener().onResponse(correlationId, response);
45984581
}
45994582
}
4600-
4601-
@Override
4602-
public void onError(int correlationId, Result resultCode, String info) {
4603-
super.onError(correlationId, resultCode, info);
4604-
if (devOnRPCResponseListener != null){
4605-
devOnRPCResponseListener.onError(correlationId, resultCode, info);
4606-
}
4607-
if (listener.getSingleRpcResponseListener() != null) {
4608-
listener.getSingleRpcResponseListener().onError(correlationId, resultCode, info);
4609-
}
4610-
}
46114583
});
46124584
}
46134585
sendRPCMessagePrivate(request);

base/src/main/java/com/smartdevicelink/managers/BaseSdlManager.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import com.smartdevicelink.managers.file.filetypes.SdlArtwork;
3939
import com.smartdevicelink.managers.lifecycle.LifecycleConfigurationUpdate;
4040
import com.smartdevicelink.managers.lifecycle.LifecycleManager;
41+
import com.smartdevicelink.managers.lifecycle.SystemCapabilityManager;
4142
import com.smartdevicelink.managers.permission.PermissionManager;
4243
import com.smartdevicelink.managers.screen.ScreenManager;
4344
import com.smartdevicelink.protocol.enums.FunctionID;
@@ -46,7 +47,6 @@
4647
import com.smartdevicelink.proxy.RPCNotification;
4748
import com.smartdevicelink.proxy.RPCRequest;
4849
import com.smartdevicelink.proxy.RPCResponse;
49-
import com.smartdevicelink.managers.lifecycle.SystemCapabilityManager;
5050
import com.smartdevicelink.proxy.interfaces.ISdl;
5151
import com.smartdevicelink.proxy.rpc.ChangeRegistration;
5252
import com.smartdevicelink.proxy.rpc.OnHMIStatus;
@@ -56,7 +56,6 @@
5656
import com.smartdevicelink.proxy.rpc.TemplateColorScheme;
5757
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
5858
import com.smartdevicelink.proxy.rpc.enums.Language;
59-
import com.smartdevicelink.proxy.rpc.enums.Result;
6059
import com.smartdevicelink.proxy.rpc.enums.SdlDisconnectedReason;
6160
import com.smartdevicelink.proxy.rpc.listeners.OnMultipleRequestListener;
6261
import com.smartdevicelink.proxy.rpc.listeners.OnRPCNotificationListener;
@@ -200,6 +199,12 @@ protected void checkLifecycleConfiguration() {
200199
@Override
201200
public void onResponse(int correlationId, RPCResponse response) {
202201
if (response.getSuccess()) {
202+
try {
203+
DebugTool.logInfo(TAG, response.serializeJSON().toString());
204+
} catch (JSONException e) {
205+
e.printStackTrace();
206+
}
207+
203208
// go through and change sdlManager properties that were changed via the LCU update
204209
hmiLanguage = actualHMILanguage;
205210
language = actualLanguage;
@@ -219,18 +224,10 @@ public void onResponse(int correlationId, RPCResponse response) {
219224
if (lcu.getVoiceRecognitionCommandNames() != null) {
220225
vrSynonyms = lcu.getVoiceRecognitionCommandNames();
221226
}
227+
} else {
228+
DebugTool.logError(TAG, "Change Registration onError: " + response.getResultCode() + " | Info: " + response.getInfo());
229+
retryChangeRegistration();
222230
}
223-
try {
224-
DebugTool.logInfo(TAG, response.serializeJSON().toString());
225-
} catch (JSONException e) {
226-
e.printStackTrace();
227-
}
228-
}
229-
230-
@Override
231-
public void onError(int correlationId, Result resultCode, String info) {
232-
DebugTool.logError(TAG, "Change Registration onError: " + resultCode + " | Info: " + info);
233-
retryChangeRegistration();
234231
}
235232
});
236233
this.sendRPC(changeRegistration);

0 commit comments

Comments
 (0)