Skip to content

Commit 43d5fd5

Browse files
author
Mike Burke
committed
Merge branch 'refs/heads/anildahiya/NullInputHandling' into sdl_android_parent/develop
Signed-off-by: Mike Burke <mike@livioconnect.com> Conflicts: sdl_android_lib/src/com/smartdevicelink/marshal/JsonRPCMarshaller.java sdl_android_lib/src/com/smartdevicelink/proxy/RPCMessage.java sdl_android_lib/src/com/smartdevicelink/proxy/RPCStruct.java sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/AddCommand.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/Alert.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/Choice.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/CreateInteractionChoiceSet.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/DiagnosticMessage.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/DiagnosticMessageResponse.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/DisplayCapabilities.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/GetDTCsResponse.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/HMIPermissions.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/Headers.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/ImageField.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/KeyboardProperties.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/ListFilesResponse.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/OnPermissionsChange.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/OnSystemRequest.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/OnTouchEvent.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/ParameterPermissions.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/PerformAudioPassThru.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/PerformInteraction.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/ReadDID.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/ReadDIDResponse.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/RegisterAppInterface.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/RegisterAppInterfaceResponse.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/ResetGlobalProperties.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/ScrollableMessage.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/SetDisplayLayout.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/SetDisplayLayoutResponse.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/SetGlobalProperties.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/Show.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/Slider.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/Speak.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/SystemRequest.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/TireStatus.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/TouchEvent.java sdl_android_lib/src/com/smartdevicelink/proxy/rpc/VehicleDataResult.java sdl_android_lib/src/com/smartdevicelink/trace/OpenRPCMessage.java
2 parents 62d8dd7 + daf5c33 commit 43d5fd5

File tree

143 files changed

+3322
-2658
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

143 files changed

+3322
-2658
lines changed

sdl_android_lib/src/com/smartdevicelink/marshal/JsonRPCMarshaller.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package com.smartdevicelink.marshal;
22

3+
import java.util.ArrayList;
34
import java.util.Hashtable;
45
import java.util.Iterator;
5-
import java.util.Vector;
6+
import java.util.List;
67

78
import org.json.JSONArray;
89
import org.json.JSONException;
@@ -62,7 +63,7 @@ public static Hashtable<String, Object> deserializeJSONObject(JSONObject jsonObj
6263
ret.put(key, deserializeJSONObject((JSONObject)value));
6364
} else if (value instanceof JSONArray) {
6465
JSONArray arrayValue = (JSONArray) value;
65-
Vector<Object> putList = new Vector<Object>(arrayValue.length());
66+
List<Object> putList = new ArrayList<Object>(arrayValue.length());
6667
for (int i = 0; i < arrayValue.length(); i++) {
6768
Object anObject = arrayValue.get(i);
6869
if (anObject instanceof JSONObject) {
@@ -79,11 +80,11 @@ public static Hashtable<String, Object> deserializeJSONObject(JSONObject jsonObj
7980
}
8081
return ret;
8182
}
82-
83-
@SuppressWarnings({ "unchecked" })
84-
private static JSONArray serializeVector(Vector<?> vector) throws JSONException{
85-
JSONArray toPut = new JSONArray();
86-
Iterator<?> valueIterator = (vector).iterator();
83+
84+
@SuppressWarnings("unchecked")
85+
private static JSONArray serializeList(List<?> list) throws JSONException{
86+
JSONArray toPut = new JSONArray();
87+
Iterator<Object> valueIterator = (Iterator<Object>) list.iterator();
8788
while(valueIterator.hasNext()){
8889
Object anObject = valueIterator.next();
8990
if (anObject instanceof RPCStruct) {
@@ -108,8 +109,8 @@ public static JSONObject serializeHashtable(Hashtable<String, Object> hash) thro
108109
Object value = hash.get(key);
109110
if (value instanceof RPCStruct) {
110111
obj.put(key, ((RPCStruct) value).serializeJSON());
111-
} else if (value instanceof Vector<?>) {
112-
obj.put(key, serializeVector((Vector<?>) value));
112+
} else if (value instanceof List<?>) {
113+
obj.put(key, serializeList((List<?>) value));
113114
} else if (value instanceof Hashtable) {
114115
obj.put(key, serializeHashtable((Hashtable<String, Object>)value));
115116
} else {
Lines changed: 118 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,70 @@
11
package com.smartdevicelink.protocol.enums;
22

3-
import com.smartdevicelink.proxy.constants.Names;
4-
53
import java.util.HashMap;
64
import java.util.Map;
75

86
public class FunctionID {
97
private static Map<String, Integer> functionIDMap = null;
8+
public static final String SYNC_P_DATA = "SyncPData";
9+
public static final String SHOW_CONSTANT_TBT = "ShowConstantTBT";
10+
public static final String ALERT_MANEUVER = "AlertManeuver";
11+
public static final String UPDATE_TURN_LIST = "UpdateTurnList";
12+
public static final String ON_SYNC_P_DATA = "OnSyncPData";
13+
public static final String REGISTER_APP_INTERFACE = "RegisterAppInterface";
14+
public static final String UNREGISTER_APP_INTERFACE = "UnregisterAppInterface";
15+
public static final String ALERT = "Alert";
16+
public static final String SHOW = "Show";
17+
public static final String SPEAK = "Speak";
18+
public static final String ADD_COMMAND = "AddCommand";
19+
public static final String DELETE_COMMAND = "DeleteCommand";
20+
public static final String ADD_SUB_MENU = "AddSubMenu";
21+
public static final String DELETE_SUB_MENU = "DeleteSubMenu";
22+
public static final String CREATE_INTERACTION_CHOICE_SET = "CreateInteractionChoiceSet";
23+
public static final String DELETE_INTERACTION_CHOICE_SET = "DeleteInteractionChoiceSet";
24+
public static final String PERFORM_INTERACTION = "PerformInteraction";
25+
public static final String ENCODED_SYNC_P_DATA = "EncodedSyncPData";
26+
public static final String SUBSCRIBE_BUTTON = "SubscribeButton";
27+
public static final String UNSUBSCRIBE_BUTTON = "UnsubscribeButton";
28+
public static final String SUBSCRIBE_VEHICLE_DATA = "SubscribeVehicleData";
29+
public static final String UNSUBSCRIBE_VEHICLE_DATA = "UnsubscribeVehicleData";
30+
public static final String SET_MEDIA_CLOCK_TIMER = "SetMediaClockTimer";
31+
public static final String SET_GLOBAL_PROPERTIES = "SetGlobalProperties";
32+
public static final String GENERIC_RESPONSE = "GenericResponse";
33+
public static final String SCROLLABLE_MESSAGE = "ScrollableMessage";
34+
public static final String GET_DTCS = "GetDTCs";
35+
public static final String DIAGNOSTIC_MESSAGE = "DiagnosticMessage";
36+
public static final String SYSTEM_REQUEST = "SystemRequest";
37+
public static final String READ_DID = "ReadDID";
38+
public static final String ON_VEHICLE_DATA = "OnVehicleData";
39+
public static final String PUT_FILE = "PutFile";
40+
public static final String DELETE_FILE = "DeleteFile";
41+
public static final String LIST_FILES = "ListFiles";
42+
public static final String GET_VEHICLE_DATA = "GetVehicleData";
43+
public static final String RESET_GLOBAL_PROPERTIES = "ResetGlobalProperties";
44+
public static final String SET_APP_ICON = "SetAppIcon";
45+
public static final String CHANGE_REGISTRATION = "ChangeRegistration";
46+
public static final String CHANGE_LANGUAGE_REGISTRATION = "ChangeLanguageRegistration";
47+
public static final String SET_DISPLAY_LAYOUT = "SetDisplayLayout";
48+
public static final String ON_LANGUAGE_CHANGE = "OnLanguageChange";
49+
public static final String PERFORM_AUDIO_PASS_THRU = "PerformAudioPassThru";
50+
public static final String END_AUDIO_PASS_THRU = "EndAudioPassThru";
51+
public static final String ON_AUDIO_PASS_THRU = "OnAudioPassThru";
52+
public static final String ON_COMMAND = "OnCommand";
53+
public static final String ON_BUTTON_PRESS = "OnButtonPress";
54+
public static final String ON_BUTTON_EVENT = "OnButtonEvent";
55+
public static final String ON_HMI_STATUS = "OnHMIStatus";
56+
public static final String ON_TBT_CLIENT_STATE = "OnTBTClientState";
57+
public static final String ON_ENCODED_SYNC_P_DATA = "OnEncodedSyncPData";
58+
public static final String ON_DRIVER_DISTRACTION = "OnDriverDistraction";
59+
public static final String ON_APP_INTERFACE_UNREGISTERED = "OnAppInterfaceUnregistered";
60+
public static final String ON_KEYBOARD_INPUT = "OnKeyboardInput";
61+
public static final String ON_TOUCH_EVENT = "OnTouchEvent";
62+
public static final String ON_SYSTEM_REQUEST = "OnSystemRequest";
63+
public static final String ON_HASH_CHANGE = "OnHashChange";
64+
public static final String ON_PERMISSIONS_CHANGE = "OnPermissionsChange";
65+
public static final String SLIDER = "Slider";
66+
public static final String ON_LOCK_SCREEN_STATUS = "OnLockScreenStatus";
67+
public static final String ON_SDL_CHOICE_CHOSEN = "OnSdlChoiceChosen";
1068

1169
public FunctionID() {
1270
}
@@ -46,81 +104,81 @@ static public void initFunctionIds() {
46104
Base Request / Response RPCs
47105
Range = 0x 0000 0001 - 0x 0000 7FFF
48106
*/
49-
put(Names.RegisterAppInterface, 1);
50-
put(Names.UnregisterAppInterface, 2);
51-
put(Names.SetGlobalProperties, 3);
52-
put(Names.ResetGlobalProperties, 4);
53-
put(Names.AddCommand, 5);
54-
put(Names.DeleteCommand, 6);
55-
put(Names.AddSubMenu, 7);
56-
put(Names.DeleteSubMenu, 8);
57-
put(Names.CreateInteractionChoiceSet, 9);
58-
put(Names.PerformInteraction, 10);
59-
put(Names.DeleteInteractionChoiceSet, 11);
60-
put(Names.Alert, 12);
61-
put(Names.Show, 13);
62-
put(Names.Speak, 14);
63-
put(Names.SetMediaClockTimer, 15);
64-
put(Names.PerformAudioPassThru, 16);
65-
put(Names.EndAudioPassThru, 17);
66-
put(Names.SubscribeButton, 18);
67-
put(Names.UnsubscribeButton, 19);
68-
put(Names.SubscribeVehicleData, 20);
69-
put(Names.UnsubscribeVehicleData, 21);
70-
put(Names.GetVehicleData, 22);
71-
put(Names.ReadDID, 23);
72-
put(Names.GetDTCs, 24);
73-
put(Names.ScrollableMessage, 25);
74-
put(Names.Slider, 26);
75-
put(Names.ShowConstantTBT, 27);
76-
put(Names.AlertManeuver, 28);
77-
put(Names.UpdateTurnList, 29);
78-
put(Names.ChangeRegistration, 30);
79-
put(Names.GenericResponse, 31);
80-
put(Names.PutFile, 32);
81-
put(Names.DeleteFile, 33);
82-
put(Names.ListFiles, 34);
83-
put(Names.SetAppIcon, 35);
84-
put(Names.SetDisplayLayout, 36);
85-
put(Names.DiagnosticMessage, 37);
86-
put(Names.SystemRequest, 38);
107+
put(FunctionID.REGISTER_APP_INTERFACE, 1);
108+
put(FunctionID.UNREGISTER_APP_INTERFACE, 2);
109+
put(FunctionID.SET_GLOBAL_PROPERTIES, 3);
110+
put(FunctionID.RESET_GLOBAL_PROPERTIES, 4);
111+
put(FunctionID.ADD_COMMAND, 5);
112+
put(FunctionID.DELETE_COMMAND, 6);
113+
put(FunctionID.ADD_SUB_MENU, 7);
114+
put(FunctionID.DELETE_SUB_MENU, 8);
115+
put(FunctionID.CREATE_INTERACTION_CHOICE_SET, 9);
116+
put(FunctionID.PERFORM_INTERACTION, 10);
117+
put(FunctionID.DELETE_INTERACTION_CHOICE_SET, 11);
118+
put(FunctionID.ALERT, 12);
119+
put(FunctionID.SHOW, 13);
120+
put(FunctionID.SPEAK, 14);
121+
put(FunctionID.SET_MEDIA_CLOCK_TIMER, 15);
122+
put(FunctionID.PERFORM_AUDIO_PASS_THRU, 16);
123+
put(FunctionID.END_AUDIO_PASS_THRU, 17);
124+
put(FunctionID.SUBSCRIBE_BUTTON, 18);
125+
put(FunctionID.UNSUBSCRIBE_BUTTON, 19);
126+
put(FunctionID.SUBSCRIBE_VEHICLE_DATA, 20);
127+
put(FunctionID.UNSUBSCRIBE_VEHICLE_DATA, 21);
128+
put(FunctionID.GET_VEHICLE_DATA, 22);
129+
put(FunctionID.READ_DID, 23);
130+
put(FunctionID.GET_DTCS, 24);
131+
put(FunctionID.SCROLLABLE_MESSAGE, 25);
132+
put(FunctionID.SLIDER, 26);
133+
put(FunctionID.SHOW_CONSTANT_TBT, 27);
134+
put(FunctionID.ALERT_MANEUVER, 28);
135+
put(FunctionID.UPDATE_TURN_LIST, 29);
136+
put(FunctionID.CHANGE_REGISTRATION, 30);
137+
put(FunctionID.GENERIC_RESPONSE, 31);
138+
put(FunctionID.PUT_FILE, 32);
139+
put(FunctionID.DELETE_FILE, 33);
140+
put(FunctionID.LIST_FILES, 34);
141+
put(FunctionID.SET_APP_ICON, 35);
142+
put(FunctionID.SET_DISPLAY_LAYOUT, 36);
143+
put(FunctionID.DIAGNOSTIC_MESSAGE, 37);
144+
put(FunctionID.SYSTEM_REQUEST, 38);
87145

88146
/*
89147
Base Notifications
90148
Range = 0x 0000 8000 - 0x 0000 FFFF
91149
*/
92-
put(Names.OnHMIStatus, 32768);
93-
put(Names.OnAppInterfaceUnregistered, 32769);
94-
put(Names.OnButtonEvent, 32770);
95-
put(Names.OnButtonPress, 32771);
96-
put(Names.OnVehicleData, 32772);
97-
put(Names.OnCommand, 32773);
98-
put(Names.OnTBTClientState, 32774);
99-
put(Names.OnDriverDistraction, 32775);
100-
put(Names.OnPermissionsChange, 32776);
101-
put(Names.OnAudioPassThru, 32777);
102-
put(Names.OnLanguageChange, 32778);
103-
put(Names.OnSystemRequest, 32781);
104-
put(Names.OnHashChange, 32782);
150+
put(FunctionID.ON_HMI_STATUS, 32768);
151+
put(FunctionID.ON_APP_INTERFACE_UNREGISTERED, 32769);
152+
put(FunctionID.ON_BUTTON_EVENT, 32770);
153+
put(FunctionID.ON_BUTTON_PRESS, 32771);
154+
put(FunctionID.ON_VEHICLE_DATA, 32772);
155+
put(FunctionID.ON_COMMAND, 32773);
156+
put(FunctionID.ON_TBT_CLIENT_STATE, 32774);
157+
put(FunctionID.ON_DRIVER_DISTRACTION, 32775);
158+
put(FunctionID.ON_PERMISSIONS_CHANGE, 32776);
159+
put(FunctionID.ON_AUDIO_PASS_THRU, 32777);
160+
put(FunctionID.ON_LANGUAGE_CHANGE, 32778);
161+
put(FunctionID.ON_SYSTEM_REQUEST, 32781);
162+
put(FunctionID.ON_HASH_CHANGE, 32782);
105163

106164
/*
107165
Ford Specific Request / Response RPCs
108166
Range = 0x 0001 0000 - 0x 0001 7FFF
109167
*/
110-
put(Names.EncodedSyncPData, 65536);
111-
put(Names.SyncPData, 65537);
168+
put(FunctionID.ENCODED_SYNC_P_DATA, 65536);
169+
put(FunctionID.SYNC_P_DATA, 65537);
112170

113171
/*
114172
Ford Specific Notifications
115173
Range = 0x 0001 8000 - 0x 0001 FFFF
116174
*/
117-
put(Names.OnEncodedSyncPData, 98304);
118-
put(Names.OnSyncPData, 98305);
175+
put(FunctionID.ON_ENCODED_SYNC_P_DATA, 98304);
176+
put(FunctionID.ON_SYNC_P_DATA, 98305);
119177

120178
// OnKeyboardInput
121-
put(Names.OnKeyboardInput, 32779);
179+
put(FunctionID.ON_KEYBOARD_INPUT, 32779);
122180
// OnTouchEvent
123-
put(Names.OnTouchEvent, 32780);
181+
put(FunctionID.ON_TOUCH_EVENT, 32780);
124182
}};
125183
}
126-
}
184+
}

sdl_android_lib/src/com/smartdevicelink/proxy/RPCMessage.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,14 @@
22

33
import java.util.Hashtable;
44

5-
import com.smartdevicelink.proxy.constants.Names;
65

76
public class RPCMessage extends RPCStruct {
7+
public static final String KEY_REQUEST = "request";
8+
public static final String KEY_RESPONSE = "response";
9+
public static final String KEY_NOTIFICATION = "notification";
10+
public static final String KEY_FUNCTION_NAME = "name";
11+
public static final String KEY_PARAMETERS = "parameters";
12+
public static final String KEY_CORRELATION_ID = "correlationID";
813

914
public RPCMessage(String functionName) {
1015
this(functionName, "request");
@@ -24,18 +29,18 @@ public RPCMessage(String functionName, String messageType) {
2429
this.messageType = messageType;
2530
store.put(messageType, function);
2631
parameters = new Hashtable<String, Object>();
27-
function.put(Names.parameters, parameters);
28-
function.put(Names.function_name, functionName);
32+
function.put(KEY_PARAMETERS, parameters);
33+
function.put(KEY_FUNCTION_NAME, functionName);
2934
}
3035

3136
@SuppressWarnings("unchecked")
3237
public RPCMessage(Hashtable<String, Object> hash) {
3338
store = hash;
3439
messageType = getMessageTypeName(hash.keySet());
3540
function = (Hashtable<String, Object>) hash.get(messageType);
36-
parameters = (Hashtable<String, Object>) function.get(Names.parameters);
37-
if (hasKey(hash.keySet(), Names.bulkData)) {
38-
setBulkData((byte[]) hash.get(Names.bulkData));
41+
parameters = (Hashtable<String, Object>) function.get(KEY_PARAMETERS);
42+
if (hasKey(hash.keySet(), RPCStruct.KEY_BULK_DATA)) {
43+
setBulkData((byte[]) hash.get(RPCStruct.KEY_BULK_DATA));
3944
}
4045
}
4146

@@ -44,11 +49,11 @@ public RPCMessage(Hashtable<String, Object> hash) {
4449
protected Hashtable<String, Object> function;
4550

4651
public String getFunctionName() {
47-
return (String)function.get(Names.function_name);
52+
return (String)function.get(KEY_FUNCTION_NAME);
4853
}
4954

5055
protected void setFunctionName(String functionName) {
51-
function.put(Names.function_name, functionName);
56+
function.put(KEY_FUNCTION_NAME, functionName);
5257
}
5358

5459
public String getMessageType() {

sdl_android_lib/src/com/smartdevicelink/proxy/RPCRequest.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,26 @@
55

66
import java.util.Hashtable;
77

8-
import com.smartdevicelink.proxy.constants.Names;
9-
108
public class RPCRequest extends RPCMessage {
119

1210
public RPCRequest(String functionName) {
13-
super(functionName, "request");
14-
messageType = Names.request;
11+
super(functionName, RPCMessage.KEY_REQUEST);
12+
messageType = RPCMessage.KEY_REQUEST;
1513
}
1614

1715
public RPCRequest(Hashtable<String, Object> hash) {
1816
super(hash);
1917
}
2018

2119
public Integer getCorrelationID() {
22-
return (Integer)function.get(Names.correlationID);
20+
return (Integer)function.get(RPCMessage.KEY_CORRELATION_ID);
2321
}
2422

2523
public void setCorrelationID(Integer correlationID) {
2624
if (correlationID != null) {
27-
function.put(Names.correlationID, correlationID );
28-
} else if (parameters.contains(Names.correlationID)) {
29-
function.remove(Names.correlationID);
25+
function.put(RPCMessage.KEY_CORRELATION_ID, correlationID );
26+
} else {
27+
function.remove(RPCMessage.KEY_CORRELATION_ID);
3028
}
3129
}
3230
}

0 commit comments

Comments
 (0)