diff options
author | Bilal <bilal@Bilals-MBP.localdomain> | 2018-08-23 11:11:03 -0400 |
---|---|---|
committer | Bilal <bilal@Bilals-MBP.localdomain> | 2018-08-23 11:11:03 -0400 |
commit | fc2515ff7e24189a2d642ce5f207f52fdfb011e8 (patch) | |
tree | c4a831a4e70448a6ef6bf3627dc206641bf1c74a | |
parent | 9380683d7effa3cc7f34bf5c7dcb4849142cc898 (diff) | |
parent | ae07b1af97a57a5dc372503b49d9e44433fb1830 (diff) | |
download | sdl_android-fc2515ff7e24189a2d642ce5f207f52fdfb011e8.tar.gz |
Merge branch 'develop' into feature/issue_738
# Conflicts:
# sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
87 files changed, 6015 insertions, 489 deletions
diff --git a/sdl_android/build.gradle b/sdl_android/build.gradle index e4e5a44e1..ec9ff5cbc 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 6 + versionName "4.6.2" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" resValue "string", "SDL_LIB_VERSION", '\"' + versionName + '\"' } @@ -40,7 +40,7 @@ dependencies { }) testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:2.9.0' - api 'com.android.support:support-annotations:27.1.1' + api 'com.android.support:support-annotations:27.+' } buildscript { @@ -54,4 +54,4 @@ buildscript { } } -apply from: 'bintray.gradle'
\ No newline at end of file +apply from: 'bintray.gradle' 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 bfb6107a5..81b25ef87 100644 --- a/sdl_android/src/androidTest/assets/json/GetVehicleData.json +++ b/sdl_android/src/androidTest/assets/json/GetVehicleData.json @@ -29,7 +29,9 @@ "emergencyEvent":false, "clusterModeStatus":true, "myKey":true, - "fuelRange":true + "fuelRange":true, + "turnSignal":true, + "electronicParkBrakeStatus":true } }, "response":{ @@ -75,6 +77,7 @@ "speed":30.5 }, "fuelLevel_State":"ALERT", + "turnSignal":"OFF", "instantFuelConsumption":2.76, "beltStatus":{ "driverBeltDeployed":"NO", @@ -155,6 +158,7 @@ "myKey":{ "e911Override":"NO_DATA_EXISTS" }, + "electronicParkBrakeStatus":"CLOSED", "fuelRange":[ { "type":"GASOLINE", diff --git a/sdl_android/src/androidTest/assets/json/SetMediaClockTimer.json b/sdl_android/src/androidTest/assets/json/SetMediaClockTimer.json index af1671200..e4950d05d 100644 --- a/sdl_android/src/androidTest/assets/json/SetMediaClockTimer.json +++ b/sdl_android/src/androidTest/assets/json/SetMediaClockTimer.json @@ -13,7 +13,8 @@ "seconds":19, "hours":12 }, - "updateMode":"COUNTDOWN" + "updateMode":"COUNTDOWN", + "audioStreamingIndicator":"PLAY" } }, "response":{ diff --git a/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json b/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json index a2b0cfeea..92cf00a1b 100644 --- a/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json +++ b/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json @@ -28,7 +28,9 @@ "emergencyEvent":false, "clusterModeStatus":true, "myKey":true, - "fuelRange":true + "fuelRange":true, + "turnSignal":true, + "electronicParkBrakeStatus":true } }, "response":{ @@ -138,6 +140,14 @@ "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/UnsubscribeVehicleData.json b/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json index 276e67251..d01b99aa8 100644 --- a/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json +++ b/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json @@ -28,7 +28,9 @@ "emergencyEvent":false, "clusterModeStatus":true, "myKey":true, - "fuelRange":true + "fuelRange":true, + "turnSignal":true, + "electronicParkBrakeStatus":true } }, "response":{ @@ -138,6 +140,14 @@ "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 b6a2d7611..36a2deef9 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java @@ -20,10 +20,12 @@ 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; @@ -33,10 +35,13 @@ 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; @@ -58,6 +63,7 @@ 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; @@ -92,7 +98,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; @@ -103,8 +113,10 @@ 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; @@ -113,7 +125,6 @@ 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; @@ -139,7 +150,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."; @@ -148,14 +159,14 @@ 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; @@ -186,9 +197,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; @@ -204,6 +217,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(); @@ -213,7 +231,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; @@ -221,24 +239,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; @@ -260,6 +279,7 @@ public class Test { 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 AudioStreamingIndicator GENERAL_AUDIO_STREAMING_INDICATOR = AudioStreamingIndicator.PLAY; public static final String GENERAL_APP_ID = "123e4567e8"; public static final String GENERAL_FULL_APP_ID = "123e4567-e89b-12d3-a456-426655440000"; @@ -270,12 +290,14 @@ 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 SeatControlCapabilities GENERAL_SEATCONTROLCAPABILITIES = new SeatControlCapabilities(); public static final HMICapabilities GENERAL_HMICAPABILITIES = new HMICapabilities(); @@ -295,6 +317,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); @@ -316,16 +340,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(); @@ -348,11 +373,11 @@ 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(); @@ -367,7 +392,11 @@ public class Test { 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); @@ -385,6 +414,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); @@ -415,16 +461,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); @@ -451,24 +505,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); @@ -476,64 +530,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); @@ -541,48 +596,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); @@ -631,6 +686,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); @@ -669,7 +742,7 @@ public class Test { 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); @@ -677,14 +750,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); @@ -692,25 +765,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); @@ -718,20 +791,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); @@ -740,19 +813,19 @@ 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); @@ -771,17 +844,17 @@ public class Test { 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); @@ -823,33 +896,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)); @@ -857,11 +931,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)); @@ -870,9 +944,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); } - } + } } 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 e65b045f2..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; @@ -33,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; @@ -46,10 +45,13 @@ 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; @@ -71,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{ @@ -708,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 ); @@ -906,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 ); @@ -1541,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); } @@ -1634,7 +1802,7 @@ public class Validator{ return true; } - + public static boolean validateDisplayCapabilities (DisplayCapabilities item1, DisplayCapabilities item2) { if (item1 == null) { return ( item2 == null ); @@ -1650,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; @@ -1892,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 535a18ced..22ce7a15b 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java @@ -22,6 +22,7 @@ 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; @@ -31,6 +32,7 @@ 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; @@ -74,6 +76,8 @@ public class VehicleDataHelper{ 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 @@ -349,6 +353,8 @@ public class VehicleDataHelper{ 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); @@ -378,6 +384,8 @@ public class VehicleDataHelper{ 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/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/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/enums/AudioStreamingIndicatorTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingIndicatorTests.java new file mode 100644 index 000000000..85312ecde --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingIndicatorTests.java @@ -0,0 +1,80 @@ +package com.smartdevicelink.test.rpc.enums; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import junit.framework.TestCase; + +import com.smartdevicelink.proxy.rpc.enums.AudioStreamingIndicator; + +/** + * This is a unit test class for the SmartDeviceLink library project class : + * {@link com.smartdevicelink.proxy.rpc.enums.AudioStreamingIndicator} + */ +public class AudioStreamingIndicatorTests extends TestCase { + + /** + * Verifies that the enum values are not null upon valid assignment. + */ + public void testValidEnums () { + String example = "PLAY_PAUSE"; + AudioStreamingIndicator enumPlayPause = AudioStreamingIndicator.valueForString(example); + example = "PLAY"; + AudioStreamingIndicator enumPlay = AudioStreamingIndicator.valueForString(example); + example = "PAUSE"; + AudioStreamingIndicator enumPause = AudioStreamingIndicator.valueForString(example); + example = "STOP"; + AudioStreamingIndicator enumStop = AudioStreamingIndicator.valueForString(example); + + + assertNotNull("PLAY_PAUSE returned null", enumPlayPause); + assertNotNull("PLAY returned null", enumPlay); + assertNotNull("PAUSE returned null", enumPause); + assertNotNull("STOP returned null", enumStop); + } + + /** + * Verifies that an invalid assignment is null. + */ + public void testInvalidEnum () { + String example = "pLayPauZe"; + try { + AudioStreamingIndicator temp = AudioStreamingIndicator.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 { + AudioStreamingIndicator temp = AudioStreamingIndicator.valueForString(example); + assertNull("Result of valueForString should be null.", temp); + } + catch (NullPointerException exception) { + fail("Null string throws NullPointerException."); + } + } + + /** + * Verifies the possible enum values of AudioStreamingIndicator. + */ + public void testListEnum() { + List<AudioStreamingIndicator> enumValueList = Arrays.asList(AudioStreamingIndicator.values()); + + List<AudioStreamingIndicator> enumTestList = new ArrayList<>(); + enumTestList.add(AudioStreamingIndicator.PLAY_PAUSE); + enumTestList.add(AudioStreamingIndicator.PLAY); + enumTestList.add(AudioStreamingIndicator.PAUSE); + enumTestList.add(AudioStreamingIndicator.STOP); + + 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/AudioStreamingStateTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingStateTests.java index ab5972218..178613e53 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingStateTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingStateTests.java @@ -10,7 +10,7 @@ import com.smartdevicelink.proxy.rpc.enums.AudioStreamingState; /** * This is a unit test class for the SmartDeviceLink library project class : - * {@link com.smartdevicelink.rpc.enums.AudioStreaming} + * {@link com.smartdevicelink.proxy.rpc.enums.AudioStreamingState} */ public class AudioStreamingStateTests extends TestCase { 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/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/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/StaticIconNameTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/StaticIconNameTests.java new file mode 100644 index 000000000..b85905039 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/StaticIconNameTests.java @@ -0,0 +1,931 @@ +package com.smartdevicelink.test.rpc.enums; + +import com.smartdevicelink.proxy.rpc.enums.StaticIconName; + +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.StaticIconName} + */ +public class StaticIconNameTests extends TestCase { + + public void testValidEnums(){ + String example = "0x29"; + StaticIconName ACCEPT_CALL = StaticIconName.valueForString(example); + assertNotNull("ACCEPT_CALL returned null", ACCEPT_CALL); + + example = "0x1B"; + StaticIconName ADD_WAYPOINT = StaticIconName.valueForString(example); + assertNotNull("ADD_WAYPOINT returned null", ADD_WAYPOINT); + + example = "0x21"; + StaticIconName ALBUM = StaticIconName.valueForString(example); + assertNotNull("ALBUM returned null", ALBUM); + + example = "0x3d"; + StaticIconName AMBIENT_LIGHTING = StaticIconName.valueForString(example); + assertNotNull("AMBIENT_LIGHTING returned null", AMBIENT_LIGHTING); + + example = "0x40"; + StaticIconName ARROW_NORTH = StaticIconName.valueForString(example); + assertNotNull("ARROW_NORTH returned null", ARROW_NORTH); + + example = "0x12"; + StaticIconName AUDIO_MUTE = StaticIconName.valueForString(example); + assertNotNull("AUDIO_MUTE returned null", AUDIO_MUTE); + + example = "0x83"; + StaticIconName AUDIOBOOK_EPISODE = StaticIconName.valueForString(example); + assertNotNull("AUDIOBOOK_EPISODE returned null", AUDIOBOOK_EPISODE); + + example = "0x82"; + StaticIconName AUDIOBOOK_NARRATOR = StaticIconName.valueForString(example); + assertNotNull("AUDIOBOOK_NARRATOR returned null", AUDIOBOOK_NARRATOR); + + example = "0x45"; + StaticIconName AUXILLARY_AUDIO = StaticIconName.valueForString(example); + assertNotNull("AUXILLARY_AUDIO returned null", AUXILLARY_AUDIO); + + example = "0x86"; + StaticIconName BACK = StaticIconName.valueForString(example); + assertNotNull("BACK returned null", BACK); + + example = "0xF7"; + StaticIconName BATTERY_CAPACITY_0_OF_5 = StaticIconName.valueForString(example); + assertNotNull("BATTERY_CAPACITY_0_OF_5 returned null", BATTERY_CAPACITY_0_OF_5); + + example = "0xF8"; + StaticIconName BATTERY_CAPACITY_1_OF_5 = StaticIconName.valueForString(example); + assertNotNull("BATTERY_CAPACITY_1_OF_5 returned null", BATTERY_CAPACITY_1_OF_5); + + example = "0xF9"; + StaticIconName BATTERY_CAPACITY_2_OF_5 = StaticIconName.valueForString(example); + assertNotNull("BATTERY_CAPACITY_2_OF_5 returned null", BATTERY_CAPACITY_2_OF_5); + + example = "0xFA"; + StaticIconName BATTERY_CAPACITY_3_OF_5 = StaticIconName.valueForString(example); + assertNotNull("BATTERY_CAPACITY_3_OF_5 returned null", BATTERY_CAPACITY_3_OF_5); + + example = "0xf6"; + StaticIconName BATTERY_CAPACITY_4_OF_5 = StaticIconName.valueForString(example); + assertNotNull("BATTERY_CAPACITY_4_OF_5 returned null", BATTERY_CAPACITY_4_OF_5); + + example = "0xFB"; + StaticIconName BATTERY_CAPACITY_5_OF_5 = StaticIconName.valueForString(example); + assertNotNull("BATTERY_CAPACITY_5_OF_5 returned null", BATTERY_CAPACITY_5_OF_5); + + example = "0x09"; + StaticIconName BLUETOOTH_AUDIO_SOURCE = StaticIconName.valueForString(example); + assertNotNull("BLUETOOTH_AUDIO_SOURCE returned null", BLUETOOTH_AUDIO_SOURCE); + + example = "0xcc"; + StaticIconName BLUETOOTH1 = StaticIconName.valueForString(example); + assertNotNull("BLUETOOTH1 returned null", BLUETOOTH1); + + example = "0xCD"; + StaticIconName BLUETOOTH2 = StaticIconName.valueForString(example); + assertNotNull("BLUETOOTH2 returned null", BLUETOOTH2); + + example = "0x77"; + StaticIconName BROWSE = StaticIconName.valueForString(example); + assertNotNull("BROWSE returned null", BROWSE); + + example = "0x66"; + StaticIconName CELL_PHONE_IN_ROAMING_MODE = StaticIconName.valueForString(example); + assertNotNull("CELL_PHONE_IN_ROAMING_MODE returned null", CELL_PHONE_IN_ROAMING_MODE); + + example = "0x67"; + StaticIconName CELL_SERVICE_SIGNAL_STRENGTH_0_OF_5_BARS = StaticIconName.valueForString(example); + assertNotNull("CELL_SERVICE_SIGNAL_STRENGTH_0_OF_5_BARS returned null", CELL_SERVICE_SIGNAL_STRENGTH_0_OF_5_BARS); + + example = "0x68"; + StaticIconName CELL_SERVICE_SIGNAL_STRENGTH_1_OF_5_BARS = StaticIconName.valueForString(example); + assertNotNull("CELL_SERVICE_SIGNAL_STRENGTH_1_OF_5_BARS returned null", CELL_SERVICE_SIGNAL_STRENGTH_1_OF_5_BARS); + + example = "0x69"; + StaticIconName CELL_SERVICE_SIGNAL_STRENGTH_2_OF_5_BARS = StaticIconName.valueForString(example); + assertNotNull("CELL_SERVICE_SIGNAL_STRENGTH_2_OF_5_BARS returned null", CELL_SERVICE_SIGNAL_STRENGTH_2_OF_5_BARS); + + example = "0x6A"; + StaticIconName CELL_SERVICE_SIGNAL_STRENGTH_3_OF_5_BARS = StaticIconName.valueForString(example); + assertNotNull("CELL_SERVICE_SIGNAL_STRENGTH_3_OF_5_BARS returned null", CELL_SERVICE_SIGNAL_STRENGTH_3_OF_5_BARS); + + example = "0x6B"; + StaticIconName CELL_SERVICE_SIGNAL_STRENGTH_4_OF_5_BARS = StaticIconName.valueForString(example); + assertNotNull("CELL_SERVICE_SIGNAL_STRENGTH_4_OF_5_BARS returned null", CELL_SERVICE_SIGNAL_STRENGTH_4_OF_5_BARS); + + example = "0xd3"; + StaticIconName CELL_SERVICE_SIGNAL_STRENGTH_5_OF_5_BARS = StaticIconName.valueForString(example); + assertNotNull("CELL_SERVICE_SIGNAL_STRENGTH_5_OF_5_BARS returned null", CELL_SERVICE_SIGNAL_STRENGTH_5_OF_5_BARS); + + example = "0xc3"; + StaticIconName CHANGE_LANE_LEFT = StaticIconName.valueForString(example); + assertNotNull("CHANGE_LANE_LEFT returned null", CHANGE_LANE_LEFT); + + example = "0xc1"; + StaticIconName CHANGE_LANE_RIGHT = StaticIconName.valueForString(example); + assertNotNull("CHANGE_LANE_RIGHT returned null", CHANGE_LANE_RIGHT); + + example = "0x27"; + StaticIconName CHECK_BOX_CHECKED = StaticIconName.valueForString(example); + assertNotNull("CHECK_BOX_CHECKED returned null", CHECK_BOX_CHECKED); + + example = "0x28"; + StaticIconName CHECK_BOX_UNCHECKED = StaticIconName.valueForString(example); + assertNotNull("CHECK_BOX_UNCHECKED returned null", CHECK_BOX_UNCHECKED); + + example = "0xd1"; + StaticIconName CLIMATE = StaticIconName.valueForString(example); + assertNotNull("CLIMATE returned null", CLIMATE); + + example = "0xfc"; + StaticIconName CLOCK = StaticIconName.valueForString(example); + assertNotNull("CLOCK returned null", CLOCK); + + example = "0x1A"; + StaticIconName COMPOSE = StaticIconName.valueForString(example); + assertNotNull("COMPOSE returned null", COMPOSE); + + example = "0x5C"; + StaticIconName CONTACT = StaticIconName.valueForString(example); + assertNotNull("CONTACT returned null", CONTACT); + + example = "0x42"; + StaticIconName CONTINUE = StaticIconName.valueForString(example); + assertNotNull("CONTINUE returned null", CONTINUE); + + example = "0x7F"; + StaticIconName DASH = StaticIconName.valueForString(example); + assertNotNull("DASH returned null", DASH); + + example = "0x87"; + StaticIconName DATE = StaticIconName.valueForString(example); + assertNotNull("DATE returned null", DATE); + + example = "0x0F"; + StaticIconName DELETE = StaticIconName.valueForString(example); + assertNotNull("DELETE returned null", DELETE); + + example = "0x94"; + StaticIconName DESTINATION = StaticIconName.valueForString(example); + assertNotNull("DESTINATION returned null", DESTINATION); + + example = "0x4D"; + StaticIconName DESTINATION_FERRY_AHEAD = StaticIconName.valueForString(example); + assertNotNull("DESTINATION_FERRY_AHEAD returned null", DESTINATION_FERRY_AHEAD); + + example = "0x2B"; + StaticIconName EBOOKMARK = StaticIconName.valueForString(example); + assertNotNull("EBOOKMARK returned null", EBOOKMARK); + + example = "0x2C"; + StaticIconName END_CALL = StaticIconName.valueForString(example); + assertNotNull("END_CALL returned null", END_CALL); + + example = "0xD6"; + StaticIconName FAIL = StaticIconName.valueForString(example); + assertNotNull("FAIL returned null", FAIL); + + example = "0x08"; + StaticIconName FAST_FORWARD_30_SECS = StaticIconName.valueForString(example); + assertNotNull("FAST_FORWARD_30_SECS returned null", FAST_FORWARD_30_SECS); + + example = "0x0E"; + StaticIconName FAVORITE_HEART = StaticIconName.valueForString(example); + assertNotNull("FAVORITE_HEART returned null", FAVORITE_HEART); + + example = "0x95"; + StaticIconName FAVORITE_STAR = StaticIconName.valueForString(example); + assertNotNull("FAVORITE_STAR returned null", FAVORITE_STAR); + + example = "0x80"; + StaticIconName FAX_NUMBER = StaticIconName.valueForString(example); + assertNotNull("FAX_NUMBER returned null", FAX_NUMBER); + + example = "0x50"; + StaticIconName FILENAME = StaticIconName.valueForString(example); + assertNotNull("FILENAME returned null", FILENAME); + + example = "0x79"; + StaticIconName FILTER = StaticIconName.valueForString(example); + assertNotNull("FILTER returned null", FILTER); + + example = "0x1C"; + StaticIconName FOLDER = StaticIconName.valueForString(example); + assertNotNull("FOLDER returned null", FOLDER); + + example = "0xe9"; + StaticIconName FUEL_PRICES = StaticIconName.valueForString(example); + assertNotNull("FUEL_PRICES returned null", FUEL_PRICES); + + example = "0x0c"; + StaticIconName FULL_MAP = StaticIconName.valueForString(example); + assertNotNull("FULL_MAP returned null", FULL_MAP); + + example = "0x53"; + StaticIconName GENERIC_PHONE_NUMBER = StaticIconName.valueForString(example); + assertNotNull("GENERIC_PHONE_NUMBER returned null", GENERIC_PHONE_NUMBER); + + example = "0x4E"; + StaticIconName GENRE = StaticIconName.valueForString(example); + assertNotNull("GENRE returned null", GENRE); + + example = "0xea"; + StaticIconName GLOBAL_KEYBOARD = StaticIconName.valueForString(example); + assertNotNull("GLOBAL_KEYBOARD returned null", GLOBAL_KEYBOARD); + + example = "0xf4"; + StaticIconName HIGHWAY_EXIT_INFORMATION = StaticIconName.valueForString(example); + assertNotNull("HIGHWAY_EXIT_INFORMATION returned null", HIGHWAY_EXIT_INFORMATION); + + example = "0x55"; + StaticIconName HOME_PHONE_NUMBER = StaticIconName.valueForString(example); + assertNotNull("HOME_PHONE_NUMBER returned null", HOME_PHONE_NUMBER); + + example = "0x78"; + StaticIconName HYPERLINK = StaticIconName.valueForString(example); + assertNotNull("HYPERLINK returned null", HYPERLINK); + + example = "0x51"; + StaticIconName ID3_TAG_UNKNOWN = StaticIconName.valueForString(example); + assertNotNull("ID3_TAG_UNKNOWN returned null", ID3_TAG_UNKNOWN); + + example = "0x57"; + StaticIconName INCOMING_CALLS = StaticIconName.valueForString(example); + assertNotNull("INCOMING_CALLS returned null", INCOMING_CALLS); + + example = "0x5d"; + StaticIconName INFORMATION = StaticIconName.valueForString(example); + assertNotNull("INFORMATION returned null", INFORMATION); + + example = "0x0D"; + StaticIconName IPOD_MEDIA_SOURCE = StaticIconName.valueForString(example); + assertNotNull("IPOD_MEDIA_SOURCE returned null", IPOD_MEDIA_SOURCE); + + example = "0x02"; + StaticIconName JOIN_CALLS = StaticIconName.valueForString(example); + assertNotNull("JOIN_CALLS returned null", JOIN_CALLS); + + example = "0x46"; + StaticIconName KEEP_LEFT = StaticIconName.valueForString(example); + assertNotNull("KEEP_LEFT returned null", KEEP_LEFT); + + example = "0x48"; + StaticIconName KEEP_RIGHT = StaticIconName.valueForString(example); + assertNotNull("KEEP_RIGHT returned null", KEEP_RIGHT); + + example = "0x7D"; + StaticIconName KEY = StaticIconName.valueForString(example); + assertNotNull("KEY returned null", KEY); + + example = "0x9f"; + StaticIconName LEFT = StaticIconName.valueForString(example); + assertNotNull("LEFT returned null", LEFT); + + example = "0x4B"; + StaticIconName LEFT_ARROW = StaticIconName.valueForString(example); + assertNotNull("LEFT_ARROW returned null", LEFT_ARROW); + + example = "0xaf"; + StaticIconName LEFT_EXIT = StaticIconName.valueForString(example); + assertNotNull("LEFT_EXIT returned null", LEFT_EXIT); + + example = "0x06"; + StaticIconName LINE_IN_AUDIO_SOURCE = StaticIconName.valueForString(example); + assertNotNull("LINE_IN_AUDIO_SOURCE returned null", LINE_IN_AUDIO_SOURCE); + + example = "0x22"; + StaticIconName LOCKED = StaticIconName.valueForString(example); + assertNotNull("LOCKED returned null", LOCKED); + + example = "0x17"; + StaticIconName MEDIA_CONTROL_LEFT_ARROW = StaticIconName.valueForString(example); + assertNotNull("MEDIA_CONTROL_LEFT_ARROW returned null", MEDIA_CONTROL_LEFT_ARROW); + + example = "0x20"; + StaticIconName MEDIA_CONTROL_RECORDING = StaticIconName.valueForString(example); + assertNotNull("MEDIA_CONTROL_RECORDING returned null", MEDIA_CONTROL_RECORDING); + + example = "0x15"; + StaticIconName MEDIA_CONTROL_RIGHT_ARROW = StaticIconName.valueForString(example); + assertNotNull("MEDIA_CONTROL_RIGHT_ARROW returned null", MEDIA_CONTROL_RIGHT_ARROW); + + example = "0x16"; + StaticIconName MEDIA_CONTROL_STOP = StaticIconName.valueForString(example); + assertNotNull("MEDIA_CONTROL_STOP returned null", MEDIA_CONTROL_STOP); + + example = "0xe8"; + StaticIconName MICROPHONE = StaticIconName.valueForString(example); + assertNotNull("MICROPHONE returned null", MICROPHONE); + + example = "0x58"; + StaticIconName MISSED_CALLS = StaticIconName.valueForString(example); + assertNotNull("MISSED_CALLS returned null", MISSED_CALLS); + + example = "0x54"; + StaticIconName MOBILE_PHONE_NUMBER = StaticIconName.valueForString(example); + assertNotNull("MOBILE_PHONE_NUMBER returned null", MOBILE_PHONE_NUMBER); + + example = "0xE5"; + StaticIconName MOVE_DOWN = StaticIconName.valueForString(example); + assertNotNull("MOVE_DOWN returned null", MOVE_DOWN); + + example = "0xe4"; + StaticIconName MOVE_UP = StaticIconName.valueForString(example); + assertNotNull("MOVE_UP returned null", MOVE_UP); + + example = "0x24"; + StaticIconName MP3_TAG_ARTIST = StaticIconName.valueForString(example); + assertNotNull("MP3_TAG_ARTIST returned null", MP3_TAG_ARTIST); + + example = "0x8e"; + StaticIconName NAVIGATION = StaticIconName.valueForString(example); + assertNotNull("NAVIGATION returned null", NAVIGATION); + + example = "0x0a"; + StaticIconName NAVIGATION_CURRENT_DIRECTION = StaticIconName.valueForString(example); + assertNotNull("NAVIGATION_CURRENT_DIRECTION returned null", NAVIGATION_CURRENT_DIRECTION); + + example = "0x14"; + StaticIconName NEGATIVE_RATING_THUMBS_DOWN = StaticIconName.valueForString(example); + assertNotNull("NEGATIVE_RATING_THUMBS_DOWN returned null", NEGATIVE_RATING_THUMBS_DOWN); + + example = "0x5E"; + StaticIconName NEW = StaticIconName.valueForString(example); + assertNotNull("NEW returned null", NEW); + + example = "0x56"; + StaticIconName OFFICE_PHONE_NUMBER = StaticIconName.valueForString(example); + assertNotNull("OFFICE_PHONE_NUMBER returned null", OFFICE_PHONE_NUMBER); + + example = "0x5F"; + StaticIconName OPENED = StaticIconName.valueForString(example); + assertNotNull("OPENED returned null", OPENED); + + example = "0x96"; + StaticIconName ORIGIN = StaticIconName.valueForString(example); + assertNotNull("ORIGIN returned null", ORIGIN); + + example = "0x59"; + StaticIconName OUTGOING_CALLS = StaticIconName.valueForString(example); + assertNotNull("OUTGOING_CALLS returned null", OUTGOING_CALLS); + + example = "0x1D"; + StaticIconName PHONE_CALL_1 = StaticIconName.valueForString(example); + assertNotNull("PHONE_CALL_1 returned null", PHONE_CALL_1); + + example = "0x1E"; + StaticIconName PHONE_CALL_2 = StaticIconName.valueForString(example); + assertNotNull("PHONE_CALL_2 returned null", PHONE_CALL_2); + + example = "0x03"; + StaticIconName PHONE_DEVICE = StaticIconName.valueForString(example); + assertNotNull("PHONE_DEVICE returned null", PHONE_DEVICE); + + example = "0x81"; + StaticIconName PHONEBOOK = StaticIconName.valueForString(example); + assertNotNull("PHONEBOOK returned null", PHONEBOOK); + + example = "0x88"; + StaticIconName PHOTO = StaticIconName.valueForString(example); + assertNotNull("PHOTO returned null", PHOTO); + + example = "0xD0"; + StaticIconName PLAY = StaticIconName.valueForString(example); + assertNotNull("PLAY returned null", PLAY); + + example = "0x4F"; + StaticIconName PLAYLIST = StaticIconName.valueForString(example); + assertNotNull("PLAYLIST returned null", PLAYLIST); + + example = "0x76"; + StaticIconName POPUP = StaticIconName.valueForString(example); + assertNotNull("POPUP returned null", POPUP); + + example = "0x13"; + StaticIconName POSITIVE_RATING_THUMBS_UP = StaticIconName.valueForString(example); + assertNotNull("POSITIVE_RATING_THUMBS_UP returned null", POSITIVE_RATING_THUMBS_UP); + + example = "0x5b"; + StaticIconName POWER = StaticIconName.valueForString(example); + assertNotNull("POWER returned null", POWER); + + example = "0x1F"; + StaticIconName PRIMARY_PHONE = StaticIconName.valueForString(example); + assertNotNull("PRIMARY_PHONE returned null", PRIMARY_PHONE); + + example = "0x25"; + StaticIconName RADIO_BUTTON_CHECKED = StaticIconName.valueForString(example); + assertNotNull("RADIO_BUTTON_CHECKED returned null", RADIO_BUTTON_CHECKED); + + example = "0x26"; + StaticIconName RADIO_BUTTON_UNCHECKED = StaticIconName.valueForString(example); + assertNotNull("RADIO_BUTTON_UNCHECKED returned null", RADIO_BUTTON_UNCHECKED); + + example = "0xe7"; + StaticIconName RECENT_CALLS = StaticIconName.valueForString(example); + assertNotNull("RECENT_CALLS returned null", RECENT_CALLS); + + example = "0xf2"; + StaticIconName RECENT_DESTINATIONS = StaticIconName.valueForString(example); + assertNotNull("RECENT_DESTINATIONS returned null", RECENT_DESTINATIONS); + + example = "0x19"; + StaticIconName REDO = StaticIconName.valueForString(example); + assertNotNull("REDO returned null", REDO); + + example = "0x97"; + StaticIconName REFRESH = StaticIconName.valueForString(example); + assertNotNull("REFRESH returned null", REFRESH); + + example = "0x7E"; + StaticIconName REMOTE_DIAGNOSTICS_CHECK_ENGINE = StaticIconName.valueForString(example); + assertNotNull("REMOTE_DIAGNOSTICS_CHECK_ENGINE returned null", REMOTE_DIAGNOSTICS_CHECK_ENGINE); + + example = "0xac"; + StaticIconName RENDERED_911_ASSIST = StaticIconName.valueForString(example); + assertNotNull("RENDERED_911_ASSIST returned null", RENDERED_911_ASSIST); + + example = "0xe6"; + StaticIconName REPEAT = StaticIconName.valueForString(example); + assertNotNull("REPEAT returned null", REPEAT); + + example = "0x73"; + StaticIconName REPEAT_PLAY = StaticIconName.valueForString(example); + assertNotNull("REPEAT_PLAY returned null", REPEAT_PLAY); + + example = "0x04"; + StaticIconName REPLY = StaticIconName.valueForString(example); + assertNotNull("REPLY returned null", REPLY); + + example = "0x07"; + StaticIconName REWIND_30_SECS = StaticIconName.valueForString(example); + assertNotNull("REWIND_30_SECS returned null", REWIND_30_SECS); + + example = "0xa3"; + StaticIconName RIGHT = StaticIconName.valueForString(example); + assertNotNull("RIGHT returned null", RIGHT); + + example = "0xb1"; + StaticIconName RIGHT_EXIT = StaticIconName.valueForString(example); + assertNotNull("RIGHT_EXIT returned null", RIGHT_EXIT); + + example = "0x5A"; + StaticIconName RINGTONES = StaticIconName.valueForString(example); + assertNotNull("RINGTONES returned null", RINGTONES); + + example = "0xee"; + StaticIconName ROUNDABOUT_LEFT_HAND_1 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_LEFT_HAND_1 returned null", ROUNDABOUT_LEFT_HAND_1); + + example = "0x8c"; + StaticIconName ROUNDABOUT_LEFT_HAND_2 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_LEFT_HAND_2 returned null", ROUNDABOUT_LEFT_HAND_2); + + example = "0x84"; + StaticIconName ROUNDABOUT_LEFT_HAND_3 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_LEFT_HAND_3 returned null", ROUNDABOUT_LEFT_HAND_3); + + example = "0x72"; + StaticIconName ROUNDABOUT_LEFT_HAND_4 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_LEFT_HAND_4 returned null", ROUNDABOUT_LEFT_HAND_4); + + example = "0x6e"; + StaticIconName ROUNDABOUT_LEFT_HAND_5 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_LEFT_HAND_5 returned null", ROUNDABOUT_LEFT_HAND_5); + + example = "0x64"; + StaticIconName ROUNDABOUT_LEFT_HAND_6 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_LEFT_HAND_6 returned null", ROUNDABOUT_LEFT_HAND_6); + + example = "0x60"; + StaticIconName ROUNDABOUT_LEFT_HAND_7 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_LEFT_HAND_7 returned null", ROUNDABOUT_LEFT_HAND_7); + + example = "0x62"; + StaticIconName ROUNDABOUT_RIGHT_HAND_1 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_RIGHT_HAND_1 returned null", ROUNDABOUT_RIGHT_HAND_1); + + example = "0x6c"; + StaticIconName ROUNDABOUT_RIGHT_HAND_2 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_RIGHT_HAND_2 returned null", ROUNDABOUT_RIGHT_HAND_2); + + example = "0x70"; + StaticIconName ROUNDABOUT_RIGHT_HAND_3 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_RIGHT_HAND_3 returned null", ROUNDABOUT_RIGHT_HAND_3); + + example = "0x7a"; + StaticIconName ROUNDABOUT_RIGHT_HAND_4 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_RIGHT_HAND_4 returned null", ROUNDABOUT_RIGHT_HAND_4); + + example = "0x8a"; + StaticIconName ROUNDABOUT_RIGHT_HAND_5 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_RIGHT_HAND_5 returned null", ROUNDABOUT_RIGHT_HAND_5); + + example = "0xec"; + StaticIconName ROUNDABOUT_RIGHT_HAND_6 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_RIGHT_HAND_6 returned null", ROUNDABOUT_RIGHT_HAND_6); + + example = "0xf0"; + StaticIconName ROUNDABOUT_RIGHT_HAND_7 = StaticIconName.valueForString(example); + assertNotNull("ROUNDABOUT_RIGHT_HAND_7 returned null", ROUNDABOUT_RIGHT_HAND_7); + + example = "0x89"; + StaticIconName RSS = StaticIconName.valueForString(example); + assertNotNull("RSS returned null", RSS); + + example = "0x49"; + StaticIconName SETTINGS = StaticIconName.valueForString(example); + assertNotNull("SETTINGS returned null", SETTINGS); + + example = "0xa5"; + StaticIconName SHARP_LEFT = StaticIconName.valueForString(example); + assertNotNull("SHARP_LEFT returned null", SHARP_LEFT); + + example = "0xe1"; + StaticIconName SHOW = StaticIconName.valueForString(example); + assertNotNull("SHOW returned null", SHOW); + + example = "0x74"; + StaticIconName SHUFFLE_PLAY = StaticIconName.valueForString(example); + assertNotNull("SHUFFLE_PLAY returned null", SHUFFLE_PLAY); + + example = "0xab"; + StaticIconName SKI_PLACES = StaticIconName.valueForString(example); + assertNotNull("SKI_PLACES returned null", SKI_PLACES); + + example = "0x9d"; + StaticIconName SLIGHT_LEFT = StaticIconName.valueForString(example); + assertNotNull("SLIGHT_LEFT returned null", SLIGHT_LEFT); + + example = "0xa1"; + StaticIconName SLIGHT_RIGHT = StaticIconName.valueForString(example); + assertNotNull("SLIGHT_RIGHT returned null", SLIGHT_RIGHT); + + example = "0x05"; + StaticIconName SMARTPHONE = StaticIconName.valueForString(example); + assertNotNull("SMARTPHONE returned null", SMARTPHONE); + + example = "0x7B"; + StaticIconName SORT_LIST = StaticIconName.valueForString(example); + assertNotNull("SORT_LIST returned null", SORT_LIST); + + example = "0xE0"; + StaticIconName SPEED_DIAL_NUMBERS_NUMBER_0 = StaticIconName.valueForString(example); + assertNotNull("SPEED_DIAL_NUMBERS_NUMBER_0 returned null", SPEED_DIAL_NUMBERS_NUMBER_0); + + example = "0xD7"; + StaticIconName SPEED_DIAL_NUMBERS_NUMBER_1 = StaticIconName.valueForString(example); + assertNotNull("SPEED_DIAL_NUMBERS_NUMBER_1 returned null", SPEED_DIAL_NUMBERS_NUMBER_1); + + example = "0xD8"; + StaticIconName SPEED_DIAL_NUMBERS_NUMBER_2 = StaticIconName.valueForString(example); + assertNotNull("SPEED_DIAL_NUMBERS_NUMBER_2 returned null", SPEED_DIAL_NUMBERS_NUMBER_2); + + example = "0xD9"; + StaticIconName SPEED_DIAL_NUMBERS_NUMBER_3 = StaticIconName.valueForString(example); + assertNotNull("SPEED_DIAL_NUMBERS_NUMBER_3 returned null", SPEED_DIAL_NUMBERS_NUMBER_3); + + example = "0xDA"; + StaticIconName SPEED_DIAL_NUMBERS_NUMBER_4 = StaticIconName.valueForString(example); + assertNotNull("SPEED_DIAL_NUMBERS_NUMBER_4 returned null", SPEED_DIAL_NUMBERS_NUMBER_4); + + example = "0xDB"; + StaticIconName SPEED_DIAL_NUMBERS_NUMBER_5 = StaticIconName.valueForString(example); + assertNotNull("SPEED_DIAL_NUMBERS_NUMBER_5 returned null", SPEED_DIAL_NUMBERS_NUMBER_5); + + example = "0xDC"; + StaticIconName SPEED_DIAL_NUMBERS_NUMBER_6 = StaticIconName.valueForString(example); + assertNotNull("SPEED_DIAL_NUMBERS_NUMBER_6 returned null", SPEED_DIAL_NUMBERS_NUMBER_6); + + example = "0xDD"; + StaticIconName SPEED_DIAL_NUMBERS_NUMBER_7 = StaticIconName.valueForString(example); + assertNotNull("SPEED_DIAL_NUMBERS_NUMBER_7 returned null", SPEED_DIAL_NUMBERS_NUMBER_7); + + example = "0xDE"; + StaticIconName SPEED_DIAL_NUMBERS_NUMBER_8 = StaticIconName.valueForString(example); + assertNotNull("SPEED_DIAL_NUMBERS_NUMBER_8 returned null", SPEED_DIAL_NUMBERS_NUMBER_8); + + example = "0xDF"; + StaticIconName SPEED_DIAL_NUMBERS_NUMBER_9 = StaticIconName.valueForString(example); + assertNotNull("SPEED_DIAL_NUMBERS_NUMBER_9 returned null", SPEED_DIAL_NUMBERS_NUMBER_9); + + example = "0xD5"; + StaticIconName SUCCESS = StaticIconName.valueForString(example); + assertNotNull("SUCCESS returned null", SUCCESS); + + example = "0x4C"; + StaticIconName TRACK_TITLE = StaticIconName.valueForString(example); + assertNotNull("TRACK_TITLE returned null", TRACK_TITLE); + + example = "0x2A"; + StaticIconName TRAFFIC_REPORT = StaticIconName.valueForString(example); + assertNotNull("TRAFFIC_REPORT returned null", TRAFFIC_REPORT); + + example = "0x10"; + StaticIconName TURN_LIST = StaticIconName.valueForString(example); + assertNotNull("TURN_LIST returned null", TURN_LIST); + + example = "0xad"; + StaticIconName UTURN_LEFT_TRAFFIC = StaticIconName.valueForString(example); + assertNotNull("UTURN_LEFT_TRAFFIC returned null", UTURN_LEFT_TRAFFIC); + + example = "0xa9"; + StaticIconName UTURN_RIGHT_TRAFFIC = StaticIconName.valueForString(example); + assertNotNull("UTURN_RIGHT_TRAFFIC returned null", UTURN_RIGHT_TRAFFIC); + + example = "0x18"; + StaticIconName UNDO = StaticIconName.valueForString(example); + assertNotNull("UNDO returned null", UNDO); + + example = "0x23"; + StaticIconName UNLOCKED = StaticIconName.valueForString(example); + assertNotNull("UNLOCKED returned null", UNLOCKED); + + example = "0x0B"; + StaticIconName USB_MEDIA_AUDIO_SOURCE = StaticIconName.valueForString(example); + assertNotNull("USB_MEDIA_AUDIO_SOURCE returned null", USB_MEDIA_AUDIO_SOURCE); + + example = "0xC7"; + StaticIconName VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_1 = StaticIconName.valueForString(example); + assertNotNull("VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_1 returned null", VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_1); + + example = "0xC8"; + StaticIconName VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_2 = StaticIconName.valueForString(example); + assertNotNull("VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_2 returned null", VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_2); + + example = "0xC9"; + StaticIconName VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_3 = StaticIconName.valueForString(example); + assertNotNull("VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_3 returned null", VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_3); + + example = "0xCA"; + StaticIconName VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_4 = StaticIconName.valueForString(example); + assertNotNull("VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_4 returned null", VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_4); + + example = "0x90"; + StaticIconName VOICE_RECOGNITION_FAILED = StaticIconName.valueForString(example); + assertNotNull("VOICE_RECOGNITION_FAILED returned null", VOICE_RECOGNITION_FAILED); + + example = "0x92"; + StaticIconName VOICE_RECOGNITION_PAUSE = StaticIconName.valueForString(example); + assertNotNull("VOICE_RECOGNITION_PAUSE returned null", VOICE_RECOGNITION_PAUSE); + + example = "0x8F"; + StaticIconName VOICE_RECOGNITION_SUCCESSFUL = StaticIconName.valueForString(example); + assertNotNull("VOICE_RECOGNITION_SUCCESSFUL returned null", VOICE_RECOGNITION_SUCCESSFUL); + + example = "0x11"; + StaticIconName VOICE_RECOGNITION_SYSTEM_ACTIVE = StaticIconName.valueForString(example); + assertNotNull("VOICE_RECOGNITION_SYSTEM_ACTIVE returned null", VOICE_RECOGNITION_SYSTEM_ACTIVE); + + example = "0x91"; + StaticIconName VOICE_RECOGNITION_SYSTEM_LISTENING = StaticIconName.valueForString(example); + assertNotNull("VOICE_RECOGNITION_SYSTEM_LISTENING returned null", VOICE_RECOGNITION_SYSTEM_LISTENING); + + example = "0x93"; + StaticIconName VOICE_RECOGNITION_TRY_AGAIN = StaticIconName.valueForString(example); + assertNotNull("VOICE_RECOGNITION_TRY_AGAIN returned null", VOICE_RECOGNITION_TRY_AGAIN); + + example = "0xfe"; + StaticIconName WARNING = StaticIconName.valueForString(example); + assertNotNull("WARNING returned null", WARNING); + + example = "0xeb"; + StaticIconName WEATHER = StaticIconName.valueForString(example); + assertNotNull("WEATHER returned null", WEATHER); + + example = "0x43"; + StaticIconName WIFI_FULL = StaticIconName.valueForString(example); + assertNotNull("WIFI_FULL returned null", WIFI_FULL); + + example = "0x98"; + StaticIconName ZOOM_IN = StaticIconName.valueForString(example); + assertNotNull("ZOOM_IN returned null", ZOOM_IN); + + example = "0x9a"; + StaticIconName ZOOM_OUT = StaticIconName.valueForString(example); + assertNotNull("ZOOM_OUT returned null", ZOOM_OUT); + } + + /** + * Verifies that an invalid assignment is null. + */ + public void testInvalidEnum () { + String example = "SoMeThInG"; + try { + StaticIconName SOMETHING = StaticIconName.valueForString(example); + assertNull("Result of valueForString should be null.", SOMETHING); + } + catch (IllegalArgumentException exception) { + fail("Invalid enum throws IllegalArgumentException."); + } + } + + /** + * Verifies that a null assignment is invalid. + */ + public void testNullEnum () { + String example = null; + try { + StaticIconName temp = StaticIconName.valueForString(example); + assertNull("Result of valueForString should be null.", temp); + } + catch (NullPointerException exception) { + fail("Null string throws NullPointerException."); + } + } + + /** + * Verifies the possible enum values of StaticIconNames. + */ + public void testListEnum() { + + List<StaticIconName> enumValueList = Arrays.asList(StaticIconName.values()); + + List<StaticIconName> enumTestList = new ArrayList<>(); + enumTestList.add(StaticIconName.ACCEPT_CALL); + enumTestList.add(StaticIconName.ADD_WAYPOINT); + enumTestList.add(StaticIconName.ALBUM); + enumTestList.add(StaticIconName.AMBIENT_LIGHTING); + enumTestList.add(StaticIconName.ARROW_NORTH); + enumTestList.add(StaticIconName.AUDIO_MUTE); + enumTestList.add(StaticIconName.AUDIOBOOK_EPISODE); + enumTestList.add(StaticIconName.AUDIOBOOK_NARRATOR); + enumTestList.add(StaticIconName.AUXILLARY_AUDIO); + enumTestList.add(StaticIconName.BACK); + enumTestList.add(StaticIconName.BATTERY_CAPACITY_0_OF_5); + enumTestList.add(StaticIconName.BATTERY_CAPACITY_1_OF_5); + enumTestList.add(StaticIconName.BATTERY_CAPACITY_2_OF_5); + enumTestList.add(StaticIconName.BATTERY_CAPACITY_3_OF_5); + enumTestList.add(StaticIconName.BATTERY_CAPACITY_4_OF_5); + enumTestList.add(StaticIconName.BATTERY_CAPACITY_5_OF_5); + enumTestList.add(StaticIconName.BLUETOOTH_AUDIO_SOURCE); + enumTestList.add(StaticIconName.BLUETOOTH1); + enumTestList.add(StaticIconName.BLUETOOTH2); + enumTestList.add(StaticIconName.BROWSE); + enumTestList.add(StaticIconName.CELL_PHONE_IN_ROAMING_MODE); + enumTestList.add(StaticIconName.CELL_SERVICE_SIGNAL_STRENGTH_0_OF_5_BARS); + enumTestList.add(StaticIconName.CELL_SERVICE_SIGNAL_STRENGTH_1_OF_5_BARS); + enumTestList.add(StaticIconName.CELL_SERVICE_SIGNAL_STRENGTH_2_OF_5_BARS); + enumTestList.add(StaticIconName.CELL_SERVICE_SIGNAL_STRENGTH_3_OF_5_BARS); + enumTestList.add(StaticIconName.CELL_SERVICE_SIGNAL_STRENGTH_4_OF_5_BARS); + enumTestList.add(StaticIconName.CELL_SERVICE_SIGNAL_STRENGTH_5_OF_5_BARS); + enumTestList.add(StaticIconName.CHANGE_LANE_LEFT); + enumTestList.add(StaticIconName.CHANGE_LANE_RIGHT); + enumTestList.add(StaticIconName.CHECK_BOX_CHECKED); + enumTestList.add(StaticIconName.CHECK_BOX_UNCHECKED); + enumTestList.add(StaticIconName.CLIMATE); + enumTestList.add(StaticIconName.CLOCK); + enumTestList.add(StaticIconName.COMPOSE); + enumTestList.add(StaticIconName.CONTACT); + enumTestList.add(StaticIconName.CONTINUE); + enumTestList.add(StaticIconName.DASH); + enumTestList.add(StaticIconName.DATE); + enumTestList.add(StaticIconName.DELETE); + enumTestList.add(StaticIconName.DESTINATION); + enumTestList.add(StaticIconName.DESTINATION_FERRY_AHEAD); + enumTestList.add(StaticIconName.EBOOKMARK); + enumTestList.add(StaticIconName.END_CALL); + enumTestList.add(StaticIconName.FAIL); + enumTestList.add(StaticIconName.FAST_FORWARD_30_SECS); + enumTestList.add(StaticIconName.FAVORITE_HEART); + enumTestList.add(StaticIconName.FAVORITE_STAR); + enumTestList.add(StaticIconName.FAX_NUMBER); + enumTestList.add(StaticIconName.FILENAME); + enumTestList.add(StaticIconName.FILTER); + enumTestList.add(StaticIconName.FOLDER); + enumTestList.add(StaticIconName.FUEL_PRICES); + enumTestList.add(StaticIconName.FULL_MAP); + enumTestList.add(StaticIconName.GENERIC_PHONE_NUMBER); + enumTestList.add(StaticIconName.GENRE); + enumTestList.add(StaticIconName.GLOBAL_KEYBOARD); + enumTestList.add(StaticIconName.HIGHWAY_EXIT_INFORMATION); + enumTestList.add(StaticIconName.HOME_PHONE_NUMBER); + enumTestList.add(StaticIconName.HYPERLINK); + enumTestList.add(StaticIconName.ID3_TAG_UNKNOWN); + enumTestList.add(StaticIconName.INCOMING_CALLS); + enumTestList.add(StaticIconName.INFORMATION); + enumTestList.add(StaticIconName.IPOD_MEDIA_SOURCE); + enumTestList.add(StaticIconName.JOIN_CALLS); + enumTestList.add(StaticIconName.KEEP_LEFT); + enumTestList.add(StaticIconName.KEEP_RIGHT); + enumTestList.add(StaticIconName.KEY); + enumTestList.add(StaticIconName.LEFT); + enumTestList.add(StaticIconName.LEFT_ARROW); + enumTestList.add(StaticIconName.LEFT_EXIT); + enumTestList.add(StaticIconName.LINE_IN_AUDIO_SOURCE); + enumTestList.add(StaticIconName.LOCKED); + enumTestList.add(StaticIconName.MEDIA_CONTROL_LEFT_ARROW); + enumTestList.add(StaticIconName.MEDIA_CONTROL_RECORDING); + enumTestList.add(StaticIconName.MEDIA_CONTROL_RIGHT_ARROW); + enumTestList.add(StaticIconName.MEDIA_CONTROL_STOP); + enumTestList.add(StaticIconName.MICROPHONE); + enumTestList.add(StaticIconName.MISSED_CALLS); + enumTestList.add(StaticIconName.MOBILE_PHONE_NUMBER); + enumTestList.add(StaticIconName.MOVE_DOWN); + enumTestList.add(StaticIconName.MOVE_UP); + enumTestList.add(StaticIconName.MP3_TAG_ARTIST); + enumTestList.add(StaticIconName.NAVIGATION); + enumTestList.add(StaticIconName.NAVIGATION_CURRENT_DIRECTION); + enumTestList.add(StaticIconName.NEGATIVE_RATING_THUMBS_DOWN); + enumTestList.add(StaticIconName.NEW); + enumTestList.add(StaticIconName.OFFICE_PHONE_NUMBER); + enumTestList.add(StaticIconName.OPENED); + enumTestList.add(StaticIconName.ORIGIN); + enumTestList.add(StaticIconName.OUTGOING_CALLS); + enumTestList.add(StaticIconName.PHONE_CALL_1); + enumTestList.add(StaticIconName.PHONE_CALL_2); + enumTestList.add(StaticIconName.PHONE_DEVICE); + enumTestList.add(StaticIconName.PHONEBOOK); + enumTestList.add(StaticIconName.PHOTO); + enumTestList.add(StaticIconName.PLAY); + enumTestList.add(StaticIconName.PLAYLIST); + enumTestList.add(StaticIconName.POPUP); + enumTestList.add(StaticIconName.POSITIVE_RATING_THUMBS_UP); + enumTestList.add(StaticIconName.POWER); + enumTestList.add(StaticIconName.PRIMARY_PHONE); + enumTestList.add(StaticIconName.RADIO_BUTTON_CHECKED); + enumTestList.add(StaticIconName.RADIO_BUTTON_UNCHECKED); + enumTestList.add(StaticIconName.RECENT_CALLS); + enumTestList.add(StaticIconName.RECENT_DESTINATIONS); + enumTestList.add(StaticIconName.REDO); + enumTestList.add(StaticIconName.REFRESH); + enumTestList.add(StaticIconName.REMOTE_DIAGNOSTICS_CHECK_ENGINE); + enumTestList.add(StaticIconName.RENDERED_911_ASSIST); + enumTestList.add(StaticIconName.REPEAT); + enumTestList.add(StaticIconName.REPEAT_PLAY); + enumTestList.add(StaticIconName.REPLY); + enumTestList.add(StaticIconName.REWIND_30_SECS); + enumTestList.add(StaticIconName.RIGHT); + enumTestList.add(StaticIconName.RIGHT_EXIT); + enumTestList.add(StaticIconName.RINGTONES); + enumTestList.add(StaticIconName.ROUNDABOUT_LEFT_HAND_1); + enumTestList.add(StaticIconName.ROUNDABOUT_LEFT_HAND_2); + enumTestList.add(StaticIconName.ROUNDABOUT_LEFT_HAND_3); + enumTestList.add(StaticIconName.ROUNDABOUT_LEFT_HAND_4); + enumTestList.add(StaticIconName.ROUNDABOUT_LEFT_HAND_5); + enumTestList.add(StaticIconName.ROUNDABOUT_LEFT_HAND_6); + enumTestList.add(StaticIconName.ROUNDABOUT_LEFT_HAND_7); + enumTestList.add(StaticIconName.ROUNDABOUT_RIGHT_HAND_1); + enumTestList.add(StaticIconName.ROUNDABOUT_RIGHT_HAND_2); + enumTestList.add(StaticIconName.ROUNDABOUT_RIGHT_HAND_3); + enumTestList.add(StaticIconName.ROUNDABOUT_RIGHT_HAND_4); + enumTestList.add(StaticIconName.ROUNDABOUT_RIGHT_HAND_5); + enumTestList.add(StaticIconName.ROUNDABOUT_RIGHT_HAND_6); + enumTestList.add(StaticIconName.ROUNDABOUT_RIGHT_HAND_7); + enumTestList.add(StaticIconName.RSS); + enumTestList.add(StaticIconName.SETTINGS); + enumTestList.add(StaticIconName.SHARP_LEFT); + enumTestList.add(StaticIconName.SHARP_RIGHT); + enumTestList.add(StaticIconName.SHOW); + enumTestList.add(StaticIconName.SHUFFLE_PLAY); + enumTestList.add(StaticIconName.SKI_PLACES); + enumTestList.add(StaticIconName.SLIGHT_LEFT); + enumTestList.add(StaticIconName.SLIGHT_RIGHT); + enumTestList.add(StaticIconName.SMARTPHONE); + enumTestList.add(StaticIconName.SORT_LIST); + enumTestList.add(StaticIconName.SPEED_DIAL_NUMBERS_NUMBER_0); + enumTestList.add(StaticIconName.SPEED_DIAL_NUMBERS_NUMBER_1); + enumTestList.add(StaticIconName.SPEED_DIAL_NUMBERS_NUMBER_2); + enumTestList.add(StaticIconName.SPEED_DIAL_NUMBERS_NUMBER_3); + enumTestList.add(StaticIconName.SPEED_DIAL_NUMBERS_NUMBER_4); + enumTestList.add(StaticIconName.SPEED_DIAL_NUMBERS_NUMBER_5); + enumTestList.add(StaticIconName.SPEED_DIAL_NUMBERS_NUMBER_6); + enumTestList.add(StaticIconName.SPEED_DIAL_NUMBERS_NUMBER_7); + enumTestList.add(StaticIconName.SPEED_DIAL_NUMBERS_NUMBER_8); + enumTestList.add(StaticIconName.SPEED_DIAL_NUMBERS_NUMBER_9); + enumTestList.add(StaticIconName.SUCCESS); + enumTestList.add(StaticIconName.TRACK_TITLE); + enumTestList.add(StaticIconName.TRAFFIC_REPORT); + enumTestList.add(StaticIconName.TURN_LIST); + enumTestList.add(StaticIconName.UTURN_LEFT_TRAFFIC); + enumTestList.add(StaticIconName.UTURN_RIGHT_TRAFFIC); + enumTestList.add(StaticIconName.UNDO); + enumTestList.add(StaticIconName.UNLOCKED); + enumTestList.add(StaticIconName.USB_MEDIA_AUDIO_SOURCE); + enumTestList.add(StaticIconName.VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_1); + enumTestList.add(StaticIconName.VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_2); + enumTestList.add(StaticIconName.VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_3); + enumTestList.add(StaticIconName.VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_4); + enumTestList.add(StaticIconName.VOICE_RECOGNITION_FAILED); + enumTestList.add(StaticIconName.VOICE_RECOGNITION_PAUSE); + enumTestList.add(StaticIconName.VOICE_RECOGNITION_SUCCESSFUL); + enumTestList.add(StaticIconName.VOICE_RECOGNITION_SYSTEM_ACTIVE); + enumTestList.add(StaticIconName.VOICE_RECOGNITION_SYSTEM_LISTENING); + enumTestList.add(StaticIconName.VOICE_RECOGNITION_TRY_AGAIN); + enumTestList.add(StaticIconName.WARNING); + enumTestList.add(StaticIconName.WEATHER); + enumTestList.add(StaticIconName.WIFI_FULL); + enumTestList.add(StaticIconName.ZOOM_IN); + enumTestList.add(StaticIconName.ZOOM_OUT); + + 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/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 ab9279569..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 { @@ -74,6 +74,10 @@ public class VehicleDataTypeTests extends TestCase { 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); @@ -103,6 +107,8 @@ public class VehicleDataTypeTests extends TestCase { 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); } /** @@ -168,6 +174,8 @@ public class VehicleDataTypeTests extends TestCase { enumTestList.add(VehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS); 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/notifications/OnHMIStatusTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnHMIStatusTests.java index e506268ea..6f38fdfa0 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 @@ -12,6 +12,7 @@ import com.smartdevicelink.proxy.rpc.enums.SystemContext; import com.smartdevicelink.proxy.rpc.enums.VideoStreamingState; import com.smartdevicelink.test.BaseRpcTests; import com.smartdevicelink.test.Test; +import com.smartdevicelink.util.Version; /** * This is a unit test class for the SmartDeviceLink library project class : @@ -80,6 +81,9 @@ public class OnHMIStatusTests extends BaseRpcTests{ testNullBase(msg); assertNull(Test.NULL, msg.getAudioStreamingState()); + + assertNull(Test.NULL, msg.getVideoStreamingState()); + msg.format(new Version(4,5,0),true); 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/OnVehicleDataTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnVehicleDataTests.java index 8ea944804..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 @@ -26,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; @@ -37,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{ @@ -88,6 +90,8 @@ public class OnVehicleDataTests extends BaseRpcTests{ 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); } @@ -127,6 +131,8 @@ public class OnVehicleDataTests extends BaseRpcTests{ 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); @@ -156,6 +162,8 @@ public class OnVehicleDataTests extends BaseRpcTests{ 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(); @@ -189,6 +197,8 @@ public class OnVehicleDataTests extends BaseRpcTests{ 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()); } public void testJson() { @@ -360,6 +370,8 @@ public class OnVehicleDataTests extends BaseRpcTests{ 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 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 f94ed9be5..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 { @@ -51,6 +51,8 @@ public class GetVehicleDataTests extends BaseRpcTests { 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; } @@ -97,6 +99,8 @@ public class GetVehicleDataTests extends BaseRpcTests { 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); } @@ -137,6 +141,8 @@ public class GetVehicleDataTests extends BaseRpcTests { 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(); @@ -170,6 +176,8 @@ public class GetVehicleDataTests extends BaseRpcTests { 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()); } /** @@ -218,6 +226,8 @@ public class GetVehicleDataTests extends BaseRpcTests { 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/SetMediaClockTimerTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetMediaClockTimerTests.java index 7d52bb75c..a90bd31b9 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetMediaClockTimerTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetMediaClockTimerTests.java @@ -10,6 +10,7 @@ import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCMessage; import com.smartdevicelink.proxy.rpc.SetMediaClockTimer; import com.smartdevicelink.proxy.rpc.StartTime; +import com.smartdevicelink.proxy.rpc.enums.AudioStreamingIndicator; import com.smartdevicelink.proxy.rpc.enums.UpdateMode; import com.smartdevicelink.test.BaseRpcTests; import com.smartdevicelink.test.JsonUtils; @@ -19,7 +20,7 @@ import com.smartdevicelink.test.json.rpc.JsonFileReader; /** * This is a unit test class for the SmartDeviceLink library project class : - * {@link com.smartdevicelink.rpc.SetMediaClockTimer} + * {@link com.smartdevicelink.proxy.rpc.SetMediaClockTimer} */ public class SetMediaClockTimerTests extends BaseRpcTests { @@ -30,6 +31,7 @@ public class SetMediaClockTimerTests extends BaseRpcTests { msg.setStartTime(Test.GENERAL_STARTTIME); msg.setEndTime(Test.GENERAL_STARTTIME); msg.setUpdateMode(Test.GENERAL_UPDATEMODE); + msg.setAudioStreamingIndicator(Test.GENERAL_AUDIO_STREAMING_INDICATOR); return msg; } @@ -51,7 +53,8 @@ public class SetMediaClockTimerTests extends BaseRpcTests { try { result.put(SetMediaClockTimer.KEY_START_TIME, Test.JSON_STARTTIME); result.put(SetMediaClockTimer.KEY_END_TIME, Test.JSON_STARTTIME); - result.put(SetMediaClockTimer.KEY_UPDATE_MODE, Test.GENERAL_UPDATEMODE); + result.put(SetMediaClockTimer.KEY_UPDATE_MODE, Test.GENERAL_UPDATEMODE); + result.put(SetMediaClockTimer.KEY_AUDIO_STREAMING_INDICATOR, Test.GENERAL_AUDIO_STREAMING_INDICATOR); } catch (JSONException e) { fail(Test.JSON_FAIL); } @@ -67,9 +70,11 @@ public class SetMediaClockTimerTests extends BaseRpcTests { StartTime testStartTime = ( (SetMediaClockTimer) msg ).getStartTime(); StartTime testEndTime = ( (SetMediaClockTimer) msg ).getEndTime(); UpdateMode testUpdateMode = ( (SetMediaClockTimer) msg ).getUpdateMode(); + AudioStreamingIndicator testAudioStreamingIndicator = ( (SetMediaClockTimer) msg ).getAudioStreamingIndicator(); // Valid Tests assertEquals(Test.MATCH, Test.GENERAL_UPDATEMODE, testUpdateMode); + assertEquals(Test.MATCH, Test.GENERAL_AUDIO_STREAMING_INDICATOR, testAudioStreamingIndicator); assertTrue(Test.TRUE, Validator.validateStartTime(Test.GENERAL_STARTTIME, testStartTime)); assertTrue(Test.TRUE, Validator.validateStartTime(Test.GENERAL_STARTTIME, testEndTime)); @@ -81,6 +86,7 @@ public class SetMediaClockTimerTests extends BaseRpcTests { assertNull(Test.NULL, msg.getStartTime()); assertNull(Test.NULL, msg.getEndTime()); assertNull(Test.NULL, msg.getUpdateMode()); + assertNull(Test.NULL, msg.getAudioStreamingIndicator()); } /** @@ -110,6 +116,7 @@ public class SetMediaClockTimerTests extends BaseRpcTests { StartTime referenceEndTime = new StartTime(JsonRPCMarshaller.deserializeJSONObject(endTime)); assertTrue(Test.TRUE, Validator.validateStartTime(referenceEndTime, cmd.getEndTime())); assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, SetMediaClockTimer.KEY_UPDATE_MODE), cmd.getUpdateMode().toString()); + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, SetMediaClockTimer.KEY_AUDIO_STREAMING_INDICATOR), cmd.getAudioStreamingIndicator().toString()); } 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 d4178207f..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 { @@ -50,6 +50,8 @@ public class SubscribeVehicleDataTests extends BaseRpcTests { 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; } @@ -95,6 +97,8 @@ public class SubscribeVehicleDataTests extends BaseRpcTests { 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); } @@ -134,6 +138,8 @@ public class SubscribeVehicleDataTests extends BaseRpcTests { 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(); @@ -166,6 +172,8 @@ public class SubscribeVehicleDataTests extends BaseRpcTests { 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()); } /** @@ -213,6 +221,8 @@ public class SubscribeVehicleDataTests extends BaseRpcTests { 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_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/UnsubscribeVehicleDataTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeVehicleDataTests.java index 1f8173af7..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 { @@ -51,6 +51,8 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests { 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; } @@ -96,6 +98,8 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests { result.put(UnsubscribeVehicleData.KEY_CLUSTER_MODE_STATUS, 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); } @@ -134,6 +138,8 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests { 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(); @@ -166,6 +172,8 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests { 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()); } /** @@ -213,6 +221,8 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests { 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_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 053dd6897..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 @@ -26,6 +26,7 @@ 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; @@ -87,6 +88,8 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{ 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); } @@ -262,6 +265,8 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{ 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(); @@ -442,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(); @@ -472,7 +479,9 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{ 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()); } @@ -558,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/SubscribeVehicleDataResponseTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeVehicleDataResponseTest.java index ec5cc5f9a..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 { @@ -55,6 +55,8 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { 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; } @@ -105,6 +107,8 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { 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); } @@ -143,6 +147,8 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { 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)); @@ -171,6 +177,8 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { 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(); @@ -203,6 +211,8 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { 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()); } /** @@ -328,6 +338,14 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { 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 d3867edf4..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 { @@ -57,6 +57,8 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { 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; } @@ -107,6 +109,8 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { 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); } @@ -145,6 +149,8 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { 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)); @@ -173,6 +179,8 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { 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(); @@ -205,6 +213,8 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { 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()); } /** @@ -330,8 +340,16 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { 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/androidTest/java/com/smartdevicelink/test/streaming/MockPacketizer.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockPacketizer.java index d32a204a6..2c6618f62 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockPacketizer.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockPacketizer.java @@ -5,6 +5,7 @@ import com.smartdevicelink.protocol.enums.SessionType; import com.smartdevicelink.proxy.RPCRequest; import com.smartdevicelink.streaming.AbstractPacketizer; import com.smartdevicelink.streaming.IStreamListener; +import com.smartdevicelink.util.Version; import java.io.IOException; import java.io.InputStream; @@ -15,6 +16,7 @@ import java.io.InputStream; */ public class MockPacketizer extends AbstractPacketizer { public MockPacketizer (IStreamListener l, InputStream i, SessionType s, byte sid, SdlSession sdlsession) throws IOException { super (l, i, s, sid, sdlsession); } + public MockPacketizer (IStreamListener l, InputStream i, RPCRequest r, SessionType s, byte sid, Version protocolVersion,SdlSession sdlsession) throws IOException { super (l, i, r, s, sid, protocolVersion, sdlsession); } public MockPacketizer (IStreamListener l, InputStream i, RPCRequest r, SessionType s, byte sid, byte w, SdlSession sdlsession) throws IOException { super (l, i, r, s, sid, w, sdlsession); } @Override public void start() throws IOException { } @@ -26,7 +28,9 @@ public class MockPacketizer extends AbstractPacketizer { public SdlSession getSdlSession () { return _session; } public byte getSessionId () { return _rpcSessionID; } public RPCRequest getRPCRequest () { return _request; } - public byte getWiproVersion () { return _wiproVersion; } + @Deprecated + public byte getWiproVersion () { if(_wiproVersion != null){return (byte)_wiproVersion.getMajor(); }else{return 5;}} + public Version getProtocolVersion () { return _wiproVersion; } @Override public void pause() { } @Override public void resume() { } diff --git a/sdl_android/src/main/java/com/smartdevicelink/marshal/JsonRPCMarshaller.java b/sdl_android/src/main/java/com/smartdevicelink/marshal/JsonRPCMarshaller.java index 414538a19..89f4d1ef7 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/marshal/JsonRPCMarshaller.java +++ b/sdl_android/src/main/java/com/smartdevicelink/marshal/JsonRPCMarshaller.java @@ -23,7 +23,12 @@ import com.smartdevicelink.util.DebugTool; public class JsonRPCMarshaller {
private static final String SDL_LIB_PRIVATE_KEY = "42baba60-eb57-11df-98cf-0800200c9a66";
-
+
+ /**
+ * @param msg RPC message to be marshaled
+ * @param version protocol version
+ * @return byte array of the marshalled message
+ */
public static byte[] marshall(RPCMessage msg, byte version) {
byte[] jsonBytes = null;
try {
@@ -81,7 +86,7 @@ public class JsonRPCMarshaller { return ret;
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("unchecked" )
private static JSONArray serializeList(List<?> list) throws JSONException{
JSONArray toPut = new JSONArray();
Iterator<Object> valueIterator = (Iterator<Object>) list.iterator();
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/RPCStruct.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCStruct.java index 116c491df..2d9ab77d7 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCStruct.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCStruct.java @@ -1,6 +1,9 @@ package com.smartdevicelink.proxy;
+import android.util.Log;
+
import com.smartdevicelink.marshal.JsonRPCMarshaller;
+import com.smartdevicelink.util.Version;
import org.json.JSONException;
import org.json.JSONObject;
@@ -20,6 +23,10 @@ public class RPCStruct { private byte[] _bulkData = null;
private Boolean protectedPayload = false;
+ private boolean formatRequested = false;
+ private Version rpcSpecVersion = null;
+
+
protected Hashtable<String, Object> store = null;
public boolean getStoreValue(String key) { // for unit testing
@@ -45,6 +52,7 @@ public class RPCStruct { public void deserializeJSON(JSONObject jsonObject) throws JSONException {
store = JsonRPCMarshaller.deserializeJSONObject(jsonObject);
+
}
// deserializeJSONObject method moved to JsonRPCMarshaller for consistency
@@ -54,14 +62,14 @@ public class RPCStruct { throws JSONException {
return JsonRPCMarshaller.deserializeJSONObject(jsonObject);
}
-
+
public JSONObject serializeJSON() throws JSONException {
return JsonRPCMarshaller.serializeHashtable(store);
}
@SuppressWarnings("unchecked")
- public JSONObject serializeJSON(byte version) throws JSONException {
- if (version > 1) {
+ public JSONObject serializeJSON(byte protocolVersion) throws JSONException {
+ if (protocolVersion > 1) {
String messageType = getMessageTypeName(store.keySet());
Hashtable<String, Object> function = (Hashtable<String, Object>) store.get(messageType);
Hashtable<String, Object> parameters = (Hashtable<String, Object>) function.get(RPCMessage.KEY_PARAMETERS);
@@ -69,6 +77,57 @@ public class RPCStruct { } else return JsonRPCMarshaller.serializeHashtable(store);
}
+ /**
+ * This method should clean the the RPC to make sure it is compliant with the spec.
+ * <br><br><b> NOTE:</b> Super needs to be called at the END of the method
+ *
+ * @param rpcVersion the rpc spec version that has been negotiated. If value is null the
+ * the max value of RPC spec version this library supports should be used.
+ * @param formatParams if true, the format method will be called on subsequent params
+ */
+ public void format(Version rpcVersion, boolean formatParams){
+ formatRequested = true;
+ rpcSpecVersion = rpcVersion;
+ //Should override this method when breaking changes are made to the RPC spec
+ if(formatParams && store != null){
+ Hashtable<String, Object> parameters;
+
+ if(this instanceof RPCMessage) {
+ //If this is a message (request, response, notification) the parameters have to be
+ //retrieved from the store object.
+ String messageType = getMessageTypeName(store.keySet());
+ Hashtable<String, Object> function = (Hashtable<String, Object>) store.get(messageType);
+ parameters = (Hashtable<String, Object>) function.get(RPCMessage.KEY_PARAMETERS);
+ } else {
+ //If this is just an RPC struct the store itself should be used
+ parameters = store;
+ }
+
+ for(Object value:parameters.values()){
+ internalFormat(rpcVersion, value);
+ }
+ }
+ }
+
+ /**
+ * Cycles through parameters in this RPC to ensure they all get formated
+ * @param rpcVersion version of the rpc spec that should be used to format this rpc
+ * @param value the object to investigate if it needs to be formated
+ */
+ private void internalFormat(Version rpcVersion, Object value) {
+ if(value instanceof RPCStruct) {
+ ((RPCStruct)value).format(rpcVersion,true);
+ } else if(value instanceof List<?>) {
+ List<?> list = (List<?>)value;
+ if(list != null && list.size() > 0) {
+ for(Object listItem: list){
+ internalFormat(rpcVersion, listItem);
+ }
+ }
+ }
+ }
+
+
public byte[] getBulkData() {
return this._bulkData;
}
@@ -156,7 +215,12 @@ public class RPCStruct { } else if (obj instanceof Hashtable) {
try {
Constructor constructor = tClass.getConstructor(Hashtable.class);
- return constructor.newInstance((Hashtable<String, Object>) obj);
+ Object customObject = constructor.newInstance((Hashtable<String, Object>) obj);
+ if(formatRequested && customObject instanceof RPCStruct){
+ ((RPCStruct)customObject).format(rpcSpecVersion,true);
+ }
+
+ return customObject;
} catch (Exception e) {
e.printStackTrace();
}
@@ -168,10 +232,17 @@ public class RPCStruct { return list;
} else if (item instanceof Hashtable) {
List<Object> newList = new ArrayList<Object>();
+ Object customObject;
for (Object hashObj : list) {
try {
Constructor constructor = tClass.getConstructor(Hashtable.class);
- newList.add(constructor.newInstance((Hashtable<String, Object>)hashObj));
+ customObject = constructor.newInstance((Hashtable<String, Object>) hashObj);
+ if(formatRequested
+ && customObject != null
+ && customObject instanceof RPCStruct){
+ ((RPCStruct)customObject).format(rpcSpecVersion,true);
+ }
+ newList.add(customObject);
} catch (Exception e) {
e.printStackTrace();
return null;
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 8c38d5c87..f8fb1f353 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java @@ -127,7 +127,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> private static final int PROX_PROT_VER_ONE = 1;
private static final int RESPONSE_WAIT_TIME = 2000;
- private static final com.smartdevicelink.util.Version MAX_SUPPORTED_RPC_VERSION = new com.smartdevicelink.util.Version("4.5.0");
+ public static final com.smartdevicelink.util.Version MAX_SUPPORTED_RPC_VERSION = new com.smartdevicelink.util.Version("5.0.0");
private SdlSession sdlSession = null;
private proxyListenerType _proxyListener = null;
@@ -241,6 +241,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> private final CopyOnWriteArrayList<IPutFileResponseListener> _putFileListenerList = new CopyOnWriteArrayList<IPutFileResponseListener>();
protected byte _wiproVersion = 1;
+ protected com.smartdevicelink.util.Version rpcSpecVersion;
protected SparseArray<OnRPCResponseListener> rpcResponseListeners = null;
protected SparseArray<CopyOnWriteArrayList<OnRPCNotificationListener>> rpcNotificationListeners = null;
@@ -1646,18 +1647,16 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> public String serializeJSON(RPCMessage msg)
{
- String sReturn;
try
{
- sReturn = msg.serializeJSON(getWiProVersion()).toString(2);
- }
+ return msg.serializeJSON(getWiProVersion()).toString(2);
+ }
catch (final Exception e)
{
DebugTool.logError("Error handing proxy event.", e);
passErrorToProxyListener("Error serializing message.", e);
return null;
}
- return sReturn;
}
private void handleErrorsFromIncomingMessageDispatcher(String info, Exception e) {
@@ -1801,7 +1800,8 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> private void sendRPCRequestPrivate(RPCRequest request) throws SdlException {
try {
SdlTrace.logRPCEvent(InterfaceActivityDirection.Transmit, request, SDL_LIB_TRACE_KEY);
-
+
+ request.format(rpcSpecVersion,true);
byte[] msgBytes = JsonRPCMarshaller.marshall(request, _wiproVersion);
ProtocolMessage pm = new ProtocolMessage();
@@ -2010,6 +2010,8 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> private void handleRPCMessage(Hashtable<String, Object> hash) {
RPCMessage rpcMsg = new RPCMessage(hash);
+ //Call format to ensure the RPC is ready to be handled regardless of RPC spec version
+
String functionName = rpcMsg.getFunctionName();
String messageType = rpcMsg.getMessageType();
@@ -2024,6 +2026,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> && _advancedLifecycleManagementEnabled
&& functionName.equals(FunctionID.REGISTER_APP_INTERFACE.toString())) {
final RegisterAppInterfaceResponse msg = new RegisterAppInterfaceResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (msg.getSuccess()) {
_appInterfaceRegisterd = true;
}
@@ -2048,12 +2051,19 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> _sdlLanguage = msg.getLanguage();
_hmiDisplayLanguage = msg.getHmiDisplayLanguage();
_sdlMsgVersion = msg.getSdlMsgVersion();
+ if(_sdlMsgVersion != null){
+ rpcSpecVersion = new com.smartdevicelink.util.Version(_sdlMsgVersion.getMajorVersion(),_sdlMsgVersion.getMinorVersion(), _sdlMsgVersion.getPatchVersion());
+ }else{
+ rpcSpecVersion = MAX_SUPPORTED_RPC_VERSION;
+ }
_vehicleType = msg.getVehicleType();
_systemSoftwareVersion = msg.getSystemSoftwareVersion();
_proxyVersionInfo = msg.getProxyVersionInfo();
_iconResumed = msg.getIconResumed();
-
+ if (_iconResumed == null){
+ _iconResumed = false;
+ }
if (_bAppResumeEnabled)
{
@@ -2166,6 +2176,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> APP_INTERFACE_REGISTERED_LOCK.notify();
}
final UnregisterAppInterfaceResponse msg = new UnregisterAppInterfaceResponse(hash);
+ msg.format(rpcSpecVersion, true);
Intent sendIntent = createBroadcastIntent();
updateBroadcastIntent(sendIntent, "RPC_NAME", FunctionID.UNREGISTER_APP_INTERFACE.toString());
updateBroadcastIntent(sendIntent, "TYPE", RPCMessage.KEY_RESPONSE);
@@ -2181,6 +2192,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> if (functionName.equals(FunctionID.REGISTER_APP_INTERFACE.toString())) {
final RegisterAppInterfaceResponse msg = new RegisterAppInterfaceResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (msg.getSuccess()) {
_appInterfaceRegisterd = true;
}
@@ -2194,6 +2206,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> _sdlLanguage = msg.getLanguage();
_hmiDisplayLanguage = msg.getHmiDisplayLanguage();
_sdlMsgVersion = msg.getSdlMsgVersion();
+ rpcSpecVersion = new com.smartdevicelink.util.Version(_sdlMsgVersion.getMajorVersion(),_sdlMsgVersion.getMinorVersion(), _sdlMsgVersion.getPatchVersion());
_vehicleType = msg.getVehicleType();
_systemSoftwareVersion = msg.getSystemSoftwareVersion();
_proxyVersionInfo = msg.getProxyVersionInfo();
@@ -2254,6 +2267,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // SpeakResponse
final SpeakResponse msg = new SpeakResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2271,6 +2285,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // AlertResponse
final AlertResponse msg = new AlertResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2288,6 +2303,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // ShowResponse
final ShowResponse msg = new ShowResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2305,6 +2321,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // AddCommand
final AddCommandResponse msg = new AddCommandResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2322,6 +2339,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // DeleteCommandResponse
final DeleteCommandResponse msg = new DeleteCommandResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2339,6 +2357,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // AddSubMenu
final AddSubMenuResponse msg = new AddSubMenuResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2356,6 +2375,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // DeleteSubMenu
final DeleteSubMenuResponse msg = new DeleteSubMenuResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2373,6 +2393,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // SubscribeButton
final SubscribeButtonResponse msg = new SubscribeButtonResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2390,6 +2411,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // UnsubscribeButton
final UnsubscribeButtonResponse msg = new UnsubscribeButtonResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2407,6 +2429,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // SetMediaClockTimer
final SetMediaClockTimerResponse msg = new SetMediaClockTimerResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2423,7 +2446,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.ENCODED_SYNC_P_DATA.toString())) {
final SystemRequestResponse msg = new SystemRequestResponse(hash);
-
+ msg.format(rpcSpecVersion,true);
Intent sendIntent = createBroadcastIntent();
updateBroadcastIntent(sendIntent, "RPC_NAME", FunctionID.SYSTEM_REQUEST.toString());
updateBroadcastIntent(sendIntent, "TYPE", RPCMessage.KEY_RESPONSE);
@@ -2450,6 +2473,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // CreateInteractionChoiceSet
final CreateInteractionChoiceSetResponse msg = new CreateInteractionChoiceSetResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2467,6 +2491,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // DeleteInteractionChoiceSet
final DeleteInteractionChoiceSetResponse msg = new DeleteInteractionChoiceSetResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2484,6 +2509,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // PerformInteraction
final PerformInteractionResponse msg = new PerformInteractionResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2501,6 +2527,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // SetGlobalPropertiesResponse
final SetGlobalPropertiesResponse msg = new SetGlobalPropertiesResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2518,6 +2545,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // ResetGlobalProperties
final ResetGlobalPropertiesResponse msg = new ResetGlobalPropertiesResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2540,7 +2568,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
final UnregisterAppInterfaceResponse msg = new UnregisterAppInterfaceResponse(hash);
-
+ msg.format(rpcSpecVersion,true);
Intent sendIntent = createBroadcastIntent();
updateBroadcastIntent(sendIntent, "RPC_NAME", FunctionID.UNREGISTER_APP_INTERFACE.toString());
updateBroadcastIntent(sendIntent, "TYPE", RPCMessage.KEY_RESPONSE);
@@ -2573,6 +2601,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.GENERIC_RESPONSE.toString())) {
// GenericResponse (Usually and error)
final GenericResponse msg = new GenericResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2589,6 +2618,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.SLIDER.toString())) {
// Slider
final SliderResponse msg = new SliderResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2605,6 +2635,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.PUT_FILE.toString())) {
// PutFile
final PutFileResponse msg = new PutFileResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2623,6 +2654,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.DELETE_FILE.toString())) {
// DeleteFile
final DeleteFileResponse msg = new DeleteFileResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2639,6 +2671,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.LIST_FILES.toString())) {
// ListFiles
final ListFilesResponse msg = new ListFilesResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2655,6 +2688,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.SET_APP_ICON.toString())) {
// SetAppIcon
final SetAppIconResponse msg = new SetAppIconResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2671,6 +2705,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.SCROLLABLE_MESSAGE.toString())) {
// ScrollableMessage
final ScrollableMessageResponse msg = new ScrollableMessageResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2687,6 +2722,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.CHANGE_REGISTRATION.toString())) {
// ChangeLanguageRegistration
final ChangeRegistrationResponse msg = new ChangeRegistrationResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2703,7 +2739,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.SET_DISPLAY_LAYOUT.toString())) {
// SetDisplayLayout
final SetDisplayLayoutResponse msg = new SetDisplayLayoutResponse(hash);
-
+ msg.format(rpcSpecVersion,true);
// successfully changed display layout - update layout capabilities
if(msg.getSuccess() && _systemCapabilityManager!=null){
_systemCapabilityManager.setCapability(SystemCapabilityType.DISPLAY, msg.getDisplayCapabilities());
@@ -2728,6 +2764,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.PERFORM_AUDIO_PASS_THRU.toString())) {
// PerformAudioPassThru
final PerformAudioPassThruResponse msg = new PerformAudioPassThruResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2744,6 +2781,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.END_AUDIO_PASS_THRU.toString())) {
// EndAudioPassThru
final EndAudioPassThruResponse msg = new EndAudioPassThruResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2760,6 +2798,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.SUBSCRIBE_VEHICLE_DATA.toString())) {
// SubscribeVehicleData
final SubscribeVehicleDataResponse msg = new SubscribeVehicleDataResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2776,6 +2815,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.UNSUBSCRIBE_VEHICLE_DATA.toString())) {
// UnsubscribeVehicleData
final UnsubscribeVehicleDataResponse msg = new UnsubscribeVehicleDataResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2792,6 +2832,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.GET_VEHICLE_DATA.toString())) {
// GetVehicleData
final GetVehicleDataResponse msg = new GetVehicleDataResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2808,6 +2849,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.SUBSCRIBE_WAY_POINTS.toString())) {
// SubscribeWayPoints
final SubscribeWayPointsResponse msg = new SubscribeWayPointsResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2824,6 +2866,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.UNSUBSCRIBE_WAY_POINTS.toString())) {
// UnsubscribeWayPoints
final UnsubscribeWayPointsResponse msg = new UnsubscribeWayPointsResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2840,6 +2883,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.GET_WAY_POINTS.toString())) {
// GetWayPoints
final GetWayPointsResponse msg = new GetWayPointsResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2855,6 +2899,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
} else if (functionName.equals(FunctionID.READ_DID.toString())) {
final ReadDIDResponse msg = new ReadDIDResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2870,6 +2915,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
} else if (functionName.equals(FunctionID.GET_DTCS.toString())) {
final GetDTCsResponse msg = new GetDTCsResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2885,6 +2931,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
} else if (functionName.equals(FunctionID.DIAGNOSTIC_MESSAGE.toString())) {
final DiagnosticMessageResponse msg = new DiagnosticMessageResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2902,6 +2949,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> else if (functionName.equals(FunctionID.SYSTEM_REQUEST.toString())) {
final SystemRequestResponse msg = new SystemRequestResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2919,6 +2967,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> else if (functionName.equals(FunctionID.SEND_LOCATION.toString())) {
final SendLocationResponse msg = new SendLocationResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2936,6 +2985,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> else if (functionName.equals(FunctionID.DIAL_NUMBER.toString())) {
final DialNumberResponse msg = new DialNumberResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -2952,6 +3002,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
else if (functionName.equals(FunctionID.SHOW_CONSTANT_TBT.toString())) {
final ShowConstantTbtResponse msg = new ShowConstantTbtResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
_mainUIHandler.post(new Runnable() {
@Override
@@ -2967,6 +3018,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
else if (functionName.equals(FunctionID.ALERT_MANEUVER.toString())) {
final AlertManeuverResponse msg = new AlertManeuverResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
_mainUIHandler.post(new Runnable() {
@Override
@@ -2981,6 +3033,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
} else if (functionName.equals(FunctionID.UPDATE_TURN_LIST.toString())) {
final UpdateTurnListResponse msg = new UpdateTurnListResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
_mainUIHandler.post(new Runnable() {
@Override
@@ -2995,6 +3048,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
} else if (functionName.equals(FunctionID.SET_INTERIOR_VEHICLE_DATA.toString())) {
final SetInteriorVehicleDataResponse msg = new SetInteriorVehicleDataResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
_mainUIHandler.post(new Runnable() {
@Override
@@ -3009,6 +3063,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
} else if (functionName.equals(FunctionID.GET_INTERIOR_VEHICLE_DATA.toString())) {
final GetInteriorVehicleDataResponse msg = new GetInteriorVehicleDataResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
_mainUIHandler.post(new Runnable() {
@Override
@@ -3024,6 +3079,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.GET_SYSTEM_CAPABILITY.toString())) {
// GetSystemCapabilityResponse
final GetSystemCapabilityResponse msg = new GetSystemCapabilityResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
_mainUIHandler.post(new Runnable() {
@Override
@@ -3038,6 +3094,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
} else if (functionName.equals(FunctionID.BUTTON_PRESS.toString())) {
final ButtonPressResponse msg = new ButtonPressResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
_mainUIHandler.post(new Runnable() {
@Override
@@ -3052,6 +3109,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
} else if (functionName.equals(FunctionID.SEND_HAPTIC_DATA.toString())) {
final SendHapticDataResponse msg = new SendHapticDataResponse(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3094,6 +3152,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> _hmiLevel = msg.getHmiLevel();
_audioStreamingState = msg.getAudioStreamingState();
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3113,6 +3172,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // OnCommand
final OnCommand msg = new OnCommand(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3138,6 +3198,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> sdlSession.getLockScreenMan().setDriverDistStatus(drDist == DriverDistractionState.DD_ON);
}
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3164,7 +3225,8 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // If url is null, then send notification to the app, otherwise, send to URL
if (msg.getUrl() == null) {
updateBroadcastIntent(sendIntent, "COMMENT1", "URL is a null value (received)");
- sendBroadcastIntent(sendIntent);
+ sendBroadcastIntent(sendIntent);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3200,6 +3262,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> //OnPermissionsChange
final OnPermissionsChange msg = new OnPermissionsChange(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3217,6 +3280,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // OnTBTClientState
final OnTBTClientState msg = new OnTBTClientState(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3234,6 +3298,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // OnButtonPress
final OnButtonPress msg = new OnButtonPress(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3251,6 +3316,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // OnButtonEvent
final OnButtonEvent msg = new OnButtonEvent(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3268,6 +3334,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // OnLanguageChange
final OnLanguageChange msg = new OnLanguageChange(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3285,6 +3352,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // OnLanguageChange
final OnHashChange msg = new OnHashChange(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3310,7 +3378,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // OnSystemRequest
final OnSystemRequest msg = new OnSystemRequest(hash);
-
+ msg.format(rpcSpecVersion,true);
if ((msg.getUrl() != null) &&
(((msg.getRequestType() == RequestType.PROPRIETARY) && (msg.getFileType() == FileType.JSON))
|| ((msg.getRequestType() == RequestType.HTTP) && (msg.getFileType() == FileType.BINARY)))){
@@ -3330,6 +3398,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> lockScreenIconRequest = msg;
}
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3346,6 +3415,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.ON_AUDIO_PASS_THRU.toString())) {
// OnAudioPassThru
final OnAudioPassThru msg = new OnAudioPassThru(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3362,6 +3432,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> } else if (functionName.equals(FunctionID.ON_VEHICLE_DATA.toString())) {
// OnVehicleData
final OnVehicleData msg = new OnVehicleData(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3385,6 +3456,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
final OnAppInterfaceUnregistered msg = new OnAppInterfaceUnregistered(hash);
+ msg.format(rpcSpecVersion,true);
Intent sendIntent = createBroadcastIntent();
updateBroadcastIntent(sendIntent, "RPC_NAME", FunctionID.ON_APP_INTERFACE_UNREGISTERED.toString());
@@ -3414,6 +3486,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
else if (functionName.equals(FunctionID.ON_KEYBOARD_INPUT.toString())) {
final OnKeyboardInput msg = new OnKeyboardInput(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3430,6 +3503,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
else if (functionName.equals(FunctionID.ON_TOUCH_EVENT.toString())) {
final OnTouchEvent msg = new OnTouchEvent(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3446,6 +3520,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
else if (functionName.equals(FunctionID.ON_WAY_POINT_CHANGE.toString())) {
final OnWayPointChange msg = new OnWayPointChange(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3462,6 +3537,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
else if (functionName.equals(FunctionID.ON_INTERIOR_VEHICLE_DATA.toString())) {
final OnInteriorVehicleData msg = new OnInteriorVehicleData(hash);
+ msg.format(rpcSpecVersion, true);
if (_callbackToUIThread) {
// Run in UI thread
_mainUIHandler.post(new Runnable() {
@@ -3476,6 +3552,23 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> onRPCNotificationReceived(msg);
}
}
+ else if (functionName.equals(FunctionID.ON_RC_STATUS.toString())) {
+ final OnRCStatus msg = new OnRCStatus(hash);
+ msg.format(rpcSpecVersion, true);
+ 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 +
@@ -4853,28 +4946,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.
@@ -4884,11 +4996,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*/
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/GetVehicleData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java index 583783787..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 @@ -194,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>
*
*
@@ -245,6 +253,8 @@ public class GetVehicleData extends RPCRequest { 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
@@ -454,4 +464,32 @@ public class GetVehicleData extends RPCRequest { 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 bafc0c111..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,8 +6,10 @@ 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;
@@ -48,6 +50,8 @@ public class GetVehicleDataResponse extends RPCResponse { 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
@@ -276,4 +280,37 @@ public class GetVehicleDataResponse extends RPCResponse { 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/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 a7ebc26ae..bcb281986 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 @@ -104,6 +104,18 @@ public class OnHMIStatus extends RPCNotification { setAudioStreamingState(audioStreamingState);
setSystemContext(systemContext);
}
+
+ @Override
+ public void format(com.smartdevicelink.util.Version rpcVersion, boolean formatParams){
+ if(rpcVersion.getMajor() < 5){
+ if(getVideoStreamingState() == null){
+ setVideoStreamingState(VideoStreamingState.STREAMABLE);
+ }
+ }
+
+ super.format(rpcVersion,formatParams);
+ }
+
/**
* <p>Get HMILevel in effect for the application</p>
* @return {@linkplain HMILevel} the current HMI Level in effect for the application
@@ -137,11 +149,7 @@ public class OnHMIStatus extends RPCNotification { * @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;
+ return (VideoStreamingState) getObject(VideoStreamingState.class, KEY_VIDEO_STREAMING_STATE);
}
/**
* <p>Set the video streaming state</p>
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/OnVehicleData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java index c5a423748..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 @@ -6,7 +6,9 @@ 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;
@@ -283,6 +285,8 @@ public class OnVehicleData extends RPCNotification { 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());
@@ -491,4 +495,37 @@ public class OnVehicleData extends RPCNotification { 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/RegisterAppInterfaceResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterfaceResponse.java index d77678662..13ecd9c75 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 @@ -77,6 +77,17 @@ public class RegisterAppInterfaceResponse extends RPCResponse { setSuccess(success);
setResultCode(resultCode);
}
+
+ @Override
+ public void format(com.smartdevicelink.util.Version rpcVersion, boolean formatParams){
+ //Add in 5.0.0 of the rpc spec
+ if(getIconResumed() == null){
+ setIconResumed(Boolean.FALSE);
+ }
+
+ super.format(rpcVersion,formatParams);
+ }
+
@SuppressWarnings("unchecked")
public SdlMsgVersion getSdlMsgVersion() {
return (SdlMsgVersion) getObject(SdlMsgVersion.class, KEY_SDL_MSG_VERSION);
@@ -380,11 +391,22 @@ public class RegisterAppInterfaceResponse extends RPCResponse { return getString(KEY_SYSTEM_SOFTWARE_VERSION);
}
- public void setIconResumed(Boolean iconResumed){
- setParameters(KEY_ICON_RESUMED, iconResumed);
- }
+ /**
+ * Sets Icon Resumed Boolean
+ * @param iconResumed - if param not included, set to false
+ */
+ public void setIconResumed(Boolean iconResumed){
+ if(iconResumed == null){
+ iconResumed = false;
+ }
+ setParameters(KEY_ICON_RESUMED, iconResumed);
+ }
- public Boolean getIconResumed() {
- return getBoolean(KEY_ICON_RESUMED);
- }
+ /**
+ * Tells developer whether or not their app icon has been resumed on core.
+ * @return boolean - true if icon was resumed, false if not
+ */
+ 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/SdlMsgVersion.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SdlMsgVersion.java index 128d2050f..3e1637e22 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SdlMsgVersion.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SdlMsgVersion.java @@ -74,7 +74,17 @@ public class SdlMsgVersion extends RPCStruct { this();
setMajorVersion(majorVersion);
setMinorVersion(minorVersion);
+
+ }
+
+ @Override
+ public void format(com.smartdevicelink.util.Version rpcVersion, boolean formatParams) {
+ if(getPatchVersion() == null){
+ setPatchVersion(0);
+ }
+ super.format(rpcVersion,formatParams);
}
+
public Integer getMajorVersion() {
return getInteger( KEY_MAJOR_VERSION );
}
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/SetMediaClockTimer.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetMediaClockTimer.java index 4ec73b9d7..fb15e3242 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetMediaClockTimer.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetMediaClockTimer.java @@ -4,6 +4,7 @@ import android.support.annotation.NonNull; import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import com.smartdevicelink.proxy.rpc.enums.AudioStreamingIndicator;
import com.smartdevicelink.proxy.rpc.enums.UpdateMode;
import java.util.Hashtable;
@@ -54,6 +55,13 @@ import java.util.Hashtable; * <td>SmartDeviceLink 1.0</td>
* </tr>
* <tr>
+ * <td>audioStreamingIndicator</td>
+ * <td>AudioStreamingIndicator</td>
+ * <td></td>
+ * <td>N</td>
+ * <td></td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
*
* </table>
*
@@ -76,6 +84,7 @@ public class SetMediaClockTimer extends RPCRequest { public static final String KEY_START_TIME = "startTime";
public static final String KEY_END_TIME = "endTime";
public static final String KEY_UPDATE_MODE = "updateMode";
+ public static final String KEY_AUDIO_STREAMING_INDICATOR = "audioStreamingIndicator";
/**
* Constructs a new SetMediaClockTimer object
*/
@@ -168,4 +177,20 @@ public class SetMediaClockTimer extends RPCRequest { public void setUpdateMode( @NonNull UpdateMode updateMode ) {
setParameters(KEY_UPDATE_MODE, updateMode);
}
+
+ /**
+ * Gets the playback status of a media app
+ *
+ * @return AudioStreamingIndicator - a Enumeration value
+ */
+ public AudioStreamingIndicator getAudioStreamingIndicator() {
+ return (AudioStreamingIndicator) getObject(AudioStreamingIndicator.class, KEY_AUDIO_STREAMING_INDICATOR);
+ }
+
+ /**
+ * Sets the playback status of a media app
+ */
+ public void setAudioStreamingIndicator(AudioStreamingIndicator audioStreamingIndicator ) {
+ setParameters(KEY_AUDIO_STREAMING_INDICATOR, audioStreamingIndicator);
+ }
}
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 d387b2187..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 @@ -226,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>
@@ -272,6 +280,8 @@ public class SubscribeVehicleData extends RPCRequest { 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
@@ -770,4 +780,32 @@ public class SubscribeVehicleData extends RPCRequest { 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 da3336b95..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 @@ -40,6 +40,8 @@ public class SubscribeVehicleDataResponse extends RPCResponse { 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
@@ -431,4 +433,37 @@ public class SubscribeVehicleDataResponse extends RPCResponse { 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/UnsubscribeVehicleData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java index ce7a72c9e..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 @@ -221,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>
@@ -265,7 +273,8 @@ public class UnsubscribeVehicleData extends RPCRequest { 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
@@ -765,4 +774,32 @@ public class UnsubscribeVehicleData extends RPCRequest { 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 888a2f942..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 @@ -43,6 +43,8 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { 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
@@ -436,4 +438,37 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { 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/AudioStreamingIndicator.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/AudioStreamingIndicator.java new file mode 100644 index 000000000..1792de469 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/AudioStreamingIndicator.java @@ -0,0 +1,48 @@ +package com.smartdevicelink.proxy.rpc.enums; + +/** + * Identifies the playback status of a media app + * + * @since SmartDeviceLink 4.6 + */ +public enum AudioStreamingIndicator { + /** + * Default playback indicator. + * + * @since SmartDeviceLink 4.6 + */ + PLAY_PAUSE, + + /** + * Indicates that a button press of the Play/Pause button would start the playback. + * + * @since SmartDeviceLink 4.6 + */ + PLAY, + /** + * Indicates that a button press of the Play/Pause button would pause the current playback. + * + * @since SmartDeviceLink 4.6 + */ + PAUSE, + /** + * Indicates that a button press of the Play/Pause button would stop the current playback. + * + * @since SmartDeviceLink 4.6 + */ + STOP, + ; + + /** + * Convert String to AudioStreamingIndicator + * @param value String + * @return AudioStreamingIndicator + */ + public static AudioStreamingIndicator 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/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/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/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/StaticIconName.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/StaticIconName.java new file mode 100644 index 000000000..455995ff3 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/StaticIconName.java @@ -0,0 +1,910 @@ +package com.smartdevicelink.proxy.rpc.enums; + +/** + * Enumeration of Static Icon Names + */ +public enum StaticIconName { + + /** + * Icon Name accept call / active phone call in progress / initiate a phone call + */ + ACCEPT_CALL("0x29"), + + /** + * Icon Name add waypoint + */ + ADD_WAYPOINT("0x1B"), + + /** + * Icon Name album + */ + ALBUM("0x21"), + + /** + * Icon Name ambient lighting + */ + AMBIENT_LIGHTING("0x3d"), + + /** + * Icon Name arrow - north + */ + ARROW_NORTH("0x40"), + + /** + * Icon Name audio mute + */ + AUDIO_MUTE("0x12"), + + /** + * Icon Name audiobook episode + */ + AUDIOBOOK_EPISODE("0x83"), + + /** + * Icon Name audiobook narrator + */ + AUDIOBOOK_NARRATOR("0x82"), + + /** + * Icon Name auxillary audio + */ + AUXILLARY_AUDIO("0x45"), + + /** + * Icon Name back / return + */ + BACK("0x86"), + + /** + * Icon Name battery capacity 0 of 5 + */ + BATTERY_CAPACITY_0_OF_5("0xF7"), + + /** + * Icon Name battery capacity 1 of 5 + */ + BATTERY_CAPACITY_1_OF_5("0xF8"), + + /** + * Icon Name battery capacity 2 of 5 + */ + BATTERY_CAPACITY_2_OF_5("0xF9"), + + /** + * Icon Name battery capacity 3 of 5 + */ + BATTERY_CAPACITY_3_OF_5("0xFA"), + + /** + * Icon Name battery capacity 4 of 5 + */ + BATTERY_CAPACITY_4_OF_5("0xf6"), + + /** + * Icon Name battery capacity 5 of 5 + */ + BATTERY_CAPACITY_5_OF_5("0xFB"), + + /** + * Icon Name bluetooth audio source + */ + BLUETOOTH_AUDIO_SOURCE("0x09"), + + /** + * Icon Name bluetooth1 + */ + BLUETOOTH1("0xcc"), + + /** + * Icon Name bluetooth2 + */ + BLUETOOTH2("0xCD"), + + /** + * Icon Name browse + */ + BROWSE("0x77"), + + /** + * Icon Name cell phone in roaming mode + */ + CELL_PHONE_IN_ROAMING_MODE("0x66"), + + /** + * Icon Name cell service signal strength 0 of 5 bars + */ + CELL_SERVICE_SIGNAL_STRENGTH_0_OF_5_BARS("0x67"), + + /** + * Icon Name cell service signal strength 1 of 5 bars + */ + CELL_SERVICE_SIGNAL_STRENGTH_1_OF_5_BARS("0x68"), + + /** + * Icon Name cell service signal strength 2 of 5 bars + */ + CELL_SERVICE_SIGNAL_STRENGTH_2_OF_5_BARS("0x69"), + + /** + * Icon Name cell service signal strength 3 of 5 bars + */ + CELL_SERVICE_SIGNAL_STRENGTH_3_OF_5_BARS("0x6A"), + + /** + * Icon Name cell service signal strength 4 of 5 bars + */ + CELL_SERVICE_SIGNAL_STRENGTH_4_OF_5_BARS("0x6B"), + + /** + * Icon Name cell service signal strength 5 of 5 bars + */ + CELL_SERVICE_SIGNAL_STRENGTH_5_OF_5_BARS("0xd3"), + + /** + * Icon Name change lane left + */ + CHANGE_LANE_LEFT("0xc3"), + + /** + * Icon Name change lane right + */ + CHANGE_LANE_RIGHT("0xc1"), + + /** + * Icon Name check box checked + */ + CHECK_BOX_CHECKED("0x27"), + + /** + * Icon Name check box unchecked + */ + CHECK_BOX_UNCHECKED("0x28"), + + /** + * Icon Name climate + */ + CLIMATE("0xd1"), + + /** + * Icon Name clock + */ + CLOCK("0xfc"), + + /** + * Icon Name compose (e.g. message) + */ + COMPOSE("0x1A"), + + /** + * Icon Name contact / person + */ + CONTACT("0x5C"), + + /** + * Icon Name continue + */ + CONTINUE("0x42"), + + /** + * Icon Name dash / bullet point + */ + DASH("0x7F"), + + /** + * Icon Name date / calendar + */ + DATE("0x87"), + + /** + * Icon Name delete/remove - trash + */ + DELETE("0x0F"), + + /** + * Icon Name destination + */ + DESTINATION("0x94"), + + /** + * Icon Name destination ferry ahead + */ + DESTINATION_FERRY_AHEAD("0x4D"), + + /** + * Icon Name ebookmark (e.g. message, feed) + */ + EBOOKMARK("0x2B"), + + /** + * Icon Name end call / reject call + */ + END_CALL("0x2C"), + + /** + * Icon Name fail / X + */ + FAIL("0xD6"), + + /** + * Icon Name fast forward 30 secs + */ + FAST_FORWARD_30_SECS("0x08"), + + /** + * Icon Name favorite / heart + */ + FAVORITE_HEART("0x0E"), + + /** + * Icon Name favorite / star + */ + FAVORITE_STAR("0x95"), + + /** + * Icon Name fax number + */ + FAX_NUMBER("0x80"), + + /** + * Icon Name filename + */ + FILENAME("0x50"), + + /** + * Icon Name filter / search + */ + FILTER("0x79"), + + /** + * Icon Name folder + */ + FOLDER("0x1C"), + + /** + * Icon Name fuel prices + */ + FUEL_PRICES("0xe9"), + + /** + * Icon Name full map + */ + FULL_MAP("0x0c"), + + /** + * Icon Name generic phone number + */ + GENERIC_PHONE_NUMBER("0x53"), + + /** + * Icon Name genre + */ + GENRE("0x4E"), + + /** + * Icon Name global keyboard + */ + GLOBAL_KEYBOARD("0xea"), + + /** + * Icon Name highway exit information + */ + HIGHWAY_EXIT_INFORMATION("0xf4"), + + /** + * Icon Name home phone number + */ + HOME_PHONE_NUMBER("0x55"), + + /** + * Icon Name hyperlink + */ + HYPERLINK("0x78"), + + /** + * Icon Name ID3 tag unknown + */ + ID3_TAG_UNKNOWN("0x51"), + + /** + * Icon Name incoming calls (in list of phone calls) + */ + INCOMING_CALLS("0x57"), + + /** + * Icon Name information + */ + INFORMATION("0x5d"), + + /** + * Icon Name IPOD media source + */ + IPOD_MEDIA_SOURCE("0x0D"), + + /** + * Icon Name join calls + */ + JOIN_CALLS("0x02"), + + /** + * Icon Name keep left + */ + KEEP_LEFT("0x46"), + + /** + * Icon Name keep right + */ + KEEP_RIGHT("0x48"), + + /** + * Icon Name key / keycode + */ + KEY("0x7D"), + + /** + * Icon Name left + */ + LEFT("0x9f"), + + /** + * Icon Name left arrow / back + */ + LEFT_ARROW("0x4B"), + + /** + * Icon Name left exit + */ + LEFT_EXIT("0xaf"), + + /** + * Icon Name LINE IN audio source + */ + LINE_IN_AUDIO_SOURCE("0x06"), + + /** + * Icon Name locked + */ + LOCKED("0x22"), + + /** + * Icon Name media control - left arrow + */ + MEDIA_CONTROL_LEFT_ARROW("0x17"), + + /** + * Icon Name media control - recording + */ + MEDIA_CONTROL_RECORDING("0x20"), + + /** + * Icon Name media control - right arrow + */ + MEDIA_CONTROL_RIGHT_ARROW("0x15"), + + /** + * Icon Name media control - stop (e.g. streaming) + */ + MEDIA_CONTROL_STOP("0x16"), + + /** + * Icon Name microphone + */ + MICROPHONE("0xe8"), + + /** + * Icon Name missed calls (in list of phone calls) + */ + MISSED_CALLS("0x58"), + + /** + * Icon Name mobile phone number + */ + MOBILE_PHONE_NUMBER("0x54"), + + /** + * Icon Name move down / download + */ + MOVE_DOWN("0xE5"), + + /** + * Icon Name move up + */ + MOVE_UP("0xe4"), + + /** + * Icon Name MP3 tag artist + */ + MP3_TAG_ARTIST("0x24"), + + /** + * Icon Name navigation / navigation settings + */ + NAVIGATION("0x8e"), + + /** + * Icon Name navigation current direction + */ + NAVIGATION_CURRENT_DIRECTION("0x0a"), + + /** + * Icon Name negative rating - thumbs down + */ + NEGATIVE_RATING_THUMBS_DOWN("0x14"), + + /** + * Icon Name new/unread text message/email + */ + NEW("0x5E"), + + /** + * Icon Name office phone number / work phone number + */ + OFFICE_PHONE_NUMBER("0x56"), + + /** + * Icon Name opened/read text message/email + */ + OPENED("0x5F"), + + /** + * Icon Name origin / nearby locale / current position + */ + ORIGIN("0x96"), + + /** + * Icon Name outgoing calls (in list of phone calls) + */ + OUTGOING_CALLS("0x59"), + + /** + * Icon Name phone call 1 + */ + PHONE_CALL_1("0x1D"), + + /** + * Icon Name phone call 2 + */ + PHONE_CALL_2("0x1E"), + + /** + * Icon Name phone device + */ + PHONE_DEVICE("0x03"), + + /** + * Icon Name phonebook + */ + PHONEBOOK("0x81"), + + /** + * Icon Name photo / picture + */ + PHOTO("0x88"), + + /** + * Icon Name play / pause - pause active + */ + PLAY("0xD0"), + + /** + * Icon Name playlist + */ + PLAYLIST("0x4F"), + + /** + * Icon Name pop-up + */ + POPUP("0x76"), + + /** + * Icon Name positive rating - thumbs up + */ + POSITIVE_RATING_THUMBS_UP("0x13"), + + /** + * Icon Name power + */ + POWER("0x5b"), + + /** + * Icon Name primary phone (favorite) + */ + PRIMARY_PHONE("0x1F"), + + /** + * Icon Name radio button checked + */ + RADIO_BUTTON_CHECKED("0x25"), + + /** + * Icon Name radio button unchecked + */ + RADIO_BUTTON_UNCHECKED("0x26"), + + /** + * Icon Name recent calls / history + */ + RECENT_CALLS("0xe7"), + + /** + * Icon Name recent destinations + */ + RECENT_DESTINATIONS("0xf2"), + + /** + * Icon Name redo + */ + REDO("0x19"), + + /** + * Icon Name refresh + */ + REFRESH("0x97"), + + /** + * Icon Name remote diagnostics - check engine + */ + REMOTE_DIAGNOSTICS_CHECK_ENGINE("0x7E"), + + /** + * Icon Name rendered 911 assist / emergency assistance + */ + RENDERED_911_ASSIST("0xac"), + + /** + * Icon Name repeat + */ + REPEAT("0xe6"), + + /** + * Icon Name repeat play + */ + REPEAT_PLAY("0x73"), + + /** + * Icon Name reply + */ + REPLY("0x04"), + + /** + * Icon Name rewind 30 secs + */ + REWIND_30_SECS("0x07"), + + /** + * Icon Name right + */ + RIGHT("0xa3"), + + /** + * Icon Name right exit + */ + RIGHT_EXIT("0xb1"), + + /** + * Icon Name ringtones + */ + RINGTONES("0x5A"), + + /** + * Icon Name roundabout left hand 1 + */ + ROUNDABOUT_LEFT_HAND_1("0xee"), + + /** + * Icon Name roundabout left hand 2 + */ + ROUNDABOUT_LEFT_HAND_2("0x8c"), + + /** + * Icon Name roundabout left hand 3 + */ + ROUNDABOUT_LEFT_HAND_3("0x84"), + + /** + * Icon Name roundabout left hand 4 + */ + ROUNDABOUT_LEFT_HAND_4("0x72"), + + /** + * Icon Name roundabout left hand 5 + */ + ROUNDABOUT_LEFT_HAND_5("0x6e"), + + /** + * Icon Name roundabout left hand 6 + */ + ROUNDABOUT_LEFT_HAND_6("0x64"), + + /** + * Icon Name roundabout left hand 7 + */ + ROUNDABOUT_LEFT_HAND_7("0x60"), + + /** + * Icon Name roundabout right hand 1 + */ + ROUNDABOUT_RIGHT_HAND_1("0x62"), + + /** + * Icon Name roundabout right hand 2 + */ + ROUNDABOUT_RIGHT_HAND_2("0x6c"), + + /** + * Icon Name roundabout right hand 3 + */ + ROUNDABOUT_RIGHT_HAND_3("0x70"), + + /** + * Icon Name roundabout right hand 4 + */ + ROUNDABOUT_RIGHT_HAND_4("0x7a"), + + /** + * Icon Name roundabout right hand 5 + */ + ROUNDABOUT_RIGHT_HAND_5("0x8a"), + + /** + * Icon Name roundabout right hand 6 + */ + ROUNDABOUT_RIGHT_HAND_6("0xec"), + + /** + * Icon Name roundabout right hand 7 + */ + ROUNDABOUT_RIGHT_HAND_7("0xf0"), + + /** + * Icon Name RSS + */ + RSS("0x89"), + + /** + * Icon Name settings / menu + */ + SETTINGS("0x49"), + + /** + * Icon Name sharp left + */ + SHARP_LEFT("0xa5"), + + /** + * Icon Name sharp right + */ + SHARP_RIGHT("0xa7"), + + /** + * Icon Name show + */ + SHOW("0xe1"), + + /** + * Icon Name shuffle play + */ + SHUFFLE_PLAY("0x74"), + + /** + * Icon Name ski places / elevation / altitude + */ + SKI_PLACES("0xab"), + + /** + * Icon Name slight left + */ + SLIGHT_LEFT("0x9d"), + + /** + * Icon Name slight right + */ + SLIGHT_RIGHT("0xa1"), + + /** + * Icon Name smartphone + */ + SMARTPHONE("0x05"), + + /** + * Icon Name sort list + */ + SORT_LIST("0x7B"), + + /** + * Icon Name speed dial numbers - number 0 + */ + SPEED_DIAL_NUMBERS_NUMBER_0("0xE0"), + + /** + * Icon Name speed dial numbers - number 1 + */ + SPEED_DIAL_NUMBERS_NUMBER_1("0xD7"), + + /** + * Icon Name speed dial numbers - number 2 + */ + SPEED_DIAL_NUMBERS_NUMBER_2("0xD8"), + + /** + * Icon Name speed dial numbers - number 3 + */ + SPEED_DIAL_NUMBERS_NUMBER_3("0xD9"), + + /** + * Icon Name speed dial numbers - number 4 + */ + SPEED_DIAL_NUMBERS_NUMBER_4("0xDA"), + + /** + * Icon Name speed dial numbers - number 5 + */ + SPEED_DIAL_NUMBERS_NUMBER_5("0xDB"), + + /** + * Icon Name speed dial numbers - number 6 + */ + SPEED_DIAL_NUMBERS_NUMBER_6("0xDC"), + + /** + * Icon Name speed dial numbers - number 7 + */ + SPEED_DIAL_NUMBERS_NUMBER_7("0xDD"), + + /** + * Icon Name speed dial numbers - number 8 + */ + SPEED_DIAL_NUMBERS_NUMBER_8("0xDE"), + + /** + * Icon Name speed dial numbers - number 9 + */ + SPEED_DIAL_NUMBERS_NUMBER_9("0xDF"), + + /** + * Icon Name success / check + */ + SUCCESS("0xD5"), + + /** + * Icon Name track title / song title + */ + TRACK_TITLE("0x4C"), + + /** + * Icon Name traffic report + */ + TRAFFIC_REPORT("0x2A"), + + /** + * Icon Name turn list + */ + TURN_LIST("0x10"), + + /** + * Icon Name u-turn left traffic + */ + UTURN_LEFT_TRAFFIC("0xad"), + + /** + * Icon Name u-turn right traffic + */ + UTURN_RIGHT_TRAFFIC("0xa9"), + + /** + * Icon Name undo + */ + UNDO("0x18"), + + /** + * Icon Name unlocked + */ + UNLOCKED("0x23"), + + /** + * Icon Name USB media audio source + */ + USB_MEDIA_AUDIO_SOURCE("0x0B"), + + /** + * Icon Name voice control scrollbar - list item no. 1 + */ + VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_1("0xC7"), + + /** + * Icon Name voice control scrollbar - list item no. 2 + */ + VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_2("0xC8"), + + /** + * Icon Name voice control scrollbar - list item no. 3 + */ + VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_3("0xC9"), + + /** + * Icon Name voice control scrollbar - list item no. 4 + */ + VOICE_CONTROL_SCROLLBAR_LIST_ITEM_NO_4("0xCA"), + + /** + * Icon Name voice recognition - failed + */ + VOICE_RECOGNITION_FAILED("0x90"), + + /** + * Icon Name voice recognition - pause + */ + VOICE_RECOGNITION_PAUSE("0x92"), + + /** + * Icon Name voice recognition - successful + */ + VOICE_RECOGNITION_SUCCESSFUL("0x8F"), + + /** + * Icon Name voice recognition - system active + */ + VOICE_RECOGNITION_SYSTEM_ACTIVE("0x11"), + + /** + * Icon Name voice recognition - system listening + */ + VOICE_RECOGNITION_SYSTEM_LISTENING("0x91"), + + /** + * Icon Name voice recognition - try again + */ + VOICE_RECOGNITION_TRY_AGAIN("0x93"), + + /** + * Icon Name warning / safety alert + */ + WARNING("0xfe"), + + /** + * Icon Name weather + */ + WEATHER("0xeb"), + + /** + * Icon Name wifi full + */ + WIFI_FULL("0x43"), + + /** + * Icon Name zoom in + */ + ZOOM_IN("0x98"), + + /** + * Icon Name zoom out + */ + ZOOM_OUT("0x9a"), + + ; + + private final String INTERNAL_NAME; + + private StaticIconName(String internalName) { + this.INTERNAL_NAME = internalName; + } + + public static StaticIconName valueForString(String value) { + if(value == null){ + return null; + } + + for (StaticIconName type : StaticIconName.values()) { + if (type.toString().equals(value)) { + return type; + } + } + + return null; + } + + @Override + public String toString() { + return INTERNAL_NAME; + } + +}
\ No newline at end of file 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/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 04b3fee73..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 @@ -115,9 +115,19 @@ public enum VehicleDataType { 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/streaming/AbstractPacketizer.java b/sdl_android/src/main/java/com/smartdevicelink/streaming/AbstractPacketizer.java index 722fa54f9..1a2c393cd 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/streaming/AbstractPacketizer.java +++ b/sdl_android/src/main/java/com/smartdevicelink/streaming/AbstractPacketizer.java @@ -6,6 +6,7 @@ import java.io.InputStream; import com.smartdevicelink.SdlConnection.SdlSession;
import com.smartdevicelink.protocol.enums.SessionType;
import com.smartdevicelink.proxy.RPCRequest;
+import com.smartdevicelink.util.Version;
abstract public class AbstractPacketizer {
@@ -19,7 +20,7 @@ abstract public class AbstractPacketizer { protected byte[] buffer;
protected boolean upts = false;
protected RPCRequest _request = null;
- protected byte _wiproVersion = 1;
+ protected Version _wiproVersion = new Version("1.0.0");
//protected long ts = 0, intervalBetweenReports = 5000, delta = 0;
protected long intervalBetweenReports = 5000, delta = 0;
@@ -38,13 +39,30 @@ abstract public class AbstractPacketizer { }
}
+ @Deprecated
public AbstractPacketizer(IStreamListener streamListener, InputStream is, RPCRequest request, SessionType sType, byte rpcSessionID, byte wiproVersion, SdlSession session) throws IOException, IllegalArgumentException {
this._streamListener = streamListener;
this.is = is;
_rpcSessionID = rpcSessionID;
_serviceType = sType;
_request = request;
- _wiproVersion = wiproVersion;
+ _wiproVersion = new Version(wiproVersion+".0.0");
+ this._session = session;
+ if (this._session != null) {
+ bufferSize = this._session.getMtu();
+ buffer = new byte[bufferSize];
+ }else{
+ throw new IllegalArgumentException("Session variable is null");
+ }
+ }
+
+ public AbstractPacketizer(IStreamListener streamListener, InputStream is, RPCRequest request, SessionType sType, byte rpcSessionID, Version protocolVersion, SdlSession session) throws IOException, IllegalArgumentException {
+ this._streamListener = streamListener;
+ this.is = is;
+ _rpcSessionID = rpcSessionID;
+ _serviceType = sType;
+ _request = request;
+ _wiproVersion = protocolVersion;
this._session = session;
if (this._session != null) {
bufferSize = this._session.getMtu();
diff --git a/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamRPCPacketizer.java b/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamRPCPacketizer.java index 5652aafc3..8aab788c9 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamRPCPacketizer.java +++ b/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamRPCPacketizer.java @@ -22,6 +22,7 @@ import com.smartdevicelink.proxy.rpc.PutFileResponse; import com.smartdevicelink.proxy.rpc.StreamRPCResponse;
import com.smartdevicelink.proxy.rpc.enums.Result;
import com.smartdevicelink.proxy.rpc.listeners.OnPutFileUpdateListener;
+import com.smartdevicelink.util.Version;
public class StreamRPCPacketizer extends AbstractPacketizer implements IPutFileResponseListener, Runnable{
@@ -36,7 +37,9 @@ public class StreamRPCPacketizer extends AbstractPacketizer implements IPutFileR private Object mPauseLock;
private boolean mPaused;
private boolean isRPCProtected = false;
- private OnPutFileUpdateListener callBack;
+ private OnPutFileUpdateListener callBack;
+
+ private Version rpcSpecVersion;
public StreamRPCPacketizer(SdlProxyBase<IProxyListenerBase> proxy, IStreamListener streamListener, InputStream is, RPCRequest request, SessionType sType, byte rpcSessionID, byte wiproVersion, long lLength, SdlSession session) throws IOException {
super(streamListener, is, request, sType, rpcSessionID, wiproVersion, session);
@@ -56,6 +59,24 @@ public class StreamRPCPacketizer extends AbstractPacketizer implements IPutFileR }
}
+ public StreamRPCPacketizer(SdlProxyBase<IProxyListenerBase> proxy, IStreamListener streamListener, InputStream is, RPCRequest request, SessionType sType, byte rpcSessionID, Version wiproVersion, Version rpcSpecVersion, long lLength, SdlSession session) throws IOException {
+ super(streamListener, is, request, sType, rpcSessionID, wiproVersion, session);
+ this.rpcSpecVersion = rpcSpecVersion;
+ lFileSize = lLength;
+ iInitialCorrID = request.getCorrelationID();
+ mPauseLock = new Object();
+ mPaused = false;
+ isRPCProtected = request.isPayloadProtected();
+ if (proxy != null) {
+ _proxy = proxy;
+ _proxyListener = _proxy.getProxyListener();
+ _proxy.addPutFileResponseListener(this);
+ }
+ if(_request.getFunctionName().equalsIgnoreCase(FunctionID.PUT_FILE.toString())){
+ callBack = ((PutFile)_request).getOnPutFileUpdateListener();
+ }
+ }
+
@Override
public void start() throws IOException {
if (thread == null) {
@@ -201,7 +222,8 @@ public class StreamRPCPacketizer extends AbstractPacketizer implements IPutFileR if (msg.getOffset() != 0)
msg.setLength((Long)null); //only need to send length when offset 0
- msgBytes = JsonRPCMarshaller.marshall(msg, _wiproVersion);
+ msg.format(rpcSpecVersion,true);
+ msgBytes = JsonRPCMarshaller.marshall(msg, (byte)_wiproVersion.getMajor());
pm = new ProtocolMessage();
pm.setData(msgBytes);
diff --git a/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java b/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java index defeb67fa..251765ed2 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java +++ b/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java @@ -294,7 +294,12 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{ Intent intent = new Intent(); intent.setClassName(packageName, className); intent.putExtra(TransportConstants.PING_ROUTER_SERVICE_EXTRA, true); - context.startService(intent); + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ + intent.putExtra(FOREGROUND_EXTRA, true); + context.startForegroundService(intent); + }else { + context.startService(intent); + } }catch(SecurityException e){ Log.e(TAG, "Security exception, process is bad"); // This service could not be started diff --git a/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java b/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java index 617fabcb2..03fc61ecc 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java +++ b/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java @@ -78,6 +78,7 @@ import com.smartdevicelink.transport.utl.ByteArrayMessageSpliter; import com.smartdevicelink.util.AndroidTools; import com.smartdevicelink.util.BitConverter; import com.smartdevicelink.util.SdlAppInfo; +import com.smartdevicelink.util.Version; import static com.smartdevicelink.transport.TransportConstants.FOREGROUND_EXTRA; import static com.smartdevicelink.transport.TransportConstants.SDL_NOTIFICATION_CHANNEL_ID; @@ -1977,6 +1978,7 @@ public class SdlRouterService extends Service{ private byte[] createForceUnregisterApp(byte sessionId,byte version){ UnregisterAppInterface request = new UnregisterAppInterface(); request.setCorrelationID(UNREGISTER_APP_INTERFACE_CORRELATION_ID); + request.format(null,true); byte[] msgBytes = JsonRPCMarshaller.marshall(request, version); ProtocolMessage pm = new ProtocolMessage(); pm.setData(msgBytes); diff --git a/sdl_android/src/main/java/com/smartdevicelink/util/Version.java b/sdl_android/src/main/java/com/smartdevicelink/util/Version.java index 8621c8cfd..6861d1504 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/util/Version.java +++ b/sdl_android/src/main/java/com/smartdevicelink/util/Version.java @@ -11,6 +11,12 @@ public class Version { patch = 0; } + public Version(int major, int minor, int patch){ + this.major = major; + this.minor = minor; + this.patch = patch; + } + public Version(String versionString){ String[] versions = versionString.split("\\."); if(versions.length!=3){ |