summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBretty White <geekman3454@protonmail.com>2018-07-26 16:11:52 -0400
committerBretty White <geekman3454@protonmail.com>2018-07-26 16:11:52 -0400
commite9077408e8a224df5dfe5e61f3973d22adbcd787 (patch)
tree8701298cc9b4a3db1769620be4ea07d54f80acf3
parenta24e182c0fe2b97eafec051af4d8fc2002f87772 (diff)
parent9682b3727e7bf44640de9deebd516c7ed373913f (diff)
downloadsdl_android-e9077408e8a224df5dfe5e61f3973d22adbcd787.tar.gz
Merge branch 'develop' into feature/issue_710_audio_streaming_indicator
# Conflicts: # sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
-rw-r--r--sdl_android/build.gradle4
-rw-r--r--sdl_android/src/androidTest/assets/json/AddSubMenu.json6
-rw-r--r--sdl_android/src/androidTest/assets/json/GetVehicleData.json25
-rw-r--r--sdl_android/src/androidTest/assets/json/PutFile.json1
-rw-r--r--sdl_android/src/androidTest/assets/json/RegisterAppInterface.json37
-rw-r--r--sdl_android/src/androidTest/assets/json/SetDisplayLayout.json36
-rw-r--r--sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json22
-rw-r--r--sdl_android/src/androidTest/assets/json/SystemRequest.json3
-rw-r--r--sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json24
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java300
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java370
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java51
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java8
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DisplayCapabilitiesTests.java5
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/FuelRangeTests.java71
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ImageTests.java5
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/MassageCushionFirmnessTest.java71
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/MassageModeDataTest.java74
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ModuleDataTests.java146
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RGBColorTest.java70
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RemoteControlCapabilitiesTests.java215
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatControlCapabilitiesTest.java141
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatControlDataTest.java173
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatMemoryActionTest.java75
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SingleTireStatusTest.java13
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/TemplateColorSchemeTest.java81
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ElectronicParkBrakeStatusTests.java82
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/FuelTypeTests.java87
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ImageFieldNameTests.java4
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageCushionTests.java81
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageModeTests.java73
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageZoneTests.java69
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MetadataTypeTests.java14
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ModuleTypeTests.java4
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/RequestTypeTests.java5
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ResultTests.java8
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SeatMemoryActionTypeTests.java73
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SpeechCapabilitiesTests.java1
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SupportedSeatTests.java69
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TPMSTests.java95
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TurnSignalTests.java79
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VehicleDataTypeTests.java20
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VideoStreamingStateTests.java71
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnHMIStatusTests.java12
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnRCStatusTests.java93
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnSystemRequestTests.java7
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnVehicleDataTests.java63
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/AddSubmenuTests.java18
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetVehicleDataTests.java22
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/PutFileTests.java36
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/RegisterAppInterfaceTests.java44
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetDisplayLayoutTests.java26
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeVehicleDataTests.java24
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SystemRequestTests.java8
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeVehicleDataTests.java30
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetVehicleDataResponseTests.java62
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/RegisterAppInterfaceResponseTest.java9
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeVehicleDataResponseTest.java42
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeVehicleDataResponseTest.java44
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java1
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/RPCRequestFactory.java1
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyALM.java66
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java328
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBuilder.java20
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java3
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AddSubMenu.java26
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DisplayCapabilities.java50
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/FuelRange.java66
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java76
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java71
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Image.java27
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MassageCushionFirmness.java79
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MassageModeData.java80
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ModuleData.java147
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnHMIStatus.java32
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnRCStatus.java69
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSystemRequest.java20
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java79
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFile.java60
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RGBColor.java141
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterface.java67
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterfaceResponse.java16
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RemoteControlCapabilities.java152
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatControlCapabilities.java339
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatControlData.java347
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatMemoryAction.java95
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayout.java63
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SingleTireStatus.java51
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java110
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java71
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemRequest.java18
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TemplateColorScheme.java111
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnregisterAppInterface.java2
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java108
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java71
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ElectronicParkBrakeStatus.java38
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/FuelType.java31
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ImageFieldName.java8
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageCushion.java21
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageMode.java19
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageZone.java24
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ModuleType.java21
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/RequestType.java6
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/Result.java5
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SeatMemoryActionType.java25
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SpeechCapabilities.java7
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SupportedSeat.java18
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/TPMS.java51
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/TurnSignal.java35
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VehicleDataType.java22
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VideoStreamingState.java23
111 files changed, 6220 insertions, 599 deletions
diff --git a/sdl_android/build.gradle b/sdl_android/build.gradle
index e4e5a44e1..fc29f66ff 100644
--- a/sdl_android/build.gradle
+++ b/sdl_android/build.gradle
@@ -5,8 +5,8 @@ android {
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
- versionCode 4
- versionName "RC_4.6.0"
+ versionCode 5
+ versionName "4.6.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
resValue "string", "SDL_LIB_VERSION", '\"' + versionName + '\"'
}
diff --git a/sdl_android/src/androidTest/assets/json/AddSubMenu.json b/sdl_android/src/androidTest/assets/json/AddSubMenu.json
index 5d86c2615..37cc46adb 100644
--- a/sdl_android/src/androidTest/assets/json/AddSubMenu.json
+++ b/sdl_android/src/androidTest/assets/json/AddSubMenu.json
@@ -5,7 +5,11 @@
"parameters":{
"menuID":765,
"position":2,
- "menuName":"Menu Name"
+ "menuName":"Menu Name",
+ "menuIcon":{
+ "value":"cmdImage1.png",
+ "imageType":"DYNAMIC"
+ }
}
},
"response":{
diff --git a/sdl_android/src/androidTest/assets/json/GetVehicleData.json b/sdl_android/src/androidTest/assets/json/GetVehicleData.json
index e27937718..81b25ef87 100644
--- a/sdl_android/src/androidTest/assets/json/GetVehicleData.json
+++ b/sdl_android/src/androidTest/assets/json/GetVehicleData.json
@@ -1,6 +1,6 @@
{
"request":{
- "name":"AddCommand",
+ "name":"GetVehicleData",
"correlationID":129,
"parameters":{
"speed":true,
@@ -11,6 +11,7 @@
"prndl":true,
"tirePressure":true,
"engineTorque":false,
+ "engineOilLife":true,
"odometer":true,
"gps":false,
"fuelLevel_State":true,
@@ -27,11 +28,14 @@
"airbagStatus":true,
"emergencyEvent":false,
"clusterModeStatus":true,
- "myKey":true
+ "myKey":true,
+ "fuelRange":true,
+ "turnSignal":true,
+ "electronicParkBrakeStatus":true
}
},
"response":{
- "name":"AddCommandResponse",
+ "name":"GetVehicleDataResponse",
"correlationID":130,
"parameters":{
"speed":35.6,
@@ -50,6 +54,7 @@
"rightRear":"ALERT"
},
"engineTorque":518.3,
+ "engineOilLife":19.3,
"odometer":140000,
"gps":{
"longitudeDegrees":104.2,
@@ -72,6 +77,7 @@
"speed":30.5
},
"fuelLevel_State":"ALERT",
+ "turnSignal":"OFF",
"instantFuelConsumption":2.76,
"beltStatus":{
"driverBeltDeployed":"NO",
@@ -151,7 +157,18 @@
},
"myKey":{
"e911Override":"NO_DATA_EXISTS"
- }
+ },
+ "electronicParkBrakeStatus":"CLOSED",
+ "fuelRange":[
+ {
+ "type":"GASOLINE",
+ "range":100.0
+ },
+ {
+ "type":"DIESEL",
+ "range":10.0
+ }
+ ]
}
}
} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/assets/json/PutFile.json b/sdl_android/src/androidTest/assets/json/PutFile.json
index 70e80a09a..e989a62aa 100644
--- a/sdl_android/src/androidTest/assets/json/PutFile.json
+++ b/sdl_android/src/androidTest/assets/json/PutFile.json
@@ -9,6 +9,7 @@
"syncFileName":"filename.txt",
"offset":2,
"length":456,
+ "crc":2020,
"bulkData":[
0,
1,
diff --git a/sdl_android/src/androidTest/assets/json/RegisterAppInterface.json b/sdl_android/src/androidTest/assets/json/RegisterAppInterface.json
index fe1edb518..3a6484a5f 100644
--- a/sdl_android/src/androidTest/assets/json/RegisterAppInterface.json
+++ b/sdl_android/src/androidTest/assets/json/RegisterAppInterface.json
@@ -31,6 +31,40 @@
"appName":"Dumb app",
"ngnMediaScreenAppName":"DA",
"isMediaApplication":true,
+ "dayColorScheme": {
+ "backgroundColor": {
+ "blue": 9,
+ "green": 8,
+ "red": 7
+ },
+ "secondaryColor": {
+ "blue": 6,
+ "green": 5,
+ "red": 4
+ },
+ "primaryColor": {
+ "blue": 3,
+ "green": 2,
+ "red": 1
+ }
+ },
+ "nightColorScheme": {
+ "backgroundColor": {
+ "blue": 18,
+ "green": 17,
+ "red": 16
+ },
+ "secondaryColor": {
+ "blue": 15,
+ "green": 14,
+ "red": 13
+ },
+ "primaryColor": {
+ "blue": 12,
+ "green": 11,
+ "red": 10
+ }
+ },
"vrSynonyms":[
"dumb",
"really dumb app"
@@ -192,7 +226,8 @@
0,
1,
2
- ]
+ ],
+ "iconResumed":true
}
}
} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/assets/json/SetDisplayLayout.json b/sdl_android/src/androidTest/assets/json/SetDisplayLayout.json
index 3b80dfb36..ec9e62f54 100644
--- a/sdl_android/src/androidTest/assets/json/SetDisplayLayout.json
+++ b/sdl_android/src/androidTest/assets/json/SetDisplayLayout.json
@@ -3,7 +3,41 @@
"name":"SetDisplayLayout",
"correlationID":149,
"parameters":{
- "displayLayout":"someDisplayLayout"
+ "displayLayout":"someDisplayLayout",
+ "dayColorScheme": {
+ "backgroundColor": {
+ "blue": 9,
+ "green": 8,
+ "red": 7
+ },
+ "secondaryColor": {
+ "blue": 6,
+ "green": 5,
+ "red": 4
+ },
+ "primaryColor": {
+ "blue": 3,
+ "green": 2,
+ "red": 1
+ }
+ },
+ "nightColorScheme": {
+ "backgroundColor": {
+ "blue": 18,
+ "green": 17,
+ "red": 16
+ },
+ "secondaryColor": {
+ "blue": 15,
+ "green": 14,
+ "red": 13
+ },
+ "primaryColor": {
+ "blue": 12,
+ "green": 11,
+ "red": 10
+ }
+ }
}
},
"response":{
diff --git a/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json b/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json
index 977057cf1..92cf00a1b 100644
--- a/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json
+++ b/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json
@@ -10,6 +10,7 @@
"prndl":true,
"tirePressure":true,
"engineTorque":false,
+ "engineOilLife":true,
"odometer":true,
"gps":false,
"fuelLevel_State":true,
@@ -26,7 +27,10 @@
"airbagStatus":true,
"emergencyEvent":false,
"clusterModeStatus":true,
- "myKey":true
+ "myKey":true,
+ "fuelRange":true,
+ "turnSignal":true,
+ "electronicParkBrakeStatus":true
}
},
"response":{
@@ -61,6 +65,10 @@
"dataType":"VEHICLEDATA_SPEED",
"resultCode":"INVALID_ID"
},
+ "engineOilLife":{
+ "dataType":"VEHICLEDATA_ENGINEOILLIFE",
+ "resultCode":"SUCCESS"
+ },
"odometer":{
"dataType":"VEHICLEDATA_ODOMETER",
"resultCode":"SUCCESS"
@@ -128,6 +136,18 @@
"myKey":{
"dataType":"VEHICLEDATA_MYKEY",
"resultCode":"IGNORED"
+ },
+ "fuelRange":{
+ "dataType":"VEHICLEDATA_FUELRANGE",
+ "resultCode":"SUCCESS"
+ },
+ "turnSignal":{
+ "dataType":"VEHICLEDATA_TURNSIGNAL",
+ "resultCode":"IGNORED"
+ },
+ "electronicParkBrakeStatus":{
+ "dataType":"VEHICLEDATA_ELECTRONICPARKBRAKESTATUS",
+ "resultCode":"SUCCESS"
}
}
}
diff --git a/sdl_android/src/androidTest/assets/json/SystemRequest.json b/sdl_android/src/androidTest/assets/json/SystemRequest.json
index 7768db7e4..44c6d5205 100644
--- a/sdl_android/src/androidTest/assets/json/SystemRequest.json
+++ b/sdl_android/src/androidTest/assets/json/SystemRequest.json
@@ -4,7 +4,8 @@
"correlationID":165,
"parameters":{
"fileName":"fileName.txt",
- "requestType":"AUTH_CHALLENGE",
+ "requestType":"OEM_SPECIFIC",
+ "requestSubType":"TEST",
"data":[
"data1",
"data2",
diff --git a/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json b/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json
index 24b41a0b9..d01b99aa8 100644
--- a/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json
+++ b/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json
@@ -10,6 +10,7 @@
"prndl":true,
"tirePressure":true,
"engineTorque":false,
+ "engineOilLife":true,
"odometer":true,
"gps":false,
"fuelLevel_State":true,
@@ -26,13 +27,16 @@
"airbagStatus":true,
"emergencyEvent":false,
"clusterModeStatus":true,
- "myKey":true
+ "myKey":true,
+ "fuelRange":true,
+ "turnSignal":true,
+ "electronicParkBrakeStatus":true
}
},
"response":{
"name":"UnsubscribeVehicleDataResponse",
"correlationID":172,
- "parameters":{
+ "parameters":{
"speed":{
"dataType":"VEHICLEDATA_SPEED",
"resultCode":"SUCCESS"
@@ -61,6 +65,10 @@
"dataType":"VEHICLEDATA_SPEED",
"resultCode":"INVALID_ID"
},
+ "engineOilLife":{
+ "dataType":"VEHICLEDATA_ENGINEOILLIFE",
+ "resultCode":"SUCCESS"
+ },
"odometer":{
"dataType":"VEHICLEDATA_ODOMETER",
"resultCode":"SUCCESS"
@@ -128,6 +136,18 @@
"myKey":{
"dataType":"VEHICLEDATA_MYKEY",
"resultCode":"IGNORED"
+ },
+ "fuelRange":{
+ "dataType":"VEHICLEDATA_FUELRANGE",
+ "resultCode":"SUCCESS"
+ },
+ "turnSignal":{
+ "dataType":"VEHICLEDATA_TURNSIGNAL",
+ "resultCode":"IGNORED"
+ },
+ "electronicParkBrakeStatus":{
+ "dataType":"VEHICLEDATA_ELECTRONICPARKBRAKESTATUS",
+ "resultCode":"SUCCESS"
}
}
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
index da67fe220..b971341fc 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
@@ -20,22 +20,28 @@ import com.smartdevicelink.proxy.rpc.ImageField;
import com.smartdevicelink.proxy.rpc.ImageResolution;
import com.smartdevicelink.proxy.rpc.KeyboardProperties;
import com.smartdevicelink.proxy.rpc.LocationDetails;
+import com.smartdevicelink.proxy.rpc.MassageCushionFirmness;
+import com.smartdevicelink.proxy.rpc.MassageModeData;
import com.smartdevicelink.proxy.rpc.MenuParams;
+import com.smartdevicelink.proxy.rpc.MetadataTags;
import com.smartdevicelink.proxy.rpc.ModuleData;
import com.smartdevicelink.proxy.rpc.NavigationCapability;
-import com.smartdevicelink.proxy.rpc.MetadataTags;
import com.smartdevicelink.proxy.rpc.OasisAddress;
import com.smartdevicelink.proxy.rpc.ParameterPermissions;
import com.smartdevicelink.proxy.rpc.PermissionItem;
import com.smartdevicelink.proxy.rpc.PhoneCapability;
import com.smartdevicelink.proxy.rpc.PresetBankCapabilities;
+import com.smartdevicelink.proxy.rpc.RGBColor;
import com.smartdevicelink.proxy.rpc.RadioControlCapabilities;
import com.smartdevicelink.proxy.rpc.RadioControlData;
import com.smartdevicelink.proxy.rpc.RdsData;
-import com.smartdevicelink.proxy.rpc.RemoteControlCapabilities;
import com.smartdevicelink.proxy.rpc.Rectangle;
+import com.smartdevicelink.proxy.rpc.RemoteControlCapabilities;
import com.smartdevicelink.proxy.rpc.ScreenParams;
import com.smartdevicelink.proxy.rpc.SdlMsgVersion;
+import com.smartdevicelink.proxy.rpc.SeatControlCapabilities;
+import com.smartdevicelink.proxy.rpc.SeatControlData;
+import com.smartdevicelink.proxy.rpc.SeatMemoryAction;
import com.smartdevicelink.proxy.rpc.SingleTireStatus;
import com.smartdevicelink.proxy.rpc.SoftButton;
import com.smartdevicelink.proxy.rpc.SoftButtonCapabilities;
@@ -43,6 +49,7 @@ import com.smartdevicelink.proxy.rpc.StartTime;
import com.smartdevicelink.proxy.rpc.SystemCapability;
import com.smartdevicelink.proxy.rpc.TTSChunk;
import com.smartdevicelink.proxy.rpc.Temperature;
+import com.smartdevicelink.proxy.rpc.TemplateColorScheme;
import com.smartdevicelink.proxy.rpc.TextField;
import com.smartdevicelink.proxy.rpc.TouchCoord;
import com.smartdevicelink.proxy.rpc.TouchEvent;
@@ -56,7 +63,6 @@ import com.smartdevicelink.proxy.rpc.VrHelpItem;
import com.smartdevicelink.proxy.rpc.enums.AmbientLightStatus;
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
import com.smartdevicelink.proxy.rpc.enums.AppInterfaceUnregisteredReason;
-import com.smartdevicelink.proxy.rpc.enums.AudioStreamingIndicator;
import com.smartdevicelink.proxy.rpc.enums.AudioStreamingState;
import com.smartdevicelink.proxy.rpc.enums.AudioType;
import com.smartdevicelink.proxy.rpc.enums.BitsPerSample;
@@ -76,6 +82,7 @@ import com.smartdevicelink.proxy.rpc.enums.ECallConfirmationStatus;
import com.smartdevicelink.proxy.rpc.enums.EmergencyEventType;
import com.smartdevicelink.proxy.rpc.enums.FileType;
import com.smartdevicelink.proxy.rpc.enums.FuelCutoffStatus;
+import com.smartdevicelink.proxy.rpc.enums.FuelType;
import com.smartdevicelink.proxy.rpc.enums.GlobalProperty;
import com.smartdevicelink.proxy.rpc.enums.HMILevel;
import com.smartdevicelink.proxy.rpc.enums.HmiZoneCapabilities;
@@ -90,7 +97,11 @@ import com.smartdevicelink.proxy.rpc.enums.KeypressMode;
import com.smartdevicelink.proxy.rpc.enums.Language;
import com.smartdevicelink.proxy.rpc.enums.LayoutMode;
import com.smartdevicelink.proxy.rpc.enums.LockScreenStatus;
+import com.smartdevicelink.proxy.rpc.enums.MassageCushion;
+import com.smartdevicelink.proxy.rpc.enums.MassageMode;
+import com.smartdevicelink.proxy.rpc.enums.MassageZone;
import com.smartdevicelink.proxy.rpc.enums.MediaClockFormat;
+import com.smartdevicelink.proxy.rpc.enums.MetadataType;
import com.smartdevicelink.proxy.rpc.enums.ModuleType;
import com.smartdevicelink.proxy.rpc.enums.PowerModeQualificationStatus;
import com.smartdevicelink.proxy.rpc.enums.PowerModeStatus;
@@ -101,16 +112,18 @@ import com.smartdevicelink.proxy.rpc.enums.RadioState;
import com.smartdevicelink.proxy.rpc.enums.RequestType;
import com.smartdevicelink.proxy.rpc.enums.Result;
import com.smartdevicelink.proxy.rpc.enums.SamplingRate;
+import com.smartdevicelink.proxy.rpc.enums.SeatMemoryActionType;
import com.smartdevicelink.proxy.rpc.enums.SoftButtonType;
import com.smartdevicelink.proxy.rpc.enums.SpeechCapabilities;
+import com.smartdevicelink.proxy.rpc.enums.SupportedSeat;
import com.smartdevicelink.proxy.rpc.enums.SystemAction;
import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType;
import com.smartdevicelink.proxy.rpc.enums.SystemContext;
import com.smartdevicelink.proxy.rpc.enums.TBTState;
+import com.smartdevicelink.proxy.rpc.enums.TPMS;
import com.smartdevicelink.proxy.rpc.enums.TemperatureUnit;
import com.smartdevicelink.proxy.rpc.enums.TextAlignment;
import com.smartdevicelink.proxy.rpc.enums.TextFieldName;
-import com.smartdevicelink.proxy.rpc.enums.MetadataType;
import com.smartdevicelink.proxy.rpc.enums.TouchType;
import com.smartdevicelink.proxy.rpc.enums.TriggerSource;
import com.smartdevicelink.proxy.rpc.enums.UpdateMode;
@@ -122,6 +135,7 @@ import com.smartdevicelink.proxy.rpc.enums.VehicleDataType;
import com.smartdevicelink.proxy.rpc.enums.VentilationMode;
import com.smartdevicelink.proxy.rpc.enums.VideoStreamingCodec;
import com.smartdevicelink.proxy.rpc.enums.VideoStreamingProtocol;
+import com.smartdevicelink.proxy.rpc.enums.VideoStreamingState;
import com.smartdevicelink.proxy.rpc.enums.VrCapabilities;
import com.smartdevicelink.proxy.rpc.enums.WarningLightStatus;
import com.smartdevicelink.proxy.rpc.enums.WayPointType;
@@ -135,7 +149,7 @@ import java.util.Arrays;
import java.util.List;
public class Test {
-
+
// Test Failure Messages
public static final String NULL = "Value should be null.";
public static final String MATCH = "Values should match.";
@@ -144,18 +158,20 @@ public class Test {
public static final String FALSE = "Value should be false.";
public static final String NOT_NULL = "Value should not be null.";
public static final String JSON_FAIL = "Json testing failed.";
-
+
// RPC Request/Response/Notification/Datatype Test Values
public static final int GENERAL_INT = 100;
public static final Integer GENERAL_INTEGER = 100;
public static final Long GENERAL_LONG = 100L;
public static final Turn GENERAL_TURN = new Turn();
public static final Float GENERAL_FLOAT = 100f;
- public static final Image GENERAL_IMAGE = new Image();
+ public static final Image GENERAL_IMAGE = new Image();
public static final Choice GENERAL_CHOICE = new Choice();
public static final String GENERAL_STRING = "test";
public static final Double GENERAL_DOUBLE = 10.01;
public static final boolean GENERAL_BOOLEAN = true;
+ public static final byte[] GENERAL_BYTE_ARRAY = new byte[0];
+ public static final TPMS GENERAL_TPMS = TPMS.UNKNOWN;
public static final TBTState GENERAL_TBTSTATE = TBTState.NEXT_TURN_REQUEST;
public static final FileType GENERAL_FILETYPE = FileType.BINARY;
public static final Language GENERAL_LANGUAGE = Language.EN_US;
@@ -180,9 +196,11 @@ public class Test {
public static final ButtonName GENERAL_BUTTONNAME = ButtonName.OK;
public static final UpdateMode GENERAL_UPDATEMODE = UpdateMode.RESUME;
public static final TouchCoord GENERAL_TOUCHCOORD = new TouchCoord();
+ public static final MassageModeData GENERAL_MASSAGEMODEDATA = new MassageModeData();
+ public static final MassageCushionFirmness GENERAL_MASSAGECUSHIONFIRMNESS = new MassageCushionFirmness();
public static final DisplayType GENERAL_DISPLAYTYPE = DisplayType.CID;
public static final VehicleType GENERAL_VEHICLETYPE = new VehicleType();
- public static final RequestType GENERAL_REQUESTTYPE = RequestType.AUTH_REQUEST;
+ public static final RequestType GENERAL_REQUESTTYPE = RequestType.AUTH_REQUEST;
public static final SystemAction GENERAL_SYSTEMACTION = SystemAction.DEFAULT_ACTION;
public static final CharacterSet GENERAL_CHARACTERSET = CharacterSet.CID1SET;
public static final SamplingRate GENERAL_SAMPLINGRATE = SamplingRate._8KHZ;
@@ -198,6 +216,11 @@ public class Test {
public static final SdlMsgVersion GENERAL_SDLMSGVERSION = new SdlMsgVersion();
public static final PermissionItem GENERAL_PERMISSIONITEM = new PermissionItem();
public static final SoftButtonType GENERAL_SOFTBUTTONTYPE = SoftButtonType.SBT_BOTH;
+ public static final MassageZone GENERAL_MASSAGEZONE = MassageZone.LUMBAR;
+ public static final MassageMode GENERAL_MASSAGEMODE = MassageMode.HIGH;
+ public static final MassageCushion GENERAL_MASSAGECUSHION = MassageCushion.BACK_BOLSTERS;
+ public static final SeatMemoryActionType GENERAL_SEATMEMORYACTIONTYPE = SeatMemoryActionType.SAVE;
+ public static final SupportedSeat GENERAL_SUPPORTEDSEAT = SupportedSeat.DRIVER;
public static final KeyboardLayout GENERAL_KEYBOARDLAYOUT = KeyboardLayout.QWERTY;
public static final ImageFieldName GENERAL_IMAGEFIELDNAME = ImageFieldName.graphic;
public static final HMIPermissions GENERAL_HMIPERMISSIONS = new HMIPermissions();
@@ -207,7 +230,7 @@ public class Test {
public static final PowerModeStatus GENERAL_POWERMODESTATUS = PowerModeStatus.RUNNING_2;
public static final VehicleDataType GENERAL_VEHICLEDATATYPE = VehicleDataType.VEHICLEDATA_BRAKING;
public static final InteractionMode GENERAL_INTERACTIONMODE = InteractionMode.BOTH;
- public static final ImageResolution GENERAL_IMAGERESOLUTION = new ImageResolution();
+ public static final ImageResolution GENERAL_IMAGERESOLUTION = new ImageResolution();
public static final FuelCutoffStatus GENERAL_FUELCUTOFFSTATUS = FuelCutoffStatus.NORMAL_OPERATION;
public static final CompassDirection GENERAL_COMPASSDIRECTION = CompassDirection.EAST;
public static final LockScreenStatus GENERAL_LOCKSCREENSTATUS = LockScreenStatus.REQUIRED;
@@ -215,23 +238,25 @@ public class Test {
public static final DeviceLevelStatus GENERAL_DEVICELEVELSTATUS = DeviceLevelStatus.FOUR_LEVEL_BARS;
public static final ButtonCapabilities GENERAL_BUTTONCAPABILITIES = new ButtonCapabilities();
public static final EmergencyEventType GENERAL_EMERGENCYEVENTTYPE = EmergencyEventType.FAULT;
- public static final AmbientLightStatus GENERAL_AMBIENTLIGHTSTATUS = AmbientLightStatus.NIGHT;
+ public static final AmbientLightStatus GENERAL_AMBIENTLIGHTSTATUS = AmbientLightStatus.NIGHT;
public static final SpeechCapabilities GENERAL_SPEECHCAPABILITIES = SpeechCapabilities.TEXT;
public static final WarningLightStatus GENERAL_WARNINGLIGHTSTATUS = WarningLightStatus.OFF;
- public static final KeyboardProperties GENERAL_KEYBOARDPROPERTIES = new KeyboardProperties();
+ public static final KeyboardProperties GENERAL_KEYBOARDPROPERTIES = new KeyboardProperties();
public static final PrimaryAudioSource GENERAL_PRIMARYAUDIOSOURCE = PrimaryAudioSource.BLUETOOTH_STEREO_BTST;
public static final AudioStreamingState GENERAL_AUDIOSTREAMINGSTATE = AudioStreamingState.AUDIBLE;
+ public static final VideoStreamingState GENERAL_VIDEOSTREAMINGSTATE = VideoStreamingState.STREAMABLE;
public static final DisplayCapabilities GENERAL_DISPLAYCAPABILITIES = new DisplayCapabilities();
- public static final ParameterPermissions GENERAL_PARAMETERPERMISSIONS = new ParameterPermissions();
- public static final IgnitionStableStatus GENERAL_IGNITIONSTABLESTATUS = IgnitionStableStatus.IGNITION_SWITCH_STABLE;
+ public static final ParameterPermissions GENERAL_PARAMETERPERMISSIONS = new ParameterPermissions();
+ public static final IgnitionStableStatus GENERAL_IGNITIONSTABLESTATUS = IgnitionStableStatus.IGNITION_SWITCH_STABLE;
public static final VehicleDataResultCode GENERAL_VEHICLEDATARESULTCODE = VehicleDataResultCode.IGNORED;
public static final ComponentVolumeStatus GENERAL_COMPONENTVOLUMESTATUS = ComponentVolumeStatus.LOW;
public static final PresetBankCapabilities GENERAL_PRESETBANKCAPABILITIES = new PresetBankCapabilities();
public static final VehicleDataEventStatus GENERAL_VEHCILEDATAEVENTSTATUS = VehicleDataEventStatus.YES;
public static final VehicleDataEventStatus GENERAL_VEHICLEDATAEVENTSTATUS = VehicleDataEventStatus.YES;
public static final TouchEventCapabilities GENERAL_TOUCHEVENTCAPABILITIES = new TouchEventCapabilities();
+ public static final SeatMemoryAction GENERAL_SEATMEMORYACTION = new SeatMemoryAction();
public static final SoftButtonCapabilities GENERAL_SOFTBUTTONCAPABILITIES = new SoftButtonCapabilities();
- public static final ECallConfirmationStatus GENERAL_ECALLCONFIRMATIONSTATUS = ECallConfirmationStatus.CALL_IN_PROGRESS;
+ public static final ECallConfirmationStatus GENERAL_ECALLCONFIRMATIONSTATUS = ECallConfirmationStatus.CALL_IN_PROGRESS;
public static final AudioPassThruCapabilities GENERAL_AUDIOPASSTHRUCAPABILITIES = new AudioPassThruCapabilities();
public static final PowerModeQualificationStatus GENERAL_POWERMODEQUALIFICATIONSTATUS = PowerModeQualificationStatus.POWER_MODE_OK;
public static final VehicleDataNotificationStatus GENERAL_VEHICLEDATANOTIFICATIONSTATUS = VehicleDataNotificationStatus.NORMAL;
@@ -245,12 +270,16 @@ public class Test {
public static final VideoStreamingCodec GENERAL_VIDEOSTREAMINGCODEC = VideoStreamingCodec.H264;
public static final VideoStreamingCapability GENERAL_VIDEOSTREAMINGCAPABILITY = new VideoStreamingCapability();
public static final VideoStreamingFormat GENERAL_VIDEOSTREAMINGFORMAT = new VideoStreamingFormat();
+ public static final RGBColor GENERAL_RGBCOLOR = new RGBColor();
+ public static final TemplateColorScheme GENERAL_DAYCOLORSCHEME = new TemplateColorScheme();
+ public static final TemplateColorScheme GENERAL_NIGHTCOLORSCHEME = new TemplateColorScheme();
public static final Result GENERAL_RESULT = Result.SUCCESS;
public static final WayPointType GENERAL_WAYPOINTTYPE = WayPointType.DESTINATION;
public static final SingleTireStatus GENERAL_SINGLETIRESTATUS = new SingleTireStatus();
public static final DriverDistractionState GENERAL_DRIVERDISTRACTIONSTATE = DriverDistractionState.DD_ON;
public static final List<LocationDetails> GENERAL_LOCATIONDETAILS_LIST = Arrays.asList(new LocationDetails[] { Test.GENERAL_LOCATIONDETAILS, Test.GENERAL_LOCATIONDETAILS});
+
public static final ModuleType GENERAL_MODULETYPE = ModuleType.CLIMATE;
public static final Temperature GENERAL_TEMPERATURE = new Temperature();
public static final TemperatureUnit GENERAL_TEMPERATUREUNIT = TemperatureUnit.CELSIUS;
@@ -258,19 +287,21 @@ public class Test {
public static final VentilationMode GENERAL_VENTILATIONMODE = VentilationMode.BOTH;
public static final RadioBand GENERAL_RADIOBAND = RadioBand.AM;
public static final ClimateControlData GENERAL_CLIMATECONTROLDATA = new ClimateControlData();
+ public static final SeatControlData GENERAL_SEATCONTROLDATA = new SeatControlData();
public static final RdsData GENERAL_RDSDATA = new RdsData();
public static final RadioState GENERAL_RADIOSTATE = RadioState.ACQUIRED;
public static final RadioControlData GENERAL_RADIOCONTROLDATA = new RadioControlData();
public static final ModuleData GENERAL_MODULEDATA = new ModuleData();
public static final ClimateControlCapabilities GENERAL_CLIMATECONTROLCAPABILITIES = new ClimateControlCapabilities();
public static final RadioControlCapabilities GENERAL_RADIOCONTROLCAPABILITIES = new RadioControlCapabilities();
- public static final AudioStreamingIndicator GENERAL_AUDIO_STREAMING_INDICATOR = AudioStreamingIndicator.PLAY;
+ public static final SeatControlCapabilities GENERAL_SEATCONTROLCAPABILITIES = new SeatControlCapabilities();
public static final HMICapabilities GENERAL_HMICAPABILITIES = new HMICapabilities();
public static final MetadataTags GENERAL_METADATASTRUCT = new MetadataTags();
public static final Rectangle GENERAL_RECTANGLE = new Rectangle();
public static final HapticRect GENERAL_HAPTIC_RECT = new HapticRect();
+ public static final FuelType GENERAL_FUELTYPE = FuelType.GASOLINE;
public static final List<Long> GENERAL_LONG_LIST = Arrays.asList(new Long[]{ 1L, 2L });
public static final List<Turn> GENERAL_TURN_LIST = new ArrayList<Turn>();
@@ -283,6 +314,8 @@ public class Test {
public static final List<TextField> GENERAL_TEXTFIELD_LIST = new ArrayList<TextField>(1);
public static final List<DIDResult> GENERAL_DIDRESULT_LIST = new ArrayList<DIDResult>(1);
public static final List<TouchCoord> GENERAL_TOUCHCOORD_LIST = new ArrayList<TouchCoord>(1);
+ public static final List<MassageModeData> GENERAL_MASSAGEMODEDATA_LIST = new ArrayList<MassageModeData>(1);
+ public static final List<MassageCushionFirmness> GENERAL_MASSAGECUSHIONFIRMNESS_LIST = new ArrayList<MassageCushionFirmness>(1);
public static final List<AppHMIType> GENERAL_APPHMITYPE_LIST = new ArrayList<AppHMIType>(2);
public static final List<VrHelpItem> GENERAL_VRHELPITEM_LIST = new ArrayList<VrHelpItem>(2);
public static final List<SoftButton> GENERAL_SOFTBUTTON_LIST = new ArrayList<SoftButton>(1);
@@ -304,16 +337,17 @@ public class Test {
public static final List<VentilationMode> GENERAL_VENTILATIONMODE_LIST = Arrays.asList(new VentilationMode[]{VentilationMode.LOWER, VentilationMode.UPPER});
public static final List<ClimateControlCapabilities> GENERAL_CLIMATECONTROLCAPABILITIES_LIST = new ArrayList<ClimateControlCapabilities>(1);
public static final List<RadioControlCapabilities> GENERAL_RADIOCONTROLCAPABILITIES_LIST = new ArrayList<RadioControlCapabilities>(1);
+ public static final List<SeatControlCapabilities> GENERAL_SEATCONTROLCAPABILITIES_LIST = new ArrayList<SeatControlCapabilities>(1);
public static final JSONArray JSON_TURNS = new JSONArray();
- public static final JSONArray JSON_CHOICES = new JSONArray();
+ public static final JSONArray JSON_CHOICES = new JSONArray();
public static final JSONArray JSON_HMILEVELS = new JSONArray();
public static final JSONArray JSON_TTSCHUNKS = new JSONArray();
public static final JSONArray JSON_DIDRESULTS = new JSONArray();
public static final JSONArray JSON_TEXTFIELDS = new JSONArray();
public static final JSONArray JSON_TOUCHCOORDS = new JSONArray();
public static final JSONArray JSON_VRHELPITEMS = new JSONArray();
- public static final JSONArray JSON_SOFTBUTTONS = new JSONArray();
+ public static final JSONArray JSON_SOFTBUTTONS = new JSONArray();
public static final JSONArray JSON_IMAGEFIELDS = new JSONArray();
public static final JSONArray JSON_TOUCHEVENTS = new JSONArray();
public static final JSONArray JSON_PERMISSIONITEMS = new JSONArray();
@@ -336,23 +370,30 @@ public class Test {
public static final JSONObject JSON_MENUPARAMS = new JSONObject();
public static final JSONObject JSON_DEVICEINFO = new JSONObject();
public static final JSONObject JSON_VRHELPITEM = new JSONObject();
- public static final JSONObject JSON_SCREENPARAMS = new JSONObject();
+ public static final JSONObject JSON_SCREENPARAMS = new JSONObject();
public static final JSONObject JSON_SDLMSGVERSION = new JSONObject();
public static final JSONObject JSON_PERMISSIONITEM = new JSONObject();
public static final JSONObject JSON_HMIPERMISSIONS = new JSONObject();
- public static final JSONObject JSON_IMAGERESOLUTION = new JSONObject();
+ public static final JSONObject JSON_IMAGERESOLUTION = new JSONObject();
public static final JSONObject JSON_KEYBOARDPROPERTIES = new JSONObject();
public static final JSONObject JSON_DISPLAYCAPABILITIES = new JSONObject();
public static final JSONObject JSON_PARAMETERPERMISSIONS = new JSONObject();
public static final JSONObject JSON_PRESETBANKCAPABILITIES = new JSONObject();
public static final JSONObject JSON_TOUCHEVENTCAPABILITIES = new JSONObject();
public static final JSONObject JSON_PCMSTREAMCAPABILITIES = new JSONObject();
+ public static final JSONObject JSON_RGBCOLOR = new JSONObject();
+ public static final JSONObject JSON_DAYCOLORSCHEME = new JSONObject();
+ public static final JSONObject JSON_NIGHTCOLORSCHEME = new JSONObject();
static {
GENERAL_TOUCHEVENTCAPABILITIES.setDoublePressAvailable(GENERAL_BOOLEAN);
GENERAL_TOUCHEVENTCAPABILITIES.setMultiTouchAvailable(GENERAL_BOOLEAN);
GENERAL_TOUCHEVENTCAPABILITIES.setPressAvailable(GENERAL_BOOLEAN);
-
+
+ GENERAL_SEATMEMORYACTION.setAction(GENERAL_SEATMEMORYACTIONTYPE);
+ GENERAL_SEATMEMORYACTION.setLabel(GENERAL_STRING);
+ GENERAL_SEATMEMORYACTION.setId(GENERAL_INT);
+
GENERAL_IMAGERESOLUTION.setResolutionHeight(GENERAL_INT);
GENERAL_IMAGERESOLUTION.setResolutionWidth(GENERAL_INT);
@@ -370,6 +411,23 @@ public class Test {
GENERAL_CLIMATECONTROLDATA.setDefrostZone(GENERAL_DEFROSTZONE);
GENERAL_CLIMATECONTROLDATA.setVentilationMode(GENERAL_VENTILATIONMODE);
+ GENERAL_SEATCONTROLDATA.setMemory(GENERAL_SEATMEMORYACTION);
+ GENERAL_SEATCONTROLDATA.setMassageCushionFirmness(GENERAL_MASSAGECUSHIONFIRMNESS_LIST);
+ GENERAL_SEATCONTROLDATA.setMassageMode(GENERAL_MASSAGEMODEDATA_LIST);
+ GENERAL_SEATCONTROLDATA.setMassageEnabled(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLDATA.setHeadSupportHorizontalPosition(GENERAL_INT);
+ GENERAL_SEATCONTROLDATA.setHeadSupportVerticalPosition(GENERAL_INT);
+ GENERAL_SEATCONTROLDATA.setBackTiltAngle(GENERAL_INT);
+ GENERAL_SEATCONTROLDATA.setBackVerticalPosition(GENERAL_INT);
+ GENERAL_SEATCONTROLDATA.setFrontVerticalPosition(GENERAL_INT);
+ GENERAL_SEATCONTROLDATA.setVerticalPosition(GENERAL_INT);
+ GENERAL_SEATCONTROLDATA.setHorizontalPosition(GENERAL_INT);
+ GENERAL_SEATCONTROLDATA.setCoolingLevel(GENERAL_INT);
+ GENERAL_SEATCONTROLDATA.setHeatingLevel(GENERAL_INT);
+ GENERAL_SEATCONTROLDATA.setHeatingEnabled(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLDATA.setCoolingEnabled(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLDATA.setId(GENERAL_SUPPORTEDSEAT);
+
GENERAL_RDSDATA.setProgramService(GENERAL_STRING);
GENERAL_RDSDATA.setRadioText(GENERAL_STRING);
GENERAL_RDSDATA.setClockText(GENERAL_STRING);
@@ -400,16 +458,24 @@ public class Test {
GENERAL_CHOICE.setImage(GENERAL_IMAGE);
GENERAL_CHOICE.setSecondaryImage(GENERAL_IMAGE);
GENERAL_CHOICE.setVrCommands(GENERAL_STRING_LIST);
-
+
+ GENERAL_MASSAGEMODEDATA.setMassageMode(GENERAL_MASSAGEMODE);
+ GENERAL_MASSAGEMODEDATA.setMassageZone(GENERAL_MASSAGEZONE);
+ GENERAL_MASSAGEMODEDATA_LIST.add(GENERAL_MASSAGEMODEDATA);
+
+ GENERAL_MASSAGECUSHIONFIRMNESS.setCushion(GENERAL_MASSAGECUSHION);
+ GENERAL_MASSAGECUSHIONFIRMNESS.setFirmness(GENERAL_INT);
+ GENERAL_MASSAGECUSHIONFIRMNESS_LIST.add(GENERAL_MASSAGECUSHIONFIRMNESS);
+
GENERAL_TOUCHCOORD.setX(GENERAL_INT);
- GENERAL_TOUCHCOORD.setY(GENERAL_INT);
+ GENERAL_TOUCHCOORD.setY(GENERAL_INT);
GENERAL_TOUCHCOORD_LIST.add(GENERAL_TOUCHCOORD);
-
+
GENERAL_TOUCHEVENT.setId(GENERAL_INT);
GENERAL_TOUCHEVENT.setTs(GENERAL_LONG_LIST);
- GENERAL_TOUCHEVENT.setC(GENERAL_TOUCHCOORD_LIST);
+ GENERAL_TOUCHEVENT.setC(GENERAL_TOUCHCOORD_LIST);
GENERAL_TOUCHEVENT_LIST.add(GENERAL_TOUCHEVENT);
-
+
GENERAL_TEXTFIELD.setName(GENERAL_TEXTFIELDNAME);
GENERAL_TEXTFIELD.setRows(GENERAL_INT);
GENERAL_TEXTFIELD.setWidth(GENERAL_INT);
@@ -436,23 +502,24 @@ public class Test {
GENERAL_LOCATIONDETAILS.setLocationName(GENERAL_STRING);
GENERAL_LOCATIONDETAILS.setSearchAddress(GENERAL_OASISADDRESS);
GENERAL_LOCATIONDETAILS.setPhoneNumber(GENERAL_STRING);
-
+
GENERAL_FILETYPE_LIST.add(GENERAL_FILETYPE);
-
+
GENERAL_IMAGEFIELD.setImageResolution(GENERAL_IMAGERESOLUTION);
GENERAL_IMAGEFIELD.setName(GENERAL_IMAGEFIELDNAME);
GENERAL_IMAGEFIELD.setImageTypeSupported(GENERAL_FILETYPE_LIST);
GENERAL_IMAGEFIELD_LIST.add(GENERAL_IMAGEFIELD);
-
+
GENERAL_SCREENPARAMS.setImageResolution(GENERAL_IMAGERESOLUTION);
GENERAL_SCREENPARAMS.setTouchEventAvailable(GENERAL_TOUCHEVENTCAPABILITIES);
-
+
GENERAL_MEDIACLOCKFORMAT_LIST.add(MediaClockFormat.CLOCK1);
GENERAL_MEDIACLOCKFORMAT_LIST.add(MediaClockFormat.CLOCK2);
-
+
GENERAL_IMAGE.setValue(GENERAL_STRING);
GENERAL_IMAGE.setImageType(GENERAL_IMAGETYPE);
-
+ GENERAL_IMAGE.setIsTemplate(GENERAL_BOOLEAN);
+
GENERAL_SOFTBUTTON.setIsHighlighted(GENERAL_BOOLEAN);
GENERAL_SOFTBUTTON.setSoftButtonID(GENERAL_INT);
GENERAL_SOFTBUTTON.setSystemAction(SystemAction.STEAL_FOCUS);
@@ -460,64 +527,65 @@ public class Test {
GENERAL_SOFTBUTTON.setType(SoftButtonType.SBT_TEXT);
GENERAL_SOFTBUTTON.setImage(GENERAL_IMAGE);
GENERAL_SOFTBUTTON_LIST.add(GENERAL_SOFTBUTTON);
-
+
GENERAL_TURN.setNavigationText(GENERAL_STRING);
GENERAL_TURN.setTurnIcon(GENERAL_IMAGE);
GENERAL_TURN_LIST.add(GENERAL_TURN);
-
+
GENERAL_MENUPARAMS.setMenuName(GENERAL_STRING);
GENERAL_MENUPARAMS.setParentID(GENERAL_INT);
GENERAL_MENUPARAMS.setPosition(GENERAL_INT);
-
+
GENERAL_VRHELPITEM.setText(GENERAL_STRING);
GENERAL_VRHELPITEM.setImage(GENERAL_IMAGE);
- GENERAL_VRHELPITEM.setPosition(100);
+ GENERAL_VRHELPITEM.setPosition(100);
GENERAL_VRHELPITEM_LIST.add(GENERAL_VRHELPITEM);
-
+
GENERAL_TTSCHUNK_LIST.add(TTSChunkFactory.createChunk(SpeechCapabilities.TEXT, "Welcome to the jungle"));
GENERAL_TTSCHUNK_LIST.add(TTSChunkFactory.createChunk(SpeechCapabilities.TEXT, "Say a command"));
-
+
GENERAL_KEYBOARDPROPERTIES.setAutoCompleteText(GENERAL_STRING);
GENERAL_KEYBOARDPROPERTIES.setKeypressMode(KeypressMode.SINGLE_KEYPRESS);
GENERAL_KEYBOARDPROPERTIES.setKeyboardLayout(KeyboardLayout.QWERTY);
GENERAL_KEYBOARDPROPERTIES.setLanguage(Language.EN_US);
GENERAL_KEYBOARDPROPERTIES.setLimitedCharacterList(Test.GENERAL_STRING_LIST);
-
+
GENERAL_STARTTIME.setHours(GENERAL_INT);
GENERAL_STARTTIME.setMinutes(GENERAL_INT);
GENERAL_STARTTIME.setSeconds(GENERAL_INT);
-
+
GENERAL_CHOICE_LIST.add(GENERAL_CHOICE);
-
+
GENERAL_DEVICEINFO.setCarrier(GENERAL_STRING);
GENERAL_DEVICEINFO.setFirmwareRev(GENERAL_STRING);
GENERAL_DEVICEINFO.setHardware(GENERAL_STRING);
GENERAL_DEVICEINFO.setMaxNumberRFCOMMPorts(GENERAL_INT);
GENERAL_DEVICEINFO.setOs(GENERAL_STRING);
GENERAL_DEVICEINFO.setOsVersion(GENERAL_STRING);
-
+
GENERAL_SDLMSGVERSION.setMajorVersion(GENERAL_INT);
GENERAL_SDLMSGVERSION.setMinorVersion(GENERAL_INT);
-
+
GENERAL_APPHMITYPE_LIST.add(AppHMIType.BACKGROUND_PROCESS);
GENERAL_APPHMITYPE_LIST.add(AppHMIType.COMMUNICATION);
-
+
GENERAL_GLOBALPROPERTY_LIST.add(GlobalProperty.HELPPROMPT);
GENERAL_GLOBALPROPERTY_LIST.add(GlobalProperty.MENUICON);
-
+
for (VehicleDataType data : VehicleDataType.values()) {
VehicleDataResult result = new VehicleDataResult();
result.setResultCode(VehicleDataResultCode.SUCCESS);
result.setDataType(data);
GENERAL_VEHICLEDATARESULT_LIST.add(result);
}
-
+
GENERAL_DIDRESULT.setData(GENERAL_STRING);
GENERAL_DIDRESULT.setDidLocation(GENERAL_INT);
GENERAL_DIDRESULT.setResultCode(VehicleDataResultCode.SUCCESS);
GENERAL_DIDRESULT_LIST.add(GENERAL_DIDRESULT);
-
+
GENERAL_DISPLAYCAPABILITIES.setDisplayType(GENERAL_DISPLAYTYPE);
+ GENERAL_DISPLAYCAPABILITIES.setDisplayName(GENERAL_STRING);
GENERAL_DISPLAYCAPABILITIES.setGraphicSupported(GENERAL_BOOLEAN);
GENERAL_DISPLAYCAPABILITIES.setImageFields(GENERAL_IMAGEFIELD_LIST);
GENERAL_DISPLAYCAPABILITIES.setMediaClockFormats(GENERAL_MEDIACLOCKFORMAT_LIST);
@@ -525,48 +593,48 @@ public class Test {
GENERAL_DISPLAYCAPABILITIES.setScreenParams(GENERAL_SCREENPARAMS);
GENERAL_DISPLAYCAPABILITIES.setTemplatesAvailable(GENERAL_STRING_LIST);
GENERAL_DISPLAYCAPABILITIES.setTextFields(GENERAL_TEXTFIELD_LIST);
-
+
GENERAL_PRESETBANKCAPABILITIES.setOnScreenPresetsAvailable(GENERAL_BOOLEAN);
-
+
GENERAL_BUTTONCAPABILITIES.setLongPressAvailable(false);
GENERAL_BUTTONCAPABILITIES.setShortPressAvailable(true);
GENERAL_BUTTONCAPABILITIES.setUpDownAvailable(true);
- GENERAL_BUTTONCAPABILITIES.setName(ButtonName.SEEKRIGHT);
+ GENERAL_BUTTONCAPABILITIES.setName(ButtonName.SEEKRIGHT);
GENERAL_BUTTONCAPABILITIES_LIST.add(GENERAL_BUTTONCAPABILITIES);
-
+
GENERAL_SOFTBUTTONCAPABILITIES.setLongPressAvailable(GENERAL_BOOLEAN);
GENERAL_SOFTBUTTONCAPABILITIES.setShortPressAvailable(GENERAL_BOOLEAN);
GENERAL_SOFTBUTTONCAPABILITIES.setUpDownAvailable(GENERAL_BOOLEAN);
GENERAL_SOFTBUTTONCAPABILITIES.setImageSupported(GENERAL_BOOLEAN);
- GENERAL_SOFTBUTTONCAPABILITIES_LIST.add(GENERAL_SOFTBUTTONCAPABILITIES);
-
+ GENERAL_SOFTBUTTONCAPABILITIES_LIST.add(GENERAL_SOFTBUTTONCAPABILITIES);
+
GENERAL_VEHICLETYPE.setMake(GENERAL_STRING);
GENERAL_VEHICLETYPE.setModel(GENERAL_STRING);
GENERAL_VEHICLETYPE.setModelYear(GENERAL_STRING);
GENERAL_VEHICLETYPE.setTrim(GENERAL_STRING);
-
+
GENERAL_AUDIOPASSTHRUCAPABILITIES.setAudioType(GENERAL_AUDIOTYPE);
GENERAL_AUDIOPASSTHRUCAPABILITIES.setBitsPerSample(GENERAL_BITSPERSAMPLE);
GENERAL_AUDIOPASSTHRUCAPABILITIES.setSamplingRate(GENERAL_SAMPLINGRATE);
GENERAL_AUDIOPASSTHRUCAPABILITIES_LIST.add(GENERAL_AUDIOPASSTHRUCAPABILITIES);
-
+
GENERAL_PRERECORDEDSPEECH_LIST.add(PrerecordedSpeech.HELP_JINGLE);
GENERAL_PRERECORDEDSPEECH_LIST.add(PrerecordedSpeech.INITIAL_JINGLE);
-
+
GENERAL_HMIZONECAPABILITIES_LIST.add(HmiZoneCapabilities.BACK);
GENERAL_HMIZONECAPABILITIES_LIST.add(HmiZoneCapabilities.FRONT);
-
+
GENERAL_SPEECHCAPABILITIES_LIST.add(SpeechCapabilities.SILENCE);
GENERAL_SPEECHCAPABILITIES_LIST.add(SpeechCapabilities.TEXT);
-
+
GENERAL_VRCAPABILITIES_LIST.add(VrCapabilities.TEXT);
-
+
GENERAL_HMIPERMISSIONS.setAllowed(GENERAL_HMILEVEL_LIST);
GENERAL_HMIPERMISSIONS.setUserDisallowed(GENERAL_HMILEVEL_LIST);
-
+
GENERAL_PARAMETERPERMISSIONS.setAllowed(GENERAL_STRING_LIST);
GENERAL_PARAMETERPERMISSIONS.setUserDisallowed(GENERAL_STRING_LIST);
-
+
GENERAL_PERMISSIONITEM.setRpcName(GENERAL_STRING);
GENERAL_PERMISSIONITEM.setHMIPermissions(GENERAL_HMIPERMISSIONS);
GENERAL_PERMISSIONITEM.setParameterPermissions(GENERAL_PARAMETERPERMISSIONS);
@@ -615,6 +683,24 @@ public class Test {
GENERAL_RADIOCONTROLCAPABILITIES.setSignalChangeThresholdAvailable(GENERAL_BOOLEAN);
GENERAL_RADIOCONTROLCAPABILITIES_LIST.add(GENERAL_RADIOCONTROLCAPABILITIES);
+ GENERAL_SEATCONTROLCAPABILITIES.setMemoryAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setMassageCushionFirmnessAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setMassageModeAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setMassageEnabledAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setHeadSupportVerticalPositionAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setHeadSupportHorizontalPositionAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setBackTiltAngleAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setBackVerticalPositionAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setFrontVerticalPositionAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setVerticalPositionAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setHorizontalPositionAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setCoolingLevelAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setHeatingLevelAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setCoolingEnabledAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setHeatingEnabledAvailable(GENERAL_BOOLEAN);
+ GENERAL_SEATCONTROLCAPABILITIES.setModuleName(GENERAL_STRING);
+ GENERAL_SEATCONTROLCAPABILITIES_LIST.add(GENERAL_SEATCONTROLCAPABILITIES);
+
GENERAL_REMOTECONTROLCAPABILITIES.setButtonCapabilities(GENERAL_BUTTONCAPABILITIES_LIST);
GENERAL_REMOTECONTROLCAPABILITIES.setClimateControlCapabilities(GENERAL_CLIMATECONTROLCAPABILITIES_LIST);
GENERAL_REMOTECONTROLCAPABILITIES.setRadioControlCapabilities(GENERAL_RADIOCONTROLCAPABILITIES_LIST);
@@ -641,7 +727,19 @@ public class Test {
GENERAL_HAPTIC_RECT.setId(GENERAL_INTEGER);
GENERAL_HAPTIC_RECT.setRect(GENERAL_RECTANGLE);
-
+ GENERAL_RGBCOLOR.setRed(GENERAL_INTEGER);
+ GENERAL_RGBCOLOR.setGreen(GENERAL_INTEGER);
+ GENERAL_RGBCOLOR.setBlue(GENERAL_INTEGER);
+
+ GENERAL_NIGHTCOLORSCHEME.setPrimaryColor(GENERAL_RGBCOLOR);
+ GENERAL_NIGHTCOLORSCHEME.setSecondaryColor(GENERAL_RGBCOLOR);
+ GENERAL_NIGHTCOLORSCHEME.setBackgroundColor(GENERAL_RGBCOLOR);
+
+ GENERAL_DAYCOLORSCHEME.setPrimaryColor(GENERAL_RGBCOLOR);
+ GENERAL_DAYCOLORSCHEME.setSecondaryColor(GENERAL_RGBCOLOR);
+ GENERAL_DAYCOLORSCHEME.setBackgroundColor(GENERAL_RGBCOLOR);
+
+
try {
JSON_HMIPERMISSIONS.put(HMIPermissions.KEY_ALLOWED, GENERAL_HMILEVEL_LIST);
JSON_HMIPERMISSIONS.put(HMIPermissions.KEY_USER_DISALLOWED, GENERAL_HMILEVEL_LIST);
@@ -649,14 +747,14 @@ public class Test {
JSON_PCMSTREAMCAPABILITIES.put(AudioPassThruCapabilities.KEY_AUDIO_TYPE, GENERAL_AUDIOTYPE);
JSON_PCMSTREAMCAPABILITIES.put(AudioPassThruCapabilities.KEY_BITS_PER_SAMPLE, GENERAL_BITSPERSAMPLE);
JSON_PCMSTREAMCAPABILITIES.put(AudioPassThruCapabilities.KEY_SAMPLING_RATE, GENERAL_SAMPLINGRATE);
-
+
JSON_TOUCHEVENTCAPABILITIES.put(TouchEventCapabilities.KEY_DOUBLE_PRESS_AVAILABLE, GENERAL_BOOLEAN);
JSON_TOUCHEVENTCAPABILITIES.put(TouchEventCapabilities.KEY_MULTI_TOUCH_AVAILABLE, GENERAL_BOOLEAN);
JSON_TOUCHEVENTCAPABILITIES.put(TouchEventCapabilities.KEY_PRESS_AVAILABLE, GENERAL_BOOLEAN);
-
+
JSON_IMAGERESOLUTION.put(ImageResolution.KEY_RESOLUTION_HEIGHT, GENERAL_INT);
JSON_IMAGERESOLUTION.put(ImageResolution.KEY_RESOLUTION_WIDTH, GENERAL_INT);
-
+
JSON_CHOICE.put(Choice.KEY_MENU_NAME, GENERAL_STRING);
JSON_CHOICE.put(Choice.KEY_SECONDARY_TEXT, GENERAL_STRING);
JSON_CHOICE.put(Choice.KEY_TERTIARY_TEXT, GENERAL_STRING);
@@ -664,24 +762,25 @@ public class Test {
JSON_CHOICE.put(Choice.KEY_IMAGE, JSON_IMAGE);
JSON_CHOICE.put(Choice.KEY_SECONDARY_IMAGE, JSON_IMAGE);
JSON_CHOICE.put(Choice.KEY_VR_COMMANDS, JsonUtils.createJsonArray(GENERAL_STRING_LIST));
-
+
JSON_HMILEVELS.put(HMILevel.HMI_FULL);
JSON_HMILEVELS.put(HMILevel.HMI_BACKGROUND);
-
+
JSON_HMIPERMISSIONS.put(HMIPermissions.KEY_ALLOWED, JSON_HMILEVELS);
JSON_HMIPERMISSIONS.put(HMIPermissions.KEY_USER_DISALLOWED, JSON_HMILEVELS);
-
+
JSON_PARAMETERPERMISSIONS.put(ParameterPermissions.KEY_ALLOWED, JsonUtils.createJsonArray(GENERAL_STRING_LIST));
JSON_PARAMETERPERMISSIONS.put(ParameterPermissions.KEY_USER_DISALLOWED, JsonUtils.createJsonArray(GENERAL_STRING_LIST));
-
+
JSON_PERMISSIONITEM.put(PermissionItem.KEY_HMI_PERMISSIONS, JSON_HMIPERMISSIONS);
JSON_PERMISSIONITEM.put(PermissionItem.KEY_PARAMETER_PERMISSIONS, JSON_PARAMETERPERMISSIONS);
JSON_PERMISSIONITEM.put(PermissionItem.KEY_RPC_NAME, GENERAL_STRING);
JSON_PERMISSIONITEMS.put(JSON_PERMISSIONITEM);
-
+
JSON_IMAGE.put(Image.KEY_IMAGE_TYPE, GENERAL_IMAGETYPE);
JSON_IMAGE.put(Image.KEY_VALUE, GENERAL_STRING);
-
+ JSON_IMAGE.put(Image.KEY_IS_TEMPLATE, GENERAL_BOOLEAN);
+
JSON_SOFTBUTTON.put(SoftButton.KEY_IS_HIGHLIGHTED , GENERAL_BOOLEAN);
JSON_SOFTBUTTON.put(SoftButton.KEY_SOFT_BUTTON_ID, GENERAL_INT);
JSON_SOFTBUTTON.put(SoftButton.KEY_SYSTEM_ACTION, SystemAction.STEAL_FOCUS);
@@ -689,20 +788,20 @@ public class Test {
JSON_SOFTBUTTON.put(SoftButton.KEY_TYPE, SoftButtonType.SBT_TEXT);
JSON_SOFTBUTTON.put(SoftButton.KEY_IMAGE, GENERAL_IMAGE.serializeJSON());
JSON_SOFTBUTTONS.put(JSON_SOFTBUTTON);
-
+
JSON_TURN.put(Turn.KEY_NAVIGATION_TEXT, GENERAL_STRING);
JSON_TURN.put(Turn.KEY_TURN_IMAGE, GENERAL_IMAGE.serializeJSON());
JSON_TURNS.put(JSON_TURN);
-
+
JSON_MENUPARAMS.put(MenuParams.KEY_MENU_NAME, GENERAL_STRING);
JSON_MENUPARAMS.put(MenuParams.KEY_PARENT_ID, GENERAL_INT);
JSON_MENUPARAMS.put(MenuParams.KEY_POSITION, GENERAL_INT);
-
+
JSON_VRHELPITEM.put(VrHelpItem.KEY_TEXT, GENERAL_STRING);
JSON_VRHELPITEM.put(VrHelpItem.KEY_IMAGE, JSON_IMAGE);
JSON_VRHELPITEM.put(VrHelpItem.KEY_POSITION, GENERAL_INT);
JSON_VRHELPITEMS.put(JSON_VRHELPITEM);
-
+
JSONObject jsonTtsChunk = new JSONObject();
jsonTtsChunk.put(TTSChunk.KEY_TEXT, "Welcome to the jungle");
jsonTtsChunk.put(TTSChunk.KEY_TYPE, SpeechCapabilities.TEXT);
@@ -711,36 +810,48 @@ public class Test {
jsonTtsChunk.put(TTSChunk.KEY_TEXT, "Say a command");
jsonTtsChunk.put(TTSChunk.KEY_TYPE, SpeechCapabilities.TEXT);
JSON_TTSCHUNKS.put(jsonTtsChunk);
-
+
JSON_KEYBOARDPROPERTIES.put(KeyboardProperties.KEY_AUTO_COMPLETE_TEXT, GENERAL_STRING);
JSON_KEYBOARDPROPERTIES.put(KeyboardProperties.KEY_KEYPRESS_MODE, KeypressMode.SINGLE_KEYPRESS);
JSON_KEYBOARDPROPERTIES.put(KeyboardProperties.KEY_KEYBOARD_LAYOUT, KeyboardLayout.QWERTY);
JSON_KEYBOARDPROPERTIES.put(KeyboardProperties.KEY_LANGUAGE, Language.EN_US);
JSON_KEYBOARDPROPERTIES.put(KeyboardProperties.KEY_LIMITED_CHARACTER_LIST, JsonUtils.createJsonArray(GENERAL_STRING_LIST));
-
+
JSON_STARTTIME.put(StartTime.KEY_HOURS, GENERAL_STARTTIME.getHours());
JSON_STARTTIME.put(StartTime.KEY_MINUTES, GENERAL_STARTTIME.getMinutes());
JSON_STARTTIME.put(StartTime.KEY_SECONDS, GENERAL_STARTTIME.getSeconds());
-
+
JSON_CHOICES.put(JSON_CHOICE);
-
+
JSON_DEVICEINFO.put(DeviceInfo.KEY_CARRIER, GENERAL_STRING);
JSON_DEVICEINFO.put(DeviceInfo.KEY_FIRMWARE_REV, GENERAL_STRING);
JSON_DEVICEINFO.put(DeviceInfo.KEY_HARDWARE, GENERAL_STRING);
JSON_DEVICEINFO.put(DeviceInfo.KEY_MAX_NUMBER_RFCOMM_PORTS, GENERAL_INT);
JSON_DEVICEINFO.put(DeviceInfo.KEY_OS, GENERAL_STRING);
JSON_DEVICEINFO.put(DeviceInfo.KEY_OS_VERSION, GENERAL_STRING);
-
+
+ JSON_RGBCOLOR.put(RGBColor.KEY_RED, GENERAL_INT);
+ JSON_RGBCOLOR.put(RGBColor.KEY_GREEN, GENERAL_INT);
+ JSON_RGBCOLOR.put(RGBColor.KEY_BLUE, GENERAL_INT);
+
+ JSON_DAYCOLORSCHEME.put(TemplateColorScheme.KEY_PRIMARY_COLOR, JSON_RGBCOLOR);
+ JSON_DAYCOLORSCHEME.put(TemplateColorScheme.KEY_SECONDARY_COLOR, JSON_RGBCOLOR);
+ JSON_DAYCOLORSCHEME.put(TemplateColorScheme.KEY_BACKGROUND_COLOR, JSON_RGBCOLOR);
+
+ JSON_NIGHTCOLORSCHEME.put(TemplateColorScheme.KEY_PRIMARY_COLOR, JSON_RGBCOLOR);
+ JSON_NIGHTCOLORSCHEME.put(TemplateColorScheme.KEY_SECONDARY_COLOR, JSON_RGBCOLOR);
+ JSON_NIGHTCOLORSCHEME.put(TemplateColorScheme.KEY_BACKGROUND_COLOR, JSON_RGBCOLOR);
+
JSON_SDLMSGVERSION.put(SdlMsgVersion.KEY_MAJOR_VERSION, GENERAL_INT);
- JSON_SDLMSGVERSION.put(SdlMsgVersion.KEY_MINOR_VERSION, GENERAL_INT);
-
+ JSON_SDLMSGVERSION.put(SdlMsgVersion.KEY_MINOR_VERSION, GENERAL_INT);
+
JSON_DIDRESULT.put(DIDResult.KEY_DATA, GENERAL_STRING);
JSON_DIDRESULT.put(DIDResult.KEY_DID_LOCATION, GENERAL_INT);
JSON_DIDRESULT.put(DIDResult.KEY_RESULT_CODE, VehicleDataResultCode.SUCCESS);
JSON_DIDRESULTS.put(JSON_DIDRESULT);
-
+
JSON_PRESETBANKCAPABILITIES.put(PresetBankCapabilities.KEY_ON_SCREEN_PRESETS_AVAILABLE, GENERAL_BOOLEAN);
-
+
JSONObject jsonButton = new JSONObject();
jsonButton.put(ButtonCapabilities.KEY_LONG_PRESS_AVAILABLE, false);
jsonButton.put(ButtonCapabilities.KEY_SHORT_PRESS_AVAILABLE, GENERAL_BOOLEAN);
@@ -782,33 +893,34 @@ public class Test {
jsonButton.put(SoftButtonCapabilities.KEY_UP_DOWN_AVAILABLE, GENERAL_BOOLEAN);
jsonButton.put(SoftButtonCapabilities.KEY_IMAGE_SUPPORTED, GENERAL_BOOLEAN);
JSON_SOFTBUTTONCAPABILITIES.put(jsonButton);
-
+
jsonButton = new JSONObject();
jsonButton.put(AudioPassThruCapabilities.KEY_AUDIO_TYPE, GENERAL_AUDIOTYPE);
jsonButton.put(AudioPassThruCapabilities.KEY_BITS_PER_SAMPLE, GENERAL_BITSPERSAMPLE);
jsonButton.put(AudioPassThruCapabilities.KEY_SAMPLING_RATE, GENERAL_SAMPLINGRATE);
JSON_AUDIOPASSTHRUCAPABILITIES.put(jsonButton);
-
+
JSON_TEXTFIELD.put(TextField.KEY_CHARACTER_SET, CharacterSet.CID1SET);
JSON_TEXTFIELD.put(TextField.KEY_NAME, TextFieldName.ETA);
JSON_TEXTFIELD.put(TextField.KEY_ROWS, GENERAL_INT);
JSON_TEXTFIELD.put(TextField.KEY_WIDTH, GENERAL_INT);
JSON_TEXTFIELDS.put(JSON_TEXTFIELD);
-
+
JSON_IMAGEFIELD.put(ImageField.KEY_IMAGE_RESOLUTION, JSON_IMAGERESOLUTION);
JSON_IMAGEFIELD.put(ImageField.KEY_IMAGE_TYPE_SUPPORTED, JsonUtils.createJsonArray(Test.GENERAL_FILETYPE_LIST));
JSON_IMAGEFIELD.put(ImageField.KEY_NAME, ImageFieldName.graphic);
JSON_IMAGEFIELDS.put(JSON_IMAGEFIELD);
-
+
JSONObject jsonTEC = new JSONObject();
jsonTEC.put(TouchEventCapabilities.KEY_DOUBLE_PRESS_AVAILABLE, GENERAL_BOOLEAN);
jsonTEC.put(TouchEventCapabilities.KEY_MULTI_TOUCH_AVAILABLE, GENERAL_BOOLEAN);
jsonTEC.put(TouchEventCapabilities.KEY_PRESS_AVAILABLE, GENERAL_BOOLEAN);
-
+
JSON_SCREENPARAMS.put(ScreenParams.KEY_RESOLUTION, JSON_IMAGERESOLUTION);
JSON_SCREENPARAMS.put(ScreenParams.KEY_TOUCH_EVENT_AVAILABLE, jsonTEC);
-
+
JSON_DISPLAYCAPABILITIES.put(DisplayCapabilities.KEY_DISPLAY_TYPE, GENERAL_DISPLAYTYPE);
+ JSON_DISPLAYCAPABILITIES.put(DisplayCapabilities.KEY_DISPLAY_NAME, GENERAL_STRING);
JSON_DISPLAYCAPABILITIES.put(DisplayCapabilities.KEY_GRAPHIC_SUPPORTED, GENERAL_BOOLEAN);
JSON_DISPLAYCAPABILITIES.put(DisplayCapabilities.KEY_IMAGE_FIELDS, JSON_IMAGEFIELDS);
JSON_DISPLAYCAPABILITIES.put(DisplayCapabilities.KEY_MEDIA_CLOCK_FORMATS, JsonUtils.createJsonArray(GENERAL_MEDIACLOCKFORMAT_LIST));
@@ -816,11 +928,11 @@ public class Test {
JSON_DISPLAYCAPABILITIES.put(DisplayCapabilities.KEY_SCREEN_PARAMS, JSON_SCREENPARAMS);
JSON_DISPLAYCAPABILITIES.put(DisplayCapabilities.KEY_TEMPLATES_AVAILABLE, JsonUtils.createJsonArray(GENERAL_STRING_LIST));
JSON_DISPLAYCAPABILITIES.put(DisplayCapabilities.KEY_TEXT_FIELDS, JSON_TEXTFIELDS);
-
+
JSON_TOUCHCOORD.put(TouchCoord.KEY_X, GENERAL_INT);
JSON_TOUCHCOORD.put(TouchCoord.KEY_Y, GENERAL_INT);
JSON_TOUCHCOORDS.put(JSON_TOUCHCOORD);
-
+
JSON_TOUCHEVENT.put(TouchEvent.KEY_C, JSON_TOUCHCOORDS);
JSON_TOUCHEVENT.put(TouchEvent.KEY_ID, GENERAL_INT);
JSON_TOUCHEVENT.put(TouchEvent.KEY_TS, JsonUtils.createJsonArray(GENERAL_LONG_LIST));
@@ -829,9 +941,9 @@ public class Test {
JSON_TEXTFIELDTYPES.put(MetadataType.CURRENT_TEMPERATURE);
JSON_TEXTFIELDTYPES.put(MetadataType.MEDIA_ALBUM);
JSON_TEXTFIELDTYPES.put(MetadataType.MEDIA_ARTIST);
-
+
} catch (JSONException e) {
Log.e("Test", "Static Json Construction Failed.", e);
}
- }
-} \ No newline at end of file
+ }
+}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java
index 8ab861a0a..3786f0ca6 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java
@@ -1,8 +1,5 @@
package com.smartdevicelink.test;
-import java.util.Iterator;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FrameData;
import com.smartdevicelink.protocol.enums.FrameDataControlFrameType;
import com.smartdevicelink.protocol.enums.FrameType;
@@ -23,6 +20,7 @@ import com.smartdevicelink.proxy.rpc.DeviceStatus;
import com.smartdevicelink.proxy.rpc.DisplayCapabilities;
import com.smartdevicelink.proxy.rpc.ECallInfo;
import com.smartdevicelink.proxy.rpc.EmergencyEvent;
+import com.smartdevicelink.proxy.rpc.FuelRange;
import com.smartdevicelink.proxy.rpc.GPSData;
import com.smartdevicelink.proxy.rpc.HMICapabilities;
import com.smartdevicelink.proxy.rpc.HMIPermissions;
@@ -32,6 +30,8 @@ import com.smartdevicelink.proxy.rpc.Image;
import com.smartdevicelink.proxy.rpc.ImageField;
import com.smartdevicelink.proxy.rpc.ImageResolution;
import com.smartdevicelink.proxy.rpc.KeyboardProperties;
+import com.smartdevicelink.proxy.rpc.MassageCushionFirmness;
+import com.smartdevicelink.proxy.rpc.MassageModeData;
import com.smartdevicelink.proxy.rpc.MenuParams;
import com.smartdevicelink.proxy.rpc.ModuleData;
import com.smartdevicelink.proxy.rpc.MyKey;
@@ -41,19 +41,24 @@ import com.smartdevicelink.proxy.rpc.ParameterPermissions;
import com.smartdevicelink.proxy.rpc.PermissionItem;
import com.smartdevicelink.proxy.rpc.PhoneCapability;
import com.smartdevicelink.proxy.rpc.PresetBankCapabilities;
+import com.smartdevicelink.proxy.rpc.RGBColor;
import com.smartdevicelink.proxy.rpc.RadioControlCapabilities;
import com.smartdevicelink.proxy.rpc.RadioControlData;
import com.smartdevicelink.proxy.rpc.RdsData;
-import com.smartdevicelink.proxy.rpc.RemoteControlCapabilities;
import com.smartdevicelink.proxy.rpc.Rectangle;
+import com.smartdevicelink.proxy.rpc.RemoteControlCapabilities;
import com.smartdevicelink.proxy.rpc.ScreenParams;
import com.smartdevicelink.proxy.rpc.SdlMsgVersion;
+import com.smartdevicelink.proxy.rpc.SeatControlCapabilities;
+import com.smartdevicelink.proxy.rpc.SeatControlData;
+import com.smartdevicelink.proxy.rpc.SeatMemoryAction;
import com.smartdevicelink.proxy.rpc.SingleTireStatus;
import com.smartdevicelink.proxy.rpc.SoftButton;
import com.smartdevicelink.proxy.rpc.SoftButtonCapabilities;
import com.smartdevicelink.proxy.rpc.StartTime;
import com.smartdevicelink.proxy.rpc.TTSChunk;
import com.smartdevicelink.proxy.rpc.Temperature;
+import com.smartdevicelink.proxy.rpc.TemplateColorScheme;
import com.smartdevicelink.proxy.rpc.TextField;
import com.smartdevicelink.proxy.rpc.TireStatus;
import com.smartdevicelink.proxy.rpc.TouchCoord;
@@ -68,9 +73,12 @@ import com.smartdevicelink.proxy.rpc.VrHelpItem;
import com.smartdevicelink.proxy.rpc.enums.DefrostZone;
import com.smartdevicelink.proxy.rpc.enums.FileType;
import com.smartdevicelink.proxy.rpc.enums.HMILevel;
-import com.smartdevicelink.proxy.rpc.enums.VentilationMode;
import com.smartdevicelink.proxy.rpc.enums.HmiZoneCapabilities;
import com.smartdevicelink.proxy.rpc.enums.SpeechCapabilities;
+import com.smartdevicelink.proxy.rpc.enums.VentilationMode;
+
+import java.util.Iterator;
+import java.util.List;
public class Validator{
@@ -705,6 +713,62 @@ public class Validator{
return true;
}
+ public static boolean validateSeatControlData(SeatControlData seatControlData1, SeatControlData seatControlData2) {
+ if (seatControlData1 == null) {
+ return (seatControlData2 == null);
+ }
+ if (seatControlData2 == null) {
+ return (seatControlData1 == null);
+ }
+
+ if (seatControlData1.getCoolingEnabled() != seatControlData2.getCoolingEnabled()) {
+ return false;
+ }
+ if (seatControlData1.getHeatingEnabled() != seatControlData2.getHeatingEnabled()) {
+ return false;
+ }
+ if (seatControlData1.getMassageEnabled() != seatControlData2.getMassageEnabled()) {
+ return false;
+ }
+ if (seatControlData1.getBackTiltAngle() != seatControlData2.getBackTiltAngle()) {
+ return false;
+ }
+ if (seatControlData1.getBackVerticalPosition() != seatControlData2.getBackVerticalPosition()) {
+ return false;
+ }
+ if (seatControlData1.getCoolingLevel() != seatControlData2.getCoolingLevel()) {
+ return false;
+ }
+ if (seatControlData1.getFrontVerticalPosition() != seatControlData2.getFrontVerticalPosition()) {
+ return false;
+ }
+ if (seatControlData1.getHeadSupportHorizontalPosition() != seatControlData2.getHeadSupportHorizontalPosition()) {
+ return false;
+ }
+ if (seatControlData1.getHeadSupportVerticalPosition() != seatControlData2.getHeadSupportVerticalPosition()) {
+ return false;
+ }
+ if (seatControlData1.getHeatingLevel() != seatControlData2.getHeatingLevel()) {
+ return false;
+ }
+ if (seatControlData1.getHorizontalPosition() != seatControlData2.getHorizontalPosition()) {
+ return false;
+ }
+ if (seatControlData1.getId() != seatControlData2.getId()) {
+ return false;
+ }
+
+ if (!(validateSeatMemoryAction(seatControlData1.getMemory(), seatControlData2.getMemory()))) {
+ return false;
+ }
+
+ if (!(validateSeatMemoryAction(seatControlData1.getMemory(), seatControlData2.getMemory()))) {
+ return false;
+ }
+
+ return true;
+ }
+
public static boolean validateModuleData(ModuleData moduleData1, ModuleData moduleData2){
if(moduleData1 == null){
return ( moduleData2 == null );
@@ -903,6 +967,33 @@ public class Validator{
return true;
}
+ public static boolean validateSeatMemoryAction(SeatMemoryAction item1, SeatMemoryAction item2) {
+ if (item1 == null) {
+ return (item2 == null);
+ }
+ if (item2 == null) {
+ return (item1 == null);
+ }
+
+ if (item1.getAction() == null) {
+ return (item2.getAction() == null);
+ }
+
+ if (item1.getAction() != item2.getAction()) {
+ return false;
+ }
+
+ if (item1.getId() != item2.getId()) {
+ return false;
+ }
+
+ if (item1.getLabel() != item2.getLabel()) {
+ return false;
+ }
+
+ return true;
+ }
+
public static boolean validateTextFields(TextField item1, TextField item2){
if(item1 == null){
return ( item2 == null );
@@ -1364,6 +1455,30 @@ public class Validator{
return true;
}
+ public static boolean validateFuelRange (List<FuelRange> item1, List<FuelRange> item2) {
+ if (item1 == null) {
+ return ( item2 == null );
+ }
+ if (item2 == null) {
+ return ( item1 == null );
+ }
+
+ if (item1.size() != item2.size()) {
+ return false;
+ }
+
+ for (int i = 0; i < item1.size(); i++) {
+ if (item1.get(i).getType() != item2.get(i).getType()) {
+ return false;
+ }
+ if (item1.get(i).getRange() != item2.get(i).getRange()) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
public static boolean validatePermissionItem(PermissionItem item1, PermissionItem item2){
if(item1 == null){
return ( item2 == null );
@@ -1514,6 +1629,86 @@ public class Validator{
return true;
}
+ public static boolean validateMassageModeData(MassageModeData item1, MassageModeData item2) {
+ if (item1 == null) {
+ return (item2 == null);
+ }
+ if (item2 == null) {
+ return (item1 == null);
+ }
+
+ if (item1.getMassageMode() != item2.getMassageMode()) {
+ return false;
+ }
+
+ if (item1.getMassageZone() != item2.getMassageZone()) {
+ return false;
+ }
+
+ return true;
+ }
+
+ public static boolean validateMassageModeDataList(List<MassageModeData> item1, List<MassageModeData> item2) {
+ if (item1 == null) {
+ return (item2 == null);
+ }
+ if (item2 == null) {
+ return (item1 == null);
+ }
+
+ if (item1.size() != item2.size()) {
+ return false;
+ }
+
+ for (int i = 0; i < item1.size(); i++) {
+ if (!validateMassageModeData(item1.get(i), item2.get(i))) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ public static boolean validateMassageCushionFirmness(MassageCushionFirmness item1, MassageCushionFirmness item2) {
+ if (item1 == null) {
+ return (item2 == null);
+ }
+ if (item2 == null) {
+ return (item1 == null);
+ }
+
+ if (item1.getCushion() != item2.getCushion()) {
+ return false;
+ }
+
+ if (item1.getFirmness() != item2.getFirmness()) {
+ return false;
+ }
+
+ return true;
+ }
+
+ public static boolean validateMassageCushionFirmnessList(List<MassageCushionFirmness> item1, List<MassageCushionFirmness> item2) {
+ if (item1 == null) {
+ return (item2 == null);
+ }
+ if (item2 == null) {
+ return (item1 == null);
+ }
+
+ if (item1.size() != item2.size()) {
+ return false;
+ }
+
+ for (int i = 0; i < item1.size(); i++) {
+ if (!validateMassageCushionFirmness(item1.get(i), item2.get(i))) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
public static void log(String tag, String msg){
Logger.log(tag, msg);
}
@@ -1533,25 +1728,67 @@ public class Validator{
return true;
}
-
+
public static boolean validateDeviceInfo (DeviceInfo item1, DeviceInfo item2) {
- if (item1 == null) {
- return ( item2 == null );
- }
- if (item2 == null) {
- return ( item1 == null );
- }
-
- if (item1.getOs() != item2.getOs() ||
- item1.getCarrier() != item2.getCarrier() ||
- item1.getHardware() != item2.getHardware() ||
- item1.getOsVersion() != item2.getOsVersion() ||
- item1.getFirmwareRev() != item2.getFirmwareRev() ||
- item1.getMaxNumberRFCOMMPorts() != item2.getMaxNumberRFCOMMPorts()) {
- return false;
- }
-
- return true;
+ if (item1 == null) {
+ return ( item2 == null );
+ }
+ if (item2 == null) {
+ return ( item1 == null );
+ }
+
+ if (item1.getOs() != item2.getOs() ||
+ item1.getCarrier() != item2.getCarrier() ||
+ item1.getHardware() != item2.getHardware() ||
+ item1.getOsVersion() != item2.getOsVersion() ||
+ item1.getFirmwareRev() != item2.getFirmwareRev() ||
+ item1.getMaxNumberRFCOMMPorts() != item2.getMaxNumberRFCOMMPorts()) {
+ return false;
+ }
+
+ return true;
+ }
+
+ public static boolean validateTemplateColorScheme (TemplateColorScheme item1, TemplateColorScheme item2) {
+ if (item1 == null) {
+ return ( item2 == null );
+ }
+ if (item2 == null) {
+ return ( item1 == null );
+ }
+
+ if (item1.getPrimaryColor().getRed() != item2.getPrimaryColor().getRed()
+ || item1.getPrimaryColor().getGreen() != item2.getPrimaryColor().getGreen()
+ || item1.getPrimaryColor().getBlue() != item2.getPrimaryColor().getBlue()
+ || item1.getSecondaryColor().getRed() != item2.getSecondaryColor().getRed()
+ || item1.getSecondaryColor().getGreen() != item2.getSecondaryColor().getGreen()
+ || item1.getSecondaryColor().getBlue() != item2.getSecondaryColor().getBlue()
+ || item1.getBackgroundColor().getRed() != item2.getBackgroundColor().getRed()
+ || item1.getBackgroundColor().getGreen() != item2.getBackgroundColor().getGreen()
+ || item1.getBackgroundColor().getBlue() != item2.getBackgroundColor().getBlue()
+
+ ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ public static boolean validateRGBColor(RGBColor item1, RGBColor item2) {
+ if (item1 == null) {
+ return ( item2 == null );
+ }
+ if (item2 == null) {
+ return ( item1 == null );
+ }
+
+ if (item1.getRed() != item2.getRed()
+ || item1.getGreen() != item2.getGreen()
+ || item1.getBlue() != item2.getBlue() ) {
+ return false;
+ }
+
+ return true;
}
public static boolean validateSupportedFormats (VideoStreamingFormat vsf1, VideoStreamingFormat vsf2) {
@@ -1565,7 +1802,7 @@ public class Validator{
return true;
}
-
+
public static boolean validateDisplayCapabilities (DisplayCapabilities item1, DisplayCapabilities item2) {
if (item1 == null) {
return ( item2 == null );
@@ -1581,6 +1818,10 @@ public class Validator{
if (item1.getDisplayType() != item2.getDisplayType()) {
return false;
}
+
+ if (!item1.getDisplayName().equals(item2.getDisplayName())) {
+ return false;
+ }
if (item1.getGraphicSupported() != item2.getGraphicSupported()) {
return false;
@@ -1823,6 +2064,87 @@ public class Validator{
return true;
}
+ public static boolean validateSeatControlCapabilities(SeatControlCapabilities item1, SeatControlCapabilities item2) {
+ if (item1 == null) {
+ return (item2 == null);
+ }
+ if (item2 == null) {
+ return (item1 == null);
+ }
+
+ if (item1.getModuleName() != item2.getModuleName()) {
+ return false;
+ }
+ if (item1.getHeatingEnabledAvailable() != item2.getHeatingEnabledAvailable()) {
+ return false;
+ }
+ if (item1.getCoolingEnabledAvailable() != item2.getCoolingEnabledAvailable()) {
+ return false;
+ }
+ if (item1.getHeatingLevelAvailable() != item2.getHeatingLevelAvailable()) {
+ return false;
+ }
+ if (item1.getCoolingLevelAvailable() != item2.getCoolingLevelAvailable()) {
+ return false;
+ }
+ if (item1.getHorizontalPositionAvailable() != item2.getHorizontalPositionAvailable()) {
+ return false;
+ }
+ if (item1.getVerticalPositionAvailable() != item2.getVerticalPositionAvailable()) {
+ return false;
+ }
+ if (item1.getFrontVerticalPositionAvailable() != item2.getFrontVerticalPositionAvailable()) {
+ return false;
+ }
+ if (item1.getBackVerticalPositionAvailable() != item2.getBackVerticalPositionAvailable()) {
+ return false;
+ }
+ if (item1.getBackTiltAngleAvailable() != item2.getBackTiltAngleAvailable()) {
+ return false;
+ }
+ if (item1.getHeadSupportVerticalPositionAvailable() != item2.getHeadSupportVerticalPositionAvailable()) {
+ return false;
+ }
+ if (item1.getHeadSupportHorizontalPositionAvailable() != item2.getHeadSupportHorizontalPositionAvailable()) {
+ return false;
+ }
+ if (item1.getMassageEnabledAvailable() != item2.getMassageEnabledAvailable()) {
+ return false;
+ }
+ if (item1.getMassageModeAvailable() != item2.getMassageModeAvailable()) {
+ return false;
+ }
+ if (item1.getMassageCushionFirmnessAvailable() != item2.getMassageCushionFirmnessAvailable()) {
+ return false;
+ }
+ if (item1.getMemoryAvailable() != item2.getMemoryAvailable()) {
+ return false;
+ }
+
+ return true;
+ }
+
+ public static boolean validateSeatControlCapabilitiesList(List<SeatControlCapabilities> item1, List<SeatControlCapabilities> item2) {
+ if (item1 == null) {
+ return (item2 == null);
+ }
+ if (item2 == null) {
+ return (item1 == null);
+ }
+
+ if (item1.size() != item2.size()) {
+ return false;
+ }
+
+ for (int i = 0; i < item1.size(); i++) {
+ if (!validateSeatControlCapabilities(item1.get(i), item2.get(i))) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
public static boolean validateDefrostZones (List<DefrostZone> item1, List<DefrostZone> item2) {
if (item1 == null) {
return ( item2 == null );
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java
index ef19542fa..22ce7a15b 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java
@@ -7,6 +7,7 @@ import com.smartdevicelink.proxy.rpc.ClusterModeStatus;
import com.smartdevicelink.proxy.rpc.DeviceStatus;
import com.smartdevicelink.proxy.rpc.ECallInfo;
import com.smartdevicelink.proxy.rpc.EmergencyEvent;
+import com.smartdevicelink.proxy.rpc.FuelRange;
import com.smartdevicelink.proxy.rpc.GPSData;
import com.smartdevicelink.proxy.rpc.GetVehicleDataResponse;
import com.smartdevicelink.proxy.rpc.HeadLampStatus;
@@ -21,20 +22,30 @@ import com.smartdevicelink.proxy.rpc.enums.ComponentVolumeStatus;
import com.smartdevicelink.proxy.rpc.enums.DeviceLevelStatus;
import com.smartdevicelink.proxy.rpc.enums.Dimension;
import com.smartdevicelink.proxy.rpc.enums.ECallConfirmationStatus;
+import com.smartdevicelink.proxy.rpc.enums.ElectronicParkBrakeStatus;
import com.smartdevicelink.proxy.rpc.enums.EmergencyEventType;
import com.smartdevicelink.proxy.rpc.enums.FuelCutoffStatus;
+import com.smartdevicelink.proxy.rpc.enums.FuelType;
import com.smartdevicelink.proxy.rpc.enums.IgnitionStableStatus;
import com.smartdevicelink.proxy.rpc.enums.IgnitionStatus;
import com.smartdevicelink.proxy.rpc.enums.PRNDL;
import com.smartdevicelink.proxy.rpc.enums.PowerModeQualificationStatus;
import com.smartdevicelink.proxy.rpc.enums.PowerModeStatus;
import com.smartdevicelink.proxy.rpc.enums.PrimaryAudioSource;
+import com.smartdevicelink.proxy.rpc.enums.TurnSignal;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataNotificationStatus;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataStatus;
import com.smartdevicelink.proxy.rpc.enums.WarningLightStatus;
import com.smartdevicelink.proxy.rpc.enums.WiperStatus;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
public class VehicleDataHelper{
//top level variables for OnVehicleData
public static final double SPEED = 35.6;
@@ -45,6 +56,7 @@ public class VehicleDataHelper{
public static final PRNDL PRNDL_FINAL = PRNDL.SECOND;
public static final TireStatus TIRE_PRESSURE = new TireStatus();
public static final double ENGINE_TORQUE = 518.3;
+ public static final float ENGINE_OIL_LIFE = 19.3f;
public static final int ODOMETER = 140000;
public static final GPSData GPS = new GPSData();
public static final ComponentVolumeStatus FUEL_LEVEL_STATE = ComponentVolumeStatus.ALERT;
@@ -62,7 +74,11 @@ public class VehicleDataHelper{
public static final EmergencyEvent EMERGENCY_EVENT = new EmergencyEvent();
public static final ClusterModeStatus CLUSTER_MODE_STATUS = new ClusterModeStatus();
public static final MyKey MY_KEY = new MyKey();
-
+ public static final FuelRange FUEL_RANGE = new FuelRange();
+ public static final List<FuelRange> FUEL_RANGE_LIST = new ArrayList<FuelRange>(1);
+ public static final TurnSignal TURN_SIGNAL = TurnSignal.OFF;
+ public static final ElectronicParkBrakeStatus ELECTRONIC_PARK_BRAKE_STATUS = ElectronicParkBrakeStatus.CLOSED;
+
//other variables inside some of the above objects
// tire status
public static final WarningLightStatus TIRE_PRESSURE_TELL_TALE = WarningLightStatus.ON;
@@ -168,7 +184,13 @@ public class VehicleDataHelper{
// my key
public static final VehicleDataStatus MY_KEY_E_911_OVERRIDE = VehicleDataStatus.NO_DATA_EXISTS;
-
+
+ // fuel range
+ public static final FuelType FUEL_RANGE_TYPE = FuelType.GASOLINE;
+ public static final Float FUEL_RANGE_RANGE = Test.GENERAL_FLOAT;
+
+ public static final JSONArray JSON_FUEL_RANGE = new JSONArray();
+
//the OnVehicleData which stores all the information above
public static final OnVehicleData VEHICLE_DATA = new OnVehicleData();
//GetVehicleDataResponse data which stores the same things
@@ -290,9 +312,20 @@ public class VehicleDataHelper{
//MY_KEY set up
MY_KEY.setE911Override(MY_KEY_E_911_OVERRIDE);
-
-
- //set up the OnVehicleData object
+
+ // FUEL_RANGE and FUEL_RANGE_LIST set up
+ FUEL_RANGE.setType(FUEL_RANGE_TYPE);
+ FUEL_RANGE.setRange(FUEL_RANGE_RANGE);
+ FUEL_RANGE_LIST.add(FUEL_RANGE);
+
+ // FUEL_RANGE json array set up
+ try {
+ JSON_FUEL_RANGE.put(FUEL_RANGE.serializeJSON());
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ //set up the OnVehicleData object
VEHICLE_DATA.setSpeed(SPEED);
VEHICLE_DATA.setRpm(RPM);
VEHICLE_DATA.setExternalTemperature(EXTERNAL_TEMPERATURE);
@@ -301,6 +334,7 @@ public class VehicleDataHelper{
VEHICLE_DATA.setPrndl(PRNDL_FINAL);
VEHICLE_DATA.setTirePressure(TIRE_PRESSURE);
VEHICLE_DATA.setEngineTorque(ENGINE_TORQUE);
+ VEHICLE_DATA.setEngineOilLife(ENGINE_OIL_LIFE);
VEHICLE_DATA.setOdometer(ODOMETER);
VEHICLE_DATA.setGps(GPS);
VEHICLE_DATA.setFuelLevelState(FUEL_LEVEL_STATE);
@@ -318,6 +352,9 @@ public class VehicleDataHelper{
VEHICLE_DATA.setEmergencyEvent(EMERGENCY_EVENT);
VEHICLE_DATA.setClusterModeStatus(CLUSTER_MODE_STATUS);
VEHICLE_DATA.setMyKey(MY_KEY);
+ VEHICLE_DATA.setFuelRange(FUEL_RANGE_LIST);
+ VEHICLE_DATA.setTurnSignal(TURN_SIGNAL);
+ VEHICLE_DATA.setElectronicParkBrakeStatus(ELECTRONIC_PARK_BRAKE_STATUS);
//set up the GetVehicleDataResponse object
VEHICLE_DATA_RESPONSE.setSpeed(SPEED);
@@ -328,6 +365,7 @@ public class VehicleDataHelper{
VEHICLE_DATA_RESPONSE.setPrndl(PRNDL_FINAL);
VEHICLE_DATA_RESPONSE.setTirePressure(TIRE_PRESSURE);
VEHICLE_DATA_RESPONSE.setEngineTorque(ENGINE_TORQUE);
+ VEHICLE_DATA_RESPONSE.setEngineOilLife(ENGINE_OIL_LIFE);
VEHICLE_DATA_RESPONSE.setOdometer(ODOMETER);
VEHICLE_DATA_RESPONSE.setGps(GPS);
VEHICLE_DATA_RESPONSE.setFuelLevelState(FUEL_LEVEL_STATE);
@@ -345,6 +383,9 @@ public class VehicleDataHelper{
VEHICLE_DATA_RESPONSE.setEmergencyEvent(EMERGENCY_EVENT);
VEHICLE_DATA_RESPONSE.setClusterModeStatus(CLUSTER_MODE_STATUS);
VEHICLE_DATA_RESPONSE.setMyKey(MY_KEY);
+ VEHICLE_DATA_RESPONSE.setFuelRange(FUEL_RANGE_LIST);
+ VEHICLE_DATA_RESPONSE.setTurnSignal(TURN_SIGNAL);
+ VEHICLE_DATA_RESPONSE.setElectronicParkBrakeStatus(ELECTRONIC_PARK_BRAKE_STATUS);
}
private VehicleDataHelper(){}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java
index b50f6f48d..e1bcdaf22 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java
@@ -1,7 +1,6 @@
package com.smartdevicelink.test.proxy;
import android.content.Context;
-import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.test.AndroidTestCase;
import android.util.Log;
@@ -50,6 +49,7 @@ import com.smartdevicelink.proxy.rpc.OnKeyboardInput;
import com.smartdevicelink.proxy.rpc.OnLanguageChange;
import com.smartdevicelink.proxy.rpc.OnLockScreenStatus;
import com.smartdevicelink.proxy.rpc.OnPermissionsChange;
+import com.smartdevicelink.proxy.rpc.OnRCStatus;
import com.smartdevicelink.proxy.rpc.OnStreamRPC;
import com.smartdevicelink.proxy.rpc.OnSystemRequest;
import com.smartdevicelink.proxy.rpc.OnTBTClientState;
@@ -619,5 +619,9 @@ public class SdlProxyBaseTests extends AndroidTestCase{
public void onSendHapticDataResponse(SendHapticDataResponse response) {
Log.i(TAG, "SendHapticDataResponse response from SDL: " + response);
}
- }
+
+ @Override
+ public void onOnRCStatus(OnRCStatus notification) {
+ }
+ }
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DisplayCapabilitiesTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DisplayCapabilitiesTests.java
index 689c3948f..9e627c217 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DisplayCapabilitiesTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DisplayCapabilitiesTests.java
@@ -36,6 +36,7 @@ public class DisplayCapabilitiesTests extends TestCase{
msg.setGraphicSupported(Test.GENERAL_BOOLEAN);
msg.setNumCustomPresetsAvailable(Test.GENERAL_INT);
msg.setDisplayType(Test.GENERAL_DISPLAYTYPE);
+ msg.setDisplayName(Test.GENERAL_STRING);
msg.setImageFields(Test.GENERAL_IMAGEFIELD_LIST);
msg.setTextFields(Test.GENERAL_TEXTFIELD_LIST);
msg.setMediaClockFormats(Test.GENERAL_MEDIACLOCKFORMAT_LIST);
@@ -51,6 +52,7 @@ public class DisplayCapabilitiesTests extends TestCase{
boolean graphicSupported = msg.getGraphicSupported();
int numPresets = msg.getNumCustomPresetsAvailable();
DisplayType displayType = msg.getDisplayType();
+ String displayName = msg.getDisplayName();
ScreenParams screenParams = msg.getScreenParams();
List<String> templatesAvailable = msg.getTemplatesAvailable();
List<MediaClockFormat> mediaClock = msg.getMediaClockFormats();
@@ -61,6 +63,7 @@ public class DisplayCapabilitiesTests extends TestCase{
assertEquals(Test.MATCH, Test.GENERAL_BOOLEAN, graphicSupported);
assertEquals(Test.MATCH, Test.GENERAL_INT, numPresets);
assertEquals(Test.MATCH, Test.GENERAL_DISPLAYTYPE, displayType);
+ assertEquals(Test.MATCH, Test.GENERAL_STRING, displayName);
assertTrue(Test.TRUE, Validator.validateScreenParams(Test.GENERAL_SCREENPARAMS, screenParams));
assertEquals(Test.MATCH, Test.GENERAL_STRING_LIST.size(), templatesAvailable.size());
assertEquals(Test.MATCH, Test.GENERAL_MEDIACLOCKFORMAT_LIST.size(), mediaClock.size());
@@ -88,6 +91,7 @@ public class DisplayCapabilitiesTests extends TestCase{
assertNotNull(Test.NOT_NULL, msg);
assertNull(Test.NULL, msg.getDisplayType());
+ assertNull(Test.NULL, msg.getDisplayName());
assertNull(Test.NULL, msg.getGraphicSupported());
assertNull(Test.NULL, msg.getImageFields());
assertNull(Test.NULL, msg.getMediaClockFormats());
@@ -104,6 +108,7 @@ public class DisplayCapabilitiesTests extends TestCase{
reference.put(DisplayCapabilities.KEY_NUM_CUSTOM_PRESETS_AVAILABLE, Test.GENERAL_INT);
reference.put(DisplayCapabilities.KEY_GRAPHIC_SUPPORTED, Test.GENERAL_BOOLEAN);
reference.put(DisplayCapabilities.KEY_DISPLAY_TYPE, Test.GENERAL_DISPLAYTYPE);
+ reference.put(DisplayCapabilities.KEY_DISPLAY_NAME, Test.GENERAL_STRING);
reference.put(DisplayCapabilities.KEY_TEMPLATES_AVAILABLE, JsonUtils.createJsonArray(Test.GENERAL_STRING_LIST));
reference.put(DisplayCapabilities.KEY_MEDIA_CLOCK_FORMATS, JsonUtils.createJsonArray(Test.GENERAL_MEDIACLOCKFORMAT_LIST));
reference.put(DisplayCapabilities.KEY_TEXT_FIELDS, Test.JSON_TEXTFIELDS);
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/FuelRangeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/FuelRangeTests.java
new file mode 100644
index 000000000..2dffd2f5b
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/FuelRangeTests.java
@@ -0,0 +1,71 @@
+package com.smartdevicelink.test.rpc.datatypes;
+
+import com.smartdevicelink.proxy.rpc.FuelRange;
+import com.smartdevicelink.proxy.rpc.enums.FuelType;
+import com.smartdevicelink.test.JsonUtils;
+import com.smartdevicelink.test.Test;
+
+import junit.framework.TestCase;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Iterator;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.FuelRange}
+ */
+public class FuelRangeTests extends TestCase{
+
+ private FuelRange msg;
+
+ @Override
+ public void setUp(){
+ msg = new FuelRange();
+
+ msg.setType(Test.GENERAL_FUELTYPE);
+ msg.setRange(Test.GENERAL_FLOAT);
+ }
+
+ /**
+ * Tests the expected values of the RPC message.
+ */
+ public void testRpcValues () {
+ // Test Values
+ FuelType fuelType = msg.getType();
+ float range = msg.getRange();
+
+ // Valid Tests
+ assertEquals(Test.MATCH, Test.GENERAL_FLOAT, range);
+ assertEquals(Test.MATCH, Test.GENERAL_FUELTYPE, fuelType);
+
+ // Invalid/Null Tests
+ FuelRange msg = new FuelRange();
+ assertNotNull(Test.NOT_NULL, msg);
+
+ assertNull(Test.NULL, msg.getType());
+ assertNull(Test.NULL, msg.getRange());
+ }
+
+ public void testJson(){
+ JSONObject reference = new JSONObject();
+
+ try{
+ reference.put(FuelRange.KEY_TYPE, Test.GENERAL_FUELTYPE);
+ reference.put(FuelRange.KEY_RANGE, (Float) Test.GENERAL_FLOAT);
+
+ JSONObject underTest = msg.serializeJSON();
+ assertEquals(Test.MATCH, reference.length(), underTest.length());
+
+ Iterator<?> iterator = reference.keys();
+ while(iterator.hasNext()) {
+ String key = (String) iterator.next();
+
+ assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key));
+ }
+ }catch(JSONException e){
+ fail(Test.JSON_FAIL);
+ }
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ImageTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ImageTests.java
index fdbcc8590..53f5bf435 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ImageTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ImageTests.java
@@ -26,6 +26,7 @@ public class ImageTests extends TestCase{
msg.setImageType(Test.GENERAL_IMAGETYPE);
msg.setValue(Test.GENERAL_STRING);
+ msg.setIsTemplate(Test.GENERAL_BOOLEAN);
}
/**
@@ -35,10 +36,12 @@ public class ImageTests extends TestCase{
// Test Values
ImageType imageType = msg.getImageType();
String value = msg.getValue();
+ Boolean isTemplate = msg.getIsTemplate();
// Valid Tests
assertEquals(Test.MATCH, Test.GENERAL_IMAGETYPE, imageType);
assertEquals(Test.MATCH, Test.GENERAL_STRING, value);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, isTemplate);
// Invalid/Null Tests
Image msg = new Image();
@@ -47,6 +50,7 @@ public class ImageTests extends TestCase{
assertNull(Test.NULL, msg.getImageType());
assertNull(Test.NULL, msg.getValue());
assertNull(Test.NULL, msg.getBulkData());
+ assertNull(Test.NULL, msg.getIsTemplate());
}
public void testJson(){
@@ -55,6 +59,7 @@ public class ImageTests extends TestCase{
try{
reference.put(Image.KEY_IMAGE_TYPE, Test.GENERAL_IMAGETYPE);
reference.put(Image.KEY_VALUE, Test.GENERAL_STRING);
+ reference.put(Image.KEY_IS_TEMPLATE, Test.GENERAL_BOOLEAN);
JSONObject underTest = msg.serializeJSON();
assertEquals(Test.MATCH, reference.length(), underTest.length());
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/MassageCushionFirmnessTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/MassageCushionFirmnessTest.java
new file mode 100644
index 000000000..da8a7cbfe
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/MassageCushionFirmnessTest.java
@@ -0,0 +1,71 @@
+package com.smartdevicelink.test.rpc.datatypes;
+
+import com.smartdevicelink.proxy.rpc.MassageCushionFirmness;
+import com.smartdevicelink.proxy.rpc.enums.MassageCushion;
+import com.smartdevicelink.test.JsonUtils;
+import com.smartdevicelink.test.Test;
+
+import junit.framework.TestCase;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Iterator;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.MassageCushionFirmness}
+ */
+public class MassageCushionFirmnessTest extends TestCase {
+
+ private MassageCushionFirmness msg;
+
+ @Override
+ public void setUp() {
+ msg = new MassageCushionFirmness();
+
+ msg.setCushion(Test.GENERAL_MASSAGECUSHION);
+ msg.setFirmness(Test.GENERAL_INT);
+ }
+
+ /**
+ * Tests the expected values of the RPC message.
+ */
+ public void testRpcValues() {
+ // Test Values
+ MassageCushion cushion = msg.getCushion();
+ Integer firmness = msg.getFirmness();
+
+ // Valid Tests
+ assertEquals(Test.MATCH, Test.GENERAL_MASSAGECUSHION, cushion);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, firmness);
+
+ // Invalid/Null Tests
+ MassageCushionFirmness msg = new MassageCushionFirmness();
+ assertNotNull(Test.NOT_NULL, msg);
+
+ assertNull(Test.NULL, msg.getCushion());
+ assertNull(Test.NULL, msg.getFirmness());
+ }
+
+ public void testJson() {
+ JSONObject reference = new JSONObject();
+
+ try {
+ reference.put(MassageCushionFirmness.KEY_CUSHION, Test.GENERAL_MASSAGECUSHION);
+ reference.put(MassageCushionFirmness.KEY_FIRMNESS, Test.GENERAL_INT);
+
+ JSONObject underTest = msg.serializeJSON();
+ assertEquals(Test.MATCH, reference.length(), underTest.length());
+
+ Iterator<?> iterator = reference.keys();
+ while (iterator.hasNext()) {
+ String key = (String) iterator.next();
+
+ assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key));
+ }
+ } catch (JSONException e) {
+ fail(Test.JSON_FAIL);
+ }
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/MassageModeDataTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/MassageModeDataTest.java
new file mode 100644
index 000000000..958de9fa2
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/MassageModeDataTest.java
@@ -0,0 +1,74 @@
+package com.smartdevicelink.test.rpc.datatypes;
+
+import com.smartdevicelink.proxy.rpc.MassageModeData;
+import com.smartdevicelink.proxy.rpc.enums.MassageMode;
+import com.smartdevicelink.proxy.rpc.enums.MassageZone;
+import com.smartdevicelink.test.JsonUtils;
+import com.smartdevicelink.test.Test;
+
+import junit.framework.TestCase;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Iterator;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.MassageModeData}
+ */
+public class MassageModeDataTest extends TestCase {
+
+ private MassageModeData msg;
+
+ @Override
+ public void setUp() {
+ msg = new MassageModeData();
+
+ msg.setMassageZone(Test.GENERAL_MASSAGEZONE);
+ msg.setMassageMode(Test.GENERAL_MASSAGEMODE);
+ }
+
+ /**
+ * Tests the expected values of the RPC message.
+ */
+ public void testRpcValues() {
+ // Test Values
+ MassageZone massageZone = msg.getMassageZone();
+ MassageMode massageMode = msg.getMassageMode();
+
+ // Valid Tests
+ assertEquals(Test.MATCH, Test.GENERAL_MASSAGEZONE, massageZone);
+ assertEquals(Test.MATCH, Test.GENERAL_MASSAGEMODE, massageMode);
+
+
+ // Invalid/Null Tests
+ MassageModeData msg = new MassageModeData();
+ assertNotNull(Test.NOT_NULL, msg);
+
+ assertNull(Test.NULL, msg.getMassageMode());
+ assertNull(Test.NULL, msg.getMassageZone());
+ }
+
+ public void testJson() {
+ JSONObject reference = new JSONObject();
+
+ try {
+ reference.put(MassageModeData.KEY_MASSAGE_MODE, Test.GENERAL_MASSAGEMODE);
+ reference.put(MassageModeData.KEY_MASSAGE_ZONE, Test.GENERAL_MASSAGEZONE);
+
+ JSONObject underTest = msg.serializeJSON();
+ assertEquals(Test.MATCH, reference.length(), underTest.length());
+
+ Iterator<?> iterator = reference.keys();
+ while (iterator.hasNext()) {
+ String key = (String) iterator.next();
+
+ assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key));
+
+ }
+ } catch (JSONException e) {
+ fail(Test.JSON_FAIL);
+ }
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ModuleDataTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ModuleDataTests.java
index ea71dfc8a..067216169 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ModuleDataTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ModuleDataTests.java
@@ -4,6 +4,7 @@ import com.smartdevicelink.marshal.JsonRPCMarshaller;
import com.smartdevicelink.proxy.rpc.ClimateControlData;
import com.smartdevicelink.proxy.rpc.ModuleData;
import com.smartdevicelink.proxy.rpc.RadioControlData;
+import com.smartdevicelink.proxy.rpc.SeatControlData;
import com.smartdevicelink.proxy.rpc.enums.ModuleType;
import com.smartdevicelink.test.JsonUtils;
import com.smartdevicelink.test.Test;
@@ -18,78 +19,89 @@ import java.util.Hashtable;
import java.util.Iterator;
/**
- * This is a unit test class for the SmartDeviceLink library project class :
+ * This is a unit test class for the SmartDeviceLink library project class :
* {@link com.smartdevicelink.rpc.ModuleData}
*/
-public class ModuleDataTests extends TestCase{
-
- private ModuleData msg;
+public class ModuleDataTests extends TestCase {
- @Override
- public void setUp(){
- msg = new ModuleData();
+ private ModuleData msg;
- msg.setModuleType(Test.GENERAL_MODULETYPE);
- msg.setRadioControlData(Test.GENERAL_RADIOCONTROLDATA);
- msg.setClimateControlData(Test.GENERAL_CLIMATECONTROLDATA);
- }
+ @Override
+ public void setUp() {
+ msg = new ModuleData();
- /**
+ msg.setModuleType(Test.GENERAL_MODULETYPE);
+ msg.setRadioControlData(Test.GENERAL_RADIOCONTROLDATA);
+ msg.setClimateControlData(Test.GENERAL_CLIMATECONTROLDATA);
+ msg.setSeatControlData(Test.GENERAL_SEATCONTROLDATA);
+ }
+
+ /**
* Tests the expected values of the RPC message.
*/
- public void testRpcValues () {
- // Test Values
- ModuleType moduleType = msg.getModuleType();
- RadioControlData radioControlData = msg.getRadioControlData();
- ClimateControlData climateControlData = msg.getClimateControlData();
-
- // Valid Tests
- assertEquals(Test.MATCH, Test.GENERAL_MODULETYPE, moduleType);
- assertTrue(Test.TRUE, Validator.validateRadioControlData(Test.GENERAL_RADIOCONTROLDATA, radioControlData));
- assertTrue(Test.TRUE, Validator.validateClimateControlData(Test.GENERAL_CLIMATECONTROLDATA, climateControlData));
-
- // Invalid/Null Tests
- ModuleData msg = new ModuleData();
- assertNotNull(Test.NOT_NULL, msg);
-
- assertNull(Test.NULL, msg.getModuleType());
- assertNull(Test.NULL, msg.getRadioControlData());
- assertNull(Test.NULL, msg.getClimateControlData());
- }
-
- public void testJson(){
- JSONObject reference = new JSONObject();
-
- try{
- reference.put(ModuleData.KEY_MODULE_TYPE, Test.GENERAL_MODULETYPE);
- reference.put(ModuleData.KEY_RADIO_CONTROL_DATA, JsonRPCMarshaller.serializeHashtable(Test.GENERAL_RADIOCONTROLDATA.getStore()));
- reference.put(ModuleData.KEY_CLIMATE_CONTROL_DATA, JsonRPCMarshaller.serializeHashtable(Test.GENERAL_CLIMATECONTROLDATA.getStore()));
-
- JSONObject underTest = msg.serializeJSON();
- assertEquals(Test.MATCH, reference.length(), underTest.length());
-
- Iterator<?> iterator = reference.keys();
- while(iterator.hasNext()){
- String key = (String) iterator.next();
-
- if(key.equals(ModuleData.KEY_RADIO_CONTROL_DATA)){
- JSONObject objectEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(reference, key);
- JSONObject testEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key);
- Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(objectEquals);
- Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(testEquals);
- assertTrue(Test.TRUE, Validator.validateRadioControlData( new RadioControlData(hashReference), new RadioControlData(hashTest)));
- } else if(key.equals(ModuleData.KEY_CLIMATE_CONTROL_DATA)){
- JSONObject objectEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(reference, key);
- JSONObject testEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key);
- Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(objectEquals);
- Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(testEquals);
- assertTrue(Test.TRUE, Validator.validateClimateControlData( new ClimateControlData(hashReference), new ClimateControlData(hashTest)));
- } else{
- assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key));
- }
- }
- } catch(JSONException e){
- fail(Test.JSON_FAIL);
- }
- }
+ public void testRpcValues() {
+ // Test Values
+ ModuleType moduleType = msg.getModuleType();
+ RadioControlData radioControlData = msg.getRadioControlData();
+ ClimateControlData climateControlData = msg.getClimateControlData();
+ SeatControlData seatControlData = msg.getSeatControlData();
+
+ // Valid Tests
+ assertEquals(Test.MATCH, Test.GENERAL_MODULETYPE, moduleType);
+ assertTrue(Test.TRUE, Validator.validateRadioControlData(Test.GENERAL_RADIOCONTROLDATA, radioControlData));
+ assertTrue(Test.TRUE, Validator.validateClimateControlData(Test.GENERAL_CLIMATECONTROLDATA, climateControlData));
+ assertTrue(Test.TRUE, Validator.validateSeatControlData(Test.GENERAL_SEATCONTROLDATA, seatControlData));
+
+ // Invalid/Null Tests
+ ModuleData msg = new ModuleData();
+ assertNotNull(Test.NOT_NULL, msg);
+
+ assertNull(Test.NULL, msg.getModuleType());
+ assertNull(Test.NULL, msg.getRadioControlData());
+ assertNull(Test.NULL, msg.getClimateControlData());
+ assertNull(Test.NULL, msg.getSeatControlData());
+ }
+
+ public void testJson() {
+ JSONObject reference = new JSONObject();
+
+ try {
+ reference.put(ModuleData.KEY_MODULE_TYPE, Test.GENERAL_MODULETYPE);
+ reference.put(ModuleData.KEY_RADIO_CONTROL_DATA, JsonRPCMarshaller.serializeHashtable(Test.GENERAL_RADIOCONTROLDATA.getStore()));
+ reference.put(ModuleData.KEY_CLIMATE_CONTROL_DATA, JsonRPCMarshaller.serializeHashtable(Test.GENERAL_CLIMATECONTROLDATA.getStore()));
+ reference.put(ModuleData.KEY_SEAT_CONTROL_DATA, JsonRPCMarshaller.serializeHashtable(Test.GENERAL_SEATCONTROLDATA.getStore()));
+
+ JSONObject underTest = msg.serializeJSON();
+ assertEquals(Test.MATCH, reference.length(), underTest.length());
+
+ Iterator<?> iterator = reference.keys();
+ while (iterator.hasNext()) {
+ String key = (String) iterator.next();
+
+ if (key.equals(ModuleData.KEY_RADIO_CONTROL_DATA)) {
+ JSONObject objectEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(reference, key);
+ JSONObject testEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key);
+ Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(objectEquals);
+ Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(testEquals);
+ assertTrue(Test.TRUE, Validator.validateRadioControlData(new RadioControlData(hashReference), new RadioControlData(hashTest)));
+ } else if (key.equals(ModuleData.KEY_CLIMATE_CONTROL_DATA)) {
+ JSONObject objectEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(reference, key);
+ JSONObject testEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key);
+ Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(objectEquals);
+ Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(testEquals);
+ assertTrue(Test.TRUE, Validator.validateClimateControlData(new ClimateControlData(hashReference), new ClimateControlData(hashTest)));
+ } else if (key.equals(ModuleData.KEY_SEAT_CONTROL_DATA)) {
+ JSONObject objectEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(reference, key);
+ JSONObject testEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key);
+ Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(objectEquals);
+ Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(testEquals);
+ assertTrue(Test.TRUE, Validator.validateSeatControlData(new SeatControlData(hashReference), new SeatControlData(hashTest)));
+ } else {
+ assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key));
+ }
+ }
+ } catch (JSONException e) {
+ fail(Test.JSON_FAIL);
+ }
+ }
} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RGBColorTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RGBColorTest.java
new file mode 100644
index 000000000..a9c0033a0
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RGBColorTest.java
@@ -0,0 +1,70 @@
+package com.smartdevicelink.test.rpc.datatypes;
+
+import com.smartdevicelink.proxy.rpc.RGBColor;
+import com.smartdevicelink.test.JsonUtils;
+import com.smartdevicelink.test.Test;
+
+import junit.framework.TestCase;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Iterator;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.proxy.rpc.RGBColor}
+ */
+public class RGBColorTest extends TestCase {
+
+ private RGBColor msg;
+
+ @Override
+ public void setUp() {
+ msg = new RGBColor(Test.GENERAL_INT, Test.GENERAL_INT, Test.GENERAL_INT);
+ }
+
+ /**
+ * Tests the expected values of the RPC message.
+ */
+ public void testRpcValues () {
+ // Test Values
+ Integer red = msg.getRed();
+ Integer green = msg.getGreen();
+ Integer blue = msg.getBlue();
+
+ // Valid Tests
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, red);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, green);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, blue);
+
+ // Invalid/Null Tests
+ RGBColor msg = new RGBColor();
+ assertNotNull(Test.NOT_NULL, msg);
+
+ assertEquals(Test.MATCH, msg.getRed(), (Integer) 0);
+ assertEquals(Test.MATCH, msg.getGreen(), (Integer) 0);
+ assertEquals(Test.MATCH, msg.getBlue(), (Integer) 0);
+ }
+
+ public void testJson() {
+ JSONObject reference = new JSONObject();
+
+ try {
+ reference.put(RGBColor.KEY_RED, Test.GENERAL_INT);
+ reference.put(RGBColor.KEY_GREEN, Test.GENERAL_INT);
+ reference.put(RGBColor.KEY_BLUE, Test.GENERAL_INT);
+
+ JSONObject underTest = msg.serializeJSON();
+ assertEquals(Test.MATCH, reference.length(), underTest.length());
+
+ Iterator<?> iterator = reference.keys();
+ while (iterator.hasNext()) {
+ String key = (String) iterator.next();
+ assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key));
+ }
+ } catch (JSONException e) {
+ fail(Test.JSON_FAIL);
+ }
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RemoteControlCapabilitiesTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RemoteControlCapabilitiesTests.java
index a15179b8f..6e29f01a3 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RemoteControlCapabilitiesTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RemoteControlCapabilitiesTests.java
@@ -5,6 +5,7 @@ import com.smartdevicelink.proxy.rpc.ButtonCapabilities;
import com.smartdevicelink.proxy.rpc.ClimateControlCapabilities;
import com.smartdevicelink.proxy.rpc.RadioControlCapabilities;
import com.smartdevicelink.proxy.rpc.RemoteControlCapabilities;
+import com.smartdevicelink.proxy.rpc.SeatControlCapabilities;
import com.smartdevicelink.test.JsonUtils;
import com.smartdevicelink.test.Test;
import com.smartdevicelink.test.Validator;
@@ -21,111 +22,125 @@ import java.util.Iterator;
import java.util.List;
/**
- * This is a unit test class for the SmartDeviceLink library project class :
+ * This is a unit test class for the SmartDeviceLink library project class :
* {@link com.smartdevicelink.rpc.RemoteControlCapabilities}
*/
-public class RemoteControlCapabilitiesTests extends TestCase{
-
- private RemoteControlCapabilities msg;
+public class RemoteControlCapabilitiesTests extends TestCase {
- @Override
- public void setUp(){
- msg = new RemoteControlCapabilities();
+ private RemoteControlCapabilities msg;
- msg.setButtonCapabilities(Test.GENERAL_BUTTONCAPABILITIES_LIST);
- msg.setRadioControlCapabilities(Test.GENERAL_RADIOCONTROLCAPABILITIES_LIST);
- msg.setClimateControlCapabilities(Test.GENERAL_CLIMATECONTROLCAPABILITIES_LIST);
- }
+ @Override
+ public void setUp() {
+ msg = new RemoteControlCapabilities();
- /**
+ msg.setButtonCapabilities(Test.GENERAL_BUTTONCAPABILITIES_LIST);
+ msg.setRadioControlCapabilities(Test.GENERAL_RADIOCONTROLCAPABILITIES_LIST);
+ msg.setClimateControlCapabilities(Test.GENERAL_CLIMATECONTROLCAPABILITIES_LIST);
+ msg.setSeatControlCapabilities(Test.GENERAL_SEATCONTROLCAPABILITIES_LIST);
+ }
+
+ /**
* Tests the expected values of the RPC message.
*/
- public void testRpcValues () {
- // Test Values
- List<ButtonCapabilities> buttonCapabilities = msg.getButtonCapabilities();
- List<RadioControlCapabilities> radioControlCapabilities = msg.getRadioControlCapabilities();
- List<ClimateControlCapabilities> climateControlCapabilities = msg.getClimateControlCapabilities();
-
- // Valid Tests
- assertEquals(Test.MATCH, Test.GENERAL_BUTTONCAPABILITIES_LIST.size(), buttonCapabilities.size());
- assertEquals(Test.MATCH, Test.GENERAL_RADIOCONTROLCAPABILITIES_LIST.size(), radioControlCapabilities.size());
- assertEquals(Test.MATCH, Test.GENERAL_CLIMATECONTROLCAPABILITIES_LIST.size(), climateControlCapabilities.size());
-
- assertTrue(Test.TRUE, Validator.validateButtonCapabilities(Test.GENERAL_BUTTONCAPABILITIES_LIST, buttonCapabilities));
- assertTrue(Test.TRUE, Validator.validateRadioControlCapabilities(Test.GENERAL_RADIOCONTROLCAPABILITIES_LIST, radioControlCapabilities));
- assertTrue(Test.TRUE, Validator.validateClimateControlCapabilities(Test.GENERAL_CLIMATECONTROLCAPABILITIES_LIST, climateControlCapabilities));
-
- // Invalid/Null Tests
- RemoteControlCapabilities msg = new RemoteControlCapabilities();
- assertNotNull(Test.NOT_NULL, msg);
-
- assertNull(Test.NULL, msg.getButtonCapabilities());
- assertNull(Test.NULL, msg.getRadioControlCapabilities());
- assertNull(Test.NULL, msg.getClimateControlCapabilities());
-
- }
-
- public void testJson(){
- JSONObject reference = new JSONObject();
-
- try{
- reference.put(RemoteControlCapabilities.KEY_BUTTON_CAPABILITIES, Test.JSON_BUTTONCAPABILITIES);
- reference.put(RemoteControlCapabilities.KEY_RADIO_CONTROL_CAPABILITIES, Test.JSON_RADIOCONTROLCAPABILITIES);
- reference.put(RemoteControlCapabilities.KEY_CLIMATE_CONTROL_CAPABILITIES, Test.JSON_CLIMATECONTROLCAPABILITIES);
-
- JSONObject underTest = msg.serializeJSON();
- assertEquals(Test.MATCH, reference.length(), underTest.length());
-
- Iterator<?> iterator = reference.keys();
- while(iterator.hasNext()){
- String key = (String) iterator.next();
-
- if(key.equals(RemoteControlCapabilities.KEY_BUTTON_CAPABILITIES)){
- JSONArray referenceArray = JsonUtils.readJsonArrayFromJsonObject(reference, key);
- JSONArray underTestArray = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
- assertEquals(Test.MATCH, referenceArray.length(), underTestArray.length());
-
- List<ButtonCapabilities> referenceList = new ArrayList<ButtonCapabilities>();
- List<ButtonCapabilities> testList = new ArrayList<ButtonCapabilities>();
- for(int i = 0; i < referenceArray.length(); i++){
- Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(referenceArray.getJSONObject(i));
- referenceList.add(new ButtonCapabilities(hashReference));
- Hashtable<String, Object> hashTest= JsonRPCMarshaller.deserializeJSONObject(underTestArray.getJSONObject(i));
- testList.add(new ButtonCapabilities(hashTest));
- }
- assertTrue(Test.TRUE, Validator.validateButtonCapabilities(referenceList, testList));
- } else if(key.equals(RemoteControlCapabilities.KEY_RADIO_CONTROL_CAPABILITIES)){
- JSONArray referenceArray = JsonUtils.readJsonArrayFromJsonObject(reference, key);
- JSONArray underTestArray = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
- assertEquals(Test.MATCH, referenceArray.length(), underTestArray.length());
-
- List<RadioControlCapabilities> referenceList = new ArrayList<RadioControlCapabilities>();
- List<RadioControlCapabilities> testList = new ArrayList<RadioControlCapabilities>();
- for(int i = 0; i < referenceArray.length(); i++){
- Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(referenceArray.getJSONObject(i));
- referenceList.add(new RadioControlCapabilities(hashReference));
- Hashtable<String, Object> hashTest= JsonRPCMarshaller.deserializeJSONObject(underTestArray.getJSONObject(i));
- testList.add(new RadioControlCapabilities(hashTest));
- }
- assertTrue(Test.TRUE, Validator.validateRadioControlCapabilities(referenceList, testList));
- } else if(key.equals(RemoteControlCapabilities.KEY_CLIMATE_CONTROL_CAPABILITIES)){
- JSONArray referenceArray = JsonUtils.readJsonArrayFromJsonObject(reference, key);
- JSONArray underTestArray = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
- assertEquals(Test.MATCH, referenceArray.length(), underTestArray.length());
-
- List<ClimateControlCapabilities> referenceList = new ArrayList<ClimateControlCapabilities>();
- List<ClimateControlCapabilities> testList = new ArrayList<ClimateControlCapabilities>();
- for(int i = 0; i < referenceArray.length(); i++){
- Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(referenceArray.getJSONObject(i));
- referenceList.add(new ClimateControlCapabilities(hashReference));
- Hashtable<String, Object> hashTest= JsonRPCMarshaller.deserializeJSONObject(underTestArray.getJSONObject(i));
- testList.add(new ClimateControlCapabilities(hashTest));
- }
- assertTrue(Test.TRUE, Validator.validateClimateControlCapabilities(referenceList, testList));
- }
- }
- } catch(JSONException e){
- fail(Test.JSON_FAIL);
- }
- }
+ public void testRpcValues() {
+ // Test Values
+ List<ButtonCapabilities> buttonCapabilities = msg.getButtonCapabilities();
+ List<RadioControlCapabilities> radioControlCapabilities = msg.getRadioControlCapabilities();
+ List<ClimateControlCapabilities> climateControlCapabilities = msg.getClimateControlCapabilities();
+ List<SeatControlCapabilities> seatControlCapabilities = msg.getSeatControlCapabilities();
+
+ // Valid Tests
+ assertEquals(Test.MATCH, Test.GENERAL_BUTTONCAPABILITIES_LIST.size(), buttonCapabilities.size());
+ assertEquals(Test.MATCH, Test.GENERAL_RADIOCONTROLCAPABILITIES_LIST.size(), radioControlCapabilities.size());
+ assertEquals(Test.MATCH, Test.GENERAL_CLIMATECONTROLCAPABILITIES_LIST.size(), climateControlCapabilities.size());
+ assertEquals(Test.MATCH, Test.GENERAL_SEATCONTROLCAPABILITIES_LIST.size(), seatControlCapabilities.size());
+
+ assertTrue(Test.TRUE, Validator.validateButtonCapabilities(Test.GENERAL_BUTTONCAPABILITIES_LIST, buttonCapabilities));
+ assertTrue(Test.TRUE, Validator.validateRadioControlCapabilities(Test.GENERAL_RADIOCONTROLCAPABILITIES_LIST, radioControlCapabilities));
+ assertTrue(Test.TRUE, Validator.validateClimateControlCapabilities(Test.GENERAL_CLIMATECONTROLCAPABILITIES_LIST, climateControlCapabilities));
+
+ assertTrue(Test.TRUE, Validator.validateSeatControlCapabilitiesList(Test.GENERAL_SEATCONTROLCAPABILITIES_LIST, seatControlCapabilities));
+
+ // Invalid/Null Tests
+ RemoteControlCapabilities msg = new RemoteControlCapabilities();
+ assertNotNull(Test.NOT_NULL, msg);
+
+ assertNull(Test.NULL, msg.getButtonCapabilities());
+ assertNull(Test.NULL, msg.getRadioControlCapabilities());
+ assertNull(Test.NULL, msg.getClimateControlCapabilities());
+ assertNull(Test.NULL, msg.getSeatControlCapabilities());
+
+ }
+
+ public void testJson() {
+ JSONObject reference = new JSONObject();
+
+ try {
+ reference.put(RemoteControlCapabilities.KEY_BUTTON_CAPABILITIES, Test.JSON_BUTTONCAPABILITIES);
+ reference.put(RemoteControlCapabilities.KEY_RADIO_CONTROL_CAPABILITIES, Test.JSON_RADIOCONTROLCAPABILITIES);
+ reference.put(RemoteControlCapabilities.KEY_CLIMATE_CONTROL_CAPABILITIES, Test.JSON_CLIMATECONTROLCAPABILITIES);
+ reference.put(RemoteControlCapabilities.KEY_SEAT_CONTROL_CAPABILITIES, Test.GENERAL_SEATCONTROLCAPABILITIES_LIST);
+
+ JSONObject underTest = msg.serializeJSON();
+ assertEquals(Test.MATCH, reference.length(), underTest.length());
+
+ Iterator<?> iterator = reference.keys();
+ while (iterator.hasNext()) {
+ String key = (String) iterator.next();
+
+ if (key.equals(RemoteControlCapabilities.KEY_BUTTON_CAPABILITIES)) {
+ JSONArray referenceArray = JsonUtils.readJsonArrayFromJsonObject(reference, key);
+ JSONArray underTestArray = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
+ assertEquals(Test.MATCH, referenceArray.length(), underTestArray.length());
+
+ List<ButtonCapabilities> referenceList = new ArrayList<ButtonCapabilities>();
+ List<ButtonCapabilities> testList = new ArrayList<ButtonCapabilities>();
+ for (int i = 0; i < referenceArray.length(); i++) {
+ Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(referenceArray.getJSONObject(i));
+ referenceList.add(new ButtonCapabilities(hashReference));
+ Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(underTestArray.getJSONObject(i));
+ testList.add(new ButtonCapabilities(hashTest));
+ }
+ assertTrue(Test.TRUE, Validator.validateButtonCapabilities(referenceList, testList));
+ } else if (key.equals(RemoteControlCapabilities.KEY_RADIO_CONTROL_CAPABILITIES)) {
+ JSONArray referenceArray = JsonUtils.readJsonArrayFromJsonObject(reference, key);
+ JSONArray underTestArray = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
+ assertEquals(Test.MATCH, referenceArray.length(), underTestArray.length());
+
+ List<RadioControlCapabilities> referenceList = new ArrayList<RadioControlCapabilities>();
+ List<RadioControlCapabilities> testList = new ArrayList<RadioControlCapabilities>();
+ for (int i = 0; i < referenceArray.length(); i++) {
+ Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(referenceArray.getJSONObject(i));
+ referenceList.add(new RadioControlCapabilities(hashReference));
+ Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(underTestArray.getJSONObject(i));
+ testList.add(new RadioControlCapabilities(hashTest));
+ }
+ assertTrue(Test.TRUE, Validator.validateRadioControlCapabilities(referenceList, testList));
+ } else if (key.equals(RemoteControlCapabilities.KEY_CLIMATE_CONTROL_CAPABILITIES)) {
+ JSONArray referenceArray = JsonUtils.readJsonArrayFromJsonObject(reference, key);
+ JSONArray underTestArray = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
+ assertEquals(Test.MATCH, referenceArray.length(), underTestArray.length());
+
+ List<ClimateControlCapabilities> referenceList = new ArrayList<ClimateControlCapabilities>();
+ List<ClimateControlCapabilities> testList = new ArrayList<ClimateControlCapabilities>();
+ for (int i = 0; i < referenceArray.length(); i++) {
+ Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(referenceArray.getJSONObject(i));
+ referenceList.add(new ClimateControlCapabilities(hashReference));
+ Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(underTestArray.getJSONObject(i));
+ testList.add(new ClimateControlCapabilities(hashTest));
+ }
+ assertTrue(Test.TRUE, Validator.validateClimateControlCapabilities(referenceList, testList));
+ } else if (key.equals(RemoteControlCapabilities.KEY_SEAT_CONTROL_CAPABILITIES)) {
+ List<SeatControlCapabilities> sccReference = (List<SeatControlCapabilities>) JsonUtils.readObjectFromJsonObject(reference, key);
+ JSONArray sccArray = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
+ int i = 0;
+ for (SeatControlCapabilities scc : sccReference) {
+ assertTrue(Validator.validateSeatControlCapabilities(scc, new SeatControlCapabilities(JsonRPCMarshaller.deserializeJSONObject(sccArray.getJSONObject(i++)))));
+ }
+ }
+ }
+ } catch (JSONException e) {
+ fail(Test.JSON_FAIL);
+ }
+ }
} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatControlCapabilitiesTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatControlCapabilitiesTest.java
new file mode 100644
index 000000000..d988fa991
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatControlCapabilitiesTest.java
@@ -0,0 +1,141 @@
+package com.smartdevicelink.test.rpc.datatypes;
+
+import com.smartdevicelink.proxy.rpc.SeatControlCapabilities;
+import com.smartdevicelink.test.JsonUtils;
+import com.smartdevicelink.test.Test;
+
+import junit.framework.TestCase;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Iterator;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.SeatControlCapabilities}
+ */
+public class SeatControlCapabilitiesTest extends TestCase {
+
+ private SeatControlCapabilities msg;
+
+ @Override
+ public void setUp() {
+ msg = new SeatControlCapabilities();
+ msg.setModuleName(Test.GENERAL_STRING);
+ msg.setHeatingEnabledAvailable(Test.GENERAL_BOOLEAN);
+ msg.setCoolingEnabledAvailable(Test.GENERAL_BOOLEAN);
+ msg.setHeatingLevelAvailable(Test.GENERAL_BOOLEAN);
+ msg.setCoolingLevelAvailable(Test.GENERAL_BOOLEAN);
+ msg.setHorizontalPositionAvailable(Test.GENERAL_BOOLEAN);
+ msg.setVerticalPositionAvailable(Test.GENERAL_BOOLEAN);
+ msg.setFrontVerticalPositionAvailable(Test.GENERAL_BOOLEAN);
+ msg.setBackVerticalPositionAvailable(Test.GENERAL_BOOLEAN);
+ msg.setBackTiltAngleAvailable(Test.GENERAL_BOOLEAN);
+ msg.setHeadSupportVerticalPositionAvailable(Test.GENERAL_BOOLEAN);
+ msg.setHeadSupportHorizontalPositionAvailable(Test.GENERAL_BOOLEAN);
+ msg.setMassageEnabledAvailable(Test.GENERAL_BOOLEAN);
+ msg.setMassageModeAvailable(Test.GENERAL_BOOLEAN);
+ msg.setMassageCushionFirmnessAvailable(Test.GENERAL_BOOLEAN);
+ msg.setMemoryAvailable(Test.GENERAL_BOOLEAN);
+ }
+
+ /**
+ * Tests the expected values of the RPC message.
+ */
+ public void testRpcValues() {
+ // Test Values
+ String moduleName = msg.getModuleName();
+ Boolean heatingEnabledAvailable = msg.getHeatingEnabledAvailable();
+ Boolean coolingEnabledAvailable = msg.getCoolingEnabledAvailable();
+ Boolean heatingLevelAvailable = msg.getHeatingLevelAvailable();
+ Boolean coolingLevelAvailable = msg.getCoolingLevelAvailable();
+ Boolean horizontalPositionAvailable = msg.getHorizontalPositionAvailable();
+ Boolean verticalPositionAvailable = msg.getVerticalPositionAvailable();
+ Boolean frontVerticalPositionAvailable = msg.getFrontVerticalPositionAvailable();
+ Boolean backVerticalPositionAvailable = msg.getBackVerticalPositionAvailable();
+ Boolean backTiltAngleAvailable = msg.getBackTiltAngleAvailable();
+ Boolean headSupportHorizontalPositionAvailable = msg.getHeadSupportHorizontalPositionAvailable();
+ Boolean headSupportVerticalPositionAvailable = msg.getHeadSupportVerticalPositionAvailable();
+ Boolean massageEnabledAvailable = msg.getMassageEnabledAvailable();
+ Boolean massageModeAvailable = msg.getMassageModeAvailable();
+ Boolean massageCushionFirmnessAvailable = msg.getMassageCushionFirmnessAvailable();
+
+ Boolean memoryAvailable = msg.getMemoryAvailable();
+
+ // Valid Tests
+ assertEquals(Test.MATCH, Test.GENERAL_STRING, moduleName);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, heatingEnabledAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, coolingEnabledAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, heatingLevelAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, coolingLevelAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, horizontalPositionAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, verticalPositionAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, frontVerticalPositionAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, backVerticalPositionAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, backTiltAngleAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, headSupportHorizontalPositionAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, headSupportVerticalPositionAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, massageEnabledAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, massageModeAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, massageCushionFirmnessAvailable);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, memoryAvailable);
+
+ // Invalid/Null Tests
+ SeatControlCapabilities msg = new SeatControlCapabilities();
+ assertNotNull(Test.NOT_NULL, msg);
+
+ assertNull(Test.NULL, msg.getModuleName());
+ assertNull(Test.NULL, msg.getHeatingEnabledAvailable());
+ assertNull(Test.NULL, msg.getCoolingEnabledAvailable());
+ assertNull(Test.NULL, msg.getHeatingLevelAvailable());
+ assertNull(Test.NULL, msg.getCoolingLevelAvailable());
+ assertNull(Test.NULL, msg.getHorizontalPositionAvailable());
+ assertNull(Test.NULL, msg.getVerticalPositionAvailable());
+ assertNull(Test.NULL, msg.getFrontVerticalPositionAvailable());
+ assertNull(Test.NULL, msg.getBackVerticalPositionAvailable());
+ assertNull(Test.NULL, msg.getBackTiltAngleAvailable());
+ assertNull(Test.NULL, msg.getHeadSupportHorizontalPositionAvailable());
+ assertNull(Test.NULL, msg.getHeadSupportVerticalPositionAvailable());
+ assertNull(Test.NULL, msg.getMassageEnabledAvailable());
+ assertNull(Test.NULL, msg.getMassageModeAvailable());
+ assertNull(Test.NULL, msg.getMassageCushionFirmnessAvailable());
+ assertNull(Test.NULL, msg.getMemoryAvailable());
+ }
+
+ public void testJson() {
+ JSONObject reference = new JSONObject();
+
+ try {
+ reference.put(SeatControlCapabilities.KEY_MODULE_NAME, Test.GENERAL_STRING);
+ reference.put(SeatControlCapabilities.KEY_HEATING_ENABLED_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_COOLING_ENABLED_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_HEATING_LEVEL_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_COOLING_LEVEL_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_HORIZONTAL_POSITION_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_VERTICAL_POSITION_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_FRONT_VERTICAL_POSITION_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_BACK_VERTICAL_POSITION_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_BACK_TILT_ANGLE_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_HEAD_SUPPORT_HORIZONTAL_POSITION_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_HEAD_SUPPORT_VERTICAL_POSITION_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_MASSAGE_ENABLED_AVAILABLE, Test.GENERAL_BOOLEAN);
+
+ reference.put(SeatControlCapabilities.KEY_MASSAGE_MODE_AVAILABLE, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlCapabilities.KEY_MASSAGE_CUSHION_FIRMNESS_AVAILABLE, Test.GENERAL_BOOLEAN);
+
+ reference.put(SeatControlCapabilities.KEY_MEMORY_AVAILABLE, Test.GENERAL_BOOLEAN);
+
+ JSONObject underTest = msg.serializeJSON();
+ assertEquals(Test.MATCH, reference.length(), underTest.length());
+
+ Iterator<?> iterator = reference.keys();
+ while (iterator.hasNext()) {
+ String key = (String) iterator.next();
+ assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key));
+ }
+ } catch (JSONException e) {
+ fail(Test.JSON_FAIL);
+ }
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatControlDataTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatControlDataTest.java
new file mode 100644
index 000000000..535e7cf3e
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatControlDataTest.java
@@ -0,0 +1,173 @@
+package com.smartdevicelink.test.rpc.datatypes;
+
+import com.smartdevicelink.marshal.JsonRPCMarshaller;
+import com.smartdevicelink.proxy.rpc.MassageCushionFirmness;
+import com.smartdevicelink.proxy.rpc.MassageModeData;
+import com.smartdevicelink.proxy.rpc.SeatControlData;
+import com.smartdevicelink.proxy.rpc.SeatMemoryAction;
+import com.smartdevicelink.proxy.rpc.enums.SupportedSeat;
+import com.smartdevicelink.test.JsonUtils;
+import com.smartdevicelink.test.Test;
+import com.smartdevicelink.test.Validator;
+
+import junit.framework.TestCase;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.SeatControlData}
+ */
+public class SeatControlDataTest extends TestCase {
+
+ private SeatControlData msg;
+
+ @Override
+ public void setUp() {
+ msg = new SeatControlData();
+ msg.setId(Test.GENERAL_SUPPORTEDSEAT);
+ msg.setHeatingEnabled(Test.GENERAL_BOOLEAN);
+ msg.setCoolingEnabled(Test.GENERAL_BOOLEAN);
+ msg.setHeatingLevel(Test.GENERAL_INT);
+ msg.setCoolingLevel(Test.GENERAL_INT);
+ msg.setHorizontalPosition(Test.GENERAL_INT);
+ msg.setVerticalPosition(Test.GENERAL_INT);
+ msg.setFrontVerticalPosition(Test.GENERAL_INT);
+ msg.setBackVerticalPosition(Test.GENERAL_INT);
+ msg.setBackTiltAngle(Test.GENERAL_INT);
+ msg.setHeadSupportVerticalPosition(Test.GENERAL_INT);
+ msg.setHeadSupportHorizontalPosition(Test.GENERAL_INT);
+ msg.setMassageEnabled(Test.GENERAL_BOOLEAN);
+ msg.setMassageMode(Test.GENERAL_MASSAGEMODEDATA_LIST);
+ msg.setMassageCushionFirmness(Test.GENERAL_MASSAGECUSHIONFIRMNESS_LIST);
+ msg.setMemory(Test.GENERAL_SEATMEMORYACTION);
+ }
+
+ /**
+ * Tests the expected values of the RPC message.
+ */
+ public void testRpcValues() {
+ // Test Values
+ SupportedSeat id = msg.getId();
+ Boolean heatingEnabled = msg.getHeatingEnabled();
+ Boolean coolingEnabled = msg.getCoolingEnabled();
+ Integer heatingLevel = msg.getHeatingLevel();
+ Integer coolingLevel = msg.getCoolingLevel();
+ Integer horizontalPosition = msg.getHorizontalPosition();
+ Integer verticalPosition = msg.getVerticalPosition();
+ Integer frontVerticalPosition = msg.getFrontVerticalPosition();
+ Integer backVerticalPosition = msg.getBackVerticalPosition();
+ Integer backTiltAngle = msg.getBackTiltAngle();
+ Integer headSupportHorizontalPosition = msg.getHeadSupportHorizontalPosition();
+ Integer headSupportVerticalPosition = msg.getHeadSupportVerticalPosition();
+ Boolean massageEnabled = msg.getMassageEnabled();
+
+ List<MassageModeData> massageMode = msg.getMassageMode();
+ List<MassageCushionFirmness> massageCushionFirmness = msg.getMassageCushionFirmness();
+ SeatMemoryAction memory = msg.getMemory();
+
+ // Valid Tests
+ assertEquals(Test.MATCH, Test.GENERAL_SUPPORTEDSEAT, id);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, heatingEnabled);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, coolingEnabled);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, heatingLevel);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, coolingLevel);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, horizontalPosition);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, verticalPosition);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, frontVerticalPosition);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, backVerticalPosition);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, backTiltAngle);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, headSupportHorizontalPosition);
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, headSupportVerticalPosition);
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, massageEnabled);
+
+ assertTrue(Test.TRUE, Validator.validateMassageModeDataList(Test.GENERAL_MASSAGEMODEDATA_LIST, massageMode));
+ assertTrue(Test.TRUE, Validator.validateMassageCushionFirmnessList(Test.GENERAL_MASSAGECUSHIONFIRMNESS_LIST, massageCushionFirmness));
+
+ assertTrue(Test.TRUE, Validator.validateSeatMemoryAction(Test.GENERAL_SEATMEMORYACTION, memory));
+
+ // Invalid/Null Tests
+ SeatControlData msg = new SeatControlData();
+ assertNotNull(Test.NOT_NULL, msg);
+
+ assertNull(Test.NULL, msg.getId());
+ assertNull(Test.NULL, msg.getHeatingEnabled());
+ assertNull(Test.NULL, msg.getCoolingEnabled());
+ assertNull(Test.NULL, msg.getHeatingLevel());
+ assertNull(Test.NULL, msg.getCoolingLevel());
+ assertNull(Test.NULL, msg.getHorizontalPosition());
+ assertNull(Test.NULL, msg.getVerticalPosition());
+ assertNull(Test.NULL, msg.getFrontVerticalPosition());
+ assertNull(Test.NULL, msg.getBackVerticalPosition());
+ assertNull(Test.NULL, msg.getBackTiltAngle());
+ assertNull(Test.NULL, msg.getHeadSupportHorizontalPosition());
+ assertNull(Test.NULL, msg.getHeadSupportVerticalPosition());
+ assertNull(Test.NULL, msg.getMassageEnabled());
+ assertNull(Test.NULL, msg.getMassageMode());
+ assertNull(Test.NULL, msg.getMassageCushionFirmness());
+ assertNull(Test.NULL, msg.getMemory());
+ }
+
+ public void testJson() {
+ JSONObject reference = new JSONObject();
+
+ try {
+ reference.put(SeatControlData.KEY_ID, Test.GENERAL_SUPPORTEDSEAT);
+ reference.put(SeatControlData.KEY_HEATING_ENABLED, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlData.KEY_COOLING_ENABLED, Test.GENERAL_BOOLEAN);
+ reference.put(SeatControlData.KEY_HEATING_LEVEL, Test.GENERAL_INT);
+ reference.put(SeatControlData.KEY_COOLING_LEVEL, Test.GENERAL_INT);
+ reference.put(SeatControlData.KEY_HORIZONTAL_POSITION, Test.GENERAL_INT);
+ reference.put(SeatControlData.KEY_VERTICAL_POSITION, Test.GENERAL_INT);
+ reference.put(SeatControlData.KEY_FRONT_VERTICAL_POSITION, Test.GENERAL_INT);
+ reference.put(SeatControlData.KEY_BACK_VERTICAL_POSITION, Test.GENERAL_INT);
+ reference.put(SeatControlData.KEY_BACK_TILT_ANGLE, Test.GENERAL_INT);
+ reference.put(SeatControlData.KEY_HEAD_SUPPORT_HORIZONTAL_POSITION, Test.GENERAL_INT);
+ reference.put(SeatControlData.KEY_HEAD_SUPPORT_VERTICAL_POSITION, Test.GENERAL_INT);
+ reference.put(SeatControlData.KEY_MASSAGE_ENABLED, Test.GENERAL_BOOLEAN);
+
+ reference.put(SeatControlData.KEY_MASSAGE_MODE, Test.GENERAL_MASSAGEMODEDATA_LIST);
+ reference.put(SeatControlData.KEY_MASSAGE_CUSHION_FIRMNESS, Test.GENERAL_MASSAGECUSHIONFIRMNESS_LIST);
+
+ reference.put(SeatControlData.KEY_MEMORY, Test.GENERAL_SEATMEMORYACTION);
+
+ JSONObject underTest = msg.serializeJSON();
+ assertEquals(Test.MATCH, reference.length(), underTest.length());
+
+ Iterator<?> iterator = reference.keys();
+ while (iterator.hasNext()) {
+ String key = (String) iterator.next();
+
+ if (key.equals(SeatControlData.KEY_MASSAGE_MODE)) {
+ List<MassageModeData> mmdReference = (List<MassageModeData>) JsonUtils.readObjectFromJsonObject(reference, key);
+ JSONArray mmdArray = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
+ int i = 0;
+ for (MassageModeData mmd : mmdReference) {
+ assertTrue(Validator.validateMassageModeData(mmd, new MassageModeData(JsonRPCMarshaller.deserializeJSONObject(mmdArray.getJSONObject(i++)))));
+ }
+ } else if (key.equals(SeatControlData.KEY_MASSAGE_CUSHION_FIRMNESS)) {
+ List<MassageCushionFirmness> mcfReference = (List<MassageCushionFirmness>) JsonUtils.readObjectFromJsonObject(reference, key);
+ JSONArray mcfArray = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
+ int i = 0;
+ for (MassageCushionFirmness mcf : mcfReference) {
+ assertTrue(Validator.validateMassageCushionFirmness(mcf, new MassageCushionFirmness(JsonRPCMarshaller.deserializeJSONObject(mcfArray.getJSONObject(i++)))));
+ }
+ } else if (key.equals(SeatControlData.KEY_MEMORY)) {
+ SeatMemoryAction mReference = (SeatMemoryAction) JsonUtils.readObjectFromJsonObject(reference, key);
+ Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(JsonUtils.readJsonObjectFromJsonObject(underTest, key));
+ assertTrue(Validator.validateSeatMemoryAction(mReference, new SeatMemoryAction(hashTest)));
+ } else {
+ assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key));
+ }
+ }
+ } catch (JSONException e) {
+ fail(Test.JSON_FAIL);
+ }
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatMemoryActionTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatMemoryActionTest.java
new file mode 100644
index 000000000..a8c17cee3
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SeatMemoryActionTest.java
@@ -0,0 +1,75 @@
+package com.smartdevicelink.test.rpc.datatypes;
+
+import com.smartdevicelink.proxy.rpc.SeatMemoryAction;
+import com.smartdevicelink.proxy.rpc.enums.SeatMemoryActionType;
+import com.smartdevicelink.test.JsonUtils;
+import com.smartdevicelink.test.Test;
+
+import junit.framework.TestCase;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Iterator;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.SeatMemoryAction}
+ */
+public class SeatMemoryActionTest extends TestCase {
+
+ private SeatMemoryAction msg;
+
+ @Override
+ public void setUp() {
+ msg = new SeatMemoryAction();
+
+ msg.setId(Test.GENERAL_INT);
+ msg.setLabel(Test.GENERAL_STRING);
+ msg.setAction(Test.GENERAL_SEATMEMORYACTIONTYPE);
+ }
+
+ /**
+ * Tests the expected values of the RPC message.
+ */
+ public void testRpcValues() {
+ // Test Values
+ Integer id = msg.getId();
+ String label = msg.getLabel();
+ SeatMemoryActionType action = msg.getAction();
+
+ // Valid Tests
+ assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, id);
+ assertEquals(Test.MATCH, Test.GENERAL_STRING, label);
+ assertEquals(Test.MATCH, Test.GENERAL_SEATMEMORYACTIONTYPE, action);
+
+ // Invalid/Null Tests
+ SeatMemoryAction msg = new SeatMemoryAction();
+ assertNotNull(Test.NOT_NULL, msg);
+
+ assertNull(Test.NULL, msg.getId());
+ assertNull(Test.NULL, msg.getLabel());
+ assertNull(Test.NULL, msg.getAction());
+ }
+
+ public void testJson() {
+ JSONObject reference = new JSONObject();
+
+ try {
+ reference.put(SeatMemoryAction.KEY_ID, Test.GENERAL_INT);
+ reference.put(SeatMemoryAction.KEY_LABEL, Test.GENERAL_STRING);
+ reference.put(SeatMemoryAction.KEY_ACTION, Test.GENERAL_SEATMEMORYACTIONTYPE);
+
+ JSONObject underTest = msg.serializeJSON();
+ assertEquals(Test.MATCH, reference.length(), underTest.length());
+
+ Iterator<?> iterator = reference.keys();
+ while (iterator.hasNext()) {
+ String key = (String) iterator.next();
+ assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key));
+ }
+ } catch (JSONException e) {
+ fail(Test.JSON_FAIL);
+ }
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SingleTireStatusTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SingleTireStatusTest.java
index aa6d7fadd..9f1d3342a 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SingleTireStatusTest.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SingleTireStatusTest.java
@@ -9,12 +9,13 @@ import org.json.JSONObject;
import com.smartdevicelink.proxy.rpc.SingleTireStatus;
import com.smartdevicelink.proxy.rpc.enums.ComponentVolumeStatus;
+import com.smartdevicelink.proxy.rpc.enums.TPMS;
import com.smartdevicelink.test.JsonUtils;
import com.smartdevicelink.test.Test;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.SingleTireStatus}
+ * {@link com.smartdevicelink.proxy.rpc.SingleTireStatus}
*/
public class SingleTireStatusTest extends TestCase {
@@ -25,6 +26,8 @@ public class SingleTireStatusTest extends TestCase {
msg = new SingleTireStatus();
msg.setStatus(Test.GENERAL_COMPONENTVOLUMESTATUS);
+ msg.setTPMS(Test.GENERAL_TPMS);
+ msg.setPressure(Test.GENERAL_FLOAT);
}
/**
@@ -33,15 +36,21 @@ public class SingleTireStatusTest extends TestCase {
public void testRpcValues () {
// Test Values
ComponentVolumeStatus status = msg.getStatus();
+ TPMS tpms = msg.getTPMS();
+ Float pressure = msg.getPressure();
// Valid Tests
assertEquals(Test.MATCH, Test.GENERAL_COMPONENTVOLUMESTATUS, status);
+ assertEquals(Test.MATCH, Test.GENERAL_TPMS, tpms);
+ assertEquals(Test.MATCH, Test.GENERAL_FLOAT, pressure);
// Invalid/Null Tests
SingleTireStatus msg = new SingleTireStatus();
assertNotNull(Test.NOT_NULL, msg);
assertNull(Test.NULL, msg.getStatus());
+ assertNull(Test.NULL, msg.getTPMS());
+ assertNull(Test.NULL, msg.getPressure());
}
public void testJson() {
@@ -49,6 +58,8 @@ public class SingleTireStatusTest extends TestCase {
try {
reference.put(SingleTireStatus.KEY_STATUS, Test.GENERAL_COMPONENTVOLUMESTATUS);
+ reference.put(SingleTireStatus.KEY_TPMS, Test.GENERAL_TPMS);
+ reference.put(SingleTireStatus.KEY_PRESSURE, Test.GENERAL_FLOAT);
JSONObject underTest = msg.serializeJSON();
assertEquals(Test.MATCH, reference.length(), underTest.length());
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/TemplateColorSchemeTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/TemplateColorSchemeTest.java
new file mode 100644
index 000000000..0ac90fc86
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/TemplateColorSchemeTest.java
@@ -0,0 +1,81 @@
+package com.smartdevicelink.test.rpc.datatypes;
+
+import com.smartdevicelink.marshal.JsonRPCMarshaller;
+import com.smartdevicelink.proxy.rpc.RGBColor;
+import com.smartdevicelink.proxy.rpc.RegisterAppInterface;
+import com.smartdevicelink.proxy.rpc.TemplateColorScheme;
+import com.smartdevicelink.test.JsonUtils;
+import com.smartdevicelink.test.Test;
+import com.smartdevicelink.test.Validator;
+
+import junit.framework.TestCase;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Iterator;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.proxy.rpc.TemplateColorScheme}
+ */
+public class TemplateColorSchemeTest extends TestCase {
+
+ private TemplateColorScheme msg;
+
+ @Override
+ public void setUp() {
+ msg = new TemplateColorScheme();
+ msg.setPrimaryColor(Test.GENERAL_RGBCOLOR);
+ msg.setSecondaryColor(Test.GENERAL_RGBCOLOR);
+ msg.setBackgroundColor(Test.GENERAL_RGBCOLOR);
+ }
+
+ /**
+ * Tests the expected values of the RPC message.
+ */
+ public void testRpcValues () {
+ // Test Values
+ RGBColor primaryColor = msg.getPrimaryColor();
+ RGBColor secondaryColor = msg.getSecondaryColor();
+ RGBColor backgroundColor = msg.getBackgroundColor();
+
+ // Valid Tests
+ assertTrue(Test.TRUE, Validator.validateRGBColor(Test.GENERAL_RGBCOLOR, primaryColor));
+ assertTrue(Test.TRUE, Validator.validateRGBColor(Test.GENERAL_RGBCOLOR, secondaryColor));
+ assertTrue(Test.TRUE, Validator.validateRGBColor(Test.GENERAL_RGBCOLOR, backgroundColor));
+
+ // Invalid/Null Tests
+ TemplateColorScheme msg = new TemplateColorScheme();
+ assertNotNull(Test.NOT_NULL, msg);
+
+ assertNull(Test.NULL, msg.getPrimaryColor());
+ assertNull(Test.NULL, msg.getSecondaryColor());
+ assertNull(Test.NULL, msg.getBackgroundColor());
+ }
+
+ public void testJson() {
+ JSONObject reference = new JSONObject();
+
+ try {
+ reference.put(TemplateColorScheme.KEY_PRIMARY_COLOR, Test.JSON_RGBCOLOR);
+ reference.put(TemplateColorScheme.KEY_SECONDARY_COLOR, Test.JSON_RGBCOLOR);
+ reference.put(TemplateColorScheme.KEY_BACKGROUND_COLOR, Test.JSON_RGBCOLOR);
+
+ JSONObject underTest = msg.serializeJSON();
+ assertEquals(Test.MATCH, reference.length(), underTest.length());
+
+ Iterator<?> iterator = reference.keys();
+ while (iterator.hasNext()) {
+ String key = (String) iterator.next();
+ JSONObject referenceColorObj = JsonUtils.readJsonObjectFromJsonObject(reference, key);
+ RGBColor referenceColor = new RGBColor(JsonRPCMarshaller.deserializeJSONObject(referenceColorObj));
+ JSONObject underTestColorObj = JsonUtils.readJsonObjectFromJsonObject(underTest, key);
+ RGBColor underTestColor = new RGBColor(JsonRPCMarshaller.deserializeJSONObject(underTestColorObj));
+ assertTrue(Test.TRUE, Validator.validateRGBColor(referenceColor, underTestColor));
+ }
+ } catch (JSONException e) {
+ fail(Test.JSON_FAIL);
+ }
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ElectronicParkBrakeStatusTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ElectronicParkBrakeStatusTests.java
new file mode 100644
index 000000000..bbeb1bce3
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ElectronicParkBrakeStatusTests.java
@@ -0,0 +1,82 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import com.smartdevicelink.proxy.rpc.enums.ElectronicParkBrakeStatus;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.enums.ElectronicParkBrakeStatus}
+ */
+public class ElectronicParkBrakeStatusTests extends TestCase {
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums () {
+ String example = "CLOSED";
+ ElectronicParkBrakeStatus enumClosed = ElectronicParkBrakeStatus.valueForString(example);
+ example = "TRANSITION";
+ ElectronicParkBrakeStatus enumTransition = ElectronicParkBrakeStatus.valueForString(example);
+ example = "OPEN";
+ ElectronicParkBrakeStatus enumOpen = ElectronicParkBrakeStatus.valueForString(example);
+ example = "DRIVE_ACTIVE";
+ ElectronicParkBrakeStatus enumDriveActive = ElectronicParkBrakeStatus.valueForString(example);
+ example = "FAULT";
+ ElectronicParkBrakeStatus enumFault = ElectronicParkBrakeStatus.valueForString(example);
+
+ assertNotNull("CLOSED returned null", enumClosed);
+ assertNotNull("TRANSITION returned null", enumTransition);
+ assertNotNull("OPEN returned null", enumOpen);
+ assertNotNull("DRIVE_ACTIVE returned null", enumDriveActive);
+ assertNotNull("FAULT returned null", enumFault);
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum () {
+ String example = "Clsoed";
+ try {
+ ElectronicParkBrakeStatus temp = ElectronicParkBrakeStatus.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum () {
+ String example = null;
+ try {
+ ElectronicParkBrakeStatus temp = ElectronicParkBrakeStatus.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of Electronic Brake Status.
+ */
+ public void testListEnum() {
+ List<ElectronicParkBrakeStatus> enumValueList = Arrays.asList(ElectronicParkBrakeStatus.values());
+
+ List<ElectronicParkBrakeStatus> enumTestList = new ArrayList<ElectronicParkBrakeStatus>();
+ enumTestList.add(ElectronicParkBrakeStatus.CLOSED);
+ enumTestList.add(ElectronicParkBrakeStatus.TRANSITION);
+ enumTestList.add(ElectronicParkBrakeStatus.OPEN);
+ enumTestList.add(ElectronicParkBrakeStatus.DRIVE_ACTIVE);
+ enumTestList.add(ElectronicParkBrakeStatus.FAULT);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/FuelTypeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/FuelTypeTests.java
new file mode 100644
index 000000000..525cc0316
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/FuelTypeTests.java
@@ -0,0 +1,87 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import com.smartdevicelink.proxy.rpc.enums.FuelType;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.enums.FuelType}
+ */
+public class FuelTypeTests extends TestCase {
+
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums () {
+ String example = "GASOLINE";
+ FuelType enumGasoline = FuelType.valueForString(example);
+ example = "DIESEL";
+ FuelType enumDiesel = FuelType.valueForString(example);
+ example = "CNG";
+ FuelType enumCng = FuelType.valueForString(example);
+ example = "LPG";
+ FuelType enumLpg = FuelType.valueForString(example);
+ example = "HYDROGEN";
+ FuelType enumHydrogen = FuelType.valueForString(example);
+ example = "BATTERY";
+ FuelType enumBattery = FuelType.valueForString(example);
+
+ assertNotNull("GASOLINE returned null", enumGasoline);
+ assertNotNull("DIESEL returned null", enumDiesel);
+ assertNotNull("CNG returned null", enumCng);
+ assertNotNull("LPG returned null", enumLpg);
+ assertNotNull("HYDROGEN returned null", enumHydrogen);
+ assertNotNull("BATTERY returned null", enumBattery);
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum () {
+ String example = "gASOLINE";
+ try {
+ FuelType temp = FuelType.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum () {
+ String example = null;
+ try {
+ FuelType temp = FuelType.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of FuelType.
+ */
+ public void testListEnum() {
+ List<FuelType> enumValueList = Arrays.asList(FuelType.values());
+
+ List<FuelType> enumTestList = new ArrayList<FuelType>();
+ enumTestList.add(FuelType.GASOLINE);
+ enumTestList.add(FuelType.DIESEL);
+ enumTestList.add(FuelType.CNG);
+ enumTestList.add(FuelType.LPG);
+ enumTestList.add(FuelType.HYDROGEN);
+ enumTestList.add(FuelType.BATTERY);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ImageFieldNameTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ImageFieldNameTests.java
index 13937cd89..aa2c1cbf1 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ImageFieldNameTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ImageFieldNameTests.java
@@ -42,6 +42,8 @@ public class ImageFieldNameTests extends TestCase {
ImageFieldName enumShowConstantTbtNextTurnIcon = ImageFieldName.valueForString(example);
example = "locationImage";
ImageFieldName enumLocationImage = ImageFieldName.valueForString(example);
+ example = "secondaryGraphic";
+ ImageFieldName enumSecondaryGraphic = ImageFieldName.valueForString(example);
assertNotNull("softButtonImage returned null", enumSoftButtonImage);
assertNotNull("choiceImage returned null", enumChoiceImage);
@@ -55,6 +57,7 @@ public class ImageFieldNameTests extends TestCase {
assertNotNull("showConstantTBTIcon returned null", enumShowConstantTbtIcon);
assertNotNull("showConstantTBTNextTurnIcon returned null", enumShowConstantTbtNextTurnIcon);
assertNotNull("location image returned null", enumLocationImage);
+ assertNotNull("secondary graphic returned null", enumSecondaryGraphic);
}
/**
@@ -104,6 +107,7 @@ public class ImageFieldNameTests extends TestCase {
enumTestList.add(ImageFieldName.showConstantTBTIcon);
enumTestList.add(ImageFieldName.showConstantTBTNextTurnIcon);
enumTestList.add(ImageFieldName.locationImage);
+ enumTestList.add(ImageFieldName.secondaryGraphic);
assertTrue("Enum value list does not match enum class list",
enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageCushionTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageCushionTests.java
new file mode 100644
index 000000000..e1f58ffef
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageCushionTests.java
@@ -0,0 +1,81 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import com.smartdevicelink.proxy.rpc.enums.MassageCushion;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.enums.MassageCushion}
+ */
+public class MassageCushionTests extends TestCase {
+
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums() {
+ String example = "TOP_LUMBAR";
+ MassageCushion enumTopLumbar = MassageCushion.valueForString(example);
+ example = "MIDDLE_LUMBAR";
+ MassageCushion enumMiddleLumbar = MassageCushion.valueForString(example);
+ example = "BOTTOM_LUMBAR";
+ MassageCushion enumBottomLumbar = MassageCushion.valueForString(example);
+ example = "BACK_BOLSTERS";
+ MassageCushion enumBackBolsters = MassageCushion.valueForString(example);
+ example = "SEAT_BOLSTERS";
+ MassageCushion enumSeatBolsters = MassageCushion.valueForString(example);
+
+ assertNotNull("TOP_LUMBAR returned null", enumTopLumbar);
+ assertNotNull("MIDDLE_LUMBAR returned null", enumMiddleLumbar);
+ assertNotNull("BOTTOM_LUMBAR returned null", enumBottomLumbar);
+ assertNotNull("BACK_BOLSTERS returned null", enumBackBolsters);
+ assertNotNull("SEAT_BOLSTERS returned null", enumSeatBolsters);
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum() {
+ String example = "tOP_LUMBAR";
+ try {
+ MassageCushion temp = MassageCushion.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ } catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum() {
+ String example = null;
+ try {
+ MassageCushion temp = MassageCushion.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ } catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of MassageCushion.
+ */
+ public void testListEnum() {
+ List<MassageCushion> enumValueList = Arrays.asList(MassageCushion.values());
+
+ List<MassageCushion> enumTestList = new ArrayList<MassageCushion>();
+ enumTestList.add(MassageCushion.TOP_LUMBAR);
+ enumTestList.add(MassageCushion.MIDDLE_LUMBAR);
+ enumTestList.add(MassageCushion.BOTTOM_LUMBAR);
+ enumTestList.add(MassageCushion.BACK_BOLSTERS);
+ enumTestList.add(MassageCushion.SEAT_BOLSTERS);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageModeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageModeTests.java
new file mode 100644
index 000000000..55e82ac21
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageModeTests.java
@@ -0,0 +1,73 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import com.smartdevicelink.proxy.rpc.enums.MassageMode;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.enums.MassageMode}
+ */
+public class MassageModeTests extends TestCase {
+
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums() {
+ String example = "OFF";
+ MassageMode enumOff = MassageMode.valueForString(example);
+ example = "LOW";
+ MassageMode enumLow = MassageMode.valueForString(example);
+ example = "HIGH";
+ MassageMode enumHigh = MassageMode.valueForString(example);
+
+ assertNotNull("OFF returned null", enumOff);
+ assertNotNull("LOW returned null", enumLow);
+ assertNotNull("HIGH returned null", enumHigh);
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum() {
+ String example = "oFF";
+ try {
+ MassageMode temp = MassageMode.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ } catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum() {
+ String example = null;
+ try {
+ MassageMode temp = MassageMode.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ } catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of MassageMode.
+ */
+ public void testListEnum() {
+ List<MassageMode> enumValueList = Arrays.asList(MassageMode.values());
+
+ List<MassageMode> enumTestList = new ArrayList<MassageMode>();
+ enumTestList.add(MassageMode.OFF);
+ enumTestList.add(MassageMode.LOW);
+ enumTestList.add(MassageMode.HIGH);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageZoneTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageZoneTests.java
new file mode 100644
index 000000000..bbd543d4e
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MassageZoneTests.java
@@ -0,0 +1,69 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import com.smartdevicelink.proxy.rpc.enums.MassageZone;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.enums.MassageZone}
+ */
+public class MassageZoneTests extends TestCase {
+
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums() {
+ String example = "LUMBAR";
+ MassageZone enumLumbar = MassageZone.valueForString(example);
+ example = "SEAT_CUSHION";
+ MassageZone enumSeatCushion = MassageZone.valueForString(example);
+
+ assertNotNull("LUMBAR returned null", enumLumbar);
+ assertNotNull("SEAT_CUSHION returned null", enumSeatCushion);
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum() {
+ String example = "lUMBAR";
+ try {
+ MassageZone temp = MassageZone.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ } catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum() {
+ String example = null;
+ try {
+ MassageZone temp = MassageZone.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ } catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of MassageZone.
+ */
+ public void testListEnum() {
+ List<MassageZone> enumValueList = Arrays.asList(MassageZone.values());
+
+ List<MassageZone> enumTestList = new ArrayList<MassageZone>();
+ enumTestList.add(MassageZone.LUMBAR);
+ enumTestList.add(MassageZone.SEAT_CUSHION);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MetadataTypeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MetadataTypeTests.java
index c1aff1bdd..c381dfff3 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MetadataTypeTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MetadataTypeTests.java
@@ -14,12 +14,12 @@ import java.util.List;
* {@link com.smartdevicelink.proxy.rpc.MetadataTags}
*/
-public class MetadataTypeTests extends TestCase{
+public class MetadataTypeTests extends TestCase {
/**
* Verifies that the enum values are not null upon valid assignment.
*/
- public void testValidEnums () {
+ public void testValidEnums() {
String example = "mediaTitle";
MetadataType enumMediaTitle = MetadataType.valueForString(example);
example = "mediaArtist";
@@ -63,13 +63,12 @@ public class MetadataTypeTests extends TestCase{
/**
* Verifies that an invalid assignment is null.
*/
- public void testInvalidEnum () {
+ public void testInvalidEnum() {
String example = "MEDIA_TITLEZ";
try {
MetadataType temp = MetadataType.valueForString(example);
assertNull("Result of valueForString should be null.", temp);
- }
- catch (IllegalArgumentException exception) {
+ } catch (IllegalArgumentException exception) {
fail("Invalid enum throws IllegalArgumentException.");
}
}
@@ -77,13 +76,12 @@ public class MetadataTypeTests extends TestCase{
/**
* Verifies that a null assignment is invalid.
*/
- public void testNullEnum () {
+ public void testNullEnum() {
String example = null;
try {
MetadataType temp = MetadataType.valueForString(example);
assertNull("Result of valueForString should be null.", temp);
- }
- catch (NullPointerException exception) {
+ } catch (NullPointerException exception) {
fail("Null string throws NullPointerException.");
}
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ModuleTypeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ModuleTypeTests.java
index 18a47b79d..9af8b4867 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ModuleTypeTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ModuleTypeTests.java
@@ -22,9 +22,12 @@ public class ModuleTypeTests extends TestCase {
ModuleType enumClimate = ModuleType.valueForString(example);
example = "RADIO";
ModuleType enumRadio = ModuleType.valueForString(example);
+ example = "SEAT";
+ ModuleType enumSeat = ModuleType.valueForString(example);
assertNotNull("CLIMATE returned null", enumClimate);
assertNotNull("RADIO returned null", enumRadio);
+ assertNotNull("SEAT returned null", enumSeat);
}
/**
@@ -64,6 +67,7 @@ public class ModuleTypeTests extends TestCase {
List<ModuleType> enumTestList = new ArrayList<ModuleType>();
enumTestList.add(ModuleType.CLIMATE);
enumTestList.add(ModuleType.RADIO);
+ enumTestList.add(ModuleType.SEAT);
assertTrue("Enum value list does not match enum class list",
enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/RequestTypeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/RequestTypeTests.java
index ea50b11b1..4ae23815f 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/RequestTypeTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/RequestTypeTests.java
@@ -138,8 +138,9 @@ public class RequestTypeTests extends TestCase {
enumTestList.add(RequestType.SETTINGS);
enumTestList.add(RequestType.VEHICLE_DIAGNOSTICS);
enumTestList.add(RequestType.EMERGENCY);
- enumTestList.add(RequestType.MEDIA);
- enumTestList.add(RequestType.FOTA);
+ enumTestList.add(RequestType.MEDIA);
+ enumTestList.add(RequestType.FOTA);
+ enumTestList.add(RequestType.OEM_SPECIFIC);
assertTrue("Enum value list does not match enum class list",
enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ResultTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ResultTests.java
index 5156c4f44..4cea3acbe 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ResultTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ResultTests.java
@@ -10,14 +10,14 @@ import com.smartdevicelink.proxy.rpc.enums.Result;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.enums.Result}
+ * {@link com.smartdevicelink.proxy.rpc.enums.Result}
*/
public class ResultTests extends TestCase {
/**
* Verifies that the enum values are not null upon valid assignment.
*/
- public void testValidEnums () {
+ public void testValidEnums () {
String example = "SUCCESS";
Result enumSuccess = Result.valueForString(example);
example = "INVALID_DATA";
@@ -86,6 +86,8 @@ public class ResultTests extends TestCase {
Result enumDataNotAvailable = Result.valueForString(example);
example = "READ_ONLY";
Result enumReadOnly = Result.valueForString(example);
+ example = "CORRUPTED_DATA";
+ Result enumCorruptData = Result.valueForString(example);
assertNotNull("SUCCESS returned null", enumSuccess);
assertNotNull("INVALID_DATA returned null", enumInvalidData);
@@ -121,6 +123,7 @@ public class ResultTests extends TestCase {
assertNotNull("RESUME_FAILED returned null", enumResumeFailed);
assertNotNull("DATA_NOT_AVAILABLE returned null", enumDataNotAvailable);
assertNotNull("READ_ONLY returned null", enumReadOnly);
+ assertNotNull("CORRUPTED_DATA", enumCorruptData);
}
/**
@@ -192,6 +195,7 @@ public class ResultTests extends TestCase {
enumTestList.add(Result.RESUME_FAILED);
enumTestList.add(Result.DATA_NOT_AVAILABLE);
enumTestList.add(Result.READ_ONLY);
+ enumTestList.add(Result.CORRUPTED_DATA);
assertTrue("Enum value list does not match enum class list",
enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SeatMemoryActionTypeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SeatMemoryActionTypeTests.java
new file mode 100644
index 000000000..2642e35d3
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SeatMemoryActionTypeTests.java
@@ -0,0 +1,73 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import com.smartdevicelink.proxy.rpc.enums.SeatMemoryActionType;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.enums.SeatMemoryActionType}
+ */
+public class SeatMemoryActionTypeTests extends TestCase {
+
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums() {
+ String example = "SAVE";
+ SeatMemoryActionType enumSave = SeatMemoryActionType.valueForString(example);
+ example = "RESTORE";
+ SeatMemoryActionType enumRestore = SeatMemoryActionType.valueForString(example);
+ example = "NONE";
+ SeatMemoryActionType enumNone = SeatMemoryActionType.valueForString(example);
+
+ assertNotNull("SAVE returned null", enumSave);
+ assertNotNull("RESTORE returned null", enumRestore);
+ assertNotNull("NONE returned null", enumNone);
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum() {
+ String example = "sAVE";
+ try {
+ SeatMemoryActionType temp = SeatMemoryActionType.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ } catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum() {
+ String example = null;
+ try {
+ SeatMemoryActionType temp = SeatMemoryActionType.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ } catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of SeatMemoryActionType.
+ */
+ public void testListEnum() {
+ List<SeatMemoryActionType> enumValueList = Arrays.asList(SeatMemoryActionType.values());
+
+ List<SeatMemoryActionType> enumTestList = new ArrayList<SeatMemoryActionType>();
+ enumTestList.add(SeatMemoryActionType.SAVE);
+ enumTestList.add(SeatMemoryActionType.RESTORE);
+ enumTestList.add(SeatMemoryActionType.NONE);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SpeechCapabilitiesTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SpeechCapabilitiesTests.java
index 2ed1b4a77..364f7c896 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SpeechCapabilitiesTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SpeechCapabilitiesTests.java
@@ -76,6 +76,7 @@ public class SpeechCapabilitiesTests extends TestCase {
enumTestList.add(SpeechCapabilities.LHPLUS_PHONEMES);
enumTestList.add(SpeechCapabilities.PRE_RECORDED);
enumTestList.add(SpeechCapabilities.SILENCE);
+ enumTestList.add(SpeechCapabilities.FILE);
assertTrue("Enum value list does not match enum class list",
enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SupportedSeatTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SupportedSeatTests.java
new file mode 100644
index 000000000..6a2dbd18f
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/SupportedSeatTests.java
@@ -0,0 +1,69 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import com.smartdevicelink.proxy.rpc.enums.SupportedSeat;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.rpc.enums.SupportedSeat}
+ */
+public class SupportedSeatTests extends TestCase {
+
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums() {
+ String example = "DRIVER";
+ SupportedSeat enumDriver = SupportedSeat.valueForString(example);
+ example = "FRONT_PASSENGER";
+ SupportedSeat enumFrontPassenger = SupportedSeat.valueForString(example);
+
+ assertNotNull("DRIVER returned null", enumDriver);
+ assertNotNull("FRONT_PASSENGER returned null", enumFrontPassenger);
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum() {
+ String example = "dRIVER";
+ try {
+ SupportedSeat temp = SupportedSeat.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ } catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum() {
+ String example = null;
+ try {
+ SupportedSeat temp = SupportedSeat.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ } catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of SupportedSeat.
+ */
+ public void testListEnum() {
+ List<SupportedSeat> enumValueList = Arrays.asList(SupportedSeat.values());
+
+ List<SupportedSeat> enumTestList = new ArrayList<SupportedSeat>();
+ enumTestList.add(SupportedSeat.DRIVER);
+ enumTestList.add(SupportedSeat.FRONT_PASSENGER);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TPMSTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TPMSTests.java
new file mode 100644
index 000000000..c573a0d7a
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TPMSTests.java
@@ -0,0 +1,95 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import com.smartdevicelink.proxy.rpc.enums.TPMS;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.proxy.rpc.enums.TPMS}
+ */
+public class TPMSTests extends TestCase {
+
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums () {
+ String example = "UNKNOWN";
+ TPMS unknown = TPMS.valueForString(example);
+ example = "SYSTEM_FAULT";
+ TPMS systemFault = TPMS.valueForString(example);
+ example = "SENSOR_FAULT";
+ TPMS sensorFault = TPMS.valueForString(example);
+ example = "LOW";
+ TPMS low = TPMS.valueForString(example);
+ example = "SYSTEM_ACTIVE";
+ TPMS systemActive = TPMS.valueForString(example);
+ example = "TRAIN";
+ TPMS train = TPMS.valueForString(example);
+ example = "TRAINING_COMPLETE";
+ TPMS trainingComplete = TPMS.valueForString(example);
+ example = "NOT_TRAINED";
+ TPMS notTrained = TPMS.valueForString(example);
+
+ assertNotNull("UNKNOWN returned null", unknown);
+ assertNotNull("SYSTEM_FAULT returned null", systemFault);
+ assertNotNull("SENSOR_FAULT returned null", sensorFault);
+ assertNotNull("LOW returned null", low);
+ assertNotNull("SYSTEM_ACTIVE returned null", systemActive);
+ assertNotNull("TRAIN returned null", train);
+ assertNotNull("TRAINING_COMPLETE returned null", trainingComplete);
+ assertNotNull("NOT_TRAINED returned null", notTrained);
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum () {
+ String example = "IsHoUldBeNulL";
+ try {
+ TPMS temp = TPMS.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum () {
+ String example = null;
+ try {
+ TPMS temp = TPMS.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of TPMS.
+ */
+ public void testListEnum() {
+ List<TPMS> enumValueList = Arrays.asList(TPMS.values());
+
+ List<TPMS> enumTestList = new ArrayList<>();
+ enumTestList.add(TPMS.UNKNOWN);
+ enumTestList.add(TPMS.SYSTEM_FAULT);
+ enumTestList.add(TPMS.SENSOR_FAULT);
+ enumTestList.add(TPMS.LOW);
+ enumTestList.add(TPMS.SYSTEM_ACTIVE);
+ enumTestList.add(TPMS.TRAIN);
+ enumTestList.add(TPMS.TRAINING_COMPLETE);
+ enumTestList.add(TPMS.NOT_TRAINED);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TurnSignalTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TurnSignalTests.java
new file mode 100644
index 000000000..a758d683e
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TurnSignalTests.java
@@ -0,0 +1,79 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import com.smartdevicelink.proxy.rpc.enums.TurnSignal;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.proxy.rpc.enums.TurnSignal}
+ */
+public class TurnSignalTests extends TestCase {
+
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums () {
+ String example = "OFF";
+ TurnSignal off = TurnSignal.valueForString(example);
+ example = "LEFT";
+ TurnSignal left = TurnSignal.valueForString(example);
+ example = "RIGHT";
+ TurnSignal right = TurnSignal.valueForString(example);
+ example = "BOTH";
+ TurnSignal both = TurnSignal.valueForString(example);
+
+ assertNotNull("OFF returned null", off);
+ assertNotNull("LEFT returned null", left);
+ assertNotNull("RIGHT returned null", right);
+ assertNotNull("BOTH returned null", both);
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum () {
+ String example = "IsHoUldBeNulL";
+ try {
+ TurnSignal temp = TurnSignal.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum () {
+ String example = null;
+ try {
+ TurnSignal temp = TurnSignal.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of TurnSignal.
+ */
+ public void testListEnum() {
+ List<TurnSignal> enumValueList = Arrays.asList(TurnSignal.values());
+
+ List<TurnSignal> enumTestList = new ArrayList<>();
+ enumTestList.add(TurnSignal.OFF);
+ enumTestList.add(TurnSignal.LEFT);
+ enumTestList.add(TurnSignal.RIGHT);
+ enumTestList.add(TurnSignal.BOTH);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VehicleDataTypeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VehicleDataTypeTests.java
index 7490940fa..9f9ff3449 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VehicleDataTypeTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VehicleDataTypeTests.java
@@ -10,7 +10,7 @@ import com.smartdevicelink.proxy.rpc.enums.VehicleDataType;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.enums.VehicleData}
+ * {@link com.smartdevicelink.proxy.rpc.enums.VehicleDataType}
*/
public class VehicleDataTypeTests extends TestCase {
@@ -56,6 +56,8 @@ public class VehicleDataTypeTests extends TestCase {
VehicleDataType enumVehicleDataBattVoltage = VehicleDataType.valueForString(example);
example = "VEHICLEDATA_ENGINETORQUE";
VehicleDataType enumVehicleDataEngineTorque = VehicleDataType.valueForString(example);
+ example = "VEHICLEDATA_ENGINEOILLIFE";
+ VehicleDataType enumVehicleDataEngineOilLife = VehicleDataType.valueForString(example);
example = "VEHICLEDATA_ACCPEDAL";
VehicleDataType enumVehicleDataAccPedal = VehicleDataType.valueForString(example);
example = "VEHICLEDATA_STEERINGWHEEL";
@@ -70,6 +72,12 @@ public class VehicleDataTypeTests extends TestCase {
VehicleDataType enumVehicleDataClusterModeStatus = VehicleDataType.valueForString(example);
example = "VEHICLEDATA_MYKEY";
VehicleDataType enumVehicleDataMyKey = VehicleDataType.valueForString(example);
+ example = "VEHICLEDATA_FUELRANGE";
+ VehicleDataType enumVehicleDataFuelRange = VehicleDataType.valueForString(example);
+ example = "VEHICLEDATA_TURNSIGNAL";
+ VehicleDataType enumVehicleDataTurnSignal = VehicleDataType.valueForString(example);
+ example = "VEHICLEDATA_ELECTRONICPARKBRAKESTATUS";
+ VehicleDataType enumVehicleDataElectronicParkBrakeStatus = VehicleDataType.valueForString(example);
assertNotNull("VEHICLEDATA_GPS returned null", enumVehicleDataGps);
assertNotNull("VEHICLEDATA_SPEED returned null", enumVehicleDataSpeed);
@@ -90,6 +98,7 @@ public class VehicleDataTypeTests extends TestCase {
assertNotNull("VEHICLEDATA_HEADLAMPSTATUS returned null", enumVehicleDataHeadlampStatus);
assertNotNull("VEHICLEDATA_BATTVOLTAGE returned null", enumVehicleDataBattVoltage);
assertNotNull("VEHICLEDATA_ENGINETORQUE returned null", enumVehicleDataEngineTorque);
+ assertNotNull("VEHICLEDATA_ENGINEOILLIFE returned null", enumVehicleDataEngineOilLife);
assertNotNull("VEHICLEDATA_ACCPEDAL returned null", enumVehicleDataAccPedal);
assertNotNull("VEHICLEDATA_STEERINGWHEEL returned null", enumVehicleDataSteeringWheel);
assertNotNull("VEHICLEDATA_ECALLINFO returned null", enumVehicleDataECallInfo);
@@ -97,6 +106,9 @@ public class VehicleDataTypeTests extends TestCase {
assertNotNull("VEHICLEDATA_EMERGENCYEVENT returned null", enumVehicleDataEmergencyEvent);
assertNotNull("VEHICLEDATA_CLUSTERMODESTATUS returned null", enumVehicleDataClusterModeStatus);
assertNotNull("VEHICLEDATA_MYKEY returned null", enumVehicleDataMyKey);
+ assertNotNull("VEHICLEDATA_FUELRANGE returned null", enumVehicleDataFuelRange);
+ assertNotNull("VEHICLEDATA_TURNSIGNAL returned null", enumVehicleDataTurnSignal);
+ assertNotNull("VEHICLEDATA_ELECTRONICPARKBRAKESTATUS returned null", enumVehicleDataElectronicParkBrakeStatus);
}
/**
@@ -153,13 +165,17 @@ public class VehicleDataTypeTests extends TestCase {
enumTestList.add(VehicleDataType.VEHICLEDATA_HEADLAMPSTATUS);
enumTestList.add(VehicleDataType.VEHICLEDATA_BATTVOLTAGE);
enumTestList.add(VehicleDataType.VEHICLEDATA_ENGINETORQUE);
+ enumTestList.add(VehicleDataType.VEHICLEDATA_ENGINEOILLIFE);
enumTestList.add(VehicleDataType.VEHICLEDATA_ACCPEDAL);
enumTestList.add(VehicleDataType.VEHICLEDATA_STEERINGWHEEL);
enumTestList.add(VehicleDataType.VEHICLEDATA_ECALLINFO);
enumTestList.add(VehicleDataType.VEHICLEDATA_AIRBAGSTATUS);
enumTestList.add(VehicleDataType.VEHICLEDATA_EMERGENCYEVENT);
enumTestList.add(VehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS);
- enumTestList.add(VehicleDataType.VEHICLEDATA_MYKEY);
+ enumTestList.add(VehicleDataType.VEHICLEDATA_MYKEY);
+ enumTestList.add(VehicleDataType.VEHICLEDATA_FUELRANGE);
+ enumTestList.add(VehicleDataType.VEHICLEDATA_TURNSIGNAL);
+ enumTestList.add(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS);
assertTrue("Enum value list does not match enum class list",
enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VideoStreamingStateTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VideoStreamingStateTests.java
new file mode 100644
index 000000000..2074efe47
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VideoStreamingStateTests.java
@@ -0,0 +1,71 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import com.smartdevicelink.proxy.rpc.enums.VideoStreamingState;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.proxy.rpc.enums.VideoStreamingState}
+ */
+public class VideoStreamingStateTests extends TestCase {
+
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums () {
+ String example = "STREAMABLE";
+ VideoStreamingState enumStreamable = VideoStreamingState.valueForString(example);
+ example = "NOT_STREAMABLE";
+ VideoStreamingState enumNotStreamable = VideoStreamingState.valueForString(example);
+
+ assertNotNull("STREAMABLE returned null", enumStreamable);
+ assertNotNull("NOT_STREAMABLE returned null", enumNotStreamable);
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum () {
+ String example = "StrEAmaBlE";
+ try {
+ VideoStreamingState temp = VideoStreamingState.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum () {
+ String example = null;
+ try {
+ VideoStreamingState temp = VideoStreamingState.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of VideoStreamingState.
+ */
+ public void testListEnum() {
+ List<VideoStreamingState> enumValueList = Arrays.asList(VideoStreamingState.values());
+
+ List<VideoStreamingState> enumTestList = new ArrayList<VideoStreamingState>();
+ enumTestList.add(VideoStreamingState.STREAMABLE);
+ enumTestList.add(VideoStreamingState.NOT_STREAMABLE);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnHMIStatusTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnHMIStatusTests.java
index 329018aa2..e506268ea 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnHMIStatusTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnHMIStatusTests.java
@@ -9,12 +9,13 @@ import com.smartdevicelink.proxy.rpc.OnHMIStatus;
import com.smartdevicelink.proxy.rpc.enums.AudioStreamingState;
import com.smartdevicelink.proxy.rpc.enums.HMILevel;
import com.smartdevicelink.proxy.rpc.enums.SystemContext;
+import com.smartdevicelink.proxy.rpc.enums.VideoStreamingState;
import com.smartdevicelink.test.BaseRpcTests;
import com.smartdevicelink.test.Test;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.OnHMIStatus}
+ * {@link com.smartdevicelink.proxy.rpc.OnHMIStatus}
*/
public class OnHMIStatusTests extends BaseRpcTests{
@@ -23,6 +24,7 @@ public class OnHMIStatusTests extends BaseRpcTests{
OnHMIStatus msg = new OnHMIStatus();
msg.setAudioStreamingState(Test.GENERAL_AUDIOSTREAMINGSTATE);
+ msg.setVideoStreamingState(Test.GENERAL_VIDEOSTREAMINGSTATE);
msg.setFirstRun(Test.GENERAL_BOOLEAN);
msg.setHmiLevel(Test.GENERAL_HMILEVEL);
msg.setSystemContext(Test.GENERAL_SYSTEMCONTEXT);
@@ -46,6 +48,7 @@ public class OnHMIStatusTests extends BaseRpcTests{
try{
result.put(OnHMIStatus.KEY_AUDIO_STREAMING_STATE, Test.GENERAL_AUDIOSTREAMINGSTATE);
+ result.put(OnHMIStatus.KEY_VIDEO_STREAMING_STATE, Test.GENERAL_VIDEOSTREAMINGSTATE);
result.put(OnHMIStatus.KEY_HMI_LEVEL, Test.GENERAL_HMILEVEL);
result.put(OnHMIStatus.KEY_SYSTEM_CONTEXT, Test.GENERAL_SYSTEMCONTEXT);
}catch(JSONException e){
@@ -60,12 +63,14 @@ public class OnHMIStatusTests extends BaseRpcTests{
*/
public void testRpcValues () {
// Test Values
- AudioStreamingState state = ( (OnHMIStatus) msg ).getAudioStreamingState();
+ AudioStreamingState audioStreamingState = ( (OnHMIStatus) msg ).getAudioStreamingState();
+ VideoStreamingState videoStreamingState = ( (OnHMIStatus) msg ).getVideoStreamingState();
HMILevel hmiLevel = ( (OnHMIStatus) msg ).getHmiLevel();
SystemContext context = ( (OnHMIStatus) msg ).getSystemContext();
// Valid Tests
- assertEquals(Test.MATCH, Test.GENERAL_AUDIOSTREAMINGSTATE, state);
+ assertEquals(Test.MATCH, Test.GENERAL_AUDIOSTREAMINGSTATE, audioStreamingState);
+ assertEquals(Test.MATCH, Test.GENERAL_VIDEOSTREAMINGSTATE, videoStreamingState);
assertEquals(Test.MATCH, Test.GENERAL_HMILEVEL, hmiLevel);
assertEquals(Test.MATCH, Test.GENERAL_SYSTEMCONTEXT, context);
@@ -75,6 +80,7 @@ public class OnHMIStatusTests extends BaseRpcTests{
testNullBase(msg);
assertNull(Test.NULL, msg.getAudioStreamingState());
+ assertEquals(Test.MATCH, VideoStreamingState.STREAMABLE, msg.getVideoStreamingState());
assertNull(Test.NULL, msg.getHmiLevel());
assertNull(Test.NULL, msg.getSystemContext());
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnRCStatusTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnRCStatusTests.java
new file mode 100644
index 000000000..5fbd48b91
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnRCStatusTests.java
@@ -0,0 +1,93 @@
+package com.smartdevicelink.test.rpc.notifications;
+
+import com.smartdevicelink.marshal.JsonRPCMarshaller;
+import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.RPCMessage;
+import com.smartdevicelink.proxy.rpc.ModuleData;
+import com.smartdevicelink.proxy.rpc.OnRCStatus;
+import com.smartdevicelink.test.BaseRpcTests;
+import com.smartdevicelink.test.Test;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class OnRCStatusTests extends BaseRpcTests {
+ @Override
+ protected RPCMessage createMessage() {
+ OnRCStatus msg = new OnRCStatus();
+
+ List<ModuleData> listAllocatedModules = new ArrayList<>();
+ listAllocatedModules.add(Test.GENERAL_MODULEDATA);
+
+ msg.setAllocatedModules(listAllocatedModules);
+
+ List<ModuleData> listFreeModules = new ArrayList<>();
+ listFreeModules.add(Test.GENERAL_MODULEDATA);
+ msg.setFreeModules(listFreeModules);
+
+ msg.setAllowed(Test.GENERAL_BOOLEAN);
+ return msg;
+ }
+
+ @Override
+ protected String getMessageType() {
+ return RPCMessage.KEY_NOTIFICATION;
+ }
+
+ @Override
+ protected String getCommandType() {
+ return FunctionID.ON_RC_STATUS.toString();
+ }
+
+ @Override
+ protected JSONObject getExpectedParameters(int sdlVersion) {
+ JSONObject result = new JSONObject();
+
+ JSONArray jsonArrayAllocatedModules = new JSONArray();
+ JSONArray jsonArrayFreeModules = new JSONArray();
+ try {
+ jsonArrayAllocatedModules.put(JsonRPCMarshaller.serializeHashtable(Test.GENERAL_MODULEDATA.getStore()));
+ jsonArrayFreeModules.put(JsonRPCMarshaller.serializeHashtable(Test.GENERAL_MODULEDATA.getStore()));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ try {
+ result.put(OnRCStatus.KEY_ALLOCATED_MODULES, jsonArrayAllocatedModules);
+ result.put(OnRCStatus.KEY_FREE_MODULES, jsonArrayFreeModules);
+ result.put(OnRCStatus.KEY_ALLOWED, Test.GENERAL_BOOLEAN);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ return result;
+ }
+
+ /**
+ * Tests the expected values of the RPC message.
+ */
+ public void testRpcValues() {
+ // Test Values
+ List<ModuleData> listAllocatedModules = ((OnRCStatus) msg).getAllocatedModules();
+ List<ModuleData> listFreeModules = ((OnRCStatus) msg).getFreeModules();
+ Boolean allowed = ((OnRCStatus) msg).getAllowed();
+
+ // Valid Tests
+ assertEquals(Test.MATCH, Test.GENERAL_MODULEDATA, listAllocatedModules.get(0));
+ assertEquals(Test.MATCH, Test.GENERAL_MODULEDATA, listFreeModules.get(0));
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, allowed);
+
+ // Invalid/Null Tests
+ OnRCStatus msg = new OnRCStatus();
+ assertNotNull(Test.NOT_NULL, msg);
+ testNullBase(msg);
+
+ assertNull(Test.NULL, msg.getAllocatedModules());
+ assertNull(Test.NULL, msg.getFreeModules());
+ assertNull(Test.NULL, msg.getAllowed());
+ }
+}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnSystemRequestTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnSystemRequestTests.java
index fbe073259..a4bb53e71 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnSystemRequestTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnSystemRequestTests.java
@@ -15,7 +15,7 @@ import com.smartdevicelink.test.Validator;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.OnSystemRequest}
+ * {@link com.smartdevicelink.proxy.rpc.OnSystemRequest}
*/
public class OnSystemRequestTests extends BaseRpcTests{
@@ -27,6 +27,7 @@ public class OnSystemRequestTests extends BaseRpcTests{
msg.setLength(Test.GENERAL_LONG);
msg.setOffset(Test.GENERAL_LONG);
msg.setRequestType(Test.GENERAL_REQUESTTYPE);
+ msg.setRequestSubType(Test.GENERAL_STRING);
msg.setTimeout(Test.GENERAL_INT);
msg.setUrl(Test.GENERAL_STRING);
@@ -54,6 +55,7 @@ public class OnSystemRequestTests extends BaseRpcTests{
result.put(OnSystemRequest.KEY_OFFSET, Test.GENERAL_LONG);
result.put(OnSystemRequest.KEY_URL, Test.GENERAL_STRING);
result.put(OnSystemRequest.KEY_REQUEST_TYPE, Test.GENERAL_REQUESTTYPE);
+ result.put(OnSystemRequest.KEY_REQUEST_SUB_TYPE, Test.GENERAL_STRING);
} catch(JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -72,6 +74,7 @@ public class OnSystemRequestTests extends BaseRpcTests{
Long offset = ( (OnSystemRequest) msg ).getOffset();
String url = ( (OnSystemRequest) msg ).getUrl();
RequestType requestType = ( (OnSystemRequest) msg ).getRequestType();
+ String requestSubType = ( (OnSystemRequest) msg ).getRequestSubType();
// Valid Tests
@@ -81,6 +84,7 @@ public class OnSystemRequestTests extends BaseRpcTests{
assertEquals(Test.MATCH, Test.GENERAL_LONG, offset);
assertEquals(Test.MATCH, Test.GENERAL_STRING, url);
assertEquals(Test.MATCH, Test.GENERAL_REQUESTTYPE, requestType);
+ assertEquals(Test.MATCH, Test.GENERAL_STRING, requestSubType);
// Test Body
OnSystemRequest osr = (OnSystemRequest) msg;
@@ -124,5 +128,6 @@ public class OnSystemRequestTests extends BaseRpcTests{
assertNull(Test.NULL, msg.getTimeout());
assertNull(Test.NULL, msg.getUrl());
assertNull(Test.NULL, msg.getRequestType());
+ assertNull(Test.NULL, msg.getRequestSubType());
}
} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnVehicleDataTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnVehicleDataTests.java
index 5d328813c..c530c1278 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnVehicleDataTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnVehicleDataTests.java
@@ -1,7 +1,10 @@
package com.smartdevicelink.test.rpc.notifications;
+import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
+import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -15,6 +18,7 @@ import com.smartdevicelink.proxy.rpc.ClusterModeStatus;
import com.smartdevicelink.proxy.rpc.DeviceStatus;
import com.smartdevicelink.proxy.rpc.ECallInfo;
import com.smartdevicelink.proxy.rpc.EmergencyEvent;
+import com.smartdevicelink.proxy.rpc.FuelRange;
import com.smartdevicelink.proxy.rpc.GPSData;
import com.smartdevicelink.proxy.rpc.HeadLampStatus;
import com.smartdevicelink.proxy.rpc.MyKey;
@@ -22,7 +26,9 @@ import com.smartdevicelink.proxy.rpc.OnVehicleData;
import com.smartdevicelink.proxy.rpc.SingleTireStatus;
import com.smartdevicelink.proxy.rpc.TireStatus;
import com.smartdevicelink.proxy.rpc.enums.ComponentVolumeStatus;
+import com.smartdevicelink.proxy.rpc.enums.ElectronicParkBrakeStatus;
import com.smartdevicelink.proxy.rpc.enums.PRNDL;
+import com.smartdevicelink.proxy.rpc.enums.TurnSignal;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
import com.smartdevicelink.proxy.rpc.enums.WiperStatus;
import com.smartdevicelink.test.BaseRpcTests;
@@ -33,7 +39,7 @@ import com.smartdevicelink.test.VehicleDataHelper;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.OnVehicleData}
+ * {@link com.smartdevicelink.proxy.rpc.OnVehicleData}
*/
public class OnVehicleDataTests extends BaseRpcTests{
@@ -65,6 +71,7 @@ public class OnVehicleDataTests extends BaseRpcTests{
result.put(OnVehicleData.KEY_PRNDL, VehicleDataHelper.PRNDL_FINAL);
result.put(OnVehicleData.KEY_TIRE_PRESSURE, VehicleDataHelper.TIRE_PRESSURE.serializeJSON());
result.put(OnVehicleData.KEY_ENGINE_TORQUE, VehicleDataHelper.ENGINE_TORQUE);
+ result.put(OnVehicleData.KEY_ENGINE_OIL_LIFE, VehicleDataHelper.ENGINE_OIL_LIFE);
result.put(OnVehicleData.KEY_ODOMETER, VehicleDataHelper.ODOMETER);
result.put(OnVehicleData.KEY_GPS, VehicleDataHelper.GPS.serializeJSON());
result.put(OnVehicleData.KEY_FUEL_LEVEL_STATE, VehicleDataHelper.FUEL_LEVEL_STATE);
@@ -82,6 +89,9 @@ public class OnVehicleDataTests extends BaseRpcTests{
result.put(OnVehicleData.KEY_EMERGENCY_EVENT, VehicleDataHelper.EMERGENCY_EVENT.serializeJSON());
result.put(OnVehicleData.KEY_CLUSTER_MODE_STATUS, VehicleDataHelper.CLUSTER_MODE_STATUS.serializeJSON());
result.put(OnVehicleData.KEY_MY_KEY, VehicleDataHelper.MY_KEY.serializeJSON());
+ result.put(OnVehicleData.KEY_FUEL_RANGE, VehicleDataHelper.JSON_FUEL_RANGE);
+ result.put(OnVehicleData.KEY_TURN_SIGNAL, VehicleDataHelper.TURN_SIGNAL);
+ result.put(OnVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS);
} catch(JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -102,6 +112,7 @@ public class OnVehicleDataTests extends BaseRpcTests{
PRNDL prndl = ( (OnVehicleData) msg).getPrndl();
TireStatus pressure = ( (OnVehicleData) msg).getTirePressure();
Double torque = ( (OnVehicleData) msg).getEngineTorque();
+ Float engineOilLife = ( (OnVehicleData) msg).getEngineOilLife();
int odometer = ( (OnVehicleData) msg).getOdometer();
GPSData gps = ( (OnVehicleData) msg).getGps();
ComponentVolumeStatus state = ( (OnVehicleData) msg).getFuelLevelState();
@@ -119,6 +130,9 @@ public class OnVehicleDataTests extends BaseRpcTests{
EmergencyEvent event = ( (OnVehicleData) msg).getEmergencyEvent();
ClusterModeStatus cluster = ( (OnVehicleData) msg).getClusterModeStatus();
MyKey key = ( (OnVehicleData) msg).getMyKey();
+ List<FuelRange> fuelRangeList = ( (OnVehicleData) msg).getFuelRange();
+ TurnSignal turnSignal = ( (OnVehicleData) msg).getTurnSignal();
+ ElectronicParkBrakeStatus electronicParkBrakeStatus = ( (OnVehicleData) msg).getElectronicParkBrakeStatus();
// Valid Tests
assertEquals(Test.MATCH, VehicleDataHelper.SPEED, speed);
@@ -129,6 +143,7 @@ public class OnVehicleDataTests extends BaseRpcTests{
assertEquals(Test.MATCH, VehicleDataHelper.PRNDL_FINAL, prndl);
assertTrue(Test.MATCH, Validator.validateTireStatus(VehicleDataHelper.TIRE_PRESSURE, pressure));
assertEquals(Test.MATCH, VehicleDataHelper.ENGINE_TORQUE, torque);
+ assertEquals(Test.MATCH, VehicleDataHelper.ENGINE_OIL_LIFE, engineOilLife);
assertEquals(Test.MATCH, VehicleDataHelper.ODOMETER, odometer);
assertTrue(Test.MATCH, Validator.validateGpsData(VehicleDataHelper.GPS, gps));
assertEquals(Test.MATCH, VehicleDataHelper.FUEL_LEVEL_STATE, state);
@@ -146,6 +161,9 @@ public class OnVehicleDataTests extends BaseRpcTests{
assertTrue(Test.TRUE, Validator.validateEmergencyEvent(VehicleDataHelper.EMERGENCY_EVENT, event));
assertTrue(Test.TRUE, Validator.validateClusterModeStatus(VehicleDataHelper.CLUSTER_MODE_STATUS, cluster));
assertTrue(Test.TRUE, Validator.validateMyKey(VehicleDataHelper.MY_KEY, key));
+ assertTrue(Test.TRUE, Validator.validateFuelRange(VehicleDataHelper.FUEL_RANGE_LIST, fuelRangeList));
+ assertEquals(Test.MATCH, VehicleDataHelper.TURN_SIGNAL, turnSignal);
+ assertEquals(Test.MATCH, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS, electronicParkBrakeStatus);
// Invalid/Null Tests
OnVehicleData msg = new OnVehicleData();
@@ -160,6 +178,7 @@ public class OnVehicleDataTests extends BaseRpcTests{
assertNull(Test.NULL, msg.getPrndl());
assertNull(Test.NULL, msg.getTirePressure());
assertNull(Test.NULL, msg.getEngineTorque());
+ assertNull(Test.NULL, msg.getEngineOilLife());
assertNull(Test.NULL, msg.getOdometer());
assertNull(Test.NULL, msg.getGps());
assertNull(Test.NULL, msg.getFuelLevelState());
@@ -176,8 +195,11 @@ public class OnVehicleDataTests extends BaseRpcTests{
assertNull(Test.NULL, msg.getAirbagStatus());
assertNull(Test.NULL, msg.getEmergencyEvent());
assertNull(Test.NULL, msg.getClusterModeStatus());
- assertNull(Test.NULL, msg.getMyKey());
- }
+ assertNull(Test.NULL, msg.getMyKey());
+ assertNull(Test.NULL, msg.getFuelRange());
+ assertNull(Test.NULL, msg.getTurnSignal());
+ assertNull(Test.NULL, msg.getElectronicParkBrakeStatus());
+ }
public void testJson() {
JSONObject reference = new JSONObject();
@@ -194,6 +216,8 @@ public class OnVehicleDataTests extends BaseRpcTests{
JSONObject emergencyEventObj = new JSONObject();
JSONObject clusterModeStatusObj = new JSONObject();
JSONObject myKeyObj = new JSONObject();
+ JSONObject fuelRangeObj = new JSONObject();
+ JSONArray fuelRangeArrayObj = new JSONArray();
try {
//Set up the JSONObject to represent OnVehicleData:
@@ -313,7 +337,12 @@ public class OnVehicleDataTests extends BaseRpcTests{
//MY_KEY
myKeyObj.put(MyKey.KEY_E_911_OVERRIDE, VehicleDataHelper.MY_KEY_E_911_OVERRIDE);
-
+
+ // FUEL_RANGE
+ fuelRangeObj.put(FuelRange.KEY_TYPE, VehicleDataHelper.FUEL_RANGE_TYPE);
+ fuelRangeObj.put(FuelRange.KEY_RANGE, VehicleDataHelper.FUEL_RANGE_RANGE);
+ fuelRangeArrayObj.put(fuelRangeObj);
+
reference.put(OnVehicleData.KEY_SPEED, VehicleDataHelper.SPEED);
reference.put(OnVehicleData.KEY_RPM, VehicleDataHelper.RPM);
reference.put(OnVehicleData.KEY_EXTERNAL_TEMPERATURE, VehicleDataHelper.EXTERNAL_TEMPERATURE);
@@ -322,6 +351,7 @@ public class OnVehicleDataTests extends BaseRpcTests{
reference.put(OnVehicleData.KEY_PRNDL, VehicleDataHelper.PRNDL_FINAL);
reference.put(OnVehicleData.KEY_TIRE_PRESSURE, tireStatusObj);
reference.put(OnVehicleData.KEY_ENGINE_TORQUE, VehicleDataHelper.ENGINE_TORQUE);
+ reference.put(OnVehicleData.KEY_ENGINE_OIL_LIFE, VehicleDataHelper.ENGINE_OIL_LIFE);
reference.put(OnVehicleData.KEY_ODOMETER, VehicleDataHelper.ODOMETER);
reference.put(OnVehicleData.KEY_GPS, GPSDataObj);
reference.put(OnVehicleData.KEY_FUEL_LEVEL_STATE, VehicleDataHelper.FUEL_LEVEL_STATE);
@@ -339,6 +369,9 @@ public class OnVehicleDataTests extends BaseRpcTests{
reference.put(OnVehicleData.KEY_EMERGENCY_EVENT, emergencyEventObj);
reference.put(OnVehicleData.KEY_CLUSTER_MODE_STATUS, clusterModeStatusObj);
reference.put(OnVehicleData.KEY_MY_KEY, myKeyObj);
+ reference.put(OnVehicleData.KEY_FUEL_RANGE, fuelRangeArrayObj);
+ reference.put(OnVehicleData.KEY_TURN_SIGNAL, VehicleDataHelper.TURN_SIGNAL);
+ reference.put(OnVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS);
JSONObject underTest = msg.serializeJSON();
//go inside underTest and only return the JSONObject inside the parameters key inside the notification key
@@ -433,6 +466,28 @@ public class OnVehicleDataTests extends BaseRpcTests{
new MyKey(JsonRPCMarshaller.deserializeJSONObject(myKeyObjReference)),
new MyKey(JsonRPCMarshaller.deserializeJSONObject(myKeyObjTest))));
}
+ else if (key.equals(OnVehicleData.KEY_ENGINE_OIL_LIFE)) {
+ assertEquals(JsonUtils.readDoubleFromJsonObject(reference, key), JsonUtils.readDoubleFromJsonObject(underTest, key));
+ }
+ else if (key.equals(OnVehicleData.KEY_FUEL_RANGE)) {
+ JSONArray fuelRangeArrayObjReference = JsonUtils.readJsonArrayFromJsonObject(reference, key);
+ List<FuelRange> fuelRangeRefereceList = new ArrayList<FuelRange>();
+ for (int index = 0; index < fuelRangeArrayObjReference.length(); index++) {
+ FuelRange fuelRange = new FuelRange(JsonRPCMarshaller.deserializeJSONObject( (JSONObject)fuelRangeArrayObjReference.get(index) ));
+ fuelRangeRefereceList.add(fuelRange);
+ }
+
+ JSONArray fuelRangeArrayObjTest = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
+ List<FuelRange> fuelRangeUnderTestList = new ArrayList<FuelRange>();
+ for (int index = 0; index < fuelRangeArrayObjTest.length(); index++) {
+ FuelRange fuelRange = new FuelRange(JsonRPCMarshaller.deserializeJSONObject( (JSONObject)fuelRangeArrayObjTest.get(index) ));
+ fuelRangeUnderTestList.add(fuelRange);
+ }
+
+ assertTrue(Test.TRUE, Validator.validateFuelRange(
+ fuelRangeRefereceList,
+ fuelRangeUnderTestList));
+ }
else {
assertEquals(Test.TRUE, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key));
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/AddSubmenuTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/AddSubmenuTests.java
index e44340216..6e73121f1 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/AddSubmenuTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/AddSubmenuTests.java
@@ -9,14 +9,16 @@ import com.smartdevicelink.marshal.JsonRPCMarshaller;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCMessage;
import com.smartdevicelink.proxy.rpc.AddSubMenu;
+import com.smartdevicelink.proxy.rpc.Image;
import com.smartdevicelink.test.BaseRpcTests;
import com.smartdevicelink.test.JsonUtils;
import com.smartdevicelink.test.Test;
+import com.smartdevicelink.test.Validator;
import com.smartdevicelink.test.json.rpc.JsonFileReader;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.AddSubmenu}
+ * {@link com.smartdevicelink.proxy.rpc.AddSubMenu}
*/
public class AddSubmenuTests extends BaseRpcTests{
@@ -27,6 +29,7 @@ public class AddSubmenuTests extends BaseRpcTests{
msg.setMenuID(Test.GENERAL_INT);
msg.setMenuName(Test.GENERAL_STRING);
msg.setPosition(Test.GENERAL_INT);
+ msg.setMenuIcon(Test.GENERAL_IMAGE);
return msg;
}
@@ -49,6 +52,7 @@ public class AddSubmenuTests extends BaseRpcTests{
result.put(AddSubMenu.KEY_MENU_ID, Test.GENERAL_INT);
result.put(AddSubMenu.KEY_MENU_NAME, Test.GENERAL_STRING);
result.put(AddSubMenu.KEY_POSITION, Test.GENERAL_INT);
+ result.put(AddSubMenu.KEY_MENU_ICON, Test.JSON_IMAGE);
}catch(JSONException e){
fail(Test.JSON_FAIL);
}
@@ -64,13 +68,16 @@ public class AddSubmenuTests extends BaseRpcTests{
int testMenuId = ( (AddSubMenu) msg ).getMenuID();
int testPosition = ( (AddSubMenu) msg ).getPosition();
String testMenuName = ( (AddSubMenu) msg ).getMenuName();
+ Image testMenuIcon = ( (AddSubMenu) msg ).getMenuIcon();
// Valid Tests
assertEquals("Menu ID didn't match input menu ID.", Test.GENERAL_INT, testMenuId);
assertEquals("Menu name didn't match input menu name.", Test.GENERAL_STRING, testMenuName);
assertEquals("Position didn't match input position.", Test.GENERAL_INT, testPosition);
-
- // Invalid/Null Tests
+ assertTrue("Menu icon didn't match input icon.", Validator.validateImage(Test.GENERAL_IMAGE, testMenuIcon));
+
+
+ // Invalid/Null Tests
AddSubMenu msg = new AddSubMenu();
assertNotNull("Null object creation failed.", msg);
testNullBase(msg);
@@ -78,6 +85,7 @@ public class AddSubmenuTests extends BaseRpcTests{
assertNull(Test.NULL, msg.getMenuID());
assertNull(Test.NULL, msg.getMenuName());
assertNull(Test.NULL, msg.getPosition());
+ assertNull(Test.NULL, msg.getMenuIcon());
}
/**
@@ -103,6 +111,10 @@ public class AddSubmenuTests extends BaseRpcTests{
assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(parameters, AddSubMenu.KEY_MENU_ID), cmd.getMenuID());
assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(parameters, AddSubMenu.KEY_POSITION), cmd.getPosition());
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, AddSubMenu.KEY_MENU_NAME), cmd.getMenuName());
+
+ JSONObject menuIcon = JsonUtils.readJsonObjectFromJsonObject(parameters, AddSubMenu.KEY_MENU_ICON);
+ Image referenceMenuIcon = new Image(JsonRPCMarshaller.deserializeJSONObject(menuIcon));
+ assertTrue(Test.TRUE, Validator.validateImage(referenceMenuIcon, cmd.getMenuIcon()));
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetVehicleDataTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetVehicleDataTests.java
index 658c28257..54f299fdf 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetVehicleDataTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetVehicleDataTests.java
@@ -16,7 +16,7 @@ import com.smartdevicelink.test.json.rpc.JsonFileReader;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.GetVehicleData}
+ * {@link com.smartdevicelink.proxy.rpc.GetVehicleData}
*/
public class GetVehicleDataTests extends BaseRpcTests {
@@ -31,6 +31,7 @@ public class GetVehicleDataTests extends BaseRpcTests {
msg.setPrndl(Test.GENERAL_BOOLEAN);
msg.setTirePressure(Test.GENERAL_BOOLEAN);
msg.setEngineTorque(Test.GENERAL_BOOLEAN);
+ msg.setEngineOilLife(Test.GENERAL_BOOLEAN);
msg.setOdometer(Test.GENERAL_BOOLEAN);
msg.setGps(Test.GENERAL_BOOLEAN);
msg.setFuelLevelState(Test.GENERAL_BOOLEAN);
@@ -49,6 +50,9 @@ public class GetVehicleDataTests extends BaseRpcTests {
msg.setEmergencyEvent(Test.GENERAL_BOOLEAN);
msg.setClusterModeStatus(Test.GENERAL_BOOLEAN);
msg.setMyKey(Test.GENERAL_BOOLEAN);
+ msg.setFuelRange(Test.GENERAL_BOOLEAN);
+ msg.setTurnSignal(Test.GENERAL_BOOLEAN);
+ msg.setElectronicParkBrakeStatus(Test.GENERAL_BOOLEAN);
return msg;
}
@@ -75,6 +79,7 @@ public class GetVehicleDataTests extends BaseRpcTests {
result.put(GetVehicleData.KEY_PRNDL, Test.GENERAL_BOOLEAN);
result.put(GetVehicleData.KEY_TIRE_PRESSURE, Test.GENERAL_BOOLEAN);
result.put(GetVehicleData.KEY_ENGINE_TORQUE, Test.GENERAL_BOOLEAN);
+ result.put(GetVehicleData.KEY_ENGINE_OIL_LIFE, Test.GENERAL_BOOLEAN);
result.put(GetVehicleData.KEY_ODOMETER, Test.GENERAL_BOOLEAN);
result.put(GetVehicleData.KEY_GPS, Test.GENERAL_BOOLEAN);
result.put(GetVehicleData.KEY_FUEL_LEVEL_STATE, Test.GENERAL_BOOLEAN);
@@ -93,6 +98,9 @@ public class GetVehicleDataTests extends BaseRpcTests {
result.put(GetVehicleData.KEY_EMERGENCY_EVENT, Test.GENERAL_BOOLEAN);
result.put(GetVehicleData.KEY_CLUSTER_MODE_STATUS, Test.GENERAL_BOOLEAN);
result.put(GetVehicleData.KEY_MY_KEY, Test.GENERAL_BOOLEAN);
+ result.put(GetVehicleData.KEY_FUEL_RANGE, Test.GENERAL_BOOLEAN);
+ result.put(GetVehicleData.KEY_TURN_SIGNAL, Test.GENERAL_BOOLEAN);
+ result.put(GetVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS, Test.GENERAL_BOOLEAN);
}catch(JSONException e){
fail(Test.JSON_FAIL);
}
@@ -112,6 +120,7 @@ public class GetVehicleDataTests extends BaseRpcTests {
assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getPrndl());
assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getTirePressure());
assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getEngineTorque());
+ assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getEngineOilLife());
assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getOdometer());
assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getGps());
assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getFuelLevelState());
@@ -131,6 +140,9 @@ public class GetVehicleDataTests extends BaseRpcTests {
assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getEmergencyEvent());
assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getClusterModeStatus());
assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getMyKey());
+ assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getFuelRange());
+ assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getTurnSignal());
+ assertTrue(Test.TRUE, ( (GetVehicleData) msg ).getElectronicParkBrakeStatus());
// Invalid/Null Tests
GetVehicleData msg = new GetVehicleData();
@@ -157,11 +169,15 @@ public class GetVehicleDataTests extends BaseRpcTests {
assertNull(Test.NULL, msg.getDeviceStatus());
assertNull(Test.NULL, msg.getHeadLampStatus());
assertNull(Test.NULL, msg.getEngineTorque());
+ assertNull(Test.NULL, msg.getEngineOilLife());
assertNull(Test.NULL, msg.getSteeringWheelAngle());
assertNull(Test.NULL, msg.getECallInfo());
assertNull(Test.NULL, msg.getEmergencyEvent());
assertNull(Test.NULL, msg.getClusterModeStatus());
assertNull(Test.NULL, msg.getMyKey());
+ assertNull(Test.NULL, msg.getFuelRange());
+ assertNull(Test.NULL, msg.getTurnSignal());
+ assertNull(Test.NULL, msg.getElectronicParkBrakeStatus());
}
/**
@@ -191,6 +207,7 @@ public class GetVehicleDataTests extends BaseRpcTests {
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_PRNDL), cmd.getPrndl());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_TIRE_PRESSURE), cmd.getTirePressure());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_ENGINE_TORQUE), cmd.getEngineTorque());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_ENGINE_OIL_LIFE), cmd.getEngineOilLife());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_ODOMETER), cmd.getOdometer());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_GPS), cmd.getGps());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_FUEL_LEVEL_STATE), cmd.getFuelLevelState());
@@ -208,6 +225,9 @@ public class GetVehicleDataTests extends BaseRpcTests {
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_EMERGENCY_EVENT), cmd.getEmergencyEvent());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_CLUSTER_MODE_STATUS), cmd.getClusterModeStatus());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_MY_KEY), cmd.getMyKey());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_FUEL_RANGE), cmd.getFuelRange());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_TURN_SIGNAL), cmd.getTurnSignal());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS), cmd.getElectronicParkBrakeStatus());
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/PutFileTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/PutFileTests.java
index becca8eee..7b6ce75e5 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/PutFileTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/PutFileTests.java
@@ -1,6 +1,7 @@
package com.smartdevicelink.test.rpc.requests;
import java.util.Hashtable;
+import java.util.zip.CRC32;
import org.json.JSONException;
import org.json.JSONObject;
@@ -17,7 +18,7 @@ import com.smartdevicelink.test.json.rpc.JsonFileReader;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.PutFile}
+ * {@link com.smartdevicelink.proxy.rpc.PutFile}
*/
public class PutFileTests extends BaseRpcTests {
@@ -30,6 +31,8 @@ public class PutFileTests extends BaseRpcTests {
msg.setSystemFile(Test.GENERAL_BOOLEAN);
msg.setOffset(Test.GENERAL_LONG);
msg.setLength(Test.GENERAL_LONG);
+ msg.setCRC(Test.GENERAL_BYTE_ARRAY);
+ msg.setCRC(Test.GENERAL_LONG);
return msg;
}
@@ -53,7 +56,8 @@ public class PutFileTests extends BaseRpcTests {
result.put(PutFile.KEY_PERSISTENT_FILE, Test.GENERAL_BOOLEAN);
result.put(PutFile.KEY_SYSTEM_FILE, Test.GENERAL_BOOLEAN);
result.put(PutFile.KEY_OFFSET, Test.GENERAL_LONG);
- result.put(PutFile.KEY_LENGTH, Test.GENERAL_LONG);
+ result.put(PutFile.KEY_LENGTH, Test.GENERAL_LONG);
+ result.put(PutFile.KEY_CRC, Test.GENERAL_LONG);
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -71,14 +75,16 @@ public class PutFileTests extends BaseRpcTests {
boolean testSystemFile = ( (PutFile) msg ).getSystemFile();
Long testOffset = ( (PutFile) msg ).getOffset();
Long testLength = ( (PutFile) msg ).getLength();
-
+ Long testCRC = ( (PutFile) msg ).getCRC();
+
// Valid Tests
assertEquals(Test.MATCH, Test.GENERAL_FILETYPE, testFileType);
assertEquals(Test.MATCH, Test.GENERAL_BOOLEAN, testPersistentFile);
assertEquals(Test.MATCH, Test.GENERAL_BOOLEAN, testSystemFile);
assertEquals(Test.MATCH, Test.GENERAL_LONG, testOffset);
assertEquals(Test.MATCH, Test.GENERAL_LONG, testLength);
-
+ assertEquals(Test.MATCH, Test.GENERAL_LONG, testCRC);
+
// Invalid/Null Tests
PutFile msg = new PutFile();
assertNotNull("Null object creation failed.", msg);
@@ -89,8 +95,27 @@ public class PutFileTests extends BaseRpcTests {
assertNull(Test.NULL, msg.getSystemFile());
assertNull(Test.NULL, msg.getOffset());
assertNull(Test.NULL, msg.getLength());
+ assertNull(Test.NULL, msg.getCRC());
}
+ /**
+ * Tests the expected values of the CRC checksum.
+ */
+ public void testByteArrayCheckSum () {
+ // Test Values
+ PutFile msgCRC = new PutFile();
+ msgCRC.setCRC(Test.GENERAL_BYTE_ARRAY);
+ Long testCRCByteArray = msgCRC.getCRC();
+
+ CRC32 crc = new CRC32();
+ crc.update(Test.GENERAL_BYTE_ARRAY);
+ Long crcValue = crc.getValue();
+
+ assertEquals(Test.MATCH, crcValue, testCRCByteArray);
+ }
+
+
+
/**
* Tests a valid JSON construction of this RPC message.
*/
@@ -115,7 +140,8 @@ public class PutFileTests extends BaseRpcTests {
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, PutFile.KEY_FILE_TYPE), cmd.getFileType().toString());
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, PutFile.KEY_SDL_FILE_NAME), cmd.getSdlFileName());
assertEquals(Test.MATCH, (Long) JsonUtils.readIntegerFromJsonObject(parameters, PutFile.KEY_OFFSET).longValue(), cmd.getOffset());
- assertEquals(Test.MATCH, (Long) JsonUtils.readIntegerFromJsonObject(parameters, PutFile.KEY_LENGTH).longValue(), cmd.getLength());
+ assertEquals(Test.MATCH, (Long) JsonUtils.readIntegerFromJsonObject(parameters, PutFile.KEY_LENGTH).longValue(), cmd.getLength());
+ assertEquals(Test.MATCH, (Long) JsonUtils.readIntegerFromJsonObject(parameters, PutFile.KEY_CRC).longValue(), cmd.getCRC());
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/RegisterAppInterfaceTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/RegisterAppInterfaceTests.java
index 1310890b4..5c65947a6 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/RegisterAppInterfaceTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/RegisterAppInterfaceTests.java
@@ -15,6 +15,7 @@ import com.smartdevicelink.proxy.rpc.DeviceInfo;
import com.smartdevicelink.proxy.rpc.RegisterAppInterface;
import com.smartdevicelink.proxy.rpc.SdlMsgVersion;
import com.smartdevicelink.proxy.rpc.TTSChunk;
+import com.smartdevicelink.proxy.rpc.TemplateColorScheme;
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
import com.smartdevicelink.proxy.rpc.enums.Language;
import com.smartdevicelink.test.BaseRpcTests;
@@ -45,6 +46,8 @@ public class RegisterAppInterfaceTests extends BaseRpcTests {
msg.setAppHMIType(Test.GENERAL_APPHMITYPE_LIST);
msg.setIsMediaApplication(Test.GENERAL_BOOLEAN);
msg.setDeviceInfo(Test.GENERAL_DEVICEINFO);
+ msg.setDayColorScheme(Test.GENERAL_DAYCOLORSCHEME);
+ msg.setNightColorScheme(Test.GENERAL_NIGHTCOLORSCHEME);
return msg;
}
@@ -76,6 +79,8 @@ public class RegisterAppInterfaceTests extends BaseRpcTests {
result.put(RegisterAppInterface.KEY_APP_HMI_TYPE, JsonUtils.createJsonArrayOfJsonNames(Test.GENERAL_APPHMITYPE_LIST, SDL_VERSION_UNDER_TEST));
result.put(RegisterAppInterface.KEY_IS_MEDIA_APPLICATION, Test.GENERAL_BOOLEAN);
result.put(RegisterAppInterface.KEY_DEVICE_INFO, Test.JSON_DEVICEINFO);
+ result.put(RegisterAppInterface.KEY_DAY_COLOR_SCHEME, Test.JSON_DAYCOLORSCHEME);
+ result.put(RegisterAppInterface.KEY_NIGHT_COLOR_SCHEME, Test.JSON_NIGHTCOLORSCHEME);
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -86,7 +91,7 @@ public class RegisterAppInterfaceTests extends BaseRpcTests {
/**
* Tests the expected values of the RPC message.
*/
- public void testRpcValues () {
+ public void testRpcValues () {
// Test Values
SdlMsgVersion testVersion = ( (RegisterAppInterface) msg).getSdlMsgVersion();
String testName = ( (RegisterAppInterface) msg).getAppName();
@@ -96,11 +101,13 @@ public class RegisterAppInterfaceTests extends BaseRpcTests {
Language testHmiLang = ( (RegisterAppInterface) msg).getHmiDisplayLanguageDesired();
String testHashId = ( (RegisterAppInterface) msg).getHashID();
List<TTSChunk> testTts = ( (RegisterAppInterface) msg).getTtsName();
- List<String> testSynonyms = ( (RegisterAppInterface) msg).getVrSynonyms();
+ List<String> testSynonyms = ( (RegisterAppInterface) msg).getVrSynonyms();
List<AppHMIType> testApps = ( (RegisterAppInterface) msg).getAppHMIType();
Boolean testMedia = ( (RegisterAppInterface) msg).getIsMediaApplication();
DeviceInfo testDeviceInfo = ( (RegisterAppInterface) msg).getDeviceInfo();
-
+ TemplateColorScheme testDayColorScheme = ( (RegisterAppInterface) msg).getDayColorScheme();
+ TemplateColorScheme testNightColorScheme = ( (RegisterAppInterface) msg).getNightColorScheme();
+
// Valid Tests
assertTrue(Test.TRUE, Validator.validateSdlMsgVersion(Test.GENERAL_SDLMSGVERSION, testVersion));
assertEquals(Test.MATCH, Test.GENERAL_STRING, testName);
@@ -114,7 +121,9 @@ public class RegisterAppInterfaceTests extends BaseRpcTests {
assertEquals(Test.MATCH, Test.GENERAL_APPHMITYPE_LIST, testApps);
assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, testMedia);
assertTrue(Test.TRUE, Validator.validateDeviceInfo(Test.GENERAL_DEVICEINFO, testDeviceInfo));
-
+ assertTrue(Test.TRUE, Validator.validateTemplateColorScheme(Test.GENERAL_DAYCOLORSCHEME, testDayColorScheme));
+ assertTrue(Test.TRUE, Validator.validateTemplateColorScheme(Test.GENERAL_NIGHTCOLORSCHEME, testNightColorScheme));
+
// Invalid/Null Tests
RegisterAppInterface msg = new RegisterAppInterface();
assertNotNull(Test.NOT_NULL, msg);
@@ -132,6 +141,8 @@ public class RegisterAppInterfaceTests extends BaseRpcTests {
assertNull(Test.NULL, msg.getAppHMIType());
assertNull(Test.NULL, msg.getIsMediaApplication());
assertNull(Test.NULL, msg.getDeviceInfo());
+ assertNull(Test.NULL, msg.getDayColorScheme());
+ assertNull(Test.NULL, msg.getNightColorScheme());
}
/**
@@ -140,14 +151,14 @@ public class RegisterAppInterfaceTests extends BaseRpcTests {
public void testJsonConstructor () {
JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType());
assertNotNull(Test.NOT_NULL, commandJson);
-
+
try {
Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson);
RegisterAppInterface cmd = new RegisterAppInterface(hash);
-
+
JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType());
assertNotNull(Test.NOT_NULL, body);
-
+
// Test everything in the json body.
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName());
assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID());
@@ -161,7 +172,7 @@ public class RegisterAppInterfaceTests extends BaseRpcTests {
}
assertTrue(Test.TRUE, Validator.validateTtsChunks(ttsNameList, cmd.getTtsName()));
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, RegisterAppInterface.KEY_HMI_DISPLAY_LANGUAGE_DESIRED), cmd.getHmiDisplayLanguageDesired().toString());
-
+
JSONArray appHmiTypeArray = JsonUtils.readJsonArrayFromJsonObject(parameters, RegisterAppInterface.KEY_APP_HMI_TYPE);
for (int index = 0; index < appHmiTypeArray.length(); index++) {
AppHMIType appHmiTypeItem = AppHMIType.valueForString( appHmiTypeArray.get(index).toString() );
@@ -169,7 +180,7 @@ public class RegisterAppInterfaceTests extends BaseRpcTests {
}
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, RegisterAppInterface.KEY_APP_ID), cmd.getAppID());
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, RegisterAppInterface.KEY_LANGUAGE_DESIRED), cmd.getLanguageDesired().toString());
-
+
JSONObject deviceInfoObj = JsonUtils.readJsonObjectFromJsonObject(parameters, RegisterAppInterface.KEY_DEVICE_INFO);
DeviceInfo deviceInfo = new DeviceInfo(JsonRPCMarshaller.deserializeJSONObject(deviceInfoObj));
assertTrue(Test.TRUE, Validator.validateDeviceInfo(deviceInfo, cmd.getDeviceInfo()) );
@@ -181,13 +192,22 @@ public class RegisterAppInterfaceTests extends BaseRpcTests {
List<String> testSynonymsList = cmd.getVrSynonyms();
assertEquals(Test.MATCH, vrSynonymsList.size(), testSynonymsList.size());
assertTrue(Test.TRUE, Validator.validateStringList(vrSynonymsList, testSynonymsList));
-
+
JSONObject sdlMsgVersionObj = JsonUtils.readJsonObjectFromJsonObject(parameters, RegisterAppInterface.KEY_SDL_MSG_VERSION);
SdlMsgVersion sdlMsgVersion = new SdlMsgVersion(JsonRPCMarshaller.deserializeJSONObject(sdlMsgVersionObj));
assertTrue(Test.TRUE, Validator.validateSdlMsgVersion(sdlMsgVersion, cmd.getSdlMsgVersion()) );
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, RegisterAppInterface.KEY_HASH_ID), cmd.getHashID());
+
+ JSONObject dayColorSchemeObj = JsonUtils.readJsonObjectFromJsonObject(parameters, RegisterAppInterface.KEY_DAY_COLOR_SCHEME);
+ TemplateColorScheme dayColorScheme = new TemplateColorScheme(JsonRPCMarshaller.deserializeJSONObject(dayColorSchemeObj));
+ assertTrue(Test.TRUE, Validator.validateTemplateColorScheme(dayColorScheme, cmd.getDayColorScheme()) );
+
+ JSONObject nightColorSchemeObj = JsonUtils.readJsonObjectFromJsonObject(parameters, RegisterAppInterface.KEY_DAY_COLOR_SCHEME);
+ TemplateColorScheme nightColorScheme = new TemplateColorScheme(JsonRPCMarshaller.deserializeJSONObject(nightColorSchemeObj));
+ assertTrue(Test.TRUE, Validator.validateTemplateColorScheme(nightColorScheme, cmd.getDayColorScheme()) );
+
} catch (JSONException e) {
fail(Test.JSON_FAIL);
- }
- }
+ }
+ }
} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetDisplayLayoutTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetDisplayLayoutTests.java
index cb48e812f..d0ccc6fc7 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetDisplayLayoutTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetDisplayLayoutTests.java
@@ -9,9 +9,11 @@ import com.smartdevicelink.marshal.JsonRPCMarshaller;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCMessage;
import com.smartdevicelink.proxy.rpc.SetDisplayLayout;
+import com.smartdevicelink.proxy.rpc.TemplateColorScheme;
import com.smartdevicelink.test.BaseRpcTests;
import com.smartdevicelink.test.JsonUtils;
import com.smartdevicelink.test.Test;
+import com.smartdevicelink.test.Validator;
import com.smartdevicelink.test.json.rpc.JsonFileReader;
@@ -26,6 +28,8 @@ public class SetDisplayLayoutTests extends BaseRpcTests {
SetDisplayLayout msg = new SetDisplayLayout();
msg.setDisplayLayout(Test.GENERAL_STRING);
+ msg.setDayColorScheme(Test.GENERAL_DAYCOLORSCHEME);
+ msg.setNightColorScheme(Test.GENERAL_NIGHTCOLORSCHEME);
return msg;
}
@@ -45,7 +49,9 @@ public class SetDisplayLayoutTests extends BaseRpcTests {
JSONObject result = new JSONObject();
try {
- result.put(SetDisplayLayout.KEY_DISPLAY_LAYOUT, Test.GENERAL_STRING);
+ result.put(SetDisplayLayout.KEY_DISPLAY_LAYOUT, Test.GENERAL_STRING);
+ result.put(SetDisplayLayout.KEY_DAY_COLOR_SCHEME, Test.JSON_DAYCOLORSCHEME);
+ result.put(SetDisplayLayout.KEY_NIGHT_COLOR_SCHEME, Test.JSON_NIGHTCOLORSCHEME);
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -59,9 +65,13 @@ public class SetDisplayLayoutTests extends BaseRpcTests {
public void testRpcValues () {
// Test Values
String testDisplayLayout = ( (SetDisplayLayout) msg ).getDisplayLayout();
+ TemplateColorScheme testDayColorScheme = ( (SetDisplayLayout) msg).getDayColorScheme();
+ TemplateColorScheme testNightColorScheme = ( (SetDisplayLayout) msg).getNightColorScheme();
// Valid Tests
- assertEquals("Data didn't match input data.", Test.GENERAL_STRING, testDisplayLayout);
+ assertEquals(Test.MATCH, Test.GENERAL_STRING, testDisplayLayout);
+ assertTrue(Test.TRUE, Validator.validateTemplateColorScheme(Test.GENERAL_DAYCOLORSCHEME, testDayColorScheme));
+ assertTrue(Test.TRUE, Validator.validateTemplateColorScheme(Test.GENERAL_NIGHTCOLORSCHEME, testNightColorScheme));
// Invalid/Null Tests
SetDisplayLayout msg = new SetDisplayLayout();
@@ -69,6 +79,8 @@ public class SetDisplayLayoutTests extends BaseRpcTests {
testNullBase(msg);
assertNull(Test.NULL, msg.getDisplayLayout());
+ assertNull(Test.NULL, msg.getDayColorScheme());
+ assertNull(Test.NULL, msg.getNightColorScheme());
}
/**
@@ -91,6 +103,16 @@ public class SetDisplayLayoutTests extends BaseRpcTests {
JSONObject parameters = JsonUtils.readJsonObjectFromJsonObject(body, RPCMessage.KEY_PARAMETERS);
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, SetDisplayLayout.KEY_DISPLAY_LAYOUT), cmd.getDisplayLayout());
+
+
+ JSONObject dayColorSchemeObj = JsonUtils.readJsonObjectFromJsonObject(parameters, SetDisplayLayout.KEY_DAY_COLOR_SCHEME);
+ TemplateColorScheme dayColorScheme = new TemplateColorScheme(JsonRPCMarshaller.deserializeJSONObject(dayColorSchemeObj));
+ assertTrue(Test.TRUE, Validator.validateTemplateColorScheme(dayColorScheme, cmd.getDayColorScheme()) );
+
+ JSONObject nightColorSchemeObj = JsonUtils.readJsonObjectFromJsonObject(parameters, SetDisplayLayout.KEY_DAY_COLOR_SCHEME);
+ TemplateColorScheme nightColorScheme = new TemplateColorScheme(JsonRPCMarshaller.deserializeJSONObject(nightColorSchemeObj));
+ assertTrue(Test.TRUE, Validator.validateTemplateColorScheme(nightColorScheme, cmd.getDayColorScheme()) );
+
} catch (JSONException e) {
fail(Test.JSON_FAIL);
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeVehicleDataTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeVehicleDataTests.java
index 83cdf0dcf..ce93c52ea 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeVehicleDataTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeVehicleDataTests.java
@@ -16,7 +16,7 @@ import com.smartdevicelink.test.json.rpc.JsonFileReader;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.SubscribeVehicleData}
+ * {@link com.smartdevicelink.proxy.rpc.SubscribeVehicleData}
*/
public class SubscribeVehicleDataTests extends BaseRpcTests {
@@ -31,6 +31,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
msg.setPrndl(Test.GENERAL_BOOLEAN);
msg.setTirePressure(Test.GENERAL_BOOLEAN);
msg.setEngineTorque(Test.GENERAL_BOOLEAN);
+ msg.setEngineOilLife(Test.GENERAL_BOOLEAN);
msg.setOdometer(Test.GENERAL_BOOLEAN);
msg.setGps(Test.GENERAL_BOOLEAN);
msg.setFuelLevelState(Test.GENERAL_BOOLEAN);
@@ -48,6 +49,9 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
msg.setEmergencyEvent(Test.GENERAL_BOOLEAN);
msg.setClusterModeStatus(Test.GENERAL_BOOLEAN);
msg.setMyKey(Test.GENERAL_BOOLEAN);
+ msg.setFuelRange(Test.GENERAL_BOOLEAN);
+ msg.setTurnSignal(Test.GENERAL_BOOLEAN);
+ msg.setElectronicParkBrakeStatus(Test.GENERAL_BOOLEAN);
return msg;
}
@@ -74,6 +78,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
result.put(SubscribeVehicleData.KEY_PRNDL, Test.GENERAL_BOOLEAN);
result.put(SubscribeVehicleData.KEY_TIRE_PRESSURE, Test.GENERAL_BOOLEAN);
result.put(SubscribeVehicleData.KEY_ENGINE_TORQUE, Test.GENERAL_BOOLEAN);
+ result.put(SubscribeVehicleData.KEY_ENGINE_OIL_LIFE, Test.GENERAL_BOOLEAN);
result.put(SubscribeVehicleData.KEY_ODOMETER, Test.GENERAL_BOOLEAN);
result.put(SubscribeVehicleData.KEY_GPS, Test.GENERAL_BOOLEAN);
result.put(SubscribeVehicleData.KEY_FUEL_LEVEL_STATE, Test.GENERAL_BOOLEAN);
@@ -91,6 +96,9 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
result.put(SubscribeVehicleData.KEY_EMERGENCY_EVENT, Test.GENERAL_BOOLEAN);
result.put(SubscribeVehicleData.KEY_CLUSTER_MODE_STATUS, Test.GENERAL_BOOLEAN);
result.put(SubscribeVehicleData.KEY_MY_KEY, Test.GENERAL_BOOLEAN);
+ result.put(SubscribeVehicleData.KEY_FUEL_RANGE, Test.GENERAL_BOOLEAN);
+ result.put(SubscribeVehicleData.KEY_TURN_SIGNAL, Test.GENERAL_BOOLEAN);
+ result.put(SubscribeVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS, Test.GENERAL_BOOLEAN);
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -111,6 +119,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getPrndl());
assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getTirePressure());
assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getEngineTorque());
+ assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getEngineOilLife());
assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getOdometer());
assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getGps());
assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getFuelLevelState());
@@ -128,6 +137,9 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getEmergencyEvent());
assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getClusterModeStatus());
assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getMyKey());
+ assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getFuelRange());
+ assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getTurnSignal());
+ assertTrue(Test.MATCH,( (SubscribeVehicleData) msg ).getElectronicParkBrakeStatus());
// Invalid/Null Tests
SubscribeVehicleData msg = new SubscribeVehicleData();
@@ -153,11 +165,15 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
assertNull(Test.NULL, msg.getDeviceStatus());
assertNull(Test.NULL, msg.getHeadLampStatus());
assertNull(Test.NULL, msg.getEngineTorque());
+ assertNull(Test.NULL, msg.getEngineOilLife());
assertNull(Test.NULL, msg.getSteeringWheelAngle());
assertNull(Test.NULL, msg.getECallInfo());
assertNull(Test.NULL, msg.getEmergencyEvent());
assertNull(Test.NULL, msg.getClusterModeStatus());
assertNull(Test.NULL, msg.getMyKey());
+ assertNull(Test.NULL, msg.getFuelRange());
+ assertNull(Test.NULL, msg.getTurnSignal());
+ assertNull(Test.NULL, msg.getElectronicParkBrakeStatus());
}
/**
@@ -186,6 +202,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_PRNDL), cmd.getPrndl());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_TIRE_PRESSURE), cmd.getTirePressure());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_ENGINE_TORQUE), cmd.getEngineTorque());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_ENGINE_OIL_LIFE), cmd.getEngineOilLife());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_ODOMETER), cmd.getOdometer());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_GPS), cmd.getGps());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_FUEL_LEVEL_STATE), cmd.getFuelLevelState());
@@ -202,7 +219,10 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_AIRBAG_STATUS), cmd.getAirbagStatus());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_EMERGENCY_EVENT), cmd.getEmergencyEvent());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_CLUSTER_MODE_STATUS), cmd.getClusterModeStatus());
- assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_MY_KEY), cmd.getMyKey());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_MY_KEY), cmd.getMyKey());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_FUEL_RANGE), cmd.getFuelRange());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_TURN_SIGNAL), cmd.getTurnSignal());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS), cmd.getElectronicParkBrakeStatus());
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SystemRequestTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SystemRequestTests.java
index 11f3f42a2..9ca720198 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SystemRequestTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SystemRequestTests.java
@@ -30,6 +30,7 @@ public class SystemRequestTests extends BaseRpcTests {
msg.setLegacyData(Test.GENERAL_STRING_LIST);
msg.setFileName(Test.GENERAL_STRING);
msg.setRequestType(Test.GENERAL_REQUESTTYPE);
+ msg.setRequestSubType(Test.GENERAL_STRING);
return msg;
}
@@ -51,7 +52,8 @@ public class SystemRequestTests extends BaseRpcTests {
try {
result.put(SystemRequest.KEY_DATA, JsonUtils.createJsonArray(Test.GENERAL_STRING_LIST));
result.put(SystemRequest.KEY_FILE_NAME, Test.GENERAL_STRING);
- result.put(SystemRequest.KEY_REQUEST_TYPE, Test.GENERAL_REQUESTTYPE);
+ result.put(SystemRequest.KEY_REQUEST_TYPE, Test.GENERAL_REQUESTTYPE);
+ result.put(SystemRequest.KEY_REQUEST_SUB_TYPE, Test.GENERAL_STRING);
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -65,11 +67,13 @@ public class SystemRequestTests extends BaseRpcTests {
public void testRpcValues () {
// Test Values
RequestType testRequestType = ( (SystemRequest) msg ).getRequestType();
+ String testRequestSubType = ( (SystemRequest) msg ).getRequestSubType();
String testFileName = ( (SystemRequest) msg ).getFileName();
List<String> testLegacyData = ( (SystemRequest) msg ).getLegacyData();
// Valid Tests
assertEquals(Test.MATCH, Test.GENERAL_REQUESTTYPE, testRequestType);
+ assertEquals(Test.MATCH, Test.GENERAL_STRING, testRequestSubType);
assertEquals(Test.MATCH, Test.GENERAL_STRING, testFileName);
assertTrue(Test.TRUE, Validator.validateStringList(Test.GENERAL_STRING_LIST, testLegacyData));
@@ -81,6 +85,7 @@ public class SystemRequestTests extends BaseRpcTests {
assertNull(Test.NULL, msg.getLegacyData());
assertNull(Test.NULL, msg.getFileName());
assertNull(Test.NULL, msg.getRequestType());
+ assertNull(Test.NULL, msg.getRequestSubType());
assertNull(Test.NULL, msg.getBulkData());
}
@@ -105,6 +110,7 @@ public class SystemRequestTests extends BaseRpcTests {
JSONObject parameters = JsonUtils.readJsonObjectFromJsonObject(body, RPCMessage.KEY_PARAMETERS);
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, SystemRequest.KEY_FILE_NAME), cmd.getFileName());
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, SystemRequest.KEY_REQUEST_TYPE), cmd.getRequestType().toString());
+ assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, SystemRequest.KEY_REQUEST_SUB_TYPE), cmd.getRequestSubType());
List<String> dataList = JsonUtils.readStringListFromJsonObject(parameters, SystemRequest.KEY_DATA);
List<String> testDataList = cmd.getLegacyData();
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeVehicleDataTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeVehicleDataTests.java
index 15cd321af..af8560410 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeVehicleDataTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeVehicleDataTests.java
@@ -17,7 +17,7 @@ import com.smartdevicelink.test.json.rpc.JsonFileReader;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.UnsubscribeVehicleData}
+ * {@link com.smartdevicelink.proxy.rpc.UnsubscribeVehicleData}
*/
public class UnsubscribeVehicleDataTests extends BaseRpcTests {
@@ -32,6 +32,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
msg.setPrndl(Test.GENERAL_BOOLEAN);
msg.setTirePressure(Test.GENERAL_BOOLEAN);
msg.setEngineTorque(Test.GENERAL_BOOLEAN);
+ msg.setEngineOilLife(Test.GENERAL_BOOLEAN);
msg.setOdometer(Test.GENERAL_BOOLEAN);
msg.setGps(Test.GENERAL_BOOLEAN);
msg.setFuelLevelState(Test.GENERAL_BOOLEAN);
@@ -49,6 +50,9 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
msg.setEmergencyEvent(Test.GENERAL_BOOLEAN);
msg.setClusterModeStatus(Test.GENERAL_BOOLEAN);
msg.setMyKey(Test.GENERAL_BOOLEAN);
+ msg.setFuelRange(Test.GENERAL_BOOLEAN);
+ msg.setTurnSignal(Test.GENERAL_BOOLEAN);
+ msg.setElectronicParkBrakeStatus(Test.GENERAL_BOOLEAN);
return msg;
}
@@ -75,6 +79,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
result.put(UnsubscribeVehicleData.KEY_PRNDL, Test.GENERAL_BOOLEAN);
result.put(UnsubscribeVehicleData.KEY_TIRE_PRESSURE, Test.GENERAL_BOOLEAN);
result.put(UnsubscribeVehicleData.KEY_ENGINE_TORQUE, Test.GENERAL_BOOLEAN);
+ result.put(UnsubscribeVehicleData.KEY_ENGINE_OIL_LIFE, Test.GENERAL_BOOLEAN);
result.put(UnsubscribeVehicleData.KEY_ODOMETER, Test.GENERAL_BOOLEAN);
result.put(UnsubscribeVehicleData.KEY_GPS, Test.GENERAL_BOOLEAN);
result.put(UnsubscribeVehicleData.KEY_FUEL_LEVEL_STATE, Test.GENERAL_BOOLEAN);
@@ -91,7 +96,10 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
result.put(UnsubscribeVehicleData.KEY_AIRBAG_STATUS, Test.GENERAL_BOOLEAN);
result.put(UnsubscribeVehicleData.KEY_EMERGENCY_EVENT, Test.GENERAL_BOOLEAN);
result.put(UnsubscribeVehicleData.KEY_CLUSTER_MODE_STATUS, Test.GENERAL_BOOLEAN);
- result.put(UnsubscribeVehicleData.KEY_MY_KEY, Test.GENERAL_BOOLEAN);
+ result.put(UnsubscribeVehicleData.KEY_MY_KEY, Test.GENERAL_BOOLEAN);
+ result.put(UnsubscribeVehicleData.KEY_FUEL_RANGE, Test.GENERAL_BOOLEAN);
+ result.put(UnsubscribeVehicleData.KEY_TURN_SIGNAL, Test.GENERAL_BOOLEAN);
+ result.put(UnsubscribeVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS, Test.GENERAL_BOOLEAN);
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -111,6 +119,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getPrndl());
assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getTirePressure());
assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getEngineTorque());
+ assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getEngineOilLife());
assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getOdometer());
assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getGps());
assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getFuelLevelState());
@@ -128,6 +137,9 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getEmergencyEvent());
assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getClusterModeStatus());
assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getMyKey());
+ assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getFuelRange());
+ assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getTurnSignal());
+ assertTrue(Test.TRUE,( (UnsubscribeVehicleData) msg ).getElectronicParkBrakeStatus());
// Invalid/Null Tests
UnsubscribeVehicleData msg = new UnsubscribeVehicleData();
@@ -153,12 +165,16 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
assertNull(Test.NULL, msg.getDeviceStatus());
assertNull(Test.NULL, msg.getHeadLampStatus());
assertNull(Test.NULL, msg.getEngineTorque());
+ assertNull(Test.NULL, msg.getEngineOilLife());
assertNull(Test.NULL, msg.getSteeringWheelAngle());
assertNull(Test.NULL, msg.getECallInfo());
assertNull(Test.NULL, msg.getEmergencyEvent());
assertNull(Test.NULL, msg.getClusterModeStatus());
- assertNull(Test.NULL, msg.getMyKey());
- }
+ assertNull(Test.NULL, msg.getMyKey());
+ assertNull(Test.NULL, msg.getFuelRange());
+ assertNull(Test.NULL, msg.getTurnSignal());
+ assertNull(Test.NULL, msg.getElectronicParkBrakeStatus());
+ }
/**
* Tests a valid JSON construction of this RPC message.
@@ -186,6 +202,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_PRNDL), cmd.getPrndl());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_TIRE_PRESSURE), cmd.getTirePressure());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_ENGINE_TORQUE), cmd.getEngineTorque());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_ENGINE_OIL_LIFE), cmd.getEngineOilLife());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_ODOMETER), cmd.getOdometer());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_GPS), cmd.getGps());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_FUEL_LEVEL_STATE), cmd.getFuelLevelState());
@@ -202,7 +219,10 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_AIRBAG_STATUS), cmd.getAirbagStatus());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_EMERGENCY_EVENT), cmd.getEmergencyEvent());
assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_CLUSTER_MODE_STATUS), cmd.getClusterModeStatus());
- assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_MY_KEY), cmd.getMyKey());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_MY_KEY), cmd.getMyKey());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_FUEL_RANGE), cmd.getFuelRange());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_TURN_SIGNAL), cmd.getTurnSignal());
+ assertEquals(Test.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS), cmd.getElectronicParkBrakeStatus());
}
catch (JSONException e) {
fail(Test.JSON_FAIL);
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetVehicleDataResponseTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetVehicleDataResponseTests.java
index 314a2f419..2bcff82ee 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetVehicleDataResponseTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetVehicleDataResponseTests.java
@@ -1,8 +1,11 @@
package com.smartdevicelink.test.rpc.responses;
+import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
+import java.util.List;
+import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -16,12 +19,14 @@ import com.smartdevicelink.proxy.rpc.ClusterModeStatus;
import com.smartdevicelink.proxy.rpc.DeviceStatus;
import com.smartdevicelink.proxy.rpc.ECallInfo;
import com.smartdevicelink.proxy.rpc.EmergencyEvent;
+import com.smartdevicelink.proxy.rpc.FuelRange;
import com.smartdevicelink.proxy.rpc.GPSData;
import com.smartdevicelink.proxy.rpc.GetVehicleDataResponse;
import com.smartdevicelink.proxy.rpc.HeadLampStatus;
import com.smartdevicelink.proxy.rpc.MyKey;
import com.smartdevicelink.proxy.rpc.SingleTireStatus;
import com.smartdevicelink.proxy.rpc.TireStatus;
+import com.smartdevicelink.proxy.rpc.enums.TurnSignal;
import com.smartdevicelink.test.BaseRpcTests;
import com.smartdevicelink.test.JsonUtils;
import com.smartdevicelink.test.Test;
@@ -32,7 +37,7 @@ import com.smartdevicelink.test.json.rpc.JsonFileReader;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.GetVehicleDataResponse}
+ * {@link com.smartdevicelink.proxy.rpc.GetVehicleDataResponse}
*/
public class GetVehicleDataResponseTests extends BaseRpcTests{
@@ -64,6 +69,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
result.put(GetVehicleDataResponse.KEY_PRNDL, VehicleDataHelper.PRNDL_FINAL);
result.put(GetVehicleDataResponse.KEY_TIRE_PRESSURE, VehicleDataHelper.TIRE_PRESSURE.serializeJSON());
result.put(GetVehicleDataResponse.KEY_ENGINE_TORQUE, VehicleDataHelper.ENGINE_TORQUE);
+ result.put(GetVehicleDataResponse.KEY_ENGINE_OIL_LIFE, VehicleDataHelper.ENGINE_OIL_LIFE);
result.put(GetVehicleDataResponse.KEY_ODOMETER, VehicleDataHelper.ODOMETER);
result.put(GetVehicleDataResponse.KEY_GPS, VehicleDataHelper.GPS.serializeJSON());
result.put(GetVehicleDataResponse.KEY_FUEL_LEVEL_STATE, VehicleDataHelper.FUEL_LEVEL_STATE);
@@ -81,6 +87,9 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
result.put(GetVehicleDataResponse.KEY_EMERGENCY_EVENT, VehicleDataHelper.EMERGENCY_EVENT.serializeJSON());
result.put(GetVehicleDataResponse.KEY_CLUSTER_MODE_STATUS, VehicleDataHelper.CLUSTER_MODE_STATUS.serializeJSON());
result.put(GetVehicleDataResponse.KEY_MY_KEY, VehicleDataHelper.MY_KEY.serializeJSON());
+ result.put(GetVehicleDataResponse.KEY_FUEL_RANGE, VehicleDataHelper.JSON_FUEL_RANGE);
+ result.put(GetVehicleDataResponse.KEY_TURN_SIGNAL, VehicleDataHelper.TURN_SIGNAL);
+ result.put(GetVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS);
} catch(JSONException e){
fail(Test.JSON_FAIL);
}
@@ -103,6 +112,8 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
JSONObject emergencyEventObj = new JSONObject();
JSONObject clusterModeStatusObj = new JSONObject();
JSONObject myKeyObj = new JSONObject();
+ JSONObject fuelRangeObj = new JSONObject();
+ JSONArray fuelRangeArrayObj = new JSONArray();
try {
//set up the JSONObject to represent GetVehicleDataResponse
@@ -221,7 +232,12 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
//MY_KEY
myKeyObj.put(MyKey.KEY_E_911_OVERRIDE, VehicleDataHelper.MY_KEY_E_911_OVERRIDE);
-
+
+ // FUEL_RANGE
+ fuelRangeObj.put(FuelRange.KEY_TYPE, VehicleDataHelper.FUEL_RANGE_TYPE);
+ fuelRangeObj.put(FuelRange.KEY_RANGE, VehicleDataHelper.FUEL_RANGE_RANGE);
+ fuelRangeArrayObj.put(fuelRangeObj);
+
reference.put(GetVehicleDataResponse.KEY_SPEED, VehicleDataHelper.SPEED);
reference.put(GetVehicleDataResponse.KEY_RPM, VehicleDataHelper.RPM);
reference.put(GetVehicleDataResponse.KEY_EXTERNAL_TEMPERATURE, VehicleDataHelper.EXTERNAL_TEMPERATURE);
@@ -230,6 +246,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
reference.put(GetVehicleDataResponse.KEY_PRNDL, VehicleDataHelper.PRNDL_FINAL);
reference.put(GetVehicleDataResponse.KEY_TIRE_PRESSURE, tireStatusObj);
reference.put(GetVehicleDataResponse.KEY_ENGINE_TORQUE, VehicleDataHelper.ENGINE_TORQUE);
+ reference.put(GetVehicleDataResponse.KEY_ENGINE_OIL_LIFE, VehicleDataHelper.ENGINE_OIL_LIFE);
reference.put(GetVehicleDataResponse.KEY_ODOMETER, VehicleDataHelper.ODOMETER);
reference.put(GetVehicleDataResponse.KEY_GPS, GPSDataObj);
reference.put(GetVehicleDataResponse.KEY_FUEL_LEVEL_STATE, VehicleDataHelper.FUEL_LEVEL_STATE);
@@ -247,6 +264,9 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
reference.put(GetVehicleDataResponse.KEY_EMERGENCY_EVENT, emergencyEventObj);
reference.put(GetVehicleDataResponse.KEY_CLUSTER_MODE_STATUS, clusterModeStatusObj);
reference.put(GetVehicleDataResponse.KEY_MY_KEY, myKeyObj);
+ reference.put(GetVehicleDataResponse.KEY_FUEL_RANGE, fuelRangeArrayObj);
+ reference.put(GetVehicleDataResponse.KEY_TURN_SIGNAL, TurnSignal.OFF);
+ reference.put(GetVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS);
JSONObject underTest = msg.serializeJSON();
@@ -360,6 +380,30 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
new MyKey(JsonRPCMarshaller.deserializeJSONObject(myKeyObjReference)),
new MyKey(JsonRPCMarshaller.deserializeJSONObject(myKeyObjTest))));
}
+ else if (key.equals(GetVehicleDataResponse.KEY_ENGINE_OIL_LIFE)) {
+ assertEquals("JSON value didn't match expected value for key \"" + key + "\".",
+ JsonUtils.readDoubleFromJsonObject(reference, key), JsonUtils.readDoubleFromJsonObject(underTest, key));
+ }
+ else if (key.equals(GetVehicleDataResponse.KEY_FUEL_RANGE)) {
+ JSONArray fuelRangeArrayObjReference = JsonUtils.readJsonArrayFromJsonObject(reference, key);
+ List<FuelRange> fuelRangeRefereceList = new ArrayList<FuelRange>();
+ for (int index = 0; index < fuelRangeArrayObjReference.length(); index++) {
+ FuelRange fuelRange = new FuelRange(JsonRPCMarshaller.deserializeJSONObject( (JSONObject)fuelRangeArrayObjReference.get(index) ));
+ fuelRangeRefereceList.add(fuelRange);
+ }
+
+ JSONArray fuelRangeArrayObjTest = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
+ List<FuelRange> fuelRangeUnderTestList = new ArrayList<FuelRange>();
+ for (int index = 0; index < fuelRangeArrayObjTest.length(); index++) {
+ FuelRange fuelRange = new FuelRange(JsonRPCMarshaller.deserializeJSONObject( (JSONObject)fuelRangeArrayObjTest.get(index) ));
+ fuelRangeUnderTestList.add(fuelRange);
+ }
+
+ assertTrue("JSON value didn't match expected value for key \"" + key + "\".",
+ Validator.validateFuelRange(
+ fuelRangeRefereceList,
+ fuelRangeUnderTestList));
+ }
else {
assertEquals("JSON value didn't match expected value for key \"" + key + "\".",
JsonUtils.readObjectFromJsonObject(reference, key),
@@ -385,6 +429,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
assertEquals(Test.MATCH, VehicleDataHelper.PRNDL_FINAL, ( (GetVehicleDataResponse) msg ).getPrndl());
assertEquals(Test.MATCH, VehicleDataHelper.TIRE_PRESSURE, ( (GetVehicleDataResponse) msg ).getTirePressure());
assertEquals(Test.MATCH, VehicleDataHelper.ENGINE_TORQUE, ( (GetVehicleDataResponse) msg ).getEngineTorque());
+ assertEquals(Test.MATCH, VehicleDataHelper.ENGINE_OIL_LIFE, ( (GetVehicleDataResponse) msg ).getEngineOilLife());
assertEquals(Test.MATCH, (Integer) VehicleDataHelper.ODOMETER, ( (GetVehicleDataResponse) msg ).getOdometer());
assertEquals(Test.MATCH, VehicleDataHelper.GPS, ( (GetVehicleDataResponse) msg ).getGps());
assertEquals(Test.MATCH, VehicleDataHelper.FUEL_LEVEL_STATE, ( (GetVehicleDataResponse) msg ).getFuelLevelState());
@@ -402,6 +447,8 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
assertEquals(Test.MATCH, VehicleDataHelper.EMERGENCY_EVENT, ( (GetVehicleDataResponse) msg ).getEmergencyEvent());
assertEquals(Test.MATCH, VehicleDataHelper.CLUSTER_MODE_STATUS, ( (GetVehicleDataResponse) msg ).getClusterModeStatus());
assertEquals(Test.MATCH, VehicleDataHelper.MY_KEY, ( (GetVehicleDataResponse) msg ).getMyKey());
+ assertEquals(Test.MATCH, VehicleDataHelper.TURN_SIGNAL, ( (GetVehicleDataResponse) msg ).getTurnSignal());
+ assertEquals(Test.MATCH, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS, ( (GetVehicleDataResponse) msg ).getElectronicParkBrakeStatus());
// Invalid/Null Tests
GetVehicleDataResponse msg = new GetVehicleDataResponse();
@@ -427,11 +474,14 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
assertNull(Test.NULL, msg.getDeviceStatus());
assertNull(Test.NULL, msg.getHeadLampStatus());
assertNull(Test.NULL, msg.getEngineTorque());
+ assertNull(Test.NULL, msg.getEngineOilLife());
assertNull(Test.NULL, msg.getSteeringWheelAngle());
assertNull(Test.NULL, msg.getECallInfo());
assertNull(Test.NULL, msg.getEmergencyEvent());
assertNull(Test.NULL, msg.getClusterModeStatus());
- assertNull(Test.NULL, msg.getMyKey());
+ assertNull(Test.NULL, msg.getMyKey());
+ assertNull(Test.NULL, msg.getTurnSignal());
+ assertNull(Test.NULL, msg.getElectronicParkBrakeStatus());
}
@@ -464,8 +514,9 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
JSONObject tireStatusObj = JsonUtils.readJsonObjectFromJsonObject(parameters, GetVehicleDataResponse.KEY_TIRE_PRESSURE);
TireStatus tireStatus = new TireStatus(JsonRPCMarshaller.deserializeJSONObject(tireStatusObj));
assertTrue(Test.TRUE, Validator.validateTireStatus(tireStatus, cmd.getTirePressure()) );
-
+
assertEquals(Test.MATCH, JsonUtils.readDoubleFromJsonObject(parameters, GetVehicleDataResponse.KEY_ENGINE_TORQUE), cmd.getEngineTorque());
+ assertEquals(Test.MATCH, JsonUtils.readDoubleFromJsonObject(parameters, GetVehicleDataResponse.KEY_ENGINE_OIL_LIFE), cmd.getEngineOilLife(), 0.0002);
assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(parameters, GetVehicleDataResponse.KEY_ODOMETER), cmd.getOdometer());
JSONObject gpsDataObj = JsonUtils.readJsonObjectFromJsonObject(parameters, GetVehicleDataResponse.KEY_GPS);
@@ -516,6 +567,9 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
JSONObject myKeyObj = JsonUtils.readJsonObjectFromJsonObject(parameters, GetVehicleDataResponse.KEY_MY_KEY);
MyKey myKey = new MyKey(JsonRPCMarshaller.deserializeJSONObject(myKeyObj));
assertTrue(Test.TRUE, Validator.validateMyKey(myKey, cmd.getMyKey()) );
+
+ assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, GetVehicleDataResponse.KEY_TURN_SIGNAL), cmd.getTurnSignal().toString());
+ assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, GetVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS), cmd.getElectronicParkBrakeStatus().toString());
} catch (JSONException e) {
e.printStackTrace();
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/RegisterAppInterfaceResponseTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/RegisterAppInterfaceResponseTest.java
index a08b35d24..55450898e 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/RegisterAppInterfaceResponseTest.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/RegisterAppInterfaceResponseTest.java
@@ -15,6 +15,7 @@ import com.smartdevicelink.proxy.rpc.AudioPassThruCapabilities;
import com.smartdevicelink.proxy.rpc.ButtonCapabilities;
import com.smartdevicelink.proxy.rpc.DisplayCapabilities;
import com.smartdevicelink.proxy.rpc.PresetBankCapabilities;
+import com.smartdevicelink.proxy.rpc.RegisterAppInterface;
import com.smartdevicelink.proxy.rpc.RegisterAppInterfaceResponse;
import com.smartdevicelink.proxy.rpc.SdlMsgVersion;
import com.smartdevicelink.proxy.rpc.SoftButtonCapabilities;
@@ -55,6 +56,7 @@ public class RegisterAppInterfaceResponseTest extends BaseRpcTests {
msg.setVrCapabilities(Test.GENERAL_VRCAPABILITIES_LIST);
msg.setPrerecordedSpeech(Test.GENERAL_PRERECORDEDSPEECH_LIST);
msg.setSupportedDiagModes(Test.GENERAL_INTEGER_LIST);
+ msg.setIconResumed(Test.GENERAL_BOOLEAN);
return msg;
}
@@ -90,6 +92,7 @@ public class RegisterAppInterfaceResponseTest extends BaseRpcTests {
result.put(RegisterAppInterfaceResponse.KEY_VR_CAPABILITIES, JsonUtils.createJsonArray(Test.GENERAL_VRCAPABILITIES_LIST));
result.put(RegisterAppInterfaceResponse.KEY_HMI_ZONE_CAPABILITIES, JsonUtils.createJsonArray(Test.GENERAL_HMIZONECAPABILITIES_LIST));
result.put(RegisterAppInterfaceResponse.KEY_PRERECORDED_SPEECH, JsonUtils.createJsonArray(Test.GENERAL_PRERECORDEDSPEECH_LIST));
+ result.put(RegisterAppInterfaceResponse.KEY_ICON_RESUMED, Test.GENERAL_BOOLEAN);
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -117,6 +120,7 @@ public class RegisterAppInterfaceResponseTest extends BaseRpcTests {
SdlMsgVersion testMsgVersion = ( (RegisterAppInterfaceResponse) msg ).getSdlMsgVersion();
List<AudioPassThruCapabilities> testAptc = ( (RegisterAppInterfaceResponse) msg ).getAudioPassThruCapabilities();
AudioPassThruCapabilities testPcmStream = ( (RegisterAppInterfaceResponse) msg ).getPcmStreamingCapabilities();
+ Boolean testIconResumed = ( (RegisterAppInterfaceResponse) msg ).getIconResumed();
// Valid Tests
assertEquals(Test.MATCH, Test.GENERAL_INTEGER_LIST, testSupportedDiagModes);
@@ -134,6 +138,7 @@ public class RegisterAppInterfaceResponseTest extends BaseRpcTests {
assertTrue(Test.TRUE, Validator.validateSdlMsgVersion(Test.GENERAL_SDLMSGVERSION, testMsgVersion));
assertTrue(Test.TRUE, Validator.validateAudioPassThruCapabilities(Test.GENERAL_AUDIOPASSTHRUCAPABILITIES_LIST, testAptc));
assertTrue(Test.TRUE, Validator.validatePcmStreamCapabilities(Test.GENERAL_AUDIOPASSTHRUCAPABILITIES, testPcmStream));
+ assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, testIconResumed);
// Invalid/Null Tests
RegisterAppInterfaceResponse msg = new RegisterAppInterfaceResponse();
@@ -155,6 +160,7 @@ public class RegisterAppInterfaceResponseTest extends BaseRpcTests {
assertNull(Test.NULL, msg.getVrCapabilities());
assertNull(Test.NULL, msg.getPrerecordedSpeech());
assertNull(Test.NULL, msg.getSupportedDiagModes());
+ assertNull(Test.NULL, msg.getIconResumed());
}
/**
@@ -253,6 +259,9 @@ public class RegisterAppInterfaceResponseTest extends BaseRpcTests {
JSONObject presetBankCapabilitiesObj = JsonUtils.readJsonObjectFromJsonObject(parameters, RegisterAppInterfaceResponse.KEY_PRESET_BANK_CAPABILITIES);
PresetBankCapabilities presetBankCapabilities = new PresetBankCapabilities(JsonRPCMarshaller.deserializeJSONObject(presetBankCapabilitiesObj));
assertTrue(Test.TRUE, Validator.validatePresetBankCapabilities(presetBankCapabilities, cmd.getPresetBankCapabilities()) );
+
+ Boolean iconResumed = JsonUtils.readBooleanFromJsonObject(parameters, RegisterAppInterfaceResponse.KEY_ICON_RESUMED);
+ assertEquals(Test.MATCH, iconResumed, cmd.getIconResumed());
} catch (JSONException e) {
e.printStackTrace();
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeVehicleDataResponseTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeVehicleDataResponseTest.java
index a73500a94..e1dfc603c 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeVehicleDataResponseTest.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeVehicleDataResponseTest.java
@@ -19,7 +19,7 @@ import com.smartdevicelink.test.json.rpc.JsonFileReader;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.SubscribeVehicleDataResponse}
+ * {@link com.smartdevicelink.proxy.rpc.SubscribeVehicleDataResponse}
*/
public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
@@ -36,6 +36,7 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
msg.setPrndl(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_PRNDL.ordinal()));
msg.setTirePressure(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_TIREPRESSURE.ordinal()));
msg.setEngineTorque(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ENGINETORQUE.ordinal()));
+ msg.setEngineOilLife(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ENGINEOILLIFE.ordinal()));
msg.setOdometer(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ODOMETER.ordinal()));
msg.setGps(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_GPS.ordinal()));
msg.setFuelLevelState(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_FUELLEVEL_STATE.ordinal()));
@@ -53,6 +54,9 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
msg.setEmergencyEvent(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_EMERGENCYEVENT.ordinal()));
msg.setClusterModeStatus(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS.ordinal()));
msg.setMyKey(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_MYKEY.ordinal()));
+ msg.setFuelRange(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_FUELRANGE.ordinal()));
+ msg.setTurnSignal(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_TURNSIGNAL.ordinal()));
+ msg.setElectronicParkBrakeStatus(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS.ordinal()));
return msg;
}
@@ -84,6 +88,7 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
result.put(SubscribeVehicleDataResponse.KEY_PRNDL, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_PRNDL.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_TIRE_PRESSURE, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_TIREPRESSURE.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_ENGINE_TORQUE, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ENGINETORQUE.ordinal()).serializeJSON());
+ result.put(SubscribeVehicleDataResponse.KEY_ENGINE_OIL_LIFE, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ENGINEOILLIFE.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_ODOMETER, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ODOMETER.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_GPS, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_GPS.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_FUEL_LEVEL_STATE, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_FUELLEVEL_STATE.ordinal()).serializeJSON());
@@ -101,6 +106,9 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
result.put(SubscribeVehicleDataResponse.KEY_EMERGENCY_EVENT, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_EMERGENCYEVENT.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_CLUSTER_MODE_STATUS, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_MY_KEY, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_MYKEY.ordinal()).serializeJSON());
+ result.put(SubscribeVehicleDataResponse.KEY_FUEL_RANGE, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_FUELRANGE.ordinal()).serializeJSON());
+ result.put(SubscribeVehicleDataResponse.KEY_TURN_SIGNAL, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_TURNSIGNAL.ordinal()).serializeJSON());
+ result.put(SubscribeVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS.ordinal()).serializeJSON());
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -131,12 +139,16 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
VehicleDataResult testConsumption = ( (SubscribeVehicleDataResponse) msg ).getInstantFuelConsumption();
VehicleDataResult testExternalTemp = ( (SubscribeVehicleDataResponse) msg ).getExternalTemperature();
VehicleDataResult testEngineTorque = ( (SubscribeVehicleDataResponse) msg ).getEngineTorque();
+ VehicleDataResult testEngineOilLife = ( (SubscribeVehicleDataResponse) msg ).getEngineOilLife();
VehicleDataResult testAccPedal = ( (SubscribeVehicleDataResponse) msg ).getAccPedalPosition();
VehicleDataResult testSteeringWheel = ( (SubscribeVehicleDataResponse) msg ).getSteeringWheelAngle();
VehicleDataResult testFuelLevelState = ( (SubscribeVehicleDataResponse) msg ).getFuelLevelState();
VehicleDataResult testPrndl = ( (SubscribeVehicleDataResponse) msg ).getPrndl();
VehicleDataResult testBraking = ( (SubscribeVehicleDataResponse) msg ).getDriverBraking();
VehicleDataResult testWiperStatus = ( (SubscribeVehicleDataResponse) msg ).getWiperStatus();
+ VehicleDataResult testFuelRange = ( (SubscribeVehicleDataResponse) msg ).getFuelRange();
+ VehicleDataResult testTurnSignal = ( (SubscribeVehicleDataResponse) msg ).getTurnSignal();
+ VehicleDataResult testEBrakeStatus = ( (SubscribeVehicleDataResponse) msg ).getElectronicParkBrakeStatus();
// Valid Tests
assertTrue(Test.TRUE, testGps.getDataType().equals(VehicleDataType.VEHICLEDATA_GPS));
@@ -157,12 +169,16 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
assertTrue(Test.TRUE, testConsumption.getDataType().equals(VehicleDataType.VEHICLEDATA_FUELCONSUMPTION));
assertTrue(Test.TRUE, testExternalTemp.getDataType().equals(VehicleDataType.VEHICLEDATA_EXTERNTEMP));
assertTrue(Test.TRUE, testEngineTorque.getDataType().equals(VehicleDataType.VEHICLEDATA_ENGINETORQUE));
+ assertTrue(Test.TRUE, testEngineOilLife.getDataType().equals(VehicleDataType.VEHICLEDATA_ENGINEOILLIFE));
assertTrue(Test.TRUE, testAccPedal.getDataType().equals(VehicleDataType.VEHICLEDATA_ACCPEDAL));
assertTrue(Test.TRUE, testSteeringWheel.getDataType().equals(VehicleDataType.VEHICLEDATA_STEERINGWHEEL));
assertTrue(Test.TRUE, testFuelLevelState.getDataType().equals(VehicleDataType.VEHICLEDATA_FUELLEVEL_STATE));
assertTrue(Test.TRUE, testPrndl.getDataType().equals(VehicleDataType.VEHICLEDATA_PRNDL));
assertTrue(Test.TRUE, testBraking.getDataType().equals(VehicleDataType.VEHICLEDATA_BRAKING));
assertTrue(Test.TRUE, testWiperStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_WIPERSTATUS));
+ assertTrue(Test.TRUE, testFuelRange.getDataType().equals(VehicleDataType.VEHICLEDATA_FUELRANGE));
+ assertTrue(Test.TRUE, testTurnSignal.getDataType().equals(VehicleDataType.VEHICLEDATA_TURNSIGNAL));
+ assertTrue(Test.TRUE, testEBrakeStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS));
// Invalid/Null Tests
SubscribeVehicleDataResponse msg = new SubscribeVehicleDataResponse();
@@ -188,11 +204,15 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
assertNull(Test.NULL, msg.getDeviceStatus());
assertNull(Test.NULL, msg.getHeadLampStatus());
assertNull(Test.NULL, msg.getEngineTorque());
+ assertNull(Test.NULL, msg.getEngineOilLife());
assertNull(Test.NULL, msg.getSteeringWheelAngle());
assertNull(Test.NULL, msg.getECallInfo());
assertNull(Test.NULL, msg.getEmergencyEvent());
assertNull(Test.NULL, msg.getClusterModeStatus());
assertNull(Test.NULL, msg.getMyKey());
+ assertNull(Test.NULL, msg.getFuelRange());
+ assertNull(Test.NULL, msg.getTurnSignal());
+ assertNull(Test.NULL, msg.getElectronicParkBrakeStatus());
}
/**
@@ -238,11 +258,15 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
JSONObject tirePressure = JsonUtils.readJsonObjectFromJsonObject(parameters, SubscribeVehicleDataResponse.KEY_TIRE_PRESSURE);
VehicleDataResult referenceTirePressure = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(tirePressure));
assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceTirePressure, cmd.getTirePressure()));
-
+
JSONObject engineTorque = JsonUtils.readJsonObjectFromJsonObject(parameters, SubscribeVehicleDataResponse.KEY_ENGINE_TORQUE);
VehicleDataResult referenceEngineTorque = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(engineTorque));
assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceEngineTorque, cmd.getEngineTorque()));
-
+
+ JSONObject engineOilLife = JsonUtils.readJsonObjectFromJsonObject(parameters, SubscribeVehicleDataResponse.KEY_ENGINE_OIL_LIFE);
+ VehicleDataResult referenceEngineOilLife = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(engineOilLife));
+ assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceEngineOilLife, cmd.getEngineOilLife()));
+
JSONObject odometer = JsonUtils.readJsonObjectFromJsonObject(parameters, SubscribeVehicleDataResponse.KEY_ODOMETER);
VehicleDataResult referenceOdometer = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(odometer));
assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceOdometer, cmd.getOdometer()));
@@ -310,6 +334,18 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
JSONObject myKey = JsonUtils.readJsonObjectFromJsonObject(parameters, SubscribeVehicleDataResponse.KEY_MY_KEY);
VehicleDataResult referenceMyKey = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(myKey));
assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceMyKey, cmd.getMyKey()));
+
+ JSONObject fuelRange = JsonUtils.readJsonObjectFromJsonObject(parameters, SubscribeVehicleDataResponse.KEY_FUEL_RANGE);
+ VehicleDataResult referenceFuelRange = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(fuelRange));
+ assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceFuelRange, cmd.getFuelRange()));
+
+ JSONObject turnSignal = JsonUtils.readJsonObjectFromJsonObject(parameters, SubscribeVehicleDataResponse.KEY_TURN_SIGNAL);
+ VehicleDataResult referenceTurnSignal = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(turnSignal));
+ assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceTurnSignal, cmd.getTurnSignal()));
+
+ JSONObject electronicParkBrakeStatus = JsonUtils.readJsonObjectFromJsonObject(parameters, SubscribeVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS);
+ VehicleDataResult referenceEBrakeStatus = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(electronicParkBrakeStatus));
+ assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceEBrakeStatus, cmd.getElectronicParkBrakeStatus()));
} catch (JSONException e) {
e.printStackTrace();
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeVehicleDataResponseTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeVehicleDataResponseTest.java
index 489f6bc1c..cba7fcf0d 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeVehicleDataResponseTest.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeVehicleDataResponseTest.java
@@ -21,7 +21,7 @@ import com.smartdevicelink.test.json.rpc.JsonFileReader;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.UnsubscribeVehicleDataResponse}
+ * {@link com.smartdevicelink.proxy.rpc.UnsubscribeVehicleDataResponse}
*/
public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
@@ -38,6 +38,7 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
msg.setPrndl(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_PRNDL.ordinal()));
msg.setTirePressure(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_TIREPRESSURE.ordinal()));
msg.setEngineTorque(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ENGINETORQUE.ordinal()));
+ msg.setEngineOilLife(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ENGINEOILLIFE.ordinal()));
msg.setOdometer(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ODOMETER.ordinal()));
msg.setGps(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_GPS.ordinal()));
msg.setFuelLevelState(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_FUELLEVEL_STATE.ordinal()));
@@ -55,6 +56,9 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
msg.setEmergencyEvent(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_EMERGENCYEVENT.ordinal()));
msg.setClusterModeStatus(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS.ordinal()));
msg.setMyKey(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_MYKEY.ordinal()));
+ msg.setFuelRange(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_FUELRANGE.ordinal()));
+ msg.setTurnSignal(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_TURNSIGNAL.ordinal()));
+ msg.setElectronicParkBrakeStatus(Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS.ordinal()));
return msg;
}
@@ -86,6 +90,7 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
result.put(SubscribeVehicleDataResponse.KEY_PRNDL, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_PRNDL.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_TIRE_PRESSURE, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_TIREPRESSURE.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_ENGINE_TORQUE, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ENGINETORQUE.ordinal()).serializeJSON());
+ result.put(SubscribeVehicleDataResponse.KEY_ENGINE_OIL_LIFE, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ENGINEOILLIFE.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_ODOMETER, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ODOMETER.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_GPS, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_GPS.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_FUEL_LEVEL_STATE, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_FUELLEVEL_STATE.ordinal()).serializeJSON());
@@ -103,6 +108,9 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
result.put(SubscribeVehicleDataResponse.KEY_EMERGENCY_EVENT, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_EMERGENCYEVENT.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_CLUSTER_MODE_STATUS, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_MY_KEY, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_MYKEY.ordinal()).serializeJSON());
+ result.put(SubscribeVehicleDataResponse.KEY_FUEL_RANGE, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_FUELRANGE.ordinal()).serializeJSON());
+ result.put(SubscribeVehicleDataResponse.KEY_TURN_SIGNAL, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_TURNSIGNAL.ordinal()).serializeJSON());
+ result.put(SubscribeVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS, Test.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS.ordinal()).serializeJSON());
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -133,12 +141,16 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
VehicleDataResult testConsumption = ( (UnsubscribeVehicleDataResponse) msg ).getInstantFuelConsumption();
VehicleDataResult testExternalTemp = ( (UnsubscribeVehicleDataResponse) msg ).getExternalTemperature();
VehicleDataResult testEngineTorque = ( (UnsubscribeVehicleDataResponse) msg ).getEngineTorque();
+ VehicleDataResult testEngineOilLife = ( (UnsubscribeVehicleDataResponse) msg ).getEngineOilLife();
VehicleDataResult testAccPedal = ( (UnsubscribeVehicleDataResponse) msg ).getAccPedalPosition();
VehicleDataResult testSteeringWheel = ( (UnsubscribeVehicleDataResponse) msg ).getSteeringWheelAngle();
VehicleDataResult testFuelLevelState = ( (UnsubscribeVehicleDataResponse) msg ).getFuelLevelState();
VehicleDataResult testPrndl = ( (UnsubscribeVehicleDataResponse) msg ).getPrndl();
VehicleDataResult testBraking = ( (UnsubscribeVehicleDataResponse) msg ).getDriverBraking();
VehicleDataResult testWiperStatus = ( (UnsubscribeVehicleDataResponse) msg ).getWiperStatus();
+ VehicleDataResult testFuelRange = ( (UnsubscribeVehicleDataResponse) msg ).getFuelRange();
+ VehicleDataResult testTurnSignal = ( (UnsubscribeVehicleDataResponse) msg ).getTurnSignal();
+ VehicleDataResult testEBrakeStatus = ( (UnsubscribeVehicleDataResponse) msg ).getElectronicParkBrakeStatus();
// Valid Tests
assertTrue(Test.TRUE, testGps.getDataType().equals(VehicleDataType.VEHICLEDATA_GPS));
@@ -159,12 +171,16 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
assertTrue(Test.TRUE, testConsumption.getDataType().equals(VehicleDataType.VEHICLEDATA_FUELCONSUMPTION));
assertTrue(Test.TRUE, testExternalTemp.getDataType().equals(VehicleDataType.VEHICLEDATA_EXTERNTEMP));
assertTrue(Test.TRUE, testEngineTorque.getDataType().equals(VehicleDataType.VEHICLEDATA_ENGINETORQUE));
+ assertTrue(Test.TRUE, testEngineOilLife.getDataType().equals(VehicleDataType.VEHICLEDATA_ENGINEOILLIFE));
assertTrue(Test.TRUE, testAccPedal.getDataType().equals(VehicleDataType.VEHICLEDATA_ACCPEDAL));
assertTrue(Test.TRUE, testSteeringWheel.getDataType().equals(VehicleDataType.VEHICLEDATA_STEERINGWHEEL));
assertTrue(Test.TRUE, testFuelLevelState.getDataType().equals(VehicleDataType.VEHICLEDATA_FUELLEVEL_STATE));
assertTrue(Test.TRUE, testPrndl.getDataType().equals(VehicleDataType.VEHICLEDATA_PRNDL));
assertTrue(Test.TRUE, testBraking.getDataType().equals(VehicleDataType.VEHICLEDATA_BRAKING));
assertTrue(Test.TRUE, testWiperStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_WIPERSTATUS));
+ assertTrue(Test.TRUE, testFuelRange.getDataType().equals(VehicleDataType.VEHICLEDATA_FUELRANGE));
+ assertTrue(Test.TRUE, testTurnSignal.getDataType().equals(VehicleDataType.VEHICLEDATA_TURNSIGNAL));
+ assertTrue(Test.TRUE, testEBrakeStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS));
// Invalid/Null Tests
UnsubscribeVehicleDataResponse msg = new UnsubscribeVehicleDataResponse();
@@ -190,11 +206,15 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
assertNull(Test.NULL, msg.getDeviceStatus());
assertNull(Test.NULL, msg.getHeadLampStatus());
assertNull(Test.NULL, msg.getEngineTorque());
+ assertNull(Test.NULL, msg.getEngineOilLife());
assertNull(Test.NULL, msg.getSteeringWheelAngle());
assertNull(Test.NULL, msg.getECallInfo());
assertNull(Test.NULL, msg.getEmergencyEvent());
assertNull(Test.NULL, msg.getClusterModeStatus());
assertNull(Test.NULL, msg.getMyKey());
+ assertNull(Test.NULL, msg.getFuelRange());
+ assertNull(Test.NULL, msg.getTurnSignal());
+ assertNull(Test.NULL, msg.getElectronicParkBrakeStatus());
}
/**
@@ -240,11 +260,15 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
JSONObject tirePressure = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_TIRE_PRESSURE);
VehicleDataResult referenceTirePressure = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(tirePressure));
assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceTirePressure, cmd.getTirePressure()));
-
+
JSONObject engineTorque = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_ENGINE_TORQUE);
VehicleDataResult referenceEngineTorque = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(engineTorque));
assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceEngineTorque, cmd.getEngineTorque()));
-
+
+ JSONObject engineOilLife = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_ENGINE_OIL_LIFE);
+ VehicleDataResult referenceEngineOilLife = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(engineOilLife));
+ assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceEngineOilLife, cmd.getEngineOilLife()));
+
JSONObject odometer = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_ODOMETER);
VehicleDataResult referenceOdometer = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(odometer));
assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceOdometer, cmd.getOdometer()));
@@ -312,8 +336,20 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
JSONObject myKey = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_MY_KEY);
VehicleDataResult referenceMyKey = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(myKey));
assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceMyKey, cmd.getMyKey()));
+
+ JSONObject fuelRange = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_FUEL_RANGE);
+ VehicleDataResult referenceFuelRange = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(fuelRange));
+ assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceFuelRange, cmd.getFuelRange()));
+
+ JSONObject turnSignal = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_TURN_SIGNAL);
+ VehicleDataResult referenceTurnSignal = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(turnSignal));
+ assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceTurnSignal, cmd.getTurnSignal()));
+
+ JSONObject eBrakeStatus = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS);
+ VehicleDataResult referenceEBrakeStatus = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(eBrakeStatus));
+ assertTrue(Test.TRUE, Validator.validateVehicleDataResult(referenceEBrakeStatus, cmd.getElectronicParkBrakeStatus()));
} catch (JSONException e) {
e.printStackTrace();
- }
+ }
}
} \ No newline at end of file
diff --git a/sdl_android/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java b/sdl_android/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java
index 412d3f857..3077e8a62 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java
@@ -82,6 +82,7 @@ public enum FunctionID{
ON_HASH_CHANGE(32782, "OnHashChange"),
ON_INTERIOR_VEHICLE_DATA(32783, "OnInteriorVehicleData"),
ON_WAY_POINT_CHANGE(32784, "OnWayPointChange"),
+ ON_RC_STATUS(32785, "OnRCStatus"),
// MOCKED FUNCTIONS (NOT SENT FROM HEAD-UNIT)
ON_LOCK_SCREEN_STATUS(-1, "OnLockScreenStatus"),
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCRequestFactory.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCRequestFactory.java
index 983c496a7..7f9986822 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCRequestFactory.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCRequestFactory.java
@@ -502,6 +502,7 @@ public class RPCRequestFactory {
putFile.setFileType(fileType);
putFile.setPersistentFile(persistentFile);
putFile.setBulkData(fileData);
+ putFile.setCRC(fileData);
return putFile;
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyALM.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyALM.java
index a9cec4f10..d3690146c 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyALM.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyALM.java
@@ -6,6 +6,7 @@ import java.util.Vector;
import android.app.Service;
import android.content.Context;
+import com.smartdevicelink.proxy.rpc.TemplateColorScheme;
import com.smartdevicelink.exception.SdlException;
import com.smartdevicelink.exception.SdlExceptionCause;
import com.smartdevicelink.proxy.interfaces.IProxyListenerALM;
@@ -16,7 +17,6 @@ import com.smartdevicelink.proxy.rpc.HMICapabilities;
import com.smartdevicelink.proxy.rpc.PresetBankCapabilities;
import com.smartdevicelink.proxy.rpc.SdlMsgVersion;
import com.smartdevicelink.proxy.rpc.SoftButtonCapabilities;
-import com.smartdevicelink.proxy.rpc.SystemCapability;
import com.smartdevicelink.proxy.rpc.TTSChunk;
import com.smartdevicelink.proxy.rpc.VehicleType;
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
@@ -1022,6 +1022,32 @@ public class SdlProxyALM extends SdlProxyBase<IProxyListenerALM> {
"appName, isMediaApp, appID", SDL_LIB_TRACE_KEY);
}
+ public SdlProxyALM(IProxyListenerALM listener, String appName, Boolean isMediaApp, String appID,
+ TemplateColorScheme dayColorScheme, TemplateColorScheme nightColorScheme, BaseTransportConfig transportConfig) throws SdlException {
+ super( listener,
+ /*sdlProxyConfigurationResources*/null,
+ /*enable advanced lifecycle management*/true,
+ appName,
+ /*ttsName*/null,
+ /*ngnMediaScreenAppName*/null,
+ /*vrSynonyms*/null,
+ isMediaApp,
+ /*sdlMsgVersion*/null,
+ /*languageDesired*/null,
+ /*hmiDisplayLanguageDesired*/null,
+ /*App Type*/null,
+ /*App ID*/appID,
+ /*autoActivateID*/null,
+ dayColorScheme,
+ nightColorScheme,
+ false,
+ false,
+ transportConfig);
+
+ SdlTrace.logProxyEvent("Application constructed SdlProxyALM (using legacy constructor for BT transport) instance passing in: IProxyListener, " +
+ "appName, isMediaApp, appID, dayColorScheme, nightColorScheme", SDL_LIB_TRACE_KEY);
+ }
+
/**
* @deprecated
* Constructor for the SdlProxy object, the proxy for communicating between the App and SDL via specified transport.
@@ -1568,6 +1594,8 @@ public class SdlProxyALM extends SdlProxyBase<IProxyListenerALM> {
/*App Type*/appType,
/*App ID*/appID,
autoActivateID,
+ null,
+ null,
callbackToUIThread,
preRegister,
/*sHashID*/sHashID,
@@ -1597,6 +1625,8 @@ public class SdlProxyALM extends SdlProxyBase<IProxyListenerALM> {
/*App Type*/appType,
/*App ID*/appID,
autoActivateID,
+ null,
+ null,
callbackToUIThread,
preRegister,
/*sHashID*/sHashID,
@@ -1610,6 +1640,40 @@ public class SdlProxyALM extends SdlProxyBase<IProxyListenerALM> {
"appName, ngnMediaScreenAppName, vrSynonyms, isMediaApp, sdlMsgVersion, languageDesired, appType, appID, autoActivateID, " +
"callbackToUIThread and version", SDL_LIB_TRACE_KEY);
}
+ public SdlProxyALM(Service appService, IProxyListenerALM listener, SdlProxyConfigurationResources sdlProxyConfigurationResources,
+ String appName, Vector<TTSChunk> ttsName, String ngnMediaScreenAppName, Vector<String> vrSynonyms, Boolean isMediaApp,
+ SdlMsgVersion sdlMsgVersion, Language languageDesired, Language hmiDisplayLanguageDesired, Vector<AppHMIType> appType,
+ String appID, String autoActivateID, TemplateColorScheme dayColorScheme, TemplateColorScheme nightColorScheme, boolean callbackToUIThread, boolean preRegister, String sHashID,
+ BaseTransportConfig transportConfig) throws SdlException {
+ super( listener,
+ sdlProxyConfigurationResources,
+ /*enable advanced lifecycle management*/true,
+ appName,
+ ttsName,
+ ngnMediaScreenAppName,
+ vrSynonyms,
+ isMediaApp,
+ sdlMsgVersion,
+ languageDesired,
+ /*HMI Display Language Desired*/hmiDisplayLanguageDesired,
+ /*App Type*/appType,
+ /*App ID*/appID,
+ autoActivateID,
+ dayColorScheme,
+ nightColorScheme,
+ callbackToUIThread,
+ preRegister,
+ /*sHashID*/sHashID,
+ /*bEnableResume*/true,
+ transportConfig);
+
+ this.setAppService(appService);
+ this.sendTransportBroadcast();
+
+ SdlTrace.logProxyEvent("Application constructed SdlProxyALM (using new constructor with specified transport) instance passing in: IProxyListener, sdlProxyConfigurationResources, " +
+ "appName, ngnMediaScreenAppName, vrSynonyms, isMediaApp, sdlMsgVersion, languageDesired, appType, appID, autoActivateID, dayColorScheme, nightColorScheme" +
+ "callbackToUIThread and version", SDL_LIB_TRACE_KEY);
+ }
/***************************************** END OF TRANSPORT SWITCHING SUPPORT ***************************************/
// Allow applications using ALM to reset the proxy (dispose and reinstantiate)
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java
index ea55702bd..3ca4aa0f0 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java
@@ -20,6 +20,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
import java.util.concurrent.ScheduledExecutorService;
+import java.util.zip.CRC32;
import org.json.JSONArray;
import org.json.JSONException;
@@ -50,6 +51,7 @@ import com.smartdevicelink.Dispatcher.ProxyMessageDispatcher;
import com.smartdevicelink.SdlConnection.ISdlConnectionListener;
import com.smartdevicelink.SdlConnection.SdlConnection;
import com.smartdevicelink.SdlConnection.SdlSession;
+import com.smartdevicelink.proxy.rpc.TemplateColorScheme;
import com.smartdevicelink.encoder.VirtualDisplayEncoder;
import com.smartdevicelink.exception.SdlException;
import com.smartdevicelink.exception.SdlExceptionCause;
@@ -191,6 +193,8 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
private Language _hmiDisplayLanguageDesired = null;
private Vector<AppHMIType> _appType = null;
private String _appID = null;
+ private TemplateColorScheme _dayColorScheme = null;
+ private TemplateColorScheme _nightColorScheme = null;
@SuppressWarnings({"FieldCanBeLocal", "unused"}) //Need to understand what this is used for
private String _autoActivateIdDesired = null;
private String _lastHashID = null;
@@ -232,6 +236,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
protected Boolean _bResumeSuccess = false;
protected List<Class<? extends SdlSecurityBase>> _secList = null;
protected SystemCapabilityManager _systemCapabilityManager;
+ protected Boolean _iconResumed = false;
private final CopyOnWriteArrayList<IPutFileResponseListener> _putFileListenerList = new CopyOnWriteArrayList<IPutFileResponseListener>();
@@ -589,7 +594,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
throws SdlException {
performBaseCommon(listener, sdlProxyConfigurationResources, enableAdvancedLifecycleManagement, appName, ttsName, ngnMediaScreenAppName, vrSynonyms, isMediaApp,
- sdlMsgVersion, languageDesired, hmiDisplayLanguageDesired, appType, appID, autoActivateID, callbackToUIThread, null, null, null, transportConfig);
+ sdlMsgVersion, languageDesired, hmiDisplayLanguageDesired, appType, appID, autoActivateID, null, null, callbackToUIThread, null, null, null, transportConfig);
}
@SuppressWarnings("ConstantConditions")
@@ -597,7 +602,8 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
boolean enableAdvancedLifecycleManagement, String appName, Vector<TTSChunk> ttsName,
String ngnMediaScreenAppName, Vector<String> vrSynonyms, Boolean isMediaApp, SdlMsgVersion sdlMsgVersion,
Language languageDesired, Language hmiDisplayLanguageDesired, Vector<AppHMIType> appType, String appID,
- String autoActivateID, boolean callbackToUIThread, Boolean preRegister, String sHashID, Boolean bAppResumeEnab,
+ String autoActivateID, TemplateColorScheme dayColorScheme, TemplateColorScheme nightColorScheme,
+ boolean callbackToUIThread, Boolean preRegister, String sHashID, Boolean bAppResumeEnab,
BaseTransportConfig transportConfig) throws SdlException
{
Log.i(TAG, "SDL_LIB_VERSION: " + Version.VERSION);
@@ -635,6 +641,8 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
_appType = appType;
_appID = appID;
_autoActivateIdDesired = autoActivateID;
+ _dayColorScheme = dayColorScheme;
+ _nightColorScheme = nightColorScheme;
_transportConfig = transportConfig;
// Test conditions to invalidate the proxy
@@ -783,15 +791,14 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
boolean enableAdvancedLifecycleManagement, String appName, Vector<TTSChunk> ttsName,
String ngnMediaScreenAppName, Vector<String> vrSynonyms, Boolean isMediaApp, SdlMsgVersion sdlMsgVersion,
Language languageDesired, Language hmiDisplayLanguageDesired, Vector<AppHMIType> appType, String appID,
- String autoActivateID, boolean callbackToUIThread, boolean preRegister, String sHashID, Boolean bEnableResume, BaseTransportConfig transportConfig)
+ String autoActivateID, TemplateColorScheme dayColorScheme, TemplateColorScheme nightColorScheme,
+ boolean callbackToUIThread, boolean preRegister, String sHashID, Boolean bEnableResume, BaseTransportConfig transportConfig)
throws SdlException
{
performBaseCommon(listener, sdlProxyConfigurationResources, enableAdvancedLifecycleManagement, appName, ttsName, ngnMediaScreenAppName, vrSynonyms, isMediaApp,
- sdlMsgVersion, languageDesired, hmiDisplayLanguageDesired, appType, appID, autoActivateID, callbackToUIThread, preRegister, sHashID, bEnableResume, transportConfig);
+ sdlMsgVersion, languageDesired, hmiDisplayLanguageDesired, appType, appID, autoActivateID, dayColorScheme, nightColorScheme, callbackToUIThread, preRegister, sHashID, bEnableResume, transportConfig);
}
-
-
/**
* Constructor.
*
@@ -814,15 +821,51 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
* @param transportConfig Configuration of transport to be used by underlying connection.
* @throws SdlException if there is an unrecoverable error class might throw an exception.
*/
- protected SdlProxyBase(proxyListenerType listener, SdlProxyConfigurationResources sdlProxyConfigurationResources,
- boolean enableAdvancedLifecycleManagement, String appName, Vector<TTSChunk> ttsName,
- String ngnMediaScreenAppName, Vector<String> vrSynonyms, Boolean isMediaApp, SdlMsgVersion sdlMsgVersion,
- Language languageDesired, Language hmiDisplayLanguageDesired, Vector<AppHMIType> appType, String appID,
- String autoActivateID, boolean callbackToUIThread, boolean preRegister, BaseTransportConfig transportConfig)
+ protected SdlProxyBase(proxyListenerType listener, SdlProxyConfigurationResources sdlProxyConfigurationResources,
+ boolean enableAdvancedLifecycleManagement, String appName, Vector<TTSChunk> ttsName,
+ String ngnMediaScreenAppName, Vector<String> vrSynonyms, Boolean isMediaApp, SdlMsgVersion sdlMsgVersion,
+ Language languageDesired, Language hmiDisplayLanguageDesired, Vector<AppHMIType> appType, String appID,
+ String autoActivateID, boolean callbackToUIThread, boolean preRegister, BaseTransportConfig transportConfig)
throws SdlException
{
performBaseCommon(listener, sdlProxyConfigurationResources, enableAdvancedLifecycleManagement, appName, ttsName, ngnMediaScreenAppName, vrSynonyms, isMediaApp,
- sdlMsgVersion, languageDesired, hmiDisplayLanguageDesired, appType, appID, autoActivateID, callbackToUIThread, preRegister, null, null, transportConfig);
+ sdlMsgVersion, languageDesired, hmiDisplayLanguageDesired, appType, appID, autoActivateID, null, null, callbackToUIThread, preRegister, null, null, transportConfig);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param listener Type of listener for this proxy base.
+ * @param sdlProxyConfigurationResources Configuration resources for this proxy.
+ * @param enableAdvancedLifecycleManagement Flag that ALM should be enabled or not.
+ * @param appName Client application name.
+ * @param ttsName TTS name.
+ * @param ngnMediaScreenAppName Media Screen Application name.
+ * @param vrSynonyms List of synonyms.
+ * @param isMediaApp Flag that indicates that client application if media application or not.
+ * @param sdlMsgVersion Version of Sdl Message.
+ * @param languageDesired Desired language.
+ * @param hmiDisplayLanguageDesired Desired language for HMI.
+ * @param appType Type of application.
+ * @param appID Application identifier.
+ * @param autoActivateID Auto activation identifier.
+ * @param dayColorScheme Day color scheme.
+ * @param dayColorScheme Night color scheme.
+ * @param callbackToUIThread Flag that indicates that this proxy should send callback to UI thread or not.
+ * @param preRegister Flag that indicates that this proxy should be pre-registerd or not.
+ * @param transportConfig Configuration of transport to be used by underlying connection.
+ * @throws SdlException if there is an unrecoverable error class might throw an exception.
+ */
+ protected SdlProxyBase(proxyListenerType listener, SdlProxyConfigurationResources sdlProxyConfigurationResources,
+ boolean enableAdvancedLifecycleManagement, String appName, Vector<TTSChunk> ttsName,
+ String ngnMediaScreenAppName, Vector<String> vrSynonyms, Boolean isMediaApp, SdlMsgVersion sdlMsgVersion,
+ Language languageDesired, Language hmiDisplayLanguageDesired, Vector<AppHMIType> appType, String appID,
+ String autoActivateID, TemplateColorScheme dayColorScheme, TemplateColorScheme nightColorScheme,
+ boolean callbackToUIThread, boolean preRegister, BaseTransportConfig transportConfig)
+ throws SdlException
+ {
+ performBaseCommon(listener, sdlProxyConfigurationResources, enableAdvancedLifecycleManagement, appName, ttsName, ngnMediaScreenAppName, vrSynonyms, isMediaApp,
+ sdlMsgVersion, languageDesired, hmiDisplayLanguageDesired, appType, appID, autoActivateID, dayColorScheme, nightColorScheme, callbackToUIThread, preRegister, null, null, transportConfig);
}
private Intent createBroadcastIntent()
@@ -1102,6 +1145,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
putFile.setCorrelationID(POLICIES_CORRELATION_ID);
putFile.setSdlFileName("response_data");
putFile.setFileData(response.toString().getBytes("UTF-8"));
+ putFile.setCRC(response.toString().getBytes());
updateBroadcastIntent(sendIntent, "DATA", "Data from cloud response: " + response.toString());
sendRPCRequestPrivate(putFile);
@@ -2007,6 +2051,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
_vehicleType = msg.getVehicleType();
_systemSoftwareVersion = msg.getSystemSoftwareVersion();
_proxyVersionInfo = msg.getProxyVersionInfo();
+ _iconResumed = msg.getIconResumed();
@@ -3431,6 +3476,22 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
onRPCNotificationReceived(msg);
}
}
+ else if (functionName.equals(FunctionID.ON_RC_STATUS.toString())) {
+ final OnRCStatus msg = new OnRCStatus(hash);
+ if (_callbackToUIThread) {
+ // Run in UI thread
+ _mainUIHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ _proxyListener.onOnRCStatus(msg);
+ onRPCNotificationReceived(msg);
+ }
+ });
+ } else {
+ _proxyListener.onOnRCStatus(msg);
+ onRPCNotificationReceived(msg);
+ }
+ }
else {
if (_sdlMsgVersion != null) {
DebugTool.logInfo("Unrecognized notification Message: " + functionName +
@@ -3650,6 +3711,8 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
_hmiDisplayLanguageDesired,
_appType,
_appID,
+ _dayColorScheme,
+ _nightColorScheme,
REGISTER_APP_INTERFACE_CORRELATION_ID);
} catch (Exception e) {
@@ -4806,28 +4869,47 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
addCommand(commandID, null, null, null, vrCommands, correlationID);
}
-
-
+
/**
* Sends an AddSubMenu RPCRequest to SDL. Responses are captured through callback on IProxyListener.
- *
+ *
* @param menuID -Unique ID of the sub menu to add.
* @param menuName -Text to show in the menu for this sub menu.
* @param position -Position within the items that are are at top level of the in application menu.
+ * @param menuIcon -Image to be be shown along with the submenu item
* @param correlationID -A unique ID that correlates each RPCRequest and RPCResponse
* @throws SdlException if an unrecoverable error is encountered
*/
@SuppressWarnings("SameParameterValue")
public void addSubMenu(@NonNull Integer menuID, @NonNull String menuName,
- Integer position, Integer correlationID)
+ Integer position, Image menuIcon, Integer correlationID)
throws SdlException {
AddSubMenu msg = new AddSubMenu(menuID, menuName);
msg.setCorrelationID(correlationID);
msg.setPosition(position);
-
+ msg.setMenuIcon(menuIcon);
+
sendRPCRequest(msg);
}
+
+ /**
+ * Sends an AddSubMenu RPCRequest to SDL. Responses are captured through callback on IProxyListener.
+ *
+ * @param menuID -Unique ID of the sub menu to add.
+ * @param menuName -Text to show in the menu for this sub menu.
+ * @param position -Position within the items that are are at top level of the in application menu.
+ * @param correlationID -A unique ID that correlates each RPCRequest and RPCResponse
+ * @throws SdlException if an unrecoverable error is encountered
+ */
+ @Deprecated
+ @SuppressWarnings("SameParameterValue")
+ public void addSubMenu(@NonNull Integer menuID, @NonNull String menuName,
+ Integer position, Integer correlationID)
+ throws SdlException {
+
+ addSubMenu(menuID, menuName, position, null, correlationID);
+ }
/**
* Sends an AddSubMenu RPCRequest to SDL. Responses are captured through callback on IProxyListener.
@@ -4837,11 +4919,12 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
* @param correlationID -A unique ID that correlates each RPCRequest and RPCResponse
* @throws SdlException if an unrecoverable error is encountered
*/
+ @Deprecated
@SuppressWarnings("unused")
public void addSubMenu(Integer menuID, String menuName,
Integer correlationID) throws SdlException {
- addSubMenu(menuID, menuName, null, correlationID);
+ addSubMenu(menuID, menuName, null, null, correlationID);
}
/*Begin V1 Enhanced helper*/
@@ -5393,14 +5476,14 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
sendRPCRequest(msg);
}
-
+
// Protected registerAppInterface used to ensure only non-ALM applications call
// reqisterAppInterface
protected void registerAppInterfacePrivate(
@NonNull SdlMsgVersion sdlMsgVersion, @NonNull String appName, Vector<TTSChunk> ttsName,
String ngnMediaScreenAppName, Vector<String> vrSynonyms, @NonNull Boolean isMediaApp,
@NonNull Language languageDesired, @NonNull Language hmiDisplayLanguageDesired, Vector<AppHMIType> appType,
- @NonNull String appID, Integer correlationID)
+ @NonNull String appID, TemplateColorScheme dayColorScheme, TemplateColorScheme nightColorScheme, Integer correlationID)
throws SdlException {
String carrierName = null;
if(telephonyManager != null){
@@ -5449,6 +5532,9 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
msg.setAppHMIType(appType);
+ msg.setDayColorScheme(dayColorScheme);
+ msg.setNightColorScheme(nightColorScheme);
+
if (_bAppResumeEnabled)
{
if (_lastHashID != null)
@@ -5939,6 +6025,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
* @throws SdlException if an unrecoverable error is encountered
*/
@SuppressWarnings("unused")
+ @Deprecated
public void subscribevehicledata(boolean gps, boolean speed, boolean rpm, boolean fuelLevel, boolean fuelLevel_State,
boolean instantFuelConsumption, boolean externalTemperature, boolean prndl, boolean tirePressure,
boolean odometer, boolean beltStatus, boolean bodyInformation, boolean deviceStatus,
@@ -5963,7 +6050,58 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
sendRPCRequest(msg);
}
-
+
+
+ /**
+ * Subscribes for specific published data items. The data will be only sent if it has changed.
+ * Responses are captured through callback on IProxyListener.
+ *
+ * @param gps -Subscribes to GPS data.
+ * @param speed -Subscribes to vehicle speed data in kilometers per hour.
+ * @param rpm -Subscribes to number of revolutions per minute of the engine.
+ * @param fuelLevel -Subscribes to fuel level in the tank (percentage).
+ * @param fuelLevel_State -Subscribes to fuel level state.
+ * @param instantFuelConsumption -Subscribes to instantaneous fuel consumption in microlitres.
+ * @param externalTemperature -Subscribes to the external temperature in degrees celsius.
+ * @param prndl -Subscribes to PRNDL data that houses the selected gear.
+ * @param tirePressure -Subscribes to the TireStatus data containing status and pressure of tires.
+ * @param engineOilLife -Subscribes to Engine Oil Life data.
+ * @param odometer -Subscribes to Odometer data in km.
+ * @param beltStatus -Subscribes to status of the seat belts.
+ * @param bodyInformation -Subscribes to body information including power modes.
+ * @param deviceStatus -Subscribes to device status including signal and battery strength.
+ * @param driverBraking -Subscribes to the status of the brake pedal.
+ * @param correlationID -A unique ID that correlates each RPCRequest and RPCResponse.
+ * @throws SdlException if an unrecoverable error is encountered
+ */
+ @SuppressWarnings("unused")
+ public void subscribevehicledata(boolean gps, boolean speed, boolean rpm, boolean fuelLevel, boolean fuelLevel_State,
+ boolean instantFuelConsumption, boolean externalTemperature, boolean prndl, boolean tirePressure,
+ boolean engineOilLife, boolean odometer, boolean beltStatus, boolean bodyInformation, boolean deviceStatus,
+ boolean driverBraking, Integer correlationID) throws SdlException
+ {
+ SubscribeVehicleData msg = new SubscribeVehicleData();
+ msg.setGps(gps);
+ msg.setSpeed(speed);
+ msg.setRpm(rpm);
+ msg.setFuelLevel(fuelLevel);
+ msg.setFuelLevel_State(fuelLevel_State);
+ msg.setInstantFuelConsumption(instantFuelConsumption);
+ msg.setExternalTemperature(externalTemperature);
+ msg.setPrndl(prndl);
+ msg.setTirePressure(tirePressure);
+ msg.setEngineOilLife(engineOilLife);
+ msg.setOdometer(odometer);
+ msg.setBeltStatus(beltStatus);
+ msg.setBodyInformation(bodyInformation);
+ msg.setDeviceStatus(deviceStatus);
+ msg.setDriverBraking(driverBraking);
+ msg.setCorrelationID(correlationID);
+
+ sendRPCRequest(msg);
+ }
+
+
/**
* Unsubscribes for specific published data items.
* Responses are captured through callback on IProxyListener.
@@ -5987,6 +6125,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
*/
@SuppressWarnings("unused")
+ @Deprecated
public void unsubscribevehicledata(boolean gps, boolean speed, boolean rpm, boolean fuelLevel, boolean fuelLevel_State,
boolean instantFuelConsumption, boolean externalTemperature, boolean prndl, boolean tirePressure,
boolean odometer, boolean beltStatus, boolean bodyInformation, boolean deviceStatus,
@@ -6014,6 +6153,57 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
/**
+ * Unsubscribes for specific published data items.
+ * Responses are captured through callback on IProxyListener.
+ *
+ * @param gps -Unsubscribes to GPS data.
+ * @param speed -Unsubscribes to vehicle speed data in kilometers per hour.
+ * @param rpm -Unsubscribes to number of revolutions per minute of the engine.
+ * @param fuelLevel -Unsubscribes to fuel level in the tank (percentage).
+ * @param fuelLevel_State -Unsubscribes to fuel level state.
+ * @param instantFuelConsumption -Unsubscribes to instantaneous fuel consumption in microlitres.
+ * @param externalTemperature -Unsubscribes to the external temperature in degrees celsius.
+ * @param prndl -Unsubscribes to PRNDL data that houses the selected gear.
+ * @param tirePressure -Unsubscribes to the TireStatus data containing status and pressure of tires.
+ * @param engineOilLife -Unsubscribes to Engine Oil Life data.
+ * @param odometer -Unsubscribes to Odometer data in km.
+ * @param beltStatus -Unsubscribes to status of the seat belts.
+ * @param bodyInformation -Unsubscribes to body information including power modes.
+ * @param deviceStatus -Unsubscribes to device status including signal and battery strength.
+ * @param driverBraking -Unsubscribes to the status of the brake pedal.
+ * @param correlationID -A unique ID that correlates each RPCRequest and RPCResponse.
+ * @throws SdlException if an unrecoverable error is encountered
+ */
+
+ @SuppressWarnings("unused")
+ public void unsubscribevehicledata(boolean gps, boolean speed, boolean rpm, boolean fuelLevel, boolean fuelLevel_State,
+ boolean instantFuelConsumption, boolean externalTemperature, boolean prndl, boolean tirePressure,
+ boolean engineOilLife, boolean odometer, boolean beltStatus, boolean bodyInformation, boolean deviceStatus,
+ boolean driverBraking, Integer correlationID) throws SdlException
+ {
+ UnsubscribeVehicleData msg = new UnsubscribeVehicleData();
+ msg.setGps(gps);
+ msg.setSpeed(speed);
+ msg.setRpm(rpm);
+ msg.setFuelLevel(fuelLevel);
+ msg.setFuelLevel_State(fuelLevel_State);
+ msg.setInstantFuelConsumption(instantFuelConsumption);
+ msg.setExternalTemperature(externalTemperature);
+ msg.setPrndl(prndl);
+ msg.setTirePressure(tirePressure);
+ msg.setEngineOilLife(engineOilLife);
+ msg.setOdometer(odometer);
+ msg.setBeltStatus(beltStatus);
+ msg.setBodyInformation(bodyInformation);
+ msg.setDeviceStatus(deviceStatus);
+ msg.setDriverBraking(driverBraking);
+ msg.setCorrelationID(correlationID);
+
+ sendRPCRequest(msg);
+ }
+
+
+ /**
* Performs a Non periodic vehicle data read request.
* Responses are captured through callback on IProxyListener.
*
@@ -6036,6 +6226,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
* @throws SdlException if an unrecoverable error is encountered
*/
@SuppressWarnings("unused")
+ @Deprecated
public void getvehicledata(boolean gps, boolean speed, boolean rpm, boolean fuelLevel, boolean fuelLevel_State,
boolean instantFuelConsumption, boolean externalTemperature, boolean vin, boolean prndl, boolean tirePressure,
boolean odometer, boolean beltStatus, boolean bodyInformation, boolean deviceStatus,
@@ -6064,6 +6255,58 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
/**
+ * Performs a Non periodic vehicle data read request.
+ * Responses are captured through callback on IProxyListener.
+ *
+ * @param gps -Performs an ad-hoc request for GPS data.
+ * @param speed -Performs an ad-hoc request for vehicle speed data in kilometers per hour.
+ * @param rpm -Performs an ad-hoc request for number of revolutions per minute of the engine.
+ * @param fuelLevel -Performs an ad-hoc request for fuel level in the tank (percentage).
+ * @param fuelLevel_State -Performs an ad-hoc request for fuel level state.
+ * @param instantFuelConsumption -Performs an ad-hoc request for instantaneous fuel consumption in microlitres.
+ * @param externalTemperature -Performs an ad-hoc request for the external temperature in degrees celsius.
+ * @param vin -Performs an ad-hoc request for the Vehicle identification number
+ * @param prndl -Performs an ad-hoc request for PRNDL data that houses the selected gear.
+ * @param tirePressure -Performs an ad-hoc request for the TireStatus data containing status and pressure of tires.
+ * @param engineOilLife -Performs an ad-hoc request for Engine Oil Life data.
+ * @param odometer -Performs an ad-hoc request for Odometer data in km.
+ * @param beltStatus -Performs an ad-hoc request for status of the seat belts.
+ * @param bodyInformation -Performs an ad-hoc request for body information including power modes.
+ * @param deviceStatus -Performs an ad-hoc request for device status including signal and battery strength.
+ * @param driverBraking -Performs an ad-hoc request for the status of the brake pedal.
+ * @param correlationID -A unique ID that correlates each RPCRequest and RPCResponse.
+ * @throws SdlException if an unrecoverable error is encountered
+ */
+ @SuppressWarnings("unused")
+ public void getvehicledata(boolean gps, boolean speed, boolean rpm, boolean fuelLevel, boolean fuelLevel_State,
+ boolean instantFuelConsumption, boolean externalTemperature, boolean vin, boolean prndl, boolean tirePressure,
+ boolean engineOilLife, boolean odometer, boolean beltStatus, boolean bodyInformation, boolean deviceStatus,
+ boolean driverBraking, Integer correlationID) throws SdlException
+ {
+ GetVehicleData msg = new GetVehicleData();
+ msg.setGps(gps);
+ msg.setSpeed(speed);
+ msg.setRpm(rpm);
+ msg.setFuelLevel(fuelLevel);
+ msg.setFuelLevel_State(fuelLevel_State);
+ msg.setInstantFuelConsumption(instantFuelConsumption);
+ msg.setExternalTemperature(externalTemperature);
+ msg.setVin(vin);
+ msg.setPrndl(prndl);
+ msg.setTirePressure(tirePressure);
+ msg.setEngineOilLife(engineOilLife);
+ msg.setOdometer(odometer);
+ msg.setBeltStatus(beltStatus);
+ msg.setBodyInformation(bodyInformation);
+ msg.setDeviceStatus(deviceStatus);
+ msg.setDriverBraking(driverBraking);
+ msg.setCorrelationID(correlationID);
+
+ sendRPCRequest(msg);
+ }
+
+
+ /**
* Creates a full screen overlay containing a large block of formatted text that can be scrolled with up to 8 SoftButtons defined.
* Responses are captured through callback on IProxyListener.
*
@@ -6549,15 +6792,15 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
sendRPCRequest(msg);
}
-
+
/**
* Set an alternate display layout. If not sent, default screen for given platform will be shown.
* Responses are captured through callback on IProxyListener.
- *
+ *
* @param displayLayout -Predefined or dynamically created screen layout.
* @param correlationID -A unique ID that correlates each RPCRequest and RPCResponse.
* @throws SdlException if an unrecoverable error is encountered
- */
+ */
@SuppressWarnings("unused")
public void setdisplaylayout(@NonNull String displayLayout, Integer correlationID) throws SdlException
{
@@ -6567,6 +6810,26 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
sendRPCRequest(msg);
}
+ /**
+ * Set an alternate display layout. If not sent, default screen for given platform will be shown.
+ * Responses are captured through callback on IProxyListener.
+ *
+ * @param displayLayout -Predefined or dynamically created screen layout.
+ * @param dayColorScheme a TemplateColorScheme object representing the colors that will be used for day color scheme
+ * @param nightColorScheme a TemplateColorScheme object representing the colors that will be used for night color scheme
+ * @param correlationID -A unique ID that correlates each RPCRequest and RPCResponse.
+ * @throws SdlException if an unrecoverable error is encountered
+ */
+ @SuppressWarnings("unused")
+ public void setdisplaylayout(String displayLayout, TemplateColorScheme dayColorScheme, TemplateColorScheme nightColorScheme, Integer correlationID) throws SdlException
+ {
+ SetDisplayLayout msg = new SetDisplayLayout(displayLayout);
+ msg.setCorrelationID(correlationID);
+ msg.setDayColorScheme(dayColorScheme);
+ msg.setNightColorScheme(nightColorScheme);
+ sendRPCRequest(msg);
+ }
+
@SuppressWarnings("unused")
public boolean isCapabilitySupported(SystemCapabilityType systemCapabilityType) {
return _systemCapabilityManager != null && _systemCapabilityManager.isCapabilitySupported(systemCapabilityType);
@@ -6695,6 +6958,23 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
return sPoliciesURL;
}
+ /**
+ * Tells developer whether or not their app icon has been resumed on core.
+ * @return boolean - true if icon was resumed, false if not
+ * @throws SdlException if proxy is disposed or app is not registered
+ */
+ public boolean getIconResumed() throws SdlException {
+ // Test if proxy has been disposed
+ if (_proxyDisposed) {
+ throw new SdlException("This object has been disposed, it is no long capable of executing methods.", SdlExceptionCause.SDL_PROXY_DISPOSED);
+ }
+
+ // Test SDL availability
+ if (!_appInterfaceRegisterd) {
+ throw new SdlException("SDL is not connected. Unable to determine if app icon was resumed.", SdlExceptionCause.SDL_UNAVAILABLE);
+ }
+ return _iconResumed;
+ }
/**
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBuilder.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBuilder.java
index cbc392f67..42e2fbbc2 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBuilder.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBuilder.java
@@ -7,6 +7,7 @@ import com.smartdevicelink.exception.SdlException;
import com.smartdevicelink.proxy.interfaces.IProxyListenerALM;
import com.smartdevicelink.proxy.rpc.SdlMsgVersion;
import com.smartdevicelink.proxy.rpc.TTSChunk;
+import com.smartdevicelink.proxy.rpc.TemplateColorScheme;
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
import com.smartdevicelink.proxy.rpc.enums.Language;
import com.smartdevicelink.security.SdlSecurityBase;
@@ -41,6 +42,7 @@ public class SdlProxyBuilder {
private boolean preRegister;
private String sAppResumeHash;
private List<Class<? extends SdlSecurityBase>> sdlSecList;
+ private TemplateColorScheme dayColorScheme, nightColorScheme;
private SdlProxyBuilder() {
service = null;
@@ -57,7 +59,9 @@ public class SdlProxyBuilder {
preRegister = false;
sAppResumeHash = null;
sdlSecList = null;
- }
+ dayColorScheme = null;
+ nightColorScheme = null;
+}
public static class Builder {
SdlProxyBuilder sdlProxyBuilder;
@@ -159,6 +163,15 @@ public class SdlProxyBuilder {
sdlProxyBuilder.sdlSecList = val;
return this;
}
+ public Builder setDayColorScheme(TemplateColorScheme val) {
+ sdlProxyBuilder.dayColorScheme = val;
+ return this;
+ }
+
+ public Builder setNightColorScheme(TemplateColorScheme val) {
+ sdlProxyBuilder.nightColorScheme = val;
+ return this;
+ }
public SdlProxyALM build() throws SdlException {
SdlProxyALM proxy = new SdlProxyALM(sdlProxyBuilder.service, sdlProxyBuilder.listener,
@@ -166,7 +179,8 @@ public class SdlProxyBuilder {
sdlProxyBuilder.ttsChunks, sdlProxyBuilder.sShortAppName, sdlProxyBuilder.vrSynonyms,
sdlProxyBuilder.isMediaApp, sdlProxyBuilder.sdlMessageVersion, sdlProxyBuilder.lang,
sdlProxyBuilder.hmiLang, sdlProxyBuilder.vrAppHMITypes, sdlProxyBuilder.appId,
- sdlProxyBuilder.autoActivateID, sdlProxyBuilder.callbackToUIThread, sdlProxyBuilder.preRegister,
+ sdlProxyBuilder.autoActivateID, sdlProxyBuilder.dayColorScheme, sdlProxyBuilder.nightColorScheme,
+ sdlProxyBuilder.callbackToUIThread, sdlProxyBuilder.preRegister,
sdlProxyBuilder.sAppResumeHash, sdlProxyBuilder.mTransport);
proxy.setSdlSecurityClassList(sdlProxyBuilder.sdlSecList);
return proxy;
@@ -174,3 +188,5 @@ public class SdlProxyBuilder {
}
}
+
+
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java
index 618819f20..b7486785f 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java
@@ -35,6 +35,7 @@ import com.smartdevicelink.proxy.rpc.OnKeyboardInput;
import com.smartdevicelink.proxy.rpc.OnLanguageChange;
import com.smartdevicelink.proxy.rpc.OnLockScreenStatus;
import com.smartdevicelink.proxy.rpc.OnPermissionsChange;
+import com.smartdevicelink.proxy.rpc.OnRCStatus;
import com.smartdevicelink.proxy.rpc.OnStreamRPC;
import com.smartdevicelink.proxy.rpc.OnSystemRequest;
import com.smartdevicelink.proxy.rpc.OnTBTClientState;
@@ -353,4 +354,6 @@ public interface IProxyListenerBase {
public void onOnInteriorVehicleData(OnInteriorVehicleData notification);
public void onSendHapticDataResponse(SendHapticDataResponse response);
+
+ public void onOnRCStatus(OnRCStatus notification);
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AddSubMenu.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AddSubMenu.java
index b61a28772..b4bd19473 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AddSubMenu.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AddSubMenu.java
@@ -50,6 +50,14 @@ import java.util.Hashtable;
* <td>maxlength:500</td>
* <td>SmartDeviceLink 1.0</td>
* </tr>
+ * <tr>
+ * <td>menuIcon</td>
+ * <td>Image</td>
+ * <td>Image to be be shown along with the submenu item</td>
+ * <td>N</td>
+ * <td></td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
* </table>
* <b>Response</b>
* <p>Indicates that the corresponding request either failed or succeeded. If the response returns with a SUCCESS result code, this means the SubMenu was added to the Command Menu successfully</p>
@@ -66,6 +74,7 @@ public class AddSubMenu extends RPCRequest {
public static final String KEY_POSITION = "position";
public static final String KEY_MENU_NAME = "menuName";
public static final String KEY_MENU_ID = "menuID";
+ public static final String KEY_MENU_ICON = "menuIcon";
/**
* Constructs a new AddSubMenu object
@@ -166,4 +175,21 @@ public class AddSubMenu extends RPCRequest {
public void setMenuName( @NonNull String menuName ) {
setParameters(KEY_MENU_NAME, menuName);
}
+ /**
+ * Returns Image to be be shown along with the submenu item
+ *
+ * @return Image - the submenu icon
+ */
+ public Image getMenuIcon() {
+ return (Image) getObject(Image.class, KEY_MENU_ICON);
+ }
+ /**
+ * Sets image to be be shown along with the submenu item
+ *
+ * @param menuIcon
+ * Image to be be shown along with the submenu item
+ */
+ public void setMenuIcon(Image menuIcon) {
+ setParameters(KEY_MENU_ICON, menuIcon);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DisplayCapabilities.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DisplayCapabilities.java
index 12bf0ffd8..2a1dc41a0 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DisplayCapabilities.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DisplayCapabilities.java
@@ -11,6 +11,9 @@ import com.smartdevicelink.util.DebugTool;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
+
+import static com.smartdevicelink.proxy.constants.Names.displayType;
+
/**
* Contains information about the display for the SDL system to which the application is currently connected.
* <p><b> Parameter List</b></p>
@@ -22,6 +25,7 @@ import java.util.List;
* <th>SmartDeviceLink Ver. Available</th>
* </tr>
* <tr>
+ * @Deprecated
* <td>displayType</td>
* <td>DisplayType</td>
* <td>The type of display
@@ -29,6 +33,13 @@ import java.util.List;
* <td>SmartDeviceLink 1.0</td>
* </tr>
* <tr>
+ * <td>displayName</td>
+ * <td>String</td>
+ * <td>The name of the display
+ * </td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ * <tr>
* <td>textField</td>
* <td>TextField[]</td>
* <td>An array of TextField structures, each of which describes a field in the HMI which the application can write to using operations such as <i>{@linkplain Show}</i>, <i>{@linkplain SetMediaClockTimer}</i>, etc.
@@ -36,13 +47,13 @@ import java.util.List;
* </td>
* <td>SmartDeviceLink 1.0</td>
* </tr>
- * <tr>
+ * <tr>
* <td>mediaClockFormats</td>
* <td>MediaClockFormat[]</td>
* <td>An array of MediaClockFormat elements, defining the valid string formats used in specifying the contents of the media clock field</td>
* <td>SmartDeviceLink 1.0</td>
* </tr>
- * <tr>
+ * <tr>
* <td>graphicSupported</td>
* <td>Boolean</td>
* <td>The display's persistent screen supports referencing a static or dynamic image.</td>
@@ -58,6 +69,7 @@ import java.util.List;
*/
public class DisplayCapabilities extends RPCStruct {
public static final String KEY_DISPLAY_TYPE = "displayType";
+ public static final String KEY_DISPLAY_NAME = "displayName";
public static final String KEY_MEDIA_CLOCK_FORMATS = "mediaClockFormats";
public static final String KEY_TEXT_FIELDS = "textFields";
public static final String KEY_IMAGE_FIELDS = "imageFields";
@@ -83,6 +95,7 @@ public class DisplayCapabilities extends RPCStruct {
* @param mediaClockFormats the List of MediaClockFormat
* @param graphicSupported
*/
+ @Deprecated
public DisplayCapabilities(@NonNull DisplayType displayType, @NonNull List<TextField> textFields, @NonNull List<MediaClockFormat> mediaClockFormats, @NonNull Boolean graphicSupported) {
this();
setDisplayType(displayType);
@@ -91,19 +104,48 @@ public class DisplayCapabilities extends RPCStruct {
setGraphicSupported(graphicSupported);
}
/**
+ * Constructs a newly allocated DisplayCapabilities object
+ * @param displayName the display name (String)
+ * @param textFields the List of textFields
+ * @param mediaClockFormats the List of MediaClockFormat
+ * @param graphicSupported
+ */
+ public DisplayCapabilities(String displayName, @NonNull List<TextField> textFields, @NonNull List<MediaClockFormat> mediaClockFormats, @NonNull Boolean graphicSupported) {
+ this();
+ setDisplayName(displayName);
+ setTextFields(textFields);
+ setMediaClockFormats(mediaClockFormats);
+ setGraphicSupported(graphicSupported);
+ }
+ /**
* Get the type of display
* @return the type of display
- */
+ */
+ @Deprecated
public DisplayType getDisplayType() {
return (DisplayType) getObject(DisplayType.class, KEY_DISPLAY_TYPE);
}
/**
* Set the type of display
* @param displayType the display type
- */
+ */
+ @Deprecated
public void setDisplayType( @NonNull DisplayType displayType ) {
setValue(KEY_DISPLAY_TYPE, displayType);
}
+ /** Get the name of the display
+ * @return the name of the display
+ */
+ public String getDisplayName() {
+ return getString(KEY_DISPLAY_NAME);
+ }
+ /**
+ * Set the name of the display
+ * @param displayName the name of the display
+ */
+ public void setDisplayName( String displayName ) {
+ setValue(KEY_DISPLAY_NAME, displayName);
+ }
/**
*Get an array of TextField structures, each of which describes a field in the HMI which the application can write to using operations such as <i>{@linkplain Show}</i>, <i>{@linkplain SetMediaClockTimer}</i>, etc.
* This array of TextField structures identify all the text fields to which the application can write on the current display (identified by DisplayType ).
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/FuelRange.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/FuelRange.java
new file mode 100644
index 000000000..01027aa8d
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/FuelRange.java
@@ -0,0 +1,66 @@
+package com.smartdevicelink.proxy.rpc;
+
+import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.FuelType;
+import com.smartdevicelink.util.SdlDataTypeConverter;
+
+import java.util.Hashtable;
+
+public class FuelRange extends RPCStruct{
+ public static final String KEY_TYPE = "type";
+ public static final String KEY_RANGE = "range";
+
+ /**
+ * Constructs a new FuelRange object
+ */
+ public FuelRange() { }
+
+ /**
+ * <p>Constructs a new FuelRange object indicated by the Hashtable parameter
+ * </p>
+ *
+ * @param hash
+ * The Hashtable to use
+ */
+ public FuelRange(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Sets the type portion of the FuelRange class
+ *
+ * @param fuelType
+ */
+ public void setType(FuelType fuelType) {
+ setValue(KEY_TYPE, fuelType);
+ }
+
+ /**
+ * Gets the type portion of the FuelRange class
+ *
+ * @return FuelType.
+ */
+ public FuelType getType() {
+ return (FuelType) getObject(FuelType.class, KEY_TYPE);
+ }
+
+ /**
+ * Gets the range portion of the FuelRange class
+ *
+ * @return Float - The estimate range in KM the vehicle can travel based on fuel level and consumption.
+ */
+ public Float getRange() {
+ Object object = getValue(KEY_RANGE);
+ return SdlDataTypeConverter.objectToFloat(object);
+ }
+
+ /**
+ * Sets the range portion of the FuelRange class
+ *
+ * @param range
+ * The estimate range in KM the vehicle can travel based on fuel level and consumption.
+ */
+ public void setRange(Float range) {
+ setValue(KEY_RANGE, range);
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java
index e29f01be0..8828831cc 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java
@@ -171,6 +171,14 @@ import static com.smartdevicelink.proxy.rpc.CreateInteractionChoiceSet.KEY_CHOIC
* <td>SmartDeviceLink 2.0</td>
* </tr>
* <tr>
+ * <td>engineOilLife</td>
+ * <td>Boolean</td>
+ * <td>The estimated percentage of remaining oil life of the engine</td>
+ * <td>N</td>
+ * <td>Subscribable</td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ * <tr>
* <td>accPedalPosition</td>
* <td>Boolean</td>
* <td>Accelerator pedal position (percentage depressed)</td>
@@ -186,6 +194,14 @@ import static com.smartdevicelink.proxy.rpc.CreateInteractionChoiceSet.KEY_CHOIC
* <td>Subscribable</td>
* <td>SmartDeviceLink 2.0</td>
* </tr>
+ * <tr>
+ * <td>turnSignal</td>
+ * <td>Boolean</td>
+ * <td>@see TurnSignal</td>
+ * <td>N</td>
+ * <td>Subscribable</td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
* </table>
*
*
@@ -218,6 +234,7 @@ public class GetVehicleData extends RPCRequest {
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
public static final String KEY_ENGINE_TORQUE = "engineTorque";
+ public static final String KEY_ENGINE_OIL_LIFE = "engineOilLife";
public static final String KEY_ODOMETER = "odometer";
public static final String KEY_GPS = "gps";
public static final String KEY_FUEL_LEVEL_STATE = "fuelLevel_State";
@@ -235,6 +252,10 @@ public class GetVehicleData extends RPCRequest {
public static final String KEY_EMERGENCY_EVENT = "emergencyEvent";
public static final String KEY_CLUSTER_MODE_STATUS = "clusterModeStatus";
public static final String KEY_MY_KEY = "myKey";
+ public static final String KEY_FUEL_RANGE = "fuelRange";
+ public static final String KEY_TURN_SIGNAL = "turnSignal";
+ public static final String KEY_ELECTRONIC_PARK_BRAKE_STATUS = "electronicParkBrakeStatus";
+
/**
* Constructs a new GetVehicleData object
*/
@@ -373,6 +394,12 @@ public class GetVehicleData extends RPCRequest {
public Boolean getEngineTorque() {
return getBoolean(KEY_ENGINE_TORQUE);
}
+ public void setEngineOilLife(Boolean engineOilLife) {
+ setParameters(KEY_ENGINE_OIL_LIFE, engineOilLife);
+ }
+ public Boolean getEngineOilLife() {
+ return getBoolean(KEY_ENGINE_OIL_LIFE);
+ }
public void setAccPedalPosition(Boolean accPedalPosition) {
setParameters(KEY_ACC_PEDAL_POSITION, accPedalPosition);
}
@@ -417,5 +444,52 @@ public class GetVehicleData extends RPCRequest {
}
public Boolean getMyKey() {
return getBoolean(KEY_MY_KEY);
- }
+ }
+
+ /**
+ * Sets a boolean value. If true, gets fuelRange data
+ * @param fuelRange
+ * a boolean value
+ */
+ public void setFuelRange(Boolean fuelRange) {
+ setParameters(KEY_FUEL_RANGE, fuelRange);
+ }
+
+ /**
+ * Gets a boolean value.
+ *
+ * @return Boolean -a Boolean value.
+ *
+ */
+ public Boolean getFuelRange() {
+ return getBoolean(KEY_FUEL_RANGE);
+ }
+
+ /**
+ * Sets a boolean value. If true, subscribes turnSignal data
+ * @param turnSignal a boolean value
+ */
+ public void setTurnSignal(Boolean turnSignal) { setParameters(KEY_TURN_SIGNAL, turnSignal); }
+
+ /**
+ * Gets a boolean value. If true, means the turnSignal data has been subscribed.
+ * @return a Boolean value.
+ */
+ public Boolean getTurnSignal() { return getBoolean(KEY_TURN_SIGNAL); }
+
+ /**
+ * Sets a boolean value. If true, subscribes electronicParkBrakeStatus data
+ * @param electronicParkBrakeStatus a boolean value
+ */
+ public void setElectronicParkBrakeStatus(Boolean electronicParkBrakeStatus){
+ setParameters(KEY_ELECTRONIC_PARK_BRAKE_STATUS, electronicParkBrakeStatus);
+ }
+
+ /**
+ * Gets a boolean value. If true, means the electronicParkBrakeStatus data has been subscribed.
+ * @return a Boolean value.
+ */
+ public Boolean getElectronicParkBrakeStatus(){
+ return getBoolean(KEY_ELECTRONIC_PARK_BRAKE_STATUS);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java
index 2a1eb0a2d..91eefc13c 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java
@@ -6,13 +6,16 @@ import android.support.annotation.NonNull;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
import com.smartdevicelink.proxy.rpc.enums.ComponentVolumeStatus;
+import com.smartdevicelink.proxy.rpc.enums.ElectronicParkBrakeStatus;
import com.smartdevicelink.proxy.rpc.enums.PRNDL;
import com.smartdevicelink.proxy.rpc.enums.Result;
+import com.smartdevicelink.proxy.rpc.enums.TurnSignal;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
import com.smartdevicelink.proxy.rpc.enums.WiperStatus;
import com.smartdevicelink.util.SdlDataTypeConverter;
import java.util.Hashtable;
+import java.util.List;
/**
* Get Vehicle Data Response is sent, when GetVehicleData has been called.
@@ -28,6 +31,7 @@ public class GetVehicleDataResponse extends RPCResponse {
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
public static final String KEY_ENGINE_TORQUE = "engineTorque";
+ public static final String KEY_ENGINE_OIL_LIFE = "engineOilLife";
public static final String KEY_ODOMETER = "odometer";
public static final String KEY_GPS = "gps";
public static final String KEY_FUEL_LEVEL_STATE = "fuelLevel_State";
@@ -45,6 +49,9 @@ public class GetVehicleDataResponse extends RPCResponse {
public static final String KEY_EMERGENCY_EVENT = "emergencyEvent";
public static final String KEY_CLUSTER_MODE_STATUS = "clusterModeStatus";
public static final String KEY_MY_KEY = "myKey";
+ public static final String KEY_FUEL_RANGE = "fuelRange";
+ public static final String KEY_TURN_SIGNAL = "turnSignal";
+ public static final String KEY_ELECTRONIC_PARK_BRAKE_STATUS = "electronicParkBrakeStatus";
/**
* Constructs a new GetVehicleDataResponse object
@@ -191,8 +198,15 @@ public class GetVehicleDataResponse extends RPCResponse {
setParameters(KEY_ENGINE_TORQUE, engineTorque);
}
public Double getEngineTorque() {
- Object object = getParameters(KEY_ENGINE_TORQUE);
- return SdlDataTypeConverter.objectToDouble(object);
+ Object object = getParameters(KEY_ENGINE_TORQUE);
+ return SdlDataTypeConverter.objectToDouble(object);
+ }
+ public void setEngineOilLife(Float engineOilLife) {
+ setParameters(KEY_ENGINE_OIL_LIFE, engineOilLife);
+ }
+ public Float getEngineOilLife() {
+ Object object = getParameters(KEY_ENGINE_OIL_LIFE);
+ return SdlDataTypeConverter.objectToFloat(object);
}
public void setAccPedalPosition(Double accPedalPosition) {
@@ -247,5 +261,56 @@ public class GetVehicleDataResponse extends RPCResponse {
@SuppressWarnings("unchecked")
public MyKey getMyKey() {
return (MyKey) getObject(MyKey.class, KEY_MY_KEY);
- }
+ }
+
+ /**
+ * Sets Fuel Range List. Fuel Range - The estimate range in KM the vehicle can travel based on fuel level and consumption.
+ * @param fuelRange
+ */
+ public void setFuelRange(List<FuelRange> fuelRange) {
+ setParameters(KEY_FUEL_RANGE, fuelRange);
+ }
+
+ /**
+ * Gets Fuel Range List
+ * @return List<FuelRange>
+ * Fuel Range - The estimate range in KM the vehicle can travel based on fuel level and consumption.
+ */
+ @SuppressWarnings("unchecked")
+ public List<FuelRange> getFuelRange() {
+ return (List<FuelRange>) getObject(FuelRange.class, KEY_FUEL_RANGE);
+ }
+
+ /**
+ * Sets turnSignal
+ * @param turnSignal
+ */
+ public void setTurnSignal(TurnSignal turnSignal) {
+ setParameters(KEY_TURN_SIGNAL, turnSignal);
+ }
+
+ /**
+ * Gets turnSignal
+ * @return TurnSignal
+ */
+ @SuppressWarnings("unchecked")
+ public TurnSignal getTurnSignal() {
+ return (TurnSignal) getObject(TurnSignal.class, KEY_TURN_SIGNAL);
+ }
+
+ /**
+ * Sets electronicParkBrakeStatus
+ * @param electronicParkBrakeStatus
+ */
+ public void setElectronicParkBrakeStatus(ElectronicParkBrakeStatus electronicParkBrakeStatus){
+ setParameters(KEY_ELECTRONIC_PARK_BRAKE_STATUS, electronicParkBrakeStatus);
+ }
+
+ /**
+ * Gets electronicParkBrakeStatus
+ * @return ElectronicParkBrakeStatus
+ */
+ public ElectronicParkBrakeStatus getElectronicParkBrakeStatus(){
+ return (ElectronicParkBrakeStatus) getObject(ElectronicParkBrakeStatus.class, KEY_ELECTRONIC_PARK_BRAKE_STATUS);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Image.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Image.java
index bab596543..f58664054 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Image.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Image.java
@@ -40,6 +40,7 @@ import java.util.Hashtable;
public class Image extends RPCStruct {
public static final String KEY_VALUE = "value";
public static final String KEY_IMAGE_TYPE = "imageType";
+ public static final String KEY_IS_TEMPLATE = "isTemplate";
/**
* Constructs a newly allocated Image object
@@ -66,7 +67,7 @@ public class Image extends RPCStruct {
}
/**
- * set either the static hex icon value or the binary image file name identifier (sent by PutFile)
+ * Set either the static hex icon value or the binary image file name identifier (sent by PutFile)
* @param value either the static hex icon value or the binary image file name identifier (sent by PutFile)
*/
public void setValue(@NonNull String value) {
@@ -74,7 +75,7 @@ public class Image extends RPCStruct {
}
/**
- * get either the static hex icon value or the binary image file name identifier (sent by PutFile)
+ * Get either the static hex icon value or the binary image file name identifier (sent by PutFile)
* @return either the static hex icon value or the binary image file name identifier (sent by PutFile)
*/
public String getValue() {
@@ -82,7 +83,7 @@ public class Image extends RPCStruct {
}
/**
- * set the image type
+ * Set the image type (static or dynamic image)
* @param imageType whether it is a static or dynamic image
*/
public void setImageType(@NonNull ImageType imageType) {
@@ -90,10 +91,26 @@ public class Image extends RPCStruct {
}
/**
- * get image type
- * @return the image type
+ * Get image type (static or dynamic image)
+ * @return the image type (static or dynamic image)
*/
public ImageType getImageType() {
return (ImageType) getObject(ImageType.class, KEY_IMAGE_TYPE);
}
+
+ /**
+ * Set whether this Image is a template image whose coloring should be decided by the HMI
+ * @param isTemplate boolean that tells whether this Image is a template image
+ */
+ public void setIsTemplate(Boolean isTemplate){
+ setValue(KEY_IS_TEMPLATE, isTemplate);
+ }
+
+ /**
+ * Get whether this Image is a template image whose coloring should be decided by the HMI
+ * @return boolean that tells whether this Image is a template image
+ */
+ public Boolean getIsTemplate(){
+ return getBoolean(KEY_IS_TEMPLATE);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MassageCushionFirmness.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MassageCushionFirmness.java
new file mode 100644
index 000000000..8e87eff7d
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MassageCushionFirmness.java
@@ -0,0 +1,79 @@
+package com.smartdevicelink.proxy.rpc;
+
+import android.support.annotation.NonNull;
+
+import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.MassageCushion;
+
+import java.util.Hashtable;
+
+/**
+ * The intensity or firmness of a cushion.
+ */
+public class MassageCushionFirmness extends RPCStruct {
+ public static final String KEY_CUSHION = "cushion";
+ public static final String KEY_FIRMNESS = "firmness";
+
+ /**
+ * Constructs a new MassageCushionFirmness object
+ */
+ public MassageCushionFirmness() {
+ }
+
+ /**
+ * <p>Constructs a new MassageCushionFirmness object indicated by the Hashtable parameter
+ * </p>
+ *
+ * @param hash The Hashtable to use
+ */
+ public MassageCushionFirmness(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Constructs a newly allocated MassageCushionFirmness object
+ * @param cushion type of MassageCushion for multi-contour massage seat
+ * @param firmness Min: 0 Max: 100
+ */
+ public MassageCushionFirmness(@NonNull MassageCushion cushion, @NonNull Integer firmness) {
+ this();
+ setCushion(cushion);
+ setFirmness(firmness);
+ }
+
+ /**
+ * Sets the cushion portion of the MassageCushionFirmness class
+ *
+ * @param cushion
+ */
+ public void setCushion(@NonNull MassageCushion cushion) {
+ setValue(KEY_CUSHION, cushion);
+ }
+
+ /**
+ * Gets the cushion portion of the MassageCushionFirmness class
+ *
+ * @return MassageCushion.
+ */
+ public MassageCushion getCushion() {
+ return (MassageCushion) getObject(MassageCushion.class, KEY_CUSHION);
+ }
+
+ /**
+ * Sets the firmness portion of the MassageCushionFirmness class
+ *
+ * @param firmness
+ */
+ public void setFirmness(@NonNull Integer firmness) {
+ setValue(KEY_FIRMNESS, firmness);
+ }
+
+ /**
+ * Gets the firmness portion of the MassageCushionFirmness class
+ *
+ * @return Integer
+ */
+ public Integer getFirmness() {
+ return getInteger(KEY_FIRMNESS);
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MassageModeData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MassageModeData.java
new file mode 100644
index 000000000..857d4dc7c
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MassageModeData.java
@@ -0,0 +1,80 @@
+package com.smartdevicelink.proxy.rpc;
+
+import android.support.annotation.NonNull;
+
+import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.MassageMode;
+import com.smartdevicelink.proxy.rpc.enums.MassageZone;
+
+import java.util.Hashtable;
+
+/**
+ * Specify the mode of a massage zone.
+ */
+public class MassageModeData extends RPCStruct {
+ public static final String KEY_MASSAGE_ZONE = "massageZone";
+ public static final String KEY_MASSAGE_MODE = "massageMode";
+
+ /**
+ * Constructs a new MassageModeData object
+ */
+ public MassageModeData() {
+ }
+
+ /**
+ * <p>Constructs a new MassageModeData object indicated by the Hashtable parameter
+ * </p>
+ *
+ * @param hash The Hashtable to use
+ */
+ public MassageModeData(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Constructs a newly allocated MassageModeData object
+ * @param massageZone type of MassageZone for multi-contour massage seat
+ * @param massageMode mode of massage zone.
+ */
+ public MassageModeData(@NonNull MassageZone massageZone, @NonNull MassageMode massageMode) {
+ this();
+ setMassageZone(massageZone);
+ setMassageMode(massageMode);
+ }
+
+ /**
+ * Sets the massageZone portion of the MassageModeData class
+ *
+ * @param massageZone
+ */
+ public void setMassageZone(@NonNull MassageZone massageZone) {
+ setValue(KEY_MASSAGE_ZONE, massageZone);
+ }
+
+ /**
+ * Gets the massageZone portion of the MassageModeData class
+ *
+ * @return MassageZone.
+ */
+ public MassageZone getMassageZone() {
+ return (MassageZone) getObject(MassageZone.class, KEY_MASSAGE_ZONE);
+ }
+
+ /**
+ * Gets the massageMode portion of the MassageModeData class
+ *
+ * @return MassageMode
+ */
+ public MassageMode getMassageMode() {
+ return (MassageMode) getObject(MassageMode.class, KEY_MASSAGE_MODE);
+ }
+
+ /**
+ * Sets the massageMode portion of the MassageModeData class
+ *
+ * @param massageMode
+ */
+ public void setMassageMode(@NonNull MassageMode massageMode) {
+ setValue(KEY_MASSAGE_MODE, massageMode);
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ModuleData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ModuleData.java
index 9ae3f7fd3..b21c60be2 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ModuleData.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ModuleData.java
@@ -4,81 +4,98 @@ import android.support.annotation.NonNull;
import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.ModuleType;
-import com.smartdevicelink.proxy.rpc.enums.Result;
import java.util.Hashtable;
-public class ModuleData extends RPCStruct{
- public static final String KEY_MODULE_TYPE= "moduleType";
- public static final String KEY_RADIO_CONTROL_DATA = "radioControlData";
- public static final String KEY_CLIMATE_CONTROL_DATA = "climateControlData";
+public class ModuleData extends RPCStruct {
+ public static final String KEY_MODULE_TYPE = "moduleType";
+ public static final String KEY_RADIO_CONTROL_DATA = "radioControlData";
+ public static final String KEY_CLIMATE_CONTROL_DATA = "climateControlData";
+ public static final String KEY_SEAT_CONTROL_DATA = "seatControlData";
- public ModuleData() {
- }
+ public ModuleData() {
+ }
- public ModuleData(Hashtable<String, Object> hash) {
- super(hash);
- }
+ public ModuleData(Hashtable<String, Object> hash) {
+ super(hash);
+ }
- public ModuleData(@NonNull ModuleType moduleType) {
- this();
- setModuleType(moduleType);
- }
+ public ModuleData(@NonNull ModuleType moduleType) {
+ this();
+ setModuleType(moduleType);
+ }
- /**
- * Sets the moduleType portion of the ModuleData class
- *
- * @param moduleType
- * The moduleType indicates which type of data should be changed and identifies which data object exists in this struct.
- * For example, if the moduleType is CLIMATE then a "climateControlData" should exist
- */
- public void setModuleType(@NonNull ModuleType moduleType) {
- setValue(KEY_MODULE_TYPE, moduleType);
- }
+ /**
+ * Sets the moduleType portion of the ModuleData class
+ *
+ * @param moduleType The moduleType indicates which type of data should be changed and identifies which data object exists in this struct.
+ * For example, if the moduleType is CLIMATE then a "climateControlData" should exist
+ */
+ public void setModuleType(@NonNull ModuleType moduleType) {
+ setValue(KEY_MODULE_TYPE, moduleType);
+ }
- /**
- * Gets the moduleType portion of the ModuleData class
- *
- * @return ModuleType - The moduleType indicates which type of data should be changed and identifies which data object exists in this struct.
- * For example, if the moduleType is CLIMATE then a "climateControlData" should exist.
- */
- public ModuleType getModuleType() {
- return (ModuleType) getObject(ModuleType.class, KEY_MODULE_TYPE);
- }
+ /**
+ * Gets the moduleType portion of the ModuleData class
+ *
+ * @return ModuleType - The moduleType indicates which type of data should be changed and identifies which data object exists in this struct.
+ * For example, if the moduleType is CLIMATE then a "climateControlData" should exist.
+ */
+ public ModuleType getModuleType() {
+ return (ModuleType) getObject(ModuleType.class, KEY_MODULE_TYPE);
+ }
- /**
- * Sets the radioControlData portion of the ModuleData class
- *
- * @param radioControlData
- */
- public void setRadioControlData(RadioControlData radioControlData) {
- setValue(KEY_RADIO_CONTROL_DATA, radioControlData);
- }
+ /**
+ * Sets the radioControlData portion of the ModuleData class
+ *
+ * @param radioControlData
+ */
+ public void setRadioControlData(RadioControlData radioControlData) {
+ setValue(KEY_RADIO_CONTROL_DATA, radioControlData);
+ }
- /**
- * Gets the radioControlData portion of the ModuleData class
- *
- * @return RadioControlData
- */
- public RadioControlData getRadioControlData() {
- return (RadioControlData) getObject(RadioControlData.class, KEY_RADIO_CONTROL_DATA);
- }
+ /**
+ * Gets the radioControlData portion of the ModuleData class
+ *
+ * @return RadioControlData
+ */
+ public RadioControlData getRadioControlData() {
+ return (RadioControlData) getObject(RadioControlData.class, KEY_RADIO_CONTROL_DATA);
+ }
- /**
- * Sets the climateControlData portion of the ModuleData class
- *
- * @param climateControlData
- */
- public void setClimateControlData(ClimateControlData climateControlData) {
- setValue(KEY_CLIMATE_CONTROL_DATA, climateControlData);
- }
+ /**
+ * Sets the climateControlData portion of the ModuleData class
+ *
+ * @param climateControlData
+ */
+ public void setClimateControlData(ClimateControlData climateControlData) {
+ setValue(KEY_CLIMATE_CONTROL_DATA, climateControlData);
+ }
- /**
- * Gets the climateControlData portion of the ModuleData class
- *
- * @return ClimateControlData
- */
- public ClimateControlData getClimateControlData() {
- return (ClimateControlData) getObject(ClimateControlData.class, KEY_CLIMATE_CONTROL_DATA);
- }
+ /**
+ * Gets the climateControlData portion of the ModuleData class
+ *
+ * @return ClimateControlData
+ */
+ public ClimateControlData getClimateControlData() {
+ return (ClimateControlData) getObject(ClimateControlData.class, KEY_CLIMATE_CONTROL_DATA);
+ }
+
+ /**
+ * Sets the seatControlData portion of the ModuleData class
+ *
+ * @param seatControlData
+ */
+ public void setSeatControlData(SeatControlData seatControlData) {
+ setValue(KEY_SEAT_CONTROL_DATA, seatControlData);
+ }
+
+ /**
+ * Gets the seatControlData portion of the ModuleData class
+ *
+ * @return SeatControlData
+ */
+ public SeatControlData getSeatControlData() {
+ return (SeatControlData) getObject(SeatControlData.class, KEY_SEAT_CONTROL_DATA);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnHMIStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnHMIStatus.java
index 505549014..a7ebc26ae 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnHMIStatus.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnHMIStatus.java
@@ -7,6 +7,7 @@ import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.AudioStreamingState;
import com.smartdevicelink.proxy.rpc.enums.HMILevel;
import com.smartdevicelink.proxy.rpc.enums.SystemContext;
+import com.smartdevicelink.proxy.rpc.enums.VideoStreamingState;
import java.util.Hashtable;
@@ -53,6 +54,12 @@ import java.util.Hashtable;
* <td>SmartDeviceLink 1.0</td>
* </tr>
* <tr>
+ * <td>videoStreamingState</td>
+ * <td>{@linkplain VideoStreamingState}</td>
+ * <td>If it is NOT_STREAMABLE, the app must stop streaming video to SDL Core(stop service).</td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ * <tr>
* <td>systemContext</td>
* <td>{@linkplain SystemContext}</td>
* <td>Indicates that a user-initiated interaction is in-progress
@@ -65,7 +72,8 @@ import java.util.Hashtable;
* @see RegisterAppInterface
*/
public class OnHMIStatus extends RPCNotification {
- public static final String KEY_AUDIO_STREAMING_STATE = "audioStreamingState";
+ public static final String KEY_AUDIO_STREAMING_STATE = "audioStreamingState";
+ public static final String KEY_VIDEO_STREAMING_STATE = "videoStreamingState";
public static final String KEY_SYSTEM_CONTEXT = "systemContext";
public static final String KEY_HMI_LEVEL = "hmiLevel";
@@ -113,7 +121,7 @@ public class OnHMIStatus extends RPCNotification {
/**
* <p>Get current state of audio streaming for the application</p>
* @return {@linkplain AudioStreamingState} Returns current state of audio streaming for the application
- */
+ */
public AudioStreamingState getAudioStreamingState() {
return (AudioStreamingState) getObject(AudioStreamingState.class, KEY_AUDIO_STREAMING_STATE);
}
@@ -121,10 +129,28 @@ public class OnHMIStatus extends RPCNotification {
* <p>Set the audio streaming state</p>
* @param audioStreamingState the state of audio streaming of the application
*/
- public void setAudioStreamingState( @NonNull AudioStreamingState audioStreamingState ) {
+ public void setAudioStreamingState(@NonNull AudioStreamingState audioStreamingState ) {
setParameters(KEY_AUDIO_STREAMING_STATE, audioStreamingState);
}
/**
+ * <p>Get current state of video streaming for the application</p>
+ * @return {@linkplain VideoStreamingState} Returns current state of video streaming for the application
+ */
+ public VideoStreamingState getVideoStreamingState() {
+ VideoStreamingState videoStreamingState = (VideoStreamingState) getObject(VideoStreamingState.class, KEY_VIDEO_STREAMING_STATE);
+ if (videoStreamingState == null){
+ videoStreamingState = VideoStreamingState.STREAMABLE;
+ }
+ return videoStreamingState;
+ }
+ /**
+ * <p>Set the video streaming state</p>
+ * @param videoStreamingState the state of video streaming of the application
+ */
+ public void setVideoStreamingState( VideoStreamingState videoStreamingState ) {
+ setParameters(KEY_VIDEO_STREAMING_STATE, videoStreamingState);
+ }
+ /**
* <p>Get the System Context</p>
* @return {@linkplain SystemContext} whether a user-initiated interaction is in-progress (VRSESSION or MENU), or not (MAIN).
*/
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnRCStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnRCStatus.java
new file mode 100644
index 000000000..8be1e0007
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnRCStatus.java
@@ -0,0 +1,69 @@
+package com.smartdevicelink.proxy.rpc;
+
+import android.support.annotation.NonNull;
+
+import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.RPCNotification;
+
+import java.util.Hashtable;
+import java.util.List;
+
+public class OnRCStatus extends RPCNotification {
+ public static final String KEY_ALLOCATED_MODULES = "allocatedModules";
+ public static final String KEY_FREE_MODULES = "freeModules";
+ public static final String KEY_ALLOWED = "allowed";
+
+ /**
+ * Constructs a new OnRCStatus object
+ */
+ public OnRCStatus() {
+ super(FunctionID.ON_RC_STATUS.toString());
+ }
+
+ /**
+ * Constructs a new OnRCStatus object indicated by the Hashtable
+ * parameter
+ * @param hash The Hashtable to use
+ */
+ public OnRCStatus(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Constructs a newly allocated OnRCStatus object
+ *
+ * @param allocatedModules Contains a list (zero or more) of module types that are allocated to the application.
+ * @param freeModules Contains a list (zero or more) of module types that are free to access for the application.
+ */
+ public OnRCStatus(@NonNull List<ModuleData> allocatedModules, @NonNull List<ModuleData> freeModules) {
+ this();
+ setAllocatedModules(allocatedModules);
+ setFreeModules(freeModules);
+ }
+
+ @SuppressWarnings("unchecked")
+ public List<ModuleData> getAllocatedModules() {
+ return (List<ModuleData>) getObject(ModuleData.class, KEY_ALLOCATED_MODULES);
+ }
+
+ public void setAllocatedModules(@NonNull List<ModuleData> allocatedModules) {
+ setParameters(KEY_ALLOCATED_MODULES, allocatedModules);
+ }
+
+ @SuppressWarnings("unchecked")
+ public List<ModuleData> getFreeModules() {
+ return (List<ModuleData>) getObject(ModuleData.class, KEY_FREE_MODULES);
+ }
+
+ public void setFreeModules(@NonNull List<ModuleData> freeModules) {
+ setParameters(KEY_FREE_MODULES, freeModules);
+ }
+
+ public Boolean getAllowed() {
+ return getBoolean(KEY_ALLOWED);
+ }
+
+ public void setAllowed(Boolean allowed) {
+ setParameters(KEY_ALLOWED, allowed);
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSystemRequest.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSystemRequest.java
index a178b581f..1009559cb 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSystemRequest.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSystemRequest.java
@@ -37,6 +37,15 @@ import java.util.List;
* <td></td>
* <td>SmartDeviceLink 2.3.2 </td>
* </tr>
+ * </tr>
+ * <tr>
+ * <td>requestSubType</td>
+ * <td>String</td>
+ * <td>This parameter is filled for supporting OEM proprietary data exchanges.</td>
+ * <td>N</td>
+ * <td>Max Length: 255</td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
* <tr>
* <td>url</td>
* <td>Array of Strings</td>
@@ -89,6 +98,7 @@ public class OnSystemRequest extends RPCNotification {
public static final String KEY_BODY = "body";
public static final String KEY_FILE_TYPE = "fileType";
public static final String KEY_REQUEST_TYPE = "requestType";
+ public static final String KEY_REQUEST_SUB_TYPE = "requestSubType";
public static final String KEY_DATA = "data";
public static final String KEY_OFFSET = "offset";
public static final String KEY_LENGTH = "length";
@@ -225,7 +235,7 @@ public class OnSystemRequest extends RPCNotification {
public Headers getHeader() {
return this.headers;
}
-
+
public RequestType getRequestType() {
return (RequestType) getObject(RequestType.class, KEY_REQUEST_TYPE);
}
@@ -234,6 +244,14 @@ public class OnSystemRequest extends RPCNotification {
setParameters(KEY_REQUEST_TYPE, requestType);
}
+ public String getRequestSubType() {
+ return getString(KEY_REQUEST_SUB_TYPE);
+ }
+
+ public void setRequestSubType(String requestSubType) {
+ setParameters(KEY_REQUEST_SUB_TYPE, requestSubType);
+ }
+
public String getUrl() {
Object o = getParameters(KEY_URL);
if (o == null)
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java
index 32dba7500..550c4f626 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java
@@ -1,11 +1,14 @@
package com.smartdevicelink.proxy.rpc;
import java.util.Hashtable;
+import java.util.List;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.ComponentVolumeStatus;
+import com.smartdevicelink.proxy.rpc.enums.ElectronicParkBrakeStatus;
import com.smartdevicelink.proxy.rpc.enums.PRNDL;
+import com.smartdevicelink.proxy.rpc.enums.TurnSignal;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
import com.smartdevicelink.proxy.rpc.enums.WiperStatus;
import com.smartdevicelink.util.DebugTool;
@@ -222,6 +225,14 @@ import static com.smartdevicelink.proxy.constants.Names.timeout;
* <td>SmartDeviceLink 2.0</td>
* </tr>
* <tr>
+ * <td>engineOilLife</td>
+ * <td>Float</td>
+ * <td>The estimated percentage of remaining oil life of the engine</td>
+ * <td>N</td>
+ * <td>minvalue:0; maxvalue:100</td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ * <tr>
* <td>accPedalPosition</td>
* <td>Float</td>
* <td>Accelerator pedal position (percentage depressed)</td>
@@ -255,6 +266,7 @@ public class OnVehicleData extends RPCNotification {
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
public static final String KEY_ENGINE_TORQUE = "engineTorque";
+ public static final String KEY_ENGINE_OIL_LIFE = "engineOilLife";
public static final String KEY_ODOMETER = "odometer";
public static final String KEY_GPS = "gps";
public static final String KEY_FUEL_LEVEL_STATE = "fuelLevel_State";
@@ -272,6 +284,9 @@ public class OnVehicleData extends RPCNotification {
public static final String KEY_EMERGENCY_EVENT = "emergencyEvent";
public static final String KEY_CLUSTER_MODE_STATUS = "clusterModeStatus";
public static final String KEY_MY_KEY = "myKey";
+ public static final String KEY_FUEL_RANGE = "fuelRange";
+ public static final String KEY_TURN_SIGNAL = "turnSignal";
+ public static final String KEY_ELECTRONIC_PARK_BRAKE_STATUS = "electronicParkBrakeStatus";
public OnVehicleData() {
super(FunctionID.ON_VEHICLE_DATA.toString());
@@ -403,8 +418,15 @@ public class OnVehicleData extends RPCNotification {
setParameters(KEY_ENGINE_TORQUE, engineTorque);
}
public Double getEngineTorque() {
- Object object = getParameters(KEY_ENGINE_TORQUE);
- return SdlDataTypeConverter.objectToDouble(object);
+ Object object = getParameters(KEY_ENGINE_TORQUE);
+ return SdlDataTypeConverter.objectToDouble(object);
+ }
+ public void setEngineOilLife(Float engineOilLife) {
+ setParameters(KEY_ENGINE_OIL_LIFE, engineOilLife);
+ }
+ public Float getEngineOilLife() {
+ Object object = getParameters(KEY_ENGINE_OIL_LIFE);
+ return SdlDataTypeConverter.objectToFloat(object);
}
public void setAccPedalPosition(Double accPedalPosition) {
setParameters(KEY_ACC_PEDAL_POSITION, accPedalPosition);
@@ -454,5 +476,56 @@ public class OnVehicleData extends RPCNotification {
@SuppressWarnings("unchecked")
public MyKey getMyKey() {
return (MyKey) getObject(MyKey.class, KEY_MY_KEY);
- }
+ }
+
+ /**
+ * Sets Fuel Range List. Fuel Range - The estimate range in KM the vehicle can travel based on fuel level and consumption.
+ * @param fuelRange
+ */
+ public void setFuelRange(List<FuelRange> fuelRange) {
+ setParameters(KEY_FUEL_RANGE, fuelRange);
+ }
+
+ /**
+ * Gets Fuel Range List.
+ * @return List<FuelRange>
+ * Fuel Range - The estimate range in KM the vehicle can travel based on fuel level and consumption.
+ */
+ @SuppressWarnings("unchecked")
+ public List<FuelRange> getFuelRange() {
+ return (List<FuelRange>) getObject(FuelRange.class, KEY_FUEL_RANGE);
+ }
+
+ /**
+ * Sets turnSignal
+ * @param turnSignal
+ */
+ public void setTurnSignal(TurnSignal turnSignal) {
+ setParameters(KEY_TURN_SIGNAL, turnSignal);
+ }
+
+ /**
+ * Gets turnSignal
+ * @return TurnSignal
+ */
+ @SuppressWarnings("unchecked")
+ public TurnSignal getTurnSignal() {
+ return (TurnSignal) getObject(TurnSignal.class, KEY_TURN_SIGNAL);
+ }
+
+ /**
+ * Sets electronicParkBrakeStatus
+ * @param electronicParkBrakeStatus
+ */
+ public void setElectronicParkBrakeStatus(ElectronicParkBrakeStatus electronicParkBrakeStatus){
+ setParameters(KEY_ELECTRONIC_PARK_BRAKE_STATUS, electronicParkBrakeStatus);
+ }
+
+ /**
+ * Gets electronicParkBrakeStatus
+ * @return ElectronicParkBrakeStatus
+ */
+ public ElectronicParkBrakeStatus getElectronicParkBrakeStatus(){
+ return (ElectronicParkBrakeStatus) getObject(ElectronicParkBrakeStatus.class, KEY_ELECTRONIC_PARK_BRAKE_STATUS);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFile.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFile.java
index 0b13f0a1d..2d9010600 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFile.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFile.java
@@ -9,6 +9,7 @@ import com.smartdevicelink.proxy.rpc.listeners.OnPutFileUpdateListener;
import com.smartdevicelink.proxy.rpc.listeners.OnRPCResponseListener;
import java.util.Hashtable;
+import java.util.zip.CRC32;
/**
* Used to push a binary data onto the SDL module from a mobile device, such as
@@ -73,6 +74,14 @@ import java.util.Hashtable;
* <td>Minvalue=0; Maxvalue=100000000000</td>
* <td>SmartDeviceLink 2.3.2</td>
* </tr>
+ * <tr>
+ * <td>crc</td>
+ * <td>Long</td>
+ * <td>Additional CRC32 checksum to protect data integrity up to 512 Mbits .</td>
+ * <td>N</td>
+ * <td>minvalue="0" maxvalue="4294967295"</td>
+ * <td>SmartDeviceLink 2.3.2</td>
+ * </tr>
* </table>
* <p> <b>Note: </b></p>
* When using PutFiles you may want to check for memory
@@ -119,7 +128,7 @@ public class PutFile extends RPCRequest {
public static final String KEY_SDL_FILE_NAME = "syncFileName";
public static final String KEY_OFFSET = "offset";
public static final String KEY_LENGTH = "length";
-
+ public static final String KEY_CRC = "crc";
/**
* Constructs a new PutFile object
@@ -297,16 +306,61 @@ public class PutFile extends RPCRequest {
return null;
}
+ /**
+ * This takes the file data as an array of bytes and calculates the
+ * CRC32 for it.
+ * @param fileData - the file as a byte array
+ */
+ public void setCRC(byte[] fileData) {
+ if (fileData != null) {
+ CRC32 crc = new CRC32();
+ crc.update(fileData);
+ parameters.put(KEY_CRC, crc.getValue());
+ } else {
+ parameters.remove(KEY_CRC);
+ }
+ }
+
+ /**
+ * This assumes you have created your own CRC32 and are setting it with the file
+ * <STRONG>Please avoid using your own calculations for this, and use the method
+ * included in java.util</STRONG>
+ * @param crc - the CRC32 of the file being set
+ */
+ public void setCRC(Long crc) {
+ if (crc != null) {
+ parameters.put(KEY_CRC, crc);
+ } else {
+ parameters.remove(KEY_CRC);
+ }
+ }
+
+ /**
+ * This returns the CRC, if it has been set, for the file object
+ * @return - a CRC32 Long
+ */
+ public Long getCRC() {
+ final Object o = parameters.get(KEY_CRC);
+ if (o == null){
+ return null;
+ }
+ if (o instanceof Integer) {
+ return ((Integer) o).longValue();
+ }else if(o instanceof Long){
+ return (Long) o;
+ }
+ return null;
+ }
@Override
public final void setOnRPCResponseListener(OnRPCResponseListener listener) {
super.setOnRPCResponseListener(listener);
}
-
+
public void setOnPutFileUpdateListener(OnPutFileUpdateListener listener) {
super.setOnRPCResponseListener(listener); //We can use the same method because it get stored as a parent class
}
-
+
public OnPutFileUpdateListener getOnPutFileUpdateListener() {
return (OnPutFileUpdateListener)getOnRPCResponseListener();
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RGBColor.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RGBColor.java
new file mode 100644
index 000000000..cda1a2040
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RGBColor.java
@@ -0,0 +1,141 @@
+package com.smartdevicelink.proxy.rpc;
+
+import com.smartdevicelink.proxy.RPCStruct;
+import java.util.Hashtable;
+
+/**
+ * A color class that stores RGB values
+ * <p><b> Parameter List</b></p>
+ * <table border="1" rules="all">
+ * <tr>
+ * <th>Name</th>
+ * <th>Type</th>
+ * <th>Reg.</th>
+ * <th>Notes</th>
+ * <th>Version Available</th>
+ * </tr>
+ * <tr>
+ * <td>red</td>
+ * <td>Integer</td>
+ * <td>Y</td>
+ * <td><ul><li>minvalue="0"</li><li>maxvalue="255"</li></ul></td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ * <tr>
+ * <td>green</td>
+ * <td>Integer</td>
+ * <td>Y</td>
+ * <td><ul><li>minvalue="0"</li><li>maxvalue="255"</li></ul></td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ * <tr>
+ * <td>blue</td>
+ * <td>Integer</td>
+ * <td>Y</td>
+ * <td><ul><li>minvalue="0"</li><li>maxvalue="255"</li></ul></td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ * </table>
+ * @since SmartDeviceLink 4.6
+ */
+public class RGBColor extends RPCStruct{
+ public static final String KEY_RED = "red";
+ public static final String KEY_GREEN = "green";
+ public static final String KEY_BLUE = "blue";
+ private static final Integer MIN_VALUE = 0, MAX_VALUE = 255;
+
+ /**
+ * Constructs a new RGBColor object
+ */
+ public RGBColor(){
+ this(MIN_VALUE, MIN_VALUE, MIN_VALUE);
+ }
+
+ /**
+ * Constructs a new RGBColor object indicated by the Hashtable parameter
+ * @param hash The Hashtable to use
+ */
+ public RGBColor(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Constructs a new RGB object
+ * @param red red value - min: 0; max: 255
+ * @param green green value - min: 0; max: 255
+ * @param blue blue value - min: 0; max: 255
+ */
+ public RGBColor(Integer red, Integer green, Integer blue) {
+ Hashtable<String, Object> hash = new Hashtable<>();
+ if (red != null && red >= MIN_VALUE && red <= MAX_VALUE) {
+ hash.put(KEY_RED, red);
+ } else {
+ hash.put(KEY_RED, MIN_VALUE);
+ }
+ if (green != null && green >= MIN_VALUE && green <= MAX_VALUE) {
+ hash.put(KEY_GREEN, green);
+ } else {
+ hash.put(KEY_GREEN, MIN_VALUE);
+ }
+ if (blue != null && blue >= MIN_VALUE && blue <= MAX_VALUE) {
+ hash.put(KEY_BLUE, blue);
+ } else {
+ hash.put(KEY_BLUE, MIN_VALUE);
+ }
+ this.store = hash;
+ }
+
+ /**
+ * Sets the red value of the color object
+ * @param color red value - min: 0; max: 255
+ */
+ public void setRed(Integer color) {
+ if (color != null && color >= MIN_VALUE && color <= MAX_VALUE) {
+ setValue(KEY_RED, color);
+ }
+ }
+
+ /**
+ * Gets the red value of the color
+ * @return red value
+ */
+ public Integer getRed() {
+ return getInteger(KEY_RED);
+ }
+
+ /**
+ * Sets the green value of the color object
+ * @param color green value - min: 0; max: 255
+ */
+ public void setGreen(Integer color) {
+ if (color != null && color >= MIN_VALUE && color <= MAX_VALUE) {
+ setValue(KEY_GREEN, color);
+ }
+ }
+
+ /**
+ * Gets the green value of the color
+ * @return green value
+ */
+ public Integer getGreen() {
+ return getInteger(KEY_GREEN);
+ }
+
+ /**
+ * Sets the blue value of the color object
+ * @param color blue value - min: 0; max: 255
+ */
+ public void setBlue(Integer color) {
+ if (color != null && color >= MIN_VALUE && color <= MAX_VALUE) {
+ setValue(KEY_BLUE, color);
+ }
+ }
+
+ /**
+ * Gets the green value of the color
+ * @return green value
+ */
+ public Integer getBlue() {
+ return getInteger(KEY_BLUE);
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterface.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterface.java
index 970613ccf..e52498874 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterface.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterface.java
@@ -200,7 +200,7 @@ import java.util.List;
* <td>Maxlength: 100</td>
* <td>SmartDeviceLink 2.3.2.2</td>
* </tr>
- *
+ *
* <tr>
* <td>systemSoftwareVersion</td>
* <td>String</td>
@@ -209,6 +209,24 @@ import java.util.List;
* <td>Maxlength: 100</td>
* <td>SmartDeviceLink 2.3.2.2</td>
* </tr>
+ *
+ * <tr>
+ * <td>dayColorScheme</td>
+ * <td>TemplateColorScheme</td>
+ * <td>The color scheme that is used for day.</td>
+ * <td>N</td>
+ * <td></td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ *
+ * <tr>
+ * <td>nightColorScheme</td>
+ * <td>TemplateColorScheme</td>
+ * <td>The color scheme that is used for night.</td>
+ * <td>N</td>
+ * <td></td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
* </table>
* <p></p>
* @since SmartDeviceLink 1.0
@@ -228,6 +246,9 @@ public class RegisterAppInterface extends RPCRequest {
public static final String KEY_VR_SYNONYMS = "vrSynonyms";
public static final String KEY_SDL_MSG_VERSION = "syncMsgVersion";
public static final String KEY_HASH_ID = "hashID";
+ public static final String KEY_DAY_COLOR_SCHEME = "dayColorScheme";
+ public static final String KEY_NIGHT_COLOR_SCHEME = "nightColorScheme";
+
/**
* Constructs a new RegisterAppInterface object
*/
@@ -578,4 +599,48 @@ public class RegisterAppInterface extends RPCRequest {
public void setAppID(@NonNull String appID) {
setParameters(KEY_APP_ID, appID);
}
+
+ /**
+ * Gets the color scheme that is currently used for day
+ *
+ * @return TemplateColorScheme - a TemplateColorScheme object representing the colors that are used
+ * for day color scheme
+ * @since SmartDeviceLink 4.6
+ */
+ public TemplateColorScheme getDayColorScheme(){
+ return (TemplateColorScheme) getObject(TemplateColorScheme.class, KEY_DAY_COLOR_SCHEME);
+ }
+
+ /**
+ * Sets the color scheme that is intended to be used for day
+ *
+ * @param templateColorScheme a TemplateColorScheme object representing the colors that will be
+ * used for day color scheme
+ * @since SmartDeviceLink 4.6
+ */
+ public void setDayColorScheme(TemplateColorScheme templateColorScheme){
+ setParameters(KEY_DAY_COLOR_SCHEME, templateColorScheme);
+ }
+
+ /**
+ * Gets the color scheme that is currently used for night
+ *
+ * @return TemplateColorScheme - a TemplateColorScheme object representing the colors that are used
+ * for night color scheme
+ * @since SmartDeviceLink 4.6
+ */
+ public TemplateColorScheme getNightColorScheme(){
+ return (TemplateColorScheme) getObject(TemplateColorScheme.class, KEY_NIGHT_COLOR_SCHEME);
+ }
+
+ /**
+ * Sets the color scheme that is intended to be used for night
+ *
+ * @param templateColorScheme a TemplateColorScheme object representing the colors that will be
+ * used for night color scheme
+ * @since SmartDeviceLink 4.6
+ */
+ public void setNightColorScheme(TemplateColorScheme templateColorScheme){
+ setParameters(KEY_NIGHT_COLOR_SCHEME, templateColorScheme);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterfaceResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterfaceResponse.java
index 0fea2f9a9..d77678662 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterfaceResponse.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterfaceResponse.java
@@ -39,8 +39,8 @@ public class RegisterAppInterfaceResponse extends RPCResponse {
public static final String KEY_HMI_CAPABILITIES = "hmiCapabilities"; //As of v4.0
public static final String KEY_SDL_VERSION = "sdlVersion"; //As of v4.0
public static final String KEY_SYSTEM_SOFTWARE_VERSION = "systemSoftwareVersion"; //As of v4.0
- public static final String KEY_PCM_STREAM_CAPABILITIES = "pcmStreamCapabilities";
-
+ public static final String KEY_ICON_RESUMED = "iconResumed";
+ public static final String KEY_PCM_STREAM_CAPABILITIES = "pcmStreamCapabilities";
/**
* Constructs a new RegisterAppInterfaceResponse object
@@ -376,7 +376,15 @@ public class RegisterAppInterfaceResponse extends RPCResponse {
setParameters(KEY_SYSTEM_SOFTWARE_VERSION, systemSoftwareVersion);
}
- public String getSystemSoftwareVersion() {
- return getString(KEY_SYSTEM_SOFTWARE_VERSION);
+ public String getSystemSoftwareVersion() {
+ return getString(KEY_SYSTEM_SOFTWARE_VERSION);
+ }
+
+ public void setIconResumed(Boolean iconResumed){
+ setParameters(KEY_ICON_RESUMED, iconResumed);
+ }
+
+ public Boolean getIconResumed() {
+ return getBoolean(KEY_ICON_RESUMED);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RemoteControlCapabilities.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RemoteControlCapabilities.java
index ec51aa633..8a2106f6e 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RemoteControlCapabilities.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RemoteControlCapabilities.java
@@ -1,82 +1,100 @@
package com.smartdevicelink.proxy.rpc;
import com.smartdevicelink.proxy.RPCStruct;
+
import java.util.Hashtable;
import java.util.List;
-public class RemoteControlCapabilities extends RPCStruct{
- public static final String KEY_CLIMATE_CONTROL_CAPABILITIES= "climateControlCapabilities";
- public static final String KEY_RADIO_CONTROL_CAPABILITIES = "radioControlCapabilities";
- public static final String KEY_BUTTON_CAPABILITIES = "buttonCapabilities";
+public class RemoteControlCapabilities extends RPCStruct {
+ public static final String KEY_CLIMATE_CONTROL_CAPABILITIES = "climateControlCapabilities";
+ public static final String KEY_RADIO_CONTROL_CAPABILITIES = "radioControlCapabilities";
+ public static final String KEY_BUTTON_CAPABILITIES = "buttonCapabilities";
+ public static final String KEY_SEAT_CONTROL_CAPABILITIES = "seatControlCapabilities";
+
+ public RemoteControlCapabilities() {
+ }
+
+ public RemoteControlCapabilities(Hashtable<String, Object> hash) {
+ super(hash);
+ }
- public RemoteControlCapabilities() {
- }
+ /**
+ * Sets the climateControlCapabilities portion of the RemoteControlCapabilities class
+ *
+ * @param climateControlCapabilities If included, the platform supports RC climate controls.
+ * For this baseline version, maxsize=1. i.e. only one climate control module is supported.
+ */
+ public void setClimateControlCapabilities(List<ClimateControlCapabilities> climateControlCapabilities) {
+ setValue(KEY_CLIMATE_CONTROL_CAPABILITIES, climateControlCapabilities);
+ }
- public RemoteControlCapabilities(Hashtable<String, Object> hash) {
- super(hash);
- }
+ /**
+ * Gets the climateControlCapabilities portion of the RemoteControlCapabilities class
+ *
+ * @return List<ClimateControlCapabilities>
+ * If included, the platform supports RC climate controls.
+ * For this baseline version, maxsize=1. i.e. only one climate control module is supported.
+ */
+ public List<ClimateControlCapabilities> getClimateControlCapabilities() {
+ return (List<ClimateControlCapabilities>) getObject(ClimateControlCapabilities.class, KEY_CLIMATE_CONTROL_CAPABILITIES);
+ }
- /**
- * Sets the climateControlCapabilities portion of the RemoteControlCapabilities class
- *
- * @param climateControlCapabilities
- * If included, the platform supports RC climate controls.
- * For this baseline version, maxsize=1. i.e. only one climate control module is supported.
- */
- public void setClimateControlCapabilities(List<ClimateControlCapabilities> climateControlCapabilities) {
- setValue(KEY_CLIMATE_CONTROL_CAPABILITIES, climateControlCapabilities);
- }
+ /**
+ * Sets the radioControlCapabilities portion of the RemoteControlCapabilities class
+ *
+ * @param radioControlCapabilities If included, the platform supports RC climate controls.
+ * For this baseline version, maxsize=1. i.e. only one radio control module is supported.
+ */
+ public void setRadioControlCapabilities(List<RadioControlCapabilities> radioControlCapabilities) {
+ setValue(KEY_RADIO_CONTROL_CAPABILITIES, radioControlCapabilities);
+ }
- /**
- * Gets the climateControlCapabilities portion of the RemoteControlCapabilities class
- *
- * @return List<ClimateControlCapabilities>
- * If included, the platform supports RC climate controls.
- * For this baseline version, maxsize=1. i.e. only one climate control module is supported.
- */
- public List<ClimateControlCapabilities> getClimateControlCapabilities() {
- return (List<ClimateControlCapabilities>) getObject(ClimateControlCapabilities.class, KEY_CLIMATE_CONTROL_CAPABILITIES);
- }
+ /**
+ * Gets the radioControlCapabilities portion of the RemoteControlCapabilities class
+ *
+ * @return List<RadioControlCapabilities>
+ * If included, the platform supports RC climate controls.
+ * For this baseline version, maxsize=1. i.e. only one radio control module is supported.
+ */
+ public List<RadioControlCapabilities> getRadioControlCapabilities() {
+ return (List<RadioControlCapabilities>) getObject(RadioControlCapabilities.class, KEY_RADIO_CONTROL_CAPABILITIES);
+ }
- /**
- * Sets the radioControlCapabilities portion of the RemoteControlCapabilities class
- *
- * @param radioControlCapabilities
- * If included, the platform supports RC climate controls.
- * For this baseline version, maxsize=1. i.e. only one radio control module is supported.
- */
- public void setRadioControlCapabilities(List<RadioControlCapabilities> radioControlCapabilities) {
- setValue(KEY_RADIO_CONTROL_CAPABILITIES, radioControlCapabilities);
- }
+ /**
+ * Sets the buttonCapabilities portion of the RemoteControlCapabilities class
+ *
+ * @param buttonCapabilities If included, the platform supports RC button controls with the included button names.
+ */
+ public void setButtonCapabilities(List<ButtonCapabilities> buttonCapabilities) {
+ setValue(KEY_BUTTON_CAPABILITIES, buttonCapabilities);
+ }
- /**
- * Gets the radioControlCapabilities portion of the RemoteControlCapabilities class
- *
- * @return List<RadioControlCapabilities>
- * If included, the platform supports RC climate controls.
- * For this baseline version, maxsize=1. i.e. only one radio control module is supported.
- */
- public List<RadioControlCapabilities> getRadioControlCapabilities() {
- return (List<RadioControlCapabilities>) getObject(RadioControlCapabilities.class, KEY_RADIO_CONTROL_CAPABILITIES);
- }
+ /**
+ * Gets the buttonCapabilities portion of the RemoteControlCapabilities class
+ *
+ * @return List<ButtonCapabilities>
+ * If included, the platform supports RC button controls with the included button names.
+ */
+ public List<ButtonCapabilities> getButtonCapabilities() {
+ return (List<ButtonCapabilities>) getObject(ButtonCapabilities.class, KEY_BUTTON_CAPABILITIES);
+ }
- /**
- * Sets the buttonCapabilities portion of the RemoteControlCapabilities class
- *
- * @param buttonCapabilities
- * If included, the platform supports RC button controls with the included button names.
- */
- public void setButtonCapabilities(List<ButtonCapabilities> buttonCapabilities) {
- setValue(KEY_BUTTON_CAPABILITIES, buttonCapabilities);
- }
+ /**
+ * Sets the seatControlCapabilities portion of the RemoteControlCapabilities class
+ *
+ * @param seatControlCapabilities If included, the platform supports seat controls.
+ */
+ public void setSeatControlCapabilities(List<SeatControlCapabilities> seatControlCapabilities) {
+ setValue(KEY_SEAT_CONTROL_CAPABILITIES, seatControlCapabilities);
+ }
- /**
- * Gets the buttonCapabilities portion of the RemoteControlCapabilities class
- *
- * @return List<ButtonCapabilities>
- * If included, the platform supports RC button controls with the included button names.
- */
- public List<ButtonCapabilities> getButtonCapabilities() {
- return (List<ButtonCapabilities>) getObject(ButtonCapabilities.class, KEY_BUTTON_CAPABILITIES);
- }
+ /**
+ * Gets the seatControlCapabilities portion of the RemoteControlCapabilities class
+ *
+ * @return List<SeatControlCapabilities>
+ * If included, the platform supports seat controls.
+ */
+ public List<SeatControlCapabilities> getSeatControlCapabilities() {
+ return (List<SeatControlCapabilities>) getObject(SeatControlCapabilities.class, KEY_SEAT_CONTROL_CAPABILITIES);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatControlCapabilities.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatControlCapabilities.java
new file mode 100644
index 000000000..e1d488cb5
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatControlCapabilities.java
@@ -0,0 +1,339 @@
+package com.smartdevicelink.proxy.rpc;
+
+import android.support.annotation.NonNull;
+
+import com.smartdevicelink.proxy.RPCStruct;
+
+import java.util.Hashtable;
+
+public class SeatControlCapabilities extends RPCStruct {
+ public static final String KEY_MODULE_NAME = "moduleName";
+ public static final String KEY_HEATING_ENABLED_AVAILABLE = "heatingEnabledAvailable";
+ public static final String KEY_COOLING_ENABLED_AVAILABLE = "coolingEnabledAvailable";
+ public static final String KEY_HEATING_LEVEL_AVAILABLE = "heatingLevelAvailable";
+ public static final String KEY_COOLING_LEVEL_AVAILABLE = "coolingLevelAvailable";
+ public static final String KEY_HORIZONTAL_POSITION_AVAILABLE = "horizontalPositionAvailable";
+ public static final String KEY_VERTICAL_POSITION_AVAILABLE = "verticalPositionAvailable";
+ public static final String KEY_FRONT_VERTICAL_POSITION_AVAILABLE = "frontVerticalPositionAvailable";
+ public static final String KEY_BACK_VERTICAL_POSITION_AVAILABLE = "backVerticalPositionAvailable";
+ public static final String KEY_BACK_TILT_ANGLE_AVAILABLE = "backTiltAngleAvailable";
+ public static final String KEY_HEAD_SUPPORT_HORIZONTAL_POSITION_AVAILABLE = "headSupportHorizontalPositionAvailable";
+ public static final String KEY_HEAD_SUPPORT_VERTICAL_POSITION_AVAILABLE = "headSupportVerticalPositionAvailable";
+ public static final String KEY_MASSAGE_ENABLED_AVAILABLE = "massageEnabledAvailable";
+ public static final String KEY_MASSAGE_MODE_AVAILABLE = "massageModeAvailable";
+ public static final String KEY_MASSAGE_CUSHION_FIRMNESS_AVAILABLE = "massageCushionFirmnessAvailable";
+ public static final String KEY_MEMORY_AVAILABLE = "memoryAvailable";
+
+ /**
+ * Constructs a new SeatControlCapabilities object
+ */
+ public SeatControlCapabilities() {
+ }
+
+ /**
+ * <p>Constructs a new SeatControlCapabilities object indicated by the Hashtable parameter
+ * </p>
+ *
+ * @param hash The Hashtable to use
+ */
+ public SeatControlCapabilities(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Constructs a newly allocated SeatControlCapabilities object
+ * @param moduleName short friendly name of the light control module.
+ */
+ public SeatControlCapabilities(@NonNull String moduleName) {
+ this();
+ setModuleName(moduleName);
+ }
+
+ /**
+ * Get the moduleName portion of the SeatControlCapabilities class
+ *
+ * @return String
+ */
+ public String getModuleName() {
+ return getString(KEY_MODULE_NAME);
+ }
+
+ /**
+ * Sets the moduleName portion of the SeatControlCapabilities class
+ *
+ * @param moduleName - The short friendly name of the light control module. It should not be used to identify a module by mobile application.
+ */
+ public void setModuleName(@NonNull String moduleName) {
+ setValue(KEY_MODULE_NAME, moduleName);
+ }
+
+ /**
+ * Sets the heatingEnabledAvailable portion of the SeatControlCapabilities class
+ *
+ * @param heatingEnabledAvailable
+ */
+ public void setHeatingEnabledAvailable(Boolean heatingEnabledAvailable) {
+ setValue(KEY_HEATING_ENABLED_AVAILABLE, heatingEnabledAvailable);
+ }
+
+ /**
+ * Gets the heatingEnabledAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getHeatingEnabledAvailable() {
+ return getBoolean(KEY_HEATING_ENABLED_AVAILABLE);
+ }
+
+ /**
+ * Sets the coolingEnabledAvailable portion of the SeatControlCapabilities class
+ *
+ * @param coolingEnabledAvailable
+ */
+ public void setCoolingEnabledAvailable(Boolean coolingEnabledAvailable) {
+ setValue(KEY_COOLING_ENABLED_AVAILABLE, coolingEnabledAvailable);
+ }
+
+ /**
+ * Gets the coolingEnabledAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getCoolingEnabledAvailable() {
+ return getBoolean(KEY_COOLING_ENABLED_AVAILABLE);
+ }
+
+ /**
+ * Sets the heatingLevelAvailable portion of the SeatControlCapabilities class
+ *
+ * @param heatingLevelAvailable
+ */
+ public void setHeatingLevelAvailable(Boolean heatingLevelAvailable) {
+ setValue(KEY_HEATING_LEVEL_AVAILABLE, heatingLevelAvailable);
+ }
+
+ /**
+ * Gets the heatingLevelAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getHeatingLevelAvailable() {
+ return getBoolean(KEY_HEATING_LEVEL_AVAILABLE);
+ }
+
+ /**
+ * Sets the coolingLevelAvailable portion of the SeatControlCapabilities class
+ *
+ * @param coolingLevelAvailable
+ */
+ public void setCoolingLevelAvailable(Boolean coolingLevelAvailable) {
+ setValue(KEY_COOLING_LEVEL_AVAILABLE, coolingLevelAvailable);
+ }
+
+ /**
+ * Gets the coolingLevelAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getCoolingLevelAvailable() {
+ return getBoolean(KEY_COOLING_LEVEL_AVAILABLE);
+ }
+
+ /**
+ * Sets the horizontalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @param horizontalPositionAvailable
+ */
+ public void setHorizontalPositionAvailable(Boolean horizontalPositionAvailable) {
+ setValue(KEY_HORIZONTAL_POSITION_AVAILABLE, horizontalPositionAvailable);
+ }
+
+ /**
+ * Gets the horizontalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getHorizontalPositionAvailable() {
+ return getBoolean(KEY_HORIZONTAL_POSITION_AVAILABLE);
+ }
+
+ /**
+ * Sets the verticalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @param verticalPositionAvailable
+ */
+ public void setVerticalPositionAvailable(Boolean verticalPositionAvailable) {
+ setValue(KEY_VERTICAL_POSITION_AVAILABLE, verticalPositionAvailable);
+ }
+
+ /**
+ * Gets the verticalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getVerticalPositionAvailable() {
+ return getBoolean(KEY_VERTICAL_POSITION_AVAILABLE);
+ }
+
+ /**
+ * Sets the frontVerticalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @param frontVerticalPositionAvailable
+ */
+ public void setFrontVerticalPositionAvailable(Boolean frontVerticalPositionAvailable) {
+ setValue(KEY_FRONT_VERTICAL_POSITION_AVAILABLE, frontVerticalPositionAvailable);
+ }
+
+ /**
+ * Gets the frontVerticalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getFrontVerticalPositionAvailable() {
+ return getBoolean(KEY_FRONT_VERTICAL_POSITION_AVAILABLE);
+ }
+
+ /**
+ * Sets the backVerticalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @param backVerticalPositionAvailable
+ */
+ public void setBackVerticalPositionAvailable(Boolean backVerticalPositionAvailable) {
+ setValue(KEY_BACK_VERTICAL_POSITION_AVAILABLE, backVerticalPositionAvailable);
+ }
+
+ /**
+ * Gets the backVerticalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getBackVerticalPositionAvailable() {
+ return getBoolean(KEY_BACK_VERTICAL_POSITION_AVAILABLE);
+ }
+
+ /**
+ * Sets the backTiltAngleAvailable portion of the SeatControlCapabilities class
+ *
+ * @param backTiltAngleAvailable
+ */
+ public void setBackTiltAngleAvailable(Boolean backTiltAngleAvailable) {
+ setValue(KEY_BACK_TILT_ANGLE_AVAILABLE, backTiltAngleAvailable);
+ }
+
+ /**
+ * Gets the backTiltAngleAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getBackTiltAngleAvailable() {
+ return getBoolean(KEY_BACK_TILT_ANGLE_AVAILABLE);
+ }
+
+ /**
+ * Sets the headSupportHorizontalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @param headSupportHorizontalPositionAvailable
+ */
+ public void setHeadSupportHorizontalPositionAvailable(Boolean headSupportHorizontalPositionAvailable) {
+ setValue(KEY_HEAD_SUPPORT_HORIZONTAL_POSITION_AVAILABLE, headSupportHorizontalPositionAvailable);
+ }
+
+ /**
+ * Gets the headSupportHorizontalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getHeadSupportHorizontalPositionAvailable() {
+ return getBoolean(KEY_HEAD_SUPPORT_HORIZONTAL_POSITION_AVAILABLE);
+ }
+
+ /**
+ * Sets the headSupportVerticalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @param headSupportVerticalPositionAvailable
+ */
+ public void setHeadSupportVerticalPositionAvailable(Boolean headSupportVerticalPositionAvailable) {
+ setValue(KEY_HEAD_SUPPORT_VERTICAL_POSITION_AVAILABLE, headSupportVerticalPositionAvailable);
+ }
+
+ /**
+ * Gets the headSupportVerticalPositionAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getHeadSupportVerticalPositionAvailable() {
+ return getBoolean(KEY_HEAD_SUPPORT_VERTICAL_POSITION_AVAILABLE);
+ }
+
+ /**
+ * Sets the massageEnabledAvailable portion of the SeatControlCapabilities class
+ *
+ * @param massageEnabledAvailable
+ */
+ public void setMassageEnabledAvailable(Boolean massageEnabledAvailable) {
+ setValue(KEY_MASSAGE_ENABLED_AVAILABLE, massageEnabledAvailable);
+ }
+
+ /**
+ * Gets the massageEnabledAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getMassageEnabledAvailable() {
+ return getBoolean(KEY_MASSAGE_ENABLED_AVAILABLE);
+ }
+
+ /**
+ * Sets the massageModeAvailable portion of the SeatControlCapabilities class
+ *
+ * @param massageModeAvailable
+ */
+ public void setMassageModeAvailable(Boolean massageModeAvailable) {
+ setValue(KEY_MASSAGE_MODE_AVAILABLE, massageModeAvailable);
+ }
+
+ /**
+ * Gets the massageModeAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getMassageModeAvailable() {
+ return getBoolean(KEY_MASSAGE_MODE_AVAILABLE);
+ }
+
+ /**
+ * Sets the massageCushionFirmnessAvailable portion of the SeatControlCapabilities class
+ *
+ * @param massageCushionFirmnessAvailable
+ */
+ public void setMassageCushionFirmnessAvailable(Boolean massageCushionFirmnessAvailable) {
+ setValue(KEY_MASSAGE_CUSHION_FIRMNESS_AVAILABLE, massageCushionFirmnessAvailable);
+ }
+
+ /**
+ * Gets the massageCushionFirmnessAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getMassageCushionFirmnessAvailable() {
+ return getBoolean(KEY_MASSAGE_CUSHION_FIRMNESS_AVAILABLE);
+ }
+
+ /**
+ * Sets the memoryAvailable portion of the SeatControlCapabilities class
+ *
+ * @param memoryAvailable
+ */
+ public void setMemoryAvailable(Boolean memoryAvailable) {
+ setValue(KEY_MEMORY_AVAILABLE, memoryAvailable);
+ }
+
+ /**
+ * Gets the memoryAvailable portion of the SeatControlCapabilities class
+ *
+ * @return Boolean.
+ */
+ public Boolean getMemoryAvailable() {
+ return getBoolean(KEY_MEMORY_AVAILABLE);
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatControlData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatControlData.java
new file mode 100644
index 000000000..26d52d713
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatControlData.java
@@ -0,0 +1,347 @@
+package com.smartdevicelink.proxy.rpc;
+
+import android.support.annotation.NonNull;
+
+import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.SupportedSeat;
+
+import java.util.Hashtable;
+import java.util.List;
+
+/**
+ * Seat control data corresponds to "SEAT" ModuleType.
+ */
+public class SeatControlData extends RPCStruct {
+ public static final String KEY_ID = "id";
+ public static final String KEY_HEATING_ENABLED = "heatingEnabled";
+ public static final String KEY_COOLING_ENABLED = "coolingEnabled";
+ public static final String KEY_HEATING_LEVEL = "heatingLevel";
+ public static final String KEY_COOLING_LEVEL = "coolingLevel";
+ public static final String KEY_HORIZONTAL_POSITION = "horizontalPosition";
+ public static final String KEY_VERTICAL_POSITION = "verticalPosition";
+ public static final String KEY_FRONT_VERTICAL_POSITION = "frontVerticalPosition";
+ public static final String KEY_BACK_VERTICAL_POSITION = "backVerticalPosition";
+ public static final String KEY_BACK_TILT_ANGLE = "backTiltAngle";
+ public static final String KEY_HEAD_SUPPORT_HORIZONTAL_POSITION = "headSupportHorizontalPosition";
+ public static final String KEY_HEAD_SUPPORT_VERTICAL_POSITION = "headSupportVerticalPosition";
+ public static final String KEY_MASSAGE_ENABLED = "massageEnabled";
+ public static final String KEY_MASSAGE_MODE = "massageMode";
+ public static final String KEY_MASSAGE_CUSHION_FIRMNESS = "massageCushionFirmness";
+ public static final String KEY_MEMORY = "memory";
+
+ /**
+ * Constructs a new SeatControlData object
+ */
+ public SeatControlData() {
+ }
+
+ /**
+ * <p>Constructs a new SeatControlData object indicated by the Hashtable parameter
+ * </p>
+ *
+ * @param hash The Hashtable to use
+ */
+ public SeatControlData(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Constructs a newly allocated SeatControlData object
+ * @param id type of SupportedSeat.
+ */
+ public SeatControlData(@NonNull SupportedSeat id) {
+ this();
+ setId(id);
+ }
+
+ /**
+ * Sets the id portion of the SeatControlData class
+ *
+ * @param id
+ */
+ public void setId(@NonNull SupportedSeat id) {
+ setValue(KEY_ID, id);
+ }
+
+ /**
+ * Gets the id portion of the SeatControlData class
+ *
+ * @return SupportedSeat.
+ */
+ public SupportedSeat getId() {
+ return (SupportedSeat) getObject(SupportedSeat.class, KEY_ID);
+ }
+
+ /**
+ * Sets the heatingEnabled portion of the SeatControlData class
+ *
+ * @param heatingEnabled
+ */
+ public void setHeatingEnabled(Boolean heatingEnabled) {
+ setValue(KEY_HEATING_ENABLED, heatingEnabled);
+ }
+
+ /**
+ * Gets the heatingEnabled portion of the SeatControlData class
+ *
+ * @return Boolean.
+ */
+ public Boolean getHeatingEnabled() {
+ return getBoolean(KEY_HEATING_ENABLED);
+ }
+
+ /**
+ * Sets the coolingEnabled portion of the SeatControlData class
+ *
+ * @param coolingEnabled
+ */
+ public void setCoolingEnabled(Boolean coolingEnabled) {
+ setValue(KEY_COOLING_ENABLED, coolingEnabled);
+ }
+
+ /**
+ * Gets the coolingEnabled portion of the SeatControlData class
+ *
+ * @return Boolean.
+ */
+ public Boolean getCoolingEnabled() {
+ return getBoolean(KEY_COOLING_ENABLED);
+ }
+
+ /**
+ * Sets the heatingLevel portion of the SeatControlData class
+ *
+ * @param heatingLevel
+ */
+ public void setHeatingLevel(Integer heatingLevel) {
+ setValue(KEY_HEATING_LEVEL, heatingLevel);
+ }
+
+ /**
+ * Gets the heatingLevel portion of the SeatControlData class
+ *
+ * @return Integer
+ */
+ public Integer getHeatingLevel() {
+ return getInteger(KEY_HEATING_LEVEL);
+ }
+
+ /**
+ * Sets the coolingLevel portion of the SeatControlData class
+ *
+ * @param coolingLevel
+ */
+ public void setCoolingLevel(Integer coolingLevel) {
+ setValue(KEY_COOLING_LEVEL, coolingLevel);
+ }
+
+ /**
+ * Gets the coolingLevel portion of the SeatControlData class
+ *
+ * @return Integer
+ */
+ public Integer getCoolingLevel() {
+ return getInteger(KEY_COOLING_LEVEL);
+ }
+
+ /**
+ * Sets the horizontalPosition portion of the SeatControlData class
+ *
+ * @param horizontalPosition
+ */
+ public void setHorizontalPosition(Integer horizontalPosition) {
+ setValue(KEY_HORIZONTAL_POSITION, horizontalPosition);
+ }
+
+ /**
+ * Gets the horizontalPosition portion of the SeatControlData class
+ *
+ * @return Integer
+ */
+ public Integer getHorizontalPosition() {
+ return getInteger(KEY_HORIZONTAL_POSITION);
+ }
+
+ /**
+ * Sets the verticalPosition portion of the SeatControlData class
+ *
+ * @param verticalPosition
+ */
+ public void setVerticalPosition(Integer verticalPosition) {
+ setValue(KEY_VERTICAL_POSITION, verticalPosition);
+ }
+
+ /**
+ * Gets the verticalPosition portion of the SeatControlData class
+ *
+ * @return Integer
+ */
+ public Integer getVerticalPosition() {
+ return getInteger(KEY_VERTICAL_POSITION);
+ }
+
+ /**
+ * Sets the frontVerticalPosition portion of the SeatControlData class
+ *
+ * @param frontVerticalPosition
+ */
+ public void setFrontVerticalPosition(Integer frontVerticalPosition) {
+ setValue(KEY_FRONT_VERTICAL_POSITION, frontVerticalPosition);
+ }
+
+ /**
+ * Gets the frontVerticalPosition portion of the SeatControlData class
+ *
+ * @return Integer
+ */
+ public Integer getFrontVerticalPosition() {
+ return getInteger(KEY_FRONT_VERTICAL_POSITION);
+ }
+
+ /**
+ * Sets the backVerticalPosition portion of the SeatControlData class
+ *
+ * @param backVerticalPosition
+ */
+ public void setBackVerticalPosition(Integer backVerticalPosition) {
+ setValue(KEY_BACK_VERTICAL_POSITION, backVerticalPosition);
+ }
+
+ /**
+ * Gets the backVerticalPosition portion of the SeatControlData class
+ *
+ * @return Integer
+ */
+ public Integer getBackVerticalPosition() {
+ return getInteger(KEY_BACK_VERTICAL_POSITION);
+ }
+
+ /**
+ * Sets the backTiltAngle portion of the SeatControlData class
+ *
+ * @param backTiltAngle
+ */
+ public void setBackTiltAngle(Integer backTiltAngle) {
+ setValue(KEY_BACK_TILT_ANGLE, backTiltAngle);
+ }
+
+ /**
+ * Gets the backTiltAngle portion of the SeatControlData class
+ *
+ * @return Integer
+ */
+ public Integer getBackTiltAngle() {
+ return getInteger(KEY_BACK_TILT_ANGLE);
+ }
+
+ /**
+ * Sets the headSupportHorizontalPosition portion of the SeatControlData class
+ *
+ * @param headSupportHorizontalPosition
+ */
+ public void setHeadSupportHorizontalPosition(Integer headSupportHorizontalPosition) {
+ setValue(KEY_HEAD_SUPPORT_HORIZONTAL_POSITION, headSupportHorizontalPosition);
+ }
+
+ /**
+ * Gets the headSupportHorizontalPosition portion of the SeatControlData class
+ *
+ * @return Integer
+ */
+ public Integer getHeadSupportHorizontalPosition() {
+ return getInteger(KEY_HEAD_SUPPORT_HORIZONTAL_POSITION);
+ }
+
+ /**
+ * Sets the headSupportVerticalPosition portion of the SeatControlData class
+ *
+ * @param headSupportVerticalPosition
+ */
+ public void setHeadSupportVerticalPosition(Integer headSupportVerticalPosition) {
+ setValue(KEY_HEAD_SUPPORT_VERTICAL_POSITION, headSupportVerticalPosition);
+ }
+
+ /**
+ * Gets the headSupportVerticalPosition portion of the SeatControlData class
+ *
+ * @return Integer
+ */
+ public Integer getHeadSupportVerticalPosition() {
+ return getInteger(KEY_HEAD_SUPPORT_VERTICAL_POSITION);
+ }
+
+ /**
+ * Sets the massageEnabled portion of the SeatControlData class
+ *
+ * @param massageEnabled
+ */
+ public void setMassageEnabled(Boolean massageEnabled) {
+ setValue(KEY_MASSAGE_ENABLED, massageEnabled);
+ }
+
+ /**
+ * Gets the massageEnabled portion of the SeatControlData class
+ *
+ * @return Boolean.
+ */
+ public Boolean getMassageEnabled() {
+ return getBoolean(KEY_MASSAGE_ENABLED);
+ }
+
+ /**
+ * Gets the List<MassageModeData> portion of the SeatControlData class
+ *
+ * @return List<MassageModeData>.
+ */
+ @SuppressWarnings("unchecked")
+ public List<MassageModeData> getMassageMode() {
+ return (List<MassageModeData>) getObject(MassageModeData.class, KEY_MASSAGE_MODE);
+ }
+
+ /**
+ * Sets the massageMode portion of the SeatControlData class
+ *
+ * @param massageMode
+ */
+ public void setMassageMode(List<MassageModeData> massageMode) {
+ setValue(KEY_MASSAGE_MODE, massageMode);
+ }
+
+ /**
+ * Gets the List<MassageCushionFirmness> portion of the SeatControlData class
+ *
+ * @return List<MassageCushionFirmness>.
+ */
+ @SuppressWarnings("unchecked")
+ public List<MassageCushionFirmness> getMassageCushionFirmness() {
+ return (List<MassageCushionFirmness>) getObject(MassageCushionFirmness.class, KEY_MASSAGE_CUSHION_FIRMNESS);
+ }
+
+ /**
+ * Sets the massageCushionFirmness portion of the SeatControlData class
+ *
+ * @param massageCushionFirmness
+ */
+ public void setMassageCushionFirmness(List<MassageCushionFirmness> massageCushionFirmness) {
+ setValue(KEY_MASSAGE_CUSHION_FIRMNESS, massageCushionFirmness);
+ }
+
+ /**
+ * Sets the memory portion of the SeatControlData class
+ *
+ * @param memory
+ */
+ public void setMemory(SeatMemoryAction memory) {
+ setValue(KEY_MEMORY, memory);
+ }
+
+ /**
+ * Gets the memory portion of the SeatControlData class
+ *
+ * @return SeatMemoryAction.
+ */
+ @SuppressWarnings("unchecked")
+ public SeatMemoryAction getMemory() {
+ return (SeatMemoryAction) getObject(SeatMemoryAction.class, KEY_MEMORY);
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatMemoryAction.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatMemoryAction.java
new file mode 100644
index 000000000..a8673a9eb
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SeatMemoryAction.java
@@ -0,0 +1,95 @@
+package com.smartdevicelink.proxy.rpc;
+
+import android.support.annotation.NonNull;
+
+import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.SeatMemoryActionType;
+
+import java.util.Hashtable;
+
+public class SeatMemoryAction extends RPCStruct {
+ public static final String KEY_ID = "id";
+ public static final String KEY_LABEL = "label";
+ public static final String KEY_ACTION = "action";
+
+ /**
+ * Constructs a new SeatMemoryAction object
+ */
+ public SeatMemoryAction() {
+ }
+
+ /**
+ * <p>Constructs a new SeatMemoryAction object indicated by the Hashtable parameter
+ * </p>
+ *
+ * @param hash The Hashtable to use
+ */
+ public SeatMemoryAction(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Constructs a newly allocated SeatMemoryAction object
+ * @param id Min: 0 Max: 10
+ * @param action type of SeatMemoryActionType.
+ */
+ public SeatMemoryAction(@NonNull Integer id, @NonNull SeatMemoryActionType action) {
+ this();
+ setId(id);
+ setAction(action);
+ }
+
+ /**
+ * Sets the id portion of the SeatMemoryAction class
+ *
+ * @param id
+ */
+ public void setId(@NonNull Integer id) {
+ setValue(KEY_ID, id);
+ }
+
+ /**
+ * Gets the id portion of the SeatMemoryAction class
+ *
+ * @return Integer
+ */
+ public Integer getId() {
+ return getInteger(KEY_ID);
+ }
+
+ /**
+ * Sets the label portion of the SeatMemoryAction class
+ *
+ * @param label
+ */
+ public void setLabel(String label) {
+ setValue(KEY_LABEL, label);
+ }
+
+ /**
+ * Gets the label portion of the SeatMemoryAction class
+ *
+ * @return String
+ */
+ public String getLabel() {
+ return getString(KEY_LABEL);
+ }
+
+ /**
+ * Sets the action portion of the SeatMemoryAction class
+ *
+ * @param action
+ */
+ public void setAction(@NonNull SeatMemoryActionType action) {
+ setValue(KEY_ACTION, action);
+ }
+
+ /**
+ * Gets the action portion of the SeatMemoryAction class
+ *
+ * @return SeatMemoryActionType.
+ */
+ public SeatMemoryActionType getAction() {
+ return (SeatMemoryActionType) getObject(SeatMemoryActionType.class, KEY_ACTION);
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayout.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayout.java
index d9bb2ec69..b2bd6f6f3 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayout.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayout.java
@@ -30,6 +30,23 @@ import java.util.Hashtable;
* <td>maxlength: 500</td>
* <td>SmartDeviceLink 2.0</td>
* </tr>
+ * <tr>
+ * <td>dayColorScheme</td>
+ * <td>TemplateColorScheme</td>
+ * <td>The color scheme that is used for day.</td>
+ * <td>N</td>
+ * <td></td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ *
+ * <tr>
+ * <td>nightColorScheme</td>
+ * <td>TemplateColorScheme</td>
+ * <td>The color scheme that is used for night.</td>
+ * <td>N</td>
+ * <td></td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
*
* </table>
*<p><b>Response </b></p>
@@ -46,6 +63,8 @@ import java.util.Hashtable;
*/
public class SetDisplayLayout extends RPCRequest {
public static final String KEY_DISPLAY_LAYOUT = "displayLayout";
+ public static final String KEY_DAY_COLOR_SCHEME = "dayColorScheme";
+ public static final String KEY_NIGHT_COLOR_SCHEME = "nightColorScheme";
/**
* Constructs a new SetDisplayLayout object
*/
@@ -94,4 +113,48 @@ public class SetDisplayLayout extends RPCRequest {
public String getDisplayLayout() {
return getString(KEY_DISPLAY_LAYOUT);
}
+
+ /**
+ * Gets the color scheme that is currently used for day
+ *
+ * @return TemplateColorScheme - a TemplateColorScheme object representing the colors that are used
+ * for day color scheme
+ * @since SmartDeviceLink 4.6
+ */
+ public TemplateColorScheme getDayColorScheme(){
+ return (TemplateColorScheme) getObject(TemplateColorScheme.class, KEY_DAY_COLOR_SCHEME);
+ }
+
+ /**
+ * Sets the color scheme that is intended to be used for day
+ *
+ * @param templateColorScheme a TemplateColorScheme object representing the colors that will be
+ * used for day color scheme
+ * @since SmartDeviceLink 4.6
+ */
+ public void setDayColorScheme(TemplateColorScheme templateColorScheme){
+ setParameters(KEY_DAY_COLOR_SCHEME, templateColorScheme);
+ }
+
+ /**
+ * Gets the color scheme that is currently used for night
+ *
+ * @return TemplateColorScheme - a TemplateColorScheme object representing the colors that are used
+ * for night color scheme
+ * @since SmartDeviceLink 4.6
+ */
+ public TemplateColorScheme getNightColorScheme(){
+ return (TemplateColorScheme) getObject(TemplateColorScheme.class, KEY_NIGHT_COLOR_SCHEME);
+ }
+
+ /**
+ * Sets the color scheme that is intended to be used for night
+ *
+ * @param templateColorScheme a TemplateColorScheme object representing the colors that will be
+ * used for night color scheme
+ * @since SmartDeviceLink 4.6
+ */
+ public void setNightColorScheme(TemplateColorScheme templateColorScheme){
+ setParameters(KEY_NIGHT_COLOR_SCHEME, templateColorScheme);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SingleTireStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SingleTireStatus.java
index 6aa49ad28..b994cf979 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SingleTireStatus.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SingleTireStatus.java
@@ -4,6 +4,7 @@ import android.support.annotation.NonNull;
import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.ComponentVolumeStatus;
+import com.smartdevicelink.proxy.rpc.enums.TPMS;
import java.util.Hashtable;
@@ -25,11 +26,27 @@ import java.util.Hashtable;
* </td>
* <td>SmartDeviceLink 2.0</td>
* </tr>
+ * <tr>
+ * <td>tpms</td>
+ * <td>TPMS</td>
+ * <td>The status of TPMS according to the particular tire.
+ * See {@linkplain com.smartdevicelink.proxy.rpc.enums.TPMS}
+ * </td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ * <tr>
+ * <td>pressure</td>
+ * <td>Float</td>
+ * <td>The pressure value of the particular tire in kilo pascal.</td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
* </table>
* @since SmartDeviceLink 2.0
*/
public class SingleTireStatus extends RPCStruct {
public static final String KEY_STATUS = "status";
+ public static final String KEY_TPMS = "tpms";
+ public static final String KEY_PRESSURE = "pressure";
/**
* Constructs a newly allocated SingleTireStatus object
@@ -54,18 +71,44 @@ public class SingleTireStatus extends RPCStruct {
}
/**
- * set the volume status of a single tire
- * @param status the volume status of a single tire
+ * set the volume status of a single tire
+ * @param status the volume status of a single tire
*/
public void setStatus(@NonNull ComponentVolumeStatus status) {
setValue(KEY_STATUS, status);
}
/**
- * get the volume status of a single tire
- * @return the volume status of a single tire
+ * get the volume status of a single tire
+ * @return the volume status of a single tire
*/
public ComponentVolumeStatus getStatus() {
return (ComponentVolumeStatus) getObject(ComponentVolumeStatus.class, KEY_STATUS);
}
+
+ /**
+ * Set the status of TPMS according to the particular tire.
+ * @param tpms The status of TPMS
+ */
+ public void setTPMS(@NonNull TPMS tpms) { setValue(KEY_TPMS, tpms); }
+
+ /**
+ * Get the status of TPMS according to the particular tire.
+ * @return the TPMS status
+ */
+ public TPMS getTPMS() {
+ return (TPMS) getObject(TPMS.class, KEY_TPMS);
+ }
+
+ /**
+ * @param pressure The pressure value of the particular tire in kilo pascal.
+ */
+ public void setPressure(@NonNull Float pressure) { setValue(KEY_PRESSURE, pressure); }
+
+ /**
+ * @return the pressure value of the particular tire in kilo pascal.
+ */
+ public Float getPressure() {
+ return getFloat(KEY_PRESSURE);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java
index ddbf54c4a..a7290aad9 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java
@@ -163,6 +163,14 @@ import java.util.Hashtable;
* <td>SmartDeviceLink 2.0 </td>
* </tr>
* <tr>
+ * <td>engineOilLife</td>
+ * <td>Boolean</td>
+ * <td>The estimated percentage of remaining oil life of the engine</td>
+ * <td>N</td>
+ * <td>Subscribable</td>
+ * <td>SmartDeviceLink 4.6 </td>
+ * </tr>
+ * <tr>
* <td>accPedalPosition</td>
* <td>Boolean</td>
* <td>Accelerator pedal position (percentage depressed)</td>
@@ -218,6 +226,14 @@ import java.util.Hashtable;
* <td>Subscribable</td>
* <td>SmartDeviceLink 2.0 </td>
* </tr>
+ * <tr>
+ * <td>turnSignal</td>
+ * <td>Boolean</td>
+ * <td>@see TurnSignal</td>
+ * <td>N</td>
+ * <td>Subscribable</td>
+ * <td>SmartDeviceLink 4.6 </td>
+ * </tr>
* </table>
*
* <p> <b>Response</b></p>
@@ -244,6 +260,7 @@ public class SubscribeVehicleData extends RPCRequest {
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
public static final String KEY_ENGINE_TORQUE = "engineTorque";
+ public static final String KEY_ENGINE_OIL_LIFE = "engineOilLife";
public static final String KEY_ODOMETER = "odometer";
public static final String KEY_GPS = "gps";
public static final String KEY_FUEL_LEVEL_STATE = "fuelLevel_State";
@@ -262,6 +279,9 @@ public class SubscribeVehicleData extends RPCRequest {
public static final String KEY_CLUSTER_MODE_STATUS = "clusterModeStatus";
public static final String KEY_MY_KEY = "myKey";
public static final String KEY_SPEED = "speed";
+ public static final String KEY_FUEL_RANGE = "fuelRange";
+ public static final String KEY_TURN_SIGNAL = "turnSignal";
+ public static final String KEY_ELECTRONIC_PARK_BRAKE_STATUS = "electronicParkBrakeStatus";
/**
* Constructs a new SubscribeVehicleData object
@@ -640,28 +660,49 @@ public class SubscribeVehicleData extends RPCRequest {
/**
* Sets a boolean value. If true, subscribes Engine Torque data
- *
+ *
* @param engineTorque
* a boolean value
*/
- public void setEngineTorque(Boolean engineTorque) {
+ public void setEngineTorque(Boolean engineTorque) {
setParameters(KEY_ENGINE_TORQUE, engineTorque);
- }
+ }
+
+ /**
+ * Gets a boolean value. If true, means the Engine Oil Life data has been
+ * subscribed.
+ *
+ * @return Boolean -a Boolean value. If true, means the Engine Oil Life data
+ * has been subscribed.
+ */
+ public Boolean getEngineOilLife() {
+ return getBoolean(KEY_ENGINE_OIL_LIFE);
+ }
+
+ /**
+ * Sets a boolean value. If true, subscribes Engine Oil Life data
+ *
+ * @param engineOilLife
+ * a boolean value
+ */
+ public void setEngineOilLife(Boolean engineOilLife) {
+ setParameters(KEY_ENGINE_OIL_LIFE, engineOilLife);
+ }
/**
* Gets a boolean value. If true, means the Engine Torque data has been
* subscribed.
- *
+ *
* @return Boolean -a Boolean value. If true, means the Engine Torque data
* has been subscribed.
*/
- public Boolean getEngineTorque() {
- return getBoolean(KEY_ENGINE_TORQUE);
- }
+ public Boolean getEngineTorque() {
+ return getBoolean(KEY_ENGINE_TORQUE);
+ }
/**
* Sets a boolean value. If true, subscribes accPedalPosition data
- *
+ *
* @param accPedalPosition
* a boolean value
*/
@@ -716,6 +757,55 @@ public class SubscribeVehicleData extends RPCRequest {
}
public Boolean getMyKey() {
return getBoolean(KEY_MY_KEY);
- }
-
+ }
+
+ /**
+ * Sets a boolean value. If true, subscribes fuelRange data
+ *
+ * @param fuelRange
+ * a boolean value
+ */
+ public void setFuelRange(Boolean fuelRange) {
+ setParameters(KEY_FUEL_RANGE, fuelRange);
+ }
+
+ /**
+ * Gets a boolean value. If true, means the Fuel Range data has been
+ * subscribed.
+ *
+ * @return Boolean -a Boolean value. If true, means the Fuel Range data
+ * has been subscribed.
+ *
+ */
+ public Boolean getFuelRange() {
+ return getBoolean(KEY_FUEL_RANGE);
+ }
+
+ /**
+ * Sets a boolean value. If true, subscribes turnSignal data
+ * @param turnSignal a boolean value
+ */
+ public void setTurnSignal(Boolean turnSignal) { setParameters(KEY_TURN_SIGNAL, turnSignal); }
+
+ /**
+ * Gets a boolean value. If true, means the turnSignal data has been subscribed.
+ * @return a Boolean value.
+ */
+ public Boolean getTurnSignal() { return getBoolean(KEY_TURN_SIGNAL); }
+
+ /**
+ * Sets a boolean value. If true, subscribes electronicParkBrakeStatus data
+ * @param electronicParkBrakeStatus a boolean value
+ */
+ public void setElectronicParkBrakeStatus(boolean electronicParkBrakeStatus){
+ setParameters(KEY_ELECTRONIC_PARK_BRAKE_STATUS, electronicParkBrakeStatus);
+ }
+
+ /**
+ * Gets a boolean value. If true, means the electronicParkBrakeStatus data has been subscribed.
+ * @return a Boolean value.
+ */
+ public Boolean getElectronicParkBrakeStatus(){
+ return getBoolean(KEY_ELECTRONIC_PARK_BRAKE_STATUS);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java
index 86f23c69b..47d32936d 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java
@@ -21,6 +21,7 @@ public class SubscribeVehicleDataResponse extends RPCResponse {
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
public static final String KEY_ENGINE_TORQUE = "engineTorque";
+ public static final String KEY_ENGINE_OIL_LIFE = "engineOilLife";
public static final String KEY_ODOMETER = "odometer";
public static final String KEY_GPS = "gps";
public static final String KEY_FUEL_LEVEL_STATE = "fuelLevel_State";
@@ -38,6 +39,9 @@ public class SubscribeVehicleDataResponse extends RPCResponse {
public static final String KEY_EMERGENCY_EVENT = "emergencyEvent";
public static final String KEY_CLUSTER_MODE_STATUS = "clusterModeStatus";
public static final String KEY_MY_KEY = "myKey";
+ public static final String KEY_FUEL_RANGE = "fuelRange";
+ public static final String KEY_TURN_SIGNAL = "turnSignal";
+ public static final String KEY_ELECTRONIC_PARK_BRAKE_STATUS = "electronicParkBrakeStatus";
/**
* Constructs a new SubscribeVehicleDataResponse object
@@ -338,6 +342,21 @@ public class SubscribeVehicleDataResponse extends RPCResponse {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ENGINE_TORQUE);
}
/**
+ * Sets Engine Oil Life
+ * @param engineOilLife
+ */
+ public void setEngineOilLife(VehicleDataResult engineOilLife) {
+ setParameters(KEY_ENGINE_OIL_LIFE, engineOilLife);
+ }
+ /**
+ * Gets Engine Oil Life
+ * @return VehicleDataResult
+ */
+ @SuppressWarnings("unchecked")
+ public VehicleDataResult getEngineOilLife() {
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ENGINE_OIL_LIFE);
+ }
+ /**
* Sets AccPedal Position
* @param accPedalPosition
*/
@@ -396,5 +415,55 @@ public class SubscribeVehicleDataResponse extends RPCResponse {
@SuppressWarnings("unchecked")
public VehicleDataResult getMyKey() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_MY_KEY);
- }
+ }
+
+ /**
+ * Sets Fuel Range
+ * @param fuelRange
+ */
+ public void setFuelRange(VehicleDataResult fuelRange) {
+ setParameters(KEY_FUEL_RANGE, fuelRange);
+ }
+
+ /**
+ * Gets Fuel Range
+ * @return VehicleDataResult
+ */
+ @SuppressWarnings("unchecked")
+ public VehicleDataResult getFuelRange() {
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_FUEL_RANGE);
+ }
+
+ /**
+ * Sets turnSignal
+ * @param turnSignal
+ */
+ public void setTurnSignal(VehicleDataResult turnSignal) {
+ setParameters(KEY_TURN_SIGNAL, turnSignal);
+ }
+
+ /**
+ * Gets turnSignal
+ * @return VehicleDataResult
+ */
+ @SuppressWarnings("unchecked")
+ public VehicleDataResult getTurnSignal() {
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_TURN_SIGNAL);
+ }
+
+ /**
+ * Sets electronicParkBrakeStatus
+ * @param electronicParkBrakeStatus
+ */
+ public void setElectronicParkBrakeStatus(VehicleDataResult electronicParkBrakeStatus){
+ setParameters(KEY_ELECTRONIC_PARK_BRAKE_STATUS, electronicParkBrakeStatus);
+ }
+
+ /**
+ * Gets electronicParkBrakeStatus
+ * @return VehicleDataResult
+ */
+ public VehicleDataResult getElectronicParkBrakeStatus(){
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ELECTRONIC_PARK_BRAKE_STATUS);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemRequest.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemRequest.java
index 7c614c447..02aca878d 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemRequest.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemRequest.java
@@ -29,7 +29,14 @@ import java.util.List;
* <td></td>
* <td>SmartDeviceLink 3.0 </td>
* </tr>
- *
+ * <tr>
+ * <td>requestSubType</td>
+ * <td>String</td>
+ * <td>This parameter is filled for supporting OEM proprietary data exchanges.</td>
+ * <td>N</td>
+ * <td>Max Length: 255</td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
* <tr>
* <td>fileName</td>
* <td>String</td>
@@ -48,6 +55,7 @@ import java.util.List;
public class SystemRequest extends RPCRequest {
public static final String KEY_FILE_NAME = "fileName";
public static final String KEY_REQUEST_TYPE = "requestType";
+ public static final String KEY_REQUEST_SUB_TYPE = "requestSubType";
public static final String KEY_DATA = "data";
/**
* Constructs a new SystemRequest object
@@ -98,4 +106,12 @@ public class SystemRequest extends RPCRequest {
public void setRequestType(@NonNull RequestType requestType) {
setParameters(KEY_REQUEST_TYPE, requestType);
}
+
+ public String getRequestSubType() {
+ return getString(KEY_REQUEST_SUB_TYPE);
+ }
+
+ public void setRequestSubType(String requestSubType) {
+ setParameters(KEY_REQUEST_SUB_TYPE, requestSubType);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TemplateColorScheme.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TemplateColorScheme.java
new file mode 100644
index 000000000..2e5d41bd7
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TemplateColorScheme.java
@@ -0,0 +1,111 @@
+package com.smartdevicelink.proxy.rpc;
+
+import com.smartdevicelink.proxy.RPCStruct;
+import java.util.Hashtable;
+
+/**
+ * A color scheme for all display layout templates.
+ * <p><b> Parameter List</b></p>
+ * <table border="1" rules="all">
+ * <tr>
+ * <th>Name</th>
+ * <th>Type</th>
+ * <th>Description</th>
+ * <th>Reg.</th>
+ * <th>Version Available</th>
+ * </tr>
+ * <tr>
+ * <td>primaryColor</td>
+ * <td>RGBColor</td>
+ * <td>The primary "accent" color</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ * <tr>
+ * <td>secondaryColor</td>
+ * <td>RGBColor</td>
+ * <td>The secondary "accent" color</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ * <tr>
+ * <td>backgroundColor</td>
+ * <td>RGBColor</td>
+ * <td>The color of the background</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
+ * </table>
+ * @since SmartDeviceLink 4.6
+ */
+public class TemplateColorScheme extends RPCStruct {
+
+ public static final String KEY_PRIMARY_COLOR = "primaryColor";
+ public static final String KEY_SECONDARY_COLOR = "secondaryColor";
+ public static final String KEY_BACKGROUND_COLOR = "backgroundColor";
+
+ /**
+ * Constructs a new TemplateColorScheme object
+ */
+ public TemplateColorScheme(){
+ }
+
+ /**
+ * Constructs a new TemplateColorScheme object indicated by the Hashtable parameter
+ * @param hash The Hashtable to use
+ */
+ public TemplateColorScheme(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Sets the primaryColor of the scheme
+ * @param color an RGBColor object representing the primaryColor
+ */
+ public void setPrimaryColor(RGBColor color) {
+ setValue(KEY_PRIMARY_COLOR, color);
+ }
+
+ /**
+ * Gets the primaryColor of the scheme
+ * @return an RGBColor object representing the primaryColor
+ */
+ public RGBColor getPrimaryColor() {
+ return (RGBColor) getObject(RGBColor.class, KEY_PRIMARY_COLOR);
+ }
+
+ /**
+ * Sets the secondaryColor of the scheme
+ * @param color an RGBColor object representing the secondaryColor
+ */
+ public void setSecondaryColor(RGBColor color) {
+ setValue(KEY_SECONDARY_COLOR, color);
+ }
+
+ /**
+ * Gets the secondaryColor of the scheme
+ * @return an RGBColor object representing the secondaryColor
+ */
+ public RGBColor getSecondaryColor() {
+ return (RGBColor) getObject(RGBColor.class, KEY_SECONDARY_COLOR);
+ }
+
+ /**
+ * Sets the backgroundColor of the scheme
+ * @param color an RGBColor object representing the backgroundColor
+ */
+ public void setBackgroundColor(RGBColor color) {
+ setValue(KEY_BACKGROUND_COLOR, color);
+ }
+
+ /**
+ * Gets the backgroundColor of the scheme
+ * @return an RGBColor object representing the backgroundColor
+ */
+ public RGBColor getBackgroundColor() {
+ return (RGBColor) getObject(RGBColor.class, KEY_BACKGROUND_COLOR);
+ }
+}
+
+
+
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnregisterAppInterface.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnregisterAppInterface.java
index a00e375bd..b832d81c4 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnregisterAppInterface.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnregisterAppInterface.java
@@ -36,4 +36,4 @@ public class UnregisterAppInterface extends RPCRequest {
public UnregisterAppInterface(Hashtable<String, Object> hash) {
super(hash);
}
-} \ No newline at end of file
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java
index 8a50ec286..d8dfa702a 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java
@@ -158,6 +158,14 @@ import com.smartdevicelink.proxy.RPCRequest;
* <td>SmartDeviceLink 2.0 </td>
* </tr>
* <tr>
+ * <td>engineOilLife</td>
+ * <td>Boolean</td>
+ * <td>The estimated percentage of remaining oil life of the engine</td>
+ * <td>N</td>
+ * <td>Subscribable</td>
+ * <td>SmartDeviceLink 4.6 </td>
+ * </tr>
+ * <tr>
* <td>accPedalPosition</td>
* <td>Boolean</td>
* <td>Accelerator pedal position (percentage depressed)</td>
@@ -213,6 +221,14 @@ import com.smartdevicelink.proxy.RPCRequest;
* <td>Subscribable</td>
* <td>SmartDeviceLink 2.0 </td>
* </tr>
+ * <tr>
+ * <td>turnSignal</td>
+ * <td>Boolean</td>
+ * <td>@see TurnSignal</td>
+ * <td>N</td>
+ * <td>Subscribable</td>
+ * <td>SmartDeviceLink 4.6 </td>
+ * </tr>
* </table>
* <p><b> Response</b></p>
* <p><b>Non-default Result Codes:</b></p>
@@ -238,6 +254,7 @@ public class UnsubscribeVehicleData extends RPCRequest {
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
public static final String KEY_ENGINE_TORQUE = "engineTorque";
+ public static final String KEY_ENGINE_OIL_LIFE = "engineOilLife";
public static final String KEY_ODOMETER = "odometer";
public static final String KEY_GPS = "gps";
public static final String KEY_FUEL_LEVEL_STATE = "fuelLevel_State";
@@ -255,7 +272,9 @@ public class UnsubscribeVehicleData extends RPCRequest {
public static final String KEY_EMERGENCY_EVENT = "emergencyEvent";
public static final String KEY_CLUSTER_MODE_STATUS = "clusterModeStatus";
public static final String KEY_MY_KEY = "myKey";
-
+ public static final String KEY_FUEL_RANGE = "fuelRange";
+ public static final String KEY_TURN_SIGNAL = "turnSignal";
+ public static final String KEY_ELECTRONIC_PARK_BRAKE_STATUS = "electronicParkBrakeStatus";
/**
* Constructs a new UnsubscribeVehicleData object
@@ -634,24 +653,46 @@ public class UnsubscribeVehicleData extends RPCRequest {
/**
* Sets a boolean value. If true, unsubscribes Engine Torque data
- *
+ *
* @param engineTorque
* a boolean value
*/
- public void setEngineTorque(Boolean engineTorque) {
+ public void setEngineTorque(Boolean engineTorque) {
setParameters(KEY_ENGINE_TORQUE, engineTorque);
- }
+ }
/**
* Gets a boolean value. If true, means the Engine Torque data has been
* unsubscribed.
- *
+ *
* @return Boolean -a Boolean value. If true, means the Engine Torque data
* has been unsubscribed.
*/
- public Boolean getEngineTorque() {
- return getBoolean(KEY_ENGINE_TORQUE);
- }
+ public Boolean getEngineTorque() {
+ return getBoolean(KEY_ENGINE_TORQUE);
+ }
+
+ /**
+ * Sets a boolean value. If true, unsubscribes Engine Oil Life data
+ *
+ * @param engineOilLife
+ * a boolean value
+ */
+ public void setEngineOilLife(Boolean engineOilLife) {
+ setParameters(KEY_ENGINE_OIL_LIFE, engineOilLife);
+ }
+
+ /**
+ * Gets a boolean value. If true, means the Engine Oil Life data has been
+ * unsubscribed.
+ *
+ * @return Boolean -a Boolean value. If true, means the Engine Oil Life data
+ * has been unsubscribed.
+ */
+ public Boolean getEngineOilLife() {
+ return getBoolean(KEY_ENGINE_OIL_LIFE);
+ }
+
/**
* Sets a boolean value. If true, unsubscribes accPedalPosition data
@@ -711,5 +752,54 @@ public class UnsubscribeVehicleData extends RPCRequest {
}
public Boolean getMyKey() {
return getBoolean(KEY_MY_KEY);
- }
+ }
+
+ /**
+ * Sets a boolean value. If true, unsubscribes fuelRange data
+ *
+ * @param fuelRange
+ * a boolean value
+ */
+ public void setFuelRange(Boolean fuelRange) {
+ setParameters(KEY_FUEL_RANGE, fuelRange);
+ }
+
+ /**
+ * Gets a boolean value. If true, means the fuelRange data has been
+ * unsubscribed.
+ *
+ * @return Boolean -a Boolean value. If true, means the fuelRange data
+ * has been unsubscribed.
+ */
+ public Boolean getFuelRange() {
+ return getBoolean(KEY_FUEL_RANGE);
+ }
+
+ /**
+ * Sets a boolean value. If true, subscribes turnSignal data
+ * @param turnSignal a boolean value
+ */
+ public void setTurnSignal(Boolean turnSignal) { setParameters(KEY_TURN_SIGNAL, turnSignal); }
+
+ /**
+ * Gets a boolean value. If true, means the turnSignal data has been subscribed.
+ * @return a Boolean value.
+ */
+ public Boolean getTurnSignal() { return getBoolean(KEY_TURN_SIGNAL); }
+
+ /**
+ * Sets a boolean value. If true, subscribes electronicParkBrakeStatus data
+ * @param electronicParkBrakeStatus a boolean value
+ */
+ public void setElectronicParkBrakeStatus(Boolean electronicParkBrakeStatus) {
+ setParameters(KEY_ELECTRONIC_PARK_BRAKE_STATUS, electronicParkBrakeStatus);
+ }
+
+ /**
+ * Gets a boolean value. If true, means the electronicParkBrakeStatus data has been subscribed.
+ * @return a Boolean value.
+ */
+ public Boolean getElectronicParkBrakeStatus() {
+ return getBoolean(KEY_ELECTRONIC_PARK_BRAKE_STATUS);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java
index bba857522..0ed8aac33 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java
@@ -24,6 +24,7 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse {
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
public static final String KEY_ENGINE_TORQUE = "engineTorque";
+ public static final String KEY_ENGINE_OIL_LIFE = "engineOilLife";
public static final String KEY_ODOMETER = "odometer";
public static final String KEY_GPS = "gps";
public static final String KEY_FUEL_LEVEL_STATE = "fuelLevel_State";
@@ -41,6 +42,9 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse {
public static final String KEY_EMERGENCY_EVENT = "emergencyEvent";
public static final String KEY_CLUSTER_MODE_STATUS = "clusterModeStatus";
public static final String KEY_MY_KEY = "myKey";
+ public static final String KEY_FUEL_RANGE = "fuelRange";
+ public static final String KEY_TURN_SIGNAL = "turnSignal";
+ public static final String KEY_ELECTRONIC_PARK_BRAKE_STATUS = "electronicParkBrakeStatus";
/**
* Constructs a new UnsubscribeVehicleDataResponse object
@@ -343,6 +347,21 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ENGINE_TORQUE);
}
/**
+ * Sets Engine Oil Life
+ * @param engineOilLife
+ */
+ public void setEngineOilLife(VehicleDataResult engineOilLife) {
+ setParameters(KEY_ENGINE_OIL_LIFE, engineOilLife);
+ }
+ /**
+ * Gets Engine Oil Life
+ * @return VehicleDataResult
+ */
+ @SuppressWarnings("unchecked")
+ public VehicleDataResult getEngineOilLife() {
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ENGINE_OIL_LIFE);
+ }
+ /**
* Sets AccPedal Position
* @param accPedalPosition
*/
@@ -401,5 +420,55 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse {
@SuppressWarnings("unchecked")
public VehicleDataResult getMyKey() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_MY_KEY);
- }
+ }
+
+ /**
+ * Sets Fuel Range
+ * @param fuelRange
+ */
+ public void setFuelRange(VehicleDataResult fuelRange) {
+ setParameters(KEY_FUEL_RANGE, fuelRange);
+ }
+
+ /**
+ * Gets Fuel Range
+ * @return VehicleDataResult
+ */
+ @SuppressWarnings("unchecked")
+ public VehicleDataResult getFuelRange() {
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_FUEL_RANGE);
+ }
+
+ /**
+ * Sets turnSignal
+ * @param turnSignal
+ */
+ public void setTurnSignal(VehicleDataResult turnSignal) {
+ setParameters(KEY_TURN_SIGNAL, turnSignal);
+ }
+
+ /**
+ * Gets turnSignal
+ * @return VehicleDataResult
+ */
+ @SuppressWarnings("unchecked")
+ public VehicleDataResult getTurnSignal() {
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_TURN_SIGNAL);
+ }
+
+ /**
+ * Sets electronicParkBrakeStatus
+ * @param electronicParkBrakeStatus
+ */
+ public void setElectronicParkBrakeStatus(VehicleDataResult electronicParkBrakeStatus){
+ setParameters(KEY_ELECTRONIC_PARK_BRAKE_STATUS, electronicParkBrakeStatus);
+ }
+
+ /**
+ * Gets electronicParkBrakeStatus
+ * @return VehicleDataResult
+ */
+ public VehicleDataResult getElectronicParkBrakeStatus(){
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ELECTRONIC_PARK_BRAKE_STATUS);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ElectronicParkBrakeStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ElectronicParkBrakeStatus.java
new file mode 100644
index 000000000..f3951c7a1
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ElectronicParkBrakeStatus.java
@@ -0,0 +1,38 @@
+package com.smartdevicelink.proxy.rpc.enums;
+
+public enum ElectronicParkBrakeStatus {
+ /**
+ * Park brake actuators have been fully applied.
+ */
+ CLOSED,
+ /**
+ * Park brake actuators are transitioning to either Apply/Closed or Release/Open state.
+ */
+ TRANSITION,
+ /**
+ * Park brake actuators are released.
+ */
+ OPEN,
+ /**
+ * When driver pulls the Electronic Park Brake switch while driving "at speed".
+ */
+ DRIVE_ACTIVE,
+ /**
+ * When system has a fault or is under maintenance.
+ */
+ FAULT,
+ ;
+
+ /**
+ * Convert String to ElectronicParkBrakeStatus
+ * @param value String
+ * @return ElectronicParkBrakeStatus
+ */
+ public static ElectronicParkBrakeStatus valueForString(String value) {
+ try{
+ return valueOf(value);
+ }catch(Exception e){
+ return null;
+ }
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/FuelType.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/FuelType.java
new file mode 100644
index 000000000..8241ebd45
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/FuelType.java
@@ -0,0 +1,31 @@
+package com.smartdevicelink.proxy.rpc.enums;
+
+public enum FuelType {
+ GASOLINE,
+ DIESEL,
+ /**
+ * For vehicles using compressed natural gas.
+ */
+ CNG,
+ /**
+ * For vehicles using liquefied petroleum gas.
+ */
+ LPG,
+ /**
+ * For FCEV (fuel cell electric vehicle).
+ */
+ HYDROGEN,
+ /**
+ * For BEV (Battery Electric Vehicle), PHEV (Plug-in Hybrid Electric Vehicle), solar vehicles and other vehicles which run on a battery.
+ */
+ BATTERY,
+ ;
+
+ public static FuelType valueForString(String value) {
+ try{
+ return valueOf(value);
+ }catch(Exception e){
+ return null;
+ }
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ImageFieldName.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ImageFieldName.java
index bf92ef5f4..586b87f5d 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ImageFieldName.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ImageFieldName.java
@@ -58,7 +58,7 @@ public enum ImageFieldName {
/** The secondary image field for ShowConstant TBT.
*
- */
+ */
showConstantTBTNextTurnIcon,
/**
* The optional image of a destination / location
@@ -66,6 +66,12 @@ public enum ImageFieldName {
* @since SmartDeviceLink 4.0
*/
locationImage,
+ /**
+ * The secondary graphic image field
+ *
+ * @since SmartDeviceLink 4.6
+ */
+ secondaryGraphic,
;
/**
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageCushion.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageCushion.java
new file mode 100644
index 000000000..ed23b4899
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageCushion.java
@@ -0,0 +1,21 @@
+package com.smartdevicelink.proxy.rpc.enums;
+
+/**
+ * List possible cushions of a multi-contour massage seat.
+ */
+public enum MassageCushion {
+ TOP_LUMBAR,
+ MIDDLE_LUMBAR,
+ BOTTOM_LUMBAR,
+ BACK_BOLSTERS,
+ SEAT_BOLSTERS,
+ ;
+
+ public static MassageCushion valueForString(String value) {
+ try {
+ return valueOf(value);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageMode.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageMode.java
new file mode 100644
index 000000000..59a200bdb
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageMode.java
@@ -0,0 +1,19 @@
+package com.smartdevicelink.proxy.rpc.enums;
+
+/**
+ * List possible modes of a massage zone.
+ */
+public enum MassageMode {
+ OFF,
+ LOW,
+ HIGH,
+ ;
+
+ public static MassageMode valueForString(String value) {
+ try {
+ return valueOf(value);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageZone.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageZone.java
new file mode 100644
index 000000000..9f0e23ffe
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MassageZone.java
@@ -0,0 +1,24 @@
+package com.smartdevicelink.proxy.rpc.enums;
+
+/**
+ * List possible zones of a multi-contour massage seat.
+ */
+public enum MassageZone {
+ /**
+ * The back of a multi-contour massage seat. or SEAT_BACK
+ */
+ LUMBAR,
+ /**
+ * The bottom a multi-contour massage seat. or SEAT_BOTTOM
+ */
+ SEAT_CUSHION,
+ ;
+
+ public static MassageZone valueForString(String value) {
+ try {
+ return valueOf(value);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ModuleType.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ModuleType.java
index faef92d36..5eaf6366e 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ModuleType.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/ModuleType.java
@@ -1,15 +1,16 @@
package com.smartdevicelink.proxy.rpc.enums;
public enum ModuleType {
- CLIMATE,
- RADIO,
- ;
+ CLIMATE,
+ RADIO,
+ SEAT,
+ ;
- public static ModuleType valueForString(String value) {
- try{
- return valueOf(value);
- }catch(Exception e){
- return null;
- }
- }
+ public static ModuleType valueForString(String value) {
+ try {
+ return valueOf(value);
+ } catch (Exception e) {
+ return null;
+ }
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/RequestType.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/RequestType.java
index 0ddcfef3a..ab19db963 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/RequestType.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/RequestType.java
@@ -67,7 +67,11 @@ public enum RequestType {
/**
* @since SmartDeviceLink 4.0
*/
- FOTA,
+ FOTA,
+ /**
+ * @since SmartDeviceLink 4.6
+ */
+ OEM_SPECIFIC,
;
/**
* Convert String to RequestType
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/Result.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/Result.java
index c0a15f235..25b9a16f5 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/Result.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/Result.java
@@ -177,6 +177,11 @@ public enum Result {
* The requested data is read only thus cannot be change via remote control
*/
READ_ONLY,
+ /**
+ * The data sent failed to pass CRC check in receiver end
+ */
+ CORRUPTED_DATA,
+
;
/**
* Convert String to Result
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SeatMemoryActionType.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SeatMemoryActionType.java
new file mode 100644
index 000000000..e81b2694a
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SeatMemoryActionType.java
@@ -0,0 +1,25 @@
+package com.smartdevicelink.proxy.rpc.enums;
+
+public enum SeatMemoryActionType {
+ /**
+ * Save current seat positions and settings to seat memory.
+ */
+ SAVE,
+ /**
+ * Restore / apply the seat memory settings to the current seat.
+ */
+ RESTORE,
+ /**
+ * No action to be performed.
+ */
+ NONE,
+ ;
+
+ public static SeatMemoryActionType valueForString(String value) {
+ try {
+ return valueOf(value);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SpeechCapabilities.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SpeechCapabilities.java
index 2b5d17740..7d8330d0a 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SpeechCapabilities.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SpeechCapabilities.java
@@ -30,7 +30,12 @@ public enum SpeechCapabilities {
* The SDL platform can play the prerecorded sound of 1 second of silence (i.e. no sound at all).
*/
- SILENCE;
+ SILENCE,
+
+ /**
+ * The SDL platform can play audio files in conjunction with/without TTS text.
+ */
+ FILE;
/**
* Convert String to SpeechCapabilities
* @param value String
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SupportedSeat.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SupportedSeat.java
new file mode 100644
index 000000000..c68f2e79d
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SupportedSeat.java
@@ -0,0 +1,18 @@
+package com.smartdevicelink.proxy.rpc.enums;
+
+/**
+ * List possible seats that is a remote controllable seat.
+ */
+public enum SupportedSeat {
+ DRIVER,
+ FRONT_PASSENGER,
+ ;
+
+ public static SupportedSeat valueForString(String value) {
+ try {
+ return valueOf(value);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/TPMS.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/TPMS.java
new file mode 100644
index 000000000..a70dc5aa0
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/TPMS.java
@@ -0,0 +1,51 @@
+package com.smartdevicelink.proxy.rpc.enums;
+
+/**
+ * Enums for Tire Pressure Monitoring Systems
+ *
+ * @since SmartDeviceLink 4.6
+ */
+public enum TPMS {
+
+ /**
+ * If set the status of the tire is not known.
+ */
+ UNKNOWN,
+ /**
+ * TPMS does not function.
+ */
+ SYSTEM_FAULT,
+ /**
+ * The sensor of the tire does not function.
+ */
+ SENSOR_FAULT,
+ /**
+ * TPMS is reporting a low tire pressure for the tire.
+ */
+ LOW,
+ /**
+ * TPMS is active and the tire pressure is monitored.
+ */
+ SYSTEM_ACTIVE,
+ /**
+ * TPMS is reporting that the tire must be trained.
+ */
+ TRAIN,
+ /**
+ * TPMS reports the training for the tire is completed.
+ */
+ TRAINING_COMPLETE,
+ /**
+ * TPMS reports the tire is not trained.
+ */
+ NOT_TRAINED,
+ ;
+
+ public static TPMS valueForString(String value) {
+ try{
+ return valueOf(value);
+ }catch(Exception e){
+ return null;
+ }
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/TurnSignal.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/TurnSignal.java
new file mode 100644
index 000000000..143deed58
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/TurnSignal.java
@@ -0,0 +1,35 @@
+package com.smartdevicelink.proxy.rpc.enums;
+
+/**
+ * Enumeration that describes the status of the turn light indicator.
+ *
+ * @since SmartDeviceLink 4.6
+ */
+public enum TurnSignal {
+
+ /**
+ * Turn signal is OFF
+ */
+ OFF,
+ /**
+ * Left turn signal is on
+ */
+ LEFT,
+ /**
+ * Right turn signal is on
+ */
+ RIGHT,
+ /**
+ * Both signals (left and right) are on.
+ */
+ BOTH,
+ ;
+
+ public static TurnSignal valueForString(String value) {
+ try{
+ return valueOf(value);
+ }catch(Exception e){
+ return null;
+ }
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VehicleDataType.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VehicleDataType.java
index adebca268..01525ef4a 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VehicleDataType.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VehicleDataType.java
@@ -82,6 +82,10 @@ public enum VehicleDataType {
*/
VEHICLEDATA_ENGINETORQUE,
/**
+ * Notifies ENGINEOILLIFEData may be subscribed
+ */
+ VEHICLEDATA_ENGINEOILLIFE,
+ /**
* Notifies ACCPEDALData may be subscribed
*/
VEHICLEDATA_ACCPEDAL,
@@ -108,8 +112,22 @@ public enum VehicleDataType {
/**
* Notifies MYKEYData may be subscribed
*/
- VEHICLEDATA_MYKEY;
- /**
+ VEHICLEDATA_MYKEY,
+
+ VEHICLEDATA_FUELRANGE,
+
+ /**
+ * Notifies TURNSIGNALData may be subscribed
+ */
+ VEHICLEDATA_TURNSIGNAL,
+
+ /**
+ * Notifies ELECTRONICPARKBRAKESTATUSData may be subscribed
+ */
+ VEHICLEDATA_ELECTRONICPARKBRAKESTATUS,
+ ;
+
+ /**
* Convert String to VehicleDataType
* @param value String
* @return VehicleDataType
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VideoStreamingState.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VideoStreamingState.java
new file mode 100644
index 000000000..6c6b4ad5e
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VideoStreamingState.java
@@ -0,0 +1,23 @@
+package com.smartdevicelink.proxy.rpc.enums;
+
+/**
+ * Enumeration that describes possible states of video streaming.
+ * @since SmartDeviceLink 4.6
+ */
+public enum VideoStreamingState {
+ /**
+ * @since SmartDeviceLink 4.6
+ */
+ STREAMABLE,
+ /**
+ * @since SmartDeviceLink 4.6
+ */
+ NOT_STREAMABLE;
+ public static VideoStreamingState valueForString(String value) {
+ try{
+ return valueOf(value);
+ }catch(Exception e){
+ return null;
+ }
+ }
+}