diff options
author | Joey Grover <joeygrover@gmail.com> | 2017-09-18 14:02:30 -0400 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2017-09-18 14:02:30 -0400 |
commit | 9cee29f3742e723e32a2ce54e784c456fe0c7a19 (patch) | |
tree | 324b6a640298fd38e64993a393e4c14ed5d266c2 | |
parent | 7f204e85663430bfeab1076c74dbfdd817636c22 (diff) | |
parent | 96eb784b5b39b93a37a60323f028327802671a53 (diff) | |
download | sdl_android-9cee29f3742e723e32a2ce54e784c456fe0c7a19.tar.gz |
Merge branch 'develop' of https://github.com/smartdevicelink/sdl_android into feature/issue_469_update
# Conflicts:
# sdl_android/build.gradle
248 files changed, 8091 insertions, 7058 deletions
diff --git a/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 8c8821977..8c8821977 100644 --- a/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..c8cc89515 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,23 @@ +[Delete any non-applicable sections, but we may ask for more information.] + +### Bug Report +[Summary] + +##### Reproduction Steps +1. [Step 1] +2. [Step 2] +3. [Step 3] + +##### Expected Behavior +[Some expected behavior] + +##### Observed Behavior +[Some observed behavior] + +##### OS & Version Information +* Android Version: [What version of Android are you using when the bug occurred] +* SDL Android Version: [What version of the library has this bug been seen on] +* Testing Against: [What you tested with to observe this behavior] + +##### Test Case, Sample Code, and / or Example App +[Paste a link to a PR, gist, or other code that exemplifies this behavior] diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..8581b12e8 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,33 @@ +[Things to note: Pull Requests **must** fix an issue. Discussion about the feature / bug takes place in the issue, discussion of the implementation takes place in the PR. Please also see the [Contributing Guide](https://github.com/smartdevicelink/sdl_android/blob/master/.github/CONTRIBUTING.md) for information on branch naming and the CLA. + +Delete the above section when you've read it.] + +Fixes #[issue number] + +This PR is **[ready / not ready]** for review. + +### Risk +This PR makes **[no / minor / major]** API changes. + +### Testing Plan +[Describe how you plan to unit test the changes in this PR] + +### Summary +[Summary of PR changes] + +### Changelog +##### Breaking Changes +* [Breaking change info] + +##### Enhancements +* [Enhancement info] + +##### Bug Fixes +* [Bug Fix Info] + +### Tasks Remaining: +- [ ] [Task 1] +- [ ] [Task 2] + +### CLA +- [ ] I have signed [the CLA](https://docs.google.com/forms/d/e/1FAIpQLSdsgJY33VByaX482zHzi-xUm49JNnmuJOyAM6uegPQ2LXYVfA/viewform)
\ No newline at end of file diff --git a/.travis.yml b/.travis.yml index b35079b14..5df5d6198 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,19 +4,30 @@ sudo: false android: components: # use the latest revision of Android SDK Tools + - tools - platform-tools - tools + - ndk-bundle # The BuildTools version used by your project - build-tools-25.0.2 # The SDK version used to compile your project - - android-19 + - android-22 # Specify at least one system image, # if you need to run emulator(s) during your tests - - sys-img-armeabi-v7a-android-21 + - sys-img-armeabi-v7a-android-22 # - sys-img-x86-android-17 + # Android Support Repos + - extra-android-m2repository + - extra-google-m2repository + +licenses: + - 'android-sdk-preview-license-.+' + - 'android-sdk-license-.+' + - 'google-gdk-license-.+' + env: global: # install timeout in minutes (2 minutes by default) @@ -24,7 +35,7 @@ env: # Emulator Management: Create, Start and Wait before_script: - - echo no | android create avd --force -n test -t android-21 --abi armeabi-v7a + - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a - emulator -avd test -no-skin -no-audio -no-window & - android-wait-for-emulator - adb shell input keyevent 82 & @@ -32,3 +43,9 @@ before_script: script: - android list target - ./gradlew connectedAndroidTest + +before_install: + - pip install --user codecov #Install codecov + +after_success: + - codecov #Run codecov diff --git a/CHANGELOG.md b/CHANGELOG.md index 5639fb9aa..fe1aee747 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,37 @@ -# 4.1.0 Release Notes +# 4.3.0 Release Notes ### API New Features & Breaking Changes -* Added multiplexing transport that gives the ability to share a single bluetooth RCOMM channel with many clients. -* Added external security framework that allows OEM's to provide custom security libraries. -* ProxyALM constructors have changed and old signatures been deprecated. -* Changed TouchEvent method names to be more intuitive. +* The library has now moved to Android Studio as its default IDE. All files and folders have been moved to align with proper Android Studio project structure. +* The target API level is now `19` instead of `18`. Apps will also need to target this version or higher to continue using this library. +* `Java 7` is now used to compile the library and its features can be used moving forward. ### Enhancements -* Multiplexing will now be the default mode of transport +* Multiplexing bluetooth, legacy bluetooth, and TCP transport has been improved in performance by switching to buffer reads vs single byte read from transport. +* Trusted router service checking feature is now adjustable by developers. +* More unit tests were created. +* Router service will now check to make sure the app that propagated it has permissions to use bluetooth. +* Packet streaming classes will now use the agreed upon MTU instead of the hardcoded 1024 when the stream is not encrypted. +* App IDs sent between the client apps and the router service are now Strings instead of Longs to support longer IDs. ### Bug Fixes -* Fixed issue with sending a stop session with an incorrect hash id -* Fixed the library throwing away hybrid packets -* Fixed http onSystemRequests to actually function correctly -* Fixed a class cast exception in the BTTransport class +* Fixed issue with AOA transport not clearing old accessory reference after disconnect +* Fixed missing setting of error state in multiplexing bluetooth transport +* Fixed potential OOMs when corrupted packets are recieved in: + * `SdlPsm` + * `WiProProtocol` + * `BinaryFrameHeader` +* Fixed possible NPEs in: + * `SdlRouterService` when checking for correct process + * `MultiplexingBluetoothTransport` during reads and writes + * `SdlConnection` during session registration + * `SdlProxyBase` when clearing RPC response and notification listeners during close + * `TransportBroker` when sending a message to router service + * `SdlBroadcastReceiver` during check for running router service + * `HttpRequestTask` that happens when a server can't be reached + * `SdlSecurityBase` when a security lib would become initialized after the base has been reset. +* Added synchronization to a cancel call in the `MultiplexTransport` +* Refactor code in `SdlBroadcastReceiver` to protect against a potential SecurityException +* Added try/catch around bluetooth system calls that can fail in Android classes +* Added try/catch when attempting to build `LocalRouterService` object from parcel when parcel could be corrupt +* Fixed version checking flow in the router service to be cleaner and correctly synched + @@ -1,4 +1,7 @@ +[![Build Status](https://travis-ci.org/smartdevicelink/sdl_android.svg?branch=master)](https://travis-ci.org/smartdevicelink/sdl_android) +[![codecov](https://codecov.io/gh/smartdevicelink/sdl_android/branch/master/graph/badge.svg)](https://codecov.io/gh/smartdevicelink/sdl_android) [![Slack Status](http://sdlslack.herokuapp.com/badge.svg)](http://slack.smartdevicelink.com) +[ ![Download](https://api.bintray.com/packages/smartdevicelink/sdl_android/sdl_android/images/download.svg) ](https://bintray.com/smartdevicelink/sdl_android/sdl_android/_latestVersion) # SmartDeviceLink (SDL) SmartDeviceLink (SDL) is a standard set of protocols and messages that connect applications on a smartphone to a vehicle head unit. This messaging enables a consumer to interact with their application using common in-vehicle interfaces such as a touch screen display, embedded voice recognition, steering wheel controls and various vehicle knobs and buttons. There are three main components that make up the SDL ecosystem. @@ -19,6 +22,8 @@ The mobile library component of SDL is meant to run on the end user’s smart-de ## SmartDeviceLink Android -We're still working on creating documentation for each of these individual repositories, but in the meantime, you can find more information about SmartDeviceLink [here](https://github.com/smartdevicelink/sdl_core/blob/master/README.md) and [here](http://projects.genivi.org/smartdevicelink/about). +We're still working on creating documentation for each of these individual repositories, but in the meantime, you can find more information about SmartDeviceLink [here](https://smartdevicelink.com) You can also find some branches that have yet to be merged into this GitHub project on the GENIVI page [here](http://git.projects.genivi.org/?p=smartdevicelink_android.git;a=summary). + +For easy integration of SmartDeviceLink Android into your project using Gradle, Maven or Ivy please grab a snippet from [Bintray](https://bintray.com/smartdevicelink/sdl_android/sdl_android) diff --git a/sdl_android/bintray.gradle b/sdl_android/bintray.gradle new file mode 100644 index 000000000..ebbf65599 --- /dev/null +++ b/sdl_android/bintray.gradle @@ -0,0 +1,71 @@ +apply plugin: "com.jfrog.bintray" +apply plugin: 'com.github.dcendents.android-maven' +apply plugin: 'maven-publish' + +def siteUrl = 'https://github.com/smartdevicelink/sdl_android' // Homepage URL of the library +def gitUrl = 'https://github.com/smartdevicelink/sdl_android.git' // Git repository URL +group = "com.smartdevicelink" // Maven Group ID for the artifact +def libDescription = 'SmartDeviceLink mobile library for Android' + +install { + repositories.mavenInstaller { + pom { + project { + packaging 'aar' + + // Add your description here + name 'com.smartdevicelink:sdl_android' + description = libDescription + url siteUrl + + // Set your license + licenses { + license { + name 'BSD 3-Clause' + url 'https://opensource.org/licenses/BSD-3-Clause' + } + } + scm { + connection gitUrl + developerConnection gitUrl + url siteUrl + } + } + } + } +} + +task sourcesJar(type: Jar) { + from android.sourceSets.main.java.srcDirs + classifier = 'sources' +} + +artifacts { + archives sourcesJar +} + +bintray { + Properties props = new Properties() + props.load(new FileInputStream("$projectDir/bintray.properties")) + + // Authorization + user = props.getProperty("bintray.user") + key = props.getProperty("bintray.key") + + configurations = ['archives'] + pkg { + repo = props.getProperty("bintray.repo") + name = props.getProperty("bintray.artifact") + websiteUrl = siteUrl + vcsUrl = gitUrl + userOrg = props.getProperty("bintray.userorg") + licenses = ["BSD 3-Clause"] + publish = props.getProperty("bintray.publish") // Will upload to jCenter + version { + name = props.getProperty("bintray.version") // Change to release version + desc = libDescription + released = new Date() // Will be the current date & time + vcsTag = props.getProperty("bintray.vcs") // Should match git tag + } + } +}
\ No newline at end of file diff --git a/sdl_android/bintray.properties b/sdl_android/bintray.properties new file mode 100644 index 000000000..760f99904 --- /dev/null +++ b/sdl_android/bintray.properties @@ -0,0 +1,8 @@ +bintray.user=username +bintray.key=apikey +bintray.repo=sdl_android +bintray.artifact=sdl_android +bintray.userorg=smartdevicelink +bintray.publish=true +bintray.version=X.X.X +bintray.vcs=X.X.X
\ No newline at end of file diff --git a/sdl_android/build.gradle b/sdl_android/build.gradle index 025268455..ad04cab31 100644 --- a/sdl_android/build.gradle +++ b/sdl_android/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 21 + compileSdkVersion 22 buildToolsVersion "25.0.2" defaultConfig { minSdkVersion 8 @@ -15,6 +15,9 @@ android { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } + debug { + testCoverageEnabled = true + } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 @@ -27,8 +30,26 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) + compile ('com.smartdevicelink:bson_java_port:1.0.0@aar'){ + transitive = true + } androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) testCompile 'junit:junit:4.12' } + +buildscript { + repositories { + jcenter() + mavenCentral() + } + dependencies { + classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' + classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' + classpath 'com.trickyandroid:jacoco-everywhere:0.2.1' + } +} + +apply from: 'bintray.gradle' +apply plugin: 'jacoco-everywhere'
\ No newline at end of file diff --git a/sdl_android/src/androidTest/assets/json/DeleteInteractionChoiceSet.json b/sdl_android/src/androidTest/assets/json/DeleteInteractionChoiceSet.json index 40419f005..60f9a6c61 100644 --- a/sdl_android/src/androidTest/assets/json/DeleteInteractionChoiceSet.json +++ b/sdl_android/src/androidTest/assets/json/DeleteInteractionChoiceSet.json @@ -3,7 +3,7 @@ "name":"DeleteInteractionChoiceSet", "correlationID":119, "parameters":{ - "interactionChoiceSetID":56, + "interactionChoiceSetID":56 } }, "response":{ diff --git a/sdl_android/src/androidTest/assets/json/DeleteSubMenu.json b/sdl_android/src/androidTest/assets/json/DeleteSubMenu.json index d0619a1f6..c31eb189d 100644 --- a/sdl_android/src/androidTest/assets/json/DeleteSubMenu.json +++ b/sdl_android/src/androidTest/assets/json/DeleteSubMenu.json @@ -3,7 +3,7 @@ "name":"DeleteSubMenu", "correlationID":121, "parameters":{ - "menuID":765, + "menuID":765 } }, "response":{ diff --git a/sdl_android/src/androidTest/assets/json/DialNumber.json b/sdl_android/src/androidTest/assets/json/DialNumber.json new file mode 100644 index 000000000..cb79aad84 --- /dev/null +++ b/sdl_android/src/androidTest/assets/json/DialNumber.json @@ -0,0 +1,13 @@ +{ + "request":{ + "name":"DialNumber", + "correlationID":194, + "parameters":{ + "wayPointType":"DESTINATION" + } + }, + "response":{ + "name":"DialNumberResponse", + "correlationID":195 + } +}
\ No newline at end of file diff --git a/sdl_android/src/androidTest/assets/json/GetSystemCapability.json b/sdl_android/src/androidTest/assets/json/GetSystemCapability.json new file mode 100644 index 000000000..c96bf6013 --- /dev/null +++ b/sdl_android/src/androidTest/assets/json/GetSystemCapability.json @@ -0,0 +1,18 @@ +{ + "request":{ + "name":"GetSystemCapability", + "correlationID":203, + "parameters":{ + "systemCapabilityType":"NAVIGATION" + } + }, + "response":{ + "name":"GetSystemCapabilityResponse", + "correlationID":204, + "parameters":{ + "systemCapability":{ + "systemCapabilityType":"NAVIGATION" + } + } + } +}
\ No newline at end of file diff --git a/sdl_android/src/androidTest/assets/json/GetWayPoints.json b/sdl_android/src/androidTest/assets/json/GetWayPoints.json new file mode 100644 index 000000000..8d06a9dd6 --- /dev/null +++ b/sdl_android/src/androidTest/assets/json/GetWayPoints.json @@ -0,0 +1,18 @@ +{ + "request":{ + "name":"GetWayPoints", + "correlationID":196, + "parameters":{ + "wayPointType":"DESTINATION" + } + }, + "response":{ + "name":"GetWayPointsResponse", + "correlationID":197, + "parameters":{ + "wayPoints":[ + {}, {} + ] + } + } +}
\ No newline at end of file diff --git a/sdl_android/src/androidTest/assets/json/PerformInteraction.json b/sdl_android/src/androidTest/assets/json/PerformInteraction.json index 1096d9c4d..b8965ee61 100644 --- a/sdl_android/src/androidTest/assets/json/PerformInteraction.json +++ b/sdl_android/src/androidTest/assets/json/PerformInteraction.json @@ -69,7 +69,7 @@ "parameters":{ "manualTextEntry":"Text Entry", "triggerSource":"MENU", - "choiceID":45, + "choiceID":45 } } }
\ No newline at end of file diff --git a/sdl_android/src/androidTest/assets/json/PutFile.json b/sdl_android/src/androidTest/assets/json/PutFile.json index 1b14dc798..70e80a09a 100644 --- a/sdl_android/src/androidTest/assets/json/PutFile.json +++ b/sdl_android/src/androidTest/assets/json/PutFile.json @@ -20,7 +20,7 @@ "name":"PutFileResponse", "correlationID":138, "parameters":{ - "spaceAvailable":43567543, + "spaceAvailable":43567543 } } }
\ No newline at end of file diff --git a/sdl_android/src/androidTest/assets/json/RegisterAppInterface.json b/sdl_android/src/androidTest/assets/json/RegisterAppInterface.json index abb7611ae..fe1edb518 100644 --- a/sdl_android/src/androidTest/assets/json/RegisterAppInterface.json +++ b/sdl_android/src/androidTest/assets/json/RegisterAppInterface.json @@ -50,7 +50,7 @@ "make":"Chrysler", "model":"Crossfire", "modelYear":"1820", - "trim":"Gold", + "trim":"Gold" }, "speechCapabilities":[ "SAPI_PHONEMES", diff --git a/sdl_android/src/androidTest/assets/json/SendHapticData.json b/sdl_android/src/androidTest/assets/json/SendHapticData.json new file mode 100644 index 000000000..42b863aae --- /dev/null +++ b/sdl_android/src/androidTest/assets/json/SendHapticData.json @@ -0,0 +1,22 @@ +{ + "request":{ + "name":"SendHapticData", + "correlationID":1234, + "parameters":{ + "hapticRectData":[ + {"id":123, + "rect":{ + "height":1, + "width":1, + "x":1, + "y":1 + } + } + ] + } + }, + "response":{ + "name":"SendHapticData", + "correlationID":1234 + } +}
\ No newline at end of file diff --git a/sdl_android/src/androidTest/assets/json/SendLocation.json b/sdl_android/src/androidTest/assets/json/SendLocation.json index c6553c59c..9b0ae8901 100644 --- a/sdl_android/src/androidTest/assets/json/SendLocation.json +++ b/sdl_android/src/androidTest/assets/json/SendLocation.json @@ -16,7 +16,7 @@ "line1", "line2", "line3" - ], + ] } }, "response":{ diff --git a/sdl_android/src/androidTest/assets/json/SetGlobalProperties.json b/sdl_android/src/androidTest/assets/json/SetGlobalProperties.json index 955d657a2..60cdfbffb 100644 --- a/sdl_android/src/androidTest/assets/json/SetGlobalProperties.json +++ b/sdl_android/src/androidTest/assets/json/SetGlobalProperties.json @@ -17,7 +17,7 @@ "b" ], "autoCompleteText":"something goes here", - "language":"EN-US", + "language":"EN-US" }, "helpPrompt":[ { diff --git a/sdl_android/src/androidTest/assets/json/ShowConstantTBT.json b/sdl_android/src/androidTest/assets/json/ShowConstantTBT.json index 10e064992..0a0c30b0c 100644 --- a/sdl_android/src/androidTest/assets/json/ShowConstantTBT.json +++ b/sdl_android/src/androidTest/assets/json/ShowConstantTBT.json @@ -42,7 +42,7 @@ } } ], - "timeToDestination":"52 minutes", + "timeToDestination":"52 minutes" } }, "response":{ diff --git a/sdl_android/src/androidTest/assets/json/Slider.json b/sdl_android/src/androidTest/assets/json/Slider.json index 4bd5761ed..38f033df4 100644 --- a/sdl_android/src/androidTest/assets/json/Slider.json +++ b/sdl_android/src/androidTest/assets/json/Slider.json @@ -12,7 +12,7 @@ "Header Line 4" ], "position":11, - "timeout":30000, + "timeout":30000 } }, "response":{ diff --git a/sdl_android/src/androidTest/assets/json/StreamRPC.json b/sdl_android/src/androidTest/assets/json/StreamRPC.json new file mode 100644 index 000000000..ff20ffc93 --- /dev/null +++ b/sdl_android/src/androidTest/assets/json/StreamRPC.json @@ -0,0 +1,10 @@ +{ + "response":{ + "name":"StreamRPCResponse", + "correlationID":198, + "parameters":{ + "fileName":"test", + "fileSize":100 + } + } +}
\ No newline at end of file diff --git a/sdl_android/src/androidTest/assets/json/SubscribeWayPoints.json b/sdl_android/src/androidTest/assets/json/SubscribeWayPoints.json new file mode 100644 index 000000000..bd1eee5c6 --- /dev/null +++ b/sdl_android/src/androidTest/assets/json/SubscribeWayPoints.json @@ -0,0 +1,10 @@ +{ + "request":{ + "name":"SubscribeWayPoints", + "correlationID":199 + }, + "response":{ + "name":"SubscribeWayPointsResponse", + "correlationID":200 + } +}
\ No newline at end of file diff --git a/sdl_android/src/androidTest/assets/json/UnsubscribeWayPoints.json b/sdl_android/src/androidTest/assets/json/UnsubscribeWayPoints.json new file mode 100644 index 000000000..60e2a98e4 --- /dev/null +++ b/sdl_android/src/androidTest/assets/json/UnsubscribeWayPoints.json @@ -0,0 +1,10 @@ +{ + "request":{ + "name":"UnsubscribeWayPoints", + "correlationID":201 + }, + "response":{ + "name":"UnsubscribeWayPointsResponse", + "correlationID":202 + } +}
\ No newline at end of file diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/SdlConnection/SdlConnectionTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/SdlConnection/SdlConnectionTest.java index 90122905a..0b8e37ea0 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/SdlConnection/SdlConnectionTest.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/SdlConnection/SdlConnectionTest.java @@ -3,6 +3,7 @@ package com.smartdevicelink.SdlConnection; import android.test.AndroidTestCase; import com.smartdevicelink.test.SdlUnitTestContants; +import com.smartdevicelink.test.util.DeviceUtil; import com.smartdevicelink.transport.BTTransportConfig; import com.smartdevicelink.transport.BaseTransportConfig; import com.smartdevicelink.transport.MultiplexTransportConfig; @@ -41,16 +42,15 @@ public class SdlConnectionTest extends AndroidTestCase { assertNotNull(SdlConnectionTestClass.cachedMultiConfig); - - connection.forceHardwareConnectEvent(TransportType.MULTIPLEX); assertFalse(connection.connected); - - assertNotNull(SdlConnectionTestClass.cachedMultiConfig.getService()); + SdlConnectionTestClass.cachedMultiConfig.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_OFF); - assertEquals(TransportType.MULTIPLEX, connection.getCurrentTransportType()); - + if(!DeviceUtil.isEmulator()) { // Cannot perform MBT operations in emulator + assertNotNull(SdlConnectionTestClass.cachedMultiConfig.getService()); + assertEquals(TransportType.MULTIPLEX, connection.getCurrentTransportType()); + } // Test for handling of null service MultiplexTransportConfig null_service_config = new MultiplexTransportConfig(this.mContext,SdlUnitTestContants.TEST_APP_ID); @@ -72,7 +72,11 @@ public class SdlConnectionTest extends AndroidTestCase { rsvp.setFlags(RouterServiceValidator.FLAG_DEBUG_NONE); MultiplexTransportConfig config = new MultiplexTransportConfig(this.mContext,SdlUnitTestContants.TEST_APP_ID); SdlConnection connection = new SdlConnection(config,rsvp); - assertEquals(TransportType.MULTIPLEX, connection.getCurrentTransportType()); + if(DeviceUtil.isEmulator()){ // Cannot perform MBT operations in emulator + assertEquals(TransportType.BLUETOOTH, connection.getCurrentTransportType()); + }else{ + assertEquals(TransportType.MULTIPLEX, connection.getCurrentTransportType()); + } } public void testMultiplexConstructorInsalledFrom(){ diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/protocol/WiProProtocolTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/protocol/WiProProtocolTests.java index 5eb04ca81..f8cae95f4 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/protocol/WiProProtocolTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/protocol/WiProProtocolTests.java @@ -1,29 +1,21 @@ package com.smartdevicelink.protocol; -import java.lang.reflect.Field; -import java.lang.reflect.Method; - -import junit.framework.Assert; +import android.test.AndroidTestCase; +import android.util.Log; -import com.smartdevicelink.protocol.IProtocolListener; -import com.smartdevicelink.protocol.ProtocolMessage; -import com.smartdevicelink.protocol.SdlPacket; -import com.smartdevicelink.protocol.WiProProtocol; +import com.smartdevicelink.SdlConnection.SdlConnection; import com.smartdevicelink.protocol.WiProProtocol.MessageFrameAssembler; -import com.smartdevicelink.protocol.enums.MessageType; import com.smartdevicelink.protocol.enums.SessionType; import com.smartdevicelink.test.SampleRpc; -import com.smartdevicelink.util.DebugTool; -import java.io.ByteArrayOutputStream; - -import com.smartdevicelink.SdlConnection.SdlConnection; import com.smartdevicelink.test.SdlUnitTestContants; import com.smartdevicelink.transport.BaseTransportConfig; import com.smartdevicelink.transport.MultiplexTransportConfig; import com.smartdevicelink.transport.RouterServiceValidator; -import android.test.AndroidTestCase; -import android.util.Log; +import junit.framework.Assert; + +import java.io.ByteArrayOutputStream; +import java.lang.reflect.Method; /** * This is a unit test class for the SmartDeviceLink library project class : @@ -126,11 +118,15 @@ public class WiProProtocolTests extends AndroidTestCase { wiProProtocol = new WiProProtocol(defaultListener); wiProProtocol.setVersion((byte)0x04); assertEquals((byte)0x04,wiProProtocol.getVersion()); - - //If we get newer than 4, it should fall back to 4 + wiProProtocol = new WiProProtocol(defaultListener); wiProProtocol.setVersion((byte)0x05); - assertEquals((byte)0x04,wiProProtocol.getVersion()); + assertEquals((byte)0x05,wiProProtocol.getVersion()); + + //If we get newer than 5, it should fall back to 5 + wiProProtocol = new WiProProtocol(defaultListener); + wiProProtocol.setVersion((byte)0x06); + assertEquals((byte)0x05,wiProProtocol.getVersion()); //Is this right? wiProProtocol = new WiProProtocol(defaultListener); @@ -144,31 +140,27 @@ public class WiProProtocolTests extends AndroidTestCase { wiProProtocol.setVersion((byte)0x01); try{ - Field field = wiProProtocol.getClass().getDeclaredField("MAX_DATA_SIZE"); - field.setAccessible(true); - int mtu = (Integer) field.get(wiProProtocol); - assertEquals(mtu, 1500-8); - //Ok our reflection works we can test the rest of the cases - + assertEquals(wiProProtocol.getMtu(), 1500-8); + //Version 2 wiProProtocol.setVersion((byte)0x02); - mtu = (Integer) field.get(wiProProtocol); - assertEquals(mtu, 1500-12); + assertEquals(wiProProtocol.getMtu(), 1500-12); //Version 3 wiProProtocol.setVersion((byte)0x03); - mtu = (Integer) field.get(wiProProtocol); - assertEquals(mtu, 131072); + assertEquals(wiProProtocol.getMtu(), 131072); //Version 4 wiProProtocol.setVersion((byte)0x04); - mtu = (Integer) field.get(wiProProtocol); - assertEquals(mtu, 131072); + assertEquals(wiProProtocol.getMtu(), 131072); - //Version 4+ + //Version 5 wiProProtocol.setVersion((byte)0x05); - mtu = (Integer) field.get(wiProProtocol); - assertEquals(mtu, 1500-12); + assertEquals(wiProProtocol.getMtu(), 131072); + + //Version 5+ + wiProProtocol.setVersion((byte)0x06); + assertEquals(wiProProtocol.getMtu(), 131072); }catch(Exception e){ Assert.fail("Exceptin during reflection"); diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/SdlConnection/SdlSessionTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/SdlConnection/SdlSessionTests.java new file mode 100644 index 000000000..ec7bf710a --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/SdlConnection/SdlSessionTests.java @@ -0,0 +1,50 @@ +package com.smartdevicelink.test.SdlConnection; + +import com.smartdevicelink.SdlConnection.SdlSession; +import com.smartdevicelink.protocol.enums.SessionType; +import com.smartdevicelink.proxy.TTSChunkFactory; +import com.smartdevicelink.proxy.interfaces.ISdlServiceListener; +import com.smartdevicelink.proxy.rpc.TTSChunk; +import com.smartdevicelink.proxy.rpc.enums.SpeechCapabilities; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.transport.TCPTransportConfig; + +import junit.framework.TestCase; + +import java.util.Vector; + +/** + * This is a unit test class for the SmartDeviceLink library project class : + * {@link com.smartdevicelink.SdlConnection.SdlSession} + */ +public class SdlSessionTests extends TestCase { + + public void testServiceListeners(){ + SdlSession session = SdlSession.createSession((byte)5,null, new TCPTransportConfig(8080,"",false)); + ISdlServiceListener test = new ISdlServiceListener() { + @Override + public void onServiceStarted(SdlSession session, SessionType type, boolean isEncrypted) { + + } + + @Override + public void onServiceEnded(SdlSession session, SessionType type) { + + } + + @Override + public void onServiceError(SdlSession session, SessionType type, String reason) { + + } + }; + + session.addServiceListener(SessionType.RPC, test); + + assertTrue(session.removeServiceListener(SessionType.RPC, test)); + + assertFalse(session.removeServiceListener(SessionType.RPC, test)); + + } + + +}
\ No newline at end of file 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 9acf6e24e..58ee7065c 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java @@ -1,36 +1,35 @@ package com.smartdevicelink.test; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - import android.util.Log; import com.smartdevicelink.proxy.TTSChunkFactory; import com.smartdevicelink.proxy.rpc.AudioPassThruCapabilities; import com.smartdevicelink.proxy.rpc.ButtonCapabilities; import com.smartdevicelink.proxy.rpc.Choice; +import com.smartdevicelink.proxy.rpc.Coordinate; import com.smartdevicelink.proxy.rpc.DIDResult; import com.smartdevicelink.proxy.rpc.DeviceInfo; import com.smartdevicelink.proxy.rpc.DisplayCapabilities; import com.smartdevicelink.proxy.rpc.HMIPermissions; +import com.smartdevicelink.proxy.rpc.HapticRect; 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.LocationDetails; import com.smartdevicelink.proxy.rpc.MenuParams; +import com.smartdevicelink.proxy.rpc.MetadataTags; +import com.smartdevicelink.proxy.rpc.OasisAddress; import com.smartdevicelink.proxy.rpc.ParameterPermissions; import com.smartdevicelink.proxy.rpc.PermissionItem; import com.smartdevicelink.proxy.rpc.PresetBankCapabilities; +import com.smartdevicelink.proxy.rpc.Rectangle; import com.smartdevicelink.proxy.rpc.ScreenParams; import com.smartdevicelink.proxy.rpc.SdlMsgVersion; import com.smartdevicelink.proxy.rpc.SoftButton; import com.smartdevicelink.proxy.rpc.SoftButtonCapabilities; import com.smartdevicelink.proxy.rpc.StartTime; +import com.smartdevicelink.proxy.rpc.SystemCapability; import com.smartdevicelink.proxy.rpc.TTSChunk; import com.smartdevicelink.proxy.rpc.TextField; import com.smartdevicelink.proxy.rpc.TouchCoord; @@ -39,6 +38,8 @@ import com.smartdevicelink.proxy.rpc.TouchEventCapabilities; import com.smartdevicelink.proxy.rpc.Turn; import com.smartdevicelink.proxy.rpc.VehicleDataResult; import com.smartdevicelink.proxy.rpc.VehicleType; +import com.smartdevicelink.proxy.rpc.VideoStreamingCapability; +import com.smartdevicelink.proxy.rpc.VideoStreamingFormat; import com.smartdevicelink.proxy.rpc.VrHelpItem; import com.smartdevicelink.proxy.rpc.enums.AmbientLightStatus; import com.smartdevicelink.proxy.rpc.enums.AppHMIType; @@ -84,10 +85,12 @@ import com.smartdevicelink.proxy.rpc.enums.SamplingRate; import com.smartdevicelink.proxy.rpc.enums.SoftButtonType; import com.smartdevicelink.proxy.rpc.enums.SpeechCapabilities; import com.smartdevicelink.proxy.rpc.enums.SystemAction; +import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType; import com.smartdevicelink.proxy.rpc.enums.SystemContext; import com.smartdevicelink.proxy.rpc.enums.TBTState; import com.smartdevicelink.proxy.rpc.enums.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; @@ -96,9 +99,19 @@ import com.smartdevicelink.proxy.rpc.enums.VehicleDataNotificationStatus; import com.smartdevicelink.proxy.rpc.enums.VehicleDataResultCode; import com.smartdevicelink.proxy.rpc.enums.VehicleDataStatus; import com.smartdevicelink.proxy.rpc.enums.VehicleDataType; +import com.smartdevicelink.proxy.rpc.enums.VideoStreamingCodec; +import com.smartdevicelink.proxy.rpc.enums.VideoStreamingProtocol; import com.smartdevicelink.proxy.rpc.enums.VrCapabilities; import com.smartdevicelink.proxy.rpc.enums.WarningLightStatus; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + public class Test { // Test Failure Messages @@ -112,9 +125,10 @@ public class Test { // 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 Float GENERAL_FLOAT = 100f; public static final Image GENERAL_IMAGE = new Image(); public static final Choice GENERAL_CHOICE = new Choice(); public static final String GENERAL_STRING = "test"; @@ -126,6 +140,9 @@ public class Test { public static final HMILevel GENERAL_HMILEVEL = HMILevel.HMI_FULL; public static final DIDResult GENERAL_DIDRESULT = new DIDResult(); public static final TextField GENERAL_TEXTFIELD = new TextField(); + public static final OasisAddress GENERAL_OASISADDRESS = new OasisAddress(); + public static final Coordinate GENERAL_COORDINATE = new Coordinate(); + public static final LocationDetails GENERAL_LOCATIONDETAILS = new LocationDetails(); public static final Dimension GENERAL_DIMENSION = Dimension._2D; public static final ImageType GENERAL_IMAGETYPE = ImageType.DYNAMIC; public static final AudioType GENERAL_AUDIOTYPE = AudioType.PCM; @@ -196,7 +213,15 @@ public class Test { public static final PowerModeQualificationStatus GENERAL_POWERMODEQUALIFICATIONSTATUS = PowerModeQualificationStatus.POWER_MODE_OK; public static final VehicleDataNotificationStatus GENERAL_VEHICLEDATANOTIFICATIONSTATUS = VehicleDataNotificationStatus.NORMAL; public static final AppInterfaceUnregisteredReason GENERAL_APPINTERFACEUNREGISTEREDREASON = AppInterfaceUnregisteredReason.BLUETOOTH_OFF; - + public static final SystemCapabilityType GENERAL_SYSTEMCAPABILITYTYPE = SystemCapabilityType.NAVIGATION; + public static final SystemCapability GENERAL_SYSTEMCAPABILITY = new SystemCapability(); + public static final VideoStreamingProtocol GENERAL_VIDEOSTREAMINGPROTOCOL = VideoStreamingProtocol.RAW; + public static final VideoStreamingCodec GENERAL_VIDEOSTREAMINGCODEC = VideoStreamingCodec.H264; + public static final VideoStreamingCapability GENERAL_VIDEOSTREAMINGCAPABILITY = new VideoStreamingCapability(); + public static final VideoStreamingFormat GENERAL_VIDEOSTREAMINGFORMAT = new VideoStreamingFormat(); + public static final MetadataTags GENERAL_METADATASTRUCT = new MetadataTags(); + public static final Rectangle GENERAL_RECTANGLE = new Rectangle(); + public static final HapticRect GENERAL_HAPTIC_RECT = new HapticRect(); public static final List<Long> GENERAL_LONG_LIST = Arrays.asList(new Long[]{ 1L, 2L }); public static final List<Turn> GENERAL_TURN_LIST = new ArrayList<Turn>(); public static final List<Choice> GENERAL_CHOICE_LIST = new ArrayList<Choice>(); @@ -224,6 +249,7 @@ public class Test { public static final List<HmiZoneCapabilities> GENERAL_HMIZONECAPABILITIES_LIST = new ArrayList<HmiZoneCapabilities>(2); public static final List<SoftButtonCapabilities> GENERAL_SOFTBUTTONCAPABILITIES_LIST = new ArrayList<SoftButtonCapabilities>(1); public static final List<AudioPassThruCapabilities> GENERAL_AUDIOPASSTHRUCAPABILITIES_LIST = new ArrayList<AudioPassThruCapabilities>(1); + public static final List<VideoStreamingFormat> GENERAL_VIDEOSTREAMINGFORMAT_LIST = new ArrayList<VideoStreamingFormat>(2); public static final JSONArray JSON_TURNS = new JSONArray(); public static final JSONArray JSON_CHOICES = new JSONArray(); @@ -240,6 +266,7 @@ public class Test { public static final JSONArray JSON_BUTTONCAPABILITIES = new JSONArray(); public static final JSONArray JSON_SOFTBUTTONCAPABILITIES = new JSONArray(); public static final JSONArray JSON_AUDIOPASSTHRUCAPABILITIES = new JSONArray(); + public static final JSONArray JSON_TEXTFIELDTYPES = new JSONArray(); public static final JSONObject JSON_TURN = new JSONObject(); public static final JSONObject JSON_IMAGE = new JSONObject(); @@ -295,6 +322,27 @@ public class Test { GENERAL_TEXTFIELD.setWidth(GENERAL_INT); GENERAL_TEXTFIELD.setCharacterSet(GENERAL_CHARACTERSET); GENERAL_TEXTFIELD_LIST.add(GENERAL_TEXTFIELD); + + GENERAL_COORDINATE.setLongitudeDegrees(GENERAL_FLOAT); + GENERAL_COORDINATE.setLatitudeDegrees(GENERAL_FLOAT); + + GENERAL_OASISADDRESS.setCountryName(GENERAL_STRING); + GENERAL_OASISADDRESS.setThoroughfare(GENERAL_STRING); + GENERAL_OASISADDRESS.setSubThoroughfare(GENERAL_STRING); + GENERAL_OASISADDRESS.setCountryCode(GENERAL_STRING); + GENERAL_OASISADDRESS.setPostalCode(GENERAL_STRING); + GENERAL_OASISADDRESS.setLocality(GENERAL_STRING); + GENERAL_OASISADDRESS.setSubLocality(GENERAL_STRING); + GENERAL_OASISADDRESS.setAdministrativeArea(GENERAL_STRING); + GENERAL_OASISADDRESS.setSubAdministrativeArea(GENERAL_STRING); + + GENERAL_LOCATIONDETAILS.setAddressLines(GENERAL_STRING_LIST); + GENERAL_LOCATIONDETAILS.setCoordinate(GENERAL_COORDINATE); + GENERAL_LOCATIONDETAILS.setLocationDescription(GENERAL_STRING); + GENERAL_LOCATIONDETAILS.setLocationImage(GENERAL_IMAGE); + GENERAL_LOCATIONDETAILS.setLocationName(GENERAL_STRING); + GENERAL_LOCATIONDETAILS.setSearchAddress(GENERAL_OASISADDRESS); + GENERAL_LOCATIONDETAILS.setPhoneNumber(GENERAL_STRING); GENERAL_FILETYPE_LIST.add(GENERAL_FILETYPE); @@ -430,8 +478,38 @@ public class Test { GENERAL_PERMISSIONITEM.setHMIPermissions(GENERAL_HMIPERMISSIONS); GENERAL_PERMISSIONITEM.setParameterPermissions(GENERAL_PARAMETERPERMISSIONS); GENERAL_PERMISSIONITEM_LIST.add(GENERAL_PERMISSIONITEM); + + GENERAL_SYSTEMCAPABILITY.setSystemCapabilityType(GENERAL_SYSTEMCAPABILITYTYPE); + + GENERAL_VIDEOSTREAMINGFORMAT.setProtocol(GENERAL_VIDEOSTREAMINGPROTOCOL); + GENERAL_VIDEOSTREAMINGFORMAT.setCodec(GENERAL_VIDEOSTREAMINGCODEC); + + GENERAL_VIDEOSTREAMINGFORMAT_LIST.add(GENERAL_VIDEOSTREAMINGFORMAT); + GENERAL_VIDEOSTREAMINGFORMAT_LIST.add(GENERAL_VIDEOSTREAMINGFORMAT); + + GENERAL_VIDEOSTREAMINGCAPABILITY.setMaxBitrate(GENERAL_INT); + GENERAL_VIDEOSTREAMINGCAPABILITY.setPreferredResolution(GENERAL_IMAGERESOLUTION); + GENERAL_VIDEOSTREAMINGCAPABILITY.setSupportedFormats(GENERAL_VIDEOSTREAMINGFORMAT_LIST); + + List<MetadataType> exampleList = new ArrayList<>(); + exampleList.add(0, MetadataType.CURRENT_TEMPERATURE); + exampleList.add(1, MetadataType.MEDIA_ALBUM); + exampleList.add(2, MetadataType.MEDIA_ARTIST); + + GENERAL_METADATASTRUCT.setMainField1(exampleList); + GENERAL_METADATASTRUCT.setMainField2(exampleList); + GENERAL_METADATASTRUCT.setMainField3(exampleList); + GENERAL_METADATASTRUCT.setMainField4(exampleList); + + GENERAL_RECTANGLE.setX(GENERAL_FLOAT); + GENERAL_RECTANGLE.setY(GENERAL_FLOAT); + GENERAL_RECTANGLE.setWidth(GENERAL_FLOAT); + GENERAL_RECTANGLE.setHeight(GENERAL_FLOAT); + + GENERAL_HAPTIC_RECT.setId(GENERAL_INTEGER); + GENERAL_HAPTIC_RECT.setRect(GENERAL_RECTANGLE); - try { + try { JSON_HMIPERMISSIONS.put(HMIPermissions.KEY_ALLOWED, GENERAL_HMILEVEL_LIST); JSON_HMIPERMISSIONS.put(HMIPermissions.KEY_USER_DISALLOWED, GENERAL_HMILEVEL_LIST); @@ -582,6 +660,10 @@ public class Test { JSON_TOUCHEVENT.put(TouchEvent.KEY_ID, GENERAL_INT); JSON_TOUCHEVENT.put(TouchEvent.KEY_TS, JsonUtils.createJsonArray(GENERAL_LONG_LIST)); JSON_TOUCHEVENTS.put(JSON_TOUCHEVENT); + + 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 e20098a60..966370e54 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java @@ -14,6 +14,7 @@ import com.smartdevicelink.proxy.rpc.BodyInformation; import com.smartdevicelink.proxy.rpc.ButtonCapabilities; import com.smartdevicelink.proxy.rpc.Choice; import com.smartdevicelink.proxy.rpc.ClusterModeStatus; +import com.smartdevicelink.proxy.rpc.Coordinate; import com.smartdevicelink.proxy.rpc.DIDResult; import com.smartdevicelink.proxy.rpc.DeviceInfo; import com.smartdevicelink.proxy.rpc.DeviceStatus; @@ -30,9 +31,11 @@ import com.smartdevicelink.proxy.rpc.ImageResolution; import com.smartdevicelink.proxy.rpc.KeyboardProperties; import com.smartdevicelink.proxy.rpc.MenuParams; import com.smartdevicelink.proxy.rpc.MyKey; +import com.smartdevicelink.proxy.rpc.OasisAddress; import com.smartdevicelink.proxy.rpc.ParameterPermissions; import com.smartdevicelink.proxy.rpc.PermissionItem; import com.smartdevicelink.proxy.rpc.PresetBankCapabilities; +import com.smartdevicelink.proxy.rpc.Rectangle; import com.smartdevicelink.proxy.rpc.ScreenParams; import com.smartdevicelink.proxy.rpc.SdlMsgVersion; import com.smartdevicelink.proxy.rpc.SingleTireStatus; @@ -48,6 +51,7 @@ import com.smartdevicelink.proxy.rpc.TouchEventCapabilities; import com.smartdevicelink.proxy.rpc.Turn; import com.smartdevicelink.proxy.rpc.VehicleDataResult; import com.smartdevicelink.proxy.rpc.VehicleType; +import com.smartdevicelink.proxy.rpc.VideoStreamingFormat; import com.smartdevicelink.proxy.rpc.VrHelpItem; import com.smartdevicelink.proxy.rpc.enums.FileType; import com.smartdevicelink.proxy.rpc.enums.HMILevel; @@ -298,6 +302,99 @@ public class Validator{ return true; } + public static boolean validateCoordinate(Coordinate c1, Coordinate c2){ + if(c1 == null){ + return ( c2 == null ); + } + if(c2 == null){ + return ( c1 == null ); + } + + if(c1.getLatitudeDegrees() != c2.getLatitudeDegrees()){ + return false; + } + + if(c1.getLongitudeDegrees() != c2.getLongitudeDegrees()){ + return false; + } + + return true; + } + + public static boolean validateRectangle(Rectangle c1, Rectangle c2){ + if(c1 == null){ + return ( c2 == null ); + } + if(c2 == null){ + return ( c1 == null ); + } + + if(c1.getX() != c2.getX()){ + return false; + } + + if(c1.getY() != c2.getY()){ + return false; + } + + if(c1.getWidth() != c2.getWidth()){ + return false; + } + + if(c1.getHeight() != c2.getHeight()){ + return false; + } + + return true; + } + + public static boolean validateOasisAddress(OasisAddress a1, OasisAddress a2){ + if(a1 == null){ + return ( a2 == null ); + } + if(a2 == null){ + return ( a1 == null ); + } + + if(!a1.getAdministrativeArea().equals(a2.getAdministrativeArea())){ + return false; + } + + if(!a1.getCountryCode().equals(a2.getCountryCode())){ + return false; + } + + if(!a1.getCountryName().equals(a2.getCountryName())){ + return false; + } + + if(!a1.getLocality().equals(a2.getLocality())){ + return false; + } + + if(!a1.getSubLocality().equals(a2.getSubLocality())){ + return false; + } + + if(!a1.getSubAdministrativeArea().equals(a2.getSubAdministrativeArea())){ + return false; + } + + if(!a1.getPostalCode().equals(a2.getPostalCode())){ + return false; + } + + if(!a1.getThoroughfare().equals(a2.getThoroughfare())){ + return false; + } + + if(!a1.getSubThoroughfare().equals(a2.getSubThoroughfare())){ + return false; + } + + return true; + } + public static boolean validateTtsChunks(List<TTSChunk> list1, List<TTSChunk> list2){ if(list1 == null){ return ( list2 == null ); @@ -1104,6 +1201,18 @@ public class Validator{ return true; } + + public static boolean validateSupportedFormats (VideoStreamingFormat vsf1, VideoStreamingFormat vsf2) { + if(vsf1.getProtocol() != vsf2.getProtocol()){ + return false; + } + + if(vsf1.getCodec() != vsf2.getCodec()){ + return false; + } + + return true; + } public static boolean validateDisplayCapabilities (DisplayCapabilities item1, DisplayCapabilities item2) { if (item1 == null) { diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/RPCMessageTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/RPCMessageTests.java new file mode 100644 index 000000000..51727bb66 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/RPCMessageTests.java @@ -0,0 +1,141 @@ +package com.smartdevicelink.test.proxy; + +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.Alert; +import com.smartdevicelink.proxy.rpc.ChangeRegistration; +import com.smartdevicelink.proxy.rpc.Choice; +import com.smartdevicelink.proxy.rpc.DisplayCapabilities; +import com.smartdevicelink.proxy.rpc.GetDTCsResponse; +import com.smartdevicelink.proxy.rpc.Image; +import com.smartdevicelink.proxy.rpc.TTSChunk; +import com.smartdevicelink.proxy.rpc.enums.Language; +import com.smartdevicelink.proxy.rpc.enums.MediaClockFormat; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.Validator; + +import junit.framework.TestCase; + +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.List; + +/** + * Created by austinkirk on 6/8/17. + */ + +public class RPCMessageTests extends TestCase { + RPCMessage testMessage = new RPCMessage("TestFunction"); + + private static final String TAG = "RPC Struct Tests"; + + @Override + protected void setUp() throws Exception { + super.setUp(); + } + + @Override + protected void tearDown() throws Exception { + super.tearDown(); + } + + public void testGeneralGettersAndSetters(){ + String testKey = Test.GENERAL_STRING; + Integer testInt = Test.GENERAL_INT; + + testMessage.setParameters(testKey, testInt); + assertEquals(Test.MATCH, testInt, testMessage.getParameters(testKey)); + + testMessage.setParameters(testKey, null); + assertNull(testMessage.getParameters(testKey)); + } + + public void testCommonObjectGetters(){ + String stringKey = "String"; + String testString = Test.GENERAL_STRING; + testMessage.setParameters(stringKey, testString); + + assertEquals(Test.MATCH, testMessage.getString(stringKey), testString); + + String intKey = "Integer"; + Integer testInt = Test.GENERAL_INT; + testMessage.setParameters(intKey, testInt); + + assertEquals(Test.MATCH, testMessage.getInteger(intKey), testInt); + + String doubleKey = "Double"; + Double testDouble = Test.GENERAL_DOUBLE; + testMessage.setParameters(doubleKey, testDouble); + + assertEquals(Test.MATCH, testMessage.getDouble(doubleKey), testDouble); + + String booleanKey = "Boolean"; + Boolean testBoolean = Test.GENERAL_BOOLEAN; + testMessage.setParameters(booleanKey, testBoolean); + + assertEquals(Test.MATCH, testMessage.getBoolean(booleanKey), testBoolean); + + String longKey = "Long"; + Long testLong = Test.GENERAL_LONG; + testMessage.setParameters(longKey, testLong); + + assertEquals(Test.MATCH, testMessage.getLong(longKey), testLong); + + testMessage.setParameters(longKey, testInt); + + assertEquals(Test.MATCH, testMessage.getLong(longKey), new Long(testInt.longValue())); + + testMessage.setParameters(longKey, testDouble); + assertNull(testMessage.getLong(longKey)); + } + + public void testGetObject(){ + String keyIsEmpty = "EMPTY"; + assertNull(testMessage.getObject(Integer.class, keyIsEmpty)); + + String keyLanguage = ChangeRegistration.KEY_LANGUAGE; + Language language = Test.GENERAL_LANGUAGE; + testMessage.setParameters(keyLanguage, language); + assertEquals(Test.MATCH, language, testMessage.getObject(Language.class, keyLanguage)); + + String languageString = language.toString(); + testMessage.setParameters(keyLanguage, languageString); + assertEquals(Test.MATCH, language, testMessage.getObject(Language.class, keyLanguage)); + + String keyImage = Choice.KEY_IMAGE; + Image testImage = Test.GENERAL_IMAGE; + testMessage.setParameters(keyImage, testImage.getStore()); + assertTrue(Validator.validateImage(testImage, (Image) testMessage.getObject(Image.class, keyImage))); + + String keyDTCs = GetDTCsResponse.KEY_DTC; + List<String> testDTCs = Test.GENERAL_STRING_LIST; + testMessage.setParameters(keyDTCs, testDTCs); + assertEquals(Test.MATCH, testDTCs, testMessage.getObject(String.class, keyDTCs)); + + String keyTTSchunks = Alert.KEY_TTS_CHUNKS; + List<TTSChunk> testTTSchunks = Test.GENERAL_TTSCHUNK_LIST; + testMessage.setParameters(keyTTSchunks, testTTSchunks); + assertEquals(Test.MATCH, testTTSchunks, testMessage.getObject(TTSChunk.class, keyTTSchunks)); + + List<Hashtable<String, Object>> testListTTSchunks = new ArrayList<>(); + for(TTSChunk ttsChunk : testTTSchunks){ + testListTTSchunks.add(ttsChunk.getStore()); + } + testMessage.setParameters(keyTTSchunks, testListTTSchunks); + List<TTSChunk> underTest = (List<TTSChunk>) testMessage.getObject(TTSChunk.class, keyTTSchunks); + assertTrue(Validator.validateTtsChunks(testTTSchunks, underTest)); + + String keyMediaClockFormats = DisplayCapabilities.KEY_MEDIA_CLOCK_FORMATS; + List<MediaClockFormat> testMediaClockFormats = Test.GENERAL_MEDIACLOCKFORMAT_LIST; + testMessage.setParameters(keyMediaClockFormats, testMediaClockFormats); + assertEquals(Test.MATCH, testMediaClockFormats, testMessage.getObject(MediaClockFormat.class, keyMediaClockFormats)); + + List<String> testListMediaClockFormats = new ArrayList<>(); + for(MediaClockFormat mcFormat : testMediaClockFormats){ + testListMediaClockFormats.add(mcFormat.toString()); + } + testMessage.setParameters(keyMediaClockFormats, testListMediaClockFormats); + assertEquals(Test.MATCH, testMediaClockFormats, testMessage.getObject(MediaClockFormat.class, keyMediaClockFormats)); + + assertNull(testMessage.getObject(Image.class, keyLanguage)); // Test incorrect class + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/RPCStructTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/RPCStructTests.java new file mode 100644 index 000000000..370d30979 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/RPCStructTests.java @@ -0,0 +1,158 @@ +package com.smartdevicelink.test.proxy; + +import com.smartdevicelink.proxy.RPCStruct; +import com.smartdevicelink.proxy.rpc.AirbagStatus; +import com.smartdevicelink.proxy.rpc.Choice; +import com.smartdevicelink.proxy.rpc.DisplayCapabilities; +import com.smartdevicelink.proxy.rpc.Image; +import com.smartdevicelink.proxy.rpc.ImageField; +import com.smartdevicelink.proxy.rpc.enums.MediaClockFormat; +import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.Validator; + +import junit.framework.TestCase; + +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.List; + +/** + * Created by austinkirk on 6/8/17. + */ + +public class RPCStructTests extends TestCase { + RPCStruct testStruct = new RPCStruct(); + + private static final String TAG = "RPC Struct Tests"; + + @Override + protected void setUp() throws Exception { + super.setUp(); + + } + + @Override + protected void tearDown() throws Exception { + super.tearDown(); + } + + public void testGeneralGettersAndSetters(){ + String testKey = Test.GENERAL_STRING; + Integer testInt = Test.GENERAL_INT; + + testStruct.setValue(testKey, testInt); + assertEquals(Test.MATCH, testInt, testStruct.getValue(testKey)); + + testStruct.setValue(testKey, null); + assertNull(testStruct.getValue(testKey)); + } + + public void testCommonObjectGetters(){ + String stringKey = "String"; + String testString = Test.GENERAL_STRING; + testStruct.setValue(stringKey, testString); + + assertEquals(Test.MATCH, testStruct.getString(stringKey), testString); + + String intKey = "Integer"; + Integer testInt = Test.GENERAL_INT; + testStruct.setValue(intKey, testInt); + + assertEquals(Test.MATCH, testStruct.getInteger(intKey), testInt); + + String doubleKey = "Double"; + Double testDouble = Test.GENERAL_DOUBLE; + testStruct.setValue(doubleKey, testDouble); + + assertEquals(Test.MATCH, testStruct.getDouble(doubleKey), testDouble); + + String booleanKey = "Boolean"; + Boolean testBoolean = Test.GENERAL_BOOLEAN; + testStruct.setValue(booleanKey, testBoolean); + + assertEquals(Test.MATCH, testStruct.getBoolean(booleanKey), testBoolean); + + String longKey = "Long"; + Long testLong = Test.GENERAL_LONG; + testStruct.setValue(longKey, testLong); + + assertEquals(Test.MATCH, testStruct.getLong(longKey), testLong); + + testStruct.setValue(longKey, testInt); + + assertEquals(Test.MATCH, testStruct.getLong(longKey), new Long(testInt.longValue())); + + testStruct.setValue(longKey, testDouble); + + assertNull(testStruct.getLong(longKey)); + } + + public void testGetObject(){ + String keyIsEmpty = "EMPTY"; + assertNull(testStruct.getObject(Integer.class, keyIsEmpty)); + + String keyAirbag = AirbagStatus.KEY_DRIVER_AIRBAG_DEPLOYED; + VehicleDataEventStatus eventStatus = VehicleDataEventStatus.FAULT; + testStruct.setValue(keyAirbag, eventStatus); + assertEquals(Test.MATCH, eventStatus, testStruct.getObject(VehicleDataEventStatus.class, keyAirbag)); + + String eventStatusString = VehicleDataEventStatus.FAULT.toString(); + testStruct.setValue(keyAirbag, eventStatusString); + assertEquals(Test.MATCH, eventStatus, testStruct.getObject(VehicleDataEventStatus.class, keyAirbag)); + + String keyImage = Choice.KEY_IMAGE; + Image testImage = Test.GENERAL_IMAGE; + testStruct.setValue(keyImage, testImage.getStore()); + assertTrue(Validator.validateImage(testImage, (Image) testStruct.getObject(Image.class, keyImage))); + + String keyVrCommand = Choice.KEY_VR_COMMANDS; + List<String> testCommands = Test.GENERAL_STRING_LIST; + testStruct.setValue(keyVrCommand, testCommands); + assertEquals(Test.MATCH, testCommands, testStruct.getObject(String.class, keyVrCommand)); + + String keyImageFields = DisplayCapabilities.KEY_IMAGE_FIELDS; + List<ImageField> testImageFields = Test.GENERAL_IMAGEFIELD_LIST; + testStruct.setValue(keyImageFields, testImageFields); + assertEquals(Test.MATCH, testImageFields, testStruct.getObject(ImageField.class, keyImageFields)); + + List<Hashtable<String, Object>> testListImageFields = new ArrayList<>(); + for(ImageField imgField : testImageFields){ + testListImageFields.add(imgField.getStore()); + } + testStruct.setValue(keyImageFields, testListImageFields); + List<ImageField> underTest = (List<ImageField>) testStruct.getObject(ImageField.class, keyImageFields); + int index = 0; + for(ImageField imgField : testImageFields){ + assertTrue(Validator.validateImageFields(imgField, underTest.get(index++))); + } + + String keyMediaClockFormats = DisplayCapabilities.KEY_MEDIA_CLOCK_FORMATS; + List<MediaClockFormat> testMediaClockFormats = Test.GENERAL_MEDIACLOCKFORMAT_LIST; + testStruct.setValue(keyMediaClockFormats, testMediaClockFormats); + assertEquals(Test.MATCH, testMediaClockFormats, testStruct.getObject(MediaClockFormat.class, keyMediaClockFormats)); + + List<String> testListMediaClockFormats = new ArrayList<>(); + for(MediaClockFormat mcFormat : testMediaClockFormats){ + testListMediaClockFormats.add(mcFormat.toString()); + } + testStruct.setValue(keyMediaClockFormats, testListMediaClockFormats); + assertEquals(Test.MATCH, testMediaClockFormats, testStruct.getObject(MediaClockFormat.class, keyMediaClockFormats)); + + assertNull(testStruct.getObject(Image.class, keyAirbag)); // Test incorrect class + } + + public void testGetObjectExceptions(){ + String invalidKey = "invalid"; + testStruct.setValue(invalidKey, new Hashtable<>()); + assertNull(testStruct.getObject(Integer.class, invalidKey)); + + List<Hashtable<String, Object>> list = new ArrayList<>(); + list.add(new Hashtable<String, Object>()); + testStruct.setValue(invalidKey, list); + assertNull(testStruct.getObject(Integer.class, invalidKey)); + + testStruct.setValue(invalidKey, Test.GENERAL_STRING); + assertNull(testStruct.getObject(Integer.class, invalidKey)); + } +} 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 new file mode 100644 index 000000000..ee8d7d0ee --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java @@ -0,0 +1,460 @@ +package com.smartdevicelink.test.proxy; + +import android.content.Context; +import android.telephony.TelephonyManager; +import android.test.AndroidTestCase; +import android.util.Log; + +import com.smartdevicelink.exception.SdlException; +import com.smartdevicelink.exception.SdlExceptionCause; +import com.smartdevicelink.proxy.SdlProxyALM; +import com.smartdevicelink.proxy.SdlProxyBuilder; +import com.smartdevicelink.proxy.SdlProxyConfigurationResources; +import com.smartdevicelink.proxy.callbacks.OnServiceEnded; +import com.smartdevicelink.proxy.callbacks.OnServiceNACKed; +import com.smartdevicelink.proxy.interfaces.IProxyListenerALM; +import com.smartdevicelink.proxy.rpc.AddCommandResponse; +import com.smartdevicelink.proxy.rpc.AddSubMenuResponse; +import com.smartdevicelink.proxy.rpc.AlertManeuverResponse; +import com.smartdevicelink.proxy.rpc.AlertResponse; +import com.smartdevicelink.proxy.rpc.ChangeRegistrationResponse; +import com.smartdevicelink.proxy.rpc.CreateInteractionChoiceSetResponse; +import com.smartdevicelink.proxy.rpc.DeleteCommandResponse; +import com.smartdevicelink.proxy.rpc.DeleteFileResponse; +import com.smartdevicelink.proxy.rpc.DeleteInteractionChoiceSetResponse; +import com.smartdevicelink.proxy.rpc.DeleteSubMenuResponse; +import com.smartdevicelink.proxy.rpc.DiagnosticMessageResponse; +import com.smartdevicelink.proxy.rpc.DialNumberResponse; +import com.smartdevicelink.proxy.rpc.EndAudioPassThruResponse; +import com.smartdevicelink.proxy.rpc.GenericResponse; +import com.smartdevicelink.proxy.rpc.GetDTCsResponse; +import com.smartdevicelink.proxy.rpc.GetSystemCapabilityResponse; +import com.smartdevicelink.proxy.rpc.GetVehicleDataResponse; +import com.smartdevicelink.proxy.rpc.GetWayPointsResponse; +import com.smartdevicelink.proxy.rpc.ListFilesResponse; +import com.smartdevicelink.proxy.rpc.OnAudioPassThru; +import com.smartdevicelink.proxy.rpc.OnButtonEvent; +import com.smartdevicelink.proxy.rpc.OnButtonPress; +import com.smartdevicelink.proxy.rpc.OnCommand; +import com.smartdevicelink.proxy.rpc.OnDriverDistraction; +import com.smartdevicelink.proxy.rpc.OnHMIStatus; +import com.smartdevicelink.proxy.rpc.OnHashChange; +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.OnStreamRPC; +import com.smartdevicelink.proxy.rpc.OnSystemRequest; +import com.smartdevicelink.proxy.rpc.OnTBTClientState; +import com.smartdevicelink.proxy.rpc.OnTouchEvent; +import com.smartdevicelink.proxy.rpc.OnVehicleData; +import com.smartdevicelink.proxy.rpc.OnWayPointChange; +import com.smartdevicelink.proxy.rpc.PerformAudioPassThruResponse; +import com.smartdevicelink.proxy.rpc.PerformInteractionResponse; +import com.smartdevicelink.proxy.rpc.PutFileResponse; +import com.smartdevicelink.proxy.rpc.ReadDIDResponse; +import com.smartdevicelink.proxy.rpc.ResetGlobalPropertiesResponse; +import com.smartdevicelink.proxy.rpc.ScrollableMessageResponse; +import com.smartdevicelink.proxy.rpc.SendHapticDataResponse; +import com.smartdevicelink.proxy.rpc.SendLocationResponse; +import com.smartdevicelink.proxy.rpc.SetAppIconResponse; +import com.smartdevicelink.proxy.rpc.SetDisplayLayoutResponse; +import com.smartdevicelink.proxy.rpc.SetGlobalPropertiesResponse; +import com.smartdevicelink.proxy.rpc.SetMediaClockTimerResponse; +import com.smartdevicelink.proxy.rpc.ShowConstantTbtResponse; +import com.smartdevicelink.proxy.rpc.ShowResponse; +import com.smartdevicelink.proxy.rpc.SliderResponse; +import com.smartdevicelink.proxy.rpc.SpeakResponse; +import com.smartdevicelink.proxy.rpc.StreamRPCResponse; +import com.smartdevicelink.proxy.rpc.SubscribeButtonResponse; +import com.smartdevicelink.proxy.rpc.SubscribeVehicleDataResponse; +import com.smartdevicelink.proxy.rpc.SubscribeWayPointsResponse; +import com.smartdevicelink.proxy.rpc.SystemRequestResponse; +import com.smartdevicelink.proxy.rpc.UnsubscribeButtonResponse; +import com.smartdevicelink.proxy.rpc.UnsubscribeVehicleDataResponse; +import com.smartdevicelink.proxy.rpc.UnsubscribeWayPointsResponse; +import com.smartdevicelink.proxy.rpc.UpdateTurnListResponse; +import com.smartdevicelink.proxy.rpc.enums.SdlDisconnectedReason; + +import junit.framework.Assert; + + +public class SdlProxyBaseTests extends AndroidTestCase{ + public static final String TAG = "SdlProxyBaseTests"; + + @Override + protected void setUp() throws Exception{ + super.setUp(); + } + + @Override + protected void tearDown() throws Exception { + super.tearDown(); + //Nothing here for now + } + + /** + * Test SdlProxyBase for handling null SdlProxyConfigurationResources + */ + public void testNullSdlProxyConfigurationResources() { + SdlProxyALM proxy = null; + SdlProxyBuilder.Builder builder = new SdlProxyBuilder.Builder(new ProxyListenerTest(), "appId", "appName", true, getContext()); + SdlProxyConfigurationResources config = new SdlProxyConfigurationResources("path", (TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE)); + //Construct with a non-null SdlProxyConfigurationResources + builder.setSdlProxyConfigurationResources(config); + try { + proxy = builder.build(); + } catch (Exception e) { + Log.v(TAG, "Exception in testNullSdlProxyConfigurationResources, testing non null SdlProxyConfigurationResources"); + if (!(e instanceof SdlException) || !((SdlException) e).getSdlExceptionCause().equals(SdlExceptionCause.BLUETOOTH_ADAPTER_NULL)) { + Assert.fail("Exception in testNullSdlProxyConfigurationResources"); + } + } + + //Construct with a null SdlProxyConfigurationResources + builder.setSdlProxyConfigurationResources(null); + try { + proxy = builder.build(); + } catch (Exception e) { + Log.v(TAG, "Exception in testNullSdlProxyConfigurationResources, testing null SdlProxyConfigurationResources"); + if (!(e instanceof SdlException) || !((SdlException) e).getSdlExceptionCause().equals(SdlExceptionCause.BLUETOOTH_ADAPTER_NULL)) { + Assert.fail("Exception in testNullSdlProxyConfigurationResources, testing null SdlProxyConfigurationResources"); + } + } + + //Construct with a non-null SdlProxyConfigurationResources and a null TelephonyManager + config.setTelephonyManager(null); + builder.setSdlProxyConfigurationResources(config); + try { + proxy = builder.build(); + } catch (Exception e) { + Log.v(TAG, "Exception in testNullSdlProxyConfigurationResources, testing null TelephonyManager"); + if (!(e instanceof SdlException) || !((SdlException) e).getSdlExceptionCause().equals(SdlExceptionCause.BLUETOOTH_ADAPTER_NULL)) { + Assert.fail("Exception in testNullSdlProxyConfigurationResources, testing null TelephonyManager"); + } + } + } + + public class ProxyListenerTest implements IProxyListenerALM { + + @Override + public void onProxyClosed(String s, Exception e, SdlDisconnectedReason reason) { + + } + + @Override + public void onOnHMIStatus(OnHMIStatus status) { + + } + + @Override + public void onListFilesResponse(ListFilesResponse response) { + } + + @Override + public void onPutFileResponse(PutFileResponse response) { + } + + @Override + public void onOnLockScreenNotification(OnLockScreenStatus notification) { + } + + @Override + public void onOnCommand(OnCommand notification){ + } + + /** + * Callback method that runs when the add command response is received from SDL. + */ + @Override + public void onAddCommandResponse(AddCommandResponse response) { + } + + @Override + public void onOnPermissionsChange(OnPermissionsChange notification) { + + } + + @Override + public void onSubscribeVehicleDataResponse(SubscribeVehicleDataResponse response) { + } + + @Override + public void onOnVehicleData(OnVehicleData notification) { + } + + /** + * Rest of the SDL callbacks from the head unit + */ + + @Override + public void onAddSubMenuResponse(AddSubMenuResponse response) { + } + + @Override + public void onCreateInteractionChoiceSetResponse(CreateInteractionChoiceSetResponse response) { + } + + @Override + public void onAlertResponse(AlertResponse response) { + } + + @Override + public void onDeleteCommandResponse(DeleteCommandResponse response) { + } + + @Override + public void onDeleteInteractionChoiceSetResponse(DeleteInteractionChoiceSetResponse response) { + } + + @Override + public void onDeleteSubMenuResponse(DeleteSubMenuResponse response) { + } + + @Override + public void onPerformInteractionResponse(PerformInteractionResponse response) { + } + + @Override + public void onResetGlobalPropertiesResponse( + ResetGlobalPropertiesResponse response) { + } + + @Override + public void onSetGlobalPropertiesResponse(SetGlobalPropertiesResponse response) { + } + + @Override + public void onSetMediaClockTimerResponse(SetMediaClockTimerResponse response) { + } + + @Override + public void onShowResponse(ShowResponse response) { + } + + @Override + public void onSpeakResponse(SpeakResponse response) { + Log.i(TAG, "SpeakCommand response from SDL: " + response.getResultCode().name() + " Info: " + response.getInfo()); + } + + @Override + public void onOnButtonEvent(OnButtonEvent notification) { + } + + @Override + public void onOnButtonPress(OnButtonPress notification) { + } + + @Override + public void onSubscribeButtonResponse(SubscribeButtonResponse response) { + } + + @Override + public void onUnsubscribeButtonResponse(UnsubscribeButtonResponse response) { + } + + + @Override + public void onOnTBTClientState(OnTBTClientState notification) { + } + + @Override + public void onUnsubscribeVehicleDataResponse( + UnsubscribeVehicleDataResponse response) { + + } + + @Override + public void onGetVehicleDataResponse(GetVehicleDataResponse response) { + + } + + @Override + public void onReadDIDResponse(ReadDIDResponse response) { + + } + + @Override + public void onGetDTCsResponse(GetDTCsResponse response) { + + } + + + @Override + public void onPerformAudioPassThruResponse(PerformAudioPassThruResponse response) { + + } + + @Override + public void onEndAudioPassThruResponse(EndAudioPassThruResponse response) { + + } + + @Override + public void onOnAudioPassThru(OnAudioPassThru notification) { + + } + + @Override + public void onDeleteFileResponse(DeleteFileResponse response) { + + } + + @Override + public void onSetAppIconResponse(SetAppIconResponse response) { + + } + + @Override + public void onScrollableMessageResponse(ScrollableMessageResponse response) { + + } + + @Override + public void onChangeRegistrationResponse(ChangeRegistrationResponse response) { + + } + + @Override + public void onSetDisplayLayoutResponse(SetDisplayLayoutResponse response) { + + } + + @Override + public void onOnLanguageChange(OnLanguageChange notification) { + + } + + @Override + public void onSliderResponse(SliderResponse response) { + + } + + + @Override + public void onOnHashChange(OnHashChange notification) { + + } + + @Override + public void onOnSystemRequest(OnSystemRequest notification) { + } + + @Override + public void onSystemRequestResponse(SystemRequestResponse response) { + + } + + @Override + public void onOnKeyboardInput(OnKeyboardInput notification) { + + } + + @Override + public void onOnTouchEvent(OnTouchEvent notification) { + + } + + @Override + public void onDiagnosticMessageResponse(DiagnosticMessageResponse response) { + + } + + @Override + public void onOnStreamRPC(OnStreamRPC notification) { + + } + + @Override + public void onStreamRPCResponse(StreamRPCResponse response) { + + } + + @Override + public void onDialNumberResponse(DialNumberResponse response) { + + } + + @Override + public void onSendLocationResponse(SendLocationResponse response) { + Log.i(TAG, "SendLocation response from SDL: " + response.getResultCode().name() + " Info: " + response.getInfo()); + + } + + @Override + public void onServiceEnded(OnServiceEnded serviceEnded) { + + } + + @Override + public void onServiceNACKed(OnServiceNACKed serviceNACKed) { + + } + + @Override + public void onShowConstantTbtResponse(ShowConstantTbtResponse response) { + Log.i(TAG, "ShowConstantTbt response from SDL: " + response.getResultCode().name() + " Info: " + response.getInfo()); + + } + + @Override + public void onAlertManeuverResponse(AlertManeuverResponse response) { + Log.i(TAG, "AlertManeuver response from SDL: " + response.getResultCode().name() + " Info: " + response.getInfo()); + + } + + @Override + public void onUpdateTurnListResponse(UpdateTurnListResponse response) { + Log.i(TAG, "UpdateTurnList response from SDL: " + response.getResultCode().name() + " Info: " + response.getInfo()); + + } + + @Override + public void onServiceDataACK(int dataSize) { + } + + @Override + public void onGetWayPointsResponse(GetWayPointsResponse response) { + Log.i(TAG, "GetWayPoints response from SDL: " + response.getResultCode().name() + " Info: " + response.getInfo()); + } + + @Override + public void onSubscribeWayPointsResponse(SubscribeWayPointsResponse response) { + Log.i(TAG, "SubscribeWayPoints response from SDL: " + response.getResultCode().name() + " Info: " + response.getInfo()); + } + + @Override + public void onUnsubscribeWayPointsResponse(UnsubscribeWayPointsResponse response) { + Log.i(TAG, "UnsubscribeWayPoints response from SDL: " + response.getResultCode().name() + " Info: " + response.getInfo()); + } + + @Override + public void onOnWayPointChange(OnWayPointChange notification) { + Log.i(TAG, "OnWayPointChange notification from SDL: " + notification); + } + + @Override + public void onGetSystemCapabilityResponse(GetSystemCapabilityResponse response) { + Log.i(TAG, "GetSystemCapability response from SDL: " + response); + } + + @Override + public void onOnDriverDistraction(OnDriverDistraction notification) { + // Some RPCs (depending on region) cannot be sent when driver distraction is active. + } + + @Override + public void onError(String info, Exception e) { + } + + @Override + public void onGenericResponse(GenericResponse response) { + Log.i(TAG, "Generic response from SDL: " + response.getResultCode().name() + " Info: " + response.getInfo()); + } + + @Override + public void onSendHapticDataResponse(SendHapticDataResponse response) { + Log.i(TAG, "SendHapticDataResponse response from SDL: " + response); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/CoordinateTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/CoordinateTests.java new file mode 100644 index 000000000..5f8a8327f --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/CoordinateTests.java @@ -0,0 +1,73 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.proxy.rpc.Coordinate; +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; + +/** + * Created by austinkirk on 6/6/17. + */ + +public class CoordinateTests extends TestCase { + + private Coordinate msg; + + @Override + public void setUp(){ + msg = new Coordinate(); + + msg.setLatitudeDegrees(Test.GENERAL_FLOAT); + msg.setLongitudeDegrees(Test.GENERAL_FLOAT); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + float floatLat = msg.getLatitudeDegrees(); + float floatLong = msg.getLongitudeDegrees(); + + // Valid Tests + assertEquals(Test.MATCH, Test.GENERAL_FLOAT, floatLat); + assertEquals(Test.MATCH, Test.GENERAL_FLOAT, floatLong); + // Invalid/Null Tests + Coordinate msg = new Coordinate(); + assertNotNull(Test.NOT_NULL, msg); + + assertNull(Test.NULL, msg.getLatitudeDegrees()); + assertNull(Test.NULL, msg.getLongitudeDegrees()); + } + + public void testJson(){ + JSONObject reference = new JSONObject(); + + try{ + reference.put(Coordinate.KEY_LATITUDE_DEGREES, (Float) Test.GENERAL_FLOAT); + reference.put(Coordinate.KEY_LONGITUDE_DEGREES, (Float) Test.GENERAL_FLOAT); + + JSONObject underTest = msg.serializeJSON(); + + assertEquals(Test.MATCH, reference.length(), underTest.length()); + + Iterator<?> iterator = reference.keys(); + while(iterator.hasNext()){ + String key = (String) iterator.next(); + + Object a = JsonUtils.readObjectFromJsonObject(reference, key); + Object b = JsonUtils.readObjectFromJsonObject(underTest, key); + + assertEquals(Test.MATCH, a, b); + } + } 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/DateTimeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DateTimeTests.java new file mode 100644 index 000000000..2cf38b68f --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DateTimeTests.java @@ -0,0 +1,109 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.proxy.rpc.DateTime; +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; + +/** + * Created by austinkirk on 6/6/17. + */ + +public class DateTimeTests extends TestCase { + + private DateTime msg; + + @Override + public void setUp(){ + msg = new DateTime(); + + msg.setYear(Test.GENERAL_INT); + msg.setMonth(Test.GENERAL_INT); + msg.setDay(Test.GENERAL_INT); + msg.setHour(Test.GENERAL_INT); + msg.setMinute(Test.GENERAL_INT); + msg.setSecond(Test.GENERAL_INT); + msg.setMilliSecond(Test.GENERAL_INT); + msg.setTzHour(Test.GENERAL_INT); + msg.setTzMinute(Test.GENERAL_INT); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + Integer year = msg.getYear(); + Integer month = msg.getMonth(); + Integer day = msg.getDay(); + Integer hour = msg.getHour(); + Integer min = msg.getMinute(); + Integer sec = msg.getSecond(); + Integer ms = msg.getMilliSecond(); + Integer tzHour = msg.getTzHour(); + Integer tzMin = msg.getTzMinute(); + + // Valid Tests + assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, year); + assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, month); + assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, day); + assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, hour); + assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, min); + assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, sec); + assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, ms); + assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, tzHour); + assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, tzMin); + + // Invalid/Null Tests + DateTime msg = new DateTime(); + assertNotNull(Test.NOT_NULL, msg); + + assertNull(Test.NULL, msg.getYear()); + assertNull(Test.NULL, msg.getMonth()); + assertNull(Test.NULL, msg.getDay()); + assertNull(Test.NULL, msg.getHour()); + assertNull(Test.NULL, msg.getMinute()); + assertNull(Test.NULL, msg.getSecond()); + assertNull(Test.NULL, msg.getMilliSecond()); + assertNull(Test.NULL, msg.getTzHour()); + assertNull(Test.NULL, msg.getTzMinute()); + } + + public void testJson(){ + JSONObject reference = new JSONObject(); + + try{ + reference.put(DateTime.KEY_YEAR, (Integer) Test.GENERAL_INT); + reference.put(DateTime.KEY_MONTH, (Integer) Test.GENERAL_INT); + reference.put(DateTime.KEY_DAY, (Integer) Test.GENERAL_INT); + reference.put(DateTime.KEY_HOUR, (Integer) Test.GENERAL_INT); + reference.put(DateTime.KEY_MINUTE, (Integer) Test.GENERAL_INT); + reference.put(DateTime.KEY_SECOND, (Integer) Test.GENERAL_INT); + reference.put(DateTime.KEY_MILLISECOND, (Integer) Test.GENERAL_INT); + reference.put(DateTime.KEY_TZ_HOUR, (Integer) Test.GENERAL_INT); + reference.put(DateTime.KEY_TZ_MINUTE, (Integer) 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(); + + Object a = JsonUtils.readObjectFromJsonObject(reference, key); + Object b = JsonUtils.readObjectFromJsonObject(underTest, key); + + assertEquals(Test.MATCH, a, b); + } + } 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/HMICapabilitiesTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/HMICapabilitiesTests.java new file mode 100644 index 000000000..cc4813caa --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/HMICapabilitiesTests.java @@ -0,0 +1,74 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.proxy.rpc.HMICapabilities; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; + +import junit.framework.TestCase; + +import org.json.JSONException; +import org.json.JSONObject; + +import static com.smartdevicelink.proxy.rpc.HMICapabilities.KEY_NAVIGATION; +import static com.smartdevicelink.proxy.rpc.HMICapabilities.KEY_PHONE_CALL; +import static com.smartdevicelink.proxy.rpc.HMICapabilities.KEY_VIDEO_STREAMING; + +public class HMICapabilitiesTests extends TestCase { + private HMICapabilities msg; + + @Override + public void setUp(){ + msg = new HMICapabilities(); + + msg.setNavigationAvilable(Test.GENERAL_BOOLEAN); + msg.setPhoneCallAvilable(Test.GENERAL_BOOLEAN); + msg.setVideoStreamingAvailable(Test.GENERAL_BOOLEAN); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + Boolean navAvail = msg.isNavigationAvailable(); + Boolean phoneAvail = msg.isPhoneCallAvailable(); + Boolean vidStreamAvail = msg.isVideoStreamingAvailable(); + + // Valid Tests + assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, navAvail); + assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, phoneAvail); + assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, vidStreamAvail); + + // Invalid/Null Tests + HMICapabilities msg = new HMICapabilities(); + assertNotNull(Test.NOT_NULL, msg); + + assertFalse(msg.isNavigationAvailable()); + assertFalse(msg.isPhoneCallAvailable()); + assertFalse(msg.isVideoStreamingAvailable()); + } + + public void testJson(){ + JSONObject reference = new JSONObject(); + + try{ + reference.put(KEY_NAVIGATION, Test.GENERAL_BOOLEAN); + reference.put(HMICapabilities.KEY_PHONE_CALL, Test.GENERAL_BOOLEAN); + reference.put(HMICapabilities.KEY_VIDEO_STREAMING, Test.GENERAL_BOOLEAN); + + JSONObject underTest = msg.serializeJSON(); + assertEquals(Test.MATCH, reference.length(), underTest.length()); + + assertEquals(Test.MATCH, JsonUtils.readStringListFromJsonObject(reference, KEY_NAVIGATION), + JsonUtils.readStringListFromJsonObject(underTest, KEY_NAVIGATION)); + + assertEquals(Test.MATCH, JsonUtils.readStringListFromJsonObject(reference, KEY_PHONE_CALL), + JsonUtils.readStringListFromJsonObject(underTest, KEY_PHONE_CALL)); + + assertEquals(Test.MATCH, JsonUtils.readStringListFromJsonObject(reference, KEY_VIDEO_STREAMING), + JsonUtils.readStringListFromJsonObject(underTest, KEY_VIDEO_STREAMING)); + } catch(JSONException e){ + fail(Test.JSON_FAIL); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/HapticRectTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/HapticRectTests.java new file mode 100644 index 000000000..c72204640 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/HapticRectTests.java @@ -0,0 +1,73 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.proxy.rpc.HapticRect; +import com.smartdevicelink.proxy.rpc.Rectangle; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.Validator; + +import junit.framework.TestCase; + +import org.json.JSONException; +import org.json.JSONObject; + +/** + * Created by brettywhite on 8/24/17. + */ + +public class HapticRectTests extends TestCase { + + private HapticRect msg; + + @Override + public void setUp() { + msg = new HapticRect(); + + msg.setId(Test.GENERAL_INTEGER); + msg.setRect(Test.GENERAL_RECTANGLE); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + Integer id = msg.getId(); + Rectangle rect = msg.getRect(); + + // Valid Tests + assertEquals(Test.MATCH, Test.GENERAL_INTEGER, id); + assertEquals(Test.MATCH, Test.GENERAL_RECTANGLE, rect); + + // Invalid/Null Tests + HapticRect msg = new HapticRect(); + assertNotNull(Test.NOT_NULL, msg); + + assertNull(Test.NULL, msg.getId()); + assertNull(Test.NULL, msg.getRect()); + } + + public void testJson(){ + JSONObject reference = new JSONObject(); + + try{ + reference.put(HapticRect.KEY_ID, Test.GENERAL_INTEGER); + reference.put(HapticRect.KEY_RECT, Test.GENERAL_RECTANGLE); + + JSONObject underTest = msg.serializeJSON(); + assertEquals(Test.MATCH, reference.length(), underTest.length()); + + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(reference, HapticRect.KEY_ID), + JsonUtils.readIntegerFromJsonObject(underTest, HapticRect.KEY_ID)); + + assertTrue(Validator.validateRectangle( + (Rectangle) JsonUtils.readObjectFromJsonObject(reference, HapticRect.KEY_RECT), + new Rectangle(JsonRPCMarshaller.deserializeJSONObject( (JSONObject) JsonUtils.readObjectFromJsonObject(underTest, HapticRect.KEY_RECT)))) + ); + + } catch(JSONException e){ + fail(Test.JSON_FAIL); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/LocationDetailsTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/LocationDetailsTests.java new file mode 100644 index 000000000..18da17eac --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/LocationDetailsTests.java @@ -0,0 +1,113 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.proxy.rpc.Coordinate; +import com.smartdevicelink.proxy.rpc.Image; +import com.smartdevicelink.proxy.rpc.LocationDetails; +import com.smartdevicelink.proxy.rpc.OasisAddress; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.Validator; + +import junit.framework.TestCase; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.List; + +/** + * Created by austinkirk on 6/7/17. + */ + +public class LocationDetailsTests extends TestCase { + private LocationDetails msg; + + @Override + public void setUp(){ + msg = Test.GENERAL_LOCATIONDETAILS; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + List<String> field1 = msg.getAddressLines(); + String field2 = msg.getLocationDescription(); + String field3 = msg.getLocationName(); + String field4 = msg.getPhoneNumber(); + Coordinate field5 = msg.getCoordinate(); + Image field6 = msg.getLocationImage(); + OasisAddress field7 = msg.getSearchAddress(); + + // Valid Tests + assertEquals(Test.MATCH, Test.GENERAL_STRING_LIST, field1); + assertEquals(Test.MATCH, Test.GENERAL_STRING, field2); + assertEquals(Test.MATCH, Test.GENERAL_STRING, field3); + assertEquals(Test.MATCH, Test.GENERAL_STRING, field4); + assertEquals(Test.MATCH, Test.GENERAL_COORDINATE, field5); + assertEquals(Test.MATCH, Test.GENERAL_IMAGE, field6); + assertEquals(Test.MATCH, Test.GENERAL_OASISADDRESS, field7); + + // Invalid/Null Tests + LocationDetails msg = new LocationDetails(); + assertNotNull(Test.NOT_NULL, msg); + + + assertNull(msg.getAddressLines()); + assertNull(msg.getLocationDescription()); + assertNull(msg.getLocationName()); + assertNull(msg.getPhoneNumber()); + assertNull(msg.getCoordinate()); + assertNull(msg.getLocationImage()); + assertNull(msg.getSearchAddress()); + } + + public void testJson(){ + JSONObject reference = new JSONObject(); + + try{ + reference.put(LocationDetails.KEY_ADDRESS_LINES, JsonUtils.createJsonArray(Test.GENERAL_STRING_LIST)); + reference.put(LocationDetails.KEY_LOCATION_DESCRIPTION, Test.GENERAL_STRING); + reference.put(LocationDetails.KEY_LOCATION_NAME, Test.GENERAL_STRING); + reference.put(LocationDetails.KEY_PHONE_NUMBER, Test.GENERAL_STRING); + reference.put(LocationDetails.KEY_COORDINATE, Test.GENERAL_COORDINATE); + reference.put(LocationDetails.KEY_LOCATION_IMAGE, Test.GENERAL_IMAGE); + reference.put(LocationDetails.KEY_SEARCH_ADDRESS, Test.GENERAL_OASISADDRESS); + + JSONObject underTest = msg.serializeJSON(); + assertEquals(Test.MATCH, reference.length(), underTest.length()); + + assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, LocationDetails.KEY_ADDRESS_LINES), + JsonUtils.readObjectFromJsonObject(underTest, LocationDetails.KEY_ADDRESS_LINES)); + + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(reference, LocationDetails.KEY_LOCATION_DESCRIPTION), + JsonUtils.readStringFromJsonObject(underTest, LocationDetails.KEY_LOCATION_DESCRIPTION)); + + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(reference, LocationDetails.KEY_LOCATION_NAME), + JsonUtils.readStringFromJsonObject(underTest, LocationDetails.KEY_LOCATION_NAME)); + + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(reference, LocationDetails.KEY_PHONE_NUMBER), + JsonUtils.readStringFromJsonObject(underTest, LocationDetails.KEY_PHONE_NUMBER)); + + assertTrue(Validator.validateCoordinate( + (Coordinate) JsonUtils.readObjectFromJsonObject(reference, LocationDetails.KEY_COORDINATE), + new Coordinate(JsonRPCMarshaller.deserializeJSONObject( (JSONObject) JsonUtils.readObjectFromJsonObject(underTest, LocationDetails.KEY_COORDINATE)))) + ); + + assertTrue(Validator.validateImage( + (Image) JsonUtils.readObjectFromJsonObject(reference, LocationDetails.KEY_LOCATION_IMAGE), + new Image(JsonRPCMarshaller.deserializeJSONObject((JSONObject) JsonUtils.readObjectFromJsonObject(underTest, LocationDetails.KEY_LOCATION_IMAGE))) + )); + + assertTrue(Validator.validateOasisAddress( + (OasisAddress) JsonUtils.readObjectFromJsonObject(reference, LocationDetails.KEY_SEARCH_ADDRESS), + new OasisAddress(JsonRPCMarshaller.deserializeJSONObject((JSONObject) JsonUtils.readObjectFromJsonObject(underTest, LocationDetails.KEY_SEARCH_ADDRESS))) + )); + + } catch(JSONException e){ + fail(Test.JSON_FAIL); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/MetadataTagsTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/MetadataTagsTests.java new file mode 100644 index 000000000..5f27cc132 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/MetadataTagsTests.java @@ -0,0 +1,110 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.proxy.rpc.MetadataTags; +import com.smartdevicelink.proxy.rpc.enums.MetadataType; +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.ArrayList; +import java.util.Iterator; +import java.util.List; + + +/** + * This is a unit test class for the SmartDeviceLink library project class: + * {@link MetadataTags} + */ + +public class MetadataTagsTests extends TestCase { + + private MetadataTags msg; + private MetadataTags msg2; + private List<MetadataType> exampleList; + + @Override + public void setUp() { + // Create List for Testing + exampleList = new ArrayList<>(); + exampleList.add(0, MetadataType.CURRENT_TEMPERATURE); + exampleList.add(1, MetadataType.MEDIA_ALBUM); + exampleList.add(2, MetadataType.MEDIA_ARTIST); + + msg = new MetadataTags(); + msg.setMainField1(exampleList); + msg.setMainField2(exampleList); + msg.setMainField3(exampleList); + msg.setMainField4(exampleList); + + // Setup without a list + msg2 = new MetadataTags(); + msg2.setMainField1(MetadataType.CURRENT_TEMPERATURE); + msg2.setMainField2(MetadataType.HUMIDITY); + msg2.setMainField3(MetadataType.MAXIMUM_TEMPERATURE); + msg2.setMainField4(MetadataType.MEDIA_ALBUM); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + List<MetadataType> mainField1Types = msg.getMainField1(); + List<MetadataType> mainField2Types = msg.getMainField2(); + List<MetadataType> mainField3Types = msg.getMainField3(); + List<MetadataType> mainField4Types = msg.getMainField4(); + + // Valid Tests + assertEquals(Test.MATCH, exampleList, mainField1Types); + assertEquals(Test.MATCH, exampleList, mainField2Types); + assertEquals(Test.MATCH, exampleList, mainField3Types); + assertEquals(Test.MATCH, exampleList, mainField4Types); + + // Test metadata set without a list + mainField1Types = msg2.getMainField1(); + mainField2Types = msg2.getMainField2(); + mainField3Types = msg2.getMainField3(); + mainField4Types = msg2.getMainField4(); + + // Valid Tests + assertEquals(Test.MATCH, MetadataType.CURRENT_TEMPERATURE, mainField1Types.get(0)); + assertEquals(Test.MATCH, MetadataType.HUMIDITY, mainField2Types.get(0)); + assertEquals(Test.MATCH, MetadataType.MAXIMUM_TEMPERATURE, mainField3Types.get(0)); + assertEquals(Test.MATCH, MetadataType.MEDIA_ALBUM, mainField4Types.get(0)); + + // Invalid/Null Tests + MetadataTags msg = new MetadataTags(); + assertNotNull(Test.NOT_NULL, msg); + + assertNull(Test.NULL, msg.getMainField1()); + assertNull(Test.NULL, msg.getMainField2()); + assertNull(Test.NULL, msg.getMainField3()); + assertNull(Test.NULL, msg.getMainField4()); + } + + public void testJson() { + JSONObject reference = new JSONObject(); + + try { + reference.put(MetadataTags.KEY_MAIN_FIELD_1_TYPE, Test.JSON_TEXTFIELDTYPES); + reference.put(MetadataTags.KEY_MAIN_FIELD_2_TYPE, Test.JSON_TEXTFIELDTYPES); + reference.put(MetadataTags.KEY_MAIN_FIELD_3_TYPE, Test.JSON_TEXTFIELDTYPES); + reference.put(MetadataTags.KEY_MAIN_FIELD_4_TYPE, Test.JSON_TEXTFIELDTYPES); + + 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); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/OasisAddressTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/OasisAddressTests.java new file mode 100644 index 000000000..cf39a3c18 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/OasisAddressTests.java @@ -0,0 +1,95 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.proxy.rpc.OasisAddress; +import com.smartdevicelink.test.Test; + +import junit.framework.TestCase; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Iterator; + +/** + * Created by austinkirk on 6/7/17. + */ + +public class OasisAddressTests extends TestCase { + private OasisAddress msg; + + @Override + public void setUp(){ + msg = Test.GENERAL_OASISADDRESS; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + String f1 = msg.getAdministrativeArea(); + String f2 = msg.getSubAdministrativeArea(); + String f3 = msg.getCountryCode(); + String f4 = msg.getCountryName(); + String f5 = msg.getLocality(); + String f6 = msg.getSubLocality(); + String f7 = msg.getPostalCode(); + String f8 = msg.getThoroughfare(); + String f9 = msg.getSubThoroughfare(); + + + // Valid Tests + assertEquals(Test.MATCH, Test.GENERAL_STRING, f1); + assertEquals(Test.MATCH, Test.GENERAL_STRING, f2); + assertEquals(Test.MATCH, Test.GENERAL_STRING, f3); + assertEquals(Test.MATCH, Test.GENERAL_STRING, f4); + assertEquals(Test.MATCH, Test.GENERAL_STRING, f5); + assertEquals(Test.MATCH, Test.GENERAL_STRING, f6); + assertEquals(Test.MATCH, Test.GENERAL_STRING, f7); + assertEquals(Test.MATCH, Test.GENERAL_STRING, f8); + assertEquals(Test.MATCH, Test.GENERAL_STRING, f9); + + // Invalid/Null Tests + OasisAddress msg = new OasisAddress(); + assertNotNull(Test.NOT_NULL, msg); + + assertNull(msg.getAdministrativeArea()); + assertNull(msg.getSubAdministrativeArea()); + assertNull(msg.getCountryCode()); + assertNull(msg.getCountryName()); + assertNull(msg.getLocality()); + assertNull(msg.getSubLocality()); + assertNull(msg.getPostalCode()); + assertNull(msg.getThoroughfare()); + assertNull(msg.getSubThoroughfare()); + } + + public void testJson(){ + JSONObject reference = new JSONObject(); + + try{ + reference.put(OasisAddress.KEY_ADMINISTRATIVE_AREA, Test.GENERAL_STRING); + reference.put(OasisAddress.KEY_SUB_ADMINISTRATIVE_AREA, Test.GENERAL_STRING); + reference.put(OasisAddress.KEY_COUNTRY_CODE, Test.GENERAL_STRING); + reference.put(OasisAddress.KEY_COUNTRY_NAME, Test.GENERAL_STRING); + reference.put(OasisAddress.KEY_LOCALITY, Test.GENERAL_STRING); + reference.put(OasisAddress.KEY_SUB_LOCALITY, Test.GENERAL_STRING); + reference.put(OasisAddress.KEY_POSTAL_CODE, Test.GENERAL_STRING); + reference.put(OasisAddress.KEY_THOROUGH_FARE, Test.GENERAL_STRING); + reference.put(OasisAddress.KEY_SUB_THOROUGH_FARE, Test.GENERAL_STRING); + + 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, reference.get(key), + underTest.get(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/RectangleTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RectangleTests.java new file mode 100644 index 000000000..569a4db83 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RectangleTests.java @@ -0,0 +1,79 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.proxy.rpc.Rectangle; +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 Rectangle} + */ +public class RectangleTests extends TestCase { + + private Rectangle msg; + + @Override + public void setUp() { + msg = new Rectangle(); + + msg.setX(Test.GENERAL_FLOAT); + msg.setY(Test.GENERAL_FLOAT); + msg.setWidth(Test.GENERAL_FLOAT); + msg.setHeight(Test.GENERAL_FLOAT); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + Float x = msg.getX(); + Float y = msg.getY(); + Float width = msg.getWidth(); + Float height = msg.getHeight(); + + // Valid Tests + assertEquals(Test.MATCH, Test.GENERAL_FLOAT, x); + assertEquals(Test.MATCH, Test.GENERAL_FLOAT, y); + assertEquals(Test.MATCH, Test.GENERAL_FLOAT, width); + assertEquals(Test.MATCH, Test.GENERAL_FLOAT, height); + + // Invalid/Null Tests + Rectangle msg = new Rectangle(); + assertNotNull(Test.NOT_NULL, msg); + + assertNull(Test.NULL, msg.getX()); + assertNull(Test.NULL, msg.getY()); + assertNull(Test.NULL, msg.getWidth()); + assertNull(Test.NULL, msg.getHeight()); + } + + public void testJson() { + JSONObject reference = new JSONObject(); + + try { + reference.put(Rectangle.KEY_X, (Test.GENERAL_FLOAT)); + reference.put(Rectangle.KEY_Y, (Test.GENERAL_FLOAT)); + reference.put(Rectangle.KEY_WIDTH, (Test.GENERAL_FLOAT)); + reference.put(Rectangle.KEY_HEIGHT, (Test.GENERAL_FLOAT)); + + JSONObject underTest = msg.serializeJSON(); + assertEquals(Test.MATCH, reference.length(), underTest.length()); + + Iterator<?> iterator = reference.keys(); + while (iterator.hasNext()) { + String key = (String) iterator.next(); + assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key)); + } + } catch (JSONException e) { + fail(Test.JSON_FAIL); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SdlMsgVersionTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SdlMsgVersionTest.java index c94afc643..645652ea0 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SdlMsgVersionTest.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SdlMsgVersionTest.java @@ -25,6 +25,7 @@ public class SdlMsgVersionTest extends TestCase { msg.setMajorVersion(Test.GENERAL_INT); msg.setMinorVersion(Test.GENERAL_INT); + msg.setPatchVersion(Test.GENERAL_INT); } /** @@ -34,17 +35,20 @@ public class SdlMsgVersionTest extends TestCase { // Test Values Integer major = msg.getMajorVersion(); Integer minor = msg.getMinorVersion(); - + Integer patch = msg.getPatchVersion(); + // Valid Tests assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, major); assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, minor); - + assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, patch); + // Invalid/Null Tests SdlMsgVersion msg = new SdlMsgVersion(); assertNotNull(Test.NOT_NULL, msg); assertNull(Test.NULL, msg.getMajorVersion()); assertNull(Test.NULL, msg.getMinorVersion()); + assertNull(Test.NULL, msg.getPatchVersion()); } public void testJson() { @@ -53,6 +57,7 @@ public class SdlMsgVersionTest extends TestCase { try { reference.put(SdlMsgVersion.KEY_MAJOR_VERSION, Test.GENERAL_INT); reference.put(SdlMsgVersion.KEY_MINOR_VERSION, Test.GENERAL_INT); + reference.put(SdlMsgVersion.KEY_PATCH_VERSION, Test.GENERAL_INT); JSONObject underTest = msg.serializeJSON(); assertEquals(Test.MATCH, reference.length(), underTest.length()); diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SystemCapabilityTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SystemCapabilityTests.java new file mode 100644 index 000000000..566b2733e --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/SystemCapabilityTests.java @@ -0,0 +1,61 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.proxy.rpc.SystemCapability; +import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType; +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; + +public class SystemCapabilityTests extends TestCase { + + private SystemCapability msg; + + @Override + public void setUp() { + msg = new SystemCapability(); + + msg.setSystemCapabilityType(Test.GENERAL_SYSTEMCAPABILITYTYPE); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + SystemCapabilityType testType = msg.getSystemCapabilityType(); + + // Valid Tests + assertEquals(Test.MATCH, (SystemCapabilityType) Test.GENERAL_SYSTEMCAPABILITYTYPE, testType); + + // Invalid/Null Tests + SystemCapability msg = new SystemCapability(); + assertNotNull(Test.NOT_NULL, msg); + + assertNull(Test.NULL, msg.getSystemCapabilityType()); + } + + public void testJson() { + JSONObject reference = new JSONObject(); + + try { + reference.put(SystemCapability.KEY_SYSTEM_CAPABILITY_TYPE, Test.GENERAL_SYSTEMCAPABILITYTYPE); + + 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/VideoStreamingCapabilityTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/VideoStreamingCapabilityTests.java new file mode 100644 index 000000000..54cfc1a22 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/VideoStreamingCapabilityTests.java @@ -0,0 +1,96 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.proxy.rpc.ImageResolution; +import com.smartdevicelink.proxy.rpc.VideoStreamingCapability; +import com.smartdevicelink.proxy.rpc.VideoStreamingFormat; +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; + + +public class VideoStreamingCapabilityTests extends TestCase { + + private VideoStreamingCapability msg; + + @Override + public void setUp() { + msg = new VideoStreamingCapability(); + msg.setSupportedFormats(Test.GENERAL_VIDEOSTREAMINGFORMAT_LIST); + msg.setPreferredResolution(Test.GENERAL_IMAGERESOLUTION); + msg.setMaxBitrate(Test.GENERAL_INT); + msg.setIsHapticSpatialDataSupported(Test.GENERAL_BOOLEAN); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + List<VideoStreamingFormat> format = msg.getSupportedFormats(); + ImageResolution res = msg.getPreferredResolution(); + Integer maxBitrate = msg.getMaxBitrate(); + Boolean isHapticSpatialDataSupported = msg.getIsHapticSpatialDataSupported(); + + // Valid Tests + assertEquals(Test.MATCH, (List<VideoStreamingFormat>) Test.GENERAL_VIDEOSTREAMINGFORMAT_LIST, format); + assertEquals(Test.MATCH, (ImageResolution) Test.GENERAL_IMAGERESOLUTION, res); + assertEquals(Test.MATCH, (Integer) Test.GENERAL_INT, maxBitrate); + assertEquals(Test.MATCH, (Boolean) Test.GENERAL_BOOLEAN, isHapticSpatialDataSupported); + + // Invalid/Null Tests + VideoStreamingCapability msg = new VideoStreamingCapability(); + assertNotNull(Test.NOT_NULL, msg); + + assertNull(Test.NULL, msg.getMaxBitrate()); + assertNull(Test.NULL, msg.getPreferredResolution()); + assertNull(Test.NULL, msg.getSupportedFormats()); + assertNull(Test.NULL, msg.getIsHapticSpatialDataSupported()); + } + + public void testJson() { + JSONObject reference = new JSONObject(); + + try { + reference.put(VideoStreamingCapability.KEY_MAX_BITRATE, Test.GENERAL_INT); + reference.put(VideoStreamingCapability.KEY_PREFERRED_RESOLUTION, Test.GENERAL_IMAGERESOLUTION); + reference.put(VideoStreamingCapability.KEY_SUPPORTED_FORMATS, Test.GENERAL_VIDEOSTREAMINGFORMAT_LIST); + reference.put(VideoStreamingCapability.KEY_HAPTIC_SPATIAL_DATA_SUPPORTED, 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(); + + if (key.equals(VideoStreamingCapability.KEY_MAX_BITRATE) || key.equals(VideoStreamingCapability.KEY_HAPTIC_SPATIAL_DATA_SUPPORTED)) { + assertTrue(Test.TRUE, JsonUtils.readIntegerFromJsonObject(reference, key) == JsonUtils.readIntegerFromJsonObject(underTest, key)); + } else if (key.equals(VideoStreamingCapability.KEY_PREFERRED_RESOLUTION)) { + ImageResolution irReference = (ImageResolution) JsonUtils.readObjectFromJsonObject(reference, key); + Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(JsonUtils.readJsonObjectFromJsonObject(underTest, key)); + assertTrue(Validator.validateImageResolution(irReference, new ImageResolution(hashTest))); + } else if (key.equals(VideoStreamingCapability.KEY_SUPPORTED_FORMATS)){ + List<VideoStreamingFormat> vsfReference = (List<VideoStreamingFormat>) JsonUtils.readObjectFromJsonObject(reference, key); + JSONArray vsfArray = JsonUtils.readJsonArrayFromJsonObject(underTest, key); + int i = 0; + for(VideoStreamingFormat vsf : vsfReference){ + assertTrue(Validator.validateSupportedFormats(vsf, new VideoStreamingFormat(JsonRPCMarshaller.deserializeJSONObject(vsfArray.getJSONObject(i++))))); + } + } + } + } catch (JSONException e) { + fail(Test.JSON_FAIL); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/VideoStreamingFormatTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/VideoStreamingFormatTests.java new file mode 100644 index 000000000..ff7cb2719 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/VideoStreamingFormatTests.java @@ -0,0 +1,70 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.proxy.rpc.ImageResolution; +import com.smartdevicelink.proxy.rpc.VideoStreamingCapability; +import com.smartdevicelink.proxy.rpc.VideoStreamingFormat; +import com.smartdevicelink.proxy.rpc.enums.VideoStreamingCodec; +import com.smartdevicelink.proxy.rpc.enums.VideoStreamingProtocol; +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; + +public class VideoStreamingFormatTests extends TestCase { + + private VideoStreamingFormat msg; + + @Override + public void setUp() { + msg = new VideoStreamingFormat(); + msg.setProtocol(Test.GENERAL_VIDEOSTREAMINGPROTOCOL); + msg.setCodec(Test.GENERAL_VIDEOSTREAMINGCODEC); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + VideoStreamingProtocol protocol = msg.getProtocol(); + VideoStreamingCodec codec = msg.getCodec(); + + // Valid Tests + assertEquals(Test.MATCH, (VideoStreamingProtocol) Test.GENERAL_VIDEOSTREAMINGPROTOCOL, protocol); + assertEquals(Test.MATCH, (VideoStreamingCodec) Test.GENERAL_VIDEOSTREAMINGCODEC, codec); + + // Invalid/Null Tests + VideoStreamingFormat msg = new VideoStreamingFormat(); + assertNotNull(Test.NOT_NULL, msg); + + assertNull(Test.NULL, msg.getProtocol()); + assertNull(Test.NULL, msg.getCodec()); + } + + public void testJson() { + JSONObject reference = new JSONObject(); + + try { + reference.put(VideoStreamingFormat.KEY_PROTOCOL, Test.GENERAL_VIDEOSTREAMINGPROTOCOL); + reference.put(VideoStreamingFormat.KEY_CODEC, Test.GENERAL_VIDEOSTREAMINGCODEC); + + 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); + } + } +} + diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AppHmiTypeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AppHmiTypeTests.java index 76d203901..bcaeae93d 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AppHmiTypeTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AppHmiTypeTests.java @@ -10,7 +10,7 @@ import com.smartdevicelink.proxy.rpc.enums.AppHMIType; /** * This is a unit test class for the SmartDeviceLink library project class : - * {@link com.smartdevicelink.rpc.enums.AppHmiType} + * {@link com.smartdevicelink.proxy.rpc.enums.AppHMIType} */ public class AppHmiTypeTests extends TestCase { @@ -34,6 +34,8 @@ public class AppHmiTypeTests extends TestCase { AppHMIType enumSocial = AppHMIType.valueForString(example); example = "BACKGROUND_PROCESS"; AppHMIType enumBackgroundProcess = AppHMIType.valueForString(example); + example = "PROJECTION"; + AppHMIType enumProjection = AppHMIType.valueForString(example); example = "TESTING"; AppHMIType enumTesting = AppHMIType.valueForString(example); example = "SYSTEM"; @@ -47,6 +49,7 @@ public class AppHmiTypeTests extends TestCase { assertNotNull("INFORMATION returned null", enumInformation); assertNotNull("SOCIAL returned null", enumSocial); assertNotNull("BACKGROUND_PROCESS returned null", enumBackgroundProcess); + assertNotNull("PROJECTION returned null", enumProjection); assertNotNull("TESTING returned null", enumTesting); assertNotNull("SYSTEM returned null", enumSystem); } @@ -93,7 +96,8 @@ public class AppHmiTypeTests extends TestCase { enumTestList.add(AppHMIType.NAVIGATION); enumTestList.add(AppHMIType.INFORMATION); enumTestList.add(AppHMIType.SOCIAL); - enumTestList.add(AppHMIType.BACKGROUND_PROCESS); + enumTestList.add(AppHMIType.BACKGROUND_PROCESS); + enumTestList.add(AppHMIType.PROJECTION); enumTestList.add(AppHMIType.TESTING); enumTestList.add(AppHMIType.SYSTEM); diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/DisplayTypeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/DisplayTypeTests.java index 83af2561e..560bdf025 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/DisplayTypeTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/DisplayTypeTests.java @@ -9,15 +9,15 @@ import junit.framework.TestCase; import com.smartdevicelink.proxy.rpc.enums.DisplayType; /** - * This is a unit test class for the SmartDeviceLink library project class : - * {@link com.smartdevicelink.rpc.enums.DisplayType} + * This is a unit test class for the SmartDeviceLink library project class : + * {@link com.smartdevicelink.proxy.rpc.enums.DisplayType} */ public class DisplayTypeTests extends TestCase { /** * Verifies that the enum values are not null upon valid assignment. */ - public void testValidEnums () { + public void testValidEnums () { String example = "CID"; DisplayType enumCid = DisplayType.valueForString(example); example = "TYPE2"; @@ -38,6 +38,8 @@ public class DisplayTypeTests extends TestCase { DisplayType enumMfd5 = DisplayType.valueForString(example); example = "GEN3_8-INCH"; DisplayType enumGen3_8Inch = DisplayType.valueForString(example); + example = "SDL_GENERIC"; + DisplayType enumGeneric = DisplayType.valueForString(example); assertNotNull("CID returned null", enumCid); assertNotNull("TYPE2 returned null", enumType2); @@ -49,6 +51,7 @@ public class DisplayTypeTests extends TestCase { assertNotNull("MFD4 returned null", enumMfd4); assertNotNull("MFD5 returned null", enumMfd5); assertNotNull("GEN3_8-INCH returned null", enumGen3_8Inch); + assertNotNull("SDL_GENERIC returned null", enumGeneric); } /** @@ -57,11 +60,11 @@ public class DisplayTypeTests extends TestCase { public void testInvalidEnum () { String example = "cId"; try { - DisplayType temp = DisplayType.valueForString(example); - assertNull("Result of valueForString should be null.", temp); + DisplayType temp = DisplayType.valueForString(example); + assertNull("Result of valueForString should be null.", temp); } catch (IllegalArgumentException exception) { - fail("Invalid enum throws IllegalArgumentException."); + fail("Invalid enum throws IllegalArgumentException."); } } @@ -71,19 +74,19 @@ public class DisplayTypeTests extends TestCase { public void testNullEnum () { String example = null; try { - DisplayType temp = DisplayType.valueForString(example); - assertNull("Result of valueForString should be null.", temp); + DisplayType temp = DisplayType.valueForString(example); + assertNull("Result of valueForString should be null.", temp); } catch (NullPointerException exception) { - fail("Null string throws NullPointerException."); + fail("Null string throws NullPointerException."); } } - + /** * Verifies the possible enum values of DisplayType. */ public void testListEnum() { - List<DisplayType> enumValueList = Arrays.asList(DisplayType.values()); + List<DisplayType> enumValueList = Arrays.asList(DisplayType.values()); List<DisplayType> enumTestList = new ArrayList<DisplayType>(); enumTestList.add(DisplayType.CID); @@ -91,13 +94,14 @@ public class DisplayTypeTests extends TestCase { enumTestList.add(DisplayType.TYPE5); enumTestList.add(DisplayType.NGN); enumTestList.add(DisplayType.GEN2_8_DMA); - enumTestList.add(DisplayType.GEN2_6_DMA); + enumTestList.add(DisplayType.GEN2_6_DMA); enumTestList.add(DisplayType.MFD3); - enumTestList.add(DisplayType.MFD4); + enumTestList.add(DisplayType.MFD4); enumTestList.add(DisplayType.MFD5); - enumTestList.add(DisplayType.GEN3_8_INCH); + enumTestList.add(DisplayType.GEN3_8_INCH); + enumTestList.add(DisplayType.SDL_GENERIC); - assertTrue("Enum value list does not match enum class list", + 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/LanguageTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/LanguageTests.java index 3679a9ffc..6b87c5d26 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/LanguageTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/LanguageTests.java @@ -10,7 +10,7 @@ import com.smartdevicelink.proxy.rpc.enums.Language; /** * This is a unit test class for the SmartDeviceLink library project class : - * {@link com.smartdevicelink.rpc.enums.Language} + * {@link com.smartdevicelink.proxy.rpc.enums.Language} */ public class LanguageTests extends TestCase { @@ -20,6 +20,32 @@ public class LanguageTests extends TestCase { public void testValidEnums () { String example = "EN-US"; Language enumEnUs = Language.valueForString(example); + example = "EN-SA"; + Language enumEnSa = Language.valueForString(example); + example = "HE-IL"; + Language enumHeIl = Language.valueForString(example); + example = "RO-RO"; + Language enumRoRo = Language.valueForString(example); + example = "UK-UA"; + Language enumUkUa = Language.valueForString(example); + example = "ID-ID"; + Language enumIdId = Language.valueForString(example); + example = "VI-VN"; + Language enumViVn = Language.valueForString(example); + example = "MS-MY"; + Language enumMsMy = Language.valueForString(example); + example = "HI-IN"; + Language enumHiIn = Language.valueForString(example); + example = "NL-BE"; + Language enumNlBe = Language.valueForString(example); + example = "EL-GR"; + Language enumElGr = Language.valueForString(example); + example = "HU-HU"; + Language enumHuHu = Language.valueForString(example); + example = "FI-FI"; + Language enumFiFi = Language.valueForString(example); + example = "SK-SK"; + Language enumSkSk = Language.valueForString(example); example = "ES-MX"; Language enumEsMx = Language.valueForString(example); example = "FR-CA"; @@ -66,8 +92,25 @@ public class LanguageTests extends TestCase { Language enumDaDk = Language.valueForString(example); example = "NO-NO"; Language enumNoNo = Language.valueForString(example); + example = "EN-IN"; + Language enumEnIn = Language.valueForString(example); + example = "TH-TH"; + Language enumThTh = Language.valueForString(example); assertNotNull("EN-US returned null", enumEnUs); + assertNotNull("EN-SA returned null", enumEnSa); + assertNotNull("HE-IL returned null", enumHeIl); + assertNotNull("RO-RO returned null", enumRoRo); + assertNotNull("UK-UA returned null", enumUkUa); + assertNotNull("ID-ID returned null", enumIdId); + assertNotNull("VI-VN returned null", enumViVn); + assertNotNull("MS-MY returned null", enumMsMy); + assertNotNull("HI-IN returned null", enumHiIn); + assertNotNull("NL-BE returned null", enumNlBe); + assertNotNull("EL-GR returned null", enumElGr); + assertNotNull("HU-HU returned null", enumHuHu); + assertNotNull("FI-FI returned null", enumFiFi); + assertNotNull("SK-SK returned null", enumSkSk); assertNotNull("ES-MX returned null", enumEsMx); assertNotNull("FR-CA returned null", enumFrCa); assertNotNull("DE-DE returned null", enumDeDe); @@ -91,6 +134,8 @@ public class LanguageTests extends TestCase { assertNotNull("CS-CZ returned null", enumCsCz); assertNotNull("DA-DK returned null", enumDaDk); assertNotNull("NO-NO returned null", enumNoNo); + assertNotNull("EN-IN returned null", enumEnIn); + assertNotNull("TH-TH returned null", enumThTh); } /** @@ -130,6 +175,19 @@ public class LanguageTests extends TestCase { List<Language> enumTestList = new ArrayList<Language>(); enumTestList.add(Language.EN_US); + enumTestList.add(Language.EN_SA); + enumTestList.add(Language.HE_IL); + enumTestList.add(Language.RO_RO); + enumTestList.add(Language.UK_UA); + enumTestList.add(Language.ID_ID); + enumTestList.add(Language.VI_VN); + enumTestList.add(Language.MS_MY); + enumTestList.add(Language.HI_IN); + enumTestList.add(Language.NL_BE); + enumTestList.add(Language.EL_GR); + enumTestList.add(Language.HU_HU); + enumTestList.add(Language.FI_FI); + enumTestList.add(Language.SK_SK); enumTestList.add(Language.ES_MX); enumTestList.add(Language.FR_CA); enumTestList.add(Language.DE_DE); @@ -153,6 +211,8 @@ public class LanguageTests extends TestCase { enumTestList.add(Language.CS_CZ); enumTestList.add(Language.DA_DK); enumTestList.add(Language.NO_NO); + enumTestList.add(Language.EN_IN); + enumTestList.add(Language.TH_TH); 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/MetadataTypeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MetadataTypeTests.java new file mode 100644 index 000000000..c1aff1bdd --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/MetadataTypeTests.java @@ -0,0 +1,114 @@ +package com.smartdevicelink.test.rpc.enums; + +import com.smartdevicelink.proxy.rpc.enums.MetadataType; + +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.MetadataTags} + */ + +public class MetadataTypeTests extends TestCase{ + + /** + * Verifies that the enum values are not null upon valid assignment. + */ + public void testValidEnums () { + String example = "mediaTitle"; + MetadataType enumMediaTitle = MetadataType.valueForString(example); + example = "mediaArtist"; + MetadataType enumMediaArtist = MetadataType.valueForString(example); + example = "mediaAlbum"; + MetadataType enumMediaAlbum = MetadataType.valueForString(example); + example = "mediaYear"; + MetadataType enumMediaYear = MetadataType.valueForString(example); + example = "mediaGenre"; + MetadataType enumMediaGenre = MetadataType.valueForString(example); + example = "mediaStation"; + MetadataType enumMediaStation = MetadataType.valueForString(example); + example = "rating"; + MetadataType enumRating = MetadataType.valueForString(example); + example = "currentTemperature"; + MetadataType enumCurrentTemperature = MetadataType.valueForString(example); + example = "maximumTemperature"; + MetadataType enumMaximumTemperature = MetadataType.valueForString(example); + example = "minimumTemperature"; + MetadataType enumMinimumTemperature = MetadataType.valueForString(example); + example = "weatherTerm"; + MetadataType enumWeatherTerm = MetadataType.valueForString(example); + example = "humidity"; + MetadataType enumHumidity = MetadataType.valueForString(example); + + + assertNotNull("mediaTitle returned null", enumMediaTitle); + assertNotNull("mediaArtist returned null", enumMediaArtist); + assertNotNull("mediaAlbum returned null", enumMediaAlbum); + assertNotNull("mediaYear returned null", enumMediaYear); + assertNotNull("mediaGenre returned null", enumMediaGenre); + assertNotNull("mediaStation returned null", enumMediaStation); + assertNotNull("rating returned null", enumRating); + assertNotNull("currentTemperature returned null", enumCurrentTemperature); + assertNotNull("maximumTemperature returned null", enumMaximumTemperature); + assertNotNull("minimumTemperature returned null", enumMinimumTemperature); + assertNotNull("weatherTerm returned null", enumWeatherTerm); + assertNotNull("humidity returned null", enumHumidity); + } + + /** + * Verifies that an invalid assignment is null. + */ + public void testInvalidEnum () { + String example = "MEDIA_TITLEZ"; + try { + MetadataType temp = MetadataType.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 { + MetadataType temp = MetadataType.valueForString(example); + assertNull("Result of valueForString should be null.", temp); + } + catch (NullPointerException exception) { + fail("Null string throws NullPointerException."); + } + } + + /** + * Verifies the possible enum values of MetadataType. + */ + public void testListEnum() { + List<MetadataType> enumValueList = Arrays.asList(MetadataType.values()); + + List<MetadataType> enumTestList = new ArrayList<MetadataType>(); + enumTestList.add(MetadataType.MEDIA_TITLE); + enumTestList.add(MetadataType.MEDIA_ARTIST); + enumTestList.add(MetadataType.MEDIA_ALBUM); + enumTestList.add(MetadataType.MEDIA_YEAR); + enumTestList.add(MetadataType.MEDIA_GENRE); + enumTestList.add(MetadataType.MEDIA_STATION); + enumTestList.add(MetadataType.RATING); + enumTestList.add(MetadataType.CURRENT_TEMPERATURE); + enumTestList.add(MetadataType.MAXIMUM_TEMPERATURE); + enumTestList.add(MetadataType.MINIMUM_TEMPERATURE); + enumTestList.add(MetadataType.WEATHER_TERM); + enumTestList.add(MetadataType.HUMIDITY); + + 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/TouchTypeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TouchTypeTests.java index 06636a045..db9c417ef 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TouchTypeTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TouchTypeTests.java @@ -1,16 +1,16 @@ package com.smartdevicelink.test.rpc.enums; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import com.smartdevicelink.proxy.rpc.enums.TouchType; import junit.framework.TestCase; -import com.smartdevicelink.proxy.rpc.enums.TouchType; +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.TouchType} + * {@link com.smartdevicelink.proxy.rpc.enums.TouchType} */ public class TouchTypeTests extends TestCase { @@ -24,10 +24,14 @@ public class TouchTypeTests extends TestCase { TouchType enumMove = TouchType.valueForString(example); example = "END"; TouchType enumEnd = TouchType.valueForString(example); - + example = "CANCEL"; + TouchType enumCancel = TouchType.valueForString(example); + + assertNotNull("BEGIN returned null", enumBegin); assertNotNull("MOVE returned null", enumMove); assertNotNull("END returned null", enumEnd); + assertNotNull("CANCEL returned null", enumCancel); } /** @@ -69,6 +73,7 @@ public class TouchTypeTests extends TestCase { enumTestList.add(TouchType.BEGIN); enumTestList.add(TouchType.MOVE); enumTestList.add(TouchType.END); + enumTestList.add(TouchType.CANCEL); 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/VideoStreamingCodecTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VideoStreamingCodecTests.java new file mode 100644 index 000000000..b4aa8fd97 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VideoStreamingCodecTests.java @@ -0,0 +1,79 @@ +package com.smartdevicelink.test.rpc.enums; +import com.smartdevicelink.proxy.rpc.enums.VideoStreamingCodec; + +import junit.framework.TestCase; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class VideoStreamingCodecTests extends TestCase { + + /** + * Verifies that the enum values are not null upon valid assignment. + */ + public void testValidEnums () { + String example = "H264"; + VideoStreamingCodec enumH264 = VideoStreamingCodec.valueForString(example); + example = "H265"; + VideoStreamingCodec enumH265 = VideoStreamingCodec.valueForString(example); + example = "Theora"; + VideoStreamingCodec enumTheora = VideoStreamingCodec.valueForString(example); + example = "VP8"; + VideoStreamingCodec enumVP8 = VideoStreamingCodec.valueForString(example); + example = "VP9"; + VideoStreamingCodec enumVP9 = VideoStreamingCodec.valueForString(example); + + assertNotNull("H264 returned null", enumH264); + assertNotNull("H265 returned null", enumH265); + assertNotNull("Theora returned null", enumTheora); + assertNotNull("VP8 returned null", enumVP8); + assertNotNull("VP9 returned null", enumVP9); + } + + /** + * Verifies that an invalid assignment is null. + */ + public void testInvalidEnum () { + String example = "H234"; + try { + VideoStreamingCodec temp = VideoStreamingCodec.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 { + VideoStreamingCodec temp = VideoStreamingCodec.valueForString(example); + assertNull("Result of valueForString should be null.", temp); + } + catch (NullPointerException exception) { + fail("Null string throws NullPointerException."); + } + } + + + /** + * Verifies the possible enum values of TouchType. + */ + public void testListEnum() { + List<VideoStreamingCodec> enumValueList = Arrays.asList(VideoStreamingCodec.values()); + + List<VideoStreamingCodec> enumTestList = new ArrayList<VideoStreamingCodec>(); + enumTestList.add(VideoStreamingCodec.H264); + enumTestList.add(VideoStreamingCodec.H265); + enumTestList.add(VideoStreamingCodec.Theora); + enumTestList.add(VideoStreamingCodec.VP8); + enumTestList.add(VideoStreamingCodec.VP9); + + 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/VideoStreamingProtocolTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VideoStreamingProtocolTests.java new file mode 100644 index 000000000..be50d2c30 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VideoStreamingProtocolTests.java @@ -0,0 +1,82 @@ +package com.smartdevicelink.test.rpc.enums; + +import com.smartdevicelink.proxy.rpc.enums.VideoStreamingCodec; +import com.smartdevicelink.proxy.rpc.enums.VideoStreamingProtocol; + +import junit.framework.TestCase; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class VideoStreamingProtocolTests extends TestCase { + + /** + * Verifies that the enum values are not null upon valid assignment. + */ + public void testValidEnums () { + String example = "RAW"; + VideoStreamingProtocol enumRAW = VideoStreamingProtocol.valueForString(example); + example = "RTP"; + VideoStreamingProtocol enumRTP = VideoStreamingProtocol.valueForString(example); + example = "RTSP"; + VideoStreamingProtocol enumRTSP = VideoStreamingProtocol.valueForString(example); + example = "RTMP"; + VideoStreamingProtocol enumRTMP = VideoStreamingProtocol.valueForString(example); + example = "WEBM"; + VideoStreamingProtocol enumWEBM = VideoStreamingProtocol.valueForString(example); + + assertNotNull("RAW returned null", enumRAW); + assertNotNull("RTP returned null", enumRTP); + assertNotNull("RTSP returned null", enumRTSP); + assertNotNull("RTMP returned null", enumRTMP); + assertNotNull("WEBM returned null", enumWEBM); + } + + /** + * Verifies that an invalid assignment is null. + */ + public void testInvalidEnum () { + String example = "RAAW"; + try { + VideoStreamingProtocol temp = VideoStreamingProtocol.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 { + VideoStreamingProtocol temp = VideoStreamingProtocol.valueForString(example); + assertNull("Result of valueForString should be null.", temp); + } + catch (NullPointerException exception) { + fail("Null string throws NullPointerException."); + } + } + + + /** + * Verifies the possible enum values of TouchType. + */ + public void testListEnum() { + List<VideoStreamingProtocol> enumValueList = Arrays.asList(VideoStreamingProtocol.values()); + + List<VideoStreamingProtocol> enumTestList = new ArrayList<VideoStreamingProtocol>(); + enumTestList.add(VideoStreamingProtocol.RAW); + enumTestList.add(VideoStreamingProtocol.RTP); + enumTestList.add(VideoStreamingProtocol.RTSP); + enumTestList.add(VideoStreamingProtocol.RTMP); + enumTestList.add(VideoStreamingProtocol.WEBM); + + 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/OnSdlChoiceChosenTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnSdlChoiceChosenTests.java index 2725f4eae..77d2cdb21 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnSdlChoiceChosenTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnSdlChoiceChosenTests.java @@ -14,14 +14,16 @@ import com.smartdevicelink.test.Validator; /** * This is a unit test class for the SmartDeviceLink library project class : - * {@link com.smartdevicelink.rpc.OnSdlChoiceChosen} + * {@link com.smartdevicelink.proxy.rpc.OnSdlChoiceChosen} */ public class OnSdlChoiceChosenTests extends BaseRpcTests{ + SdlChoice sdlChoice; + @Override protected RPCMessage createMessage(){ OnSdlChoiceChosen msg = new OnSdlChoiceChosen(); - SdlChoice sdlChoice = msg.new SdlChoice(Test.GENERAL_CHOICE); + sdlChoice = msg.new SdlChoice(Test.GENERAL_CHOICE); msg.setTriggerSource(Test.GENERAL_TRIGGERSOURCE); msg.setSdlChoice(sdlChoice); @@ -45,7 +47,7 @@ public class OnSdlChoiceChosenTests extends BaseRpcTests{ try{ result.put(OnSdlChoiceChosen.KEY_TRIGGER_SOURCE, Test.GENERAL_TRIGGERSOURCE); - result.put(OnSdlChoiceChosen.KEY_SDL_CHOICE, Test.JSON_CHOICE); + result.put(OnSdlChoiceChosen.KEY_SDL_CHOICE, sdlChoice); }catch(JSONException e){ fail(Test.JSON_FAIL); } diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnStreamRPCTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnStreamRPCTests.java new file mode 100644 index 000000000..58db7d8eb --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnStreamRPCTests.java @@ -0,0 +1,76 @@ +package com.smartdevicelink.test.rpc.notifications; + +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.OnStreamRPC; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.Test; + +import org.json.JSONException; +import org.json.JSONObject; + +/** + * Created by austinkirk on 6/7/17. + */ + +public class OnStreamRPCTests extends BaseRpcTests { + @Override + protected RPCMessage createMessage(){ + OnStreamRPC msg = new OnStreamRPC(); + + msg.setBytesComplete(Test.GENERAL_LONG); + msg.setFileName(Test.GENERAL_STRING); + msg.setFileSize(Test.GENERAL_LONG); + + return msg; + } + + @Override + protected String getMessageType(){ + return RPCMessage.KEY_NOTIFICATION; + } + + @Override + protected String getCommandType(){ + return FunctionID.ON_STREAM_RPC.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion){ + JSONObject result = new JSONObject(); + + try{ + result.put(OnStreamRPC.KEY_BYTESCOMPLETE, Test.GENERAL_LONG); + result.put(OnStreamRPC.KEY_FILENAME, Test.GENERAL_STRING); + result.put(OnStreamRPC.KEY_FILESIZE, Test.GENERAL_LONG); + }catch(JSONException e){ + fail(Test.JSON_FAIL); + } + + return result; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + Long bytes = ((OnStreamRPC) msg).getBytesComplete(); + String fileName = ((OnStreamRPC) msg).getFileName(); + Long fileSize = ((OnStreamRPC) msg).getFileSize(); + + // Valid Tests + assertEquals(Test.MATCH, Test.GENERAL_LONG, bytes); + assertEquals(Test.MATCH, Test.GENERAL_STRING, fileName); + assertEquals(Test.MATCH, Test.GENERAL_LONG, fileSize); + + // Invalid/Null Tests + OnStreamRPC msg = new OnStreamRPC(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + + assertNull(Test.NULL, msg.getBytesComplete()); + assertNull(Test.NULL, msg.getFileName()); + assertNull(Test.NULL, msg.getFileSize()); + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnWayPointChangeTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnWayPointChangeTests.java new file mode 100644 index 000000000..dcc02dafd --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnWayPointChangeTests.java @@ -0,0 +1,86 @@ +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.GetWayPointsResponse; +import com.smartdevicelink.proxy.rpc.LocationDetails; +import com.smartdevicelink.proxy.rpc.OnWayPointChange; +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; + +/** + * Created by austinkirk on 6/7/17. + */ + +public class OnWayPointChangeTests extends BaseRpcTests { + @Override + protected RPCMessage createMessage(){ + OnWayPointChange msg = new OnWayPointChange(); + + List<LocationDetails> list = new ArrayList<>(); + list.add(Test.GENERAL_LOCATIONDETAILS); + list.add(Test.GENERAL_LOCATIONDETAILS); + + msg.setWayPoints(list); + + return msg; + } + + @Override + protected String getMessageType(){ + return RPCMessage.KEY_NOTIFICATION; + } + + @Override + protected String getCommandType(){ + return FunctionID.ON_WAY_POINT_CHANGE.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion){ + JSONObject result = new JSONObject(); + + JSONArray jsonArray = new JSONArray(); + try { + jsonArray.put(JsonRPCMarshaller.serializeHashtable(Test.GENERAL_LOCATIONDETAILS.getStore())); + jsonArray.put(JsonRPCMarshaller.serializeHashtable(Test.GENERAL_LOCATIONDETAILS.getStore())); + } catch (JSONException e) { + e.printStackTrace(); + } + + try { + result.put(GetWayPointsResponse.KEY_WAY_POINTS, jsonArray); + } catch (JSONException e) { + e.printStackTrace(); + } + + return result; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + List<LocationDetails> list = ((OnWayPointChange) msg).getWayPoints(); + + // Valid Tests + assertEquals(Test.MATCH, Test.GENERAL_LOCATIONDETAILS, list.get(0)); + assertEquals(Test.MATCH, Test.GENERAL_LOCATIONDETAILS, list.get(1)); + + // Invalid/Null Tests + OnWayPointChange msg = new OnWayPointChange(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + + assertNull(Test.NULL, msg.getWayPoints()); + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/DialNumberTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/DialNumberTests.java new file mode 100644 index 000000000..40a8d432f --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/DialNumberTests.java @@ -0,0 +1,97 @@ +package com.smartdevicelink.test.rpc.requests; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.DialNumber; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; + +/** + * Created by austinkirk on 6/6/17. + */ + +public class DialNumberTests extends BaseRpcTests { + + private final String TEST_NUMBER = "5558675309"; + + @Override + protected RPCMessage createMessage(){ + DialNumber msg = new DialNumber(); + + msg.setNumber(TEST_NUMBER); + + return msg; + } + + @Override + protected String getMessageType(){ + return RPCMessage.KEY_REQUEST; + } + + @Override + protected String getCommandType(){ + return FunctionID.DIAL_NUMBER.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion){ + JSONObject result = new JSONObject(); + + try{ + result.put(DialNumber.KEY_NUMBER, TEST_NUMBER); + }catch(JSONException e){ + fail(Test.JSON_FAIL); + } + + return result; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + String testNumber = ((DialNumber) msg).getNumber(); + + // Valid Tests + assertEquals(Test.MATCH, TEST_NUMBER, testNumber); + // Invalid/Null Tests + DialNumber msg = new DialNumber(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + + assertNull(Test.NULL, msg.getNumber()); + } + + /** + * Tests a valid JSON construction of this RPC message. + */ + public void testJsonConstructor () { + JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); + assertNotNull(Test.NOT_NULL, commandJson); + + try { + Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); + DialNumber cmd = new DialNumber(hash); + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); + assertNotNull(Test.NOT_NULL, body); + + // Test everything in the json body. + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); + + JSONObject parameters = JsonUtils.readJsonObjectFromJsonObject(body, RPCMessage.KEY_PARAMETERS); + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, DialNumber.KEY_NUMBER), cmd.getNumber()); + } catch (JSONException e) { + fail(Test.JSON_FAIL); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetSystemCapabilityTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetSystemCapabilityTests.java new file mode 100644 index 000000000..78d4507da --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetSystemCapabilityTests.java @@ -0,0 +1,95 @@ +package com.smartdevicelink.test.rpc.requests; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.GetSystemCapability; +import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; + +public class GetSystemCapabilityTests extends BaseRpcTests { + + @Override + protected RPCMessage createMessage(){ + GetSystemCapability msg = new GetSystemCapability(); + + msg.setSystemCapabilityType(Test.GENERAL_SYSTEMCAPABILITYTYPE); + + return msg; + } + + @Override + protected String getMessageType(){ + return RPCMessage.KEY_REQUEST; + } + + @Override + protected String getCommandType(){ + return FunctionID.GET_SYSTEM_CAPABILITY.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion){ + JSONObject result = new JSONObject(); + + try{ + result.put(GetSystemCapability.KEY_SYSTEM_CAPABILITY_TYPE, Test.GENERAL_SYSTEMCAPABILITYTYPE); + }catch(JSONException e){ + fail(Test.JSON_FAIL); + } + + return result; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + SystemCapabilityType testType = ( (GetSystemCapability) msg ).getSystemCapabilityType(); + + // Valid Tests + assertEquals(Test.MATCH, Test.GENERAL_SYSTEMCAPABILITYTYPE, testType); + + // Invalid/Null Tests + GetSystemCapability msg = new GetSystemCapability(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + + assertNull(Test.NULL, msg.getSystemCapabilityType()); + } + + /** + * Tests a valid JSON construction of this RPC message. + */ + public void testJsonConstructor () { + JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); + assertNotNull(Test.NOT_NULL, commandJson); + + try { + Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); + GetSystemCapability cmd = new GetSystemCapability(hash); + + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); + assertNotNull(Test.NOT_NULL, body); + + // Test everything in the json body. + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); + + JSONObject parameters = JsonUtils.readJsonObjectFromJsonObject(body, RPCMessage.KEY_PARAMETERS); + + assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(parameters, GetSystemCapability.KEY_SYSTEM_CAPABILITY_TYPE).toString(), cmd.getSystemCapabilityType().toString()); + }catch (JSONException e) { + fail(Test.JSON_FAIL); + } + } +}
\ No newline at end of file diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetWayPointsTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetWayPointsTests.java new file mode 100644 index 000000000..bf0531685 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetWayPointsTests.java @@ -0,0 +1,96 @@ +package com.smartdevicelink.test.rpc.requests; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.GetWayPoints; +import com.smartdevicelink.proxy.rpc.enums.WayPointType; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; + +/** + * Created by austinkirk on 6/6/17. + */ + +public class GetWayPointsTests extends BaseRpcTests { + @Override + protected RPCMessage createMessage(){ + GetWayPoints msg = new GetWayPoints(); + + msg.setWayPointType(WayPointType.DESTINATION); + + return msg; + } + + @Override + protected String getMessageType(){ + return RPCMessage.KEY_REQUEST; + } + + @Override + protected String getCommandType(){ + return FunctionID.GET_WAY_POINTS.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion){ + JSONObject result = new JSONObject(); + + try{ + result.put(GetWayPoints.KEY_WAY_POINT_TYPE, WayPointType.DESTINATION); + }catch(JSONException e){ + fail(Test.JSON_FAIL); + } + + return result; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + WayPointType testType = ( (GetWayPoints) msg ).getWayPointType(); + + // Valid Tests + assertEquals(Test.MATCH, WayPointType.DESTINATION, testType); + + // Invalid/Null Tests + GetWayPoints msg = new GetWayPoints(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + + assertNull(Test.NULL, msg.getWayPointType()); + } + + /** + * Tests a valid JSON construction of this RPC message. + */ + public void testJsonConstructor () { + JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); + assertNotNull(Test.NOT_NULL, commandJson); + + try { + Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); + GetWayPoints cmd = new GetWayPoints(hash); + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); + assertNotNull(Test.NOT_NULL, body); + + // Test everything in the json body. + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); + + JSONObject parameters = JsonUtils.readJsonObjectFromJsonObject(body, RPCMessage.KEY_PARAMETERS); + assertEquals(Test.MATCH, WayPointType.valueForString(JsonUtils.readStringFromJsonObject(parameters, GetWayPoints.KEY_WAY_POINT_TYPE)), cmd.getWayPointType()); + } catch (JSONException e) { + fail(Test.JSON_FAIL); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SendHapticDataTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SendHapticDataTests.java new file mode 100644 index 000000000..7c3b0ed90 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SendHapticDataTests.java @@ -0,0 +1,86 @@ +package com.smartdevicelink.test.rpc.requests; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.HapticRect; +import com.smartdevicelink.proxy.rpc.SendHapticData; +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; + +/** + * Created by brettywhite on 8/9/17. + */ + +public class SendHapticDataTests extends BaseRpcTests { + + private SendHapticData msg; + + @Override + protected RPCMessage createMessage(){ + msg = new SendHapticData(); + + List<HapticRect> list = new ArrayList<>(); + list.add(Test.GENERAL_HAPTIC_RECT); + + msg.setHapticRectData(list); + + return msg; + } + + @Override + protected String getMessageType(){ + return RPCMessage.KEY_REQUEST; + } + + @Override + protected String getCommandType(){ + return FunctionID.SEND_HAPTIC_DATA.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion){ + JSONObject result = new JSONObject(); + + JSONArray jsonArray = new JSONArray(); + try { + jsonArray.put(JsonRPCMarshaller.serializeHashtable(Test.GENERAL_HAPTIC_RECT.getStore())); + } catch (JSONException e) { + e.printStackTrace(); + } + + try { + result.put(SendHapticData.KEY_HAPTIC_RECT_DATA, jsonArray); + } catch (JSONException e) { + e.printStackTrace(); + } + + return result; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + List<HapticRect> list = msg.getHapticRectData(); + + // Valid Tests + assertEquals(Test.MATCH, Test.GENERAL_HAPTIC_RECT, list.get(0)); + + // Invalid/Null Tests + SendHapticData msg = new SendHapticData(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + + assertNull(Test.NULL, msg.getHapticRectData()); + } + +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/ShowTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/ShowTests.java index 5899d9015..9c7a681df 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/ShowTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/ShowTests.java @@ -12,6 +12,7 @@ import com.smartdevicelink.marshal.JsonRPCMarshaller; import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCMessage; import com.smartdevicelink.proxy.rpc.Image; +import com.smartdevicelink.proxy.rpc.MetadataTags; import com.smartdevicelink.proxy.rpc.Show; import com.smartdevicelink.proxy.rpc.SoftButton; import com.smartdevicelink.proxy.rpc.enums.TextAlignment; @@ -23,12 +24,12 @@ import com.smartdevicelink.test.json.rpc.JsonFileReader; /** * This is a unit test class for the SmartDeviceLink library project class : - * {@link com.smartdevicelink.rpc.Show} + * {@link com.smartdevicelink.proxy.rpc.Show} */ public class ShowTests extends BaseRpcTests { @Override - protected RPCMessage createMessage() { + protected RPCMessage createMessage() { Show msg = new Show(); msg.setMainField1(Test.GENERAL_STRING); @@ -42,6 +43,7 @@ public class ShowTests extends BaseRpcTests { msg.setSecondaryGraphic(Test.GENERAL_IMAGE); msg.setCustomPresets(Test.GENERAL_STRING_LIST); msg.setSoftButtons(Test.GENERAL_SOFTBUTTON_LIST); + msg.setMetadataTags(Test.GENERAL_METADATASTRUCT); return msg; } @@ -66,12 +68,13 @@ public class ShowTests extends BaseRpcTests { result.put(Show.KEY_MAIN_FIELD_3, Test.GENERAL_STRING); result.put(Show.KEY_MAIN_FIELD_4, Test.GENERAL_STRING); result.put(Show.KEY_STATUS_BAR, Test.GENERAL_STRING); - result.put(Show.KEY_MEDIA_TRACK, Test.GENERAL_STRING); + result.put(Show.KEY_MEDIA_TRACK, Test.GENERAL_STRING); result.put(Show.KEY_GRAPHIC, Test.JSON_IMAGE); result.put(Show.KEY_SECONDARY_GRAPHIC, Test.JSON_IMAGE); result.put(Show.KEY_ALIGNMENT, Test.GENERAL_TEXTALIGNMENT); - result.put(Show.KEY_CUSTOM_PRESETS, JsonUtils.createJsonArray(Test.GENERAL_STRING_LIST)); + result.put(Show.KEY_CUSTOM_PRESETS, JsonUtils.createJsonArray(Test.GENERAL_STRING_LIST)); result.put(Show.KEY_SOFT_BUTTONS, Test.JSON_SOFTBUTTONS); + result.put(Show.KEY_METADATA_TAGS, Test.GENERAL_METADATASTRUCT.serializeJSON()); } catch (JSONException e) { fail(Test.JSON_FAIL); } @@ -92,6 +95,7 @@ public class ShowTests extends BaseRpcTests { TextAlignment testAlignment = ( (Show) msg ).getAlignment(); List<SoftButton> testSoftButtons = ( (Show) msg ).getSoftButtons(); List<String> testCustomPresets = ( (Show) msg ).getCustomPresets(); + MetadataTags testMetadata = ( (Show) msg ).getMetadataTags(); // Valid Tests assertEquals(Test.MATCH, Test.GENERAL_STRING, testTrack); @@ -102,6 +106,7 @@ public class ShowTests extends BaseRpcTests { assertEquals(Test.MATCH, Test.GENERAL_STRING, testText3); assertEquals(Test.MATCH, Test.GENERAL_STRING, testText4); assertEquals(Test.MATCH, Test.GENERAL_STRING_LIST.size(), testCustomPresets.size()); + assertEquals(Test.MATCH, Test.GENERAL_METADATASTRUCT, testMetadata); assertTrue(Test.TRUE, Validator.validateSoftButtons(Test.GENERAL_SOFTBUTTON_LIST, testSoftButtons)); assertTrue(Test.TRUE, Validator.validateImage(Test.GENERAL_IMAGE, testGraphic2)); assertTrue(Test.TRUE, Validator.validateImage(Test.GENERAL_IMAGE, testGraphic1)); @@ -121,7 +126,8 @@ public class ShowTests extends BaseRpcTests { assertNull(Test.NULL, msg.getSecondaryGraphic()); assertNull(Test.NULL, msg.getCustomPresets()); assertNull(Test.NULL, msg.getMediaTrack()); - assertNull(Test.NULL, msg.getSoftButtons()); + assertNull(Test.NULL, msg.getSoftButtons()); + assertNull(Test.NULL, msg.getMetadataTags()); } /** @@ -130,24 +136,24 @@ public class ShowTests extends BaseRpcTests { public void testJsonConstructor () { JSONObject commandJson = JsonFileReader.readId(this.mContext,getCommandType(), getMessageType()); assertNotNull(Test.NOT_NULL, commandJson); - + try { Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); Show cmd = new Show(hash); - + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); assertNotNull(Test.NOT_NULL, body); - + // Test everything in the json body. assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); JSONObject parameters = JsonUtils.readJsonObjectFromJsonObject(body, RPCMessage.KEY_PARAMETERS); - + JSONObject graphic = JsonUtils.readJsonObjectFromJsonObject(parameters, Show.KEY_GRAPHIC); Image referenceGraphic = new Image(JsonRPCMarshaller.deserializeJSONObject(graphic)); assertTrue(Test.TRUE, Validator.validateImage(referenceGraphic, cmd.getGraphic())); - + List<String> customPresetsList = JsonUtils.readStringListFromJsonObject(parameters, Show.KEY_CUSTOM_PRESETS); List<String> testPresetsList = cmd.getCustomPresets(); assertEquals(Test.MATCH, customPresetsList.size(), testPresetsList.size()); @@ -160,11 +166,12 @@ public class ShowTests extends BaseRpcTests { assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, Show.KEY_STATUS_BAR), cmd.getStatusBar()); assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, Show.KEY_ALIGNMENT), cmd.getAlignment().toString()); assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, Show.KEY_MEDIA_TRACK), cmd.getMediaTrack()); + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, Show.KEY_METADATA_TAGS), cmd.getMetadataTags()); JSONObject secondaryGraphic = JsonUtils.readJsonObjectFromJsonObject(parameters, Show.KEY_SECONDARY_GRAPHIC); Image referenceSecondaryGraphic = new Image(JsonRPCMarshaller.deserializeJSONObject(secondaryGraphic)); assertTrue(Test.TRUE, Validator.validateImage(referenceSecondaryGraphic, cmd.getSecondaryGraphic())); - + JSONArray softButtonArray = JsonUtils.readJsonArrayFromJsonObject(parameters, Show.KEY_SOFT_BUTTONS); List<SoftButton> softButtonList = new ArrayList<SoftButton>(); for (int index = 0; index < softButtonArray.length(); index++) { @@ -172,9 +179,9 @@ public class ShowTests extends BaseRpcTests { softButtonList.add(chunk); } assertTrue(Test.TRUE, Validator.validateSoftButtons(softButtonList, cmd.getSoftButtons())); - + } catch (JSONException e) { fail(Test.JSON_FAIL); - } - } + } + } }
\ No newline at end of file diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeWayPointsTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeWayPointsTests.java new file mode 100644 index 000000000..06b6ee330 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeWayPointsTests.java @@ -0,0 +1,73 @@ +package com.smartdevicelink.test.rpc.requests; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.SubscribeWayPoints; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; + +/** + * Created by austinkirk on 6/7/17. + */ + +public class SubscribeWayPointsTests extends BaseRpcTests { + @Override + protected RPCMessage createMessage() { + return new SubscribeWayPoints(); + } + + @Override + protected String getMessageType() { + return RPCMessage.KEY_REQUEST; + } + + @Override + protected String getCommandType() { + return FunctionID.SUBSCRIBE_WAY_POINTS.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion) { + return new JSONObject(); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Invalid/Null Tests + SubscribeWayPoints msg = new SubscribeWayPoints(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + } + + /** + * Tests a valid JSON construction of this RPC message. + */ + public void testJsonConstructor () { + JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); + assertNotNull(Test.NOT_NULL, commandJson); + + try { + Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); + SubscribeWayPoints cmd = new SubscribeWayPoints(hash); + + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); + assertNotNull(Test.NOT_NULL, body); + + // Test everything in the json body. + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); + } catch (JSONException e) { + fail(Test.JSON_FAIL); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeWayPointsTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeWayPointsTests.java new file mode 100644 index 000000000..ac4afbbea --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeWayPointsTests.java @@ -0,0 +1,73 @@ +package com.smartdevicelink.test.rpc.requests; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.UnsubscribeWayPoints; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; + +/** + * Created by austinkirk on 6/7/17. + */ + +public class UnsubscribeWayPointsTests extends BaseRpcTests { + @Override + protected RPCMessage createMessage() { + return new UnsubscribeWayPoints(); + } + + @Override + protected String getMessageType() { + return RPCMessage.KEY_REQUEST; + } + + @Override + protected String getCommandType() { + return FunctionID.UNSUBSCRIBE_WAY_POINTS.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion) { + return new JSONObject(); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Invalid/Null Tests + UnsubscribeWayPoints msg = new UnsubscribeWayPoints(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + } + + /** + * Tests a valid JSON construction of this RPC message. + */ + public void testJsonConstructor () { + JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); + assertNotNull(Test.NOT_NULL, commandJson); + + try { + Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); + UnsubscribeWayPoints cmd = new UnsubscribeWayPoints(hash); + + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); + assertNotNull(Test.NOT_NULL, body); + + // Test everything in the json body. + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); + } catch (JSONException e) { + fail(Test.JSON_FAIL); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/DialNumberResponseTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/DialNumberResponseTests.java new file mode 100644 index 000000000..bf625f19a --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/DialNumberResponseTests.java @@ -0,0 +1,74 @@ +package com.smartdevicelink.test.rpc.responses; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.DialNumberResponse; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; + +/** + * Created by austinkirk on 6/6/17. + */ + +public class DialNumberResponseTests extends BaseRpcTests { + + @Override + protected RPCMessage createMessage() { + return new DialNumberResponse(); + } + + @Override + protected String getMessageType() { + return RPCMessage.KEY_RESPONSE; + } + + @Override + protected String getCommandType() { + return FunctionID.DIAL_NUMBER.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion) { + return new JSONObject(); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Invalid/Null Tests + DialNumberResponse msg = new DialNumberResponse(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + } + + /** + * Tests a valid JSON construction of this RPC message. + */ + public void testJsonConstructor () { + JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); + assertNotNull(Test.NOT_NULL, commandJson); + + try { + Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); + DialNumberResponse cmd = new DialNumberResponse(hash); + + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); + assertNotNull(Test.NOT_NULL, body); + + // Test everything in the json body. + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); + } catch (JSONException e) { + e.printStackTrace(); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetSystemCapabilityResponseTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetSystemCapabilityResponseTests.java new file mode 100644 index 000000000..b9fd85a8e --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetSystemCapabilityResponseTests.java @@ -0,0 +1,97 @@ +package com.smartdevicelink.test.rpc.responses; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.GetSystemCapabilityResponse; +import com.smartdevicelink.proxy.rpc.SystemCapability; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; + +public class GetSystemCapabilityResponseTests extends BaseRpcTests { + + @Override + protected RPCMessage createMessage(){ + GetSystemCapabilityResponse msg = new GetSystemCapabilityResponse(); + + msg.setSystemCapability(Test.GENERAL_SYSTEMCAPABILITY); + + return msg; + } + + @Override + protected String getMessageType(){ + return RPCMessage.KEY_RESPONSE; + } + + @Override + protected String getCommandType(){ + return FunctionID.GET_SYSTEM_CAPABILITY.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion){ + JSONObject result = new JSONObject(); + + try{ + result.put(GetSystemCapabilityResponse.KEY_SYSTEM_CAPABILITY, JsonRPCMarshaller.serializeHashtable(Test.GENERAL_SYSTEMCAPABILITY.getStore())); + }catch(JSONException e){ + fail(Test.JSON_FAIL); + } + + return result; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + SystemCapability testCapability = ( (GetSystemCapabilityResponse) msg ).getSystemCapability(); + + // Valid Tests + assertEquals(Test.MATCH, Test.GENERAL_SYSTEMCAPABILITY.getSystemCapabilityType(), testCapability.getSystemCapabilityType()); + + // Invalid/Null Tests + GetSystemCapabilityResponse msg = new GetSystemCapabilityResponse(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + + assertNull(Test.NULL, msg.getSystemCapability()); + } + + /** + * Tests a valid JSON construction of this RPC message. + */ + public void testJsonConstructor () { + JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); + assertNotNull(Test.NOT_NULL, commandJson); + + try { + Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); + GetSystemCapabilityResponse cmd = new GetSystemCapabilityResponse(hash); + + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); + assertNotNull(Test.NOT_NULL, body); + + // Test everything in the json body. + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); + + JSONObject parameters = JsonUtils.readJsonObjectFromJsonObject(body, RPCMessage.KEY_PARAMETERS); + + SystemCapability testCapability = new SystemCapability(JsonRPCMarshaller.deserializeJSONObject((JSONObject) JsonUtils.readObjectFromJsonObject(parameters, GetSystemCapabilityResponse.KEY_SYSTEM_CAPABILITY))); + SystemCapability cmdCapability = cmd.getSystemCapability(); + assertEquals(Test.MATCH, testCapability.getSystemCapabilityType(), cmdCapability.getSystemCapabilityType()); + } catch (JSONException e) { + e.printStackTrace(); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetWayPointsResponseTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetWayPointsResponseTests.java new file mode 100644 index 000000000..57d8499df --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetWayPointsResponseTests.java @@ -0,0 +1,123 @@ +package com.smartdevicelink.test.rpc.responses; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.GetWayPointsResponse; +import com.smartdevicelink.proxy.rpc.LocationDetails; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.List; + +/** + * Created by austinkirk on 6/6/17. + */ + +public class GetWayPointsResponseTests extends BaseRpcTests { + List<LocationDetails> waypoints = new ArrayList<LocationDetails>(); + + @Override + protected RPCMessage createMessage() { + + waypoints.add(Test.GENERAL_LOCATIONDETAILS); + waypoints.add(Test.GENERAL_LOCATIONDETAILS); + + GetWayPointsResponse getWayPointsResponse = new GetWayPointsResponse(); + getWayPointsResponse.setWayPoints(waypoints); + + return getWayPointsResponse; + } + + @Override + protected String getMessageType() { + return RPCMessage.KEY_RESPONSE; + } + + @Override + protected String getCommandType() { + return FunctionID.GET_WAY_POINTS.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion) { + JSONObject result = new JSONObject(); + + JSONArray jsonArray = new JSONArray(); + try { + jsonArray.put(JsonRPCMarshaller.serializeHashtable(Test.GENERAL_LOCATIONDETAILS.getStore())); + jsonArray.put(JsonRPCMarshaller.serializeHashtable(Test.GENERAL_LOCATIONDETAILS.getStore())); + } catch (JSONException e) { + e.printStackTrace(); + } + + try { + result.put(GetWayPointsResponse.KEY_WAY_POINTS, jsonArray); + } catch (JSONException e) { + e.printStackTrace(); + } + + return result; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + + // Test Values + List<LocationDetails> testWPs = ( (GetWayPointsResponse) msg ).getWayPoints(); + + // Valid Tests + assertEquals(Test.MATCH, waypoints, testWPs); + + // Invalid/Null Tests + GetWayPointsResponse msg = new GetWayPointsResponse(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + + assertNull(Test.NULL, msg.getWayPoints()); + } + + /** + * Tests a valid JSON construction of this RPC message. + */ + public void testJsonConstructor () { + JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); + assertNotNull(Test.NOT_NULL, commandJson); + + try { + Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); + GetWayPointsResponse cmd = new GetWayPointsResponse(hash); + + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); + assertNotNull(Test.NOT_NULL, body); + + // Test everything in the json body. + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); + + JSONObject parameters = JsonUtils.readJsonObjectFromJsonObject(body, RPCMessage.KEY_PARAMETERS); + + JSONArray locArray = JsonUtils.readJsonArrayFromJsonObject(parameters, GetWayPointsResponse.KEY_WAY_POINTS); + List<LocationDetails> locationList = new ArrayList<LocationDetails>(); + for (int index = 0; index < locArray.length(); index++) { + LocationDetails det = new LocationDetails(JsonRPCMarshaller.deserializeJSONObject( (JSONObject) locArray.get(index))); + locationList.add(det); + } + List<LocationDetails> dets = cmd.getWayPoints(); + assertEquals(Test.MATCH, locationList.size(), dets.size()); + + } catch (JSONException e) { + e.printStackTrace(); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/ShowResponseTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/ShowResponseTest.java index b012d1944..301e330e7 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/ShowResponseTest.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/ShowResponseTest.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.ShowResponse} + * {@link com.smartdevicelink.proxy.rpc.ShowResponse} */ public class ShowResponseTest extends BaseRpcTests { diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/StreamRPCResponseTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/StreamRPCResponseTests.java new file mode 100644 index 000000000..47801ea90 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/StreamRPCResponseTests.java @@ -0,0 +1,89 @@ +package com.smartdevicelink.test.rpc.responses; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.StreamRPCResponse; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; + +/** + * Created by austinkirk on 6/7/17. + */ + +public class StreamRPCResponseTests extends BaseRpcTests { + @Override + protected RPCMessage createMessage(){ + StreamRPCResponse response = new StreamRPCResponse(); + response.setFileSize((Long) Test.GENERAL_LONG); + response.setFileName(Test.GENERAL_STRING); + return response; + } + + @Override + protected String getMessageType(){ + return RPCMessage.KEY_RESPONSE; + } + + @Override + protected String getCommandType(){ + return FunctionID.STREAM_RPC.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion){ + JSONObject result = new JSONObject(); + + try { + result.put(StreamRPCResponse.KEY_FILESIZE, (Long) Test.GENERAL_LONG); + result.put(StreamRPCResponse.KEY_FILENAME, Test.GENERAL_STRING); + } catch (JSONException e) { + e.printStackTrace(); + } + + return result; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Invalid/Null Tests + StreamRPCResponse msg = new StreamRPCResponse(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + } + + /** + * Tests a valid JSON construction of this RPC message. + */ + public void testJsonConstructor () { + JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); + assertNotNull(Test.NOT_NULL, commandJson); + + try { + Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); + StreamRPCResponse cmd = new StreamRPCResponse(hash); + + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); + assertNotNull(Test.NOT_NULL, body); + + // Test everything in the json body. + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); + + JSONObject parameters = JsonUtils.readJsonObjectFromJsonObject(body, RPCMessage.KEY_PARAMETERS); + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, StreamRPCResponse.KEY_FILENAME), cmd.getFileName()); + assertEquals(Test.MATCH, JsonUtils.readLongFromJsonObject(parameters, StreamRPCResponse.KEY_FILESIZE), cmd.getFileSize()); + } catch (JSONException e) { + e.printStackTrace(); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeWaypointsResponseTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeWaypointsResponseTests.java new file mode 100644 index 000000000..a43220dce --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeWaypointsResponseTests.java @@ -0,0 +1,73 @@ +package com.smartdevicelink.test.rpc.responses; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.SubscribeWayPointsResponse; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; + +/** + * Created by austinkirk on 6/7/17. + */ + +public class SubscribeWaypointsResponseTests extends BaseRpcTests { + @Override + protected RPCMessage createMessage(){ + return new SubscribeWayPointsResponse(); + } + + @Override + protected String getMessageType(){ + return RPCMessage.KEY_RESPONSE; + } + + @Override + protected String getCommandType(){ + return FunctionID.SUBSCRIBE_WAY_POINTS.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion){ + return new JSONObject(); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Invalid/Null Tests + SubscribeWayPointsResponse msg = new SubscribeWayPointsResponse(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + } + + /** + * Tests a valid JSON construction of this RPC message. + */ + public void testJsonConstructor () { + JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); + assertNotNull(Test.NOT_NULL, commandJson); + + try { + Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); + SubscribeWayPointsResponse cmd = new SubscribeWayPointsResponse(hash); + + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); + assertNotNull(Test.NOT_NULL, body); + + // Test everything in the json body. + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); + assertEquals("Correlation ID doesn't match input ID", JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); + } catch (JSONException e) { + e.printStackTrace(); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeWayPointsResponseTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeWayPointsResponseTests.java new file mode 100644 index 000000000..b8b69be60 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeWayPointsResponseTests.java @@ -0,0 +1,73 @@ +package com.smartdevicelink.test.rpc.responses; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.UnsubscribeWayPointsResponse; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; + +/** + * Created by austinkirk on 6/7/17. + */ + +public class UnsubscribeWayPointsResponseTests extends BaseRpcTests{ + @Override + protected RPCMessage createMessage(){ + return new UnsubscribeWayPointsResponse(); + } + + @Override + protected String getMessageType(){ + return RPCMessage.KEY_RESPONSE; + } + + @Override + protected String getCommandType(){ + return FunctionID.UNSUBSCRIBE_WAY_POINTS.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion){ + return new JSONObject(); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Invalid/Null Tests + UnsubscribeWayPointsResponse msg = new UnsubscribeWayPointsResponse(); + assertNotNull(Test.NOT_NULL, msg); + testNullBase(msg); + } + + /** + * Tests a valid JSON construction of this RPC message. + */ + public void testJsonConstructor () { + JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); + assertNotNull(Test.NOT_NULL, commandJson); + + try { + Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); + UnsubscribeWayPointsResponse cmd = new UnsubscribeWayPointsResponse(hash); + + JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); + assertNotNull(Test.NOT_NULL, body); + + // Test everything in the json body. + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); + assertEquals("Correlation ID doesn't match input ID", JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); + } catch (JSONException e) { + e.printStackTrace(); + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java index 6c5f663ba..e05091c44 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java @@ -1,6 +1,7 @@ package com.smartdevicelink.test.streaming; import java.io.BufferedInputStream; +import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; @@ -42,30 +43,27 @@ public class AbstractPacketizerTests extends TestCase { MockPacketizer testPacketizer1 = null; MockPacketizer testPacketizer2 = null; MockPacketizer testPacketizer3 = null; - MockPacketizer testPacketizer4 = null; IStreamListener testListener = new MockStreamListener(); - try { - - URL url = new URL("ftp://mirror.csclub.uwaterloo.ca/index.html"); - URLConnection urlConnection = url.openConnection(); - testInputStream = new BufferedInputStream(urlConnection.getInputStream()); - + testInputStream = new BufferedInputStream(new ByteArrayInputStream("sdl streaming test".getBytes())); MockInterfaceBroker _interfaceBroker = new MockInterfaceBroker(); BaseTransportConfig _transportConfig = new BTTransportConfig(true); - testSdlSession = SdlSession.createSession(testWiproVersion,_interfaceBroker, _transportConfig); - testPacketizer1 = new MockPacketizer(testListener, testInputStream, testSessionType, testSessionId, testSdlSession); testPacketizer2 = new MockPacketizer(null, null, null, testSessionId, testSdlSession); testPacketizer3 = new MockPacketizer(testListener, testInputStream, testRpcRequest, testSessionType, testSessionId, testWiproVersion, testSdlSession); - testPacketizer4 = new MockPacketizer(null, null, null, null, testSessionId, testWiproVersion, null); + try { + new MockPacketizer(null, null, null, null, testSessionId, testWiproVersion, null); + fail("Exception should be thrown"); + }catch(Exception e) { + assertTrue(e instanceof IllegalArgumentException); + } + // Valid Tests assertNotNull(Test.NOT_NULL, testPacketizer1); assertNotNull(Test.NOT_NULL, testPacketizer2); assertNotNull(Test.NOT_NULL, testPacketizer3); - assertNotNull(Test.NOT_NULL, testPacketizer4); assertEquals(Test.MATCH, testListener, testPacketizer1.getListener()); assertEquals(Test.MATCH, testInputStream, testPacketizer1.getInputStream()); @@ -83,13 +81,9 @@ public class AbstractPacketizerTests extends TestCase { assertNull(Test.NULL, testPacketizer2.getListener()); assertNull(Test.NULL, testPacketizer2.getInputStream()); assertNull(Test.NULL, testPacketizer2.getSessionType()); - assertNull(Test.NULL, testPacketizer4.getListener()); - assertNull(Test.NULL, testPacketizer4.getInputStream()); - assertNull(Test.NULL, testPacketizer4.getSessionType()); - assertNull(Test.NULL, testPacketizer4.getRPCRequest()); - assertNull(Test.NULL, testPacketizer4.getSdlSession()); } catch (IOException e) { + e.printStackTrace(); fail("IOException was thrown."); } } @@ -179,4 +173,4 @@ class MockPacketizer extends AbstractPacketizer { @Override public void pause() { } @Override public void resume() { } -}
\ No newline at end of file +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamPacketizerTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamPacketizerTests.java index 2f4661aa8..218e904b3 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamPacketizerTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamPacketizerTests.java @@ -1,6 +1,7 @@ package com.smartdevicelink.test.streaming; import java.io.BufferedInputStream; +import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; @@ -36,14 +37,9 @@ public class StreamPacketizerTests extends TestCase { IStreamListener testListener = new MockStreamListener(); MockInterfaceBroker _interfaceBroker = new MockInterfaceBroker(); BaseTransportConfig _transportConfig = new BTTransportConfig(true); - SdlSession testSdlSession = SdlSession.createSession(testWiproVersion,_interfaceBroker, _transportConfig); - - try { - URL url = new URL("ftp://mirror.csclub.uwaterloo.ca/index.html"); - URLConnection urlConnection = url.openConnection(); - testInputStream = new BufferedInputStream(urlConnection.getInputStream()); - + try { + testInputStream = new BufferedInputStream(new ByteArrayInputStream("sdl streaming test".getBytes())); StreamPacketizer testStreamPacketizer = new StreamPacketizer(testListener, testInputStream, testSessionType, testSessionId, testSdlSession); assertNotNull(Test.NOT_NULL, testStreamPacketizer); diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java index 63fb437f7..cac3b1616 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java @@ -1,6 +1,7 @@ package com.smartdevicelink.test.streaming; import java.io.BufferedInputStream; +import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; @@ -41,12 +42,8 @@ public class StreamRPCPacketizerTests extends TestCase { MockInterfaceBroker _interfaceBroker = new MockInterfaceBroker(); BaseTransportConfig _transportConfig = new BTTransportConfig(true); SdlSession testSdlSession = SdlSession.createSession(testWiproVersion,_interfaceBroker, _transportConfig); - - try { - URL url = new URL("ftp://mirror.csclub.uwaterloo.ca/index.html"); - URLConnection urlConnection = url.openConnection(); - testInputStream = new BufferedInputStream(urlConnection.getInputStream()); - + try { + testInputStream = new BufferedInputStream(new ByteArrayInputStream("sdl streaming test".getBytes())); StreamRPCPacketizer testStreamRpcPacketizer = new StreamRPCPacketizer(null, testListener, testInputStream, testRequest, testSessionType, testSessionId, testWV, testWV, testSdlSession); assertNotNull(Test.NOT_NULL, testStreamRpcPacketizer); diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/trace/DiagLevelTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/trace/DiagLevelTests.java index bc1aa6060..ce24ce4e8 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/trace/DiagLevelTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/trace/DiagLevelTests.java @@ -122,7 +122,7 @@ public class DiagLevelTests extends TestCase { assertFalse(Test.FALSE, DiagLevel.isValidDetailLevel(testInvalidS)); assertFalse(Test.FALSE, DiagLevel.isValidDetailLevel(null)); assertNull(Test.NULL, DiagLevel.getLevel(null)); - DiagLevel.setLevel(null, null); + DiagLevel.setLevel(null, null); DiagLevel.setAllLevels(null); } catch (NullPointerException e) { fail("NullPointerException was thrown when attempting to set null values."); diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/transport/MultiplexBluetoothTransportTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/transport/MultiplexBluetoothTransportTest.java index ae4bae4ce..cdf83079c 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/transport/MultiplexBluetoothTransportTest.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/transport/MultiplexBluetoothTransportTest.java @@ -1,12 +1,14 @@ package com.smartdevicelink.test.transport; -import junit.framework.TestCase; import android.os.Handler; +import android.os.Looper; import android.os.Message; +import com.smartdevicelink.test.util.DeviceUtil; import com.smartdevicelink.transport.MultiplexBluetoothTransport; import com.smartdevicelink.transport.SdlRouterService; +import junit.framework.TestCase; public class MultiplexBluetoothTransportTest extends TestCase { @@ -17,41 +19,50 @@ public class MultiplexBluetoothTransportTest extends TestCase { boolean didCorrectThing = false, isWaitingForResponse = false; //Example handler - Handler stateChangeHandler = new Handler(){ - int stateDesired = MultiplexBluetoothTransport.STATE_LISTEN; - @Override - public void handleMessage(Message msg) { - if(!isWaitingForResponse){ - return; - } - switch(msg.what){ - case SdlRouterService.MESSAGE_STATE_CHANGE: - if(msg.arg1 == stateDesired){ + Handler stateChangeHandler; + + public void testStateTransitions() { + if(Looper.myLooper() == null){ + Looper.prepare(); + } + + stateChangeHandler = new Handler(){ + int stateDesired = MultiplexBluetoothTransport.STATE_LISTEN; + @Override + public void handleMessage(Message msg) { + if(!isWaitingForResponse){ + return; + } + switch(msg.what){ + case SdlRouterService.MESSAGE_STATE_CHANGE: + if(msg.arg1 == stateDesired){ didCorrectThing = true; break; - } + } default: didCorrectThing = false; + } + REQUEST_LOCK.notify(); } - REQUEST_LOCK.notify(); - } - - }; - - public void testStateTransitions() { + + }; + //TODO test for more than the two states bluetooth = MultiplexBluetoothTransport.getBluetoothSerialServerInstance(); assertNull(bluetooth); bluetooth = MultiplexBluetoothTransport.getBluetoothSerialServerInstance(stateChangeHandler); assertEquals(bluetooth.getState(), MultiplexBluetoothTransport.STATE_NONE); - + bluetooth.start(); - assertEquals(bluetooth.getState(), MultiplexBluetoothTransport.STATE_LISTEN); - + if(DeviceUtil.isEmulator()){ + assertEquals(bluetooth.getState(), MultiplexBluetoothTransport.STATE_NONE); + }else{ + assertEquals(bluetooth.getState(), MultiplexBluetoothTransport.STATE_LISTEN); + } + bluetooth.stop(); assertEquals(bluetooth.getState(), MultiplexBluetoothTransport.STATE_NONE); - } private void notifyResponseReceived(){ diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/BitConverterTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/BitConverterTests.java index a3f0964b4..fb6eed3f9 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/BitConverterTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/BitConverterTests.java @@ -1,11 +1,11 @@ package com.smartdevicelink.test.util; -import java.util.Arrays; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.util.BitConverter; import junit.framework.TestCase; -import com.smartdevicelink.test.Test; -import com.smartdevicelink.util.BitConverter; +import java.util.Arrays; /** * This is a unit test class for the SmartDeviceLink library project class : @@ -61,7 +61,7 @@ public class BitConverterTests extends TestCase { assertTrue(Test.ARRAY, Arrays.equals(expectedBytes, actualBytes)); // Invalid/Null Tests - assertEquals(Test.MATCH, (int) 0, actualNullBytes); + assertEquals(Test.MATCH, (int) -1, actualNullBytes); } /** @@ -83,6 +83,6 @@ public class BitConverterTests extends TestCase { assertTrue(Test.ARRAY, Arrays.equals(expectedBytes, actualBytes)); // Invalid/Null Tests - assertEquals(Test.MATCH, (short) 0, actualNullBytes); + assertEquals(Test.MATCH, (short) -1, actualNullBytes); } }
\ No newline at end of file diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/DeviceUtil.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/DeviceUtil.java new file mode 100644 index 000000000..08b5c0840 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/DeviceUtil.java @@ -0,0 +1,17 @@ +package com.smartdevicelink.test.util; + +import android.os.Build; + +public class DeviceUtil { + public static boolean isEmulator() { + return Build.FINGERPRINT.startsWith("generic") + || Build.FINGERPRINT.startsWith("unknown") + || Build.MODEL.contains("google_sdk") + || Build.MODEL.contains("Emulator") + || Build.MODEL.contains("Android SDL built for") + || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic")) + || (Build.BRAND.startsWith("Android") && Build.DEVICE.startsWith("generic")) + || (Build.PRODUCT != null && Build.PRODUCT.startsWith("sdk_google_phone")) + || "google_sdk".equals(Build.PRODUCT); + } +}
\ No newline at end of file diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/SdlDataTypeConverterTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/SdlDataTypeConverterTests.java index a4bdb8ab8..b39c405d5 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/SdlDataTypeConverterTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/SdlDataTypeConverterTests.java @@ -36,11 +36,11 @@ public class SdlDataTypeConverterTests extends TestCase { // Valid Tests assertEquals(Test.MATCH, expectedValue, actualDoubleValue); assertEquals(Test.MATCH, expectedValue, actualIntegerValue); + assertEquals(Test.MATCH, expectedValue, actualFloatValue); // Null Tests assertNull(Test.NULL, actualNullValue); assertNull(Test.NULL, actualLongValue); assertNull(Test.NULL, actualShortValue); - assertNull(Test.NULL, actualFloatValue); } }
\ No newline at end of file diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/VersionTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/VersionTest.java new file mode 100644 index 000000000..44d25ffe0 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/util/VersionTest.java @@ -0,0 +1,31 @@ +package com.smartdevicelink.test.util; + +import android.test.AndroidTestCase; + +import com.smartdevicelink.util.Version; + +public class VersionTest extends AndroidTestCase { + + private static final String TEST_VERSION = "1.2.3"; + + public void testConstructorCorrect(){ + Version version = new Version(TEST_VERSION); + assertEquals(1, version.getMajor()); + assertEquals(2, version.getMinor()); + assertEquals(3, version.getPatch()); + } + + public void testConstructorIncorrect(){ + try{ + Version version = new Version("1.2"); + }catch (Exception e){ + assert true; + } + assert false; + } + + public void testToString(){ + Version version = new Version(TEST_VERSION); + assertEquals(version.toString(), TEST_VERSION); + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/MultiplexTransportTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/MultiplexTransportTest.java index 9f0822a73..901a756a3 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/MultiplexTransportTest.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/MultiplexTransportTest.java @@ -6,6 +6,8 @@ import com.smartdevicelink.transport.enums.TransportType; import android.test.AndroidTestCase; +import junit.framework.Assert; + public class MultiplexTransportTest extends AndroidTestCase { private static final int TIMEOUT = 2000; @@ -69,8 +71,14 @@ public class MultiplexTransportTest extends AndroidTestCase { trans = new MultiplexTransport(config,transportListener); assertTrue(trans.brokerThread.isAlive()); - - - + + // Send a null config object in the constructor and expect an IllegalArgumentException + try { + trans = new MultiplexTransport(null, transportListener); + } catch (IllegalArgumentException e) { + assertEquals("Null transportConfig in MultiplexTransport constructor", e.getMessage()); + } catch (NullPointerException e) { + Assert.fail("NPE in MultiplexTransport constructor"); + } } } diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/RSVTestCase.java b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/RSVTestCase.java index 03abbc7f4..e40049afd 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/RSVTestCase.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/RSVTestCase.java @@ -1,14 +1,8 @@ package com.smartdevicelink.transport; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.List; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - +import android.app.ActivityManager; +import android.content.ComponentName; +import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.test.AndroidTestCase; @@ -17,13 +11,23 @@ import android.util.Log; import com.smartdevicelink.transport.RouterServiceValidator.TrustedAppStore; import com.smartdevicelink.util.HttpRequestTask.HttpRequestTaskCallback; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.List; +import java.util.concurrent.Semaphore; + public class RSVTestCase extends AndroidTestCase { private static final String TAG = "RSVTestCase"; private static final long REFRESH_TRUSTED_APP_LIST_TIME_DAY = 3600000 * 24; // A day in ms private static final long REFRESH_TRUSTED_APP_LIST_TIME_WEEK = REFRESH_TRUSTED_APP_LIST_TIME_DAY * 7; // A week in ms private static final long REFRESH_TRUSTED_APP_LIST_TIME_MONTH = REFRESH_TRUSTED_APP_LIST_TIME_DAY * 30; // A ~month in ms - + private static final String TEST = "{\"response\": {\"com.livio.sdl\" : { \"versionBlacklist\":[] }, \"com.lexus.tcapp\" : { \"versionBlacklist\":[] }, \"com.toyota.tcapp\" : { \"versionBlacklist\": [] } , \"com.sdl.router\":{\"versionBlacklist\": [] },\"com.ford.fordpass\" : { \"versionBlacklist\":[] } }}"; RouterServiceValidator rsvp; /** * Set this boolean if you want to test the actual validation of router service @@ -41,6 +45,27 @@ public class RSVTestCase extends AndroidTestCase { protected void tearDown() throws Exception { super.tearDown(); } + + private static final Semaphore TRUSTED_LIST_LOCK = new Semaphore(1); + + private void requestTListLock(){ + try { + TRUSTED_LIST_LOCK.acquire(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + private void releaseTListLock(){ + TRUSTED_LIST_LOCK.release(); + } + + private RouterServiceValidator.TrustedListCallback trustedListCallback = new RouterServiceValidator.TrustedListCallback(){ + @Override + public void onListObtained(boolean successful) { + releaseTListLock(); + } + }; /* * These tests are a little strange because they don't test the logic behind the validation of each piece. @@ -100,6 +125,8 @@ public class RSVTestCase extends AndroidTestCase { } public void testHighSecurity(){ + requestTListLock(); + RouterServiceValidator rsvp = new RouterServiceValidator(this.mContext); //Use a locally scoped instance rsvp.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH); rsvp.setFlags(RouterServiceValidator.FLAG_DEBUG_INSTALLED_FROM_CHECK); @@ -108,11 +135,13 @@ public class RSVTestCase extends AndroidTestCase { assertEquals(RouterServiceValidator.getRefreshRate(), REFRESH_TRUSTED_APP_LIST_TIME_WEEK); - assertTrue(RouterServiceValidator.createTrustedListRequest(mContext, true, null, null)); + assertTrue(RouterServiceValidator.createTrustedListRequest(mContext, true, null, trustedListCallback)); } public void testMediumSecurity(){ + requestTListLock(); + RouterServiceValidator rsvp = new RouterServiceValidator(this.mContext); //Use a locally scoped instance rsvp.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_MED); rsvp.setFlags(RouterServiceValidator.FLAG_DEBUG_INSTALLED_FROM_CHECK); @@ -121,11 +150,13 @@ public class RSVTestCase extends AndroidTestCase { assertEquals(RouterServiceValidator.getRefreshRate(), REFRESH_TRUSTED_APP_LIST_TIME_WEEK); - assertTrue(RouterServiceValidator.createTrustedListRequest(mContext, true, null, null)); + assertTrue(RouterServiceValidator.createTrustedListRequest(mContext, true, null, trustedListCallback)); } public void testLowSecurity(){ + requestTListLock(); + RouterServiceValidator rsvp = new RouterServiceValidator(this.mContext); //Use a locally scoped instance rsvp.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_LOW); rsvp.setFlags(RouterServiceValidator.FLAG_DEBUG_INSTALLED_FROM_CHECK); @@ -134,11 +165,13 @@ public class RSVTestCase extends AndroidTestCase { assertEquals(RouterServiceValidator.getRefreshRate(), REFRESH_TRUSTED_APP_LIST_TIME_MONTH); - assertTrue(RouterServiceValidator.createTrustedListRequest(mContext, true, null, null)); + assertTrue(RouterServiceValidator.createTrustedListRequest(mContext, true, null, trustedListCallback)); } public void testNoSecurity(){ + requestTListLock(); + RouterServiceValidator rsvp = new RouterServiceValidator(this.mContext); //Use a locally scoped instance rsvp.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_OFF); rsvp.setFlags(RouterServiceValidator.FLAG_DEBUG_INSTALLED_FROM_CHECK); @@ -147,7 +180,7 @@ public class RSVTestCase extends AndroidTestCase { assertEquals(RouterServiceValidator.getRefreshRate(), REFRESH_TRUSTED_APP_LIST_TIME_WEEK); - assertFalse(RouterServiceValidator.createTrustedListRequest(mContext, true, null, null)); + assertFalse(RouterServiceValidator.createTrustedListRequest(mContext, true, null, trustedListCallback)); //This should always return true assertTrue(rsvp.validate()); @@ -179,51 +212,66 @@ public class RSVTestCase extends AndroidTestCase { } public void testInvalidateList(){ + requestTListLock(); + assertFalse(RouterServiceValidator.invalidateList(null)); assertTrue(RouterServiceValidator.invalidateList(mContext)); + + releaseTListLock(); } public void testGetTrustedList(){ + requestTListLock(); + assertNull(RouterServiceValidator.getTrustedList(null)); assertNotNull(RouterServiceValidator.getTrustedList(mContext)); + + releaseTListLock(); } public void testSetTrustedList(){ + requestTListLock(); + assertFalse(RouterServiceValidator.setTrustedList(null,null)); assertFalse(RouterServiceValidator.setTrustedList(mContext,null)); assertFalse(RouterServiceValidator.setTrustedList(null,"test")); assertTrue(RouterServiceValidator.setTrustedList(mContext,"test")); - String test = "{\"response\": {\"com.livio.sdl\" : { \"versionBlacklist\":[] }, \"com.lexus.tcapp\" : { \"versionBlacklist\":[] }, \"com.toyota.tcapp\" : { \"versionBlacklist\": [] } , \"com.sdl.router\":{\"versionBlacklist\": [] },\"com.ford.fordpass\" : { \"versionBlacklist\":[] } }}"; - assertTrue(RouterServiceValidator.setTrustedList(mContext,test)); - assertTrue(RouterServiceValidator.setTrustedList(mContext,test+test+test+test+test)); + assertTrue(RouterServiceValidator.setTrustedList(mContext,TEST)); + assertTrue(RouterServiceValidator.setTrustedList(mContext,TEST+TEST+TEST+TEST+TEST)); StringBuilder builder = new StringBuilder(); for(int i = 0; i<1000; i++){ - builder.append(test); + builder.append(TEST); } assertTrue(RouterServiceValidator.setTrustedList(mContext,builder.toString())); + + releaseTListLock(); } public void testTrustedListSetAndGet(){ - String test = "{\"response\": {\"com.livio.sdl\" : { \"versionBlacklist\":[] }, \"com.lexus.tcapp\" : { \"versionBlacklist\":[] }, \"com.toyota.tcapp\" : { \"versionBlacklist\": [] } , \"com.sdl.router\":{\"versionBlacklist\": [] },\"com.ford.fordpass\" : { \"versionBlacklist\":[] } }}"; - assertTrue(RouterServiceValidator.setTrustedList(mContext,test)); + requestTListLock(); + + assertTrue(RouterServiceValidator.setTrustedList(mContext,TEST)); String retVal = RouterServiceValidator.getTrustedList(mContext); assertNotNull(retVal); - assertTrue(test.equals(retVal)); - - retVal = null; + assertTrue(TEST.equals(retVal)); + StringBuilder builder = new StringBuilder(); for(int i = 0; i<1000; i++){ - builder.append(test); + builder.append(TEST); } assertTrue(RouterServiceValidator.setTrustedList(mContext,builder.toString())); retVal = RouterServiceValidator.getTrustedList(mContext); assertNotNull(retVal); assertTrue(builder.toString().equals(retVal)); + + releaseTListLock(); } public void testInvalidationSequence(){ + requestTListLock(); + assertTrue(RouterServiceValidator.invalidateList(mContext)); - assertTrue(RouterServiceValidator.createTrustedListRequest(mContext,false)); + assertTrue(RouterServiceValidator.createTrustedListRequest(mContext, false, null, trustedListCallback)); } public void testAppStorePackages(){ @@ -267,6 +315,8 @@ public class RSVTestCase extends AndroidTestCase { static boolean didFinish = false; public void testGetAndCheckList(){ + requestTListLock(); + final Object REQUEST_LOCK = new Object(); didFinish = false; HttpRequestTaskCallback cb = new HttpRequestTaskCallback(){ @@ -279,6 +329,7 @@ public class RSVTestCase extends AndroidTestCase { didFinish = true; REQUEST_LOCK.notify(); } + releaseTListLock(); } @Override public void httpFailure(int statusCode) { @@ -287,6 +338,7 @@ public class RSVTestCase extends AndroidTestCase { didFinish = true; REQUEST_LOCK.notify(); } + releaseTListLock(); } }; @@ -308,12 +360,14 @@ public class RSVTestCase extends AndroidTestCase { * Test to check that we can save our last request which actually houses all the previous known sdl enabled apps */ public void testRequestChange(){ + requestTListLock(); + RouterServiceValidator.setLastRequest(mContext, null); assertNull(RouterServiceValidator.getLastRequest(mContext)); - String test = "{\"response\": {\"com.livio.sdl\" : { \"versionBlacklist\":[] }, \"com.lexus.tcapp\" : { \"versionBlacklist\":[] }, \"com.toyota.tcapp\" : { \"versionBlacklist\": [] } , \"com.sdl.router\":{\"versionBlacklist\": [] },\"com.ford.fordpass\" : { \"versionBlacklist\":[] } }}"; + JSONObject object = null; try { - object = new JSONObject(test); + object = new JSONObject(TEST); } catch (JSONException e) { e.printStackTrace(); } @@ -327,7 +381,7 @@ public class RSVTestCase extends AndroidTestCase { assertTrue(object.toString().equals(oldRequest)); //Now test a new list - test = "{\"response\": {\"com.livio.sdl\" : { \"versionBlacklist\":[] }, \"com.lexus.tcapp\" : { \"versionBlacklist\":[] }, \"com.test.test\" : { \"versionBlacklist\":[] },\"com.toyota.tcapp\" : { \"versionBlacklist\": [] } , \"com.sdl.router\":{\"versionBlacklist\": [] },\"com.ford.fordpass\" : { \"versionBlacklist\":[] } }}"; + String test = "{\"response\": {\"com.livio.sdl\" : { \"versionBlacklist\":[] }, \"com.lexus.tcapp\" : { \"versionBlacklist\":[] }, \"com.test.test\" : { \"versionBlacklist\":[] },\"com.toyota.tcapp\" : { \"versionBlacklist\": [] } , \"com.sdl.router\":{\"versionBlacklist\": [] },\"com.ford.fordpass\" : { \"versionBlacklist\":[] } }}"; object = null; try { object = new JSONObject(test); @@ -339,7 +393,40 @@ public class RSVTestCase extends AndroidTestCase { //Clear it for next test RouterServiceValidator.setLastRequest(mContext, null); + releaseTListLock(); } - + + /** + * Test app's router validation. Validation should fail when the given context and ComponentName object are from different packages and security setting is not OFF + * and app is not on trusted list. Validation should pass when the given context and ComponentName object are from the same package. + */ + public void testAppSelfValidation() { + + class RouterServiceValidatorTest extends RouterServiceValidator{ + public RouterServiceValidatorTest(Context context){ + super(context); + } + + public RouterServiceValidatorTest(Context context, ComponentName service){ + super(context, service); + } + + // Override this method and simply returning true for the purpose of this test + protected boolean isServiceRunning(Context context, ComponentName service){ + return true; + } + } + + // Fail, different package name for context and service and app security setting is not OFF and app is not on trusted list + RouterServiceValidatorTest rsvpFail = new RouterServiceValidatorTest(this.mContext, new ComponentName("anything", mContext.getClass().getSimpleName())); + rsvpFail.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH); + assertFalse(rsvpFail.validate()); + + // Success, same package name for context and service + RouterServiceValidatorTest rsvpPass = new RouterServiceValidatorTest(this.mContext, new ComponentName(mContext.getPackageName(), mContext.getClass().getSimpleName())); + rsvpPass.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH); + assertTrue(rsvpPass.validate()); + } + } diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/RegisteredAppTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/RegisteredAppTests.java index a4d4e1395..4208c1479 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/RegisteredAppTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/RegisteredAppTests.java @@ -18,47 +18,42 @@ public class RegisteredAppTests extends AndroidTestCase { public void testHandleMessage() { - // Run Test in Main Thread - new Handler(Looper.getMainLooper()).post(new Runnable() { - @Override - public void run() { + if (Looper.myLooper() == null) { + Looper.prepare(); + } - // Instantiate SdlRouterService and Registered App class - SdlRouterService router = new SdlRouterService(); - SdlRouterService.RegisteredApp app = router.new RegisteredApp(APP_ID, messenger); + // Instantiate SdlRouterService and Registered App class + SdlRouterService router = new SdlRouterService(); + SdlRouterService.RegisteredApp app = router.new RegisteredApp(APP_ID, messenger); - // Call Handle Message - app.handleMessage(TransportConstants.BYTES_TO_SEND_FLAG_LARGE_PACKET_START,bytes); + // Call Handle Message + app.handleMessage(TransportConstants.BYTES_TO_SEND_FLAG_LARGE_PACKET_START,bytes); + + // Insure that the buffer is not null, if it is the test will fail + assertNotNull(app.buffer); - // Insure that the buffer is not null, if it is the test will fail - assertNotNull(app.buffer); - } - }); } public void testNullBuffer() { - // Run Test in Main Thread - new Handler(Looper.getMainLooper()).post(new Runnable() { - @Override - public void run() { + if (Looper.myLooper() == null) { + Looper.prepare(); + } - // Instantiate SdlRouterService and Registered App class - SdlRouterService router = new SdlRouterService(); - SdlRouterService.RegisteredApp app = router.new RegisteredApp(APP_ID, messenger); + // Instantiate SdlRouterService and Registered App class + SdlRouterService router = new SdlRouterService(); + SdlRouterService.RegisteredApp app = router.new RegisteredApp(APP_ID, messenger); - // Force Null Buffer - app.buffer = null; + // Force Null Buffer + app.buffer = null; - // Call Handle Message - Making sure it doesn't init buffer - app.handleMessage(TransportConstants.BYTES_TO_SEND_FLAG_NONE,bytes); + // Call Handle Message - Making sure it doesn't init buffer + app.handleMessage(TransportConstants.BYTES_TO_SEND_FLAG_NONE,bytes); - // Insure that the buffer is null. and no NPE - assertNull(app.buffer); + // Insure that the buffer is null. and no NPE + assertNull(app.buffer); - } - }); } } diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/SdlRouterServiceTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/SdlRouterServiceTests.java new file mode 100644 index 000000000..40fe0e77f --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/SdlRouterServiceTests.java @@ -0,0 +1,132 @@ +package com.smartdevicelink.transport; + + +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.os.Message; +import android.test.AndroidTestCase; +import android.util.Log; + +import com.smartdevicelink.protocol.SdlPacket; + +import junit.framework.Assert; + +import java.lang.ref.WeakReference; +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +public class SdlRouterServiceTests extends AndroidTestCase { + + public static final String TAG = "SdlRouterServiceTests"; + + @Override + protected void setUp() throws Exception { + super.setUp(); + } + + @Override + protected void tearDown() throws Exception { + super.tearDown(); + //Nothing here for now + } + + /** + * Test null bundle handling in AltTransportHandler when handling messages. Only test the case of + * msg.what == TransportConstants.ROUTER_RECEIVED_PACKET + */ + public void testAlTransportHandlerHandleNullBundle() { + if (Looper.myLooper() == null) { + Looper.prepare(); + } + class AltTransportHandler extends Handler { + ClassLoader loader; + final WeakReference<SdlRouterService> provider; + + public AltTransportHandler(SdlRouterService provider) { + this.provider = new WeakReference<SdlRouterService>(provider); + loader = getClass().getClassLoader(); + } + + @Override + public void handleMessage(Message msg) { + SdlRouterService service = this.provider.get(); + Bundle receivedBundle = msg.getData(); + switch (msg.what) { + case TransportConstants.ROUTER_RECEIVED_PACKET: + if (receivedBundle != null) { + receivedBundle.setClassLoader(loader);//We do this because loading a custom parceable object isn't possible without it + if (receivedBundle.containsKey(TransportConstants.FORMED_PACKET_EXTRA_NAME)) { + SdlPacket packet = receivedBundle.getParcelable(TransportConstants.FORMED_PACKET_EXTRA_NAME); + if (packet != null && service != null) { + service.onPacketRead(packet); + } else { + Log.w(TAG, "Received null packet from alt transport service"); + } + } else { + Log.w(TAG, "Flase positive packet reception"); + } + } else { + Log.e(TAG, "Bundle was null while sending packet to router service from alt transport"); + } + break; + default: + super.handleMessage(msg); + } + + } + } + AltTransportHandler testHandler = new AltTransportHandler(null); + Message msg = Message.obtain(null, TransportConstants.ROUTER_RECEIVED_PACKET); + //Send a null bundle + msg.setData(null); + try { + testHandler.handleMessage(msg); + } catch (Exception e) { + Assert.fail("Exception in testAlTransportHandlerHandleNullBundle, " + e); + } + } + + /** + * Test writeBytesToTransport method for handling null byte array in bundle + * + * @see SdlRouterService#writeBytesToTransport(Bundle) + */ + public void testWriteBytesToTransport() { + if (Looper.myLooper() == null) { + Looper.prepare(); + } + Method method; + Field field = null; + Object sdlRouterService = null; + try { + sdlRouterService = Class.forName("com.smartdevicelink.transport.SdlRouterService").newInstance(); + //Send a null bundle + method = SdlRouterService.class.getDeclaredMethod("writeBytesToTransport", Bundle.class); + Bundle bundle = null; + method.invoke(sdlRouterService, bundle); + + //Send a non-null bundle with a null bytes array + //First, set mSerialService to the correct state so we get to test packet being null + MultiplexBluetoothTransport transport = new MultiplexBluetoothTransport(null); + transport.setStateManually(MultiplexBluetoothTransport.STATE_CONNECTED); + field = SdlRouterService.class.getDeclaredField("mSerialService"); + field.setAccessible(true); + field.set(sdlRouterService, transport); + bundle = new Bundle(); + bundle.putByteArray(TransportConstants.BYTES_TO_SEND_EXTRA_NAME, null); + method.invoke(sdlRouterService, bundle); + } catch (Exception e) { + Assert.fail("Exception in testWriteBytesToTransport, " + e); + } + + //Return mSerialService to previous state + if (field != null && sdlRouterService != null) { + try { + field.set(sdlRouterService, null); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/TransportBrokerTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/TransportBrokerTest.java index bbc682fbc..5725b6974 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/TransportBrokerTest.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/TransportBrokerTest.java @@ -2,11 +2,13 @@ package com.smartdevicelink.transport; import android.bluetooth.BluetoothAdapter; import android.os.Handler; +import android.os.Looper; import android.os.Message; import android.os.Messenger; import android.test.AndroidTestCase; import com.smartdevicelink.test.SdlUnitTestContants; +import com.smartdevicelink.test.util.DeviceUtil; public class TransportBrokerTest extends AndroidTestCase { RouterServiceValidator rsvp; @@ -27,68 +29,92 @@ public class TransportBrokerTest extends AndroidTestCase { } public void testStart(){ + if (Looper.myLooper() == null) { + Looper.prepare(); + } TransportBroker broker = new TransportBroker(mContext, SdlUnitTestContants.TEST_APP_ID,rsvp.getService()); - assertTrue(broker.start()); + if(!DeviceUtil.isEmulator()){ // Cannot perform MBT operations in emulator + assertTrue(broker.start()); + } broker.stop(); + } public void testSendPacket(){ + if (Looper.myLooper() == null) { + Looper.prepare(); + } + TransportBroker broker = new TransportBroker(mContext, SdlUnitTestContants.TEST_APP_ID,rsvp.getService()); - assertTrue(broker.start()); + + if(!DeviceUtil.isEmulator()){ // Cannot perform MBT operations in emulator + assertTrue(broker.start()); + } BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); - assertNotNull(adapter); - assertTrue(adapter.isEnabled()); - + if(!DeviceUtil.isEmulator()){ // Cannot perform BT adapter operations in emulator + assertNotNull(adapter); + assertTrue(adapter.isEnabled()); + } //Not ideal, but not implementing callbacks just for unit tests int count = 0; while(broker.routerServiceMessenger == null && count<10){ sleep(); count++; } - assertNotNull(broker.routerServiceMessenger); - - + if(!DeviceUtil.isEmulator()){ // Cannot perform BT adapter operations in emulator + assertNotNull(broker.routerServiceMessenger); + } + //assertFalse(broker.sendPacketToRouterService(null, 0, 0)); //assertFalse(broker.sendPacketToRouterService(new byte[3], -1, 0)); //assertFalse(broker.sendPacketToRouterService(new byte[3], 0, 4)); //assertTrue(broker.sendPacketToRouterService(new byte[3],0, 3)); - + broker.stop(); + } public void testOnPacketReceived(){ - TransportBroker broker = new TransportBroker(mContext, SdlUnitTestContants.TEST_APP_ID,rsvp.getService()); - assertTrue(broker.start()); + if (Looper.myLooper() == null) { + Looper.prepare(); + } + TransportBroker broker = new TransportBroker(mContext, SdlUnitTestContants.TEST_APP_ID, rsvp.getService()); + if(!DeviceUtil.isEmulator()){ // Cannot perform MBT operations in emulator + assertTrue(broker.start()); + } + } public void testSendMessageToRouterService(){ - TransportBroker broker = new TransportBroker(mContext, SdlUnitTestContants.TEST_APP_ID,rsvp.getService()); + if (Looper.myLooper() == null) { + Looper.prepare(); + } + + TransportBroker broker = new TransportBroker(mContext, SdlUnitTestContants.TEST_APP_ID, rsvp.getService()); Handler handler = new Handler(); - Message message = new Message(); + Message message = new Message(); broker.routerServiceMessenger = null; broker.isBound = true; + assertFalse(broker.sendMessageToRouterService(message)); - + broker.routerServiceMessenger = new Messenger(handler); //So it's not ambiguous + broker.isBound = false; + assertFalse(broker.sendMessageToRouterService(message)); - + broker.isBound = true; broker.registeredWithRouterService = true; - + message = null; + assertFalse(broker.sendMessageToRouterService(message)); - + message = new Message(); - + assertTrue(broker.sendMessageToRouterService(message)); - - - - } - - } diff --git a/sdl_android/src/main/AndroidManifest.xml b/sdl_android/src/main/AndroidManifest.xml index 2cbeacf64..a958fb2fc 100644 --- a/sdl_android/src/main/AndroidManifest.xml +++ b/sdl_android/src/main/AndroidManifest.xml @@ -1,4 +1,3 @@ <manifest package="com.smartdevicelink" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="8"/>
- <application android:debuggable="true"/>
</manifest>
diff --git a/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlSession.java b/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlSession.java index 1a9d051a6..7c7f9237f 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlSession.java +++ b/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlSession.java @@ -5,6 +5,7 @@ import java.io.InputStream; import java.io.OutputStream;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
+import java.util.HashMap;
import java.util.List;
import java.util.ListIterator;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -22,11 +23,13 @@ import com.smartdevicelink.protocol.heartbeat.IHeartbeatMonitor; import com.smartdevicelink.protocol.heartbeat.IHeartbeatMonitorListener;
import com.smartdevicelink.proxy.LockScreenManager;
import com.smartdevicelink.proxy.RPCRequest;
+import com.smartdevicelink.proxy.interfaces.ISdlServiceListener;
import com.smartdevicelink.security.ISecurityInitializedListener;
import com.smartdevicelink.security.SdlSecurityBase;
import com.smartdevicelink.streaming.IStreamListener;
import com.smartdevicelink.streaming.StreamPacketizer;
import com.smartdevicelink.streaming.StreamRPCPacketizer;
+import com.smartdevicelink.streaming.VideoStreamingParams;
import com.smartdevicelink.transport.BaseTransportConfig;
import com.smartdevicelink.transport.MultiplexTransport;
import com.smartdevicelink.transport.enums.TransportType;
@@ -51,6 +54,9 @@ public class SdlSession implements ISdlConnectionListener, IHeartbeatMonitorList SdlEncoder mSdlEncoder = null;
private final static int BUFF_READ_SIZE = 1024;
private int sessionHashId = 0;
+ private HashMap<SessionType, CopyOnWriteArrayList<ISdlServiceListener>> serviceListeners;
+ private VideoStreamingParams desiredVideoParams = null;
+ private VideoStreamingParams acceptedVideoParams = null;
public static SdlSession createSession(byte wiproVersion, ISdlConnectionListener listener, BaseTransportConfig btConfig) {
@@ -482,6 +488,12 @@ public class SdlSession implements ISdlConnectionListener, IHeartbeatMonitorList if (isEncrypted)
encryptedServices.addIfAbsent(sessionType);
this.sessionListener.onProtocolSessionStarted(sessionType, sessionID, version, correlationID, hashID, isEncrypted);
+ if(serviceListeners != null && serviceListeners.containsKey(sessionType)){
+ CopyOnWriteArrayList<ISdlServiceListener> listeners = serviceListeners.get(sessionType);
+ for(ISdlServiceListener listener:listeners){
+ listener.onServiceStarted(this, sessionType, isEncrypted);
+ }
+ }
//if (version == 3)
initialiseSession();
if (sessionType.eq(SessionType.RPC)){
@@ -493,6 +505,12 @@ public class SdlSession implements ISdlConnectionListener, IHeartbeatMonitorList public void onProtocolSessionEnded(SessionType sessionType, byte sessionID,
String correlationID) {
this.sessionListener.onProtocolSessionEnded(sessionType, sessionID, correlationID);
+ if(serviceListeners != null && serviceListeners.containsKey(sessionType)){
+ CopyOnWriteArrayList<ISdlServiceListener> listeners = serviceListeners.get(sessionType);
+ for(ISdlServiceListener listener:listeners){
+ listener.onServiceEnded(this, sessionType);
+ }
+ }
encryptedServices.remove(sessionType);
}
@@ -534,14 +552,25 @@ public class SdlSession implements ISdlConnectionListener, IHeartbeatMonitorList @Override
public void onProtocolSessionStartedNACKed(SessionType sessionType,
byte sessionID, byte version, String correlationID) {
- this.sessionListener.onProtocolSessionStartedNACKed(sessionType, sessionID, version, correlationID);
+ this.sessionListener.onProtocolSessionStartedNACKed(sessionType, sessionID, version, correlationID);
+ if(serviceListeners != null && serviceListeners.containsKey(sessionType)){
+ CopyOnWriteArrayList<ISdlServiceListener> listeners = serviceListeners.get(sessionType);
+ for(ISdlServiceListener listener:listeners){
+ listener.onServiceError(this, sessionType, "Start "+ sessionType.toString() +" Service NACK'ed");
+ }
+ }
}
@Override
public void onProtocolSessionEndedNACKed(SessionType sessionType,
byte sessionID, String correlationID) {
this.sessionListener.onProtocolSessionEndedNACKed(sessionType, sessionID, correlationID);
-
+ if(serviceListeners != null && serviceListeners.containsKey(sessionType)){
+ CopyOnWriteArrayList<ISdlServiceListener> listeners = serviceListeners.get(sessionType);
+ for(ISdlServiceListener listener:listeners){
+ listener.onServiceError(this, sessionType, "End "+ sessionType.toString() +" Service NACK'ed");
+ }
+ }
}
@Override
@@ -596,4 +625,52 @@ public class SdlSession implements ISdlConnectionListener, IHeartbeatMonitorList public static boolean removeConnection(SdlConnection connection){
return shareConnections.remove(connection);
}
+
+ public void addServiceListener(SessionType serviceType, ISdlServiceListener sdlServiceListener){
+ if(serviceListeners == null){
+ serviceListeners = new HashMap<>();
+ }
+ if(serviceType != null && sdlServiceListener != null){
+ if(!serviceListeners.containsKey(serviceType)){
+ serviceListeners.put(serviceType,new CopyOnWriteArrayList<ISdlServiceListener>());
+ }
+ serviceListeners.get(serviceType).add(sdlServiceListener);
+ }
+ }
+
+ public boolean removeServiceListener(SessionType serviceType, ISdlServiceListener sdlServiceListener){
+ if(serviceListeners!= null && serviceType != null && sdlServiceListener != null && serviceListeners.containsKey(serviceType)){
+ return serviceListeners.get(serviceType).remove(sdlServiceListener);
+ }
+ return false;
+ }
+
+
+ public HashMap<SessionType, CopyOnWriteArrayList<ISdlServiceListener>> getServiceListeners(){
+ return serviceListeners;
+ }
+
+ public void setDesiredVideoParams(VideoStreamingParams params){
+ this.desiredVideoParams = params;
+ }
+
+ /**
+ * Returns the currently set desired video streaming parameters. If there haven't been any set,
+ * the default options will be returned and set for this instance.
+ * @return
+ */
+ public VideoStreamingParams getDesiredVideoParams(){
+ if(desiredVideoParams == null){
+ desiredVideoParams = new VideoStreamingParams();
+ }
+ return desiredVideoParams;
+ }
+
+ public void setAcceptedVideoParams(VideoStreamingParams params){
+ this.acceptedVideoParams = params;
+ }
+
+ public VideoStreamingParams getAcceptedVideoParams(){
+ return acceptedVideoParams;
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/protocol/BinaryFrameHeader.java b/sdl_android/src/main/java/com/smartdevicelink/protocol/BinaryFrameHeader.java index eb8f36831..5848b9f5a 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/protocol/BinaryFrameHeader.java +++ b/sdl_android/src/main/java/com/smartdevicelink/protocol/BinaryFrameHeader.java @@ -44,7 +44,7 @@ public class BinaryFrameHeader { System.arraycopy(binHeader, 12 + _jsonSize, _bulkData, 0, _bulkData.length);
msg.setBulkData(_bulkData);
}
- } catch (OutOfMemoryError e){
+ } catch (OutOfMemoryError|ArrayIndexOutOfBoundsException e){
Log.e(TAG, "Unable to process data to form header");
return null;
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlPacket.java b/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlPacket.java index 9c7a02852..cc14cdac7 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlPacket.java +++ b/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlPacket.java @@ -1,7 +1,9 @@ package com.smartdevicelink.protocol; import java.nio.ByteBuffer; +import java.util.HashMap; +import com.livio.BSON.BsonEncoder; import com.smartdevicelink.protocol.enums.FrameType; import android.os.Parcel; @@ -65,6 +67,7 @@ public class SdlPacket implements Parcelable{ int messageId; int priorityCoefficient; byte[] payload = null; + HashMap<String, Object> bsonPayload; public SdlPacket(int version, boolean encryption, int frameType, int serviceType, int frameInfo, int sessionId, @@ -185,7 +188,12 @@ public class SdlPacket implements Parcelable{ return payload; } - public byte[] constructPacket(){ + public byte[] constructPacket() { + if (bsonPayload != null && !bsonPayload.isEmpty()) { + byte[] bsonBytes = BsonEncoder.encodeToBytes(bsonPayload); + payload = bsonBytes; + dataSize = bsonBytes.length; + } return constructPacket(version, encryption, frameType, serviceType, frameInfo, sessionId, dataSize, messageId, payload); @@ -219,6 +227,7 @@ public class SdlPacket implements Parcelable{ public static byte[] constructPacket(int version, boolean encryption, int frameType, int serviceType, int controlFrameInfo, int sessionId, int dataSize, int messageId, byte[] payload){ + ByteBuffer builder; switch(version){ case 1: @@ -344,6 +353,25 @@ public class SdlPacket implements Parcelable{ } }; - - + + public void putTag(String tag, Object data){ + if(bsonPayload == null){ + bsonPayload = new HashMap<>(); + } + bsonPayload.put(tag, data); + } + + public Object getTag(String tag){ + if(payload == null){ + return null; + }else if(bsonPayload == null || bsonPayload.isEmpty()){ + bsonPayload = BsonEncoder.decodeFromBytes(payload); + } + + if(bsonPayload == null){ + return null; + } + + return bsonPayload.get(tag); + } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/protocol/WiProProtocol.java b/sdl_android/src/main/java/com/smartdevicelink/protocol/WiProProtocol.java index 7b36b1689..fa3ab3a32 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/protocol/WiProProtocol.java +++ b/sdl_android/src/main/java/com/smartdevicelink/protocol/WiProProtocol.java @@ -4,27 +4,39 @@ import com.smartdevicelink.SdlConnection.SdlConnection; import com.smartdevicelink.SdlConnection.SdlSession;
import com.smartdevicelink.exception.SdlException;
import com.smartdevicelink.exception.SdlExceptionCause;
+import com.smartdevicelink.protocol.enums.ControlFrameTags;
import com.smartdevicelink.protocol.enums.FrameDataControlFrameType;
import com.smartdevicelink.protocol.enums.FrameType;
import com.smartdevicelink.protocol.enums.MessageType;
import com.smartdevicelink.protocol.enums.SessionType;
+import com.smartdevicelink.proxy.rpc.ImageResolution;
+import com.smartdevicelink.proxy.rpc.VideoStreamingFormat;
+import com.smartdevicelink.proxy.rpc.enums.VideoStreamingCodec;
+import com.smartdevicelink.proxy.rpc.enums.VideoStreamingProtocol;
import com.smartdevicelink.security.SdlSecurityBase;
+import com.smartdevicelink.streaming.VideoStreamingParams;
import com.smartdevicelink.util.BitConverter;
import com.smartdevicelink.util.DebugTool;
+import com.smartdevicelink.util.Version;
import java.io.ByteArrayOutputStream;
+import java.util.HashMap;
import java.util.Hashtable;
+import java.util.List;
public class WiProProtocol extends AbstractProtocol {
- byte _version = 1;
private final static String FailurePropagating_Msg = "Failure propagating ";
+ //If increasing MAX PROTOCOL VERSION major version, make sure to alter it in SdlPsm
+ public static final Version MAX_PROTOCOL_VERSION = new Version("5.0.0");
+ private Version protocolVersion = new Version("1.0.0");
+ byte _version = 1;
public static final int V1_V2_MTU_SIZE = 1500;
public static final int V3_V4_MTU_SIZE = 131072;
public static final int V1_HEADER_SIZE = 8;
public static final int V2_HEADER_SIZE = 12;
private static int HEADER_SIZE = 8;
- private static int MAX_DATA_SIZE = V1_V2_MTU_SIZE - HEADER_SIZE;
+ private static int TLS_MAX_RECORD_SIZE = 16384;
int hashID = 0;
int messageID = 0;
@@ -38,6 +50,7 @@ public class WiProProtocol extends AbstractProtocol { Hashtable<Integer, MessageFrameAssembler> _assemblerForMessageID = new Hashtable<Integer, MessageFrameAssembler>();
Hashtable<Byte, Hashtable<Integer, MessageFrameAssembler>> _assemblerForSessionID = new Hashtable<Byte, Hashtable<Integer, MessageFrameAssembler>>();
Hashtable<Byte, Object> _messageLocks = new Hashtable<Byte, Object>();
+ private HashMap<SessionType, Long> mtus = new HashMap<SessionType,Long>();
// Hide no-arg ctor
private WiProProtocol() {
@@ -51,6 +64,7 @@ public class WiProProtocol extends AbstractProtocol { {
sdlconn = (SdlConnection) protocolListener;
}
+ mtus.put(SessionType.RPC, new Long(V1_V2_MTU_SIZE - HEADER_SIZE));
} // end-ctor
/**
@@ -58,49 +72,88 @@ public class WiProProtocol extends AbstractProtocol { * @return the max transfer unit
*/
public int getMtu(){
- return MAX_DATA_SIZE;
+ return mtus.get(SessionType.RPC).intValue();
}
-
+
+ public long getMtu(SessionType type){
+ Long mtu = mtus.get(type);
+ if(mtu == null){
+ mtu = mtus.get(SessionType.RPC);
+ }
+ return mtu;
+ }
+
+
+ /**
+ * Use getProtocolVersion() or getMajorVersionByte instead.<br>
+ * Returns the Major version of the currently used protocol version
+ */
+ @Deprecated
public byte getVersion() {
- return this._version;
+ return getMajorVersionByte();
}
-
+
+ public Version getProtocolVersion(){
+ return this.protocolVersion;
+ }
+ public byte getMajorVersionByte(){
+ if(_version == 1){
+ _version = new Integer(this.protocolVersion.getMajor()).byteValue();
+ }
+ return _version;
+
+ }
+
+ /**
+ * This method will set the major protocol version that we should use. It will also set the default MTU based on version.
+ * @param version
+ */
public void setVersion(byte version) {
- if (version > 4) {
- this._version = 4; //protect for future, proxy only supports v4 or lower
+ if (version > 5) {
+ this.protocolVersion = new Version("5.0.0"); //protect for future, proxy only supports v5 or lower
+ HEADER_SIZE = 12;
+ mtus.put(SessionType.RPC,new Long(V3_V4_MTU_SIZE) );
+ } else if (version == 5) {
+ this.protocolVersion = new Version("5.0.0");
HEADER_SIZE = 12;
- MAX_DATA_SIZE = V1_V2_MTU_SIZE - HEADER_SIZE; //default to lowest size since capabilities of this version are unknown
- } else if (version == 4) {
- this._version = version;
+ mtus.put(SessionType.RPC,new Long(V3_V4_MTU_SIZE) );
+ }else if (version == 4) {
+ this.protocolVersion = new Version("4.0.0");
HEADER_SIZE = 12;
- MAX_DATA_SIZE = V3_V4_MTU_SIZE; //versions 4 supports 128k MTU
+ mtus.put(SessionType.RPC,new Long(V3_V4_MTU_SIZE) ); //versions 4 supports 128k MTU
} else if (version == 3) {
- this._version = version;
+ this.protocolVersion = new Version("3.0.0");
HEADER_SIZE = 12;
- MAX_DATA_SIZE = V3_V4_MTU_SIZE; //versions 3 supports 128k MTU
+ mtus.put(SessionType.RPC,new Long(V3_V4_MTU_SIZE) ); //versions 3 supports 128k MTU
} else if (version == 2) {
- this._version = version;
+ this.protocolVersion = new Version("2.0.0");
HEADER_SIZE = 12;
- MAX_DATA_SIZE = V1_V2_MTU_SIZE - HEADER_SIZE;
+ mtus.put(SessionType.RPC,new Long(V1_V2_MTU_SIZE - HEADER_SIZE) );
} else if (version == 1){
- this._version = version;
+ this.protocolVersion = new Version("1.0.0");
HEADER_SIZE = 8;
- MAX_DATA_SIZE = V1_V2_MTU_SIZE - HEADER_SIZE;
+ mtus.put(SessionType.RPC,new Long(V1_V2_MTU_SIZE - HEADER_SIZE) );
}
}
public void StartProtocolSession(SessionType sessionType) {
- SdlPacket header = SdlPacketFactory.createStartSession(sessionType, 0x00, _version, (byte) 0x00, false);
+ SdlPacket header = SdlPacketFactory.createStartSession(sessionType, 0x00, getMajorVersionByte(), (byte) 0x00, false);
+ if(sessionType.equals(SessionType.RPC)){ // check for RPC session
+ header.putTag(ControlFrameTags.RPC.StartService.PROTOCOL_VERSION, MAX_PROTOCOL_VERSION.toString());
+ }
handlePacketToSend(header);
} // end-method
private void sendStartProtocolSessionACK(SessionType sessionType, byte sessionID) {
- SdlPacket header = SdlPacketFactory.createStartSessionACK(sessionType, sessionID, 0x00, _version);
+ SdlPacket header = SdlPacketFactory.createStartSessionACK(sessionType, sessionID, 0x00, getMajorVersionByte());
handlePacketToSend(header);
} // end-method
public void EndProtocolSession(SessionType sessionType, byte sessionID, int hashId) {
- SdlPacket header = SdlPacketFactory.createEndSession(sessionType, sessionID, hashID, _version, BitConverter.intToByteArray(hashId));
+ SdlPacket header = SdlPacketFactory.createEndSession(sessionType, sessionID, hashID, getMajorVersionByte(), BitConverter.intToByteArray(hashId));
+ if(sessionType.equals(SessionType.RPC)){ // check for RPC session
+ header.putTag(ControlFrameTags.RPC.EndService.HASH_ID, hashID);
+ }
handlePacketToSend(header);
} // end-method
@@ -111,7 +164,7 @@ public class WiProProtocol extends AbstractProtocol { byte sessionID = protocolMsg.getSessionID();
byte[] data = null;
- if (_version > 1 && sessionType != SessionType.NAV && sessionType != SessionType.PCM) {
+ if (protocolVersion.getMajor() > 1 && sessionType != SessionType.NAV && sessionType != SessionType.PCM) {
if (sessionType.eq(SessionType.CONTROL)) {
final byte[] secureData = protocolMsg.getData().clone();
data = new byte[HEADER_SIZE + secureData.length];
@@ -147,7 +200,7 @@ public class WiProProtocol extends AbstractProtocol { if (session == null)
return;
- byte[] dataToRead = new byte[4096];
+ byte[] dataToRead = new byte[TLS_MAX_RECORD_SIZE];
SdlSecurityBase sdlSec = session.getSdlSecurity();
if (sdlSec == null)
return;
@@ -171,13 +224,14 @@ public class WiProProtocol extends AbstractProtocol { }
synchronized(messageLock) {
- if (data.length > MAX_DATA_SIZE) {
-
+ if (data.length > getMtu(sessionType)) {
+
messageID++;
// Assemble first frame.
- int frameCount = data.length / MAX_DATA_SIZE;
- if (data.length % MAX_DATA_SIZE > 0) {
+ Long mtu = getMtu(sessionType);
+ int frameCount = new Long(data.length / mtu).intValue();
+ if (data.length % mtu > 0) {
frameCount++;
}
//byte[] firstFrameData = new byte[HEADER_SIZE];
@@ -187,7 +241,7 @@ public class WiProProtocol extends AbstractProtocol { // Second four bytes are frame count.
System.arraycopy(BitConverter.intToByteArray(frameCount), 0, firstFrameData, 4, 4);
- SdlPacket firstHeader = SdlPacketFactory.createMultiSendDataFirst(sessionType, sessionID, messageID, _version,firstFrameData,protocolMsg.getPayloadProtected());
+ SdlPacket firstHeader = SdlPacketFactory.createMultiSendDataFirst(sessionType, sessionID, messageID, getMajorVersionByte(),firstFrameData,protocolMsg.getPayloadProtected());
firstHeader.setPriorityCoefficient(1+protocolMsg.priorityCoefficient);
//Send the first frame
handlePacketToSend(firstHeader);
@@ -209,17 +263,17 @@ public class WiProProtocol extends AbstractProtocol { } // end-if
int bytesToWrite = data.length - currentOffset;
- if (bytesToWrite > MAX_DATA_SIZE) {
- bytesToWrite = MAX_DATA_SIZE;
+ if (bytesToWrite > mtu) {
+ bytesToWrite = mtu.intValue();
}
- SdlPacket consecHeader = SdlPacketFactory.createMultiSendDataRest(sessionType, sessionID, bytesToWrite, frameSequenceNumber , messageID, _version,data, currentOffset, bytesToWrite, protocolMsg.getPayloadProtected());
+ SdlPacket consecHeader = SdlPacketFactory.createMultiSendDataRest(sessionType, sessionID, bytesToWrite, frameSequenceNumber , messageID, getMajorVersionByte(),data, currentOffset, bytesToWrite, protocolMsg.getPayloadProtected());
consecHeader.setPriorityCoefficient(i+2+protocolMsg.priorityCoefficient);
handlePacketToSend(consecHeader);
currentOffset += bytesToWrite;
}
} else {
messageID++;
- SdlPacket header = SdlPacketFactory.createSingleSendData(sessionType, sessionID, data.length, messageID, _version,data, protocolMsg.getPayloadProtected());
+ SdlPacket header = SdlPacketFactory.createSingleSendData(sessionType, sessionID, data.length, messageID, getMajorVersionByte(),data, protocolMsg.getPayloadProtected());
header.setPriorityCoefficient(protocolMsg.priorityCoefficient);
handlePacketToSend(header);
}
@@ -228,7 +282,7 @@ public class WiProProtocol extends AbstractProtocol { public void handlePacketReceived(SdlPacket packet){
//Check for a version difference
- if (_version == 1) {
+ if (getMajorVersionByte() == 1) {
setVersion((byte)packet.version);
}
@@ -244,7 +298,7 @@ public class WiProProtocol extends AbstractProtocol { protected MessageFrameAssembler getFrameAssemblerForFrame(SdlPacket packet) {
Integer iSessionId = Integer.valueOf(packet.getSessionId());
Byte bySessionId = iSessionId.byteValue();
-
+
Hashtable<Integer, MessageFrameAssembler> hashSessionID = _assemblerForSessionID.get(bySessionId);
if (hashSessionID == null) {
hashSessionID = new Hashtable<Integer, MessageFrameAssembler>();
@@ -293,13 +347,13 @@ public class WiProProtocol extends AbstractProtocol { message.setSessionType(SessionType.valueOf((byte)packet.getServiceType()));
message.setSessionID((byte)packet.getSessionId());
//If it is WiPro 2.0 it must have binary header
- if (_version > 1) {
+ if (protocolVersion.getMajor() > 1) {
BinaryFrameHeader binFrameHeader = BinaryFrameHeader.
parseBinaryHeader(accumulator.toByteArray());
if(binFrameHeader == null) {
return;
}
- message.setVersion(_version);
+ message.setVersion(getMajorVersionByte());
message.setRPCType(binFrameHeader.getRPCType());
message.setFunctionID(binFrameHeader.getFunctionID());
message.setCorrID(binFrameHeader.getCorrID());
@@ -399,21 +453,69 @@ public class WiProProtocol extends AbstractProtocol { messageLock = new Object();
_messageLocks.put((byte)packet.getSessionId(), messageLock);
}
- int hashID = 0;
- if (_version > 1){
- if (packet.payload!= null && packet.dataSize == 4){ //hashid will be 4 bytes in length
- hashID = BitConverter.intFromByteArray(packet.payload, 0);
+ if(packet.version >= 5){
+ String mtuTag = null;
+ if(serviceType.equals(SessionType.RPC)){
+ mtuTag = ControlFrameTags.RPC.StartServiceACK.MTU;
+ }else if(serviceType.equals(SessionType.PCM)){
+ mtuTag = ControlFrameTags.Audio.StartServiceACK.MTU;
+ }else if(serviceType.equals(SessionType.NAV)){
+ mtuTag = ControlFrameTags.Video.StartServiceACK.MTU;
+ }
+ Object mtu = packet.getTag(mtuTag);
+ if(mtu!=null){
+ mtus.put(serviceType,(Long) packet.getTag(mtuTag));
+ }
+ if(serviceType.equals(SessionType.RPC)){
+ hashID = (Integer) packet.getTag(ControlFrameTags.RPC.StartServiceACK.HASH_ID);
+ Object version = packet.getTag(ControlFrameTags.RPC.StartServiceACK.PROTOCOL_VERSION);
+ if(version!=null){
+ //At this point we have confirmed the negotiated version between the module and the proxy
+ protocolVersion = new Version((String)version);
+ }
+ }else if(serviceType.equals(SessionType.NAV)){
+ SdlSession session = sdlconn.findSessionById((byte) packet.sessionId);
+ if(session != null) {
+ ImageResolution acceptedResolution = new ImageResolution();
+ VideoStreamingFormat acceptedFormat = new VideoStreamingFormat();
+ acceptedResolution.setResolutionHeight((Integer) packet.getTag(ControlFrameTags.Video.StartServiceACK.HEIGHT));
+ acceptedResolution.setResolutionWidth((Integer) packet.getTag(ControlFrameTags.Video.StartServiceACK.WIDTH));
+ acceptedFormat.setCodec(VideoStreamingCodec.valueForString((String) packet.getTag(ControlFrameTags.Video.StartServiceACK.VIDEO_CODEC)));
+ acceptedFormat.setProtocol(VideoStreamingProtocol.valueForString((String) packet.getTag(ControlFrameTags.Video.StartServiceACK.VIDEO_PROTOCOL)));
+ VideoStreamingParams agreedVideoParams = session.getDesiredVideoParams();
+ agreedVideoParams.setResolution(acceptedResolution);
+ agreedVideoParams.setFormat(acceptedFormat);
+ session.setAcceptedVideoParams(agreedVideoParams);
+ }
}
- }
- handleProtocolSessionStarted(serviceType,(byte) packet.getSessionId(), _version, "", hashID, packet.isEncrypted());
+ }else{
+ if (protocolVersion.getMajor() > 1){
+ if (packet.payload!= null && packet.dataSize == 4){ //hashid will be 4 bytes in length
+ hashID = BitConverter.intFromByteArray(packet.payload, 0);
+ }
+ }
+ }
+ handleProtocolSessionStarted(serviceType,(byte) packet.getSessionId(), getMajorVersionByte(), "", hashID, packet.isEncrypted());
} else if (frameInfo == FrameDataControlFrameType.StartSessionNACK.getValue()) {
+ if(packet.version >= 5){
+ String rejectedTag = null;
+ if(serviceType.equals(SessionType.RPC)){
+ rejectedTag = ControlFrameTags.RPC.StartServiceNAK.REJECTED_PARAMS;
+ }else if(serviceType.equals(SessionType.PCM)){
+ rejectedTag = ControlFrameTags.Audio.StartServiceNAK.REJECTED_PARAMS;
+ }else if(serviceType.equals(SessionType.NAV)){
+ rejectedTag = ControlFrameTags.Video.StartServiceNAK.REJECTED_PARAMS;
+ }
+ List<String> rejectedParams = (List<String>) packet.getTag(rejectedTag);
+ // TODO: Pass these back
+ }
if (serviceType.eq(SessionType.NAV) || serviceType.eq(SessionType.PCM)) {
- handleProtocolSessionNACKed(serviceType, (byte)packet.getSessionId(), _version, "");
+ handleProtocolSessionNACKed(serviceType, (byte)packet.getSessionId(), getMajorVersionByte(), "");
} else {
handleProtocolError("Got StartSessionNACK for protocol sessionID=" + packet.getSessionId(), null);
}
} else if (frameInfo == FrameDataControlFrameType.EndSession.getValue()) {
- if (_version > 1) {
+ if (protocolVersion.getMajor() > 1) {
handleProtocolSessionEnded(serviceType, (byte)packet.getSessionId(), "");
} else {
handleProtocolSessionEnded(serviceType, (byte)packet.getSessionId(), "");
@@ -421,6 +523,18 @@ public class WiProProtocol extends AbstractProtocol { } else if (frameInfo == FrameDataControlFrameType.EndSessionACK.getValue()) {
handleProtocolSessionEnded(serviceType, (byte)packet.getSessionId(), "");
} else if (frameInfo == FrameDataControlFrameType.EndSessionNACK.getValue()) {
+ if(packet.version >= 5){
+ String rejectedTag = null;
+ if(serviceType.equals(SessionType.RPC)){
+ rejectedTag = ControlFrameTags.RPC.EndServiceNAK.REJECTED_PARAMS;
+ }else if(serviceType.equals(SessionType.PCM)){
+ rejectedTag = ControlFrameTags.Audio.EndServiceNAK.REJECTED_PARAMS;
+ }else if(serviceType.equals(SessionType.NAV)){
+ rejectedTag = ControlFrameTags.Video.EndServiceNAK.REJECTED_PARAMS;
+ }
+ List<String> rejectedParams = (List<String>) packet.getTag(rejectedTag);
+ // TODO: Pass these back
+ }
handleProtocolSessionEndedNACK(serviceType, (byte)packet.getSessionId(), "");
} else if (frameInfo == FrameDataControlFrameType.ServiceDataACK.getValue()) {
if (packet.getPayload() != null && packet.getDataSize() == 4) //service data ack will be 4 bytes in length
@@ -445,13 +559,13 @@ public class WiProProtocol extends AbstractProtocol { message.setSessionID((byte)packet.getSessionId());
//If it is WiPro 2.0 it must have binary header
boolean isControlService = message.getSessionType().equals(SessionType.CONTROL);
- if (_version > 1&& !isControlService) {
+ if (protocolVersion.getMajor() > 1 && !isControlService) {
BinaryFrameHeader binFrameHeader = BinaryFrameHeader.
parseBinaryHeader(packet.payload);
if(binFrameHeader == null) {
return;
}
- message.setVersion(_version);
+ message.setVersion(getMajorVersionByte());
message.setRPCType(binFrameHeader.getRPCType());
message.setFunctionID(binFrameHeader.getFunctionID());
message.setCorrID(binFrameHeader.getCorrID());
@@ -478,9 +592,23 @@ public class WiProProtocol extends AbstractProtocol { @Override
public void StartProtocolService(SessionType sessionType, byte sessionID, boolean isEncrypted) {
- SdlPacket header = SdlPacketFactory.createStartSession(sessionType, 0x00, _version, sessionID, isEncrypted);
+ SdlPacket header = SdlPacketFactory.createStartSession(sessionType, 0x00, getMajorVersionByte(), sessionID, isEncrypted);
+ if(sessionType.equals(SessionType.NAV)){
+ SdlSession videoSession = sdlconn.findSessionById(sessionID);
+ if(videoSession != null){
+ ImageResolution desiredResolution = videoSession.getDesiredVideoParams().getResolution();
+ VideoStreamingFormat desiredFormat = videoSession.getDesiredVideoParams().getFormat();
+ if(desiredResolution != null){
+ header.putTag(ControlFrameTags.Video.StartService.WIDTH, desiredResolution.getResolutionWidth());
+ header.putTag(ControlFrameTags.Video.StartService.HEIGHT, desiredResolution.getResolutionHeight());
+ }
+ if(desiredFormat != null){
+ header.putTag(ControlFrameTags.Video.StartService.VIDEO_CODEC, desiredFormat.getCodec().toString());
+ header.putTag(ControlFrameTags.Video.StartService.VIDEO_PROTOCOL, desiredFormat.getProtocol().toString());
+ }
+ }
+ }
handlePacketToSend(header);
-
}
@Override
@@ -497,21 +625,20 @@ public class WiProProtocol extends AbstractProtocol { @Override
public void SendHeartBeat(byte sessionID) {
- final SdlPacket heartbeat = SdlPacketFactory.createHeartbeat(SessionType.CONTROL, sessionID, _version);
+ final SdlPacket heartbeat = SdlPacketFactory.createHeartbeat(SessionType.CONTROL, sessionID, getMajorVersionByte());
handlePacketToSend(heartbeat);
}
@Override
public void SendHeartBeatACK(byte sessionID) {
- final SdlPacket heartbeat = SdlPacketFactory.createHeartbeatACK(SessionType.CONTROL, sessionID, _version);
+ final SdlPacket heartbeat = SdlPacketFactory.createHeartbeatACK(SessionType.CONTROL, sessionID, getMajorVersionByte());
handlePacketToSend(heartbeat);
}
@Override
public void EndProtocolService(SessionType serviceType, byte sessionID) {
- SdlPacket header = SdlPacketFactory.createEndSession(serviceType, sessionID, hashID, _version, new byte[4]);
+ SdlPacket header = SdlPacketFactory.createEndSession(serviceType, sessionID, hashID, getMajorVersionByte(), new byte[4]);
handlePacketToSend(header);
-
}
} // end-class
diff --git a/sdl_android/src/main/java/com/smartdevicelink/protocol/enums/ControlFrameTags.java b/sdl_android/src/main/java/com/smartdevicelink/protocol/enums/ControlFrameTags.java new file mode 100644 index 000000000..74a001edc --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/protocol/enums/ControlFrameTags.java @@ -0,0 +1,85 @@ +package com.smartdevicelink.protocol.enums; + +/** + * Control frame payload tags that relate to the respective services. Each class represents a different service, RPC, Audio, and Video services. + */ +public class ControlFrameTags { + + private static class StartServiceACKBase{ + /** Max transport unit to be used for this service */ + public static final String MTU = "mtu"; + } + + private static class NAKBase{ + /** An array of rejected parameters related to the corresponding request*/ + public static final String REJECTED_PARAMS = "rejectedParams"; + } + + /** + * Control frame payloads that relate to the Remote Procedure Call (RPC) service. + */ + public static class RPC { + public static class StartService { + /** The max version of the protocol supported by client requesting service to start.<br> + * Must be in the format "Major.Minor.Patch" + */ + public static final String PROTOCOL_VERSION = "protocolVersion"; + } + public static class StartServiceACK extends StartServiceACKBase{ + /** The negotiated version of the protocol. Must be in the format "Major.Minor.Patch"*/ + public static final String PROTOCOL_VERSION = StartService.PROTOCOL_VERSION; + /** Hash ID to identify this service and used when sending an EndService control frame*/ + public static final String HASH_ID = "hashId"; + } + public static class StartServiceNAK extends NAKBase{} + public static class EndService { + /** Hash ID supplied in the StartServiceACK for this service type*/ + public static final String HASH_ID = RPC.StartServiceACK.HASH_ID; + } + public static class EndServiceACK {} + public static class EndServiceNAK extends NAKBase{} + } + + /** + * Control frame payloads that relate to the Audio streaming service. This service has also been referred to as the PCM service. + */ + public static class Audio { + public static class StartService {} + public static class StartServiceACK extends StartServiceACKBase{} + public static class StartServiceNAK extends NAKBase{} + public static class EndService {} + public static class EndServiceACK {} + public static class EndServiceNAK extends NAKBase{} + } + + /** + * Control frame payloads that relate to the Video streaming service. This service has also been referred to as the .h264 service. + */ + public static class Video { + public static class StartService { + /** Desired height in pixels from the client requesting the video service to start*/ + public static final String HEIGHT = "height"; + /** Desired width in pixels from the client requesting the video service to start*/ + public static final String WIDTH = "width"; + /** Desired video protocol to be used*/ + public static final String VIDEO_PROTOCOL = "videoProtocol"; + /** Desired video codec to be used*/ + public static final String VIDEO_CODEC = "videoCodec"; + } + public static class StartServiceACK extends StartServiceACKBase{ + /** Accepted height in pixels from the client requesting the video service to start*/ + public static final String HEIGHT = StartService.HEIGHT; + /** Accepted width in pixels from the client requesting the video service to start*/ + public static final String WIDTH = StartService.WIDTH; + /** Accepted video protocol to be used*/ + public static final String VIDEO_PROTOCOL = StartService.VIDEO_PROTOCOL; + /** Accepted video codec to be used*/ + public static final String VIDEO_CODEC = StartService.VIDEO_CODEC; + } + + public static class StartServiceNAK extends NAKBase{} + public static class EndService {} + public static class EndServiceACK {} + public static class EndServiceNAK extends NAKBase{} + } +} 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 e427141cf..06116c5b9 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 @@ -56,6 +56,8 @@ public enum FunctionID{ GET_WAY_POINTS(45, "GetWayPoints"),
SUBSCRIBE_WAY_POINTS(46, "SubscribeWayPoints"),
UNSUBSCRIBE_WAY_POINTS(47, "UnsubscribeWayPoints"),
+ GET_SYSTEM_CAPABILITY(48, "GetSystemCapability"),
+ SEND_HAPTIC_DATA(49, "SendHapticData"),
// NOTIFICATIONS
ON_HMI_STATUS(32768, "OnHMIStatus"),
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/LockScreenManager.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/LockScreenManager.java index 1188d28b9..28b1d3dfb 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/LockScreenManager.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/LockScreenManager.java @@ -41,11 +41,15 @@ public class LockScreenManager { public synchronized void setHMILevel(HMILevel hmiVal)
{
hmiLevel = hmiVal;
-
- if ( (hmiVal.equals(HMILevel.HMI_FULL)) || (hmiVal.equals(HMILevel.HMI_LIMITED)) )
- setUserSelectedStatus(true);
- else if (hmiVal.equals(HMILevel.HMI_NONE))
- setUserSelectedStatus(false);
+
+ if (hmiVal != null) {
+ if ((hmiVal.equals(HMILevel.HMI_FULL)) || (hmiVal.equals(HMILevel.HMI_LIMITED)))
+ setUserSelectedStatus(true);
+ else if (hmiVal.equals(HMILevel.HMI_NONE))
+ setUserSelectedStatus(false);
+ }else{
+ setUserSelectedStatus(false);
+ }
}
public synchronized OnLockScreenStatus getLockObj(/*int SessionID*/)
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCMessage.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCMessage.java index 9f3fbfbd9..e55292aad 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCMessage.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCMessage.java @@ -70,17 +70,60 @@ public class RPCMessage extends RPCStruct { }
return null;
}
+
+ // Generalized Getters and Setters
- public void setParameters(String functionName, Object value) {
+ public void setParameters(String key, Object value) {
if (value != null) {
- parameters.put(functionName, value);
+ parameters.put(key, value);
} else {
- parameters.remove(functionName);
+ parameters.remove(key);
}
}
-
- public Object getParameters(String functionName) {
- return parameters.get(functionName);
+
+ public Object getParameters(String key) {
+ return parameters.get(key);
+ }
+
+ @Override
+ public Object getObject(Class tClass, String key) {
+ Object obj = parameters.get(key);
+ return formatObject(tClass, obj);
+ }
+
+ // Common Object Getters
+
+ @Override
+ public String getString(String key) {
+ return (String) parameters.get(key);
+ }
+
+ @Override
+ public Integer getInteger(String key) {
+ return (Integer) parameters.get(key);
+ }
+
+ @Override
+ public Float getFloat(String key) {
+ return (Float) parameters.get(key);
+ }
+
+ @Override
+ public Double getDouble(String key) {
+ return (Double) parameters.get(key);
}
+ @Override
+ public Boolean getBoolean(String key) { return (Boolean) parameters.get(key); }
+
+ @Override
+ public Long getLong(String key){
+ Object result = parameters.get(key);
+ if (result instanceof Integer) {
+ return ((Integer) result).longValue();
+ }else if(result instanceof Long){
+ return (Long) result;
+ }
+ return null;
+ }
}
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 4aea8e146..116c491df 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCStruct.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCStruct.java @@ -1,12 +1,17 @@ package com.smartdevicelink.proxy;
-import java.util.Hashtable;
-import java.util.Set;
+import com.smartdevicelink.marshal.JsonRPCMarshaller;
import org.json.JSONException;
import org.json.JSONObject;
-import com.smartdevicelink.marshal.JsonRPCMarshaller;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Set;
public class RPCStruct {
public static final String KEY_BULK_DATA = "bulkData";
@@ -110,4 +115,135 @@ public class RPCStruct { }
return false;
}
+
+ // Generalized Getters and Setters
+
+ public void setValue(String key, Object value){
+ if (value != null) {
+ store.put(key, value);
+ } else {
+ store.remove(key);
+ }
+ }
+
+ public Object getValue(String key) {
+ return store.get(key);
+ }
+
+ public Object getObject(Class tClass, String key) {
+ Object obj = store.get(key);
+ return formatObject(tClass, obj);
+ }
+
+ // Helper methods
+
+ /**
+ * @param tClass a Class to cast Objects to
+ * @param obj Object returned from a stored hashtable
+ * @return A null object if obj is null or if none of the following is true:
+ * a) obj is an instance of tClass
+ * b) obj is an instance of String and it tClass has a valid `valueForString` method
+ * c) obj is an instance of a Hashtable
+ * d) obj is an instance of a List
+ */
+ protected Object formatObject(Class tClass, Object obj){
+ if(obj == null){
+ return null;
+ } else if (tClass.isInstance(obj)) {
+ return obj;
+ } else if (obj instanceof String) {
+ return getValueForString(tClass, (String) obj);
+ } else if (obj instanceof Hashtable) {
+ try {
+ Constructor constructor = tClass.getConstructor(Hashtable.class);
+ return constructor.newInstance((Hashtable<String, Object>) obj);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if (obj instanceof List<?>) {
+ List<?> list = (List<?>) obj;
+ if (list != null && list.size() > 0) {
+ Object item = list.get(0);
+ if (tClass.isInstance(item)) {
+ return list;
+ } else if (item instanceof Hashtable) {
+ List<Object> newList = new ArrayList<Object>();
+ for (Object hashObj : list) {
+ try {
+ Constructor constructor = tClass.getConstructor(Hashtable.class);
+ newList.add(constructor.newInstance((Hashtable<String, Object>)hashObj));
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+ return newList;
+ } else if (item instanceof String){
+ List<Object> newList = new ArrayList<Object>();
+ for (Object hashObj : list) {
+ Object toAdd = getValueForString(tClass, (String) hashObj);
+ if (toAdd != null) {
+ newList.add(toAdd);
+ }
+ }
+ return newList;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @param tClass - a Class with a `valueForString(String s)` method that returns an Object for a given String
+ * @param s - a String to be converted to an Object using a `valueForString(String s)` method
+ * @return An Object converted using a `valueForString(String s)` method in the Class passed in, or a null object if such method does not exist
+ */
+ protected Object getValueForString(Class tClass, String s){
+ Method valueForString = null;
+ try {
+ valueForString = tClass.getDeclaredMethod("valueForString", String.class);
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ }
+ if(valueForString != null){
+ try {
+ Object value = valueForString.invoke(null, (String) s);
+ return value;
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+ return null;
+ }
+
+ // Common Object Getters
+ public String getString(String key) {
+ return (String) store.get(key);
+ }
+
+ public Integer getInteger(String key) {
+ return (Integer) store.get(key);
+ }
+
+ public Double getDouble(String key) {
+ return (Double) store.get(key);
+ }
+
+ public Float getFloat(String key) {
+ return (Float) store.get(key);
+ }
+
+ public Boolean getBoolean(String key) { return (Boolean) store.get(key); }
+
+ public Long getLong(String key){
+ Object result = store.get(key);
+ if (result instanceof Integer) {
+ return ((Integer) result).longValue();
+ }else if(result instanceof Long){
+ return (Long) result;
+ }
+ 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 7678eaaa6..e71f1d97a 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java @@ -58,6 +58,7 @@ import com.smartdevicelink.proxy.callbacks.OnServiceNACKed; import com.smartdevicelink.proxy.interfaces.IProxyListenerALM;
import com.smartdevicelink.proxy.interfaces.IProxyListenerBase;
import com.smartdevicelink.proxy.interfaces.IPutFileResponseListener;
+import com.smartdevicelink.proxy.interfaces.ISdlServiceListener;
import com.smartdevicelink.proxy.rpc.*;
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
import com.smartdevicelink.proxy.rpc.enums.AudioStreamingState;
@@ -83,12 +84,15 @@ import com.smartdevicelink.proxy.rpc.enums.SpeechCapabilities; import com.smartdevicelink.proxy.rpc.enums.SystemContext;
import com.smartdevicelink.proxy.rpc.enums.TextAlignment;
import com.smartdevicelink.proxy.rpc.enums.UpdateMode;
+import com.smartdevicelink.proxy.rpc.enums.VideoStreamingCodec;
+import com.smartdevicelink.proxy.rpc.enums.VideoStreamingProtocol;
import com.smartdevicelink.proxy.rpc.enums.VrCapabilities;
import com.smartdevicelink.proxy.rpc.listeners.OnPutFileUpdateListener;
import com.smartdevicelink.proxy.rpc.listeners.OnRPCNotificationListener;
import com.smartdevicelink.proxy.rpc.listeners.OnRPCResponseListener;
import com.smartdevicelink.security.SdlSecurityBase;
import com.smartdevicelink.streaming.StreamRPCPacketizer;
+import com.smartdevicelink.streaming.VideoStreamingParams;
import com.smartdevicelink.trace.SdlTrace;
import com.smartdevicelink.trace.TraceDeviceInfo;
import com.smartdevicelink.trace.enums.InterfaceActivityDirection;
@@ -565,7 +569,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> // so we need to fix this, but vulnerability (i.e. two instances of listener) is
// likely harmless.
if (_traceDeviceInterrogator == null) {
- _traceDeviceInterrogator = new TraceDeviceInfo(sdlProxyConfigurationResources.getTelephonyManager());
+ _traceDeviceInterrogator = new TraceDeviceInfo(telephonyManager);
} // end-if
} // end-if
@@ -2831,11 +2835,42 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> _proxyListener.onUpdateTurnListResponse(msg);
onRPCResponseReceived(msg);
}
+ } else if (functionName.equals(FunctionID.GET_SYSTEM_CAPABILITY.toString())) {
+ // GetSystemCapabilityResponse
+ final GetSystemCapabilityResponse msg = new GetSystemCapabilityResponse(hash);
+ if (_callbackToUIThread) {
+ _mainUIHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ _proxyListener.onGetSystemCapabilityResponse(msg);
+ onRPCResponseReceived(msg);
+ }
+ });
+ } else {
+ _proxyListener.onGetSystemCapabilityResponse(msg);
+ onRPCResponseReceived(msg);
+ }
+ }
+ else if (functionName.equals(FunctionID.SEND_HAPTIC_DATA.toString())) {
+ final SendHapticDataResponse msg = new SendHapticDataResponse(hash);
+ if (_callbackToUIThread) {
+ // Run in UI thread
+ _mainUIHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ _proxyListener.onSendHapticDataResponse((SendHapticDataResponse) msg);
+ onRPCResponseReceived(msg);
+ }
+ });
+ } else {
+ _proxyListener.onSendHapticDataResponse((SendHapticDataResponse) msg);
+ onRPCResponseReceived(msg);
+ }
}
else {
if (_sdlMsgVersion != null) {
DebugTool.logError("Unrecognized response Message: " + functionName.toString() +
- "SDL Message Version = " + _sdlMsgVersion);
+ " SDL Message Version = " + _sdlMsgVersion);
} else {
DebugTool.logError("Unrecognized response Message: " + functionName.toString());
}
@@ -3495,7 +3530,19 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
public ScheduledExecutorService createScheduler(){
return Executors.newSingleThreadScheduledExecutor();
- }
+ }
+
+ public void startService(SessionType serviceType, boolean isEncrypted){
+ sdlSession.startService(serviceType, sdlSession.getSessionId(), isEncrypted);
+ }
+
+ public void endService(SessionType serviceType){
+ sdlSession.endService(serviceType, sdlSession.getSessionId());
+ }
+
+ public void setDesiredVideoParams(VideoStreamingParams params){
+ sdlSession.setDesiredVideoParams(params);
+ }
/**
*Opens the video service (serviceType 11) and subsequently streams raw H264 video from an InputStream provided by the app
@@ -3834,7 +3881,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> private void AudioServiceEndedNACK() {
pcmServiceEndResponseReceived = true;
pcmServiceEndResponse = false;
- }
+ }
public void setAppService(Service mService)
{
@@ -5549,6 +5596,22 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> return sdlSession.isServiceProtected(sType);
}
+
+ public void addServiceListener(SessionType serviceType, ISdlServiceListener sdlServiceListener){
+ if(serviceType != null && sdlSession != null && sdlServiceListener != null){
+ sdlSession.addServiceListener(serviceType, sdlServiceListener);
+ }
+ }
+
+ public void removeServiceListener(SessionType serviceType, ISdlServiceListener sdlServiceListener){
+ if(serviceType != null && sdlSession != null && sdlServiceListener != null){
+ sdlSession.removeServiceListener(serviceType, sdlServiceListener);
+ }
+ }
+
+ public VideoStreamingParams getAcceptedVideoParams(){
+ return sdlSession.getAcceptedVideoParams();
+ }
public IProxyListenerBase getProxyListener()
{
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 8b437e05e..80842cfc2 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 @@ -17,6 +17,7 @@ import com.smartdevicelink.proxy.rpc.DialNumberResponse; import com.smartdevicelink.proxy.rpc.EndAudioPassThruResponse;
import com.smartdevicelink.proxy.rpc.GenericResponse;
import com.smartdevicelink.proxy.rpc.GetDTCsResponse;
+import com.smartdevicelink.proxy.rpc.GetSystemCapabilityResponse;
import com.smartdevicelink.proxy.rpc.GetVehicleDataResponse;
import com.smartdevicelink.proxy.rpc.GetWayPointsResponse;
import com.smartdevicelink.proxy.rpc.ListFilesResponse;
@@ -31,9 +32,9 @@ 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.OnStreamRPC;
import com.smartdevicelink.proxy.rpc.OnSystemRequest;
import com.smartdevicelink.proxy.rpc.OnTBTClientState;
-import com.smartdevicelink.proxy.rpc.OnStreamRPC;
import com.smartdevicelink.proxy.rpc.OnTouchEvent;
import com.smartdevicelink.proxy.rpc.OnVehicleData;
import com.smartdevicelink.proxy.rpc.OnWayPointChange;
@@ -43,6 +44,7 @@ import com.smartdevicelink.proxy.rpc.PutFileResponse; import com.smartdevicelink.proxy.rpc.ReadDIDResponse;
import com.smartdevicelink.proxy.rpc.ResetGlobalPropertiesResponse;
import com.smartdevicelink.proxy.rpc.ScrollableMessageResponse;
+import com.smartdevicelink.proxy.rpc.SendHapticDataResponse;
import com.smartdevicelink.proxy.rpc.SendLocationResponse;
import com.smartdevicelink.proxy.rpc.SetAppIconResponse;
import com.smartdevicelink.proxy.rpc.SetDisplayLayoutResponse;
@@ -335,4 +337,8 @@ public interface IProxyListenerBase { public void onUnsubscribeWayPointsResponse(UnsubscribeWayPointsResponse response);
public void onOnWayPointChange(OnWayPointChange notification);
+
+ public void onGetSystemCapabilityResponse(GetSystemCapabilityResponse response);
+
+ public void onSendHapticDataResponse(SendHapticDataResponse response);
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/ISdlServiceListener.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/ISdlServiceListener.java new file mode 100644 index 000000000..db5179a73 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/ISdlServiceListener.java @@ -0,0 +1,11 @@ +package com.smartdevicelink.proxy.interfaces; + + +import com.smartdevicelink.SdlConnection.SdlSession; +import com.smartdevicelink.protocol.enums.SessionType; + +public interface ISdlServiceListener { + public void onServiceStarted(SdlSession session, SessionType type, boolean isEncrypted); + public void onServiceEnded(SdlSession session, SessionType type); + public void onServiceError(SdlSession session, SessionType type, String reason); +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AddCommand.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AddCommand.java index 57b58ea5b..c8936edb8 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AddCommand.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AddCommand.java @@ -1,11 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
-import com.smartdevicelink.util.DebugTool;
+
+import java.util.Hashtable;
+import java.util.List;
/**
*
@@ -119,7 +118,7 @@ public class AddCommand extends RPCRequest { * @return Integer -an integer representation a Unique Command ID
*/
public Integer getCmdID() {
- return (Integer) parameters.get(KEY_CMD_ID);
+ return getInteger(KEY_CMD_ID);
}
/**
* <p>Sets an Unique Command ID that identifies the command. Is returned in an
@@ -133,11 +132,7 @@ public class AddCommand extends RPCRequest { * <b>Notes:</b> Min Value: 0; Max Value: 2000000000</p>
*/
public void setCmdID(Integer cmdID) {
- if (cmdID != null) {
- parameters.put(KEY_CMD_ID, cmdID);
- } else {
- parameters.remove(KEY_CMD_ID);
- }
+ setParameters(KEY_CMD_ID, cmdID);
}
/**
* <p>
@@ -150,18 +145,7 @@ public class AddCommand extends RPCRequest { */
@SuppressWarnings("unchecked")
public MenuParams getMenuParams() {
- Object obj = parameters.get(KEY_MENU_PARAMS);
- if (obj instanceof MenuParams) {
- return (MenuParams) obj;
- }
- else if (obj instanceof Hashtable) {
- try {
- return new MenuParams((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_MENU_PARAMS, e);
- }
- }
- return null;
+ return (MenuParams) getObject(MenuParams.class, KEY_MENU_PARAMS);
}
/**
* <p>
@@ -175,11 +159,7 @@ public class AddCommand extends RPCRequest { * a menuParams object
*/
public void setMenuParams(MenuParams menuParams) {
- if (menuParams != null) {
- parameters.put(KEY_MENU_PARAMS, menuParams);
- } else {
- parameters.remove(KEY_MENU_PARAMS);
- }
+ setParameters(KEY_MENU_PARAMS, menuParams);
}
/**
* <p>
@@ -190,16 +170,7 @@ public class AddCommand extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<String> getVrCommands() {
- if (parameters.get(KEY_VR_COMMANDS) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_VR_COMMANDS);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>)list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_VR_COMMANDS);
}
/**
* <p>
@@ -219,11 +190,7 @@ public class AddCommand extends RPCRequest { * not zero-length, not whitespace only) element</p>
*/
public void setVrCommands( List<String> vrCommands ) {
- if (vrCommands != null) {
- parameters.put(KEY_VR_COMMANDS, vrCommands );
- } else {
- parameters.remove(KEY_VR_COMMANDS);
- }
+ setParameters(KEY_VR_COMMANDS, vrCommands);
}
/**
@@ -234,17 +201,7 @@ public class AddCommand extends RPCRequest { */
@SuppressWarnings("unchecked")
public Image getCmdIcon() {
- Object obj = parameters.get(KEY_CMD_ICON);
- if (obj instanceof Image) {
- return (Image) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new Image((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_CMD_ICON, e);
- }
- }
- return null;
+ return (Image) getObject(Image.class, KEY_CMD_ICON);
}
/**
@@ -259,10 +216,6 @@ public class AddCommand extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setCmdIcon(Image cmdIcon) {
- if (cmdIcon != null) {
- parameters.put(KEY_CMD_ICON, cmdIcon);
- } else {
- parameters.remove(KEY_CMD_ICON);
- }
+ setParameters(KEY_CMD_ICON, cmdIcon);
}
}
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 2edc70c50..8c55bbd9a 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 @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+
/**
* <p>Add a SubMenu to the Command Menu</p>
*
@@ -90,7 +90,7 @@ public class AddSubMenu extends RPCRequest { * menu
*/
public Integer getMenuID() {
- return (Integer) parameters.get( KEY_MENU_ID );
+ return getInteger( KEY_MENU_ID );
}
/**
* <p>Sets a Menu ID that identifies a sub menu.</p><p> This value is used in
@@ -104,11 +104,7 @@ public class AddSubMenu extends RPCRequest { * <p><b>Notes:</b> Min Value: 0; Max Value: 2000000000</p>
*/
public void setMenuID( Integer menuID ) {
- if (menuID != null) {
- parameters.put(KEY_MENU_ID, menuID );
- } else {
- parameters.remove(KEY_MENU_ID);
- }
+ setParameters(KEY_MENU_ID, menuID);
}
/**
* <p>Returns an <i>Integer</i> object representing the position of menu</p>
@@ -117,7 +113,7 @@ public class AddSubMenu extends RPCRequest { * @return Integer -the value representing the relative position of menus
*/
public Integer getPosition() {
- return (Integer) parameters.get( KEY_POSITION );
+ return getInteger( KEY_POSITION );
}
/**
* Sets a position of menu
@@ -140,11 +136,7 @@ public class AddSubMenu extends RPCRequest { * </ul>
*/
public void setPosition( Integer position ) {
- if (position != null) {
- parameters.put(KEY_POSITION, position );
- } else {
- parameters.remove(KEY_POSITION);
- }
+ setParameters(KEY_POSITION, position);
}
/**
* Returns String which is displayed representing this submenu item
@@ -152,7 +144,7 @@ public class AddSubMenu extends RPCRequest { * @return String -a Submenu item's name
*/
public String getMenuName() {
- return (String) parameters.get( KEY_MENU_NAME );
+ return getString( KEY_MENU_NAME );
}
/**
* Sets a menuName which is displayed representing this submenu item
@@ -161,10 +153,6 @@ public class AddSubMenu extends RPCRequest { * String which will be displayed representing this submenu item
*/
public void setMenuName( String menuName ) {
- if (menuName != null) {
- parameters.put(KEY_MENU_NAME, menuName );
- } else {
- parameters.remove(KEY_MENU_NAME);
- }
+ setParameters(KEY_MENU_NAME, menuName);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AirbagStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AirbagStatus.java index b80a9c2c4..1c6fb52bb 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AirbagStatus.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AirbagStatus.java @@ -4,6 +4,10 @@ import java.util.Hashtable; import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
+
+import static com.smartdevicelink.proxy.constants.Names.driverCurtainAirbagDeployed;
+import static com.smartdevicelink.proxy.constants.Names.driverSideAirbagDeployed;
+
/**
* <p>The status of the air bags.</p>
*
@@ -104,131 +108,51 @@ public class AirbagStatus extends RPCStruct { }
public void setDriverAirbagDeployed(VehicleDataEventStatus driverAirbagDeployed) {
- if (driverAirbagDeployed != null) {
- store.put(KEY_DRIVER_AIRBAG_DEPLOYED, driverAirbagDeployed);
- } else {
- store.remove(KEY_DRIVER_AIRBAG_DEPLOYED);
- }
+ setValue(KEY_DRIVER_AIRBAG_DEPLOYED, driverAirbagDeployed);
}
public VehicleDataEventStatus getDriverAirbagDeployed() {
- Object obj = store.get(KEY_DRIVER_AIRBAG_DEPLOYED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_DRIVER_AIRBAG_DEPLOYED);
}
public void setDriverSideAirbagDeployed(VehicleDataEventStatus driverSideAirbagDeployed) {
- if (driverSideAirbagDeployed != null) {
- store.put(KEY_DRIVER_SIDE_AIRBAG_DEPLOYED, driverSideAirbagDeployed);
- } else {
- store.remove(KEY_DRIVER_SIDE_AIRBAG_DEPLOYED);
- }
+ setValue(KEY_DRIVER_SIDE_AIRBAG_DEPLOYED, driverSideAirbagDeployed);
}
public VehicleDataEventStatus getDriverSideAirbagDeployed() {
- Object obj = store.get(KEY_DRIVER_SIDE_AIRBAG_DEPLOYED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_DRIVER_SIDE_AIRBAG_DEPLOYED);
}
public void setDriverCurtainAirbagDeployed(VehicleDataEventStatus driverCurtainAirbagDeployed) {
- if (driverCurtainAirbagDeployed != null) {
- store.put(KEY_DRIVER_CURTAIN_AIRBAG_DEPLOYED, driverCurtainAirbagDeployed);
- } else {
- store.remove(KEY_DRIVER_CURTAIN_AIRBAG_DEPLOYED);
- }
+ setValue(KEY_DRIVER_CURTAIN_AIRBAG_DEPLOYED, driverCurtainAirbagDeployed);
}
public VehicleDataEventStatus getDriverCurtainAirbagDeployed() {
- Object obj = store.get(KEY_DRIVER_CURTAIN_AIRBAG_DEPLOYED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_DRIVER_CURTAIN_AIRBAG_DEPLOYED);
}
public void setPassengerAirbagDeployed(VehicleDataEventStatus passengerAirbagDeployed) {
- if (passengerAirbagDeployed != null) {
- store.put(KEY_PASSENGER_AIRBAG_DEPLOYED, passengerAirbagDeployed);
- } else {
- store.remove(KEY_PASSENGER_AIRBAG_DEPLOYED);
- }
+ setValue(KEY_PASSENGER_AIRBAG_DEPLOYED, passengerAirbagDeployed);
}
public VehicleDataEventStatus getPassengerAirbagDeployed() {
- Object obj = store.get(KEY_PASSENGER_AIRBAG_DEPLOYED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_PASSENGER_AIRBAG_DEPLOYED);
}
public void setPassengerCurtainAirbagDeployed(VehicleDataEventStatus passengerCurtainAirbagDeployed) {
- if (passengerCurtainAirbagDeployed != null) {
- store.put(KEY_PASSENGER_CURTAIN_AIRBAG_DEPLOYED, passengerCurtainAirbagDeployed);
- } else {
- store.remove(KEY_PASSENGER_CURTAIN_AIRBAG_DEPLOYED);
- }
+ setValue(KEY_PASSENGER_CURTAIN_AIRBAG_DEPLOYED, passengerCurtainAirbagDeployed);
}
public VehicleDataEventStatus getPassengerCurtainAirbagDeployed() {
- Object obj = store.get(KEY_PASSENGER_CURTAIN_AIRBAG_DEPLOYED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_PASSENGER_CURTAIN_AIRBAG_DEPLOYED);
}
public void setDriverKneeAirbagDeployed(VehicleDataEventStatus driverKneeAirbagDeployed) {
- if (driverKneeAirbagDeployed != null) {
- store.put(KEY_DRIVER_KNEE_AIRBAG_DEPLOYED, driverKneeAirbagDeployed);
- } else {
- store.remove(KEY_DRIVER_KNEE_AIRBAG_DEPLOYED);
- }
+ setValue(KEY_DRIVER_KNEE_AIRBAG_DEPLOYED, driverKneeAirbagDeployed);
}
public VehicleDataEventStatus getDriverKneeAirbagDeployed() {
- Object obj = store.get(KEY_DRIVER_KNEE_AIRBAG_DEPLOYED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_DRIVER_KNEE_AIRBAG_DEPLOYED);
}
public void setPassengerSideAirbagDeployed(VehicleDataEventStatus passengerSideAirbagDeployed) {
- if (passengerSideAirbagDeployed != null) {
- store.put(KEY_PASSENGER_SIDE_AIRBAG_DEPLOYED, passengerSideAirbagDeployed);
- } else {
- store.remove(KEY_PASSENGER_SIDE_AIRBAG_DEPLOYED);
- }
+ setValue(KEY_PASSENGER_SIDE_AIRBAG_DEPLOYED, passengerSideAirbagDeployed);
}
public VehicleDataEventStatus getPassengerSideAirbagDeployed() {
- Object obj = store.get(KEY_PASSENGER_SIDE_AIRBAG_DEPLOYED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_PASSENGER_SIDE_AIRBAG_DEPLOYED);
}
public void setPassengerKneeAirbagDeployed(VehicleDataEventStatus passengerKneeAirbagDeployed) {
- if (passengerKneeAirbagDeployed != null) {
- store.put(KEY_PASSENGER_KNEE_AIRBAG_DEPLOYED, passengerKneeAirbagDeployed);
- } else {
- store.remove(KEY_PASSENGER_KNEE_AIRBAG_DEPLOYED);
- }
+ setValue(KEY_PASSENGER_KNEE_AIRBAG_DEPLOYED, passengerKneeAirbagDeployed);
}
public VehicleDataEventStatus getPassengerKneeAirbagDeployed() {
- Object obj = store.get(KEY_PASSENGER_KNEE_AIRBAG_DEPLOYED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_PASSENGER_KNEE_AIRBAG_DEPLOYED);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Alert.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Alert.java index 811d65a42..d0c4e0400 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Alert.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Alert.java @@ -1,12 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* Provides information to the user using either TTS, the Display or both and
* can include a system-generated alert tone
@@ -149,7 +148,7 @@ public class Alert extends RPCRequest { * in the first field during the Alert
*/
public String getAlertText1() {
- return (String) parameters.get(KEY_ALERT_TEXT_1);
+ return getString(KEY_ALERT_TEXT_1);
}
/**
* Sets the String to be displayed in the first field of the display during
@@ -167,11 +166,7 @@ public class Alert extends RPCRequest { * </ul>
*/
public void setAlertText1(String alertText1) {
- if (alertText1 != null) {
- parameters.put(KEY_ALERT_TEXT_1, alertText1);
- } else {
- parameters.remove(KEY_ALERT_TEXT_1);
- }
+ setParameters(KEY_ALERT_TEXT_1, alertText1);
}
/**
* Gets the text which is displayed in the second field of the display
@@ -181,7 +176,7 @@ public class Alert extends RPCRequest { * in the second field during the Alert
*/
public String getAlertText2() {
- return (String) parameters.get(KEY_ALERT_TEXT_2);
+ return getString(KEY_ALERT_TEXT_2);
}
/**
* Sets the String to be displayed in the second field of the display during
@@ -200,11 +195,7 @@ public class Alert extends RPCRequest { * </ul>
*/
public void setAlertText2(String alertText2) {
- if (alertText2 != null) {
- parameters.put(KEY_ALERT_TEXT_2, alertText2);
- } else {
- parameters.remove(KEY_ALERT_TEXT_2);
- }
+ setParameters(KEY_ALERT_TEXT_2, alertText2);
}
/**
@@ -217,7 +208,7 @@ public class Alert extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public String getAlertText3() {
- return (String) parameters.get(KEY_ALERT_TEXT_3);
+ return getString(KEY_ALERT_TEXT_3);
}
/**
@@ -239,11 +230,7 @@ public class Alert extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setAlertText3(String alertText3) {
- if (alertText3 != null) {
- parameters.put(KEY_ALERT_TEXT_3, alertText3);
- } else {
- parameters.remove(KEY_ALERT_TEXT_3);
- }
+ setParameters(KEY_ALERT_TEXT_3, alertText3);
}
/**
* Gets TTSChunk[], the Array of type TTSChunk which, taken together,
@@ -254,22 +241,7 @@ public class Alert extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<TTSChunk> getTtsChunks() {
- if (parameters.get(KEY_TTS_CHUNKS) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_TTS_CHUNKS);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TTSChunk) {
- return (List<TTSChunk>) list;
- } else if (obj instanceof Hashtable) {
- List<TTSChunk> newList = new ArrayList<TTSChunk>();
- for (Object hashObj : list) {
- newList.add(new TTSChunk((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TTSChunk>) getObject(TTSChunk.class, KEY_TTS_CHUNKS);
}
/**
* Sets array of type TTSChunk which, taken together, specify what is to be
@@ -280,11 +252,7 @@ public class Alert extends RPCRequest { * <p> <b>Notes: </b>Array must have a least one element</p>
*/
public void setTtsChunks(List<TTSChunk> ttsChunks) {
- if (ttsChunks != null) {
- parameters.put(KEY_TTS_CHUNKS, ttsChunks);
- } else {
- parameters.remove(KEY_TTS_CHUNKS);
- }
+ setParameters(KEY_TTS_CHUNKS, ttsChunks);
}
/**
* Gets the duration of the displayed portion of the alert, in milliseconds
@@ -293,7 +261,7 @@ public class Alert extends RPCRequest { * displayed portion of the alert, in milliseconds
*/
public Integer getDuration() {
- return (Integer) parameters.get(KEY_DURATION);
+ return getInteger(KEY_DURATION);
}
/**
* <p>Sets the duration of the displayed portion of the alert, in milliseconds.
@@ -313,11 +281,7 @@ public class Alert extends RPCRequest { * </ul>
*/
public void setDuration(Integer duration) {
- if (duration != null) {
- parameters.put(KEY_DURATION, duration);
- } else {
- parameters.remove(KEY_DURATION);
- }
+ setParameters(KEY_DURATION, duration);
}
/**
* Gets a Boolean value representing the alert tone
@@ -326,7 +290,7 @@ public class Alert extends RPCRequest { * TTS (if any) is spoken
*/
public Boolean getPlayTone() {
- return (Boolean) parameters.get(KEY_PLAY_TONE);
+ return getBoolean(KEY_PLAY_TONE);
}
/**
* Sets whether the alert tone should be played before the TTS (if any) is
@@ -339,11 +303,7 @@ public class Alert extends RPCRequest { * <p> <b>Notes: </b>If omitted, default is true</p>
*/
public void setPlayTone(Boolean playTone) {
- if (playTone != null) {
- parameters.put(KEY_PLAY_TONE, playTone);
- } else {
- parameters.remove(KEY_PLAY_TONE);
- }
+ setParameters(KEY_PLAY_TONE, playTone);
}
/**
@@ -355,22 +315,7 @@ public class Alert extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<SoftButton> getSoftButtons() {
- if (parameters.get(KEY_SOFT_BUTTONS) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_SOFT_BUTTONS);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof SoftButton) {
- return (List<SoftButton>) list;
- } else if (obj instanceof Hashtable) {
- List<SoftButton> newList = new ArrayList<SoftButton>();
- for (Object hashObj : list) {
- newList.add(new SoftButton((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<SoftButton>) getObject(SoftButton.class, KEY_SOFT_BUTTONS);
}
/**
@@ -390,24 +335,12 @@ public class Alert extends RPCRequest { */
public void setSoftButtons(List<SoftButton> softButtons) {
- if (softButtons != null) {
- parameters.put(KEY_SOFT_BUTTONS, softButtons);
- } else {
- parameters.remove(KEY_SOFT_BUTTONS);
- }
+ setParameters(KEY_SOFT_BUTTONS, softButtons);
}
public Boolean getProgressIndicator() {
- final Object obj = parameters.get(KEY_PROGRESS_INDICATOR);
- if (obj instanceof Boolean) {
- return (Boolean) obj;
- }
- return null;
+ return getBoolean(KEY_PROGRESS_INDICATOR);
}
public void setProgressIndicator(Boolean progressIndicator) {
- if (progressIndicator != null) {
- parameters.put(KEY_PROGRESS_INDICATOR, progressIndicator);
- } else {
- parameters.remove(KEY_PROGRESS_INDICATOR);
- }
- }
+ setParameters(KEY_PROGRESS_INDICATOR, progressIndicator);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AlertManeuver.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AlertManeuver.java index fba595150..4fd218fa8 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AlertManeuver.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AlertManeuver.java @@ -1,12 +1,11 @@ package com.smartdevicelink.proxy.rpc; -import java.util.ArrayList; -import java.util.Hashtable; -import java.util.List; - import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCRequest; +import java.util.Hashtable; +import java.util.List; + /** * <p>This will bring up an alert with information related to the next navigation maneuver including potential voice * navigation instructions. Shown information will be taken from the ShowConstantTBT function @@ -51,23 +50,7 @@ public class AlertManeuver extends RPCRequest{ */ @SuppressWarnings("unchecked") public List<SoftButton> getSoftButtons(){ - if(parameters.get(KEY_SOFT_BUTTONS) instanceof List<?>){ - List<?> list = (List<?>) parameters.get(KEY_SOFT_BUTTONS); - if(list != null && list.size() > 0){ - Object obj = list.get(0); - if(obj instanceof SoftButton){ - return (List<SoftButton>) list; - } - else if(obj instanceof Hashtable){ - List<SoftButton> newList = new ArrayList<SoftButton>(); - for(Object hashObj : list){ - newList.add(new SoftButton((Hashtable<String, Object>) hashObj)); - } - return newList; - } - } - } - return null; + return (List<SoftButton>) getObject(SoftButton.class, KEY_SOFT_BUTTONS); } /** @@ -86,12 +69,7 @@ public class AlertManeuver extends RPCRequest{ */ public void setSoftButtons(List<SoftButton> softButtons){ - if(softButtons != null){ - parameters.put(KEY_SOFT_BUTTONS, softButtons); - } - else{ - parameters.remove(KEY_SOFT_BUTTONS); - } + setParameters(KEY_SOFT_BUTTONS, softButtons); } /** @@ -101,23 +79,7 @@ public class AlertManeuver extends RPCRequest{ */ @SuppressWarnings("unchecked") public List<TTSChunk> getTtsChunks(){ - if(parameters.get(KEY_TTS_CHUNKS) instanceof List<?>){ - List<?> list = (List<?>) parameters.get(KEY_TTS_CHUNKS); - if(list != null && list.size() > 0){ - Object obj = list.get(0); - if(obj instanceof TTSChunk){ - return (List<TTSChunk>) list; - } - else if(obj instanceof Hashtable){ - List<TTSChunk> newList = new ArrayList<TTSChunk>(); - for(Object hashObj : list){ - newList.add(new TTSChunk((Hashtable<String, Object>) hashObj)); - } - return newList; - } - } - } - return null; + return (List<TTSChunk>) getObject(TTSChunk.class, KEY_TTS_CHUNKS); } /** @@ -128,12 +90,7 @@ public class AlertManeuver extends RPCRequest{ * <b>Notes: </b></p>Array must have a least one element */ public void setTtsChunks(List<TTSChunk> ttsChunks){ - if(ttsChunks != null){ - parameters.put(KEY_TTS_CHUNKS, ttsChunks); - } - else{ - parameters.remove(KEY_TTS_CHUNKS); - } + setParameters(KEY_TTS_CHUNKS, ttsChunks); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AlertResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AlertResponse.java index cea706d4e..0ecf2579a 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AlertResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AlertResponse.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
+import java.util.Hashtable;
+
/**
* Alert Response is sent, when Alert has been called
*
@@ -32,13 +32,9 @@ public class AlertResponse extends RPCResponse { super(hash);
}
public Integer getTryAgainTime() {
- return (Integer) parameters.get(KEY_TRY_AGAIN_TIME);
+ return getInteger(KEY_TRY_AGAIN_TIME);
}
public void setTryAgainTime(Integer tryAgainTime) {
- if (tryAgainTime != null) {
- parameters.put(KEY_TRY_AGAIN_TIME, tryAgainTime);
- } else {
- parameters.remove(KEY_TRY_AGAIN_TIME);
- }
+ setParameters(KEY_TRY_AGAIN_TIME, tryAgainTime);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AudioPassThruCapabilities.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AudioPassThruCapabilities.java index 48cfd129b..61de1d1f5 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AudioPassThruCapabilities.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/AudioPassThruCapabilities.java @@ -1,11 +1,14 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.AudioType;
import com.smartdevicelink.proxy.rpc.enums.BitsPerSample;
import com.smartdevicelink.proxy.rpc.enums.SamplingRate;
+import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
+
+import java.util.Hashtable;
+
+import static com.smartdevicelink.proxy.rpc.AirbagStatus.KEY_DRIVER_CURTAIN_AIRBAG_DEPLOYED;
/**
*<p> Describes different audio type configurations for PerformAudioPassThru, e.g. {8kHz,8-bit,PCM}
@@ -68,11 +71,7 @@ public class AudioPassThruCapabilities extends RPCStruct { * @param samplingRate the sampling rate for AudioPassThru
*/
public void setSamplingRate(SamplingRate samplingRate) {
- if (samplingRate != null) {
- store.put(KEY_SAMPLING_RATE, samplingRate);
- } else {
- store.remove(KEY_SAMPLING_RATE);
- }
+ setValue(KEY_SAMPLING_RATE, samplingRate);
}
/**
@@ -80,13 +79,7 @@ public class AudioPassThruCapabilities extends RPCStruct { * @return the sampling rate for AudioPassThru
*/
public SamplingRate getSamplingRate() {
- Object obj = store.get(KEY_SAMPLING_RATE);
- if (obj instanceof SamplingRate) {
- return (SamplingRate) obj;
- } else if (obj instanceof String) {
- return SamplingRate.valueForString((String) obj);
- }
- return null;
+ return (SamplingRate) getObject(SamplingRate.class, KEY_SAMPLING_RATE);
}
/**
@@ -94,11 +87,7 @@ public class AudioPassThruCapabilities extends RPCStruct { * @param bitsPerSample the sample depth in bit for AudioPassThru
*/
public void setBitsPerSample(BitsPerSample bitsPerSample) {
- if (bitsPerSample != null) {
- store.put(KEY_BITS_PER_SAMPLE, bitsPerSample);
- } else {
- store.remove(KEY_BITS_PER_SAMPLE);
- }
+ setValue(KEY_BITS_PER_SAMPLE, bitsPerSample);
}
/**
@@ -106,13 +95,7 @@ public class AudioPassThruCapabilities extends RPCStruct { * @return the sample depth in bit for AudioPassThru
*/
public BitsPerSample getBitsPerSample() {
- Object obj = store.get(KEY_BITS_PER_SAMPLE);
- if (obj instanceof BitsPerSample) {
- return (BitsPerSample) obj;
- } else if (obj instanceof String) {
- return BitsPerSample.valueForString((String) obj);
- }
- return null;
+ return (BitsPerSample) getObject(BitsPerSample.class, KEY_BITS_PER_SAMPLE);
}
/**
@@ -120,11 +103,7 @@ public class AudioPassThruCapabilities extends RPCStruct { * @param audioType the audiotype for AudioPassThru
*/
public void setAudioType(AudioType audioType) {
- if (audioType != null) {
- store.put(KEY_AUDIO_TYPE, audioType);
- } else {
- store.remove(KEY_AUDIO_TYPE);
- }
+ setValue(KEY_AUDIO_TYPE, audioType);
}
/**
@@ -132,12 +111,6 @@ public class AudioPassThruCapabilities extends RPCStruct { * @return the audiotype for AudioPassThru
*/
public AudioType getAudioType() {
- Object obj = store.get(KEY_AUDIO_TYPE);
- if (obj instanceof AudioType) {
- return (AudioType) obj;
- } else if (obj instanceof String) {
- return AudioType.valueForString((String) obj);
- }
- return null;
+ return (AudioType) getObject(AudioType.class, KEY_AUDIO_TYPE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/BeltStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/BeltStatus.java index 71db21640..598cf3adf 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/BeltStatus.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/BeltStatus.java @@ -4,7 +4,11 @@ import java.util.Hashtable; import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
-/** The status of the seat belts.
+
+import static com.smartdevicelink.proxy.rpc.AirbagStatus.KEY_DRIVER_AIRBAG_DEPLOYED;
+import static com.smartdevicelink.proxy.rpc.AirbagStatus.KEY_DRIVER_CURTAIN_AIRBAG_DEPLOYED;
+
+/** The status of the seat belts.
*
* <p><b>Parameter List</b></p>
*
@@ -143,243 +147,93 @@ public class BeltStatus extends RPCStruct { }
public void setDriverBeltDeployed(VehicleDataEventStatus driverBeltDeployed) {
- if (driverBeltDeployed != null) {
- store.put(KEY_DRIVER_BELT_DEPLOYED, driverBeltDeployed);
- } else {
- store.remove(KEY_DRIVER_BELT_DEPLOYED);
- }
+ setValue(KEY_DRIVER_BELT_DEPLOYED, driverBeltDeployed);
}
public VehicleDataEventStatus getDriverBeltDeployed() {
- Object obj = store.get(KEY_DRIVER_BELT_DEPLOYED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_DRIVER_BELT_DEPLOYED);
}
public void setPassengerBeltDeployed(VehicleDataEventStatus passengerBeltDeployed) {
- if (passengerBeltDeployed != null) {
- store.put(KEY_PASSENGER_BELT_DEPLOYED, passengerBeltDeployed);
- } else {
- store.remove(KEY_PASSENGER_BELT_DEPLOYED);
- }
+ setValue(KEY_PASSENGER_BELT_DEPLOYED, passengerBeltDeployed);
}
public VehicleDataEventStatus getPassengerBeltDeployed() {
- Object obj = store.get(KEY_PASSENGER_BELT_DEPLOYED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_PASSENGER_BELT_DEPLOYED);
}
public void setPassengerBuckleBelted(VehicleDataEventStatus passengerBuckleBelted) {
- if (passengerBuckleBelted != null) {
- store.put(KEY_PASSENGER_BUCKLE_BELTED, passengerBuckleBelted);
- } else {
- store.remove(KEY_PASSENGER_BUCKLE_BELTED);
- }
+ setValue(KEY_PASSENGER_BUCKLE_BELTED, passengerBuckleBelted);
}
public VehicleDataEventStatus getPassengerBuckleBelted() {
- Object obj = store.get(KEY_PASSENGER_BUCKLE_BELTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_PASSENGER_BUCKLE_BELTED);
}
public void setDriverBuckleBelted(VehicleDataEventStatus driverBuckleBelted) {
- if (driverBuckleBelted != null) {
- store.put(KEY_DRIVER_BUCKLE_BELTED, driverBuckleBelted);
- } else {
- store.remove(KEY_DRIVER_BUCKLE_BELTED);
- }
+ setValue(KEY_DRIVER_BUCKLE_BELTED, driverBuckleBelted);
}
public VehicleDataEventStatus getDriverBuckleBelted() {
- Object obj = store.get(KEY_DRIVER_BUCKLE_BELTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_DRIVER_BUCKLE_BELTED);
}
public void setLeftRow2BuckleBelted(VehicleDataEventStatus leftRow2BuckleBelted) {
- if (leftRow2BuckleBelted != null) {
- store.put(KEY_LEFT_ROW_2_BUCKLE_BELTED, leftRow2BuckleBelted);
- } else {
- store.remove(KEY_LEFT_ROW_2_BUCKLE_BELTED);
- }
+ setValue(KEY_LEFT_ROW_2_BUCKLE_BELTED, leftRow2BuckleBelted);
}
public VehicleDataEventStatus getLeftRow2BuckleBelted() {
- Object obj = store.get(KEY_LEFT_ROW_2_BUCKLE_BELTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_LEFT_ROW_2_BUCKLE_BELTED);
}
public void setPassengerChildDetected(VehicleDataEventStatus passengerChildDetected) {
- if (passengerChildDetected != null) {
- store.put(KEY_PASSENGER_CHILD_DETECTED, passengerChildDetected);
- } else {
- store.remove(KEY_PASSENGER_CHILD_DETECTED);
- }
+ setValue(KEY_PASSENGER_CHILD_DETECTED, passengerChildDetected);
}
public VehicleDataEventStatus getPassengerChildDetected() {
- Object obj = store.get(KEY_PASSENGER_CHILD_DETECTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_PASSENGER_CHILD_DETECTED);
}
public void setRightRow2BuckleBelted(VehicleDataEventStatus rightRow2BuckleBelted) {
- if (rightRow2BuckleBelted != null) {
- store.put(KEY_RIGHT_ROW_2_BUCKLE_BELTED, rightRow2BuckleBelted);
- } else {
- store.remove(KEY_RIGHT_ROW_2_BUCKLE_BELTED);
- }
+ setValue(KEY_RIGHT_ROW_2_BUCKLE_BELTED, rightRow2BuckleBelted);
}
public VehicleDataEventStatus getRightRow2BuckleBelted() {
- Object obj = store.get(KEY_RIGHT_ROW_2_BUCKLE_BELTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_RIGHT_ROW_2_BUCKLE_BELTED);
}
public void setMiddleRow2BuckleBelted(VehicleDataEventStatus middleRow2BuckleBelted) {
- if (middleRow2BuckleBelted != null) {
- store.put(KEY_MIDDLE_ROW_2_BUCKLE_BELTED, middleRow2BuckleBelted);
- } else {
- store.remove(KEY_MIDDLE_ROW_2_BUCKLE_BELTED);
- }
+ setValue(KEY_MIDDLE_ROW_2_BUCKLE_BELTED, middleRow2BuckleBelted);
}
public VehicleDataEventStatus getMiddleRow2BuckleBelted() {
- Object obj = store.get(KEY_MIDDLE_ROW_2_BUCKLE_BELTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_MIDDLE_ROW_2_BUCKLE_BELTED);
}
public void setMiddleRow3BuckleBelted(VehicleDataEventStatus middleRow3BuckleBelted) {
- if (middleRow3BuckleBelted != null) {
- store.put(KEY_MIDDLE_ROW_3_BUCKLE_BELTED, middleRow3BuckleBelted);
- } else {
- store.remove(KEY_MIDDLE_ROW_3_BUCKLE_BELTED);
- }
+ setValue(KEY_MIDDLE_ROW_3_BUCKLE_BELTED, middleRow3BuckleBelted);
}
public VehicleDataEventStatus getMiddleRow3BuckleBelted() {
- Object obj = store.get(KEY_MIDDLE_ROW_3_BUCKLE_BELTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_MIDDLE_ROW_3_BUCKLE_BELTED);
}
public void setLeftRow3BuckleBelted(VehicleDataEventStatus leftRow3BuckleBelted) {
- if (leftRow3BuckleBelted != null) {
- store.put(KEY_LEFT_ROW_3_BUCKLE_BELTED, leftRow3BuckleBelted);
- } else {
- store.remove(KEY_LEFT_ROW_3_BUCKLE_BELTED);
- }
+ setValue(KEY_LEFT_ROW_3_BUCKLE_BELTED, leftRow3BuckleBelted);
}
public VehicleDataEventStatus getLeftRow3BuckleBelted() {
- Object obj = store.get(KEY_LEFT_ROW_3_BUCKLE_BELTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_LEFT_ROW_3_BUCKLE_BELTED);
}
public void setRightRow3BuckleBelted(VehicleDataEventStatus rightRow3BuckleBelted) {
- if (rightRow3BuckleBelted != null) {
- store.put(KEY_RIGHT_ROW_3_BUCKLE_BELTED, rightRow3BuckleBelted);
- } else {
- store.remove(KEY_RIGHT_ROW_3_BUCKLE_BELTED);
- }
+ setValue(KEY_RIGHT_ROW_3_BUCKLE_BELTED, rightRow3BuckleBelted);
}
public VehicleDataEventStatus getRightRow3BuckleBelted() {
- Object obj = store.get(KEY_RIGHT_ROW_3_BUCKLE_BELTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_RIGHT_ROW_3_BUCKLE_BELTED);
}
public void setLeftRearInflatableBelted(VehicleDataEventStatus rearInflatableBelted) {
- if (rearInflatableBelted != null) {
- store.put(KEY_REAR_INFLATABLE_BELTED, rearInflatableBelted);
- } else {
- store.remove(KEY_REAR_INFLATABLE_BELTED);
- }
+ setValue(KEY_REAR_INFLATABLE_BELTED, rearInflatableBelted);
}
public VehicleDataEventStatus getLeftRearInflatableBelted() {
- Object obj = store.get(KEY_REAR_INFLATABLE_BELTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_REAR_INFLATABLE_BELTED);
}
public void setRightRearInflatableBelted(VehicleDataEventStatus rightRearInflatableBelted) {
- if (rightRearInflatableBelted != null) {
- store.put(KEY_RIGHT_REAR_INFLATABLE_BELTED, rightRearInflatableBelted);
- } else {
- store.remove(KEY_RIGHT_REAR_INFLATABLE_BELTED);
- }
+ setValue(KEY_RIGHT_REAR_INFLATABLE_BELTED, rightRearInflatableBelted);
}
public VehicleDataEventStatus getRightRearInflatableBelted() {
- Object obj = store.get(KEY_RIGHT_REAR_INFLATABLE_BELTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_RIGHT_REAR_INFLATABLE_BELTED);
}
public void setMiddleRow1BeltDeployed(VehicleDataEventStatus middleRow1BeltDeployed) {
- if (middleRow1BeltDeployed != null) {
- store.put(KEY_MIDDLE_ROW_1_BELT_DEPLOYED, middleRow1BeltDeployed);
- } else {
- store.remove(KEY_MIDDLE_ROW_1_BELT_DEPLOYED);
- }
+ setValue(KEY_MIDDLE_ROW_1_BELT_DEPLOYED, middleRow1BeltDeployed);
}
public VehicleDataEventStatus getMiddleRow1BeltDeployed() {
- Object obj = store.get(KEY_MIDDLE_ROW_1_BELT_DEPLOYED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_MIDDLE_ROW_1_BELT_DEPLOYED);
}
public void setMiddleRow1BuckleBelted(VehicleDataEventStatus middleRow1BuckleBelted) {
- if (middleRow1BuckleBelted != null) {
- store.put(KEY_MIDDLE_ROW_1_BUCKLE_BELTED, middleRow1BuckleBelted);
- } else {
- store.remove(KEY_MIDDLE_ROW_1_BUCKLE_BELTED);
- }
+ setValue(KEY_MIDDLE_ROW_1_BUCKLE_BELTED, middleRow1BuckleBelted);
}
public VehicleDataEventStatus getMiddleRow1BuckleBelted() {
- Object obj = store.get(KEY_MIDDLE_ROW_1_BUCKLE_BELTED);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_MIDDLE_ROW_1_BUCKLE_BELTED);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/BodyInformation.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/BodyInformation.java index 038b1970e..4f851c383 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/BodyInformation.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/BodyInformation.java @@ -1,11 +1,15 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.IgnitionStableStatus;
import com.smartdevicelink.proxy.rpc.enums.IgnitionStatus;
-/** The body information including power modes.
+import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
+
+import java.util.Hashtable;
+
+import static com.smartdevicelink.proxy.rpc.AirbagStatus.KEY_DRIVER_CURTAIN_AIRBAG_DEPLOYED;
+
+/** The body information including power modes.
*
* <p><b>Note:</b> The structure defines the information about the park brake and ignition.</p>
*
@@ -105,91 +109,51 @@ public class BodyInformation extends RPCStruct { }
public void setParkBrakeActive(Boolean parkBrakeActive) {
- if (parkBrakeActive != null) {
- store.put(KEY_PARK_BRAKE_ACTIVE, parkBrakeActive);
- } else {
- store.remove(KEY_PARK_BRAKE_ACTIVE);
- }
+ setValue(KEY_PARK_BRAKE_ACTIVE, parkBrakeActive);
}
public Boolean getParkBrakeActive() {
- return (Boolean) store.get(KEY_PARK_BRAKE_ACTIVE);
+ return getBoolean(KEY_PARK_BRAKE_ACTIVE);
}
public void setIgnitionStableStatus(IgnitionStableStatus ignitionStableStatus) {
- if (ignitionStableStatus != null) {
- store.put(KEY_IGNITION_STABLE_STATUS, ignitionStableStatus);
- } else {
- store.remove(KEY_IGNITION_STABLE_STATUS);
- }
+ setValue(KEY_IGNITION_STABLE_STATUS, ignitionStableStatus);
}
public IgnitionStableStatus getIgnitionStableStatus() {
- Object obj = store.get(KEY_IGNITION_STABLE_STATUS);
- if (obj instanceof IgnitionStableStatus) {
- return (IgnitionStableStatus) obj;
- } else if (obj instanceof String) {
- return IgnitionStableStatus.valueForString((String) obj);
- }
- return null;
+ return (IgnitionStableStatus) getObject(IgnitionStableStatus.class, KEY_IGNITION_STABLE_STATUS);
}
public void setIgnitionStatus(IgnitionStatus ignitionStatus) {
- if (ignitionStatus != null) {
- store.put(KEY_IGNITION_STATUS, ignitionStatus);
- } else {
- store.remove(KEY_IGNITION_STATUS);
- }
+ setValue(KEY_IGNITION_STATUS, ignitionStatus);
}
public IgnitionStatus getIgnitionStatus() {
- Object obj = store.get(KEY_IGNITION_STATUS);
- if (obj instanceof IgnitionStatus) {
- return (IgnitionStatus) obj;
- } else if (obj instanceof String) {
- return IgnitionStatus.valueForString((String) obj);
- }
- return null;
+ return (IgnitionStatus) getObject(IgnitionStatus.class, KEY_IGNITION_STATUS);
}
public void setDriverDoorAjar(Boolean driverDoorAjar) {
- if (driverDoorAjar != null) {
- store.put(KEY_DRIVER_DOOR_AJAR, driverDoorAjar);
- } else {
- store.remove(KEY_DRIVER_DOOR_AJAR);
- }
+ setValue(KEY_DRIVER_DOOR_AJAR, driverDoorAjar);
}
public Boolean getDriverDoorAjar() {
- return (Boolean) store.get(KEY_DRIVER_DOOR_AJAR);
+ return getBoolean(KEY_DRIVER_DOOR_AJAR);
}
public void setPassengerDoorAjar(Boolean passengerDoorAjar) {
- if (passengerDoorAjar != null) {
- store.put(KEY_PASSENGER_DOOR_AJAR, passengerDoorAjar);
- } else {
- store.remove(KEY_PASSENGER_DOOR_AJAR);
- }
+ setValue(KEY_PASSENGER_DOOR_AJAR, passengerDoorAjar);
}
public Boolean getPassengerDoorAjar() {
- return (Boolean) store.get(KEY_PASSENGER_DOOR_AJAR);
+ return getBoolean(KEY_PASSENGER_DOOR_AJAR);
}
public void setRearLeftDoorAjar(Boolean rearLeftDoorAjar) {
- if (rearLeftDoorAjar != null) {
- store.put(KEY_REAR_LEFT_DOOR_AJAR, rearLeftDoorAjar);
- } else {
- store.remove(KEY_REAR_LEFT_DOOR_AJAR);
- }
+ setValue(KEY_REAR_LEFT_DOOR_AJAR, rearLeftDoorAjar);
}
public Boolean getRearLeftDoorAjar() {
- return (Boolean) store.get(KEY_REAR_LEFT_DOOR_AJAR);
+ return getBoolean(KEY_REAR_LEFT_DOOR_AJAR);
}
public void setRearRightDoorAjar(Boolean rearRightDoorAjar) {
- if (rearRightDoorAjar != null) {
- store.put(KEY_REAR_RIGHT_DOOR_AJAR, rearRightDoorAjar);
- } else {
- store.remove(KEY_REAR_RIGHT_DOOR_AJAR);
- }
+ setValue(KEY_REAR_RIGHT_DOOR_AJAR, rearRightDoorAjar);
}
public Boolean getRearRightDoorAjar() {
- return (Boolean) store.get(KEY_REAR_RIGHT_DOOR_AJAR);
+ return getBoolean(KEY_REAR_RIGHT_DOOR_AJAR);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ButtonCapabilities.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ButtonCapabilities.java index 9b15c5be9..5c0ebd779 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ButtonCapabilities.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ButtonCapabilities.java @@ -80,77 +80,55 @@ public class ButtonCapabilities extends RPCStruct { * @return ButtonName the name of the Button
*/
public ButtonName getName() {
- Object obj = store.get(KEY_NAME);
- if (obj instanceof ButtonName) {
- return (ButtonName) obj;
- } else if (obj instanceof String) {
- return ButtonName.valueForString((String) obj);
- }
- return null;
+ return (ButtonName) getObject(ButtonName.class, KEY_NAME);
}
/**
* Set the name of theSDL HMI button.
* @param name the name of button
*/
public void setName( ButtonName name ) {
- if (name != null) {
- store.put(KEY_NAME, name );
- } else {
- store.remove(KEY_NAME);
- }
+ setValue(KEY_NAME, name);
}
/**
* Whether the button supports a SHORT press. See <i>{@linkplain com.smartdevicelink.proxy.rpc.enums.ButtonPressMode}</i> for more information.
* @return True if support otherwise False.
*/
public Boolean getShortPressAvailable() {
- return (Boolean) store.get( KEY_SHORT_PRESS_AVAILABLE );
+ return getBoolean( KEY_SHORT_PRESS_AVAILABLE );
}
/**
* Set the button supports a SHORT press. See <i>{@linkplain com.smartdevicelink.proxy.rpc.enums.ButtonPressMode}</i> for more information.
* @param shortPressAvailable True if support otherwise False.
*/
public void setShortPressAvailable( Boolean shortPressAvailable ) {
- if (shortPressAvailable != null) {
- store.put(KEY_SHORT_PRESS_AVAILABLE, shortPressAvailable );
- } else {
- store.remove(KEY_SHORT_PRESS_AVAILABLE);
- }
+ setValue(KEY_SHORT_PRESS_AVAILABLE, shortPressAvailable);
}
/**
* Whether the button supports a LONG press. See <i>{@linkplain com.smartdevicelink.proxy.rpc.enums.ButtonPressMode}</i> for more information.
* @return True if support otherwise False.
*/
public Boolean getLongPressAvailable() {
- return (Boolean) store.get( KEY_LONG_PRESS_AVAILABLE );
+ return getBoolean( KEY_LONG_PRESS_AVAILABLE );
}
/**
* Set the button supports a LONG press. See <i>{@linkplain com.smartdevicelink.proxy.rpc.enums.ButtonPressMode}</i> for more information.
* @param longPressAvailable True if support otherwise False.
*/
public void setLongPressAvailable( Boolean longPressAvailable ) {
- if (longPressAvailable != null) {
- store.put(KEY_LONG_PRESS_AVAILABLE, longPressAvailable );
- } else {
- store.remove(KEY_LONG_PRESS_AVAILABLE);
- }
+ setValue(KEY_LONG_PRESS_AVAILABLE, longPressAvailable);
}
/**
* Whether the button supports "button down" and "button up". When the button is depressed, the <i>{@linkplain OnButtonEvent}</i> notification will be invoked with a value of BUTTONDOWN.
* @return True if support otherwise False.
*/
public Boolean getUpDownAvailable() {
- return (Boolean) store.get( KEY_UP_DOWN_AVAILABLE );
+ return getBoolean( KEY_UP_DOWN_AVAILABLE );
}
/**
* Set the button supports "button down" and "button up". When the button is depressed, the <i>{@linkplain OnButtonEvent}</i> notification will be invoked with a value of BUTTONDOWN.
* @param upDownAvailable True if support otherwise False.
*/
public void setUpDownAvailable( Boolean upDownAvailable ) {
- if (upDownAvailable != null) {
- store.put(KEY_UP_DOWN_AVAILABLE, upDownAvailable );
- } else {
- store.remove(KEY_UP_DOWN_AVAILABLE);
- }
+ setValue(KEY_UP_DOWN_AVAILABLE, upDownAvailable);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ChangeRegistration.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ChangeRegistration.java index 2b4c69f42..c481e36c6 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ChangeRegistration.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ChangeRegistration.java @@ -1,13 +1,12 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.Language;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* If the app recognizes during the app registration that the SDL HMI language
* (voice/TTS and/or display) does not match the app language, the app will be
@@ -132,11 +131,7 @@ public class ChangeRegistration extends RPCRequest { * a language value
*/
public void setLanguage(Language language) {
- if (language != null) {
- parameters.put(KEY_LANGUAGE, language);
- } else {
- parameters.remove(KEY_LANGUAGE);
- }
+ setParameters(KEY_LANGUAGE, language);
}
/**
@@ -145,13 +140,7 @@ public class ChangeRegistration extends RPCRequest { * @return Language -a Language value
*/
public Language getLanguage() {
- Object obj = parameters.get(KEY_LANGUAGE);
- if (obj instanceof Language) {
- return (Language) obj;
- } else if (obj instanceof String) {
- return Language.valueForString((String) obj);
- }
- return null;
+ return (Language) getObject(Language.class, KEY_LANGUAGE);
}
/**
@@ -161,11 +150,7 @@ public class ChangeRegistration extends RPCRequest { * a Language value
*/
public void setHmiDisplayLanguage(Language hmiDisplayLanguage) {
- if (hmiDisplayLanguage != null) {
- parameters.put(KEY_HMI_DISPLAY_LANGUAGE, hmiDisplayLanguage);
- } else {
- parameters.remove(KEY_HMI_DISPLAY_LANGUAGE);
- }
+ setParameters(KEY_HMI_DISPLAY_LANGUAGE, hmiDisplayLanguage);
}
/**
@@ -174,13 +159,7 @@ public class ChangeRegistration extends RPCRequest { * @return Language -a Language value
*/
public Language getHmiDisplayLanguage() {
- Object obj = parameters.get(KEY_HMI_DISPLAY_LANGUAGE);
- if (obj instanceof Language) {
- return (Language) obj;
- } else if (obj instanceof String) {
- return Language.valueForString((String) obj);
- }
- return null;
+ return (Language) getObject(Language.class, KEY_HMI_DISPLAY_LANGUAGE);
}
/**
@@ -189,12 +168,7 @@ public class ChangeRegistration extends RPCRequest { * @param appName App name to set
*/
public void setAppName(String appName){
- if(appName != null){
- parameters.put(KEY_APP_NAME, appName);
- }
- else{
- parameters.remove(KEY_APP_NAME);
- }
+ setParameters(KEY_APP_NAME, appName);
}
/**
@@ -203,7 +177,7 @@ public class ChangeRegistration extends RPCRequest { * @return The app name
*/
public String getAppName(){
- return (String) parameters.get(KEY_APP_NAME);
+ return getString(KEY_APP_NAME);
}
/**
@@ -212,12 +186,7 @@ public class ChangeRegistration extends RPCRequest { * @param ngnAppName The NGN app name
*/
public void setNgnMediaScreenAppName(String ngnAppName){
- if(ngnAppName != null){
- parameters.put(KEY_NGN_MEDIA_SCREEN_NAME, ngnAppName);
- }
- else{
- parameters.remove(KEY_NGN_MEDIA_SCREEN_NAME);
- }
+ setParameters(KEY_NGN_MEDIA_SCREEN_NAME, ngnAppName);
}
/**
@@ -226,7 +195,7 @@ public class ChangeRegistration extends RPCRequest { * @return The NGN app name
*/
public String getNgnMediaScreenAppName(){
- return (String) parameters.get(KEY_NGN_MEDIA_SCREEN_NAME);
+ return getString(KEY_NGN_MEDIA_SCREEN_NAME);
}
/**
@@ -235,12 +204,7 @@ public class ChangeRegistration extends RPCRequest { * @param ttsName The TTS name to set
*/
public void setTtsName(List<TTSChunk> ttsName){
- if(ttsName != null){
- parameters.put(KEY_TTS_NAME, ttsName);
- }
- else{
- parameters.remove(KEY_TTS_NAME);
- }
+ setParameters(KEY_TTS_NAME, ttsName);
}
/**
@@ -250,22 +214,7 @@ public class ChangeRegistration extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<TTSChunk> getTtsName(){
- if (parameters.get(KEY_TTS_NAME) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_TTS_NAME);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TTSChunk) {
- return (List<TTSChunk>) list;
- } else if (obj instanceof Hashtable) {
- List<TTSChunk> newList = new ArrayList<TTSChunk>();
- for (Object hashObj : list) {
- newList.add(new TTSChunk((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TTSChunk>) getObject(TTSChunk.class, KEY_TTS_NAME);
}
/**
@@ -278,16 +227,7 @@ public class ChangeRegistration extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<String> getVrSynonyms() {
- if (parameters.get(KEY_VR_SYNONYMS) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_VR_SYNONYMS);
- if (list != null && list.size()>0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_VR_SYNONYMS);
}
/**
@@ -308,10 +248,6 @@ public class ChangeRegistration extends RPCRequest { * </ul>
*/
public void setVrSynonyms(List<String> vrSynonyms) {
- if (vrSynonyms != null) {
- parameters.put(KEY_VR_SYNONYMS, vrSynonyms);
- } else {
- parameters.remove(KEY_VR_SYNONYMS);
- }
+ setParameters(KEY_VR_SYNONYMS, vrSynonyms);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Choice.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Choice.java index 2bc59736e..886a88d23 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Choice.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Choice.java @@ -1,11 +1,10 @@ package com.smartdevicelink.proxy.rpc;
+import com.smartdevicelink.proxy.RPCStruct;
+
import java.util.Hashtable;
import java.util.List;
-import com.smartdevicelink.proxy.RPCStruct;
-import com.smartdevicelink.util.DebugTool;
-
/**
* A choice is an option which a user can select either via the menu or via voice recognition (VR) during an application initiated interaction.
* For example, the application may request for the user`s choice among several suggested ones: Yes, No, Skip.
@@ -79,18 +78,14 @@ public class Choice extends RPCStruct { * @return choiceID Min: 0; Max: 65535
*/
public Integer getChoiceID() {
- return (Integer) store.get(KEY_CHOICE_ID);
+ return getInteger(KEY_CHOICE_ID);
}
/**
* Set the application-scoped identifier that uniquely identifies this choice.
* @param choiceID Min: 0 Max: 65535
*/
public void setChoiceID(Integer choiceID) {
- if (choiceID != null) {
- store.put(KEY_CHOICE_ID, choiceID);
- } else {
- store.remove(KEY_CHOICE_ID);
- }
+ setValue(KEY_CHOICE_ID, choiceID);
}
/**
* Text which appears in menu, representing this choice.
@@ -99,7 +94,7 @@ public class Choice extends RPCStruct { * @return menuName the menu name
*/
public String getMenuName() {
- return (String) store.get(KEY_MENU_NAME);
+ return getString(KEY_MENU_NAME);
}
/**
* Text which appears in menu, representing this choice.
@@ -108,11 +103,7 @@ public class Choice extends RPCStruct { * @param menuName the menu name
*/
public void setMenuName(String menuName) {
- if (menuName != null) {
- store.put(KEY_MENU_NAME, menuName);
- } else {
- store.remove(KEY_MENU_NAME);
- }
+ setValue(KEY_MENU_NAME, menuName);
}
/**
* Get an array of strings to be used as VR synonyms for this choice. If this array is provided, it must have at least one non-empty element
@@ -121,16 +112,7 @@ public class Choice extends RPCStruct { */
@SuppressWarnings("unchecked")
public List<String> getVrCommands() {
- if (store.get(KEY_VR_COMMANDS) instanceof List<?>) {
- List<?> list = (List<?>)store.get( KEY_VR_COMMANDS);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_VR_COMMANDS);
}
/**
* Set an array of strings to be used as VR synonyms for this choice. If this array is provided, it must have at least one non-empty element
@@ -138,22 +120,14 @@ public class Choice extends RPCStruct { * @since SmartDeviceLink 2.0
*/
public void setVrCommands(List<String> vrCommands) {
- if (vrCommands != null) {
- store.put(KEY_VR_COMMANDS, vrCommands);
- } else {
- store.remove(KEY_VR_COMMANDS);
- }
+ setValue(KEY_VR_COMMANDS, vrCommands);
}
/**
* Set the image
* @param image the image of the choice
*/
public void setImage(Image image) {
- if (image != null) {
- store.put(KEY_IMAGE, image);
- } else {
- store.remove(KEY_IMAGE);
- }
+ setValue(KEY_IMAGE, image);
}
/**
* Get the image
@@ -161,65 +135,31 @@ public class Choice extends RPCStruct { */
@SuppressWarnings("unchecked")
public Image getImage() {
- Object obj = store.get(KEY_IMAGE);
- if (obj instanceof Image) {
- return (Image) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new Image((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_IMAGE, e);
- }
- }
- return null;
+ return (Image) getObject(Image.class, KEY_IMAGE);
}
public String getSecondaryText() {
- return (String) store.get(KEY_SECONDARY_TEXT);
+ return getString(KEY_SECONDARY_TEXT);
}
public void setSecondaryText(String secondaryText) {
- if (secondaryText != null) {
- store.put(KEY_SECONDARY_TEXT, secondaryText);
- }
- else {
- store.remove(KEY_SECONDARY_TEXT);
- }
+ setValue(KEY_SECONDARY_TEXT, secondaryText);
}
public String getTertiaryText() {
- return (String) store.get(KEY_TERTIARY_TEXT);
+ return getString(KEY_TERTIARY_TEXT);
}
public void setTertiaryText(String tertiaryText) {
- if (tertiaryText != null) {
- store.put(KEY_TERTIARY_TEXT, tertiaryText);
- }
- else {
- store.remove(KEY_TERTIARY_TEXT);
- }
+ setValue(KEY_TERTIARY_TEXT, tertiaryText);
}
public void setSecondaryImage(Image image) {
- if (image != null) {
- store.put(KEY_SECONDARY_IMAGE, image);
- } else {
- store.remove(KEY_SECONDARY_IMAGE);
- }
+ setValue(KEY_SECONDARY_IMAGE, image);
}
@SuppressWarnings("unchecked")
public Image getSecondaryImage() {
- Object obj = store.get(KEY_SECONDARY_IMAGE);
- if (obj instanceof Image) {
- return (Image) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new Image((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_SECONDARY_IMAGE, e);
- }
- }
- return null;
+ return (Image) getObject(Image.class, KEY_SECONDARY_IMAGE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ClusterModeStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ClusterModeStatus.java index 17e16af65..c58f70b50 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ClusterModeStatus.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ClusterModeStatus.java @@ -6,6 +6,9 @@ import com.smartdevicelink.proxy.RPCStruct; import com.smartdevicelink.proxy.rpc.enums.CarModeStatus;
import com.smartdevicelink.proxy.rpc.enums.PowerModeQualificationStatus;
import com.smartdevicelink.proxy.rpc.enums.PowerModeStatus;
+
+import static android.provider.Contacts.SettingsColumns.KEY;
+
/** <p>The status modes of the instrument panel cluster.</p>
*
*
@@ -69,61 +72,27 @@ public class ClusterModeStatus extends RPCStruct { }
public void setPowerModeActive(Boolean powerModeActive) {
- if (powerModeActive != null) {
- store.put(KEY_POWER_MODE_ACTIVE, powerModeActive);
- } else {
- store.remove(KEY_POWER_MODE_ACTIVE);
- }
+ setValue(KEY_POWER_MODE_ACTIVE, powerModeActive);
}
public Boolean getPowerModeActive() {
- return (Boolean) store.get(KEY_POWER_MODE_ACTIVE);
+ return getBoolean(KEY_POWER_MODE_ACTIVE);
}
public void setPowerModeQualificationStatus(PowerModeQualificationStatus powerModeQualificationStatus) {
- if (powerModeQualificationStatus != null) {
- store.put(KEY_POWER_MODE_QUALIFICATION_STATUS, powerModeQualificationStatus);
- } else {
- store.remove(KEY_POWER_MODE_QUALIFICATION_STATUS);
- }
+ setValue(KEY_POWER_MODE_QUALIFICATION_STATUS, powerModeQualificationStatus);
}
public PowerModeQualificationStatus getPowerModeQualificationStatus() {
- Object obj = store.get(KEY_POWER_MODE_QUALIFICATION_STATUS);
- if (obj instanceof PowerModeQualificationStatus) {
- return (PowerModeQualificationStatus) obj;
- } else if (obj instanceof String) {
- return PowerModeQualificationStatus.valueForString((String) obj);
- }
- return null;
+ return (PowerModeQualificationStatus) getObject(PowerModeQualificationStatus.class, KEY_POWER_MODE_QUALIFICATION_STATUS);
}
public void setCarModeStatus(CarModeStatus carModeStatus) {
- if (carModeStatus != null) {
- store.put(KEY_CAR_MODE_STATUS, carModeStatus);
- } else {
- store.remove(KEY_CAR_MODE_STATUS);
- }
+ setValue(KEY_CAR_MODE_STATUS, carModeStatus);
}
public CarModeStatus getCarModeStatus() {
- Object obj = store.get(KEY_CAR_MODE_STATUS);
- if (obj instanceof CarModeStatus) {
- return (CarModeStatus) obj;
- } else if (obj instanceof String) {
- return CarModeStatus.valueForString((String) obj);
- }
- return null;
+ return (CarModeStatus) getObject(CarModeStatus.class, KEY_CAR_MODE_STATUS);
}
public void setPowerModeStatus(PowerModeStatus powerModeStatus) {
- if (powerModeStatus != null) {
- store.put(KEY_POWER_MODE_STATUS, powerModeStatus);
- } else {
- store.remove(KEY_POWER_MODE_STATUS);
- }
+ setValue(KEY_POWER_MODE_STATUS, powerModeStatus);
}
public PowerModeStatus getPowerModeStatus() {
- Object obj = store.get(KEY_POWER_MODE_STATUS);
- if (obj instanceof PowerModeStatus) {
- return (PowerModeStatus) obj;
- } else if (obj instanceof String) {
- return PowerModeStatus.valueForString((String) obj);
- }
- return null;
+ return (PowerModeStatus) getObject(PowerModeStatus.class, KEY_POWER_MODE_STATUS);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Coordinate.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Coordinate.java index 7e899168c..433f9540b 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Coordinate.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Coordinate.java @@ -17,28 +17,20 @@ public class Coordinate extends RPCStruct{ } public Float getLatitudeDegrees() { - Object value = store.get(KEY_LATITUDE_DEGREES); + Object value = getValue(KEY_LATITUDE_DEGREES); return SdlDataTypeConverter.objectToFloat(value); } public void setLatitudeDegrees(Float latitudeDegrees) { - if (latitudeDegrees != null) { - store.put(KEY_LATITUDE_DEGREES, latitudeDegrees); - } else { - store.remove(KEY_LATITUDE_DEGREES); - } + setValue(KEY_LATITUDE_DEGREES, latitudeDegrees); } public Float getLongitudeDegrees() { - Object value = store.get(KEY_LONGITUDE_DEGREES); + Object value = getValue(KEY_LONGITUDE_DEGREES); return SdlDataTypeConverter.objectToFloat(value); } public void setLongitudeDegrees(Float longitudeDegrees) { - if (longitudeDegrees != null) { - store.put(KEY_LONGITUDE_DEGREES, longitudeDegrees); - } else { - store.remove(KEY_LONGITUDE_DEGREES); - } + setValue(KEY_LONGITUDE_DEGREES, longitudeDegrees); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/CreateInteractionChoiceSet.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/CreateInteractionChoiceSet.java index 97793558f..dc813d048 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/CreateInteractionChoiceSet.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/CreateInteractionChoiceSet.java @@ -1,12 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* Creates a Choice Set which can be used in subsequent <i>
* {@linkplain PerformInteraction}</i> Operations.
@@ -100,7 +99,7 @@ public class CreateInteractionChoiceSet extends RPCRequest { * @return Integer -an Integer representing the Choice Set ID
*/
public Integer getInteractionChoiceSetID() {
- return (Integer) parameters.get( KEY_INTERACTION_CHOICE_SET_ID );
+ return getInteger( KEY_INTERACTION_CHOICE_SET_ID );
}
/**
* Sets a unique ID that identifies the Choice Set
@@ -111,11 +110,7 @@ public class CreateInteractionChoiceSet extends RPCRequest { * <b>Notes: </b>Min Value: 0; Max Value: 2000000000
*/
public void setInteractionChoiceSetID( Integer interactionChoiceSetID ) {
- if (interactionChoiceSetID != null) {
- parameters.put(KEY_INTERACTION_CHOICE_SET_ID, interactionChoiceSetID );
- } else {
- parameters.remove(KEY_INTERACTION_CHOICE_SET_ID);
- }
+ setParameters(KEY_INTERACTION_CHOICE_SET_ID, interactionChoiceSetID);
}
/**
* Gets Choice Set Array of one or more elements
@@ -125,22 +120,7 @@ public class CreateInteractionChoiceSet extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<Choice> getChoiceSet() {
- if (parameters.get(KEY_CHOICE_SET) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_CHOICE_SET);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof Choice) {
- return (List<Choice>) list;
- } else if (obj instanceof Hashtable) {
- List<Choice> newList = new ArrayList<Choice>();
- for (Object hashObj : list) {
- newList.add(new Choice((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<Choice>) getObject(Choice.class, KEY_CHOICE_SET);
}
/**
* Sets a Choice Set that is an Array of one or more elements
@@ -152,10 +132,6 @@ public class CreateInteractionChoiceSet extends RPCRequest { * <b>Notes: </b>Min Value: 1; Max Value: 100
*/
public void setChoiceSet( List<Choice> choiceSet ) {
- if (choiceSet != null) {
- parameters.put(KEY_CHOICE_SET, choiceSet );
- } else {
- parameters.remove(KEY_CHOICE_SET);
- }
+ setParameters(KEY_CHOICE_SET, choiceSet);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DIDResult.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DIDResult.java index 84afe2a70..cd9d24c78 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DIDResult.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DIDResult.java @@ -59,39 +59,21 @@ public class DIDResult extends RPCStruct { super(hash);
}
public void setResultCode(VehicleDataResultCode resultCode) {
- if (resultCode != null) {
- store.put(KEY_RESULT_CODE, resultCode);
- } else {
- store.remove(KEY_RESULT_CODE);
- }
+ setValue(KEY_RESULT_CODE, resultCode);
}
public VehicleDataResultCode getResultCode() {
- Object obj = store.get(KEY_RESULT_CODE);
- if (obj instanceof VehicleDataResultCode) {
- return (VehicleDataResultCode) obj;
- } else if (obj instanceof String) {
- return VehicleDataResultCode.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataResultCode) getObject(VehicleDataResultCode.class, KEY_RESULT_CODE);
}
public void setDidLocation(Integer didLocation) {
- if (didLocation != null) {
- store.put(KEY_DID_LOCATION, didLocation);
- } else {
- store.remove(KEY_DID_LOCATION);
- }
+ setValue(KEY_DID_LOCATION, didLocation);
}
public Integer getDidLocation() {
- return (Integer) store.get(KEY_DID_LOCATION);
+ return getInteger(KEY_DID_LOCATION);
}
public void setData(String data) {
- if (data != null) {
- store.put(KEY_DATA, data);
- } else {
- store.remove(KEY_DATA);
- }
+ setValue(KEY_DATA, data);
}
public String getData() {
- return (String) store.get(KEY_DATA);
+ return getString(KEY_DATA);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DTC.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DTC.java index e8ff471d8..57595672e 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DTC.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DTC.java @@ -1,9 +1,9 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
+import java.util.Hashtable;
+
/**
* String containing hexadecimal identifier as well as other common names.
* <p><b>Parameter List</b></p>
@@ -48,11 +48,7 @@ public class DTC extends RPCStruct { * @param identifier
*/
public void setIdentifier(String identifier) {
- if (identifier != null) {
- store.put(KEY_IDENTIFIER, identifier);
- } else {
- store.remove(KEY_IDENTIFIER);
- }
+ setValue(KEY_IDENTIFIER, identifier);
}
/**
@@ -60,7 +56,7 @@ public class DTC extends RPCStruct { * @return identifier
*/
public String getIdentifier() {
- return (String) store.get(KEY_IDENTIFIER);
+ return getString(KEY_IDENTIFIER);
}
/**
@@ -68,11 +64,7 @@ public class DTC extends RPCStruct { * @param statusByte Hexadecimal byte string
*/
public void setStatusByte(String statusByte) {
- if (statusByte != null) {
- store.put(KEY_STATUS_BYTE, statusByte);
- } else {
- store.remove(KEY_STATUS_BYTE);
- }
+ setValue(KEY_STATUS_BYTE, statusByte);
}
/**
@@ -80,6 +72,6 @@ public class DTC extends RPCStruct { * @return Hexadecimal byte string
*/
public String getStatusByte() {
- return (String) store.get(KEY_STATUS_BYTE);
+ return getString(KEY_STATUS_BYTE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DateTime.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DateTime.java index aeb302ffb..1c3af0e88 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DateTime.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DateTime.java @@ -30,7 +30,7 @@ public class DateTime extends RPCStruct{ * */ public Integer getMilliSecond() { - return (Integer) store.get(KEY_MILLISECOND); + return getInteger(KEY_MILLISECOND); } /** @@ -41,11 +41,7 @@ public class DateTime extends RPCStruct{ * */ public void setMilliSecond(Integer milliSecond) { - if (milliSecond != null) { - store.put(KEY_MILLISECOND, milliSecond); - } else { - store.remove(KEY_MILLISECOND); - } + setValue(KEY_MILLISECOND, milliSecond); } @@ -56,7 +52,7 @@ public class DateTime extends RPCStruct{ * */ public Integer getSecond() { - return (Integer) store.get(KEY_SECOND); + return getInteger(KEY_SECOND); } /** @@ -67,11 +63,7 @@ public class DateTime extends RPCStruct{ * */ public void setSecond(Integer second) { - if (second != null) { - store.put(KEY_SECOND, second); - } else { - store.remove(KEY_SECOND); - } + setValue(KEY_SECOND, second); } @@ -82,7 +74,7 @@ public class DateTime extends RPCStruct{ * */ public Integer getMinute() { - return (Integer) store.get(KEY_MINUTE); + return getInteger(KEY_MINUTE); } /** @@ -93,11 +85,7 @@ public class DateTime extends RPCStruct{ * */ public void setMinute(Integer minute) { - if (minute != null) { - store.put(KEY_MINUTE, minute); - } else { - store.remove(KEY_MINUTE); - } + setValue(KEY_MINUTE, minute); } /** @@ -107,7 +95,7 @@ public class DateTime extends RPCStruct{ * */ public Integer getHour() { - return (Integer) store.get(KEY_HOUR); + return getInteger(KEY_HOUR); } /** @@ -118,11 +106,7 @@ public class DateTime extends RPCStruct{ * */ public void setHour(Integer hour) { - if (hour != null) { - store.put(KEY_HOUR, hour); - } else { - store.remove(KEY_HOUR); - } + setValue(KEY_HOUR, hour); } /** @@ -132,7 +116,7 @@ public class DateTime extends RPCStruct{ * */ public Integer getDay() { - return (Integer) store.get(KEY_DAY); + return getInteger(KEY_DAY); } /** @@ -143,11 +127,7 @@ public class DateTime extends RPCStruct{ * */ public void setDay(Integer day) { - if (day != null) { - store.put(KEY_DAY, day); - } else { - store.remove(KEY_DAY); - } + setValue(KEY_DAY, day); } /** @@ -157,7 +137,7 @@ public class DateTime extends RPCStruct{ * */ public Integer getMonth() { - return (Integer) store.get(KEY_MONTH); + return getInteger(KEY_MONTH); } /** @@ -168,11 +148,7 @@ public class DateTime extends RPCStruct{ * */ public void setMonth(Integer month) { - if (month != null) { - store.put(KEY_MONTH, month); - } else { - store.remove(KEY_MONTH); - } + setValue(KEY_MONTH, month); } /** @@ -182,7 +158,7 @@ public class DateTime extends RPCStruct{ * */ public Integer getYear() { - return (Integer) store.get(KEY_YEAR); + return getInteger(KEY_YEAR); } /** @@ -193,11 +169,7 @@ public class DateTime extends RPCStruct{ * */ public void setYear(Integer year) { - if (year != null) { - store.put(KEY_YEAR, year); - } else { - store.remove(KEY_YEAR); - } + setValue(KEY_YEAR, year); } /** @@ -207,7 +179,7 @@ public class DateTime extends RPCStruct{ * */ public Integer getTzHour() { - return (Integer) store.get(KEY_TZ_HOUR); + return getInteger(KEY_TZ_HOUR); } /** @@ -218,11 +190,7 @@ public class DateTime extends RPCStruct{ * */ public void setTzHour(Integer tzHour) { - if (tzHour != null) { - store.put(KEY_TZ_HOUR, tzHour); - } else { - store.remove(KEY_TZ_HOUR); - } + setValue(KEY_TZ_HOUR, tzHour); } /** @@ -232,7 +200,7 @@ public class DateTime extends RPCStruct{ * */ public Integer getTzMinute() { - return (Integer) store.get(KEY_TZ_MINUTE); + return getInteger(KEY_TZ_MINUTE); } /** @@ -242,10 +210,6 @@ public class DateTime extends RPCStruct{ * The time zone offset in Minutes with regard to UTC associated with this DateTime class */ public void setTzMinute(Integer tzMinute) { - if (tzMinute != null) { - store.put(KEY_TZ_MINUTE, tzMinute); - } else { - store.remove(KEY_TZ_MINUTE); - } + setValue(KEY_TZ_MINUTE, tzMinute); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteCommand.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteCommand.java index 635f85814..5c5820fbd 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteCommand.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteCommand.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+
/**
* Removes a command from the Command Menu.
*
@@ -80,7 +80,7 @@ public class DeleteCommand extends RPCRequest { * the Command to be deleted from Command Menu
*/
public Integer getCmdID() {
- return (Integer) parameters.get( KEY_CMD_ID );
+ return getInteger( KEY_CMD_ID );
}
/**
* Sets the Command ID that identifies the Command to be deleted from Command Menu
@@ -91,10 +91,6 @@ public class DeleteCommand extends RPCRequest { * <p><b>Notes: </b>Min Value: 0; Max Value: 2000000000</p>
*/
public void setCmdID( Integer cmdID ) {
- if (cmdID != null) {
- parameters.put(KEY_CMD_ID, cmdID );
- } else {
- parameters.remove(KEY_CMD_ID);
- }
+ setParameters(KEY_CMD_ID, cmdID);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteFile.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteFile.java index 4d35c6fd3..7be0e7859 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteFile.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteFile.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+
/**
* Used to delete a file resident on the SDL module in the app's local cache.
* Not supported on first generation SDL vehicles
@@ -71,11 +71,7 @@ public class DeleteFile extends RPCRequest { * a String value representing a file reference name
*/
public void setSdlFileName(String sdlFileName) {
- if (sdlFileName != null) {
- parameters.put(KEY_SDL_FILE_NAME, sdlFileName);
- } else {
- parameters.remove(KEY_SDL_FILE_NAME);
- }
+ setParameters(KEY_SDL_FILE_NAME, sdlFileName);
}
/**
@@ -84,6 +80,6 @@ public class DeleteFile extends RPCRequest { * @return String -a String value representing a file reference name
*/
public String getSdlFileName() {
- return (String) parameters.get(KEY_SDL_FILE_NAME);
+ return getString(KEY_SDL_FILE_NAME);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteFileResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteFileResponse.java index 9916b95dc..499b5e518 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteFileResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteFileResponse.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
+import java.util.Hashtable;
+
/**
* Delete File Response is sent, when DeleteFile has been called
*
@@ -23,13 +23,9 @@ public class DeleteFileResponse extends RPCResponse { super(hash);
}
public void setSpaceAvailable(Integer spaceAvailable) {
- if (spaceAvailable != null) {
- parameters.put(KEY_SPACE_AVAILABLE, spaceAvailable);
- } else {
- parameters.remove(KEY_SPACE_AVAILABLE);
- }
+ setParameters(KEY_SPACE_AVAILABLE, spaceAvailable);
}
public Integer getSpaceAvailable() {
- return (Integer) parameters.get(KEY_SPACE_AVAILABLE);
+ return getInteger(KEY_SPACE_AVAILABLE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteInteractionChoiceSet.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteInteractionChoiceSet.java index 87f8cdbc3..41e884bce 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteInteractionChoiceSet.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteInteractionChoiceSet.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+
/**
* Deletes an existing Choice Set identified by the parameter
* interactionChoiceSetID. If the specified interactionChoiceSetID is currently
@@ -83,7 +83,7 @@ public class DeleteInteractionChoiceSet extends RPCRequest { * @return Integer -an Integer value representing the unique Choice Set ID
*/
public Integer getInteractionChoiceSetID() {
- return (Integer) parameters.get( KEY_INTERACTION_CHOICE_SET_ID );
+ return getInteger( KEY_INTERACTION_CHOICE_SET_ID );
}
/**
* Sets a unique ID that identifies the Choice Set
@@ -91,10 +91,6 @@ public class DeleteInteractionChoiceSet extends RPCRequest { * <p><b>Notes: </b>Min Value: 0; Max Value: 2000000000 </p>
*/
public void setInteractionChoiceSetID( Integer interactionChoiceSetID ) {
- if (interactionChoiceSetID != null) {
- parameters.put(KEY_INTERACTION_CHOICE_SET_ID, interactionChoiceSetID );
- } else {
- parameters.remove(KEY_INTERACTION_CHOICE_SET_ID);
- }
+ setParameters(KEY_INTERACTION_CHOICE_SET_ID, interactionChoiceSetID);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteSubMenu.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteSubMenu.java index aac605f51..db3524aa1 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteSubMenu.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeleteSubMenu.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+
/**
* Deletes a submenu from the Command Menu.
*
@@ -72,7 +72,7 @@ public class DeleteSubMenu extends RPCRequest { * @return Integer -an Integer value representing menuID that identifies the SubMenu to be delete
*/
public Integer getMenuID() {
- return (Integer) parameters.get( KEY_MENU_ID );
+ return getInteger( KEY_MENU_ID );
}
/**
* Sets the MenuID that identifies the SubMenu to be delete
@@ -81,10 +81,6 @@ public class DeleteSubMenu extends RPCRequest { * <p><b>Notes: </b>Min Value: 0; Max Value: 2000000000</p>
*/
public void setMenuID( Integer menuID ) {
- if (menuID != null) {
- parameters.put(KEY_MENU_ID, menuID );
- } else {
- parameters.remove(KEY_MENU_ID);
- }
+ setParameters(KEY_MENU_ID, menuID);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeviceInfo.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeviceInfo.java index b7d8ea5cf..485d859b7 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeviceInfo.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeviceInfo.java @@ -95,76 +95,51 @@ public class DeviceInfo extends RPCStruct{ }
public void setHardware(String hardware) {
- if (hardware != null) {
- store.put(KEY_HARDWARE, hardware);
- } else {
- store.remove(KEY_HARDWARE);
- }
+ setValue(KEY_HARDWARE, hardware);
}
public String getHardware() {
- return (String) store.get(KEY_HARDWARE);
+ return getString(KEY_HARDWARE);
}
public void setFirmwareRev(String firmwareRev) {
- if (firmwareRev != null) {
- store.put(KEY_FIRMWARE_REV, firmwareRev);
- } else {
- store.remove(KEY_FIRMWARE_REV);
- }
+ setValue(KEY_FIRMWARE_REV, firmwareRev);
}
public String getFirmwareRev() {
- return (String) store.get(KEY_FIRMWARE_REV);
+ return getString(KEY_FIRMWARE_REV);
}
public void setOs(String os) {
- if (os != null) {
- store.put(KEY_OS, os);
- } else {
- store.remove(KEY_OS);
- }
+ setValue(KEY_OS, os);
}
public String getOs() {
- return (String) store.get(KEY_OS);
+ return getString(KEY_OS);
}
public void setOsVersion(String osVersion) {
- if (osVersion != null) {
- store.put(KEY_OS_VERSION, osVersion);
- } else {
- store.remove(KEY_OS_VERSION);
- }
+ setValue(KEY_OS_VERSION, osVersion);
}
public String getOsVersion() {
- return (String) store.get(KEY_OS_VERSION);
+ return getString(KEY_OS_VERSION);
}
public void setCarrier(String carrier) {
- if (carrier != null) {
- store.put(KEY_CARRIER, carrier);
- } else {
- store.remove(KEY_CARRIER);
- }
+ setValue(KEY_CARRIER, carrier);
}
public String getCarrier() {
- return (String) store.get(KEY_CARRIER);
+ return getString(KEY_CARRIER);
}
public Integer getMaxNumberRFCOMMPorts() {
- return (Integer) store.get( KEY_MAX_NUMBER_RFCOMM_PORTS );
+ return getInteger( KEY_MAX_NUMBER_RFCOMM_PORTS );
}
public void setMaxNumberRFCOMMPorts( Integer maxNumberRFCOMMPorts ) {
- if (maxNumberRFCOMMPorts != null) {
- store.put(KEY_MAX_NUMBER_RFCOMM_PORTS, maxNumberRFCOMMPorts );
- }
- else {
- store.remove(KEY_MAX_NUMBER_RFCOMM_PORTS);
- }
+ setValue(KEY_MAX_NUMBER_RFCOMM_PORTS, maxNumberRFCOMMPorts);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeviceStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeviceStatus.java index 51d5304b4..d90c4631f 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeviceStatus.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DeviceStatus.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.DeviceLevelStatus;
import com.smartdevicelink.proxy.rpc.enums.PrimaryAudioSource;
+import java.util.Hashtable;
+
/**
* Describes the status related to a connected mobile device or SDL and if or how it is represented in the vehicle.
* <p><b>Parameter List</b></p>
@@ -132,11 +132,7 @@ public class DeviceStatus extends RPCStruct { * @param voiceRecOn
*/
public void setVoiceRecOn(Boolean voiceRecOn) {
- if (voiceRecOn != null) {
- store.put(KEY_VOICE_REC_ON, voiceRecOn);
- } else {
- store.remove(KEY_VOICE_REC_ON);
- }
+ setValue(KEY_VOICE_REC_ON, voiceRecOn);
}
/**
@@ -144,7 +140,7 @@ public class DeviceStatus extends RPCStruct { * @return whether the voice recognition is on
*/
public Boolean getVoiceRecOn() {
- return (Boolean) store.get(KEY_VOICE_REC_ON);
+ return getBoolean(KEY_VOICE_REC_ON);
}
/**
@@ -152,11 +148,7 @@ public class DeviceStatus extends RPCStruct { * @param btIconOn the bluetooth connection established
*/
public void setBtIconOn(Boolean btIconOn) {
- if (btIconOn != null) {
- store.put(KEY_BT_ICON_ON, btIconOn);
- } else {
- store.remove(KEY_BT_ICON_ON);
- }
+ setValue(KEY_BT_ICON_ON, btIconOn);
}
/**
@@ -164,7 +156,7 @@ public class DeviceStatus extends RPCStruct { * @return the bluetooth connection established
*/
public Boolean getBtIconOn() {
- return (Boolean) store.get(KEY_BT_ICON_ON);
+ return getBoolean(KEY_BT_ICON_ON);
}
/**
@@ -172,11 +164,7 @@ public class DeviceStatus extends RPCStruct { * @param callActive a call is being active
*/
public void setCallActive(Boolean callActive) {
- if (callActive != null) {
- store.put(KEY_CALL_ACTIVE, callActive);
- } else {
- store.remove(KEY_CALL_ACTIVE);
- }
+ setValue(KEY_CALL_ACTIVE, callActive);
}
/**
@@ -184,7 +172,7 @@ public class DeviceStatus extends RPCStruct { * @return a call is being active
*/
public Boolean getCallActive() {
- return (Boolean) store.get(KEY_CALL_ACTIVE);
+ return getBoolean(KEY_CALL_ACTIVE);
}
/**
@@ -192,11 +180,7 @@ public class DeviceStatus extends RPCStruct { * @param phoneRoaming the phone is in roaming mode
*/
public void setPhoneRoaming(Boolean phoneRoaming) {
- if (phoneRoaming != null) {
- store.put(KEY_PHONE_ROAMING, phoneRoaming);
- } else {
- store.remove(KEY_PHONE_ROAMING);
- }
+ setValue(KEY_PHONE_ROAMING, phoneRoaming);
}
/**
@@ -204,14 +188,10 @@ public class DeviceStatus extends RPCStruct { * @return the phone is in roaming mode
*/
public Boolean getPhoneRoaming() {
- return (Boolean) store.get(KEY_PHONE_ROAMING);
+ return getBoolean(KEY_PHONE_ROAMING);
}
public void setTextMsgAvailable(Boolean textMsgAvailable) {
- if (textMsgAvailable != null) {
- store.put(KEY_TEXT_MSG_AVAILABLE, textMsgAvailable);
- } else {
- store.remove(KEY_TEXT_MSG_AVAILABLE);
- }
+ setValue(KEY_TEXT_MSG_AVAILABLE, textMsgAvailable);
}
/**
@@ -219,7 +199,7 @@ public class DeviceStatus extends RPCStruct { * @return a textmessage is available
*/
public Boolean getTextMsgAvailable() {
- return (Boolean) store.get(KEY_TEXT_MSG_AVAILABLE);
+ return getBoolean(KEY_TEXT_MSG_AVAILABLE);
}
/**
@@ -227,11 +207,7 @@ public class DeviceStatus extends RPCStruct { * @param battLevelStatus battery level status
*/
public void setBattLevelStatus(DeviceLevelStatus battLevelStatus) {
- if (battLevelStatus != null) {
- store.put(KEY_BATT_LEVEL_STATUS, battLevelStatus);
- } else {
- store.remove(KEY_BATT_LEVEL_STATUS);
- }
+ setValue(KEY_BATT_LEVEL_STATUS, battLevelStatus);
}
/**
@@ -239,13 +215,7 @@ public class DeviceStatus extends RPCStruct { * @return battery level status
*/
public DeviceLevelStatus getBattLevelStatus() {
- Object obj = store.get(KEY_BATT_LEVEL_STATUS);
- if (obj instanceof DeviceLevelStatus) {
- return (DeviceLevelStatus) obj;
- } else if (obj instanceof String) {
- return DeviceLevelStatus.valueForString((String) obj);
- }
- return null;
+ return (DeviceLevelStatus) getObject(DeviceLevelStatus.class, KEY_BATT_LEVEL_STATUS);
}
/**
@@ -253,11 +223,7 @@ public class DeviceStatus extends RPCStruct { * @param stereoAudioOutputMuted the status of the stereo audio output channel
*/
public void setStereoAudioOutputMuted(Boolean stereoAudioOutputMuted) {
- if (stereoAudioOutputMuted != null) {
- store.put(KEY_STEREO_AUDIO_OUTPUT_MUTED, stereoAudioOutputMuted);
- } else {
- store.remove(KEY_STEREO_AUDIO_OUTPUT_MUTED);
- }
+ setValue(KEY_STEREO_AUDIO_OUTPUT_MUTED, stereoAudioOutputMuted);
}
/**
@@ -265,7 +231,7 @@ public class DeviceStatus extends RPCStruct { * @return the status of the stereo audio output channel
*/
public Boolean getStereoAudioOutputMuted() {
- return (Boolean) store.get(KEY_STEREO_AUDIO_OUTPUT_MUTED);
+ return getBoolean(KEY_STEREO_AUDIO_OUTPUT_MUTED);
}
/**
@@ -273,11 +239,7 @@ public class DeviceStatus extends RPCStruct { * @param monoAudioOutputMuted the status of the mono audio output channel
*/
public void setMonoAudioOutputMuted(Boolean monoAudioOutputMuted) {
- if (monoAudioOutputMuted != null) {
- store.put(KEY_MONO_AUDIO_OUTPUT_MUTED, monoAudioOutputMuted);
- } else {
- store.remove(KEY_MONO_AUDIO_OUTPUT_MUTED);
- }
+ setValue(KEY_MONO_AUDIO_OUTPUT_MUTED, monoAudioOutputMuted);
}
/**
@@ -285,7 +247,7 @@ public class DeviceStatus extends RPCStruct { * @return the status of the mono audio output channel
*/
public Boolean getMonoAudioOutputMuted() {
- return (Boolean) store.get(KEY_MONO_AUDIO_OUTPUT_MUTED);
+ return getBoolean(KEY_MONO_AUDIO_OUTPUT_MUTED);
}
/**
@@ -293,11 +255,7 @@ public class DeviceStatus extends RPCStruct { * @param signalLevelStatus signal level status
*/
public void setSignalLevelStatus(DeviceLevelStatus signalLevelStatus) {
- if (signalLevelStatus != null) {
- store.put(KEY_SIGNAL_LEVEL_STATUS, signalLevelStatus);
- } else {
- store.remove(KEY_SIGNAL_LEVEL_STATUS);
- }
+ setValue(KEY_SIGNAL_LEVEL_STATUS, signalLevelStatus);
}
/**
@@ -305,13 +263,7 @@ public class DeviceStatus extends RPCStruct { * @return signal level status
*/
public DeviceLevelStatus getSignalLevelStatus() {
- Object obj = store.get(KEY_SIGNAL_LEVEL_STATUS);
- if (obj instanceof DeviceLevelStatus) {
- return (DeviceLevelStatus) obj;
- } else if (obj instanceof String) {
- return DeviceLevelStatus.valueForString((String) obj);
- }
- return null;
+ return (DeviceLevelStatus) getObject(DeviceLevelStatus.class, KEY_SIGNAL_LEVEL_STATUS);
}
/**
@@ -319,11 +271,7 @@ public class DeviceStatus extends RPCStruct { * @param primaryAudioSource the current primary audio source of SDL (if selected).
*/
public void setPrimaryAudioSource(PrimaryAudioSource primaryAudioSource) {
- if (primaryAudioSource != null) {
- store.put(KEY_PRIMARY_AUDIO_SOURCE, primaryAudioSource);
- } else {
- store.remove(KEY_PRIMARY_AUDIO_SOURCE);
- }
+ setValue(KEY_PRIMARY_AUDIO_SOURCE, primaryAudioSource);
}
/**
@@ -331,22 +279,12 @@ public class DeviceStatus extends RPCStruct { * @return the current primary audio source of SDL (if selected).
*/
public PrimaryAudioSource getPrimaryAudioSource() {
- Object obj = store.get(KEY_PRIMARY_AUDIO_SOURCE);
- if (obj instanceof PrimaryAudioSource) {
- return (PrimaryAudioSource) obj;
- } else if (obj instanceof String) {
- return PrimaryAudioSource.valueForString((String) obj);
- }
- return null;
+ return (PrimaryAudioSource) getObject(PrimaryAudioSource.class, KEY_PRIMARY_AUDIO_SOURCE);
}
public void setECallEventActive(Boolean eCallEventActive) {
- if (eCallEventActive != null) {
- store.put(KEY_E_CALL_EVENT_ACTIVE, eCallEventActive);
- } else {
- store.remove(KEY_E_CALL_EVENT_ACTIVE);
- }
+ setValue(KEY_E_CALL_EVENT_ACTIVE, eCallEventActive);
}
public Boolean getECallEventActive() {
- return (Boolean) store.get(KEY_E_CALL_EVENT_ACTIVE);
+ return getBoolean(KEY_E_CALL_EVENT_ACTIVE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DiagnosticMessage.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DiagnosticMessage.java index 0a0d8f997..f83c07735 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DiagnosticMessage.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DiagnosticMessage.java @@ -1,10 +1,11 @@ package com.smartdevicelink.proxy.rpc;
+import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.RPCRequest;
+
import java.util.Hashtable;
import java.util.List;
-import com.smartdevicelink.protocol.enums.FunctionID;
-import com.smartdevicelink.proxy.RPCRequest;
/** Non periodic vehicle diagnostic request.
*
* <p><b>Parameter List</b></p>
@@ -81,11 +82,7 @@ public class DiagnosticMessage extends RPCRequest { public void setTargetID(Integer targetID) {
- if (targetID != null) {
- parameters.put(KEY_TARGET_ID, targetID);
- } else {
- parameters.remove(KEY_TARGET_ID);
- }
+ setParameters(KEY_TARGET_ID, targetID);
}
/**
* <p>
@@ -96,39 +93,22 @@ public class DiagnosticMessage extends RPCRequest { */
public Integer getTargetID() {
- return (Integer) parameters.get(KEY_TARGET_ID);
+ return getInteger(KEY_TARGET_ID);
}
public void setMessageLength(Integer messageLength) {
- if (messageLength != null) {
- parameters.put(KEY_MESSAGE_LENGTH, messageLength);
- } else {
- parameters.remove(KEY_MESSAGE_LENGTH);
- }
+ setParameters(KEY_MESSAGE_LENGTH, messageLength);
}
public Integer getMessageLength() {
- return (Integer) parameters.get(KEY_MESSAGE_LENGTH);
+ return getInteger(KEY_MESSAGE_LENGTH);
}
@SuppressWarnings("unchecked")
public List<Integer> getMessageData() {
- if(parameters.get(KEY_MESSAGE_DATA) instanceof List<?>){
- List<?> list = (List<?>)parameters.get(KEY_MESSAGE_DATA);
- if(list != null && list.size()>0){
- Object obj = list.get(0);
- if(obj instanceof Integer){
- return (List<Integer>) list;
- }
- }
- }
- return null;
+ return (List<Integer>) getObject(Integer.class, KEY_MESSAGE_DATA);
}
public void setMessageData(List<Integer> messageData) {
- if (messageData != null) {
- parameters.put(KEY_MESSAGE_DATA, messageData);
- } else {
- parameters.remove(KEY_MESSAGE_DATA);
- }
+ setParameters(KEY_MESSAGE_DATA, messageData);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DiagnosticMessageResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DiagnosticMessageResponse.java index 8cb0bc8d4..c478496f7 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DiagnosticMessageResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DiagnosticMessageResponse.java @@ -1,10 +1,11 @@ package com.smartdevicelink.proxy.rpc;
+import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.RPCResponse;
+
import java.util.Hashtable;
import java.util.List;
-import com.smartdevicelink.protocol.enums.FunctionID;
-import com.smartdevicelink.proxy.RPCResponse;
/**
* Diagnostic Message Response is sent, when DiagnosticMessage has been called.
*
@@ -24,23 +25,10 @@ public class DiagnosticMessageResponse extends RPCResponse { }
@SuppressWarnings("unchecked")
public List<Integer> getMessageDataResult() {
- if(parameters.get(KEY_MESSAGE_DATA_RESULT) instanceof List<?>){
- List<?> list = (List<?>)parameters.get(KEY_MESSAGE_DATA_RESULT);
- if(list != null && list.size()>0){
- Object obj = list.get(0);
- if(obj instanceof Integer){
- return (List<Integer>) list;
- }
- }
- }
- return null;
+ return (List<Integer>) getObject(Integer.class, KEY_MESSAGE_DATA_RESULT);
}
public void setMessageDataResult(List<Integer> messageDataResult) {
- if (messageDataResult != null) {
- parameters.put(KEY_MESSAGE_DATA_RESULT, messageDataResult);
- } else {
- parameters.remove(KEY_MESSAGE_DATA_RESULT);
- }
+ setParameters(KEY_MESSAGE_DATA_RESULT, messageDataResult);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DialNumber.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DialNumber.java index 4651e1f20..4afc68a0c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DialNumber.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/DialNumber.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc; -import java.util.Hashtable; - import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCRequest; +import java.util.Hashtable; + /** * Dials a phone number and switches to phone application. * @@ -34,10 +34,8 @@ public class DialNumber extends RPCRequest { public void setNumber(String number) { if (number != null) { number = number.replaceAll("[^0-9*#,;+]", ""); //This will sanitize the input - parameters.put(KEY_NUMBER, number); - } else { - parameters.remove(KEY_NUMBER); } + setParameters(KEY_NUMBER, number); } /** @@ -46,6 +44,6 @@ public class DialNumber extends RPCRequest { * @return String - a String value representing a number to dial */ public String getNumber() { - return (String) parameters.get(KEY_NUMBER); + return getString(KEY_NUMBER); } } 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 f0739e371..69928a128 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 @@ -1,13 +1,14 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.DisplayType;
import com.smartdevicelink.proxy.rpc.enums.MediaClockFormat;
+import com.smartdevicelink.proxy.rpc.enums.VehicleDataResultCode;
import com.smartdevicelink.util.DebugTool;
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
/**
* Contains information about the display for the SDL system to which the application is currently connected.
* <p><b> Parameter List</b></p>
@@ -78,24 +79,14 @@ public class DisplayCapabilities extends RPCStruct { * @return the type of display
*/
public DisplayType getDisplayType() {
- Object obj = store.get(KEY_DISPLAY_TYPE);
- if (obj instanceof DisplayType) {
- return (DisplayType) obj;
- } else if (obj instanceof String) {
- return DisplayType.valueForString((String) obj);
- }
- return null;
+ return (DisplayType) getObject(DisplayType.class, KEY_DISPLAY_TYPE);
}
/**
* Set the type of display
* @param displayType the display type
*/
public void setDisplayType( DisplayType displayType ) {
- if (displayType != null) {
- store.put(KEY_DISPLAY_TYPE, displayType );
- } else {
- store.remove(KEY_DISPLAY_TYPE);
- }
+ setValue(KEY_DISPLAY_TYPE, displayType);
}
/**
*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.
@@ -104,22 +95,7 @@ public class DisplayCapabilities extends RPCStruct { */
@SuppressWarnings("unchecked")
public List<TextField> getTextFields() {
- if (store.get(KEY_TEXT_FIELDS) instanceof List<?>) {
- List<?> list = (List<?>)store.get(KEY_TEXT_FIELDS);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TextField) {
- return (List<TextField>) list;
- } else if (obj instanceof Hashtable) {
- List<TextField> newList = new ArrayList<TextField>();
- for (Object hashObj : list) {
- newList.add(new TextField((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TextField>) getObject(TextField.class, KEY_TEXT_FIELDS);
}
/**
* Set 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.
@@ -127,57 +103,26 @@ public class DisplayCapabilities extends RPCStruct { * @param textFields the List of textFields
*/
public void setTextFields( List<TextField> textFields ) {
- if (textFields != null) {
- store.put(KEY_TEXT_FIELDS, textFields );
- } else {
- store.remove(KEY_TEXT_FIELDS);
- }
+ setValue(KEY_TEXT_FIELDS, textFields);
}
@SuppressWarnings("unchecked")
public List<ImageField> getImageFields() {
- if (store.get(KEY_IMAGE_FIELDS) instanceof List<?>) {
- List<?> list = (List<?>)store.get(KEY_IMAGE_FIELDS);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof ImageField) {
- return (List<ImageField>) list;
- } else if (obj instanceof Hashtable) {
- List<ImageField> newList = new ArrayList<ImageField>();
- for (Object hashObj : list) {
- newList.add(new ImageField((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<ImageField>) getObject(ImageField.class, KEY_IMAGE_FIELDS);
}
public void setImageFields( List<ImageField> imageFields ) {
- if (imageFields != null) {
- store.put(KEY_IMAGE_FIELDS, imageFields );
- }
- else
- {
- store.remove(KEY_IMAGE_FIELDS);
- }
+ setValue(KEY_IMAGE_FIELDS, imageFields);
}
public Integer getNumCustomPresetsAvailable() {
- return (Integer) store.get(KEY_NUM_CUSTOM_PRESETS_AVAILABLE);
+ return getInteger(KEY_NUM_CUSTOM_PRESETS_AVAILABLE);
}
public void setNumCustomPresetsAvailable(Integer numCustomPresetsAvailable) {
- if (numCustomPresetsAvailable != null) {
- store.put(KEY_NUM_CUSTOM_PRESETS_AVAILABLE, numCustomPresetsAvailable);
- }
- else
- {
- store.remove(KEY_NUM_CUSTOM_PRESETS_AVAILABLE);
- }
+ setValue(KEY_NUM_CUSTOM_PRESETS_AVAILABLE, numCustomPresetsAvailable);
}
/**
@@ -186,37 +131,14 @@ public class DisplayCapabilities extends RPCStruct { */
@SuppressWarnings("unchecked")
public List<MediaClockFormat> getMediaClockFormats() {
- if (store.get(KEY_MEDIA_CLOCK_FORMATS) instanceof List<?>) {
- List<?> list = (List<?>)store.get(KEY_MEDIA_CLOCK_FORMATS);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof MediaClockFormat) {
- return (List<MediaClockFormat>) list;
- } else if (obj instanceof String) {
- List<MediaClockFormat> newList = new ArrayList<MediaClockFormat>();
- for (Object hashObj : list) {
- String strFormat = (String)hashObj;
- MediaClockFormat toAdd = MediaClockFormat.valueForString(strFormat);
- if (toAdd != null) {
- newList.add(toAdd);
- }
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<MediaClockFormat>) getObject(MediaClockFormat.class, KEY_MEDIA_CLOCK_FORMATS);
}
/**
* Set an array of MediaClockFormat elements, defining the valid string formats used in specifying the contents of the media clock field
* @param mediaClockFormats the List of MediaClockFormat
*/
public void setMediaClockFormats( List<MediaClockFormat> mediaClockFormats ) {
- if (mediaClockFormats != null) {
- store.put(KEY_MEDIA_CLOCK_FORMATS, mediaClockFormats );
- } else {
- store.remove(KEY_MEDIA_CLOCK_FORMATS);
- }
+ setValue(KEY_MEDIA_CLOCK_FORMATS, mediaClockFormats);
}
/**
@@ -225,11 +147,7 @@ public class DisplayCapabilities extends RPCStruct { * @since SmartDeviceLink 2.0
*/
public void setGraphicSupported(Boolean graphicSupported) {
- if (graphicSupported != null) {
- store.put(KEY_GRAPHIC_SUPPORTED, graphicSupported);
- } else {
- store.remove(KEY_GRAPHIC_SUPPORTED);
- }
+ setValue(KEY_GRAPHIC_SUPPORTED, graphicSupported);
}
/**
@@ -238,53 +156,24 @@ public class DisplayCapabilities extends RPCStruct { * @since SmartDeviceLink 2.0
*/
public Boolean getGraphicSupported() {
- return (Boolean) store.get(KEY_GRAPHIC_SUPPORTED);
+ return getBoolean(KEY_GRAPHIC_SUPPORTED);
}
@SuppressWarnings("unchecked")
public List<String> getTemplatesAvailable() {
- if (store.get(KEY_TEMPLATES_AVAILABLE) instanceof List<?>) {
- List<?> list = (List<?>)store.get( KEY_TEMPLATES_AVAILABLE);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_TEMPLATES_AVAILABLE);
}
public void setTemplatesAvailable(List<String> templatesAvailable) {
- if (templatesAvailable != null) {
- store.put(KEY_TEMPLATES_AVAILABLE, templatesAvailable);
- }
- else
- {
- store.remove(KEY_TEMPLATES_AVAILABLE);
- }
+ setValue(KEY_TEMPLATES_AVAILABLE, templatesAvailable);
}
public void setScreenParams(ScreenParams screenParams) {
- if (screenParams != null) {
- store.put(KEY_SCREEN_PARAMS, screenParams);
- } else {
- store.remove(KEY_SCREEN_PARAMS);
- }
+ setValue(KEY_SCREEN_PARAMS, screenParams);
}
@SuppressWarnings("unchecked")
public ScreenParams getScreenParams() {
- Object obj = store.get(KEY_SCREEN_PARAMS);
- if (obj instanceof ScreenParams) {
- return (ScreenParams) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new ScreenParams((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_SCREEN_PARAMS, e);
- }
- }
- return null;
+ return (ScreenParams) getObject(ScreenParams.class, KEY_SCREEN_PARAMS);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ECallInfo.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ECallInfo.java index 88eb89e03..da6c37d9a 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ECallInfo.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ECallInfo.java @@ -1,10 +1,12 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.ECallConfirmationStatus;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataNotificationStatus;
+import com.smartdevicelink.proxy.rpc.enums.VehicleDataResultCode;
+
+import java.util.Hashtable;
+
/** Emergency Call notification and confirmation data.
*
* <p><b>Parameter List</b></p>
@@ -67,51 +69,21 @@ public class ECallInfo extends RPCStruct { }
public void setECallNotificationStatus(VehicleDataNotificationStatus eCallNotificationStatus) {
- if (eCallNotificationStatus != null) {
- store.put(KEY_E_CALL_NOTIFICATION_STATUS, eCallNotificationStatus);
- } else {
- store.remove(KEY_E_CALL_NOTIFICATION_STATUS);
- }
+ setValue(KEY_E_CALL_NOTIFICATION_STATUS, eCallNotificationStatus);
}
public VehicleDataNotificationStatus getECallNotificationStatus() {
- Object obj = store.get(KEY_E_CALL_NOTIFICATION_STATUS);
- if (obj instanceof VehicleDataNotificationStatus) {
- return (VehicleDataNotificationStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataNotificationStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataNotificationStatus) getObject(VehicleDataNotificationStatus.class, KEY_E_CALL_NOTIFICATION_STATUS);
}
public void setAuxECallNotificationStatus(VehicleDataNotificationStatus auxECallNotificationStatus) {
- if (auxECallNotificationStatus != null) {
- store.put(KEY_AUX_E_CALL_NOTIFICATION_STATUS, auxECallNotificationStatus);
- } else {
- store.remove(KEY_AUX_E_CALL_NOTIFICATION_STATUS);
- }
+ setValue(KEY_AUX_E_CALL_NOTIFICATION_STATUS, auxECallNotificationStatus);
}
public VehicleDataNotificationStatus getAuxECallNotificationStatus() {
- Object obj = store.get(KEY_AUX_E_CALL_NOTIFICATION_STATUS);
- if (obj instanceof VehicleDataNotificationStatus) {
- return (VehicleDataNotificationStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataNotificationStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataNotificationStatus) getObject(VehicleDataNotificationStatus.class, KEY_AUX_E_CALL_NOTIFICATION_STATUS);
}
public void setECallConfirmationStatus(ECallConfirmationStatus eCallConfirmationStatus) {
- if (eCallConfirmationStatus != null) {
- store.put(KEY_E_CALL_CONFIRMATION_STATUS, eCallConfirmationStatus);
- } else {
- store.remove(KEY_E_CALL_CONFIRMATION_STATUS);
- }
+ setValue(KEY_E_CALL_CONFIRMATION_STATUS, eCallConfirmationStatus);
}
public ECallConfirmationStatus getECallConfirmationStatus() {
- Object obj = store.get(KEY_E_CALL_CONFIRMATION_STATUS);
- if (obj instanceof ECallConfirmationStatus) {
- return (ECallConfirmationStatus) obj;
- } else if (obj instanceof String) {
- return ECallConfirmationStatus.valueForString((String) obj);
- }
- return null;
+ return (ECallConfirmationStatus) getObject(ECallConfirmationStatus.class, KEY_E_CALL_CONFIRMATION_STATUS);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/EmergencyEvent.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/EmergencyEvent.java index 5e1f2ede1..19b8f69bb 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/EmergencyEvent.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/EmergencyEvent.java @@ -6,6 +6,11 @@ import com.smartdevicelink.proxy.RPCStruct; import com.smartdevicelink.proxy.rpc.enums.EmergencyEventType;
import com.smartdevicelink.proxy.rpc.enums.FuelCutoffStatus;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
+
+import static android.provider.Contacts.SettingsColumns.KEY;
+import static com.smartdevicelink.proxy.constants.Names.multipleEvents;
+import static com.smartdevicelink.proxy.rpc.TireStatus.KEY_INNER_RIGHT_REAR;
+
/** Information related to an emergency event (and if it occurred).
*
* <p><b>Parameter List</b></p>
@@ -88,77 +93,33 @@ public class EmergencyEvent extends RPCStruct { }
public void setEmergencyEventType(EmergencyEventType emergencyEventType) {
- if (emergencyEventType != null) {
- store.put(KEY_EMERGENCY_EVENT_TYPE, emergencyEventType);
- } else {
- store.remove(KEY_EMERGENCY_EVENT_TYPE);
- }
+ setValue(KEY_EMERGENCY_EVENT_TYPE, emergencyEventType);
}
public EmergencyEventType getEmergencyEventType() {
- Object obj = store.get(KEY_EMERGENCY_EVENT_TYPE);
- if (obj instanceof EmergencyEventType) {
- return (EmergencyEventType) obj;
- } else if (obj instanceof String) {
- return EmergencyEventType.valueForString((String) obj);
- }
- return null;
+ return (EmergencyEventType) getObject(EmergencyEventType.class, KEY_EMERGENCY_EVENT_TYPE);
}
public void setFuelCutoffStatus(FuelCutoffStatus fuelCutoffStatus) {
- if (fuelCutoffStatus != null) {
- store.put(KEY_FUEL_CUTOFF_STATUS, fuelCutoffStatus);
- } else {
- store.remove(KEY_FUEL_CUTOFF_STATUS);
- }
+ setValue(KEY_FUEL_CUTOFF_STATUS, fuelCutoffStatus);
}
public FuelCutoffStatus getFuelCutoffStatus() {
- Object obj = store.get(KEY_FUEL_CUTOFF_STATUS);
- if (obj instanceof FuelCutoffStatus) {
- return (FuelCutoffStatus) obj;
- } else if (obj instanceof String) {
- return FuelCutoffStatus.valueForString((String) obj);
- }
- return null;
+ return (FuelCutoffStatus) getObject(FuelCutoffStatus.class, KEY_FUEL_CUTOFF_STATUS);
}
public void setRolloverEvent(VehicleDataEventStatus rolloverEvent) {
- if (rolloverEvent != null) {
- store.put(KEY_ROLLOVER_EVENT, rolloverEvent);
- } else {
- store.remove(KEY_ROLLOVER_EVENT);
- }
+ setValue(KEY_ROLLOVER_EVENT, rolloverEvent);
}
public VehicleDataEventStatus getRolloverEvent() {
- Object obj = store.get(KEY_ROLLOVER_EVENT);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_ROLLOVER_EVENT);
}
public void setMaximumChangeVelocity(Integer maximumChangeVelocity) {
- if (maximumChangeVelocity != null) {
- store.put(KEY_MAXIMUM_CHANGE_VELOCITY, maximumChangeVelocity);
- } else {
- store.remove(KEY_MAXIMUM_CHANGE_VELOCITY);
- }
+ setValue(KEY_MAXIMUM_CHANGE_VELOCITY, maximumChangeVelocity);
}
public Integer getMaximumChangeVelocity() {
- return (Integer) store.get(KEY_MAXIMUM_CHANGE_VELOCITY);
+ return getInteger(KEY_MAXIMUM_CHANGE_VELOCITY);
}
public void setMultipleEvents(VehicleDataEventStatus multipleEvents) {
- if (multipleEvents != null) {
- store.put(KEY_MULTIPLE_EVENTS, multipleEvents);
- } else {
- store.remove(KEY_MULTIPLE_EVENTS);
- }
+ setValue(KEY_MULTIPLE_EVENTS, multipleEvents);
}
public VehicleDataEventStatus getMultipleEvents() {
- Object obj = store.get(KEY_MULTIPLE_EVENTS);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_MULTIPLE_EVENTS);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GPSData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GPSData.java index d76b11355..fec91005b 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GPSData.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GPSData.java @@ -1,11 +1,12 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.CompassDirection;
import com.smartdevicelink.proxy.rpc.enums.Dimension;
import com.smartdevicelink.util.SdlDataTypeConverter;
+
+import java.util.Hashtable;
+
/**
* Describes the GPS data. Not all data will be available on all carlines.
* <p><b>Parameter List</b></p>
@@ -180,11 +181,7 @@ public class GPSData extends RPCStruct { * @param longitudeDegrees
*/
public void setLongitudeDegrees(Double longitudeDegrees) {
- if (longitudeDegrees != null) {
- store.put(KEY_LONGITUDE_DEGREES, longitudeDegrees);
- } else {
- store.remove(KEY_LONGITUDE_DEGREES);
- }
+ setValue(KEY_LONGITUDE_DEGREES, longitudeDegrees);
}
/**
@@ -192,7 +189,7 @@ public class GPSData extends RPCStruct { * @return longitude degrees
*/
public Double getLongitudeDegrees() {
- Object object = store.get(KEY_LONGITUDE_DEGREES);
+ Object object = getValue(KEY_LONGITUDE_DEGREES);
return SdlDataTypeConverter.objectToDouble(object);
}
@@ -201,11 +198,7 @@ public class GPSData extends RPCStruct { * @param latitudeDegrees latitude degrees
*/
public void setLatitudeDegrees(Double latitudeDegrees) {
- if (latitudeDegrees != null) {
- store.put(KEY_LATITUDE_DEGREES, latitudeDegrees);
- } else {
- store.remove(KEY_LATITUDE_DEGREES);
- }
+ setValue(KEY_LATITUDE_DEGREES, latitudeDegrees);
}
/**
@@ -213,7 +206,7 @@ public class GPSData extends RPCStruct { * @return latitude degrees
*/
public Double getLatitudeDegrees() {
- Object object = store.get(KEY_LATITUDE_DEGREES);
+ Object object = getValue(KEY_LATITUDE_DEGREES);
return SdlDataTypeConverter.objectToDouble(object);
}
@@ -222,11 +215,7 @@ public class GPSData extends RPCStruct { * @param utcYear utc year
*/
public void setUtcYear(Integer utcYear) {
- if (utcYear != null) {
- store.put(KEY_UTC_YEAR, utcYear);
- } else {
- store.remove(KEY_UTC_YEAR);
- }
+ setValue(KEY_UTC_YEAR, utcYear);
}
/**
@@ -234,7 +223,7 @@ public class GPSData extends RPCStruct { * @return utc year
*/
public Integer getUtcYear() {
- return (Integer) store.get(KEY_UTC_YEAR);
+ return getInteger(KEY_UTC_YEAR);
}
/**
@@ -242,11 +231,7 @@ public class GPSData extends RPCStruct { * @param utcMonth utc month
*/
public void setUtcMonth(Integer utcMonth) {
- if (utcMonth != null) {
- store.put(KEY_UTC_MONTH, utcMonth);
- } else {
- store.remove(KEY_UTC_MONTH);
- }
+ setValue(KEY_UTC_MONTH, utcMonth);
}
/**
@@ -254,7 +239,7 @@ public class GPSData extends RPCStruct { * @return utc month
*/
public Integer getUtcMonth() {
- return (Integer) store.get(KEY_UTC_MONTH);
+ return getInteger(KEY_UTC_MONTH);
}
/**
@@ -262,11 +247,7 @@ public class GPSData extends RPCStruct { * @param utcDay utc day
*/
public void setUtcDay(Integer utcDay) {
- if (utcDay != null) {
- store.put(KEY_UTC_DAY, utcDay);
- } else {
- store.remove(KEY_UTC_DAY);
- }
+ setValue(KEY_UTC_DAY, utcDay);
}
/**
@@ -274,7 +255,7 @@ public class GPSData extends RPCStruct { * @return utc day
*/
public Integer getUtcDay() {
- return (Integer) store.get(KEY_UTC_DAY);
+ return getInteger(KEY_UTC_DAY);
}
/**
@@ -282,11 +263,7 @@ public class GPSData extends RPCStruct { * @param utcHours utc hours
*/
public void setUtcHours(Integer utcHours) {
- if (utcHours != null) {
- store.put(KEY_UTC_HOURS, utcHours);
- } else {
- store.remove(KEY_UTC_HOURS);
- }
+ setValue(KEY_UTC_HOURS, utcHours);
}
/**
@@ -294,7 +271,7 @@ public class GPSData extends RPCStruct { * @return utc hours
*/
public Integer getUtcHours() {
- return (Integer) store.get(KEY_UTC_HOURS);
+ return getInteger(KEY_UTC_HOURS);
}
/**
@@ -302,11 +279,7 @@ public class GPSData extends RPCStruct { * @param utcMinutes utc minutes
*/
public void setUtcMinutes(Integer utcMinutes) {
- if (utcMinutes != null) {
- store.put(KEY_UTC_MINUTES, utcMinutes);
- } else {
- store.remove(KEY_UTC_MINUTES);
- }
+ setValue(KEY_UTC_MINUTES, utcMinutes);
}
/**
@@ -314,7 +287,7 @@ public class GPSData extends RPCStruct { * @return utc minutes
*/
public Integer getUtcMinutes() {
- return (Integer) store.get(KEY_UTC_MINUTES);
+ return getInteger(KEY_UTC_MINUTES);
}
/**
@@ -322,11 +295,7 @@ public class GPSData extends RPCStruct { * @param utcSeconds utc seconds
*/
public void setUtcSeconds(Integer utcSeconds) {
- if (utcSeconds != null) {
- store.put(KEY_UTC_SECONDS, utcSeconds);
- } else {
- store.remove(KEY_UTC_SECONDS);
- }
+ setValue(KEY_UTC_SECONDS, utcSeconds);
}
/**
@@ -334,23 +303,13 @@ public class GPSData extends RPCStruct { * @return utc seconds
*/
public Integer getUtcSeconds() {
- return (Integer) store.get(KEY_UTC_SECONDS);
+ return getInteger(KEY_UTC_SECONDS);
}
public void setCompassDirection(CompassDirection compassDirection) {
- if (compassDirection != null) {
- store.put(KEY_COMPASS_DIRECTION, compassDirection);
- } else {
- store.remove(KEY_COMPASS_DIRECTION);
- }
+ setValue(KEY_COMPASS_DIRECTION, compassDirection);
}
public CompassDirection getCompassDirection() {
- Object obj = store.get(KEY_COMPASS_DIRECTION);
- if (obj instanceof CompassDirection) {
- return (CompassDirection) obj;
- } else if (obj instanceof String) {
- return CompassDirection.valueForString((String) obj);
- }
- return null;
+ return (CompassDirection) getObject(CompassDirection.class, KEY_COMPASS_DIRECTION);
}
/**
@@ -358,18 +317,14 @@ public class GPSData extends RPCStruct { * @param pdop the positional dilution of precision
*/
public void setPdop(Double pdop) {
- if (pdop != null) {
- store.put(KEY_PDOP, pdop);
- } else {
- store.remove(KEY_PDOP);
- }
+ setValue(KEY_PDOP, pdop);
}
/**
* get the positional dilution of precision
*/
public Double getPdop() {
- Object object = store.get(KEY_PDOP);
+ Object object = getValue(KEY_PDOP);
return SdlDataTypeConverter.objectToDouble(object);
}
@@ -378,11 +333,7 @@ public class GPSData extends RPCStruct { * @param hdop the horizontal dilution of precision
*/
public void setHdop(Double hdop) {
- if (hdop != null) {
- store.put(KEY_HDOP, hdop);
- } else {
- store.remove(KEY_HDOP);
- }
+ setValue(KEY_HDOP, hdop);
}
/**
@@ -390,7 +341,7 @@ public class GPSData extends RPCStruct { * @return the horizontal dilution of precision
*/
public Double getHdop() {
- Object object = store.get(KEY_HDOP);
+ Object object = getValue(KEY_HDOP);
return SdlDataTypeConverter.objectToDouble(object);
}
@@ -399,11 +350,7 @@ public class GPSData extends RPCStruct { * @param vdop the vertical dilution of precision
*/
public void setVdop(Double vdop) {
- if (vdop != null) {
- store.put(KEY_VDOP, vdop);
- } else {
- store.remove(KEY_VDOP);
- }
+ setValue(KEY_VDOP, vdop);
}
/**
@@ -411,7 +358,7 @@ public class GPSData extends RPCStruct { * @return the vertical dilution of precision
*/
public Double getVdop() {
- Object object = store.get(KEY_VDOP);
+ Object object = getValue(KEY_VDOP);
return SdlDataTypeConverter.objectToDouble(object);
}
@@ -420,11 +367,7 @@ public class GPSData extends RPCStruct { * @param actual True, if coordinates are based on satellites.False, if based on dead reckoning
*/
public void setActual(Boolean actual) {
- if (actual != null) {
- store.put(KEY_ACTUAL, actual);
- } else {
- store.remove(KEY_ACTUAL);
- }
+ setValue(KEY_ACTUAL, actual);
}
/**
@@ -432,7 +375,7 @@ public class GPSData extends RPCStruct { * @return True, if coordinates are based on satellites.False, if based on dead reckoning
*/
public Boolean getActual() {
- return (Boolean) store.get(KEY_ACTUAL);
+ return getBoolean(KEY_ACTUAL);
}
/**
@@ -440,11 +383,7 @@ public class GPSData extends RPCStruct { * @param satellites the number of satellites in view
*/
public void setSatellites(Integer satellites) {
- if (satellites != null) {
- store.put(KEY_SATELLITES, satellites);
- } else {
- store.remove(KEY_SATELLITES);
- }
+ setValue(KEY_SATELLITES, satellites);
}
/**
@@ -452,23 +391,13 @@ public class GPSData extends RPCStruct { * @return the number of satellites in view
*/
public Integer getSatellites() {
- return (Integer) store.get(KEY_SATELLITES);
+ return getInteger(KEY_SATELLITES);
}
public void setDimension(Dimension dimension) {
- if (dimension != null) {
- store.put(KEY_DIMENSION, dimension);
- } else {
- store.remove(KEY_DIMENSION);
- }
+ setValue(KEY_DIMENSION, dimension);
}
public Dimension getDimension() {
- Object obj = store.get(KEY_DIMENSION);
- if (obj instanceof Dimension) {
- return (Dimension) obj;
- } else if (obj instanceof String) {
- return Dimension.valueForString((String) obj);
- }
- return null;
+ return (Dimension) getObject(Dimension.class, KEY_DIMENSION);
}
/**
@@ -476,11 +405,7 @@ public class GPSData extends RPCStruct { * @param altitude altitude in meters
*/
public void setAltitude(Double altitude) {
- if (altitude != null) {
- store.put(KEY_ALTITUDE, altitude);
- } else {
- store.remove(KEY_ALTITUDE);
- }
+ setValue(KEY_ALTITUDE, altitude);
}
/**
@@ -488,7 +413,7 @@ public class GPSData extends RPCStruct { * @return altitude in meters
*/
public Double getAltitude() {
- Object object = store.get(KEY_ALTITUDE);
+ Object object = getValue(KEY_ALTITUDE);
return SdlDataTypeConverter.objectToDouble(object);
}
@@ -497,18 +422,14 @@ public class GPSData extends RPCStruct { * @param heading the heading.
*/
public void setHeading(Double heading) {
- if (heading != null) {
- store.put(KEY_HEADING, heading);
- } else {
- store.remove(KEY_HEADING);
- }
+ setValue(KEY_HEADING, heading);
}
/**
* get the heading
*/
public Double getHeading() {
- Object object = store.get(KEY_HEADING);
+ Object object = getValue(KEY_HEADING);
return SdlDataTypeConverter.objectToDouble(object);
}
@@ -517,11 +438,7 @@ public class GPSData extends RPCStruct { * @param speed the speed
*/
public void setSpeed(Double speed) {
- if (speed != null) {
- store.put(KEY_SPEED, speed);
- } else {
- store.remove(KEY_SPEED);
- }
+ setValue(KEY_SPEED, speed);
}
/**
@@ -529,7 +446,7 @@ public class GPSData extends RPCStruct { * @return the speed in KPH
*/
public Double getSpeed() {
- Object object = store.get(KEY_SPEED);
+ Object object = getValue(KEY_SPEED);
return SdlDataTypeConverter.objectToDouble(object);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetDTCs.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetDTCs.java index fa3ba1c01..83243823e 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetDTCs.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetDTCs.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+
/**
* This RPC allows to request diagnostic module trouble codes from a certain
* vehicle module.
@@ -86,11 +86,7 @@ public class GetDTCs extends RPCRequest { * <b>Notes:</p> </b>Minvalue:0; Maxvalue:65535
*/
public void setEcuName(Integer ecuName) {
- if (ecuName != null) {
- parameters.put(KEY_ECU_NAME, ecuName);
- } else {
- parameters.remove(KEY_ECU_NAME);
- }
+ setParameters(KEY_ECU_NAME, ecuName);
}
/**
@@ -100,16 +96,12 @@ public class GetDTCs extends RPCRequest { * receive the DTC form
*/
public Integer getEcuName() {
- return (Integer) parameters.get(KEY_ECU_NAME);
+ return getInteger(KEY_ECU_NAME);
}
public void setDtcMask(Integer dtcMask) {
- if (dtcMask != null) {
- parameters.put(KEY_DTC_MASK, dtcMask);
- } else {
- parameters.remove(KEY_DTC_MASK);
- }
+ setParameters(KEY_DTC_MASK, dtcMask);
}
public Integer getDtcMask() {
- return (Integer) parameters.get(KEY_DTC_MASK);
+ return getInteger(KEY_DTC_MASK);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetDTCsResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetDTCsResponse.java index b3c49b251..02d130db8 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetDTCsResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetDTCsResponse.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* Get DTCs Response is sent, when GetDTCs has been called
*
@@ -26,37 +26,18 @@ public class GetDTCsResponse extends RPCResponse{ @SuppressWarnings("unchecked")
public List<String> getDtc(){
- if(parameters.get(KEY_DTC) instanceof List<?>){
- List<?> list = (List<?>) parameters.get(KEY_DTC);
- if(list != null && list.size() > 0){
- Object obj = list.get(0);
- if(obj instanceof String){
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_DTC);
}
public void setDtc(List<String> dtc){
- if(dtc != null){
- parameters.put(KEY_DTC, dtc);
- }
- else{
- parameters.remove(KEY_DTC);
- }
+ setParameters(KEY_DTC, dtc);
}
public Integer getEcuHeader(){
- return (Integer) parameters.get(KEY_ECU_HEADER);
+ return getInteger(KEY_ECU_HEADER);
}
public void setEcuHeader(Integer ecuHeader){
- if(ecuHeader != null){
- parameters.put(KEY_ECU_HEADER, ecuHeader);
- }
- else{
- parameters.remove(KEY_ECU_HEADER);
- }
+ setParameters(KEY_ECU_HEADER, ecuHeader);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetSystemCapability.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetSystemCapability.java new file mode 100644 index 000000000..190403096 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetSystemCapability.java @@ -0,0 +1,48 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCRequest; +import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType; + +import java.util.Hashtable; + +/** + * Used to request the corresponding capability object for a given capability. + */ + +public class GetSystemCapability extends RPCRequest { + public static final String KEY_SYSTEM_CAPABILITY_TYPE = "systemCapabilityType"; + + /** + * Constructs a new GetSystemCapability object + */ + public GetSystemCapability(){ + super(FunctionID.GET_SYSTEM_CAPABILITY.toString()); + } + + /** + * <p>Constructs a new GetSystemCapability object indicated by the Hashtable parameter</p> + * + * @param hash + * The Hashtable to use + */ + public GetSystemCapability(Hashtable<String, Object> hash) { + super(hash); + } + + /** + * Used to get the SystemCapabilityType being requested + * @return the SystemCapabilityType being requested + */ + public SystemCapabilityType getSystemCapabilityType(){ + return (SystemCapabilityType) getObject(SystemCapabilityType.class, KEY_SYSTEM_CAPABILITY_TYPE); + } + + /** + * Used to set the SystemCapabilityType being requested + * @param value SystemCapabilityType being requested + */ + public void setSystemCapabilityType(SystemCapabilityType value){ + setParameters(KEY_SYSTEM_CAPABILITY_TYPE, value); + } +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetSystemCapabilityResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetSystemCapabilityResponse.java new file mode 100644 index 000000000..bccce6331 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetSystemCapabilityResponse.java @@ -0,0 +1,48 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCResponse; + +import java.util.Hashtable; + +/** + * GetSystemCapabilityResponse is sent, when GetSystemCapability has been called + */ + +public class GetSystemCapabilityResponse extends RPCResponse { + public static final String KEY_SYSTEM_CAPABILITY = "systemCapability"; + + /** + * Constructs a new GetSystemCapability object + */ + public GetSystemCapabilityResponse(){ + super(FunctionID.GET_SYSTEM_CAPABILITY.toString()); + } + + /** + * <p>Constructs a new GetSystemCapability object indicated by the Hashtable parameter</p> + * + * + * @param hash + * The Hashtable to use + */ + public GetSystemCapabilityResponse(Hashtable<String, Object> hash) { + super(hash); + } + + /** + * Get the SystemCapability object returned after a GetSystemCapability call + * @return SystemCapability object + */ + public SystemCapability getSystemCapability(){ + return (SystemCapability) getObject(SystemCapability.class, KEY_SYSTEM_CAPABILITY); + } + + /** + * Set a SystemCapability object in the response + * @param value SystemCapability object + */ + public void setSystemCapability(SystemCapability value){ + setParameters(KEY_SYSTEM_CAPABILITY, value); + } +} 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 0c15c02c9..e29f01be0 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 @@ -4,6 +4,15 @@ import java.util.Hashtable; import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+
+import static android.provider.Contacts.SettingsColumns.KEY;
+import static com.smartdevicelink.proxy.constants.Names.choiceSet;
+import static com.smartdevicelink.proxy.constants.Names.externalTemperature;
+import static com.smartdevicelink.proxy.constants.Names.instantFuelConsumption;
+import static com.smartdevicelink.proxy.constants.Names.prndl;
+import static com.smartdevicelink.proxy.constants.Names.vin;
+import static com.smartdevicelink.proxy.rpc.CreateInteractionChoiceSet.KEY_CHOICE_SET;
+
/**
* Non periodic vehicle data read request.
*
@@ -195,7 +204,7 @@ import com.smartdevicelink.proxy.RPCRequest; * <p> USER_DISALLOWED</p>
*
* @see SubscribeVehicleData
- * @see UnSubscribeVehicleData
+ * @see UnsubscribeVehicleData
* @since SmartDeviceLink 2.0
*
*
@@ -247,44 +256,28 @@ public class GetVehicleData extends RPCRequest { super(hash);
}
public void setGps(Boolean gps) {
- if (gps != null) {
- parameters.put(KEY_GPS, gps);
- } else {
- parameters.remove(KEY_GPS);
- }
+ setParameters(KEY_GPS, gps);
}
public Boolean getGps() {
- return (Boolean) parameters.get(KEY_GPS);
+ return getBoolean(KEY_GPS);
}
public void setSpeed(Boolean speed) {
- if (speed != null) {
- parameters.put(KEY_SPEED, speed);
- } else {
- parameters.remove(KEY_SPEED);
- }
+ setParameters(KEY_SPEED, speed);
}
public Boolean getSpeed() {
- return (Boolean) parameters.get(KEY_SPEED);
+ return getBoolean(KEY_SPEED);
}
public void setRpm(Boolean rpm) {
- if (rpm != null) {
- parameters.put(KEY_RPM, rpm);
- } else {
- parameters.remove(KEY_RPM);
- }
+ setParameters(KEY_RPM, rpm);
}
public Boolean getRpm() {
- return (Boolean) parameters.get(KEY_RPM);
+ return getBoolean(KEY_RPM);
}
public void setFuelLevel(Boolean fuelLevel) {
- if (fuelLevel != null) {
- parameters.put(KEY_FUEL_LEVEL, fuelLevel);
- } else {
- parameters.remove(KEY_FUEL_LEVEL);
- }
+ setParameters(KEY_FUEL_LEVEL, fuelLevel);
}
public Boolean getFuelLevel() {
- return (Boolean) parameters.get(KEY_FUEL_LEVEL);
+ return getBoolean(KEY_FUEL_LEVEL);
}
@Deprecated
public void setFuelLevel_State(Boolean fuelLevel_State) {
@@ -295,218 +288,134 @@ public class GetVehicleData extends RPCRequest { return getFuelLevelState();
}
public void setFuelLevelState(Boolean fuelLevelState) {
- if (fuelLevelState != null) {
- parameters.put(KEY_FUEL_LEVEL_STATE, fuelLevelState);
- } else {
- parameters.remove(KEY_FUEL_LEVEL_STATE);
- }
+ setParameters(KEY_FUEL_LEVEL_STATE, fuelLevelState);
}
public Boolean getFuelLevelState() {
- return (Boolean) parameters.get(KEY_FUEL_LEVEL_STATE);
+ return getBoolean(KEY_FUEL_LEVEL_STATE);
}
public void setInstantFuelConsumption(Boolean instantFuelConsumption) {
- if (instantFuelConsumption != null) {
- parameters.put(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
- } else {
- parameters.remove(KEY_INSTANT_FUEL_CONSUMPTION);
- }
+ setParameters(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
}
public Boolean getInstantFuelConsumption() {
- return (Boolean) parameters.get(KEY_INSTANT_FUEL_CONSUMPTION);
+ return getBoolean(KEY_INSTANT_FUEL_CONSUMPTION);
}
public void setExternalTemperature(Boolean externalTemperature) {
- if (externalTemperature != null) {
- parameters.put(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
- } else {
- parameters.remove(KEY_EXTERNAL_TEMPERATURE);
- }
+ setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
}
public Boolean getExternalTemperature() {
- return (Boolean) parameters.get(KEY_EXTERNAL_TEMPERATURE);
+ return getBoolean(KEY_EXTERNAL_TEMPERATURE);
}
public void setVin(Boolean vin) {
- if (vin != null) {
- parameters.put(KEY_VIN, vin);
- } else {
- parameters.remove(KEY_VIN);
- }
+ setParameters(KEY_VIN, vin);
}
public Boolean getVin() {
- return (Boolean) parameters.get(KEY_VIN);
+ return getBoolean(KEY_VIN);
}
public void setPrndl(Boolean prndl) {
- if (prndl != null) {
- parameters.put(KEY_PRNDL, prndl);
- } else {
- parameters.remove(KEY_PRNDL);
- }
+ setParameters(KEY_PRNDL, prndl);
}
public Boolean getPrndl() {
- return (Boolean) parameters.get(KEY_PRNDL);
+ return getBoolean(KEY_PRNDL);
}
public void setTirePressure(Boolean tirePressure) {
- if (tirePressure != null) {
- parameters.put(KEY_TIRE_PRESSURE, tirePressure);
- } else {
- parameters.remove(KEY_TIRE_PRESSURE);
- }
+ setParameters(KEY_TIRE_PRESSURE, tirePressure);
}
public Boolean getTirePressure() {
- return (Boolean) parameters.get(KEY_TIRE_PRESSURE);
+ return getBoolean(KEY_TIRE_PRESSURE);
}
public void setOdometer(Boolean odometer) {
- if (odometer != null) {
- parameters.put(KEY_ODOMETER, odometer);
- } else {
- parameters.remove(KEY_ODOMETER);
- }
+ setParameters(KEY_ODOMETER, odometer);
}
public Boolean getOdometer() {
- return (Boolean) parameters.get(KEY_ODOMETER);
+ return getBoolean(KEY_ODOMETER);
}
public void setBeltStatus(Boolean beltStatus) {
- if (beltStatus != null) {
- parameters.put(KEY_BELT_STATUS, beltStatus);
- } else {
- parameters.remove(KEY_BELT_STATUS);
- }
+ setParameters(KEY_BELT_STATUS, beltStatus);
}
public Boolean getBeltStatus() {
- return (Boolean) parameters.get(KEY_BELT_STATUS);
+ return getBoolean(KEY_BELT_STATUS);
}
public void setBodyInformation(Boolean bodyInformation) {
- if (bodyInformation != null) {
- parameters.put(KEY_BODY_INFORMATION, bodyInformation);
- } else {
- parameters.remove(KEY_BODY_INFORMATION);
- }
+ setParameters(KEY_BODY_INFORMATION, bodyInformation);
}
public Boolean getBodyInformation() {
- return (Boolean) parameters.get(KEY_BODY_INFORMATION);
+ return getBoolean(KEY_BODY_INFORMATION);
}
public void setDeviceStatus(Boolean deviceStatus) {
- if (deviceStatus != null) {
- parameters.put(KEY_DEVICE_STATUS, deviceStatus);
- } else {
- parameters.remove(KEY_DEVICE_STATUS);
- }
+ setParameters(KEY_DEVICE_STATUS, deviceStatus);
}
public Boolean getDeviceStatus() {
- return (Boolean) parameters.get(KEY_DEVICE_STATUS);
+ return getBoolean(KEY_DEVICE_STATUS);
}
public void setDriverBraking(Boolean driverBraking) {
- if (driverBraking != null) {
- parameters.put(KEY_DRIVER_BRAKING, driverBraking);
- } else {
- parameters.remove(KEY_DRIVER_BRAKING);
- }
+ setParameters(KEY_DRIVER_BRAKING, driverBraking);
}
public Boolean getDriverBraking() {
- return (Boolean) parameters.get(KEY_DRIVER_BRAKING);
+ return getBoolean(KEY_DRIVER_BRAKING);
}
public void setWiperStatus(Boolean wiperStatus) {
- if (wiperStatus != null) {
- parameters.put(KEY_WIPER_STATUS, wiperStatus);
- } else {
- parameters.remove(KEY_WIPER_STATUS);
- }
+ setParameters(KEY_WIPER_STATUS, wiperStatus);
}
public Boolean getWiperStatus() {
- return (Boolean) parameters.get(KEY_WIPER_STATUS);
+ return getBoolean(KEY_WIPER_STATUS);
}
public void setHeadLampStatus(Boolean headLampStatus) {
- if (headLampStatus != null) {
- parameters.put(KEY_HEAD_LAMP_STATUS, headLampStatus);
- } else {
- parameters.remove(KEY_HEAD_LAMP_STATUS);
- }
+ setParameters(KEY_HEAD_LAMP_STATUS, headLampStatus);
}
public Boolean getHeadLampStatus() {
- return (Boolean) parameters.get(KEY_HEAD_LAMP_STATUS);
+ return getBoolean(KEY_HEAD_LAMP_STATUS);
}
public void setEngineTorque(Boolean engineTorque) {
- if (engineTorque != null) {
- parameters.put(KEY_ENGINE_TORQUE, engineTorque);
- } else {
- parameters.remove(KEY_ENGINE_TORQUE);
- }
+ setParameters(KEY_ENGINE_TORQUE, engineTorque);
}
public Boolean getEngineTorque() {
- return (Boolean) parameters.get(KEY_ENGINE_TORQUE);
+ return getBoolean(KEY_ENGINE_TORQUE);
}
public void setAccPedalPosition(Boolean accPedalPosition) {
- if (accPedalPosition != null) {
- parameters.put(KEY_ACC_PEDAL_POSITION, accPedalPosition);
- } else {
- parameters.remove(KEY_ACC_PEDAL_POSITION);
- }
+ setParameters(KEY_ACC_PEDAL_POSITION, accPedalPosition);
}
public Boolean getAccPedalPosition() {
- return (Boolean) parameters.get(KEY_ACC_PEDAL_POSITION);
+ return getBoolean(KEY_ACC_PEDAL_POSITION);
}
public void setSteeringWheelAngle(Boolean steeringWheelAngle) {
- if (steeringWheelAngle != null) {
- parameters.put(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
- } else {
- parameters.remove(KEY_STEERING_WHEEL_ANGLE);
- }
+ setParameters(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
}
public Boolean getSteeringWheelAngle() {
- return (Boolean) parameters.get(KEY_STEERING_WHEEL_ANGLE);
+ return getBoolean(KEY_STEERING_WHEEL_ANGLE);
}
public void setECallInfo(Boolean eCallInfo) {
- if (eCallInfo != null) {
- parameters.put(KEY_E_CALL_INFO, eCallInfo);
- } else {
- parameters.remove(KEY_E_CALL_INFO);
- }
+ setParameters(KEY_E_CALL_INFO, eCallInfo);
}
public Boolean getECallInfo() {
- return (Boolean) parameters.get(KEY_E_CALL_INFO);
+ return getBoolean(KEY_E_CALL_INFO);
}
public void setAirbagStatus(Boolean airbagStatus) {
- if (airbagStatus != null) {
- parameters.put(KEY_AIRBAG_STATUS, airbagStatus);
- } else {
- parameters.remove(KEY_AIRBAG_STATUS);
- }
+ setParameters(KEY_AIRBAG_STATUS, airbagStatus);
}
public Boolean getAirbagStatus() {
- return (Boolean) parameters.get(KEY_AIRBAG_STATUS);
+ return getBoolean(KEY_AIRBAG_STATUS);
}
public void setEmergencyEvent(Boolean emergencyEvent) {
- if (emergencyEvent != null) {
- parameters.put(KEY_EMERGENCY_EVENT, emergencyEvent);
- } else {
- parameters.remove(KEY_EMERGENCY_EVENT);
- }
+ setParameters(KEY_EMERGENCY_EVENT, emergencyEvent);
}
public Boolean getEmergencyEvent() {
- return (Boolean) parameters.get(KEY_EMERGENCY_EVENT);
+ return getBoolean(KEY_EMERGENCY_EVENT);
}
public void setClusterModeStatus(Boolean clusterModeStatus) {
- if (clusterModeStatus != null) {
- parameters.put(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
- } else {
- parameters.remove(KEY_CLUSTER_MODE_STATUS);
- }
+ setParameters(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
}
public Boolean getClusterModeStatus() {
- return (Boolean) parameters.get(KEY_CLUSTER_MODE_STATUS);
+ return getBoolean(KEY_CLUSTER_MODE_STATUS);
}
public void setMyKey(Boolean myKey) {
- if (myKey != null) {
- parameters.put(KEY_MY_KEY, myKey);
- } else {
- parameters.remove(KEY_MY_KEY);
- }
+ setParameters(KEY_MY_KEY, myKey);
}
public Boolean getMyKey() {
- return (Boolean) parameters.get(KEY_MY_KEY);
+ return getBoolean(KEY_MY_KEY);
}
}
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 51eb7a4b7..39e33993b 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 @@ -1,17 +1,16 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
import com.smartdevicelink.proxy.rpc.enums.ComponentVolumeStatus;
import com.smartdevicelink.proxy.rpc.enums.PRNDL;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
import com.smartdevicelink.proxy.rpc.enums.WiperStatus;
-import com.smartdevicelink.util.DebugTool;
import com.smartdevicelink.util.SdlDataTypeConverter;
+import java.util.Hashtable;
+
/**
* Get Vehicle Data Response is sent, when GetVehicleData has been called.
*
@@ -55,58 +54,30 @@ public class GetVehicleDataResponse extends RPCResponse { super(hash);
}
public void setGps(GPSData gps) {
- if (gps != null) {
- parameters.put(KEY_GPS, gps);
- } else {
- parameters.remove(KEY_GPS);
- }
+ setParameters(KEY_GPS, gps);
}
@SuppressWarnings("unchecked")
public GPSData getGps() {
- Object obj = parameters.get(KEY_GPS);
- if (obj instanceof GPSData) {
- return (GPSData) obj;
- } else if (obj instanceof Hashtable) {
- GPSData theCode = null;
- try {
- theCode = new GPSData((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_GPS, e);
- }
- return theCode;
- }
- return null;
+ return (GPSData) getObject(GPSData.class, KEY_GPS);
}
public void setSpeed(Double speed) {
- if (speed != null) {
- parameters.put(KEY_SPEED, speed);
- } else {
- parameters.remove(KEY_SPEED);
- }
+ setParameters(KEY_SPEED, speed);
}
public Double getSpeed() {
- Object object = parameters.get(KEY_SPEED);
+ Object object = getParameters(KEY_SPEED);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setRpm(Integer rpm) {
- if (rpm != null) {
- parameters.put(KEY_RPM, rpm);
- } else {
- parameters.remove(KEY_RPM);
- }
+ setParameters(KEY_RPM, rpm);
}
public Integer getRpm() {
- return (Integer) parameters.get(KEY_RPM);
+ return getInteger(KEY_RPM);
}
public void setFuelLevel(Double fuelLevel) {
- if (fuelLevel != null) {
- parameters.put(KEY_FUEL_LEVEL, fuelLevel);
- } else {
- parameters.remove(KEY_FUEL_LEVEL);
- }
+ setParameters(KEY_FUEL_LEVEL, fuelLevel);
}
public Double getFuelLevel() {
- Object object = parameters.get(KEY_FUEL_LEVEL);
+ Object object = getParameters(KEY_FUEL_LEVEL);
return SdlDataTypeConverter.objectToDouble(object);
}
@Deprecated
@@ -118,364 +89,150 @@ public class GetVehicleDataResponse extends RPCResponse { return getFuelLevelState();
}
public void setFuelLevelState(ComponentVolumeStatus fuelLevelState) {
- if (fuelLevelState != null) {
- parameters.put(KEY_FUEL_LEVEL_STATE, fuelLevelState);
- } else {
- parameters.remove(KEY_FUEL_LEVEL_STATE);
- }
+ setParameters(KEY_FUEL_LEVEL_STATE, fuelLevelState);
}
public ComponentVolumeStatus getFuelLevelState() {
- Object obj = parameters.get(KEY_FUEL_LEVEL_STATE);
- if (obj instanceof ComponentVolumeStatus) {
- return (ComponentVolumeStatus) obj;
- } else if (obj instanceof String) {
- ComponentVolumeStatus theCode = null;
- try {
- theCode = ComponentVolumeStatus.valueForString((String) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_FUEL_LEVEL_STATE, e);
- }
- return theCode;
- }
- return null;
+ return (ComponentVolumeStatus) getObject(ComponentVolumeStatus.class, KEY_FUEL_LEVEL_STATE);
}
public void setInstantFuelConsumption(Double instantFuelConsumption) {
- if (instantFuelConsumption != null) {
- parameters.put(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
- } else {
- parameters.remove(KEY_INSTANT_FUEL_CONSUMPTION);
- }
+ setParameters(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
}
public Double getInstantFuelConsumption() {
- Object object = parameters.get(KEY_INSTANT_FUEL_CONSUMPTION);
+ Object object = getParameters(KEY_INSTANT_FUEL_CONSUMPTION);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setExternalTemperature(Double externalTemperature) {
- if (externalTemperature != null) {
- parameters.put(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
- } else {
- parameters.remove(KEY_EXTERNAL_TEMPERATURE);
- }
+ setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
}
public Double getExternalTemperature() {
- Object object = parameters.get(KEY_EXTERNAL_TEMPERATURE);
+ Object object = getParameters(KEY_EXTERNAL_TEMPERATURE);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setVin(String vin) {
- if (vin != null) {
- parameters.put(KEY_VIN, vin);
- } else {
- parameters.remove(KEY_VIN);
- }
+ setParameters(KEY_VIN, vin);
}
public String getVin() {
- return (String) parameters.get(KEY_VIN);
+ return getString(KEY_VIN);
}
public void setPrndl(PRNDL prndl) {
- if (prndl != null) {
- parameters.put(KEY_PRNDL, prndl);
- } else {
- parameters.remove(KEY_PRNDL);
- }
+ setParameters(KEY_PRNDL, prndl);
}
public PRNDL getPrndl() {
- Object obj = parameters.get(KEY_PRNDL);
- if (obj instanceof PRNDL) {
- return (PRNDL) obj;
- } else if (obj instanceof String) {
- return PRNDL.valueForString((String) obj);
- }
- return null;
+ return (PRNDL) getObject(PRNDL.class, KEY_PRNDL);
}
public void setTirePressure(TireStatus tirePressure) {
- if (tirePressure != null) {
- parameters.put(KEY_TIRE_PRESSURE, tirePressure);
- } else {
- parameters.remove(KEY_TIRE_PRESSURE);
- }
+ setParameters(KEY_TIRE_PRESSURE, tirePressure);
}
@SuppressWarnings("unchecked")
public TireStatus getTirePressure() {
- Object obj = parameters.get(KEY_TIRE_PRESSURE);
- if (obj instanceof TireStatus) {
- return (TireStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new TireStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_TIRE_PRESSURE, e);
- }
- }
- return null;
+ return (TireStatus) getObject(TireStatus.class, KEY_TIRE_PRESSURE);
}
public void setOdometer(Integer odometer) {
- if (odometer != null) {
- parameters.put(KEY_ODOMETER, odometer);
- } else {
- parameters.remove(KEY_ODOMETER);
- }
+ setParameters(KEY_ODOMETER, odometer);
}
public Integer getOdometer() {
- return (Integer) parameters.get(KEY_ODOMETER);
+ return getInteger(KEY_ODOMETER);
}
public void setBeltStatus(BeltStatus beltStatus) {
- if (beltStatus != null) {
- parameters.put(KEY_BELT_STATUS, beltStatus);
- } else {
- parameters.remove(KEY_BELT_STATUS);
- }
+ setParameters(KEY_BELT_STATUS, beltStatus);
}
@SuppressWarnings("unchecked")
public BeltStatus getBeltStatus() {
- Object obj = parameters.get(KEY_BELT_STATUS);
- if (obj instanceof BeltStatus) {
- return (BeltStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new BeltStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_BELT_STATUS, e);
- }
- }
- return null;
+ return (BeltStatus) getObject(BeltStatus.class, KEY_BELT_STATUS);
}
public void setBodyInformation(BodyInformation bodyInformation) {
- if (bodyInformation != null) {
- parameters.put(KEY_BODY_INFORMATION, bodyInformation);
- } else {
- parameters.remove(KEY_BODY_INFORMATION);
- }
+ setParameters(KEY_BODY_INFORMATION, bodyInformation);
}
@SuppressWarnings("unchecked")
public BodyInformation getBodyInformation() {
- Object obj = parameters.get(KEY_BODY_INFORMATION);
- if (obj instanceof BodyInformation) {
- return (BodyInformation) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new BodyInformation((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_BODY_INFORMATION, e);
- }
- }
- return null;
+ return (BodyInformation) getObject(BodyInformation.class, KEY_BODY_INFORMATION);
}
public void setDeviceStatus(DeviceStatus deviceStatus) {
- if (deviceStatus != null) {
- parameters.put(KEY_DEVICE_STATUS, deviceStatus);
- } else {
- parameters.remove(KEY_DEVICE_STATUS);
- }
+ setParameters(KEY_DEVICE_STATUS, deviceStatus);
}
@SuppressWarnings("unchecked")
public DeviceStatus getDeviceStatus() {
- Object obj = parameters.get(KEY_DEVICE_STATUS);
- if (obj instanceof DeviceStatus) {
- return (DeviceStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new DeviceStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_DEVICE_STATUS, e);
- }
- }
- return null;
+ return (DeviceStatus) getObject(DeviceStatus.class, KEY_DEVICE_STATUS);
}
public void setDriverBraking(VehicleDataEventStatus driverBraking) {
- if (driverBraking != null) {
- parameters.put(KEY_DRIVER_BRAKING, driverBraking);
- } else {
- parameters.remove(KEY_DRIVER_BRAKING);
- }
+ setParameters(KEY_DRIVER_BRAKING, driverBraking);
}
public VehicleDataEventStatus getDriverBraking() {
- Object obj = parameters.get(KEY_DRIVER_BRAKING);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_DRIVER_BRAKING);
}
public void setWiperStatus(WiperStatus wiperStatus) {
- if (wiperStatus != null) {
- parameters.put(KEY_WIPER_STATUS, wiperStatus);
- } else {
- parameters.remove(KEY_WIPER_STATUS);
- }
+ setParameters(KEY_WIPER_STATUS, wiperStatus);
}
public WiperStatus getWiperStatus() {
- Object obj = parameters.get(KEY_WIPER_STATUS);
- if (obj instanceof WiperStatus) {
- return (WiperStatus) obj;
- } else if (obj instanceof String) {
- return WiperStatus.valueForString((String) obj);
- }
- return null;
+ return (WiperStatus) getObject(WiperStatus.class, KEY_WIPER_STATUS);
}
public void setHeadLampStatus(HeadLampStatus headLampStatus) {
- if (headLampStatus != null) {
- parameters.put(KEY_HEAD_LAMP_STATUS, headLampStatus);
- } else {
- parameters.remove(KEY_HEAD_LAMP_STATUS);
- }
+ setParameters(KEY_HEAD_LAMP_STATUS, headLampStatus);
}
@SuppressWarnings("unchecked")
public HeadLampStatus getHeadLampStatus() {
- Object obj = parameters.get(KEY_HEAD_LAMP_STATUS);
- if (obj instanceof HeadLampStatus) {
- return (HeadLampStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new HeadLampStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_HEAD_LAMP_STATUS, e);
- }
- }
- return null;
+ return (HeadLampStatus) getObject(HeadLampStatus.class, KEY_HEAD_LAMP_STATUS);
}
public void setEngineTorque(Double engineTorque) {
- if (engineTorque != null) {
- parameters.put(KEY_ENGINE_TORQUE, engineTorque);
- } else {
- parameters.remove(KEY_ENGINE_TORQUE);
- }
+ setParameters(KEY_ENGINE_TORQUE, engineTorque);
}
public Double getEngineTorque() {
- Object object = parameters.get(KEY_ENGINE_TORQUE);
+ Object object = getParameters(KEY_ENGINE_TORQUE);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setAccPedalPosition(Double accPedalPosition) {
- if (accPedalPosition != null) {
- parameters.put(KEY_ACC_PEDAL_POSITION, accPedalPosition);
- } else {
- parameters.remove(KEY_ACC_PEDAL_POSITION);
- }
+ setParameters(KEY_ACC_PEDAL_POSITION, accPedalPosition);
}
public Double getAccPedalPosition() {
- Object object = parameters.get(KEY_ACC_PEDAL_POSITION);
+ Object object = getParameters(KEY_ACC_PEDAL_POSITION);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setSteeringWheelAngle(Double steeringWheelAngle) {
- if (steeringWheelAngle != null) {
- parameters.put(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
- } else {
- parameters.remove(KEY_STEERING_WHEEL_ANGLE);
- }
+ setParameters(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
}
public Double getSteeringWheelAngle() {
- Object object = parameters.get(KEY_STEERING_WHEEL_ANGLE);
+ Object object = getParameters(KEY_STEERING_WHEEL_ANGLE);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setECallInfo(ECallInfo eCallInfo) {
- if (eCallInfo != null) {
- parameters.put(KEY_E_CALL_INFO, eCallInfo);
- } else {
- parameters.remove(KEY_E_CALL_INFO);
- }
+ setParameters(KEY_E_CALL_INFO, eCallInfo);
}
@SuppressWarnings("unchecked")
public ECallInfo getECallInfo() {
- Object obj = parameters.get(KEY_E_CALL_INFO);
- if (obj instanceof ECallInfo) {
- return (ECallInfo) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new ECallInfo((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_E_CALL_INFO, e);
- }
- }
- return null;
+ return (ECallInfo) getObject(ECallInfo.class, KEY_E_CALL_INFO);
}
public void setAirbagStatus(AirbagStatus airbagStatus) {
- if (airbagStatus != null) {
- parameters.put(KEY_AIRBAG_STATUS, airbagStatus);
- } else {
- parameters.remove(KEY_AIRBAG_STATUS);
- }
+ setParameters(KEY_AIRBAG_STATUS, airbagStatus);
}
@SuppressWarnings("unchecked")
public AirbagStatus getAirbagStatus() {
- Object obj = parameters.get(KEY_AIRBAG_STATUS);
- if (obj instanceof AirbagStatus) {
- return (AirbagStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new AirbagStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_AIRBAG_STATUS, e);
- }
- }
- return null;
+ return (AirbagStatus) getObject(AirbagStatus.class, KEY_AIRBAG_STATUS);
}
public void setEmergencyEvent(EmergencyEvent emergencyEvent) {
- if (emergencyEvent != null) {
- parameters.put(KEY_EMERGENCY_EVENT, emergencyEvent);
- } else {
- parameters.remove(KEY_EMERGENCY_EVENT);
- }
+ setParameters(KEY_EMERGENCY_EVENT, emergencyEvent);
}
@SuppressWarnings("unchecked")
public EmergencyEvent getEmergencyEvent() {
- Object obj = parameters.get(KEY_EMERGENCY_EVENT);
- if (obj instanceof EmergencyEvent) {
- return (EmergencyEvent) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new EmergencyEvent((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_EMERGENCY_EVENT, e);
- }
- }
- return null;
+ return (EmergencyEvent) getObject(EmergencyEvent.class, KEY_EMERGENCY_EVENT);
}
public void setClusterModeStatus(ClusterModeStatus clusterModeStatus) {
- if (clusterModeStatus != null) {
- parameters.put(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
- } else {
- parameters.remove(KEY_CLUSTER_MODE_STATUS);
- }
+ setParameters(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
}
@SuppressWarnings("unchecked")
public ClusterModeStatus getClusterModeStatus() {
- Object obj = parameters.get(KEY_CLUSTER_MODE_STATUS);
- if (obj instanceof ClusterModeStatus) {
- return (ClusterModeStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new ClusterModeStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_CLUSTER_MODE_STATUS, e);
- }
- }
- return null;
+ return (ClusterModeStatus) getObject(ClusterModeStatus.class, KEY_CLUSTER_MODE_STATUS);
}
public void setMyKey(MyKey myKey) {
- if (myKey != null) {
- parameters.put(KEY_MY_KEY, myKey);
- } else {
- parameters.remove(KEY_MY_KEY);
- }
+ setParameters(KEY_MY_KEY, myKey);
}
@SuppressWarnings("unchecked")
public MyKey getMyKey() {
- Object obj = parameters.get(KEY_MY_KEY);
- if (obj instanceof MyKey) {
- return (MyKey) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new MyKey((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_MY_KEY, e);
- }
- }
- return null;
+ return (MyKey) getObject(MyKey.class, KEY_MY_KEY);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetWayPoints.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetWayPoints.java index f9832da0e..443e66b3d 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetWayPoints.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetWayPoints.java @@ -18,20 +18,10 @@ public class GetWayPoints extends RPCRequest { } public WayPointType getWayPointType() { - Object obj = parameters.get(KEY_WAY_POINT_TYPE); - if (obj instanceof WayPointType) { - return (WayPointType) obj; - } else if (obj instanceof String) { - return WayPointType.valueForString((String) obj); - } - return null; + return (WayPointType) getObject(WayPointType.class, KEY_WAY_POINT_TYPE); } public void setWayPointType(WayPointType wayPointType) { - if (wayPointType != null) { - parameters.put(KEY_WAY_POINT_TYPE, wayPointType); - } else { - parameters.remove(KEY_WAY_POINT_TYPE); - } + setParameters(KEY_WAY_POINT_TYPE, wayPointType); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetWayPointsResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetWayPointsResponse.java index 24048c826..13eb85642 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetWayPointsResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/GetWayPointsResponse.java @@ -3,7 +3,6 @@ package com.smartdevicelink.proxy.rpc; import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCResponse; -import java.util.ArrayList; import java.util.Hashtable; import java.util.List; @@ -18,29 +17,10 @@ public class GetWayPointsResponse extends RPCResponse { } public void setWayPoints(List<LocationDetails> wayPoints) { - if (wayPoints != null) { - parameters.put(KEY_WAY_POINTS, wayPoints); - } else { - parameters.remove(KEY_WAY_POINTS); - } + setParameters(KEY_WAY_POINTS, wayPoints); } @SuppressWarnings("unchecked") public List<LocationDetails> getWayPoints() { - if (parameters.get(KEY_WAY_POINTS) instanceof List<?>) { - List<?> list = (List<?>)parameters.get(KEY_WAY_POINTS); - if (list != null && list.size() > 0) { - Object obj = list.get(0); - if (obj instanceof LocationDetails) { - return (List<LocationDetails>) list; - } else if (obj instanceof Hashtable) { - List<LocationDetails> newList = new ArrayList<LocationDetails>(); - for (Object hashObj : list) { - newList.add(new LocationDetails((Hashtable<String, Object>)hashObj)); - } - return newList; - } - } - } - return null; + return (List<LocationDetails>) getObject(LocationDetails.class, KEY_WAY_POINTS); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HMICapabilities.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HMICapabilities.java index efc94f57c..77c534c9f 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HMICapabilities.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HMICapabilities.java @@ -1,21 +1,22 @@ package com.smartdevicelink.proxy.rpc; -import java.util.Hashtable; - import com.smartdevicelink.proxy.RPCStruct; +import java.util.Hashtable; + public class HMICapabilities extends RPCStruct{ public static final String KEY_NAVIGATION = "navigation"; public static final String KEY_PHONE_CALL = "phoneCall"; - - public HMICapabilities() { } + public static final String KEY_VIDEO_STREAMING = "videoStreaming"; + + public HMICapabilities() { } public HMICapabilities(Hashtable<String, Object> hash) { super(hash); } public boolean isNavigationAvailable(){ - Object available = store.get(KEY_NAVIGATION); + Object available = getValue(KEY_NAVIGATION); if(available == null){ return false; } @@ -23,15 +24,11 @@ public class HMICapabilities extends RPCStruct{ } public void setNavigationAvilable(Boolean available){ - if (available) { - store.put(KEY_NAVIGATION, available); - } else { - store.remove(KEY_NAVIGATION); - } + setValue(KEY_NAVIGATION, available); } public boolean isPhoneCallAvailable(){ - Object available = store.get(KEY_PHONE_CALL); + Object available = getValue(KEY_PHONE_CALL); if(available == null){ return false; } @@ -39,11 +36,20 @@ public class HMICapabilities extends RPCStruct{ } public void setPhoneCallAvilable(Boolean available){ - if (available) { - store.put(KEY_PHONE_CALL, available); - } else { - store.remove(KEY_PHONE_CALL); - } + setValue(KEY_PHONE_CALL, available); } + public boolean isVideoStreamingAvailable(){ + Object available = getValue(KEY_VIDEO_STREAMING); + if(available == null){ + return false; + } + return (Boolean)available; + } + + public void setVideoStreamingAvailable(Boolean available){ + setValue(KEY_VIDEO_STREAMING, available); + } + + } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HMIPermissions.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HMIPermissions.java index d8223279a..bf2184d0c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HMIPermissions.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HMIPermissions.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
+import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.HMILevel;
+
import java.util.Hashtable;
import java.util.List;
-import com.smartdevicelink.proxy.RPCStruct;
-import com.smartdevicelink.proxy.rpc.enums.HMILevel;
/**
* Defining sets of HMI levels, which are permitted or prohibited for a given RPC.
* <p><b>Parameter List</b></p>
@@ -63,26 +63,7 @@ public class HMIPermissions extends RPCStruct { */
@SuppressWarnings("unchecked")
public List<HMILevel> getAllowed() {
- if (store.get(KEY_ALLOWED) instanceof List<?>) {
- List<?> list = (List<?>)store.get(KEY_ALLOWED);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof HMILevel) {
- return (List<HMILevel>) list;
- } else if (obj instanceof String) {
- List<HMILevel> newList = new ArrayList<HMILevel>();
- for (Object hashObj : list) {
- String strFormat = (String)hashObj;
- HMILevel toAdd = HMILevel.valueForString(strFormat);
- if (toAdd != null) {
- newList.add(toAdd);
- }
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<HMILevel>) getObject(HMILevel.class, KEY_ALLOWED);
}
/**
@@ -90,11 +71,7 @@ public class HMIPermissions extends RPCStruct { * @param allowed HMI level that is permitted for this given RPC
*/
public void setAllowed(List<HMILevel> allowed) {
- if (allowed != null) {
- store.put(KEY_ALLOWED, allowed);
- } else {
- store.remove(KEY_ALLOWED);
- }
+ setValue(KEY_ALLOWED, allowed);
}
/**
@@ -103,26 +80,7 @@ public class HMIPermissions extends RPCStruct { */
@SuppressWarnings("unchecked")
public List<HMILevel> getUserDisallowed() {
- if (store.get(KEY_USER_DISALLOWED) instanceof List<?>) {
- List<?> list = (List<?>)store.get(KEY_USER_DISALLOWED);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof HMILevel) {
- return (List<HMILevel>) list;
- } else if (obj instanceof String) {
- List<HMILevel> newList = new ArrayList<HMILevel>();
- for (Object hashObj : list) {
- String strFormat = (String)hashObj;
- HMILevel toAdd = HMILevel.valueForString(strFormat);
- if (toAdd != null) {
- newList.add(toAdd);
- }
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<HMILevel>) getObject(HMILevel.class, KEY_USER_DISALLOWED);
}
/**
@@ -130,10 +88,6 @@ public class HMIPermissions extends RPCStruct { * @param userDisallowed HMI level that is prohibited for this given RPC
*/
public void setUserDisallowed(List<HMILevel> userDisallowed) {
- if (userDisallowed != null) {
- store.put(KEY_USER_DISALLOWED, userDisallowed);
- } else {
- store.remove(KEY_USER_DISALLOWED);
- }
+ setValue(KEY_USER_DISALLOWED, userDisallowed);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HapticRect.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HapticRect.java new file mode 100644 index 000000000..64a9f8354 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HapticRect.java @@ -0,0 +1,82 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.proxy.RPCStruct; + +import java.util.Hashtable; + +/* + * Copyright (c) 2017 Livio, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Livio Inc. nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Defines a haptic rectangle that contains a reference ID and the spatial data of a rectangle UI component. + * @since SmartDeviceLink 4.5.0 + * + */ + +public class HapticRect extends RPCStruct { + public static final String KEY_ID = "id"; + public static final String KEY_RECT = "rect"; + + public HapticRect() {} + + public HapticRect(Hashtable<String, Object> hash) { + super(hash); + } + + /** + * Set a user control spatial identifier that references the supplied spatial data + */ + public void setId(Integer id) { + setValue(KEY_ID, id); + } + + /** + * @return a user control spatial identifier that references the supplied spatial data + */ + public Integer getId() { + return getInteger(KEY_ID); + } + + /** + * Set the position of the haptic rectangle to be highlighted. The center of this rectangle will be "touched" when a press occurs. + */ + public void setRect(Rectangle rect) { + setValue(KEY_RECT, rect); + } + + /** + * @return the position of the haptic rectangle to be highlighted. The center of this rectangle will be "touched" when a press occurs. + */ + public Rectangle getRect() { + return (Rectangle) getObject(Rectangle.class, KEY_RECT); + } +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HeadLampStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HeadLampStatus.java index 46a982fe2..935b8357e 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HeadLampStatus.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/HeadLampStatus.java @@ -55,39 +55,21 @@ public class HeadLampStatus extends RPCStruct { super(hash);
}
public void setAmbientLightStatus(AmbientLightStatus ambientLightSensorStatus) {
- if (ambientLightSensorStatus != null) {
- store.put(KEY_AMBIENT_LIGHT_SENSOR_STATUS, ambientLightSensorStatus);
- } else {
- store.remove(KEY_AMBIENT_LIGHT_SENSOR_STATUS);
- }
+ setValue(KEY_AMBIENT_LIGHT_SENSOR_STATUS, ambientLightSensorStatus);
}
public AmbientLightStatus getAmbientLightStatus() {
- Object obj = store.get(KEY_AMBIENT_LIGHT_SENSOR_STATUS);
- if (obj instanceof AmbientLightStatus) {
- return (AmbientLightStatus) obj;
- } else if (obj instanceof String) {
- return AmbientLightStatus.valueForString((String) obj);
- }
- return null;
+ return (AmbientLightStatus) getObject(AmbientLightStatus.class, KEY_AMBIENT_LIGHT_SENSOR_STATUS);
}
public void setHighBeamsOn(Boolean highBeamsOn) {
- if (highBeamsOn != null) {
- store.put(KEY_HIGH_BEAMS_ON, highBeamsOn);
- } else {
- store.remove(KEY_HIGH_BEAMS_ON);
- }
+ setValue(KEY_HIGH_BEAMS_ON, highBeamsOn);
}
public Boolean getHighBeamsOn() {
- return (Boolean) store.get(KEY_HIGH_BEAMS_ON);
+ return getBoolean(KEY_HIGH_BEAMS_ON);
}
public void setLowBeamsOn(Boolean lowBeamsOn) {
- if (lowBeamsOn != null) {
- store.put(KEY_LOW_BEAMS_ON, lowBeamsOn);
- } else {
- store.remove(KEY_LOW_BEAMS_ON);
- }
+ setValue(KEY_LOW_BEAMS_ON, lowBeamsOn);
}
public Boolean getLowBeamsOn() {
- return (Boolean) store.get(KEY_LOW_BEAMS_ON);
+ return getBoolean(KEY_LOW_BEAMS_ON);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Headers.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Headers.java index 2be4f1a17..2ae607100 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Headers.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Headers.java @@ -1,8 +1,8 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
+
+import java.util.Hashtable;
/**
*
* @since SmartDeviceLink 3.0
@@ -37,123 +37,83 @@ public class Headers extends RPCStruct { }
public void setContentType(String contenttype) {
- if (contenttype != null) {
- store.put(KEY_CONTENT_TYPE, contenttype);
- } else {
- store.remove(KEY_CONTENT_TYPE);
- }
+ setValue(KEY_CONTENT_TYPE, contenttype);
}
public String getContentType() {
- return (String) store.get(KEY_CONTENT_TYPE);
+ return getString(KEY_CONTENT_TYPE);
}
public void setConnectTimeout(Integer connectiontimeout) {
- if (connectiontimeout != null) {
- store.put(KEY_CONNECT_TIMEOUT, connectiontimeout);
- } else {
- store.remove(KEY_CONNECT_TIMEOUT);
- }
+ setValue(KEY_CONNECT_TIMEOUT, connectiontimeout);
}
public Integer getConnectTimeout() {
- return (Integer) store.get(KEY_CONNECT_TIMEOUT);
+ return getInteger(KEY_CONNECT_TIMEOUT);
}
public void setDoOutput(Boolean dooutput) {
- if (dooutput != null) {
- store.put(KEY_DO_OUTPUT, dooutput);
- } else {
- store.remove(KEY_DO_OUTPUT);
- }
+ setValue(KEY_DO_OUTPUT, dooutput);
}
public Boolean getDoOutput() {
- return (Boolean) store.get(KEY_DO_OUTPUT);
+ return getBoolean(KEY_DO_OUTPUT);
}
- public void setDoInput(Boolean dooutput) {
- if (dooutput != null) {
- store.put(KEY_DO_INPUT, dooutput);
- } else {
- store.remove(KEY_DO_INPUT);
- }
+ public void setDoInput(Boolean doinput) {
+ setValue(KEY_DO_INPUT, doinput);
}
public Boolean getDoInput() {
- return (Boolean) store.get(KEY_DO_INPUT);
+ return getBoolean(KEY_DO_INPUT);
}
public void setUseCaches(Boolean usescaches) {
- if (usescaches != null) {
- store.put(KEY_USE_CACHES, usescaches);
- } else {
- store.remove(KEY_USE_CACHES);
- }
+ setValue(KEY_USE_CACHES, usescaches);
}
public Boolean getUseCaches() {
- return (Boolean) store.get(KEY_USE_CACHES);
+ return getBoolean(KEY_USE_CACHES);
}
public void setRequestMethod(String requestmethod) {
- if (requestmethod != null) {
- store.put(KEY_REQUEST_METHOD, requestmethod);
- } else {
- store.remove(KEY_REQUEST_METHOD);
- }
+ setValue(KEY_REQUEST_METHOD, requestmethod);
}
public String getRequestMethod() {
- return (String) store.get(KEY_REQUEST_METHOD);
+ return getString(KEY_REQUEST_METHOD);
}
public void setReadTimeout(Integer readtimeout) {
- if (readtimeout != null) {
- store.put(KEY_READ_TIMEOUT, readtimeout);
- } else {
- store.remove(KEY_READ_TIMEOUT);
- }
+ setValue(KEY_READ_TIMEOUT, readtimeout);
}
public Integer getReadTimeout() {
- return (Integer) store.get(KEY_READ_TIMEOUT);
+ return getInteger(KEY_READ_TIMEOUT);
}
public void setInstanceFollowRedirects(Boolean instancefollowredirects) {
- if (instancefollowredirects != null) {
- store.put(KEY_INSTANCE_FOLLOW_REDIRECTS, instancefollowredirects);
- } else {
- store.remove(KEY_INSTANCE_FOLLOW_REDIRECTS);
- }
+ setValue(KEY_INSTANCE_FOLLOW_REDIRECTS, instancefollowredirects);
}
public Boolean getInstanceFollowRedirects() {
- return (Boolean) store.get(KEY_INSTANCE_FOLLOW_REDIRECTS);
+ return getBoolean(KEY_INSTANCE_FOLLOW_REDIRECTS);
}
public void setCharset(String charset) {
- if (charset != null) {
- store.put(KEY_CHARSET, charset);
- } else {
- store.remove(KEY_CHARSET);
- }
+ setValue(KEY_CHARSET, charset);
}
public String getCharset() {
- return (String) store.get(KEY_CHARSET);
+ return getString(KEY_CHARSET);
}
public void setContentLength(Integer contentlength) {
- if (contentlength != null) {
- store.put(KEY_CONTENT_LENGTH, contentlength);
- } else {
- store.remove(KEY_CONTENT_LENGTH);
- }
+ setValue(KEY_CONTENT_LENGTH, contentlength);
}
public Integer getContentLength() {
- return (Integer) store.get(KEY_CONTENT_LENGTH);
+ return getInteger(KEY_CONTENT_LENGTH);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Image.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Image.java index 76ad2d224..8182fc43c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Image.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Image.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.ImageType;
+import java.util.Hashtable;
+
/**
*Specifies, which image shall be used, e.g. in Alerts or on Softbuttons provided the display supports it.
*<p><b>Parameter List</b></p>
@@ -57,11 +57,7 @@ public class Image extends RPCStruct { * @param value either the static hex icon value or the binary image file name identifier (sent by PutFile)
*/
public void setValue(String value) {
- if (value != null) {
- store.put(KEY_VALUE, value);
- } else {
- store.remove(KEY_VALUE);
- }
+ setValue(KEY_VALUE, value);
}
/**
@@ -69,7 +65,7 @@ public class Image extends RPCStruct { * @return either the static hex icon value or the binary image file name identifier (sent by PutFile)
*/
public String getValue() {
- return (String) store.get(KEY_VALUE);
+ return getString(KEY_VALUE);
}
/**
@@ -77,11 +73,7 @@ public class Image extends RPCStruct { * @param imageType whether it is a static or dynamic image
*/
public void setImageType(ImageType imageType) {
- if (imageType != null) {
- store.put(KEY_IMAGE_TYPE, imageType);
- } else {
- store.remove(KEY_IMAGE_TYPE);
- }
+ setValue(KEY_IMAGE_TYPE, imageType);
}
/**
@@ -89,12 +81,6 @@ public class Image extends RPCStruct { * @return the image type
*/
public ImageType getImageType() {
- Object obj = store.get(KEY_IMAGE_TYPE);
- if (obj instanceof ImageType) {
- return (ImageType) obj;
- } else if (obj instanceof String) {
- return ImageType.valueForString((String) obj);
- }
- return null;
+ return (ImageType) getObject(ImageType.class, KEY_IMAGE_TYPE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ImageField.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ImageField.java index 9e38dc264..1d3b32967 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ImageField.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ImageField.java @@ -1,13 +1,17 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.AmbientLightStatus;
import com.smartdevicelink.proxy.rpc.enums.FileType;
import com.smartdevicelink.proxy.rpc.enums.ImageFieldName;
import com.smartdevicelink.util.DebugTool;
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+
+import static com.smartdevicelink.proxy.rpc.HeadLampStatus.KEY_AMBIENT_LIGHT_SENSOR_STATUS;
+
/** <p>The name that identifies the field.For example AppIcon,SoftButton, LocationImage, etc.</p>
*
* <p><b>Parameter List</b></p>
@@ -68,73 +72,23 @@ public class ImageField extends RPCStruct { super(hash);
}
public ImageFieldName getName() {
- Object obj = store.get(KEY_NAME);
- if (obj instanceof ImageFieldName) {
- return (ImageFieldName) obj;
- } else if (obj instanceof String) {
- return ImageFieldName.valueForString((String) obj);
- }
- return null;
+ return (ImageFieldName) getObject(ImageFieldName.class, KEY_NAME);
}
public void setName( ImageFieldName name ) {
- if (name != null) {
- store.put(KEY_NAME, name );
- }
- else {
- store.remove(KEY_NAME);
- }
+ setValue(KEY_NAME, name);
}
@SuppressWarnings("unchecked")
public List<FileType> getImageTypeSupported() {
- if (store.get(KEY_IMAGE_TYPE_SUPPORTED) instanceof List<?>) {
- List<?> list = (List<?>)store.get(KEY_IMAGE_TYPE_SUPPORTED);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof FileType) {
- return (List<FileType>) list;
- } else if (obj instanceof String) {
- List<FileType> newList = new ArrayList<FileType>();
- for (Object hashObj : list) {
- String strFormat = (String)hashObj;
- FileType theCode = FileType.valueForString(strFormat);
- if (theCode != null) {
- newList.add(theCode);
- }
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<FileType>) getObject(FileType.class, KEY_IMAGE_TYPE_SUPPORTED);
}
public void setImageTypeSupported( List<FileType> imageTypeSupported ) {
- if (imageTypeSupported != null) {
- store.put(KEY_IMAGE_TYPE_SUPPORTED, imageTypeSupported );
- }
- else {
- store.remove(KEY_IMAGE_TYPE_SUPPORTED);
- }
+ setValue(KEY_IMAGE_TYPE_SUPPORTED, imageTypeSupported);
}
@SuppressWarnings("unchecked")
public ImageResolution getImageResolution() {
- Object obj = store.get(KEY_IMAGE_RESOLUTION);
- if (obj instanceof ImageResolution) {
- return (ImageResolution) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new ImageResolution((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_IMAGE_RESOLUTION, e);
- }
- }
- return null;
+ return (ImageResolution) getObject(ImageResolution.class, KEY_IMAGE_RESOLUTION);
}
public void setImageResolution( ImageResolution imageResolution ) {
- if (imageResolution != null) {
- store.put(KEY_IMAGE_RESOLUTION, imageResolution );
- }
- else {
- store.remove(KEY_IMAGE_RESOLUTION);
- }
+ setValue(KEY_IMAGE_RESOLUTION, imageResolution);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ImageResolution.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ImageResolution.java index 682092082..d9c85eb8f 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ImageResolution.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ImageResolution.java @@ -62,26 +62,18 @@ public class ImageResolution extends RPCStruct { }
public void setResolutionWidth(Integer resolutionWidth) {
- if (resolutionWidth != null) {
- store.put(KEY_RESOLUTION_WIDTH, resolutionWidth);
- } else {
- store.remove(KEY_RESOLUTION_WIDTH);
- }
+ setValue(KEY_RESOLUTION_WIDTH, resolutionWidth);
}
public Integer getResolutionWidth() {
- return (Integer) store.get(KEY_RESOLUTION_WIDTH);
+ return getInteger(KEY_RESOLUTION_WIDTH);
}
public void setResolutionHeight(Integer resolutionHeight) {
- if (resolutionHeight != null) {
- store.put(KEY_RESOLUTION_HEIGHT, resolutionHeight);
- } else {
- store.remove(KEY_RESOLUTION_HEIGHT);
- }
+ setValue(KEY_RESOLUTION_HEIGHT, resolutionHeight);
}
public Integer getResolutionHeight() {
- return (Integer) store.get(KEY_RESOLUTION_HEIGHT);
+ return getInteger(KEY_RESOLUTION_HEIGHT);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/KeyboardProperties.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/KeyboardProperties.java index fb35dcf24..6f651b832 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/KeyboardProperties.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/KeyboardProperties.java @@ -1,12 +1,17 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.AmbientLightStatus;
import com.smartdevicelink.proxy.rpc.enums.KeyboardLayout;
import com.smartdevicelink.proxy.rpc.enums.KeypressMode;
import com.smartdevicelink.proxy.rpc.enums.Language;
+
+import java.util.Hashtable;
+import java.util.List;
+
+import static android.provider.Contacts.SettingsColumns.KEY;
+import static com.smartdevicelink.proxy.rpc.HeadLampStatus.KEY_AMBIENT_LIGHT_SENSOR_STATUS;
+
/** This mode causes the interaction to immediately display a keyboard entry through the HMI.
*
* <p><b>Parameter List</b></p>
@@ -78,106 +83,62 @@ public class KeyboardProperties extends RPCStruct { private static final KeypressMode KEYPRESS_MODE_DEFAULT = KeypressMode.RESEND_CURRENT_ENTRY;
public KeyboardProperties() {
- store.put(KEY_KEYPRESS_MODE, KEYPRESS_MODE_DEFAULT);
+ setValue(KEY_KEYPRESS_MODE, KEYPRESS_MODE_DEFAULT);
}
public KeyboardProperties(Hashtable<String, Object> hash) {
super(hash);
if (!store.containsKey(KEY_KEYPRESS_MODE)) {
- store.put(KEY_KEYPRESS_MODE, KEYPRESS_MODE_DEFAULT);
+ setValue(KEY_KEYPRESS_MODE, KEYPRESS_MODE_DEFAULT);
}
}
public Language getLanguage() {
- Object obj = store.get(KEY_LANGUAGE);
- if (obj instanceof Language) {
- return (Language) obj;
- } else if (obj instanceof String) {
- return Language.valueForString((String) obj);
- }
- return null;
+ return (Language) getObject(Language.class, KEY_LANGUAGE);
}
public void setLanguage(Language language) {
- if (language != null) {
- store.put(KEY_LANGUAGE, language);
- } else {
- store.remove(KEY_LANGUAGE);
- }
+ setValue(KEY_LANGUAGE, language);
}
public KeyboardLayout getKeyboardLayout() {
- Object obj = store.get(KEY_KEYBOARD_LAYOUT);
- if (obj instanceof KeyboardLayout) {
- return (KeyboardLayout) obj;
- } else if (obj instanceof String) {
- return KeyboardLayout.valueForString((String) obj);
- }
- return null;
+ return (KeyboardLayout) getObject(KeyboardLayout.class, KEY_KEYBOARD_LAYOUT);
}
public void setKeyboardLayout(KeyboardLayout keyboardLayout) {
- if (keyboardLayout != null) {
- store.put(KEY_KEYBOARD_LAYOUT, keyboardLayout);
- } else {
- store.remove(KEY_KEYBOARD_LAYOUT);
- }
+ setValue(KEY_KEYBOARD_LAYOUT, keyboardLayout);
}
public KeypressMode getKeypressMode() {
- Object obj = store.get(KEY_KEYPRESS_MODE);
- if (obj instanceof KeypressMode) {
- return (KeypressMode) obj;
- } else if (obj instanceof String) {
- return KeypressMode.valueForString((String) obj);
+ KeypressMode kp = (KeypressMode) getObject(KeypressMode.class, KEY_KEYPRESS_MODE);
+ if(kp == null){
+ kp = KEYPRESS_MODE_DEFAULT;
}
- return KEYPRESS_MODE_DEFAULT;
+ return kp;
}
public void setKeypressMode(KeypressMode keypressMode) {
if (keypressMode != null) {
- store.put(KEY_KEYPRESS_MODE, keypressMode);
+ setValue(KEY_KEYPRESS_MODE, keypressMode);
} else {
- store.put(KEY_KEYPRESS_MODE, KEYPRESS_MODE_DEFAULT);
+ setValue(KEY_KEYPRESS_MODE, KEYPRESS_MODE_DEFAULT);
}
}
@SuppressWarnings("unchecked")
public List<String> getLimitedCharacterList() {
- final Object listObj = store.get(KEY_LIMITED_CHARACTER_LIST);
- if (listObj instanceof List<?>) {
- List<?> list = (List<?>) listObj;
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_LIMITED_CHARACTER_LIST);
}
public void setLimitedCharacterList(List<String> limitedCharacterList) {
- if (limitedCharacterList != null) {
- store.put(KEY_LIMITED_CHARACTER_LIST, limitedCharacterList);
- } else {
- store.remove(KEY_LIMITED_CHARACTER_LIST);
- }
+ setValue(KEY_LIMITED_CHARACTER_LIST, limitedCharacterList);
}
public String getAutoCompleteText() {
- final Object obj = store.get(KEY_AUTO_COMPLETE_TEXT);
- if (obj instanceof String) {
- return (String) obj;
- }
- return null;
+ return (String) getObject(String.class, KEY_AUTO_COMPLETE_TEXT);
}
public void setAutoCompleteText(String autoCompleteText) {
- if (autoCompleteText != null) {
- store.put(KEY_AUTO_COMPLETE_TEXT, autoCompleteText);
- } else {
- store.remove(KEY_AUTO_COMPLETE_TEXT);
- }
+ setValue(KEY_AUTO_COMPLETE_TEXT, autoCompleteText);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ListFilesResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ListFilesResponse.java index 2c7a62e3e..f1f77a7df 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ListFilesResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ListFilesResponse.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* List Files Response is sent, when ListFiles has been called
*
@@ -25,33 +25,16 @@ public class ListFilesResponse extends RPCResponse { super(hash);
}
public void setFilenames(List<String> filenames) {
- if (filenames != null) {
- parameters.put(KEY_FILENAMES, filenames);
- } else {
- parameters.remove(KEY_FILENAMES);
- }
+ setParameters(KEY_FILENAMES, filenames);
}
@SuppressWarnings("unchecked")
public List<String> getFilenames() {
- if (parameters.get(KEY_FILENAMES) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_FILENAMES);
- if (list != null && list.size()>0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_FILENAMES);
}
public void setSpaceAvailable(Integer spaceAvailable) {
- if (spaceAvailable != null) {
- parameters.put(KEY_SPACE_AVAILABLE, spaceAvailable);
- } else {
- parameters.remove(KEY_SPACE_AVAILABLE);
- }
+ setParameters(KEY_SPACE_AVAILABLE, spaceAvailable);
}
public Integer getSpaceAvailable() {
- return (Integer) parameters.get(KEY_SPACE_AVAILABLE);
+ return getInteger(KEY_SPACE_AVAILABLE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/LocationDetails.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/LocationDetails.java index 50dcaf49b..51d150a2b 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/LocationDetails.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/LocationDetails.java @@ -1,7 +1,6 @@ package com.smartdevicelink.proxy.rpc; import com.smartdevicelink.proxy.RPCStruct; -import com.smartdevicelink.util.DebugTool; import java.util.Hashtable; import java.util.List; @@ -24,127 +23,59 @@ public class LocationDetails extends RPCStruct{ @SuppressWarnings("unchecked") public Coordinate getCoordinate() { - Object obj = store.get(KEY_COORDINATE); - if (obj instanceof Coordinate) { - return (Coordinate) obj; - } else if (obj instanceof Hashtable) { - try { - return new Coordinate((Hashtable<String, Object>) obj); - } catch (Exception e) { - DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_COORDINATE, e); - } - } - return null; + return (Coordinate) getObject(Coordinate.class, KEY_COORDINATE); } public void setCoordinate(Coordinate coordinate) { - if (coordinate != null) { - store.put(KEY_COORDINATE, coordinate); - } else { - store.remove(KEY_COORDINATE); - } + setValue(KEY_COORDINATE, coordinate); } public String getLocationName() { - return (String) store.get(KEY_LOCATION_NAME); + return getString(KEY_LOCATION_NAME); } public void setLocationName(String locationName) { - if (locationName != null) { - store.put(KEY_LOCATION_NAME, locationName); - } else { - store.remove(KEY_LOCATION_NAME); - } + setValue(KEY_LOCATION_NAME, locationName); } @SuppressWarnings("unchecked") public List<String> getAddressLines() { - final Object listObj = store.get(KEY_ADDRESS_LINES); - if (listObj instanceof List<?>) { - List<?> list = (List<?>) listObj; - if (list.size() > 0) { - Object obj = list.get(0); - if (obj instanceof String) { - return (List<String>) list; - } - } - } - return null; + return (List<String>) getObject(String.class, KEY_ADDRESS_LINES); } public void setAddressLines(List<String> addressLines) { - if (addressLines != null) { - store.put(KEY_ADDRESS_LINES, addressLines); - } else { - store.remove(KEY_ADDRESS_LINES); - } + setValue(KEY_ADDRESS_LINES, addressLines); } public String getLocationDescription() { - return (String) store.get(KEY_LOCATION_DESCRIPTION); + return getString(KEY_LOCATION_DESCRIPTION); } public void setLocationDescription(String locationDescription) { - if (locationDescription != null) { - store.put(KEY_LOCATION_DESCRIPTION, locationDescription); - } else { - store.remove(KEY_LOCATION_DESCRIPTION); - } + setValue(KEY_LOCATION_DESCRIPTION, locationDescription); } public String getPhoneNumber() { - return (String) store.get(KEY_PHONE_NUMBER); + return getString(KEY_PHONE_NUMBER); } public void setPhoneNumber(String phoneNumber) { - if (phoneNumber != null) { - store.put(KEY_PHONE_NUMBER, phoneNumber); - } else { - store.remove(KEY_PHONE_NUMBER); - } + setValue(KEY_PHONE_NUMBER, phoneNumber); } @SuppressWarnings("unchecked") public Image getLocationImage() { - Object obj = store.get(KEY_LOCATION_IMAGE); - if (obj instanceof Image) { - return (Image) obj; - } else if (obj instanceof Hashtable) { - try { - return new Image((Hashtable<String, Object>) obj); - } catch (Exception e) { - DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_LOCATION_IMAGE, e); - } - } - return null; + return (Image) getObject(Image.class, KEY_LOCATION_IMAGE); } public void setLocationImage(Image locationImage) { - if (locationImage != null) { - store.put(KEY_LOCATION_IMAGE, locationImage); - } else { - store.remove(KEY_LOCATION_IMAGE); - } + setValue(KEY_LOCATION_IMAGE, locationImage); } @SuppressWarnings("unchecked") public OasisAddress getSearchAddress() { - Object obj = store.get(KEY_SEARCH_ADDRESS); - if (obj instanceof OasisAddress) { - return (OasisAddress) obj; - } else if (obj instanceof Hashtable) { - try { - return new OasisAddress((Hashtable<String, Object>) obj); - } catch (Exception e) { - DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_SEARCH_ADDRESS, e); - } - } - return null; + return (OasisAddress) getObject(OasisAddress.class, KEY_SEARCH_ADDRESS); } public void setSearchAddress(OasisAddress searchAddress) { - if (searchAddress != null) { - store.put(KEY_SEARCH_ADDRESS, searchAddress); - } else { - store.remove(KEY_SEARCH_ADDRESS); - } + setValue(KEY_SEARCH_ADDRESS, searchAddress); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MenuParams.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MenuParams.java index a9f22238a..e096cb7df 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MenuParams.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MenuParams.java @@ -1,8 +1,8 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
+
+import java.util.Hashtable;
/**
* Used when adding a sub menu to an application menu or existing sub menu.
* <p><b> Parameter List</b></p>
@@ -76,7 +76,7 @@ public class MenuParams extends RPCStruct { * @return parentID Min: 0 Max: 2000000000
*/
public Integer getParentID() {
- return (Integer) store.get( KEY_PARENT_ID );
+ return getInteger( KEY_PARENT_ID );
}
/**
* Set the unique ID of an existing submenu to which a command will be added.
@@ -84,11 +84,7 @@ public class MenuParams extends RPCStruct { * @param parentID Min: 0; Max: 2000000000
*/
public void setParentID( Integer parentID ) {
- if (parentID != null) {
- store.put(KEY_PARENT_ID, parentID );
- } else {
- store.remove(KEY_PARENT_ID);
- }
+ setValue(KEY_PARENT_ID, parentID);
}
/**
* Get the position within the items of the parent Command Menu. 0 will insert at the front, 1 will insert after the first existing element, etc.
@@ -102,7 +98,7 @@ public class MenuParams extends RPCStruct { * @return the position within the items of the parent Command Menu
*/
public Integer getPosition() {
- return (Integer) store.get( KEY_POSITION );
+ return getInteger( KEY_POSITION );
}
/**
* Set the position within the items of the parent Command Menu. 0 will insert at the front, 1 will insert after the first existing element, etc.
@@ -116,11 +112,7 @@ public class MenuParams extends RPCStruct { * @param position Mix: 0 Max: 1000
*/
public void setPosition( Integer position ) {
- if (position != null) {
- store.put(KEY_POSITION, position );
- } else {
- store.remove(KEY_POSITION);
- }
+ setValue(KEY_POSITION, position);
}
/**
* Get the text which appears in menu, representing this command.
@@ -132,7 +124,7 @@ public class MenuParams extends RPCStruct { */
public String getMenuName() {
- return (String) store.get( KEY_MENU_NAME );
+ return getString( KEY_MENU_NAME );
}
/**
* Set text which appears in menu, representing this command.
@@ -144,10 +136,6 @@ public class MenuParams extends RPCStruct { */
public void setMenuName( String menuName ) {
- if (menuName != null) {
- store.put(KEY_MENU_NAME, menuName );
- } else {
- store.remove(KEY_MENU_NAME);
- }
+ setValue(KEY_MENU_NAME, menuName);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MetadataTags.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MetadataTags.java new file mode 100644 index 000000000..dc5a9b5aa --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MetadataTags.java @@ -0,0 +1,116 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.proxy.RPCStruct; +import com.smartdevicelink.proxy.rpc.enums.MetadataType; + +import java.util.Collections; +import java.util.Hashtable; +import java.util.List; + +public class MetadataTags extends RPCStruct { + + public static final String KEY_MAIN_FIELD_1_TYPE = "mainField1"; + public static final String KEY_MAIN_FIELD_2_TYPE = "mainField2"; + public static final String KEY_MAIN_FIELD_3_TYPE = "mainField3"; + public static final String KEY_MAIN_FIELD_4_TYPE = "mainField4"; + + /** + * Constructs a newly allocated MetadataTags object + */ + public MetadataTags(){} + + /** + * Constructs a newly allocated MetadataTags object indicated by the Hashtable parameter + * @param hash The Hashtable to use + */ + public MetadataTags(Hashtable<String, Object> hash){super(hash);} + + /** + * Set the metadata types of data contained in the "mainField1" text field + */ + public void setMainField1( List<MetadataType> metadataTypes ) { + setValue(KEY_MAIN_FIELD_1_TYPE, metadataTypes); + } + + /** + * Set the metadata type of data contained in the "mainField1" text field + */ + public void setMainField1(MetadataType metadataType) { + setValue(KEY_MAIN_FIELD_1_TYPE, Collections.singletonList(metadataType)); + } + + /** + * @return The type of data contained in the "mainField1" text field + */ + @SuppressWarnings("unchecked") + public List<MetadataType> getMainField1() { + return (List<MetadataType>) getObject(MetadataType.class, KEY_MAIN_FIELD_1_TYPE); + } + + /** + * Set the metadata types of data contained in the "mainField2" text field + */ + public void setMainField2( List<MetadataType> metadataTypes ) { + setValue(KEY_MAIN_FIELD_2_TYPE, metadataTypes); + } + + /** + * Set the metadata type of data contained in the "mainField2" text field + */ + public void setMainField2(MetadataType metadataType) { + setValue(KEY_MAIN_FIELD_2_TYPE, Collections.singletonList(metadataType)); + } + + /** + * @return The type of data contained in the "mainField2" text field + */ + @SuppressWarnings("unchecked") + public List<MetadataType> getMainField2() { + return (List<MetadataType>) getObject(MetadataType.class, KEY_MAIN_FIELD_2_TYPE); + } + + /** + * Set the metadata types of data contained in the "mainField3" text field + */ + public void setMainField3( List<MetadataType> metadataTypes ) { + setValue(KEY_MAIN_FIELD_3_TYPE, metadataTypes); + } + + /** + * Set the metadata type of data contained in the "mainField3" text field + */ + public void setMainField3(MetadataType metadataType) { + setValue(KEY_MAIN_FIELD_3_TYPE, Collections.singletonList(metadataType)); + } + + /** + * @return The type of data contained in the "mainField3" text field + */ + @SuppressWarnings("unchecked") + public List<MetadataType> getMainField3() { + return (List<MetadataType>) getObject(MetadataType.class, KEY_MAIN_FIELD_3_TYPE); + } + + /** + * Set the metadata types of data contained in the "mainField4" text field + */ + public void setMainField4( List<MetadataType> metadataTypes ) { + setValue(KEY_MAIN_FIELD_4_TYPE, metadataTypes); + } + + /** + * Set the metadata type of data contained in the "mainField4" text field + */ + public void setMainField4(MetadataType metadataType) { + setValue(KEY_MAIN_FIELD_4_TYPE, Collections.singletonList(metadataType)); + } + + /** + * @return The type of data contained in the "mainField4" text field + */ + @SuppressWarnings("unchecked") + public List<MetadataType> getMainField4() { + return (List<MetadataType>) getObject(MetadataType.class, KEY_MAIN_FIELD_4_TYPE); + } + +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MyKey.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MyKey.java index 4936f9fec..f17a6b54c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MyKey.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/MyKey.java @@ -48,19 +48,9 @@ public class MyKey extends RPCStruct { }
public void setE911Override(VehicleDataStatus e911Override) {
- if (e911Override != null) {
- store.put(KEY_E_911_OVERRIDE, e911Override);
- } else {
- store.remove(KEY_E_911_OVERRIDE);
- }
+ setValue(KEY_E_911_OVERRIDE, e911Override);
}
public VehicleDataStatus getE911Override() {
- Object obj = store.get(KEY_E_911_OVERRIDE);
- if (obj instanceof VehicleDataStatus) {
- return (VehicleDataStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataStatus) getObject(VehicleDataStatus.class, KEY_E_911_OVERRIDE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/NavigationCapability.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/NavigationCapability.java new file mode 100644 index 000000000..c3d0d59f8 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/NavigationCapability.java @@ -0,0 +1,35 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.proxy.RPCStruct; + +import java.util.Hashtable; + +/* + * Extended capabilities for an onboard navigation system + */ +public class NavigationCapability extends RPCStruct{ + public static final String KEY_LOCATION_ENABLED = "sendLocationEnabled"; + public static final String KEY_GETWAYPOINTS_ENABLED = "getWayPointsEnabled"; + + public NavigationCapability(){} + + public NavigationCapability(Hashtable<String, Object> hash) { + super(hash); + } + + public Boolean getSendLocationEnabled(){ + return getBoolean(KEY_LOCATION_ENABLED); + } + + public void setSendLocationEnabled(Boolean sendLocationEnabled){ + setValue(KEY_LOCATION_ENABLED, sendLocationEnabled); + } + + public Boolean getWayPointsEnabled(){ + return getBoolean(KEY_GETWAYPOINTS_ENABLED); + } + + public void setWayPointsEnabled(Boolean getWayPointsEnabled){ + setValue(KEY_GETWAYPOINTS_ENABLED, getWayPointsEnabled); + } +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OasisAddress.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OasisAddress.java index 131edaa9a..54b95e300 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OasisAddress.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OasisAddress.java @@ -35,7 +35,7 @@ public class OasisAddress extends RPCStruct{ * */ public String getCountryName() { - return (String) store.get(KEY_COUNTRY_NAME); + return getString(KEY_COUNTRY_NAME); } /** @@ -46,11 +46,7 @@ public class OasisAddress extends RPCStruct{ * */ public void setCountryName(String countryName) { - if (countryName != null) { - store.put(KEY_COUNTRY_NAME, countryName); - } else { - store.remove(KEY_COUNTRY_NAME); - } + setValue(KEY_COUNTRY_NAME, countryName); } /** @@ -60,7 +56,7 @@ public class OasisAddress extends RPCStruct{ * */ public String getCountryCode() { - return (String) store.get(KEY_COUNTRY_CODE); + return getString(KEY_COUNTRY_CODE); } /** @@ -71,11 +67,7 @@ public class OasisAddress extends RPCStruct{ * */ public void setCountryCode(String countryCode) { - if (countryCode != null) { - store.put(KEY_COUNTRY_CODE, countryCode); - } else { - store.remove(KEY_COUNTRY_CODE); - } + setValue(KEY_COUNTRY_CODE, countryCode); } /** @@ -85,7 +77,7 @@ public class OasisAddress extends RPCStruct{ * */ public String getPostalCode() { - return (String) store.get(KEY_POSTAL_CODE); + return getString(KEY_POSTAL_CODE); } /** @@ -96,11 +88,7 @@ public class OasisAddress extends RPCStruct{ * */ public void setPostalCode(String postalCode) { - if (postalCode != null) { - store.put(KEY_POSTAL_CODE, postalCode); - } else { - store.remove(KEY_POSTAL_CODE); - } + setValue(KEY_POSTAL_CODE, postalCode); } /** @@ -110,7 +98,7 @@ public class OasisAddress extends RPCStruct{ * */ public String getAdministrativeArea() { - return (String) store.get(KEY_ADMINISTRATIVE_AREA); + return getString(KEY_ADMINISTRATIVE_AREA); } /** @@ -121,11 +109,7 @@ public class OasisAddress extends RPCStruct{ * */ public void setAdministrativeArea(String administrativeArea) { - if (administrativeArea != null) { - store.put(KEY_ADMINISTRATIVE_AREA, administrativeArea); - } else { - store.remove(KEY_ADMINISTRATIVE_AREA); - } + setValue(KEY_ADMINISTRATIVE_AREA, administrativeArea); } /** @@ -135,7 +119,7 @@ public class OasisAddress extends RPCStruct{ * */ public String getSubAdministrativeArea() { - return (String) store.get(KEY_SUB_ADMINISTRATIVE_AREA); + return getString(KEY_SUB_ADMINISTRATIVE_AREA); } /** @@ -146,11 +130,7 @@ public class OasisAddress extends RPCStruct{ * */ public void setSubAdministrativeArea(String subAdministrativeArea) { - if (subAdministrativeArea != null) { - store.put(KEY_SUB_ADMINISTRATIVE_AREA, subAdministrativeArea); - } else { - store.remove(KEY_SUB_ADMINISTRATIVE_AREA); - } + setValue(KEY_SUB_ADMINISTRATIVE_AREA, subAdministrativeArea); } /** @@ -160,7 +140,7 @@ public class OasisAddress extends RPCStruct{ * */ public String getLocality() { - return (String) store.get(KEY_LOCALITY); + return getString(KEY_LOCALITY); } /** @@ -171,11 +151,7 @@ public class OasisAddress extends RPCStruct{ * */ public void setLocality(String locality) { - if (locality != null) { - store.put(KEY_LOCALITY, locality); - } else { - store.remove(KEY_LOCALITY); - } + setValue(KEY_LOCALITY, locality); } /** @@ -185,7 +161,7 @@ public class OasisAddress extends RPCStruct{ * */ public String getSubLocality() { - return (String) store.get(KEY_SUB_LOCALITY); + return getString(KEY_SUB_LOCALITY); } /** @@ -196,11 +172,7 @@ public class OasisAddress extends RPCStruct{ * */ public void setSubLocality(String subLocality) { - if (subLocality != null) { - store.put(KEY_SUB_LOCALITY, subLocality); - } else { - store.remove(KEY_SUB_LOCALITY); - } + setValue(KEY_SUB_LOCALITY, subLocality); } /** @@ -210,7 +182,7 @@ public class OasisAddress extends RPCStruct{ * */ public String getThoroughfare() { - return (String) store.get(KEY_THOROUGH_FARE); + return getString(KEY_THOROUGH_FARE); } /** @@ -221,11 +193,7 @@ public class OasisAddress extends RPCStruct{ * */ public void setThoroughfare(String thoroughFare) { - if (thoroughFare != null) { - store.put(KEY_THOROUGH_FARE, thoroughFare); - } else { - store.remove(KEY_THOROUGH_FARE); - } + setValue(KEY_THOROUGH_FARE, thoroughFare); } /** @@ -234,7 +202,7 @@ public class OasisAddress extends RPCStruct{ * @return String - The Sub-Thoroughfare associated with the OasisAddress class. */ public String getSubThoroughfare() { - return (String) store.get(KEY_SUB_THOROUGH_FARE); + return getString(KEY_SUB_THOROUGH_FARE); } /** @@ -245,10 +213,6 @@ public class OasisAddress extends RPCStruct{ * */ public void setSubThoroughfare(String subThoroughfare) { - if (subThoroughfare != null) { - store.put(KEY_SUB_THOROUGH_FARE, subThoroughfare); - } else { - store.remove(KEY_SUB_THOROUGH_FARE); - } + setValue(KEY_SUB_THOROUGH_FARE, subThoroughfare); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnAppInterfaceUnregistered.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnAppInterfaceUnregistered.java index af155226e..0e4a4f7c7 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnAppInterfaceUnregistered.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnAppInterfaceUnregistered.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.AppInterfaceUnregisteredReason;
+import java.util.Hashtable;
+
/**
* <p>Notifies an application that its interface registration has been terminated. This means that all SDL resources
* associated with the application are discarded, including the Command Menu, Choice Sets, button subscriptions, etc.</p>
@@ -59,23 +59,13 @@ public class OnAppInterfaceUnregistered extends RPCNotification { * @return {@linkplain AppInterfaceUnregisteredReason} the reason the application's interface registration was terminated
*/
public AppInterfaceUnregisteredReason getReason() {
- Object obj = parameters.get(KEY_REASON);
- if (obj instanceof AppInterfaceUnregisteredReason) {
- return (AppInterfaceUnregisteredReason) obj;
- } else if (obj instanceof String) {
- return AppInterfaceUnregisteredReason.valueForString((String) obj);
- }
- return null;
+ return (AppInterfaceUnregisteredReason) getObject(AppInterfaceUnregisteredReason.class, KEY_REASON);
}
/**
* <p>Set the reason application's interface was terminated</p>
* @param reason The reason application's interface registration was terminated
*/
public void setReason( AppInterfaceUnregisteredReason reason ) {
- if (reason != null) {
- parameters.put(KEY_REASON, reason );
- } else {
- parameters.remove(KEY_REASON);
- }
+ setParameters(KEY_REASON, reason);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnButtonEvent.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnButtonEvent.java index 7f9afb627..185493ec7 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnButtonEvent.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnButtonEvent.java @@ -1,12 +1,12 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.ButtonEventMode;
import com.smartdevicelink.proxy.rpc.enums.ButtonName;
+import java.util.Hashtable;
+
/**
* Notifies application that user has depressed or released a button to which
* the application has subscribed.Further information about button events
@@ -109,37 +109,21 @@ public class OnButtonEvent extends RPCNotification { * @return ButtonName Name of the button
*/
public ButtonName getButtonName() {
- Object obj = parameters.get(KEY_BUTTON_NAME);
- if (obj instanceof ButtonName) {
- return (ButtonName) obj;
- } else if (obj instanceof String) {
- return ButtonName.valueForString((String) obj);
- }
- return null;
+ return (ButtonName) getObject(ButtonName.class, KEY_BUTTON_NAME);
}
/**
* <p>Set the button's name</p>
* @param buttonName name of the button
*/
public void setButtonName(ButtonName buttonName) {
- if (buttonName != null) {
- parameters.put(KEY_BUTTON_NAME, buttonName);
- } else {
- parameters.remove(KEY_BUTTON_NAME);
- }
+ setParameters(KEY_BUTTON_NAME, buttonName);
}
/**
* <p>Return <i>{@linkplain ButtonEventMode} indicates the button was depressed or released</i></p>
* @return ButtonEventMode the button depressed or released
*/
public ButtonEventMode getButtonEventMode() {
- Object obj = parameters.get(KEY_BUTTON_EVENT_MODE);
- if (obj instanceof ButtonEventMode) {
- return (ButtonEventMode) obj;
- } else if (obj instanceof String) {
- return ButtonEventMode.valueForString((String) obj);
- }
- return null;
+ return (ButtonEventMode) getObject(ButtonEventMode.class, KEY_BUTTON_EVENT_MODE);
}
/**
* <p> Set the event mode of the button,pressed or released</p>
@@ -147,20 +131,12 @@ public class OnButtonEvent extends RPCNotification { * @see ButtonEventMode
*/
public void setButtonEventMode(ButtonEventMode buttonEventMode) {
- if (buttonEventMode != null) {
- parameters.put(KEY_BUTTON_EVENT_MODE, buttonEventMode);
- } else {
- parameters.remove(KEY_BUTTON_EVENT_MODE);
- }
+ setParameters(KEY_BUTTON_EVENT_MODE, buttonEventMode);
}
public void setCustomButtonID(Integer customButtonID) {
- if (customButtonID != null) {
- parameters.put(KEY_CUSTOM_BUTTON_ID, customButtonID);
- } else {
- parameters.remove(KEY_CUSTOM_BUTTON_ID);
- }
+ setParameters(KEY_CUSTOM_BUTTON_ID, customButtonID);
}
public Integer getCustomButtonID() {
- return (Integer) parameters.get(KEY_CUSTOM_BUTTON_ID);
+ return getInteger(KEY_CUSTOM_BUTTON_ID);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnButtonPress.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnButtonPress.java index c881cc297..48562ab2f 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnButtonPress.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnButtonPress.java @@ -1,12 +1,12 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.ButtonName;
import com.smartdevicelink.proxy.rpc.enums.ButtonPressMode;
+import java.util.Hashtable;
+
/**
* <p>
* Notifies application of button press events for buttons to which the
@@ -114,56 +114,32 @@ public class OnButtonPress extends RPCNotification { * @return ButtonName Name of the button
*/
public ButtonName getButtonName() {
- Object obj = parameters.get(KEY_BUTTON_NAME);
- if (obj instanceof ButtonName) {
- return (ButtonName) obj;
- } else if (obj instanceof String) {
- return ButtonName.valueForString((String) obj);
- }
- return null;
+ return (ButtonName) getObject(ButtonName.class, KEY_BUTTON_NAME);
}
/**
* <p>Set the button's name</p>
* @param buttonName name of the button
*/
public void setButtonName( ButtonName buttonName ) {
- if (buttonName != null) {
- parameters.put(KEY_BUTTON_NAME, buttonName );
- } else {
- parameters.remove(KEY_BUTTON_NAME);
- }
+ setParameters(KEY_BUTTON_NAME, buttonName);
}
/**<p>Returns <i>{@linkplain ButtonPressMode}</i></p>
* @return ButtonPressMode whether this is a long or short button press event
*/
public ButtonPressMode getButtonPressMode() {
- Object obj = parameters.get(KEY_BUTTON_PRESS_MODE);
- if (obj instanceof ButtonPressMode) {
- return (ButtonPressMode) obj;
- } else if (obj instanceof String) {
- return ButtonPressMode.valueForString((String) obj);
- }
- return null;
+ return (ButtonPressMode) getObject(ButtonPressMode.class, KEY_BUTTON_PRESS_MODE);
}
/**
* <p>Set the button press mode of the event</p>
* @param buttonPressMode indicates whether this is a short or long press
*/
public void setButtonPressMode( ButtonPressMode buttonPressMode ) {
- if (buttonPressMode != null) {
- parameters.put(KEY_BUTTON_PRESS_MODE, buttonPressMode );
- } else {
- parameters.remove(KEY_BUTTON_PRESS_MODE);
- }
+ setParameters(KEY_BUTTON_PRESS_MODE, buttonPressMode);
}
public void setCustomButtonName(Integer customButtonID) {
- if (customButtonID != null) {
- parameters.put(KEY_CUSTOM_BUTTON_ID, customButtonID);
- } else {
- parameters.remove(KEY_CUSTOM_BUTTON_ID);
- }
+ setParameters(KEY_CUSTOM_BUTTON_ID, customButtonID);
}
public Integer getCustomButtonName() {
- return (Integer) parameters.get(KEY_CUSTOM_BUTTON_ID);
+ return getInteger(KEY_CUSTOM_BUTTON_ID);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnCommand.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnCommand.java index eae7e77f8..0ce4ef7b7 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnCommand.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnCommand.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.TriggerSource;
+import java.util.Hashtable;
+
/**
* This is called when a command was selected via VR after pressing the PTT button, or selected from the menu after
* pressing the MENU button. <p>
@@ -72,31 +72,21 @@ public class OnCommand extends RPCNotification { * @return Integer an integer representation of this object
*/
public Integer getCmdID() {
- return (Integer) parameters.get( KEY_CMD_ID );
+ return getInteger( KEY_CMD_ID );
}
/**
* <p>Sets a Command ID</p>
* @param cmdID an integer object representing a Command ID
*/
public void setCmdID( Integer cmdID ) {
- if (cmdID != null) {
- parameters.put(KEY_CMD_ID, cmdID );
- } else {
- parameters.remove(KEY_CMD_ID);
- }
+ setParameters(KEY_CMD_ID, cmdID);
}
/**
* <p>Returns a <I>TriggerSource</I> object which will be shown in the HMI</p>
* @return TriggerSource a TriggerSource object
*/
public TriggerSource getTriggerSource() {
- Object obj = parameters.get(KEY_TRIGGER_SOURCE);
- if (obj instanceof TriggerSource) {
- return (TriggerSource) obj;
- } else if (obj instanceof String) {
- return TriggerSource.valueForString((String) obj);
- }
- return null;
+ return (TriggerSource) getObject(TriggerSource.class, KEY_TRIGGER_SOURCE);
}
/**
* <p>Sets TriggerSource</p>
@@ -104,10 +94,6 @@ public class OnCommand extends RPCNotification { * @param triggerSource a TriggerSource object
*/
public void setTriggerSource( TriggerSource triggerSource ) {
- if (triggerSource != null) {
- parameters.put(KEY_TRIGGER_SOURCE, triggerSource );
- } else {
- parameters.remove(KEY_TRIGGER_SOURCE);
- }
+ setParameters(KEY_TRIGGER_SOURCE, triggerSource);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnDriverDistraction.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnDriverDistraction.java index 69280ad21..82517ca28 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnDriverDistraction.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnDriverDistraction.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.DriverDistractionState;
+import java.util.Hashtable;
+
/**
* <p>Notifies the application of the current driver distraction state (whether driver distraction rules are in effect, or
* not).</p>
@@ -58,23 +58,13 @@ public class OnDriverDistraction extends RPCNotification { * @return {@linkplain DriverDistractionState} the Current driver distraction state.
*/
public DriverDistractionState getState() {
- Object obj = parameters.get(KEY_STATE);
- if (obj instanceof DriverDistractionState) {
- return (DriverDistractionState)obj;
- } else if(obj instanceof String) {
- return DriverDistractionState.valueForString((String) obj);
- }
- return null;
+ return (DriverDistractionState) getObject(DriverDistractionState.class, KEY_STATE);
}
/**
* <p>Called to set the driver distraction state(i.e. whether driver distraction rules are in effect, or not)</p>
* @param state the current driver distraction state
*/
public void setState( DriverDistractionState state ) {
- if (state != null) {
- parameters.put(KEY_STATE, state );
- } else {
- parameters.remove(KEY_STATE);
- }
+ setParameters(KEY_STATE, state);
}
}
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 31161f2f1..930e742f5 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 @@ -1,12 +1,13 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.AudioStreamingState;
import com.smartdevicelink.proxy.rpc.enums.HMILevel;
import com.smartdevicelink.proxy.rpc.enums.SystemContext;
+
+import java.util.Hashtable;
+
/**
* <p>Notifies an application that HMI conditions have changed for the application. This indicates whether the application
* can speak phrases, display text, perform interactions, receive button presses and events, stream audio, etc. This
@@ -86,61 +87,35 @@ public class OnHMIStatus extends RPCNotification { * @return {@linkplain HMILevel} the current HMI Level in effect for the application
*/
public HMILevel getHmiLevel() {
- Object obj = parameters.get(KEY_HMI_LEVEL);
- if (obj instanceof HMILevel) {
- return (HMILevel) obj;
- } else if (obj instanceof String) {
- return HMILevel.valueForString((String) obj);
- }
- return null;
+ return (HMILevel) getObject(HMILevel.class, KEY_HMI_LEVEL);
}
/**
* <p>Set the HMILevel of OnHMIStatus</p>
* @param hmiLevel the HMILevel to set
*/
public void setHmiLevel( HMILevel hmiLevel ) {
- if (hmiLevel != null) {
- parameters.put(KEY_HMI_LEVEL, hmiLevel );
- } else {
- parameters.remove(KEY_HMI_LEVEL);
- }
+ setParameters(KEY_HMI_LEVEL, hmiLevel);
}
/**
* <p>Get current state of audio streaming for the application</p>
* @return {@linkplain AudioStreamingState} Returns current state of audio streaming for the application
*/
public AudioStreamingState getAudioStreamingState() {
- Object obj = parameters.get(KEY_AUDIO_STREAMING_STATE);
- if (obj instanceof AudioStreamingState) {
- return (AudioStreamingState) obj;
- } else if (obj instanceof String) {
- return AudioStreamingState.valueForString((String) obj);
- }
- return null;
+ return (AudioStreamingState) getObject(AudioStreamingState.class, KEY_AUDIO_STREAMING_STATE);
}
/**
* <p>Set the audio streaming state</p>
* @param audioStreamingState the state of audio streaming of the application
*/
public void setAudioStreamingState( AudioStreamingState audioStreamingState ) {
- if (audioStreamingState != null) {
- parameters.put(KEY_AUDIO_STREAMING_STATE, audioStreamingState );
- } else {
- parameters.remove(KEY_AUDIO_STREAMING_STATE);
- }
+ setParameters(KEY_AUDIO_STREAMING_STATE, audioStreamingState);
}
/**
* <p>Get the System Context</p>
* @return {@linkplain SystemContext} whether a user-initiated interaction is in-progress (VRSESSION or MENU), or not (MAIN).
*/
public SystemContext getSystemContext() {
- Object obj = parameters.get(KEY_SYSTEM_CONTEXT);
- if (obj instanceof SystemContext) {
- return (SystemContext) obj;
- } else if (obj instanceof String) {
- return SystemContext.valueForString((String) obj);
- }
- return null;
+ return (SystemContext) getObject(SystemContext.class, KEY_SYSTEM_CONTEXT);
}
/**
* <p>Set the System Context of OnHMIStatus</p>
@@ -148,11 +123,7 @@ public class OnHMIStatus extends RPCNotification { * (VRSESSION or MENU), or not (MAIN)
*/
public void setSystemContext( SystemContext systemContext ) {
- if (systemContext != null) {
- parameters.put(KEY_SYSTEM_CONTEXT, systemContext );
- } else {
- parameters.remove(KEY_SYSTEM_CONTEXT);
- }
+ setParameters(KEY_SYSTEM_CONTEXT, systemContext);
}
/**
* <p>Query whether it's the first run</p>
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnHashChange.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnHashChange.java index 776d69e4a..7ac4df083 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnHashChange.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnHashChange.java @@ -1,9 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
+
+import java.util.Hashtable;
+
/**
* Notification containing an updated hashID which can be used over connection cycles (i.e. loss of connection, ignition cycles, etc.).
* Sent after initial registration and subsequently after any change in the calculated hash of all persisted app data.
@@ -54,15 +55,11 @@ public class OnHashChange extends RPCNotification { }
public String getHashID() {
- return (String) parameters.get(KEY_HASH_ID);
+ return getString(KEY_HASH_ID);
}
public void setHashID(String hashID) {
- if (hashID != null) {
- parameters.put(KEY_HASH_ID, hashID);
- } else {
- parameters.remove(KEY_HASH_ID);
- }
+ setParameters(KEY_HASH_ID, hashID);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnKeyboardInput.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnKeyboardInput.java index e71cda0a8..900091dc2 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnKeyboardInput.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnKeyboardInput.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.KeyboardEvent;
+import java.util.Hashtable;
+
/**
* On-screen keyboard event. Can be full string or individual keypresses depending on keyboard mode.
* <p></p>
@@ -65,32 +65,18 @@ public class OnKeyboardInput extends RPCNotification { }
public KeyboardEvent getEvent() {
- Object obj = parameters.get(KEY_EVENT);
- if (obj instanceof KeyboardEvent) {
- return (KeyboardEvent) obj;
- } else if (obj instanceof String) {
- return KeyboardEvent.valueForString((String) obj);
- }
- return null;
+ return (KeyboardEvent) getObject(KeyboardEvent.class, KEY_EVENT);
}
public void setEvent(KeyboardEvent event) {
- if (event != null) {
- parameters.put(KEY_EVENT, event);
- } else {
- parameters.remove(KEY_EVENT);
- }
+ setParameters(KEY_EVENT, event);
}
public void setData(String data) {
- if (data != null) {
- parameters.put(KEY_DATA, data);
- } else {
- parameters.remove(KEY_DATA);
- }
+ setParameters(KEY_DATA, data);
}
public String getData() {
- Object obj = parameters.get(KEY_DATA);
+ Object obj = getParameters(KEY_DATA);
if (obj instanceof String) {
return (String) obj;
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnLanguageChange.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnLanguageChange.java index 4f39d55cb..1b514f1cd 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnLanguageChange.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnLanguageChange.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.Language;
+import java.util.Hashtable;
+
/**
* Provides information to what language the Sdl HMI language was changed
* <p>
@@ -77,47 +77,27 @@ public class OnLanguageChange extends RPCNotification { * @param language language that current SDL voice engine(VR+TTS) use
*/
public void setLanguage(Language language) {
- if (language != null) {
- parameters.put(KEY_LANGUAGE, language);
- } else {
- parameters.remove(KEY_LANGUAGE);
- }
+ setParameters(KEY_LANGUAGE, language);
}
/**
* <p>Returns language that current SDL voice engine(VR+TTS) use</p>
* @return {@linkplain Language} language that current SDL voice engine(VR+TTS) use
*/
public Language getLanguage() {
- Object obj = parameters.get(KEY_LANGUAGE);
- if (obj instanceof Language) {
- return (Language) obj;
- } else if (obj instanceof String) {
- return Language.valueForString((String) obj);
- }
- return null;
+ return (Language) getObject(Language.class, KEY_LANGUAGE);
}
/**
* <p>Sets language that current display use</p>
* @param hmiDisplayLanguage language that current SDL voice engine(VR+TTS) use
*/
public void setHmiDisplayLanguage(Language hmiDisplayLanguage) {
- if (hmiDisplayLanguage != null) {
- parameters.put(KEY_HMI_DISPLAY_LANGUAGE, hmiDisplayLanguage);
- } else {
- parameters.remove(KEY_HMI_DISPLAY_LANGUAGE);
- }
+ setParameters(KEY_HMI_DISPLAY_LANGUAGE, hmiDisplayLanguage);
}
/**
* <p>Returns language that current display use</p>
* @return {@linkplain Language} language that current display use
*/
public Language getHmiDisplayLanguage() {
- Object obj = parameters.get(KEY_HMI_DISPLAY_LANGUAGE);
- if (obj instanceof Language) {
- return (Language) obj;
- } else if (obj instanceof String) {
- return Language.valueForString((String) obj);
- }
- return null;
+ return (Language) getObject(Language.class, KEY_HMI_DISPLAY_LANGUAGE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnLockScreenStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnLockScreenStatus.java index 11f6469ef..21a5c3520 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnLockScreenStatus.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnLockScreenStatus.java @@ -4,7 +4,9 @@ import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.HMILevel;
import com.smartdevicelink.proxy.rpc.enums.LockScreenStatus;
-import com.smartdevicelink.proxy.rpc.OnHMIStatus;
+
+import static com.smartdevicelink.proxy.rpc.OnHMIStatus.KEY_HMI_LEVEL;
+
/**
* The lockscreen must perform the following:
* Limit all application control usability from the mobile device with a full-screen static image overlay or separate view.
@@ -27,16 +29,11 @@ public class OnLockScreenStatus extends RPCNotification { */
public Boolean getDriverDistractionStatus() {
- return (Boolean)parameters.get(KEY_DRIVER_DISTRACTION);
+ return getBoolean(KEY_DRIVER_DISTRACTION);
}
public void setDriverDistractionStatus(Boolean driverDistractionStatus) {
-
- if (driverDistractionStatus != null){
- parameters.put(KEY_DRIVER_DISTRACTION, driverDistractionStatus);
- } else {
- parameters.remove(KEY_DRIVER_DISTRACTION);
- }
+ setParameters(KEY_DRIVER_DISTRACTION, driverDistractionStatus);
}
/**
* <p>Get the {@linkplain LockScreenStatus} enumeration, indicating if the lockscreen should be required, optional or off </p>
@@ -44,15 +41,11 @@ public class OnLockScreenStatus extends RPCNotification { */
public LockScreenStatus getShowLockScreen() {
- return (LockScreenStatus)parameters.get(KEY_SHOW_LOCK_SCREEN);
+ return (LockScreenStatus) getParameters(KEY_SHOW_LOCK_SCREEN);
}
public void setShowLockScreen(LockScreenStatus showLockScreen) {
- if (showLockScreen != null) {
- parameters.put(KEY_SHOW_LOCK_SCREEN, showLockScreen );
- } else {
- parameters.remove(KEY_SHOW_LOCK_SCREEN);
- }
+ setParameters(KEY_SHOW_LOCK_SCREEN, showLockScreen);
}
/**
* <p>Get user selection status for the application (has the app been selected via hmi or voice command)</p>
@@ -60,15 +53,11 @@ public class OnLockScreenStatus extends RPCNotification { */
public Boolean getUserSelected() {
- return (Boolean)parameters.get(KEY_USER_SELECTED);
+ return getBoolean(KEY_USER_SELECTED);
}
public void setUserSelected(Boolean userSelected) {
- if (userSelected != null) {
- parameters.put(KEY_USER_SELECTED, userSelected );
- } else {
- parameters.remove(KEY_USER_SELECTED);
- }
+ setParameters(KEY_USER_SELECTED, userSelected);
}
/**
* <p>Get HMILevel in effect for the application</p>
@@ -76,14 +65,10 @@ public class OnLockScreenStatus extends RPCNotification { */
public HMILevel getHMILevel() {
- return (HMILevel)parameters.get(OnHMIStatus.KEY_HMI_LEVEL);
+ return (HMILevel) getParameters(KEY_HMI_LEVEL);
}
public void setHMILevel(HMILevel setHMILevel) {
- if (setHMILevel != null) {
- parameters.put(OnHMIStatus.KEY_HMI_LEVEL, setHMILevel );
- } else {
- parameters.remove(OnHMIStatus.KEY_HMI_LEVEL);
- }
+ setParameters(KEY_HMI_LEVEL, setHMILevel);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnPermissionsChange.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnPermissionsChange.java index 4c88c9baa..a98d69fb5 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnPermissionsChange.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnPermissionsChange.java @@ -1,12 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* Provides update to app of which sets of functions are available
* <p>
@@ -69,30 +68,13 @@ public class OnPermissionsChange extends RPCNotification { */
@SuppressWarnings("unchecked")
public List<PermissionItem> getPermissionItem() {
- List<?> list = (List<?>)parameters.get(KEY_PERMISSION_ITEM);
- if (list != null && list.size()>0) {
- Object obj = list.get(0);
- if(obj instanceof PermissionItem){
- return (List<PermissionItem>) list;
- } else if(obj instanceof Hashtable) {
- List<PermissionItem> newList = new ArrayList<PermissionItem>();
- for (Object hash:list) {
- newList.add(new PermissionItem((Hashtable<String, Object>)hash));
- }
- return newList;
- }
- }
- return null;
+ return (List<PermissionItem>) getObject(PermissionItem.class, KEY_PERMISSION_ITEM);
}
/**
* <p>Sets PermissionItems describing change in permissions for a given set of RPCs</p>
* @param permissionItem an List of PermissionItem describing change in permissions for a given set of RPCs
*/
public void setPermissionItem(List<PermissionItem> permissionItem) {
- if (permissionItem != null) {
- parameters.put(KEY_PERMISSION_ITEM, permissionItem);
- } else {
- parameters.remove(KEY_PERMISSION_ITEM);
- }
+ setParameters(KEY_PERMISSION_ITEM, permissionItem);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSdlChoiceChosen.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSdlChoiceChosen.java index a878ade77..5eec2db91 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSdlChoiceChosen.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSdlChoiceChosen.java @@ -1,12 +1,12 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.TriggerSource;
+import java.util.Hashtable;
+import java.util.List;
+
public class OnSdlChoiceChosen extends RPCNotification {
public static final String KEY_SDL_CHOICE = "sdlChoice";
public static final String KEY_TRIGGER_SOURCE = "triggerSource";
@@ -144,29 +144,15 @@ public class OnSdlChoiceChosen extends RPCNotification { super(hash);
}
public SdlChoice getSdlChoice() {
- return (SdlChoice) parameters.get(KEY_SDL_CHOICE);
+ return (SdlChoice) getParameters(KEY_SDL_CHOICE);
}
public void setSdlChoice(SdlChoice sdlChoice) {
- if (sdlChoice != null) {
- parameters.put(KEY_SDL_CHOICE, sdlChoice);
- } else {
- parameters.remove(KEY_SDL_CHOICE);
- }
+ setParameters(KEY_SDL_CHOICE, sdlChoice);
}
public TriggerSource getTriggerSource() {
- Object obj = parameters.get(KEY_TRIGGER_SOURCE);
- if (obj instanceof TriggerSource) {
- return (TriggerSource) obj;
- } else if (obj instanceof String) {
- return TriggerSource.valueForString((String) obj);
- }
- return null;
+ return (TriggerSource) getObject(TriggerSource.class, KEY_TRIGGER_SOURCE);
}
public void setTriggerSource( TriggerSource triggerSource ) {
- if (triggerSource != null) {
- parameters.put(KEY_TRIGGER_SOURCE, triggerSource );
- } else {
- parameters.remove(KEY_TRIGGER_SOURCE);
- }
+ setParameters(KEY_TRIGGER_SOURCE, triggerSource);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnStreamRPC.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnStreamRPC.java index bb4bcc324..679596026 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnStreamRPC.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnStreamRPC.java @@ -13,35 +13,23 @@ public class OnStreamRPC extends RPCNotification { } public void setFileName(String fileName) { - if (fileName != null) { - parameters.put(KEY_FILENAME, fileName); - } else { - parameters.remove(KEY_FILENAME); - } + setParameters(KEY_FILENAME, fileName); } public String getFileName() { - return (String) parameters.get(KEY_FILENAME); + return getString(KEY_FILENAME); } public void setBytesComplete(Long bytesComplete) { - if (bytesComplete != null) { - parameters.put(KEY_BYTESCOMPLETE, bytesComplete); - } else { - parameters.remove(KEY_BYTESCOMPLETE); - } + setParameters(KEY_BYTESCOMPLETE, bytesComplete); } public Long getBytesComplete() { - return (Long) parameters.get(KEY_BYTESCOMPLETE); + return getLong(KEY_BYTESCOMPLETE); } public void setFileSize(Long fileSize) { - if (fileSize != null) { - parameters.put(KEY_FILESIZE, fileSize); - } else { - parameters.remove(KEY_FILESIZE); - } + setParameters(KEY_FILESIZE, fileSize); } public Long getFileSize() { - return (Long) parameters.get(KEY_FILESIZE); + return getLong(KEY_FILESIZE); } }
\ No newline at end of file diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSystemRequest.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSystemRequest.java index a034626a9..271f94f7f 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSystemRequest.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnSystemRequest.java @@ -1,11 +1,5 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-import java.util.List;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
import android.util.Log;
import com.smartdevicelink.marshal.JsonRPCMarshaller;
@@ -14,6 +8,13 @@ import com.smartdevicelink.proxy.RPCNotification; import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.FileType;
import com.smartdevicelink.proxy.rpc.enums.RequestType;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Hashtable;
+import java.util.List;
+
/**
* An asynchronous request from the system for specific data from the device or the cloud or response to a request from the device or cloud. Binary data can be included in hybrid part of message for some requests (such as Authentication request responses)
*
@@ -198,16 +199,7 @@ public class OnSystemRequest extends RPCNotification { @SuppressWarnings("unchecked")
public List<String> getLegacyData() {
- if (parameters.get(KEY_DATA) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_DATA);
- if (list != null && list.size()>0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>)list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_DATA);
}
public String getBody(){
@@ -227,30 +219,19 @@ public class OnSystemRequest extends RPCNotification { }
public RequestType getRequestType() {
- Object obj = parameters.get(KEY_REQUEST_TYPE);
- if (obj == null) return null;
- if (obj instanceof RequestType) {
- return (RequestType) obj;
- } else if (obj instanceof String) {
- return RequestType.valueForString((String) obj);
- }
- return null;
+ return (RequestType) getObject(RequestType.class, KEY_REQUEST_TYPE);
}
public void setRequestType(RequestType requestType) {
- if (requestType != null) {
- parameters.put(KEY_REQUEST_TYPE, requestType);
- } else {
- parameters.remove(KEY_REQUEST_TYPE);
- }
+ setParameters(KEY_REQUEST_TYPE, requestType);
}
public String getUrl() {
- Object o = parameters.get(KEY_URL);
+ Object o = getParameters(KEY_URL);
if (o == null)
{
//try again for gen 1.1
- o = parameters.get(KEY_URL_V1);
+ o = getParameters(KEY_URL_V1);
}
if (o == null)
return null;
@@ -262,30 +243,15 @@ public class OnSystemRequest extends RPCNotification { }
public void setUrl(String url) {
- if (url != null) {
- parameters.put(KEY_URL, url);
- } else {
- parameters.remove(KEY_URL);
- }
+ setParameters(KEY_URL, url);
}
public FileType getFileType() {
- Object obj = parameters.get(KEY_FILE_TYPE);
- if (obj == null) return null;
- if (obj instanceof FileType) {
- return (FileType) obj;
- } else if (obj instanceof String) {
- return FileType.valueForString((String) obj);
- }
- return null;
+ return (FileType) getObject(FileType.class, KEY_FILE_TYPE);
}
public void setFileType(FileType fileType) {
- if (fileType != null) {
- parameters.put(KEY_FILE_TYPE, fileType);
- } else {
- parameters.remove(KEY_FILE_TYPE);
- }
+ setParameters(KEY_FILE_TYPE, fileType);
}
/**
@@ -301,7 +267,7 @@ public class OnSystemRequest extends RPCNotification { }
public Long getOffset() {
- final Object o = parameters.get(KEY_OFFSET);
+ final Object o = getParameters(KEY_OFFSET);
if (o == null){
return null;
@@ -316,18 +282,14 @@ public class OnSystemRequest extends RPCNotification { }
public void setOffset(Long offset) {
- if (offset != null) {
- parameters.put(KEY_OFFSET, offset);
- } else {
- parameters.remove(KEY_OFFSET);
- }
+ setParameters(KEY_OFFSET, offset);
}
public Integer getTimeout() {
- Object o = parameters.get(KEY_TIMEOUT);
+ Object o = getParameters(KEY_TIMEOUT);
if (o == null){
- o = parameters.get(KEY_TIMEOUT_V1);
+ o = getParameters(KEY_TIMEOUT_V1);
if (o == null) return null;
}
@@ -338,15 +300,11 @@ public class OnSystemRequest extends RPCNotification { }
public void setTimeout(Integer timeout) {
- if (timeout != null) {
- parameters.put(KEY_TIMEOUT, timeout);
- } else {
- parameters.remove(KEY_TIMEOUT);
- }
+ setParameters(KEY_TIMEOUT, timeout);
}
public Long getLength() {
- final Object o = parameters.get(KEY_LENGTH);
+ final Object o = getParameters(KEY_LENGTH);
if (o == null){
return null;
}
@@ -372,10 +330,6 @@ public class OnSystemRequest extends RPCNotification { }
public void setLength(Long length) {
- if (length != null) {
- parameters.put(KEY_LENGTH, length);
- } else {
- parameters.remove(KEY_LENGTH);
- }
+ setParameters(KEY_LENGTH, length);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnTBTClientState.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnTBTClientState.java index 26965c891..a8f05a291 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnTBTClientState.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnTBTClientState.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.TBTState;
+import java.util.Hashtable;
+
/**
* <p>Notifies the application of the current TBT client status on the module.</p>
*
@@ -58,23 +58,13 @@ public class OnTBTClientState extends RPCNotification { * @return {@linkplain TBTState} the current state of TBT client
*/
public TBTState getState() {
- Object obj = parameters.get(KEY_STATE);
- if (obj instanceof TBTState) {
- return (TBTState)obj;
- } else if(obj instanceof String) {
- return TBTState.valueForString((String) obj);
- }
- return null;
+ return (TBTState) getObject(TBTState.class, KEY_STATE);
}
/**
* <p>Called to set the current state of TBT client</p>
* @param state current state of TBT client
*/
public void setState( TBTState state ) {
- if (state != null) {
- parameters.put(KEY_STATE, state );
- } else {
- parameters.remove(KEY_STATE);
- }
+ setParameters(KEY_STATE, state);
}
} // end-class
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnTouchEvent.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnTouchEvent.java index bfb31d789..36905aad6 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnTouchEvent.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnTouchEvent.java @@ -1,13 +1,12 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.TouchType;
+import java.util.Hashtable;
+import java.util.List;
+
/**
*
* Notifies about touch events on the screen's prescribed area.
@@ -69,48 +68,19 @@ public class OnTouchEvent extends RPCNotification { }
public void setType(TouchType type) {
- if (type != null) {
- parameters.put(KEY_TYPE, type);
- } else {
- parameters.remove(KEY_TYPE);
- }
+ setParameters(KEY_TYPE, type);
}
public TouchType getType() {
- Object obj = parameters.get(KEY_TYPE);
- if (obj instanceof TouchType) {
- return (TouchType) obj;
- } else if (obj instanceof String) {
- return TouchType.valueForString((String) obj);
- }
- return null;
+ return (TouchType) getObject(TouchType.class, KEY_TYPE);
}
public void setEvent(List<TouchEvent> event) {
- if (event != null) {
- parameters.put(KEY_EVENT, event);
- } else {
- parameters.remove(KEY_EVENT);
- }
+ setParameters(KEY_EVENT, event);
}
@SuppressWarnings("unchecked")
public List<TouchEvent> getEvent() {
- if (parameters.get(KEY_EVENT) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_EVENT);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TouchEvent) {
- return (List<TouchEvent>) list;
- } else if (obj instanceof Hashtable) {
- List<TouchEvent> newList = new ArrayList<TouchEvent>();
- for (Object hashObj : list) {
- newList.add(new TouchEvent((Hashtable<String, Object>) hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TouchEvent>) getObject(TouchEvent.class, KEY_EVENT);
}
}
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 1a6baefef..32dba7500 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 @@ -10,6 +10,9 @@ import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus; import com.smartdevicelink.proxy.rpc.enums.WiperStatus;
import com.smartdevicelink.util.DebugTool;
import com.smartdevicelink.util.SdlDataTypeConverter;
+
+import static com.smartdevicelink.proxy.constants.Names.timeout;
+
/**
*Individual requested DID result and data.
*
@@ -277,58 +280,30 @@ public class OnVehicleData extends RPCNotification { super(hash);
}
public void setGps(GPSData gps) {
- if (gps != null) {
- parameters.put(KEY_GPS, gps);
- } else {
- parameters.remove(KEY_GPS);
- }
+ setParameters(KEY_GPS, gps);
}
@SuppressWarnings("unchecked")
public GPSData getGps() {
- Object obj = parameters.get(KEY_GPS);
- if (obj instanceof GPSData) {
- return (GPSData) obj;
- } else if (obj instanceof Hashtable) {
- GPSData theCode = null;
- try {
- theCode = new GPSData((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_GPS, e);
- }
- return theCode;
- }
- return null;
+ return (GPSData) getObject(GPSData.class, KEY_GPS);
}
public void setSpeed(Double speed) {
- if (speed != null) {
- parameters.put(KEY_SPEED, speed);
- } else {
- parameters.remove(KEY_SPEED);
- }
+ setParameters(KEY_SPEED, speed);
}
public Double getSpeed() {
- Object object = parameters.get(KEY_SPEED);
+ Object object = getParameters(KEY_SPEED);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setRpm(Integer rpm) {
- if (rpm != null) {
- parameters.put(KEY_RPM, rpm);
- } else {
- parameters.remove(KEY_RPM);
- }
+ setParameters(KEY_RPM, rpm);
}
public Integer getRpm() {
- return (Integer) parameters.get(KEY_RPM);
+ return getInteger(KEY_RPM);
}
public void setFuelLevel(Double fuelLevel) {
- if (fuelLevel != null) {
- parameters.put(KEY_FUEL_LEVEL, fuelLevel);
- } else {
- parameters.remove(KEY_FUEL_LEVEL);
- }
+ setParameters(KEY_FUEL_LEVEL, fuelLevel);
}
public Double getFuelLevel() {
- Object object = parameters.get(KEY_FUEL_LEVEL);
+ Object object = getParameters(KEY_FUEL_LEVEL);
return SdlDataTypeConverter.objectToDouble(object);
}
@Deprecated
@@ -340,358 +315,144 @@ public class OnVehicleData extends RPCNotification { return getFuelLevelState();
}
public void setFuelLevelState(ComponentVolumeStatus fuelLevelState) {
- if (fuelLevelState != null) {
- parameters.put(KEY_FUEL_LEVEL_STATE, fuelLevelState);
- } else {
- parameters.remove(KEY_FUEL_LEVEL_STATE);
- }
+ setParameters(KEY_FUEL_LEVEL_STATE, fuelLevelState);
}
public ComponentVolumeStatus getFuelLevelState() {
- Object obj = parameters.get(KEY_FUEL_LEVEL_STATE);
- if (obj instanceof ComponentVolumeStatus) {
- return (ComponentVolumeStatus) obj;
- } else if (obj instanceof String) {
- ComponentVolumeStatus theCode = null;
- try {
- theCode = ComponentVolumeStatus.valueForString((String) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_FUEL_LEVEL_STATE, e);
- }
- return theCode;
- }
- return null;
+ return (ComponentVolumeStatus) getObject(ComponentVolumeStatus.class, KEY_FUEL_LEVEL_STATE);
}
public void setInstantFuelConsumption(Double instantFuelConsumption) {
- if (instantFuelConsumption != null) {
- parameters.put(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
- } else {
- parameters.remove(KEY_INSTANT_FUEL_CONSUMPTION);
- }
+ setParameters(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
}
public Double getInstantFuelConsumption() {
- Object object = parameters.get(KEY_INSTANT_FUEL_CONSUMPTION);
+ Object object = getParameters(KEY_INSTANT_FUEL_CONSUMPTION);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setExternalTemperature(Double externalTemperature) {
- if (externalTemperature != null) {
- parameters.put(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
- } else {
- parameters.remove(KEY_EXTERNAL_TEMPERATURE);
- }
+ setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
}
public Double getExternalTemperature() {
- Object object = parameters.get(KEY_EXTERNAL_TEMPERATURE);
+ Object object = getParameters(KEY_EXTERNAL_TEMPERATURE);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setVin(String vin) {
- if (vin != null) {
- parameters.put(KEY_VIN, vin);
- } else {
- parameters.remove(KEY_VIN);
- }
+ setParameters(KEY_VIN, vin);
}
public String getVin() {
- return (String) parameters.get(KEY_VIN);
+ return getString(KEY_VIN);
}
public void setPrndl(PRNDL prndl) {
- if (prndl != null) {
- parameters.put(KEY_PRNDL, prndl);
- } else {
- parameters.remove(KEY_PRNDL);
- }
+ setParameters(KEY_PRNDL, prndl);
}
public PRNDL getPrndl() {
- Object obj = parameters.get(KEY_PRNDL);
- if (obj instanceof PRNDL) {
- return (PRNDL) obj;
- } else if (obj instanceof String) {
- return PRNDL.valueForString((String) obj);
- }
- return null;
+ return (PRNDL) getObject(PRNDL.class, KEY_PRNDL);
}
public void setTirePressure(TireStatus tirePressure) {
- if (tirePressure != null) {
- parameters.put(KEY_TIRE_PRESSURE, tirePressure);
- } else {
- parameters.remove(KEY_TIRE_PRESSURE);
- }
+ setParameters(KEY_TIRE_PRESSURE, tirePressure);
}
@SuppressWarnings("unchecked")
public TireStatus getTirePressure() {
- Object obj = parameters.get(KEY_TIRE_PRESSURE);
- if (obj instanceof TireStatus) {
- return (TireStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new TireStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_TIRE_PRESSURE, e);
- }
- }
- return null;
+ return (TireStatus) getObject(TireStatus.class, KEY_TIRE_PRESSURE);
}
public void setOdometer(Integer odometer) {
- if (odometer != null) {
- parameters.put(KEY_ODOMETER, odometer);
- } else {
- parameters.remove(KEY_ODOMETER);
- }
+ setParameters(KEY_ODOMETER, odometer);
}
public Integer getOdometer() {
- return (Integer) parameters.get(KEY_ODOMETER);
+ return getInteger(KEY_ODOMETER);
}
public void setBeltStatus(BeltStatus beltStatus) {
- if (beltStatus != null) {
- parameters.put(KEY_BELT_STATUS, beltStatus);
- } else {
- parameters.remove(KEY_BELT_STATUS);
- }
+ setParameters(KEY_BELT_STATUS, beltStatus);
}
@SuppressWarnings("unchecked")
public BeltStatus getBeltStatus() {
- Object obj = parameters.get(KEY_BELT_STATUS);
- if (obj instanceof BeltStatus) {
- return (BeltStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new BeltStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_BELT_STATUS, e);
- }
- }
- return null;
+ return (BeltStatus) getObject(BeltStatus.class, KEY_BELT_STATUS);
}
public void setBodyInformation(BodyInformation bodyInformation) {
- if (bodyInformation != null) {
- parameters.put(KEY_BODY_INFORMATION, bodyInformation);
- } else {
- parameters.remove(KEY_BODY_INFORMATION);
- }
+ setParameters(KEY_BODY_INFORMATION, bodyInformation);
}
@SuppressWarnings("unchecked")
public BodyInformation getBodyInformation() {
- Object obj = parameters.get(KEY_BODY_INFORMATION);
- if (obj instanceof BodyInformation) {
- return (BodyInformation) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new BodyInformation((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_BODY_INFORMATION, e);
- }
- }
- return null;
+ return (BodyInformation) getObject(BodyInformation.class, KEY_BODY_INFORMATION);
}
public void setDeviceStatus(DeviceStatus deviceStatus) {
- if (deviceStatus != null) {
- parameters.put(KEY_DEVICE_STATUS, deviceStatus);
- } else {
- parameters.remove(KEY_DEVICE_STATUS);
- }
+ setParameters(KEY_DEVICE_STATUS, deviceStatus);
}
@SuppressWarnings("unchecked")
public DeviceStatus getDeviceStatus() {
- Object obj = parameters.get(KEY_DEVICE_STATUS);
- if (obj instanceof DeviceStatus) {
- return (DeviceStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new DeviceStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_DEVICE_STATUS, e);
- }
- }
- return null;
+ return (DeviceStatus) getObject(DeviceStatus.class, KEY_DEVICE_STATUS);
}
public void setDriverBraking(VehicleDataEventStatus driverBraking) {
- if (driverBraking != null) {
- parameters.put(KEY_DRIVER_BRAKING, driverBraking);
- } else {
- parameters.remove(KEY_DRIVER_BRAKING);
- }
+ setParameters(KEY_DRIVER_BRAKING, driverBraking);
}
public VehicleDataEventStatus getDriverBraking() {
- Object obj = parameters.get(KEY_DRIVER_BRAKING);
- if (obj instanceof VehicleDataEventStatus) {
- return (VehicleDataEventStatus) obj;
- } else if (obj instanceof String) {
- return VehicleDataEventStatus.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataEventStatus) getObject(VehicleDataEventStatus.class, KEY_DRIVER_BRAKING);
}
public void setWiperStatus(WiperStatus wiperStatus) {
- if (wiperStatus != null) {
- parameters.put(KEY_WIPER_STATUS, wiperStatus);
- } else {
- parameters.remove(KEY_WIPER_STATUS);
- }
+ setParameters(KEY_WIPER_STATUS, wiperStatus);
}
public WiperStatus getWiperStatus() {
- Object obj = parameters.get(KEY_WIPER_STATUS);
- if (obj instanceof WiperStatus) {
- return (WiperStatus) obj;
- } else if (obj instanceof String) {
- return WiperStatus.valueForString((String) obj);
- }
- return null;
+ return (WiperStatus) getObject(WiperStatus.class, KEY_WIPER_STATUS);
}
public void setHeadLampStatus(HeadLampStatus headLampStatus) {
- if (headLampStatus != null) {
- parameters.put(KEY_HEAD_LAMP_STATUS, headLampStatus);
- } else {
- parameters.remove(KEY_HEAD_LAMP_STATUS);
- }
+ setParameters(KEY_HEAD_LAMP_STATUS, headLampStatus);
}
@SuppressWarnings("unchecked")
public HeadLampStatus getHeadLampStatus() {
- Object obj = parameters.get(KEY_HEAD_LAMP_STATUS);
- if (obj instanceof HeadLampStatus) {
- return (HeadLampStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new HeadLampStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_HEAD_LAMP_STATUS, e);
- }
- }
- return null;
+ return (HeadLampStatus) getObject(HeadLampStatus.class, KEY_HEAD_LAMP_STATUS);
}
public void setEngineTorque(Double engineTorque) {
- if (engineTorque != null) {
- parameters.put(KEY_ENGINE_TORQUE, engineTorque);
- } else {
- parameters.remove(KEY_ENGINE_TORQUE);
- }
+ setParameters(KEY_ENGINE_TORQUE, engineTorque);
}
public Double getEngineTorque() {
- Object object = parameters.get(KEY_ENGINE_TORQUE);
+ Object object = getParameters(KEY_ENGINE_TORQUE);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setAccPedalPosition(Double accPedalPosition) {
- if (accPedalPosition != null) {
- parameters.put(KEY_ACC_PEDAL_POSITION, accPedalPosition);
- } else {
- parameters.remove(KEY_ACC_PEDAL_POSITION);
- }
+ setParameters(KEY_ACC_PEDAL_POSITION, accPedalPosition);
}
public Double getAccPedalPosition() {
- Object object = parameters.get(KEY_ACC_PEDAL_POSITION);
+ Object object = getParameters(KEY_ACC_PEDAL_POSITION);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setSteeringWheelAngle(Double steeringWheelAngle) {
- if (steeringWheelAngle != null) {
- parameters.put(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
- } else {
- parameters.remove(KEY_STEERING_WHEEL_ANGLE);
- }
+ setParameters(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
}
public Double getSteeringWheelAngle() {
- Object object = parameters.get(KEY_STEERING_WHEEL_ANGLE);
+ Object object = getParameters(KEY_STEERING_WHEEL_ANGLE);
return SdlDataTypeConverter.objectToDouble(object);
}
public void setECallInfo(ECallInfo eCallInfo) {
- if (eCallInfo != null) {
- parameters.put(KEY_E_CALL_INFO, eCallInfo);
- } else {
- parameters.remove(KEY_E_CALL_INFO);
- }
+ setParameters(KEY_E_CALL_INFO, eCallInfo);
}
@SuppressWarnings("unchecked")
public ECallInfo getECallInfo() {
- Object obj = parameters.get(KEY_E_CALL_INFO);
- if (obj instanceof ECallInfo) {
- return (ECallInfo) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new ECallInfo((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_E_CALL_INFO, e);
- }
- }
- return null;
+ return (ECallInfo) getObject(ECallInfo.class, KEY_E_CALL_INFO);
}
public void setAirbagStatus(AirbagStatus airbagStatus) {
- if (airbagStatus != null) {
- parameters.put(KEY_AIRBAG_STATUS, airbagStatus);
- } else {
- parameters.remove(KEY_AIRBAG_STATUS);
- }
+ setParameters(KEY_AIRBAG_STATUS, airbagStatus);
}
@SuppressWarnings("unchecked")
public AirbagStatus getAirbagStatus() {
- Object obj = parameters.get(KEY_AIRBAG_STATUS);
- if (obj instanceof AirbagStatus) {
- return (AirbagStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new AirbagStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_AIRBAG_STATUS, e);
- }
- }
- return null;
+ return (AirbagStatus) getObject(AirbagStatus.class, KEY_AIRBAG_STATUS);
}
public void setEmergencyEvent(EmergencyEvent emergencyEvent) {
- if (emergencyEvent != null) {
- parameters.put(KEY_EMERGENCY_EVENT, emergencyEvent);
- } else {
- parameters.remove(KEY_EMERGENCY_EVENT);
- }
+ setParameters(KEY_EMERGENCY_EVENT, emergencyEvent);
}
@SuppressWarnings("unchecked")
public EmergencyEvent getEmergencyEvent() {
- Object obj = parameters.get(KEY_EMERGENCY_EVENT);
- if (obj instanceof EmergencyEvent) {
- return (EmergencyEvent) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new EmergencyEvent((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_EMERGENCY_EVENT, e);
- }
- }
- return null;
+ return (EmergencyEvent) getObject(EmergencyEvent.class, KEY_EMERGENCY_EVENT);
}
public void setClusterModeStatus(ClusterModeStatus clusterModeStatus) {
- if (clusterModeStatus != null) {
- parameters.put(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
- } else {
- parameters.remove(KEY_CLUSTER_MODE_STATUS);
- }
+ setParameters(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
}
@SuppressWarnings("unchecked")
public ClusterModeStatus getClusterModeStatus() {
- Object obj = parameters.get(KEY_CLUSTER_MODE_STATUS);
- if (obj instanceof ClusterModeStatus) {
- return (ClusterModeStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new ClusterModeStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_CLUSTER_MODE_STATUS, e);
- }
- }
- return null;
+ return (ClusterModeStatus) getObject(ClusterModeStatus.class, KEY_CLUSTER_MODE_STATUS);
}
public void setMyKey(MyKey myKey) {
- if (myKey != null) {
- parameters.put(KEY_MY_KEY, myKey);
- } else {
- parameters.remove(KEY_MY_KEY);
- }
+ setParameters(KEY_MY_KEY, myKey);
}
@SuppressWarnings("unchecked")
public MyKey getMyKey() {
- Object obj = parameters.get(KEY_MY_KEY);
- if (obj instanceof MyKey) {
- return (MyKey) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new MyKey((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_MY_KEY, e);
- }
- }
- return null;
+ return (MyKey) getObject(MyKey.class, KEY_MY_KEY);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnWayPointChange.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnWayPointChange.java index 4e197b3eb..5f102dce0 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnWayPointChange.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnWayPointChange.java @@ -3,7 +3,6 @@ package com.smartdevicelink.proxy.rpc; import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCNotification; -import java.util.ArrayList; import java.util.Hashtable; import java.util.List; @@ -20,29 +19,10 @@ public class OnWayPointChange extends RPCNotification { @SuppressWarnings("unchecked") public List<LocationDetails> getWayPoints() { - if (parameters.get(KEY_WAY_POINTS) instanceof List<?>) { - List<?> list = (List<?>)parameters.get(KEY_WAY_POINTS); - if (list != null && list.size()>0) { - Object obj = list.get(0); - if(obj instanceof LocationDetails){ - return (List<LocationDetails>) list; - } else if(obj instanceof Hashtable) { - List<LocationDetails> newList = new ArrayList<LocationDetails>(); - for (Object hash:list) { - newList.add(new LocationDetails((Hashtable<String, Object>)hash)); - } - return newList; - } - } - } - return null; + return (List<LocationDetails>) getObject(LocationDetails.class, KEY_WAY_POINTS); } public void setWayPoints(List<LocationDetails> wayPoints) { - if (wayPoints != null) { - parameters.put(KEY_WAY_POINTS, wayPoints); - } else { - parameters.remove(KEY_WAY_POINTS); - } + setParameters(KEY_WAY_POINTS, wayPoints); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ParameterPermissions.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ParameterPermissions.java index 996de27ac..244b73b89 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ParameterPermissions.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ParameterPermissions.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
+import com.smartdevicelink.proxy.RPCStruct;
+
import java.util.Hashtable;
import java.util.List;
-import com.smartdevicelink.proxy.RPCStruct;
-
/**
* Defining sets of parameters, which are permitted or prohibited for a given RPC.
* <p><b>Parameter List</b></p>
@@ -65,16 +65,7 @@ public class ParameterPermissions extends RPCStruct { */
@SuppressWarnings("unchecked")
public List<String> getAllowed() {
- if (store.get(KEY_ALLOWED) instanceof List<?>) {
- List<?> list = (List<?>)store.get( KEY_ALLOWED);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_ALLOWED);
}
/**
@@ -82,11 +73,7 @@ public class ParameterPermissions extends RPCStruct { * @param allowed parameter that is permitted for this given RPC
*/
public void setAllowed(List<String> allowed) {
- if (allowed != null) {
- store.put(KEY_ALLOWED, allowed);
- } else {
- store.remove(KEY_ALLOWED);
- }
+ setValue(KEY_ALLOWED, allowed);
}
/**
@@ -95,16 +82,7 @@ public class ParameterPermissions extends RPCStruct { */
@SuppressWarnings("unchecked")
public List<String> getUserDisallowed() {
- if (store.get(KEY_USER_DISALLOWED) instanceof List<?>) {
- List<?> list = (List<?>)store.get( KEY_USER_DISALLOWED);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_USER_DISALLOWED);
}
/**
@@ -112,10 +90,6 @@ public class ParameterPermissions extends RPCStruct { * @param userDisallowed paramter that is prohibited for this given RPC
*/
public void setUserDisallowed(List<String> userDisallowed) {
- if (userDisallowed != null) {
- store.put(KEY_USER_DISALLOWED, userDisallowed);
- } else {
- store.remove(KEY_USER_DISALLOWED);
- }
+ setValue(KEY_USER_DISALLOWED, userDisallowed);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformAudioPassThru.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformAudioPassThru.java index 0e663f63d..5f2d27e1c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformAudioPassThru.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformAudioPassThru.java @@ -1,15 +1,14 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.AudioType;
import com.smartdevicelink.proxy.rpc.enums.BitsPerSample;
import com.smartdevicelink.proxy.rpc.enums.SamplingRate;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* This will open an audio pass thru session. By doing so the app can receive
* audio data through the vehicles microphone
@@ -141,11 +140,7 @@ public class PerformAudioPassThru extends RPCRequest { * </ul>
*/
public void setInitialPrompt(List<TTSChunk> initialPrompt) {
- if (initialPrompt != null) {
- parameters.put(KEY_INITIAL_PROMPT, initialPrompt);
- } else {
- parameters.remove(KEY_INITIAL_PROMPT);
- }
+ setParameters(KEY_INITIAL_PROMPT, initialPrompt);
}
/**
@@ -158,22 +153,7 @@ public class PerformAudioPassThru extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<TTSChunk> getInitialPrompt() {
- if (parameters.get(KEY_INITIAL_PROMPT) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_INITIAL_PROMPT);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TTSChunk) {
- return (List<TTSChunk>) list;
- } else if (obj instanceof Hashtable) {
- List<TTSChunk> newList = new ArrayList<TTSChunk>();
- for (Object hashObj : list) {
- newList.add(new TTSChunk((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TTSChunk>) getObject(TTSChunk.class, KEY_INITIAL_PROMPT);
}
/**
@@ -186,11 +166,7 @@ public class PerformAudioPassThru extends RPCRequest { * <b>Notes: </b>Maxlength=500
*/
public void setAudioPassThruDisplayText1(String audioPassThruDisplayText1) {
- if (audioPassThruDisplayText1 != null) {
- parameters.put(KEY_AUDIO_PASS_THRU_DISPLAY_TEXT_1, audioPassThruDisplayText1);
- } else {
- parameters.remove(KEY_AUDIO_PASS_THRU_DISPLAY_TEXT_1);
- }
+ setParameters(KEY_AUDIO_PASS_THRU_DISPLAY_TEXT_1, audioPassThruDisplayText1);
}
/**
@@ -200,7 +176,7 @@ public class PerformAudioPassThru extends RPCRequest { * displayed during audio capture
*/
public String getAudioPassThruDisplayText1() {
- return (String) parameters.get(KEY_AUDIO_PASS_THRU_DISPLAY_TEXT_1);
+ return getString(KEY_AUDIO_PASS_THRU_DISPLAY_TEXT_1);
}
/**
@@ -213,11 +189,7 @@ public class PerformAudioPassThru extends RPCRequest { * <b>Notes: </b>Maxlength=500
*/
public void setAudioPassThruDisplayText2(String audioPassThruDisplayText2) {
- if (audioPassThruDisplayText2 != null) {
- parameters.put(KEY_AUDIO_PASS_THRU_DISPLAY_TEXT_2, audioPassThruDisplayText2);
- } else {
- parameters.remove(KEY_AUDIO_PASS_THRU_DISPLAY_TEXT_2);
- }
+ setParameters(KEY_AUDIO_PASS_THRU_DISPLAY_TEXT_2, audioPassThruDisplayText2);
}
/**
@@ -227,7 +199,7 @@ public class PerformAudioPassThru extends RPCRequest { * displayed during audio capture
*/
public String getAudioPassThruDisplayText2() {
- return (String) parameters.get(KEY_AUDIO_PASS_THRU_DISPLAY_TEXT_2);
+ return getString(KEY_AUDIO_PASS_THRU_DISPLAY_TEXT_2);
}
/**
@@ -237,11 +209,7 @@ public class PerformAudioPassThru extends RPCRequest { * a SamplingRate value representing a 8 or 16 or 22 or 24 khz
*/
public void setSamplingRate(SamplingRate samplingRate) {
- if (samplingRate != null) {
- parameters.put(KEY_SAMPLING_RATE, samplingRate);
- } else {
- parameters.remove(KEY_SAMPLING_RATE);
- }
+ setParameters(KEY_SAMPLING_RATE, samplingRate);
}
/**
@@ -250,13 +218,7 @@ public class PerformAudioPassThru extends RPCRequest { * @return SamplingRate -a SamplingRate value
*/
public SamplingRate getSamplingRate() {
- Object obj = parameters.get(KEY_SAMPLING_RATE);
- if (obj instanceof SamplingRate) {
- return (SamplingRate) obj;
- } else if (obj instanceof String) {
- return SamplingRate.valueForString((String) obj);
- }
- return null;
+ return (SamplingRate) getObject(SamplingRate.class, KEY_SAMPLING_RATE);
}
/**
@@ -269,11 +231,7 @@ public class PerformAudioPassThru extends RPCRequest { * <b>Notes: </b>Minvalue:1; Maxvalue:1000000
*/
public void setMaxDuration(Integer maxDuration) {
- if (maxDuration != null) {
- parameters.put(KEY_MAX_DURATION, maxDuration);
- } else {
- parameters.remove(KEY_MAX_DURATION);
- }
+ setParameters(KEY_MAX_DURATION, maxDuration);
}
/**
@@ -283,7 +241,7 @@ public class PerformAudioPassThru extends RPCRequest { * recording in milliseconds
*/
public Integer getMaxDuration() {
- return (Integer) parameters.get(KEY_MAX_DURATION);
+ return getInteger(KEY_MAX_DURATION);
}
/**
@@ -293,11 +251,7 @@ public class PerformAudioPassThru extends RPCRequest { * a BitsPerSample value representing 8 bit or 16 bit
*/
public void setBitsPerSample(BitsPerSample audioQuality) {
- if (audioQuality != null) {
- parameters.put(KEY_BITS_PER_SAMPLE, audioQuality);
- } else {
- parameters.remove(KEY_BITS_PER_SAMPLE);
- }
+ setParameters(KEY_BITS_PER_SAMPLE, audioQuality);
}
/**
@@ -306,13 +260,7 @@ public class PerformAudioPassThru extends RPCRequest { * @return BitsPerSample -a BitsPerSample value
*/
public BitsPerSample getBitsPerSample() {
- Object obj = parameters.get(KEY_BITS_PER_SAMPLE);
- if (obj instanceof BitsPerSample) {
- return (BitsPerSample) obj;
- } else if (obj instanceof String) {
- return BitsPerSample.valueForString((String) obj);
- }
- return null;
+ return (BitsPerSample) getObject(BitsPerSample.class, KEY_BITS_PER_SAMPLE);
}
/**
@@ -322,11 +270,7 @@ public class PerformAudioPassThru extends RPCRequest { * an audioType
*/
public void setAudioType(AudioType audioType) {
- if (audioType != null) {
- parameters.put(KEY_AUDIO_TYPE, audioType);
- } else {
- parameters.remove(KEY_AUDIO_TYPE);
- }
+ setParameters(KEY_AUDIO_TYPE, audioType);
}
/**
@@ -335,13 +279,7 @@ public class PerformAudioPassThru extends RPCRequest { * @return AudioType -an AudioType
*/
public AudioType getAudioType() {
- Object obj = parameters.get(KEY_AUDIO_TYPE);
- if (obj instanceof AudioType) {
- return (AudioType) obj;
- } else if (obj instanceof String) {
- return AudioType.valueForString((String) obj);
- }
- return null;
+ return (AudioType) getObject(AudioType.class, KEY_AUDIO_TYPE);
}
/**
@@ -353,7 +291,7 @@ public class PerformAudioPassThru extends RPCRequest { * should be muted during the APT session
*/
public Boolean getMuteAudio() {
- return (Boolean) parameters.get(KEY_MUTE_AUDIO);
+ return getBoolean(KEY_MUTE_AUDIO);
}
/**
@@ -368,10 +306,6 @@ public class PerformAudioPassThru extends RPCRequest { * should be muted during the APT session
*/
public void setMuteAudio(Boolean muteAudio) {
- if (muteAudio != null) {
- parameters.put(KEY_MUTE_AUDIO, muteAudio);
- } else {
- parameters.remove(KEY_MUTE_AUDIO);
- }
+ setParameters(KEY_MUTE_AUDIO, muteAudio);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformInteraction.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformInteraction.java index 9ad8c1034..d8aeee70d 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformInteraction.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformInteraction.java @@ -1,13 +1,13 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.InteractionMode;
import com.smartdevicelink.proxy.rpc.enums.LayoutMode;
+
+import java.util.Hashtable;
+import java.util.List;
+
/**
* Performs an application-initiated interaction in which the user can select a
* {@linkplain Choice} from among the specified Choice Sets. For instance, an
@@ -144,7 +144,7 @@ public class PerformInteraction extends RPCRequest { * @return String -the text displayed when the interaction begins
*/
public String getInitialText() {
- return (String) parameters.get(KEY_INITIAL_TEXT);
+ return getString(KEY_INITIAL_TEXT);
}
/**
* Sets the Text that Displayed when the interaction begins. This text may
@@ -156,11 +156,7 @@ public class PerformInteraction extends RPCRequest { * a String value that Displayed when the interaction begins
*/
public void setInitialText(String initialText) {
- if (initialText != null) {
- parameters.put(KEY_INITIAL_TEXT, initialText);
- } else {
- parameters.remove(KEY_INITIAL_TEXT);
- }
+ setParameters(KEY_INITIAL_TEXT, initialText);
}
/**
* Gets an An array of one or more TTSChunks that, taken together, specify
@@ -171,22 +167,7 @@ public class PerformInteraction extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<TTSChunk> getInitialPrompt() {
- if (parameters.get(KEY_INITIAL_PROMPT) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_INITIAL_PROMPT);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TTSChunk) {
- return (List<TTSChunk>) list;
- } else if (obj instanceof Hashtable) {
- List<TTSChunk> newList = new ArrayList<TTSChunk>();
- for (Object hashObj : list) {
- newList.add(new TTSChunk((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TTSChunk>) getObject(TTSChunk.class, KEY_INITIAL_PROMPT);
}
/**
* Sets An array of one or more TTSChunks that, taken together, specify what
@@ -197,11 +178,7 @@ public class PerformInteraction extends RPCRequest { * user at the start of an interaction
*/
public void setInitialPrompt(List<TTSChunk> initialPrompt) {
- if (initialPrompt != null) {
- parameters.put(KEY_INITIAL_PROMPT, initialPrompt);
- } else {
- parameters.remove(KEY_INITIAL_PROMPT);
- }
+ setParameters(KEY_INITIAL_PROMPT, initialPrompt);
}
/**
* Gets the Indicates mode that indicate how user selects interaction
@@ -212,13 +189,7 @@ public class PerformInteraction extends RPCRequest { * (VR_ONLY, MANUAL_ONLY or BOTH)
*/
public InteractionMode getInteractionMode() {
- Object obj = parameters.get(KEY_INTERACTION_MODE);
- if (obj instanceof InteractionMode) {
- return (InteractionMode) obj;
- } else if (obj instanceof String) {
- return InteractionMode.valueForString((String) obj);
- }
- return null;
+ return (InteractionMode) getObject(InteractionMode.class, KEY_INTERACTION_MODE);
}
/**
* Sets the Indicates mode that indicate how user selects interaction
@@ -230,11 +201,7 @@ public class PerformInteraction extends RPCRequest { * MANUAL_ONLY or BOTH)
*/
public void setInteractionMode(InteractionMode interactionMode) {
- if (interactionMode != null) {
- parameters.put(KEY_INTERACTION_MODE, interactionMode);
- } else {
- parameters.remove(KEY_INTERACTION_MODE);
- }
+ setParameters(KEY_INTERACTION_MODE, interactionMode);
}
/**
* Gets a List<Integer> value representing an Array of one or more Choice
@@ -246,16 +213,7 @@ public class PerformInteraction extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<Integer> getInteractionChoiceSetIDList() {
- if(parameters.get(KEY_INTERACTION_CHOICE_SET_ID_LIST) instanceof List<?>){
- List<?> list = (List<?>)parameters.get(KEY_INTERACTION_CHOICE_SET_ID_LIST);
- if(list != null && list.size()>0){
- Object obj = list.get(0);
- if(obj instanceof Integer){
- return (List<Integer>) list;
- }
- }
- }
- return null;
+ return (List<Integer>) getObject(Integer.class, KEY_INTERACTION_CHOICE_SET_ID_LIST);
}
/**
* Sets a List<Integer> representing an Array of one or more Choice Set
@@ -269,11 +227,7 @@ public class PerformInteraction extends RPCRequest { * <b>Notes: </b>Min Value: 0; Max Vlaue: 2000000000
*/
public void setInteractionChoiceSetIDList(List<Integer> interactionChoiceSetIDList) {
- if (interactionChoiceSetIDList != null) {
- parameters.put(KEY_INTERACTION_CHOICE_SET_ID_LIST, interactionChoiceSetIDList);
- } else {
- parameters.remove(KEY_INTERACTION_CHOICE_SET_ID_LIST);
- }
+ setParameters(KEY_INTERACTION_CHOICE_SET_ID_LIST, interactionChoiceSetIDList);
}
/**
* Gets a List<TTSChunk> which taken together, specify the help phrase to
@@ -285,22 +239,7 @@ public class PerformInteraction extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<TTSChunk> getHelpPrompt() {
- if(parameters.get(KEY_HELP_PROMPT) instanceof List<?>){
- List<?> list = (List<?>)parameters.get(KEY_HELP_PROMPT);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TTSChunk) {
- return (List<TTSChunk>) list;
- } else if (obj instanceof Hashtable) {
- List<TTSChunk> newList = new ArrayList<TTSChunk>();
- for (Object hashObj : list) {
- newList.add(new TTSChunk((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TTSChunk>) getObject(TTSChunk.class, KEY_HELP_PROMPT);
}
/**
* Sets An array of TTSChunks which, taken together, specify the help phrase
@@ -319,11 +258,7 @@ public class PerformInteraction extends RPCRequest { * session
*/
public void setHelpPrompt(List<TTSChunk> helpPrompt) {
- if (helpPrompt != null) {
- parameters.put(KEY_HELP_PROMPT, helpPrompt);
- } else {
- parameters.remove(KEY_HELP_PROMPT);
- }
+ setParameters(KEY_HELP_PROMPT, helpPrompt);
}
/**
* Gets An array of TTSChunks which, taken together, specify the phrase to
@@ -334,22 +269,7 @@ public class PerformInteraction extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<TTSChunk> getTimeoutPrompt() {
- if (parameters.get(KEY_TIMEOUT_PROMPT) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_TIMEOUT_PROMPT);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TTSChunk) {
- return (List<TTSChunk>) list;
- } else if (obj instanceof Hashtable) {
- List<TTSChunk> newList = new ArrayList<TTSChunk>();
- for (Object hashObj : list) {
- newList.add(new TTSChunk((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TTSChunk>) getObject(TTSChunk.class, KEY_TIMEOUT_PROMPT);
}
/**
* Sets An array of TTSChunks which, taken together, specify the phrase to
@@ -363,11 +283,7 @@ public class PerformInteraction extends RPCRequest { * listen times out during the VR session
*/
public void setTimeoutPrompt(List<TTSChunk> timeoutPrompt) {
- if (timeoutPrompt != null) {
- parameters.put(KEY_TIMEOUT_PROMPT, timeoutPrompt);
- } else {
- parameters.remove(KEY_TIMEOUT_PROMPT);
- }
+ setParameters(KEY_TIMEOUT_PROMPT, timeoutPrompt);
}
/**
* Gets a Integer value representing the amount of time, in milliseconds,
@@ -378,7 +294,7 @@ public class PerformInteraction extends RPCRequest { * Menu)
*/
public Integer getTimeout() {
- return (Integer) parameters.get(KEY_TIMEOUT);
+ return getInteger(KEY_TIMEOUT);
}
/**
* Sets the amount of time, in milliseconds, SDL will wait for the user to
@@ -397,11 +313,7 @@ public class PerformInteraction extends RPCRequest { * <b>Notes: </b>Min Value: 5000; Max Value: 100000
*/
public void setTimeout(Integer timeout) {
- if (timeout != null) {
- parameters.put(KEY_TIMEOUT, timeout);
- } else {
- parameters.remove(KEY_TIMEOUT);
- }
+ setParameters(KEY_TIMEOUT, timeout);
}
/**
@@ -414,22 +326,7 @@ public class PerformInteraction extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<VrHelpItem> getVrHelp() {
- if (parameters.get(KEY_VR_HELP) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_VR_HELP);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof VrHelpItem) {
- return (List<VrHelpItem>) list;
- } else if (obj instanceof Hashtable) {
- List<VrHelpItem> newList = new ArrayList<VrHelpItem>();
- for (Object hashObj : list) {
- newList.add(new VrHelpItem((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<VrHelpItem>) getObject(VrHelpItem.class, KEY_VR_HELP);
}
/**
@@ -444,29 +341,14 @@ public class PerformInteraction extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setVrHelp(List<VrHelpItem> vrHelp) {
- if (vrHelp != null) {
- parameters.put(KEY_VR_HELP, vrHelp);
- } else {
- parameters.remove(KEY_VR_HELP);
- }
+ setParameters(KEY_VR_HELP, vrHelp);
}
public LayoutMode getInteractionLayout() {
- Object obj = parameters.get(KEY_INTERACTION_LAYOUT);
- if (obj instanceof LayoutMode) {
- return (LayoutMode) obj;
- } else if (obj instanceof String) {
- return LayoutMode.valueForString((String) obj);
- }
- return null;
+ return (LayoutMode) getObject(LayoutMode.class, KEY_INTERACTION_LAYOUT);
}
public void setInteractionLayout( LayoutMode interactionLayout ) {
- if (interactionLayout != null) {
- parameters.put(KEY_INTERACTION_LAYOUT, interactionLayout );
- }
- else {
- parameters.remove(KEY_INTERACTION_LAYOUT);
- }
+ setParameters(KEY_INTERACTION_LAYOUT, interactionLayout);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformInteractionResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformInteractionResponse.java index c2b56dcd0..3e4b10b1c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformInteractionResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PerformInteractionResponse.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
import com.smartdevicelink.proxy.rpc.enums.TriggerSource;
+import java.util.Hashtable;
+
/**
* PerformInteraction Response is sent, when PerformInteraction has been called
*
@@ -39,31 +39,21 @@ public class PerformInteractionResponse extends RPCResponse { * @return choiceID Min: 0 Max: 65535
*/
public Integer getChoiceID() {
- return (Integer) parameters.get( KEY_CHOICE_ID );
+ return getInteger( KEY_CHOICE_ID );
}
/**
* Sets the application-scoped identifier that uniquely identifies this choice.
* @param choiceID Min: 0 Max: 65535
*/
public void setChoiceID( Integer choiceID ) {
- if (choiceID != null) {
- parameters.put(KEY_CHOICE_ID, choiceID );
- } else {
- parameters.remove(KEY_CHOICE_ID);
- }
+ setParameters(KEY_CHOICE_ID, choiceID);
}
/**
* <p>Returns a <I>TriggerSource</I> object which will be shown in the HMI</p>
* @return TriggerSource a TriggerSource object
*/
public TriggerSource getTriggerSource() {
- Object obj = parameters.get(KEY_TRIGGER_SOURCE);
- if (obj instanceof TriggerSource) {
- return (TriggerSource) obj;
- } else if (obj instanceof String) {
- return TriggerSource.valueForString((String) obj);
- }
- return null;
+ return (TriggerSource) getObject(TriggerSource.class, KEY_TRIGGER_SOURCE);
}
/**
* <p>Sets TriggerSource
@@ -71,21 +61,13 @@ public class PerformInteractionResponse extends RPCResponse { * @param triggerSource a TriggerSource object
*/
public void setTriggerSource( TriggerSource triggerSource ) {
- if (triggerSource != null) {
- parameters.put(KEY_TRIGGER_SOURCE, triggerSource );
- } else {
- parameters.remove(KEY_TRIGGER_SOURCE);
- }
+ setParameters(KEY_TRIGGER_SOURCE, triggerSource);
}
public void setManualTextEntry(String manualTextEntry) {
- if (manualTextEntry != null) {
- parameters.put(KEY_MANUAL_TEXT_ENTRY, manualTextEntry);
- } else {
- parameters.remove(KEY_MANUAL_TEXT_ENTRY);
- }
+ setParameters(KEY_MANUAL_TEXT_ENTRY, manualTextEntry);
}
public String getManualTextEntry() {
- return (String) parameters.get(KEY_MANUAL_TEXT_ENTRY);
+ return getString(KEY_MANUAL_TEXT_ENTRY);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PermissionItem.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PermissionItem.java index 7776c12b7..59b6a347a 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PermissionItem.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PermissionItem.java @@ -4,6 +4,7 @@ package com.smartdevicelink.proxy.rpc; import java.util.Hashtable;
import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.HMILevel;
import com.smartdevicelink.util.DebugTool;
/**
* Change in permissions for a given set of RPCs
@@ -66,55 +67,23 @@ public class PermissionItem extends RPCStruct { super(hash);
}
public String getRpcName() {
- return (String) store.get(KEY_RPC_NAME);
+ return getString(KEY_RPC_NAME);
}
public void setRpcName(String rpcName) {
- if (rpcName != null) {
- store.put(KEY_RPC_NAME, rpcName);
- } else {
- store.remove(KEY_RPC_NAME);
- }
+ setValue(KEY_RPC_NAME, rpcName);
}
@SuppressWarnings("unchecked")
public HMIPermissions getHMIPermissions() {
- Object obj = store.get(KEY_HMI_PERMISSIONS);
- if (obj instanceof HMIPermissions) {
- return (HMIPermissions) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new HMIPermissions((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_HMI_PERMISSIONS, e);
- }
- }
- return null;
+ return (HMIPermissions) getObject(HMIPermissions.class, KEY_HMI_PERMISSIONS);
}
public void setHMIPermissions(HMIPermissions hmiPermissions) {
- if (hmiPermissions != null) {
- store.put(KEY_HMI_PERMISSIONS, hmiPermissions);
- } else {
- store.remove(KEY_HMI_PERMISSIONS);
- }
+ setValue(KEY_HMI_PERMISSIONS, hmiPermissions);
}
@SuppressWarnings("unchecked")
public ParameterPermissions getParameterPermissions() {
- Object obj = store.get(KEY_PARAMETER_PERMISSIONS);
- if (obj instanceof ParameterPermissions) {
- return (ParameterPermissions) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new ParameterPermissions((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_PARAMETER_PERMISSIONS, e);
- }
- }
- return null;
+ return (ParameterPermissions) getObject(ParameterPermissions.class, KEY_PARAMETER_PERMISSIONS);
}
public void setParameterPermissions(ParameterPermissions parameterPermissions) {
- if (parameterPermissions != null) {
- store.put(KEY_PARAMETER_PERMISSIONS, parameterPermissions);
- } else {
- store.remove(KEY_PARAMETER_PERMISSIONS);
- }
+ setValue(KEY_PARAMETER_PERMISSIONS, parameterPermissions);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PhoneCapability.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PhoneCapability.java new file mode 100644 index 000000000..c317e0eb9 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PhoneCapability.java @@ -0,0 +1,27 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.proxy.RPCStruct; + +import java.util.Hashtable; + +/** + * Extended capabilities of the module's phone feature + */ + +public class PhoneCapability extends RPCStruct { + public static final String KEY_DIALNUMBER_ENABLED = "dialNumberEnabled"; + + public PhoneCapability(){} + + public PhoneCapability(Hashtable<String, Object> hash) { + super(hash); + } + + public Boolean getDialNumberEnabled(){ + return getBoolean(KEY_DIALNUMBER_ENABLED); + } + + public void setDialNumberEnabled(Boolean dialNumberEnabled){ + setValue(KEY_DIALNUMBER_ENABLED, dialNumberEnabled); + } +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PresetBankCapabilities.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PresetBankCapabilities.java index df28213c7..211586da9 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PresetBankCapabilities.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PresetBankCapabilities.java @@ -1,9 +1,9 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
+import java.util.Hashtable;
+
/**
* Contains information about on-screen preset capabilities.
* <p><b>Parameter List</b></p>
@@ -45,11 +45,7 @@ public class PresetBankCapabilities extends RPCStruct { * @param onScreenPresetsAvailable if Onscreen custom presets are available.
*/
public void setOnScreenPresetsAvailable(Boolean onScreenPresetsAvailable) {
- if (onScreenPresetsAvailable != null) {
- store.put(KEY_ON_SCREEN_PRESETS_AVAILABLE, onScreenPresetsAvailable);
- } else {
- store.remove(KEY_ON_SCREEN_PRESETS_AVAILABLE);
- }
+ setValue(KEY_ON_SCREEN_PRESETS_AVAILABLE, onScreenPresetsAvailable);
}
/**
@@ -57,6 +53,6 @@ public class PresetBankCapabilities extends RPCStruct { * @return if Onscreen custom presets are available
*/
public Boolean onScreenPresetsAvailable() {
- return (Boolean) store.get(KEY_ON_SCREEN_PRESETS_AVAILABLE);
+ return getBoolean(KEY_ON_SCREEN_PRESETS_AVAILABLE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFile.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFile.java index 065ad14d5..a0be90fbd 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFile.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFile.java @@ -1,13 +1,13 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.FileType;
import com.smartdevicelink.proxy.rpc.listeners.OnPutFileUpdateListener;
import com.smartdevicelink.proxy.rpc.listeners.OnRPCResponseListener;
+import java.util.Hashtable;
+
/**
* Used to push a binary data onto the SDL module from a mobile device, such as
* icons and album art.
@@ -143,14 +143,10 @@ public class PutFile extends RPCRequest { * @param sdlFileName
* a String value representing a file reference name
* <p></p>
- * <b>Notes: </b>Maxlength=500
+ * <b>Notes: </b>Maxlength=500, however the max file name length may vary based on remote filesystem limitations
*/
public void setSdlFileName(String sdlFileName) {
- if (sdlFileName != null) {
- parameters.put(KEY_SDL_FILE_NAME, sdlFileName);
- } else {
- parameters.remove(KEY_SDL_FILE_NAME);
- }
+ setParameters(KEY_SDL_FILE_NAME, sdlFileName);
}
/**
@@ -159,7 +155,7 @@ public class PutFile extends RPCRequest { * @return String - a String value representing a file reference name
*/
public String getSdlFileName() {
- return (String) parameters.get(KEY_SDL_FILE_NAME);
+ return getString(KEY_SDL_FILE_NAME);
}
/**
@@ -169,11 +165,7 @@ public class PutFile extends RPCRequest { * a FileType value representing a selected file type
*/
public void setFileType(FileType fileType) {
- if (fileType != null) {
- parameters.put(KEY_FILE_TYPE, fileType);
- } else {
- parameters.remove(KEY_FILE_TYPE);
- }
+ setParameters(KEY_FILE_TYPE, fileType);
}
/**
@@ -182,13 +174,7 @@ public class PutFile extends RPCRequest { * @return FileType -a FileType value representing a selected file type
*/
public FileType getFileType() {
- Object obj = parameters.get(KEY_FILE_TYPE);
- if (obj instanceof FileType) {
- return (FileType) obj;
- } else if (obj instanceof String) {
- return FileType.valueForString((String) obj);
- }
- return null;
+ return (FileType) getObject(FileType.class, KEY_FILE_TYPE);
}
/**
@@ -205,11 +191,7 @@ public class PutFile extends RPCRequest { * a Boolean value
*/
public void setPersistentFile(Boolean persistentFile) {
- if (persistentFile != null) {
- parameters.put(KEY_PERSISTENT_FILE, persistentFile);
- } else {
- parameters.remove(KEY_PERSISTENT_FILE);
- }
+ setParameters(KEY_PERSISTENT_FILE, persistentFile);
}
/**
@@ -220,7 +202,7 @@ public class PutFile extends RPCRequest { * persist between sessions / ignition cycles
*/
public Boolean getPersistentFile() {
- return (Boolean) parameters.get(KEY_PERSISTENT_FILE);
+ return getBoolean(KEY_PERSISTENT_FILE);
}
public void setFileData(byte[] fileData) {
setBulkData(fileData);
@@ -242,15 +224,11 @@ public class PutFile extends RPCRequest { }
public void setOffset(Long offset) {
- if (offset != null) {
- parameters.put(KEY_OFFSET, offset);
- } else {
- parameters.remove(KEY_OFFSET);
- }
+ setParameters(KEY_OFFSET, offset);
}
public Long getOffset() {
- final Object o = parameters.get(KEY_OFFSET);
+ final Object o = getParameters(KEY_OFFSET);
if (o == null){
return null;
}
@@ -277,15 +255,11 @@ public class PutFile extends RPCRequest { }
public void setLength(Long length) {
- if (length != null) {
- parameters.put(KEY_LENGTH, length);
- } else {
- parameters.remove(KEY_LENGTH);
- }
+ setParameters(KEY_LENGTH, length);
}
public Long getLength() {
- final Object o = parameters.get(KEY_LENGTH);
+ final Object o = getParameters(KEY_LENGTH);
if (o == null){
return null;
}
@@ -299,15 +273,11 @@ public class PutFile extends RPCRequest { }
public void setSystemFile(Boolean systemFile) {
- if (systemFile != null) {
- parameters.put(KEY_SYSTEM_FILE, systemFile);
- } else {
- parameters.remove(KEY_SYSTEM_FILE);
- }
+ setParameters(KEY_SYSTEM_FILE, systemFile);
}
public Boolean getSystemFile() {
- final Object o = parameters.get(KEY_SYSTEM_FILE);
+ final Object o = getParameters(KEY_SYSTEM_FILE);
if (o instanceof Boolean) {
return (Boolean) o;
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFileResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFileResponse.java index b9195981b..87425547a 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFileResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/PutFileResponse.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
+import java.util.Hashtable;
+
/**
* Put File Response is sent, when PutFile has been called
*
@@ -32,13 +32,9 @@ public class PutFileResponse extends RPCResponse { super(hash);
}
public void setSpaceAvailable(Integer spaceAvailable) {
- if (spaceAvailable != null) {
- parameters.put(KEY_SPACE_AVAILABLE, spaceAvailable);
- } else {
- parameters.remove(KEY_SPACE_AVAILABLE);
- }
+ setParameters(KEY_SPACE_AVAILABLE, spaceAvailable);
}
public Integer getSpaceAvailable() {
- return (Integer) parameters.get(KEY_SPACE_AVAILABLE);
+ return getInteger(KEY_SPACE_AVAILABLE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ReadDID.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ReadDID.java index 285416881..ec198e54c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ReadDID.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ReadDID.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* <p>Non periodic vehicle data read request. This is an RPC to get diagnostics
* data from certain vehicle modules. DIDs of a certain module might differ from
@@ -98,11 +98,7 @@ public class ReadDID extends RPCRequest { * <b>Notes: </b>Minvalue:0; Maxvalue:65535
*/
public void setEcuName(Integer ecuName) {
- if (ecuName != null) {
- parameters.put(KEY_ECU_NAME, ecuName);
- } else {
- parameters.remove(KEY_ECU_NAME);
- }
+ setParameters(KEY_ECU_NAME, ecuName);
}
/**
@@ -112,7 +108,7 @@ public class ReadDID extends RPCRequest { * module
*/
public Integer getEcuName() {
- return (Integer) parameters.get(KEY_ECU_NAME);
+ return getInteger(KEY_ECU_NAME);
}
/**
@@ -129,11 +125,7 @@ public class ReadDID extends RPCRequest { * </ul>
*/
public void setDidLocation(List<Integer> didLocation) {
- if (didLocation != null) {
- parameters.put(KEY_DID_LOCATION, didLocation);
- } else {
- parameters.remove(KEY_DID_LOCATION);
- }
+ setParameters(KEY_DID_LOCATION, didLocation);
}
/**
@@ -144,15 +136,6 @@ public class ReadDID extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<Integer> getDidLocation() {
- if (parameters.get(KEY_DID_LOCATION) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_DID_LOCATION);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof Integer) {
- return (List<Integer>) list;
- }
- }
- }
- return null;
+ return (List<Integer>) getObject(Integer.class, KEY_DID_LOCATION);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ReadDIDResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ReadDIDResponse.java index b21395b48..e0633198c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ReadDIDResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ReadDIDResponse.java @@ -1,12 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* Read DID Response is sent, when ReadDID has been called
*
@@ -22,29 +21,10 @@ public class ReadDIDResponse extends RPCResponse { super(hash);
}
public void setDidResult(List<DIDResult> didResult) {
- if (didResult != null) {
- parameters.put(KEY_DID_RESULT, didResult);
- } else {
- parameters.remove(KEY_DID_RESULT);
- }
+ setParameters(KEY_DID_RESULT, didResult);
}
@SuppressWarnings("unchecked")
public List<DIDResult> getDidResult() {
- if (parameters.get(KEY_DID_RESULT) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_DID_RESULT);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof DIDResult) {
- return (List<DIDResult>) list;
- } else if (obj instanceof Hashtable) {
- List<DIDResult> newList = new ArrayList<DIDResult>();
- for (Object hashObj : list) {
- newList.add(new DIDResult((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<DIDResult>) getObject(DIDResult.class, KEY_DID_RESULT);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Rectangle.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Rectangle.java new file mode 100644 index 000000000..e0d50e073 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Rectangle.java @@ -0,0 +1,109 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.proxy.RPCStruct; + +import java.util.Hashtable; +/* + * Copyright (c) 2017 Livio, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Livio Inc. nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Defines Rectangle for each user control object for video streaming application + * @since SmartDeviceLink 4.5.0 + */ + +public class Rectangle extends RPCStruct { + public static final String KEY_X = "x"; + public static final String KEY_Y = "y"; + public static final String KEY_WIDTH = "width"; + public static final String KEY_HEIGHT = "height"; + + public Rectangle() {} + public Rectangle(Hashtable<String, Object> hash) { + super(hash); + } + + /** + * Set the X-coordinate pixel in of the user control that starts in the upper left corner + */ + public void setX(Float x) { + setValue(KEY_X, x); + } + + /** + * @return the X-coordinate pixel of the user control that starts in the upper left corner + */ + public Float getX() { + return getFloat(KEY_X); + } + + /** + * Set the Y-coordinate pixel of the user control that starts in the upper left corner + */ + public void setY(Float y) { + setValue(KEY_Y, y); + } + + /** + * @return the Y-coordinate pixel of the user control that starts in the upper left corner + */ + public Float getY() { + return getFloat(KEY_Y); + } + + /** + * Set the width in pixels of the user control's bounding rectangle in pixels + */ + public void setWidth(Float width) { + setValue(KEY_WIDTH, width); + } + + /** + * @return the width in pixels of the user control's bounding rectangle in pixels + */ + public Float getWidth() { + return getFloat(KEY_WIDTH); + } + + /** + * The height in pixels of the user control's bounding rectangle + */ + public void setHeight(Float height) { + setValue(KEY_HEIGHT, height); + } + + /** + * @return the width in pixels of the user control's bounding rectangle in pixels + */ + public Float getHeight() { + return getFloat(KEY_HEIGHT); + } +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterface.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterface.java index 99bcba01a..0f02ecca0 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterface.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/RegisterAppInterface.java @@ -1,13 +1,12 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
import com.smartdevicelink.proxy.rpc.enums.Language;
+
+import java.util.Hashtable;
+import java.util.List;
/**
* Registers the application's interface with SDL®, declaring properties of
* the registration, including the messaging interface version, the app name,
@@ -252,13 +251,7 @@ public class RegisterAppInterface extends RPCRequest { */
@SuppressWarnings("unchecked")
public SdlMsgVersion getSdlMsgVersion() {
- Object obj = parameters.get(KEY_SDL_MSG_VERSION);
- if (obj instanceof SdlMsgVersion) {
- return (SdlMsgVersion) obj;
- } else if (obj instanceof Hashtable) {
- return new SdlMsgVersion((Hashtable<String, Object>) obj);
- }
- return null;
+ return (SdlMsgVersion) getObject(SdlMsgVersion.class, KEY_SDL_MSG_VERSION);
}
/**
* Sets the version of the SDL® SmartDeviceLink interface
@@ -280,30 +273,16 @@ public class RegisterAppInterface extends RPCRequest { * request) is ignored by SDL®
*/
public void setSdlMsgVersion(SdlMsgVersion sdlMsgVersion) {
- if (sdlMsgVersion != null) {
- parameters.put(KEY_SDL_MSG_VERSION, sdlMsgVersion);
- } else {
- parameters.remove(KEY_SDL_MSG_VERSION);
- }
+ setParameters(KEY_SDL_MSG_VERSION, sdlMsgVersion);
}
@SuppressWarnings("unchecked")
public DeviceInfo getDeviceInfo() {
- Object obj = parameters.get(KEY_DEVICE_INFO);
- if (obj instanceof DeviceInfo) {
- return (DeviceInfo) obj;
- } else if (obj instanceof Hashtable) {
- return new DeviceInfo((Hashtable<String, Object>) obj);
- }
- return null;
+ return (DeviceInfo) getObject(DeviceInfo.class, KEY_DEVICE_INFO);
}
public void setDeviceInfo(DeviceInfo deviceInfo) {
- if (deviceInfo != null) {
- parameters.put(KEY_DEVICE_INFO, deviceInfo);
- } else {
- parameters.remove(KEY_DEVICE_INFO);
- }
+ setParameters(KEY_DEVICE_INFO, deviceInfo);
}
/**
* Gets Mobile Application's Name
@@ -311,7 +290,7 @@ public class RegisterAppInterface extends RPCRequest { * @return String -a String representing the Mobile Application's Name
*/
public String getAppName() {
- return (String) parameters.get(KEY_APP_NAME);
+ return getString(KEY_APP_NAME);
}
/**
* Sets Mobile Application's Name, This name is displayed in the SDL®
@@ -330,11 +309,7 @@ public class RegisterAppInterface extends RPCRequest { * </ul>
*/
public void setAppName(String appName) {
- if (appName != null) {
- parameters.put(KEY_APP_NAME, appName);
- } else {
- parameters.remove(KEY_APP_NAME);
- }
+ setParameters(KEY_APP_NAME, appName);
}
/**
@@ -345,22 +320,7 @@ public class RegisterAppInterface extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<TTSChunk> getTtsName() {
- if (parameters.get(KEY_TTS_NAME) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_TTS_NAME);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TTSChunk) {
- return (List<TTSChunk>) list;
- } else if (obj instanceof Hashtable) {
- List<TTSChunk> newList = new ArrayList<TTSChunk>();
- for (Object hashObj : list) {
- newList.add(new TTSChunk((Hashtable<String, Object>) hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TTSChunk>) getObject(TTSChunk.class, KEY_TTS_NAME);
}
/**
@@ -382,11 +342,7 @@ public class RegisterAppInterface extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setTtsName(List<TTSChunk> ttsName) {
- if (ttsName != null) {
- parameters.put(KEY_TTS_NAME, ttsName);
- } else {
- parameters.remove(KEY_TTS_NAME);
- }
+ setParameters(KEY_TTS_NAME, ttsName);
}
/**
* Gets a String representing an abbreviated version of the mobile
@@ -397,7 +353,7 @@ public class RegisterAppInterface extends RPCRequest { * mobile applincation's name
*/
public String getNgnMediaScreenAppName() {
- return (String) parameters.get(KEY_NGN_MEDIA_SCREEN_APP_NAME);
+ return getString(KEY_NGN_MEDIA_SCREEN_APP_NAME);
}
/**
* Sets a String representing an abbreviated version of the mobile
@@ -416,11 +372,7 @@ public class RegisterAppInterface extends RPCRequest { * </ul>
*/
public void setNgnMediaScreenAppName(String ngnMediaScreenAppName) {
- if (ngnMediaScreenAppName != null) {
- parameters.put(KEY_NGN_MEDIA_SCREEN_APP_NAME, ngnMediaScreenAppName);
- } else {
- parameters.remove(KEY_NGN_MEDIA_SCREEN_APP_NAME);
- }
+ setParameters(KEY_NGN_MEDIA_SCREEN_APP_NAME, ngnMediaScreenAppName);
}
/**
* Gets the List<String> representing the an array of 1-100 elements, each
@@ -432,16 +384,7 @@ public class RegisterAppInterface extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<String> getVrSynonyms() {
- if (parameters.get(KEY_VR_SYNONYMS) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_VR_SYNONYMS);
- if (list != null && list.size()>0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_VR_SYNONYMS);
}
/**
* Sets a vrSynonyms representing the an array of 1-100 elements, each
@@ -461,11 +404,7 @@ public class RegisterAppInterface extends RPCRequest { * </ul>
*/
public void setVrSynonyms(List<String> vrSynonyms) {
- if (vrSynonyms != null) {
- parameters.put(KEY_VR_SYNONYMS, vrSynonyms);
- } else {
- parameters.remove(KEY_VR_SYNONYMS);
- }
+ setParameters(KEY_VR_SYNONYMS, vrSynonyms);
}
/**
* Gets a Boolean representing MediaApplication
@@ -474,7 +413,7 @@ public class RegisterAppInterface extends RPCRequest { * a media application or not
*/
public Boolean getIsMediaApplication() {
- return (Boolean) parameters.get(KEY_IS_MEDIA_APPLICATION);
+ return getBoolean(KEY_IS_MEDIA_APPLICATION);
}
/**
* Sets a Boolean to indicate a mobile application that is a media
@@ -484,11 +423,7 @@ public class RegisterAppInterface extends RPCRequest { * a Boolean value
*/
public void setIsMediaApplication(Boolean isMediaApplication) {
- if (isMediaApplication != null) {
- parameters.put(KEY_IS_MEDIA_APPLICATION, isMediaApplication);
- } else {
- parameters.remove(KEY_IS_MEDIA_APPLICATION);
- }
+ setParameters(KEY_IS_MEDIA_APPLICATION, isMediaApplication);
}
/**
* Gets a Language enumeration indicating what language the application
@@ -497,13 +432,7 @@ public class RegisterAppInterface extends RPCRequest { * @return Enumeration -a language enumeration
*/
public Language getLanguageDesired() {
- Object obj = parameters.get(KEY_LANGUAGE_DESIRED);
- if (obj instanceof Language) {
- return (Language) obj;
- } else if (obj instanceof String) {
- return Language.valueForString((String) obj);
- }
- return null;
+ return (Language) getObject(Language.class, KEY_LANGUAGE_DESIRED);
}
/**
* Sets an enumeration indicating what language the application intends to
@@ -515,11 +444,7 @@ public class RegisterAppInterface extends RPCRequest { *
*/
public void setLanguageDesired(Language languageDesired) {
- if (languageDesired != null) {
- parameters.put(KEY_LANGUAGE_DESIRED, languageDesired);
- } else {
- parameters.remove(KEY_LANGUAGE_DESIRED);
- }
+ setParameters(KEY_LANGUAGE_DESIRED, languageDesired);
}
/**
@@ -532,13 +457,7 @@ public class RegisterAppInterface extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public Language getHmiDisplayLanguageDesired() {
- Object obj = parameters.get(KEY_HMI_DISPLAY_LANGUAGE_DESIRED);
- if (obj instanceof Language) {
- return (Language) obj;
- } else if (obj instanceof String) {
- return Language.valueForString((String) obj);
- }
- return null;
+ return (Language) getObject(Language.class, KEY_HMI_DISPLAY_LANGUAGE_DESIRED);
}
/**
@@ -549,11 +468,7 @@ public class RegisterAppInterface extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setHmiDisplayLanguageDesired(Language hmiDisplayLanguageDesired) {
- if (hmiDisplayLanguageDesired != null) {
- parameters.put(KEY_HMI_DISPLAY_LANGUAGE_DESIRED, hmiDisplayLanguageDesired);
- } else {
- parameters.remove(KEY_HMI_DISPLAY_LANGUAGE_DESIRED);
- }
+ setParameters(KEY_HMI_DISPLAY_LANGUAGE_DESIRED, hmiDisplayLanguageDesired);
}
/**
@@ -568,26 +483,7 @@ public class RegisterAppInterface extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<AppHMIType> getAppHMIType() {
- if (parameters.get(KEY_APP_HMI_TYPE) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_APP_HMI_TYPE);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof AppHMIType) {
- return (List<AppHMIType>) list;
- } else if (obj instanceof String) {
- List<AppHMIType> newList = new ArrayList<AppHMIType>();
- for (Object hashObj : list) {
- String strFormat = (String)hashObj;
- AppHMIType toAdd = AppHMIType.valueForString(strFormat);
- if (toAdd != null) {
- newList.add(toAdd);
- }
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<AppHMIType>) getObject(AppHMIType.class, KEY_APP_HMI_TYPE);
}
/**
@@ -606,23 +502,15 @@ public class RegisterAppInterface extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setAppHMIType(List<AppHMIType> appHMIType) {
- if (appHMIType != null) {
- parameters.put(KEY_APP_HMI_TYPE, appHMIType);
- } else {
- parameters.remove(KEY_APP_HMI_TYPE);
- }
+ setParameters(KEY_APP_HMI_TYPE, appHMIType);
}
public String getHashID() {
- return (String) parameters.get(KEY_HASH_ID);
+ return getString(KEY_HASH_ID);
}
public void setHashID(String hashID) {
- if (hashID != null) {
- parameters.put(KEY_HASH_ID, hashID);
- } else {
- parameters.remove(KEY_HASH_ID);
- }
+ setParameters(KEY_HASH_ID, hashID);
}
/**
@@ -633,7 +521,7 @@ public class RegisterAppInterface extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public String getAppID() {
- return (String) parameters.get(KEY_APP_ID);
+ return getString(KEY_APP_ID);
}
/**
@@ -647,10 +535,6 @@ public class RegisterAppInterface extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setAppID(String appID) {
- if (appID != null) {
- parameters.put(KEY_APP_ID, appID);
- } else {
- parameters.remove(KEY_APP_ID);
- }
+ setParameters(KEY_APP_ID, appID);
}
}
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 f89e1a8b8..df5c3f531 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 @@ -1,9 +1,5 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
import com.smartdevicelink.proxy.Version;
@@ -13,6 +9,9 @@ import com.smartdevicelink.proxy.rpc.enums.PrerecordedSpeech; import com.smartdevicelink.proxy.rpc.enums.SpeechCapabilities;
import com.smartdevicelink.proxy.rpc.enums.VrCapabilities;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* Register AppInterface Response is sent, when RegisterAppInterface has been called
*
@@ -65,13 +64,7 @@ public class RegisterAppInterfaceResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public SdlMsgVersion getSdlMsgVersion() {
- Object obj = parameters.get(KEY_SDL_MSG_VERSION);
- if (obj instanceof SdlMsgVersion) {
- return (SdlMsgVersion)obj;
- } else if (obj instanceof Hashtable) {
- return new SdlMsgVersion((Hashtable<String, Object>)obj);
- }
- return null;
+ return (SdlMsgVersion) getObject(SdlMsgVersion.class, KEY_SDL_MSG_VERSION);
}
/**
@@ -94,11 +87,7 @@ public class RegisterAppInterfaceResponse extends RPCResponse { * request) is ignored by SDL®
*/
public void setSdlMsgVersion(SdlMsgVersion sdlMsgVersion) {
- if (sdlMsgVersion != null) {
- parameters.put(KEY_SDL_MSG_VERSION, sdlMsgVersion);
- } else {
- parameters.remove(KEY_SDL_MSG_VERSION);
- }
+ setParameters(KEY_SDL_MSG_VERSION, sdlMsgVersion);
}
/**
@@ -108,13 +97,7 @@ public class RegisterAppInterfaceResponse extends RPCResponse { * @return Enumeration -a language enumeration
*/
public Language getLanguage() {
- Object obj = parameters.get(KEY_LANGUAGE);
- if (obj instanceof Language) {
- return (Language) obj;
- } else if (obj instanceof String) {
- return Language.valueForString((String) obj);
- }
- return null;
+ return (Language) getObject(Language.class, KEY_LANGUAGE);
}
/**
@@ -127,11 +110,7 @@ public class RegisterAppInterfaceResponse extends RPCResponse { *
*/
public void setLanguage(Language language) {
- if (language != null) {
- parameters.put(KEY_LANGUAGE, language);
- } else {
- parameters.remove(KEY_LANGUAGE);
- }
+ setParameters(KEY_LANGUAGE, language);
}
/**
@@ -144,13 +123,7 @@ public class RegisterAppInterfaceResponse extends RPCResponse { * @since SmartDeviceLink 2.0
*/
public Language getHmiDisplayLanguage() {
- Object obj = parameters.get(KEY_HMI_DISPLAY_LANGUAGE);
- if (obj instanceof Language) {
- return (Language) obj;
- } else if (obj instanceof String) {
- return Language.valueForString((String) obj);
- }
- return null;
+ return (Language) getObject(Language.class, KEY_HMI_DISPLAY_LANGUAGE);
}
/**
@@ -161,11 +134,7 @@ public class RegisterAppInterfaceResponse extends RPCResponse { * @since SmartDeviceLink 2.0
*/
public void setHmiDisplayLanguage(Language hmiDisplayLanguage) {
- if (hmiDisplayLanguage != null) {
- parameters.put(KEY_HMI_DISPLAY_LANGUAGE, hmiDisplayLanguage);
- } else {
- parameters.remove(KEY_HMI_DISPLAY_LANGUAGE);
- }
+ setParameters(KEY_HMI_DISPLAY_LANGUAGE, hmiDisplayLanguage);
}
/**
@@ -175,24 +144,14 @@ public class RegisterAppInterfaceResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public DisplayCapabilities getDisplayCapabilities() {
- Object obj = parameters.get(KEY_DISPLAY_CAPABILITIES);
- if (obj instanceof DisplayCapabilities) {
- return (DisplayCapabilities)obj;
- } else if (obj instanceof Hashtable) {
- return new DisplayCapabilities((Hashtable<String, Object>)obj);
- }
- return null;
+ return (DisplayCapabilities) getObject(DisplayCapabilities.class, KEY_DISPLAY_CAPABILITIES);
}
/**
* Sets Display Capabilities
* @param displayCapabilities
*/
public void setDisplayCapabilities(DisplayCapabilities displayCapabilities) {
- if (displayCapabilities != null) {
- parameters.put(KEY_DISPLAY_CAPABILITIES, displayCapabilities);
- } else {
- parameters.remove(KEY_DISPLAY_CAPABILITIES);
- }
+ setParameters(KEY_DISPLAY_CAPABILITIES, displayCapabilities);
}
/**
@@ -202,33 +161,14 @@ public class RegisterAppInterfaceResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public List<ButtonCapabilities> getButtonCapabilities() {
- if (parameters.get(KEY_BUTTON_CAPABILITIES) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_BUTTON_CAPABILITIES);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof ButtonCapabilities) {
- return (List<ButtonCapabilities>) list;
- } else if (obj instanceof Hashtable) {
- List<ButtonCapabilities> newList = new ArrayList<ButtonCapabilities>();
- for (Object hashObj : list) {
- newList.add(new ButtonCapabilities((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<ButtonCapabilities>) getObject(ButtonCapabilities.class, KEY_BUTTON_CAPABILITIES);
}
/**
* Sets Button Capabilities
* @param buttonCapabilities
*/
public void setButtonCapabilities(List<ButtonCapabilities> buttonCapabilities) {
- if (buttonCapabilities != null) {
- parameters.put(KEY_BUTTON_CAPABILITIES, buttonCapabilities);
- } else {
- parameters.remove(KEY_BUTTON_CAPABILITIES);
- }
+ setParameters(KEY_BUTTON_CAPABILITIES, buttonCapabilities);
}
/**
* Gets getSoftButtonCapabilities set when application interface is registered.
@@ -237,33 +177,14 @@ public class RegisterAppInterfaceResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public List<SoftButtonCapabilities> getSoftButtonCapabilities() {
- if (parameters.get(KEY_SOFT_BUTTON_CAPABILITIES) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_SOFT_BUTTON_CAPABILITIES);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof SoftButtonCapabilities) {
- return (List<SoftButtonCapabilities>) list;
- } else if (obj instanceof Hashtable) {
- List<SoftButtonCapabilities> newList = new ArrayList<SoftButtonCapabilities>();
- for (Object hashObj : list) {
- newList.add(new SoftButtonCapabilities((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<SoftButtonCapabilities>) getObject(SoftButtonCapabilities.class, KEY_SOFT_BUTTON_CAPABILITIES);
}
/**
* Sets softButtonCapabilities
* @param softButtonCapabilities
*/
public void setSoftButtonCapabilities(List<SoftButtonCapabilities> softButtonCapabilities) {
- if (softButtonCapabilities != null) {
- parameters.put(KEY_SOFT_BUTTON_CAPABILITIES, softButtonCapabilities);
- } else {
- parameters.remove(KEY_SOFT_BUTTON_CAPABILITIES);
- }
+ setParameters(KEY_SOFT_BUTTON_CAPABILITIES, softButtonCapabilities);
}
/**
@@ -273,24 +194,14 @@ public class RegisterAppInterfaceResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public PresetBankCapabilities getPresetBankCapabilities() {
- Object obj = parameters.get(KEY_PRESET_BANK_CAPABILITIES);
- if (obj instanceof PresetBankCapabilities) {
- return (PresetBankCapabilities)obj;
- } else if (obj instanceof Hashtable) {
- return new PresetBankCapabilities((Hashtable<String, Object>)obj);
- }
- return null;
+ return (PresetBankCapabilities) getObject(PresetBankCapabilities.class, KEY_PRESET_BANK_CAPABILITIES);
}
/**
* Sets presetBankCapabilities
* @param presetBankCapabilities
*/
public void setPresetBankCapabilities(PresetBankCapabilities presetBankCapabilities) {
- if (presetBankCapabilities != null) {
- parameters.put(KEY_PRESET_BANK_CAPABILITIES, presetBankCapabilities);
- } else {
- parameters.remove(KEY_PRESET_BANK_CAPABILITIES);
- }
+ setParameters(KEY_PRESET_BANK_CAPABILITIES, presetBankCapabilities);
}
/**
@@ -300,37 +211,14 @@ public class RegisterAppInterfaceResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public List<HmiZoneCapabilities> getHmiZoneCapabilities() {
- if (parameters.get(KEY_HMI_ZONE_CAPABILITIES) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_HMI_ZONE_CAPABILITIES);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof HmiZoneCapabilities) {
- return (List<HmiZoneCapabilities>) list;
- } else if (obj instanceof String) {
- List<HmiZoneCapabilities> newList = new ArrayList<HmiZoneCapabilities>();
- for (Object hashObj : list) {
- String strFormat = (String)hashObj;
- HmiZoneCapabilities toAdd = HmiZoneCapabilities.valueForString(strFormat);
- if (toAdd != null) {
- newList.add(toAdd);
- }
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<HmiZoneCapabilities>) getObject(HmiZoneCapabilities.class, KEY_HMI_ZONE_CAPABILITIES);
}
/**
* Sets hmiZoneCapabilities
* @param hmiZoneCapabilities
*/
public void setHmiZoneCapabilities(List<HmiZoneCapabilities> hmiZoneCapabilities) {
- if (hmiZoneCapabilities != null) {
- parameters.put(KEY_HMI_ZONE_CAPABILITIES, hmiZoneCapabilities);
- } else {
- parameters.remove(KEY_HMI_ZONE_CAPABILITIES);
- }
+ setParameters(KEY_HMI_ZONE_CAPABILITIES, hmiZoneCapabilities);
}
/**
@@ -340,70 +228,24 @@ public class RegisterAppInterfaceResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public List<SpeechCapabilities> getSpeechCapabilities() {
- if (parameters.get(KEY_SPEECH_CAPABILITIES) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_SPEECH_CAPABILITIES);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof SpeechCapabilities) {
- return (List<SpeechCapabilities>) list;
- } else if (obj instanceof String) {
- List<SpeechCapabilities> newList = new ArrayList<SpeechCapabilities>();
- for (Object hashObj : list) {
- String strFormat = (String)hashObj;
- SpeechCapabilities toAdd = SpeechCapabilities.valueForString(strFormat);
- if (toAdd != null) {
- newList.add(toAdd);
- }
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<SpeechCapabilities>) getObject(SpeechCapabilities.class, KEY_SPEECH_CAPABILITIES);
}
/**
* Sets speechCapabilities
* @param speechCapabilities
*/
public void setSpeechCapabilities(List<SpeechCapabilities> speechCapabilities) {
- if (speechCapabilities != null) {
- parameters.put(KEY_SPEECH_CAPABILITIES, speechCapabilities);
- } else {
- parameters.remove(KEY_SPEECH_CAPABILITIES);
- }
+ setParameters(KEY_SPEECH_CAPABILITIES, speechCapabilities);
}
@SuppressWarnings("unchecked")
public List<PrerecordedSpeech> getPrerecordedSpeech() {
- if (parameters.get(KEY_PRERECORDED_SPEECH) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_PRERECORDED_SPEECH);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof PrerecordedSpeech) {
- return (List<PrerecordedSpeech>) list;
- } else if (obj instanceof String) {
- List<PrerecordedSpeech> newList = new ArrayList<PrerecordedSpeech>();
- for (Object hashObj : list) {
- String strFormat = (String)hashObj;
- PrerecordedSpeech toAdd = PrerecordedSpeech.valueForString(strFormat);
- if (toAdd != null) {
- newList.add(toAdd);
- }
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<PrerecordedSpeech>) getObject(PrerecordedSpeech.class, KEY_PRERECORDED_SPEECH);
}
public void setPrerecordedSpeech(List<PrerecordedSpeech> prerecordedSpeech) {
- if (prerecordedSpeech != null) {
- parameters.put(KEY_PRERECORDED_SPEECH, prerecordedSpeech);
- } else {
- parameters.remove(KEY_PRERECORDED_SPEECH);
- }
+ setParameters(KEY_PRERECORDED_SPEECH, prerecordedSpeech);
}
@@ -414,37 +256,14 @@ public class RegisterAppInterfaceResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public List<VrCapabilities> getVrCapabilities() {
- if (parameters.get(KEY_VR_CAPABILITIES) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_VR_CAPABILITIES);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof VrCapabilities) {
- return (List<VrCapabilities>) list;
- } else if (obj instanceof String) {
- List<VrCapabilities> newList = new ArrayList<VrCapabilities>();
- for (Object hashObj : list) {
- String strFormat = (String)hashObj;
- VrCapabilities toAdd = VrCapabilities.valueForString(strFormat);
- if (toAdd != null) {
- newList.add(toAdd);
- }
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<VrCapabilities>) getObject(VrCapabilities.class, KEY_VR_CAPABILITIES);
}
/**
* Sets VrCapabilities
* @param vrCapabilities
*/
public void setVrCapabilities(List<VrCapabilities> vrCapabilities) {
- if (vrCapabilities != null) {
- parameters.put(KEY_VR_CAPABILITIES, vrCapabilities);
- } else {
- parameters.remove(KEY_VR_CAPABILITIES);
- }
+ setParameters(KEY_VR_CAPABILITIES, vrCapabilities);
}
/**
@@ -454,24 +273,14 @@ public class RegisterAppInterfaceResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleType getVehicleType() {
- Object obj = parameters.get(KEY_VEHICLE_TYPE);
- if (obj instanceof VehicleType) {
- return (VehicleType)obj;
- } else if (obj instanceof Hashtable) {
- return new VehicleType((Hashtable<String, Object>)obj);
- }
- return null;
+ return (VehicleType) getObject(VehicleType.class, KEY_VEHICLE_TYPE);
}
/**
* Sets vehicleType
* @param vehicleType
*/
public void setVehicleType(VehicleType vehicleType) {
- if (vehicleType != null) {
- parameters.put(KEY_VEHICLE_TYPE, vehicleType);
- } else {
- parameters.remove(KEY_VEHICLE_TYPE);
- }
+ setParameters(KEY_VEHICLE_TYPE, vehicleType);
}
/**
@@ -481,33 +290,14 @@ public class RegisterAppInterfaceResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public List<AudioPassThruCapabilities> getAudioPassThruCapabilities() {
- if (parameters.get(KEY_AUDIO_PASS_THRU_CAPABILITIES) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_AUDIO_PASS_THRU_CAPABILITIES);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof AudioPassThruCapabilities) {
- return (List<AudioPassThruCapabilities>) list;
- } else if (obj instanceof Hashtable) {
- List<AudioPassThruCapabilities> newList = new ArrayList<AudioPassThruCapabilities>();
- for (Object hashObj : list) {
- newList.add(new AudioPassThruCapabilities((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<AudioPassThruCapabilities>) getObject(AudioPassThruCapabilities.class, KEY_AUDIO_PASS_THRU_CAPABILITIES);
}
/**
* Sets AudioPassThruCapabilities
* @param audioPassThruCapabilities
*/
public void setAudioPassThruCapabilities(List<AudioPassThruCapabilities> audioPassThruCapabilities) {
- if (audioPassThruCapabilities != null) {
- parameters.put(KEY_AUDIO_PASS_THRU_CAPABILITIES, audioPassThruCapabilities);
- } else {
- parameters.remove(KEY_AUDIO_PASS_THRU_CAPABILITIES);
- }
+ setParameters(KEY_AUDIO_PASS_THRU_CAPABILITIES, audioPassThruCapabilities);
}
public String getProxyVersionInfo() {
if (Version.VERSION != null)
@@ -516,70 +306,36 @@ public class RegisterAppInterfaceResponse extends RPCResponse { return null;
}
public void setSupportedDiagModes(List<Integer> supportedDiagModes) {
- if (supportedDiagModes != null) {
- parameters.put(KEY_SUPPORTED_DIAG_MODES, supportedDiagModes);
- }
- else
- {
- parameters.remove(KEY_SUPPORTED_DIAG_MODES);
- }
+ setParameters(KEY_SUPPORTED_DIAG_MODES, supportedDiagModes);
}
@SuppressWarnings("unchecked")
public List<Integer> getSupportedDiagModes() {
-
- if (parameters.get(KEY_SUPPORTED_DIAG_MODES) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get( KEY_SUPPORTED_DIAG_MODES);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof Integer) {
- return (List<Integer>) list;
- }
- }
- }
- return null;
+ return (List<Integer>) getObject(Integer.class, KEY_SUPPORTED_DIAG_MODES);
}
public void setHmiCapabilities(HMICapabilities hmiCapabilities) {
- if (hmiCapabilities != null) {
- parameters.put(KEY_HMI_CAPABILITIES, hmiCapabilities);
- }else{
- parameters.remove(KEY_HMI_CAPABILITIES);
- }
+ setParameters(KEY_HMI_CAPABILITIES, hmiCapabilities);
}
@SuppressWarnings("unchecked")
public HMICapabilities getHmiCapabilities() {
- Object obj = parameters.get(KEY_HMI_CAPABILITIES);
- if (obj instanceof HMICapabilities) {
- return (HMICapabilities)obj;
- } else if (obj instanceof Hashtable) {
- return new HMICapabilities((Hashtable<String, Object>)obj);
- }
- return null;
+ return (HMICapabilities) getObject(HMICapabilities.class, KEY_HMI_CAPABILITIES);
}
public void setSdlVersion(String sdlVersion) {
- if (sdlVersion != null) {
- parameters.put(KEY_SDL_VERSION, sdlVersion);
- }else{
- parameters.remove(KEY_SDL_VERSION);
- }
+ setParameters(KEY_SDL_VERSION, sdlVersion);
}
public String getSdlVersion() {
- return (String) parameters.get(KEY_SDL_VERSION);
+ return getString(KEY_SDL_VERSION);
}
public void setSystemSoftwareVersion(String systemSoftwareVersion) {
- if (systemSoftwareVersion != null) {
- parameters.put(KEY_SYSTEM_SOFTWARE_VERSION, systemSoftwareVersion);
- }else{
- parameters.remove(KEY_SYSTEM_SOFTWARE_VERSION);
- }
+ setParameters(KEY_SYSTEM_SOFTWARE_VERSION, systemSoftwareVersion);
}
public String getSystemSoftwareVersion() {
- return (String) parameters.get(KEY_SYSTEM_SOFTWARE_VERSION);
+ return getString(KEY_SYSTEM_SOFTWARE_VERSION);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ResetGlobalProperties.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ResetGlobalProperties.java index 4a9f18d7f..664eb33a9 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ResetGlobalProperties.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ResetGlobalProperties.java @@ -1,12 +1,12 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.GlobalProperty;
+
+import java.util.Hashtable;
+import java.util.List;
+
/**
* Resets the passed global properties to their default values as defined by
* SDL
@@ -85,26 +85,7 @@ public class ResetGlobalProperties extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<GlobalProperty> getProperties() {
- if (parameters.get(KEY_PROPERTIES) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_PROPERTIES);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof GlobalProperty) {
- return (List<GlobalProperty>) list;
- } else if (obj instanceof String) {
- List<GlobalProperty> newList = new ArrayList<GlobalProperty>();
- for (Object hashObj : list) {
- String strFormat = (String)hashObj;
- GlobalProperty toAdd = GlobalProperty.valueForString(strFormat);
- if (toAdd != null) {
- newList.add(toAdd);
- }
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<GlobalProperty>) getObject(GlobalProperty.class, KEY_PROPERTIES);
}
/**
* Sets an array of one or more GlobalProperty enumeration elements
@@ -118,10 +99,6 @@ public class ResetGlobalProperties extends RPCRequest { * <b>Notes: </b>Array must have at least one element
*/
public void setProperties( List<GlobalProperty> properties ) {
- if (properties != null) {
- parameters.put(KEY_PROPERTIES, properties );
- } else {
- parameters.remove(KEY_PROPERTIES);
- }
+ setParameters(KEY_PROPERTIES, properties);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ScreenParams.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ScreenParams.java index fe2c626a0..a821264e6 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ScreenParams.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ScreenParams.java @@ -1,11 +1,8 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
-import com.smartdevicelink.proxy.rpc.ImageResolution;
-import com.smartdevicelink.proxy.rpc.TouchEventCapabilities;
-import com.smartdevicelink.util.DebugTool;
+
+import java.util.Hashtable;
/** The resolution of the prescribed screen area.
*
* <p><b>Parameter List</b></p>
@@ -64,46 +61,16 @@ public class ScreenParams extends RPCStruct { @SuppressWarnings("unchecked")
public ImageResolution getImageResolution() {
- Object obj = store.get(KEY_RESOLUTION);
- if (obj instanceof ImageResolution) {
- return (ImageResolution) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new ImageResolution((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_RESOLUTION, e);
- }
- }
- return null;
+ return (ImageResolution) getObject(ImageResolution.class, KEY_RESOLUTION);
}
public void setImageResolution( ImageResolution resolution ) {
- if (resolution != null) {
- store.put(KEY_RESOLUTION, resolution );
- }
- else {
- store.remove(KEY_RESOLUTION);
- }
+ setValue(KEY_RESOLUTION, resolution);
}
@SuppressWarnings("unchecked")
public TouchEventCapabilities getTouchEventAvailable() {
- Object obj = store.get(KEY_TOUCH_EVENT_AVAILABLE);
- if (obj instanceof TouchEventCapabilities) {
- return (TouchEventCapabilities) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new TouchEventCapabilities((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_TOUCH_EVENT_AVAILABLE, e);
- }
- }
- return null;
+ return (TouchEventCapabilities) getObject(TouchEventCapabilities.class, KEY_TOUCH_EVENT_AVAILABLE);
}
public void setTouchEventAvailable( TouchEventCapabilities touchEventAvailable ) {
- if (touchEventAvailable != null) {
- store.put(KEY_TOUCH_EVENT_AVAILABLE, touchEventAvailable );
- }
- else {
- store.remove(KEY_TOUCH_EVENT_AVAILABLE);
- }
+ setValue(KEY_TOUCH_EVENT_AVAILABLE, touchEventAvailable);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ScrollableMessage.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ScrollableMessage.java index 2fae92ec5..971b68712 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ScrollableMessage.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ScrollableMessage.java @@ -1,12 +1,13 @@ package com.smartdevicelink.proxy.rpc;
+import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.RPCRequest;
+import com.smartdevicelink.proxy.rpc.enums.Language;
+
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
-import com.smartdevicelink.protocol.enums.FunctionID;
-import com.smartdevicelink.proxy.RPCRequest;
-
/**
* Creates a full screen overlay containing a large block of formatted text that
* can be scrolled with up to 8 SoftButtons defined
@@ -101,11 +102,7 @@ public class ScrollableMessage extends RPCRequest { * <b>Notes: </b>Maxlength=500
*/
public void setScrollableMessageBody(String scrollableMessageBody) {
- if (scrollableMessageBody != null) {
- parameters.put(KEY_SCROLLABLE_MESSAGE_BODY, scrollableMessageBody);
- } else {
- parameters.remove(KEY_SCROLLABLE_MESSAGE_BODY);
- }
+ setParameters(KEY_SCROLLABLE_MESSAGE_BODY, scrollableMessageBody);
}
/**
@@ -114,7 +111,7 @@ public class ScrollableMessage extends RPCRequest { * @return String -a String value
*/
public String getScrollableMessageBody() {
- return (String) parameters.get(KEY_SCROLLABLE_MESSAGE_BODY);
+ return getString(KEY_SCROLLABLE_MESSAGE_BODY);
}
/**
@@ -127,11 +124,7 @@ public class ScrollableMessage extends RPCRequest { * <b>Notes</b>:Minval=0; Maxval=65535;Default=30000
*/
public void setTimeout(Integer timeout) {
- if (timeout != null) {
- parameters.put(KEY_TIMEOUT, timeout);
- } else {
- parameters.remove(KEY_TIMEOUT);
- }
+ setParameters(KEY_TIMEOUT, timeout);
}
/**
@@ -140,7 +133,7 @@ public class ScrollableMessage extends RPCRequest { * @return Integer -an Integer value representing an App defined timeout
*/
public Integer getTimeout() {
- return (Integer) parameters.get(KEY_TIMEOUT);
+ return getInteger(KEY_TIMEOUT);
}
/**
@@ -154,11 +147,7 @@ public class ScrollableMessage extends RPCRequest { * <b>Notes: </b>Minsize=0, Maxsize=8
*/
public void setSoftButtons(List<SoftButton> softButtons) {
- if (softButtons != null) {
- parameters.put(KEY_SOFT_BUTTONS, softButtons);
- } else {
- parameters.remove(KEY_SOFT_BUTTONS);
- }
+ setParameters(KEY_SOFT_BUTTONS, softButtons);
}
/**
@@ -167,21 +156,6 @@ public class ScrollableMessage extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<SoftButton> getSoftButtons() {
- if (parameters.get(KEY_SOFT_BUTTONS) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_SOFT_BUTTONS);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof SoftButton) {
- return (List<SoftButton>) list;
- } else if (obj instanceof Hashtable) {
- List<SoftButton> newList = new ArrayList<SoftButton>();
- for (Object hashObj : list) {
- newList.add(new SoftButton((Hashtable<String, Object>) hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<SoftButton>) getObject(SoftButton.class, KEY_SOFT_BUTTONS);
}
}
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 cb5df057d..2221972c1 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 @@ -1,9 +1,9 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
+import java.util.Hashtable;
+
/**
* Specifies the version number of the SDL V4 interface. This is used by both the application and SDL to declare what interface version each is using.
* <p><b> Parameter List</b></p>
@@ -42,6 +42,7 @@ import com.smartdevicelink.proxy.RPCStruct; public class SdlMsgVersion extends RPCStruct {
public static final String KEY_MAJOR_VERSION = "majorVersion";
public static final String KEY_MINOR_VERSION = "minorVersion";
+ public static final String KEY_PATCH_VERSION = "patchVersion";
/**
* Constructs a newly allocated SdlMsgVersion object
@@ -63,7 +64,7 @@ public class SdlMsgVersion extends RPCStruct { * @return the major version
*/
public Integer getMajorVersion() {
- return (Integer) store.get( KEY_MAJOR_VERSION );
+ return getInteger( KEY_MAJOR_VERSION );
}
/**
* Set major version
@@ -74,11 +75,7 @@ public class SdlMsgVersion extends RPCStruct { * @param majorVersion minvalue="1" and maxvalue="10"
*/
public void setMajorVersion( Integer majorVersion ) {
- if (majorVersion != null) {
- store.put(KEY_MAJOR_VERSION, majorVersion );
- } else {
- store.remove(KEY_MAJOR_VERSION);
- }
+ setValue(KEY_MAJOR_VERSION, majorVersion);
}
/**
* Get minor version
@@ -89,7 +86,7 @@ public class SdlMsgVersion extends RPCStruct { * @return the minor version
*/
public Integer getMinorVersion() {
- return (Integer) store.get( KEY_MINOR_VERSION );
+ return getInteger( KEY_MINOR_VERSION );
}
/**
* Set minor version
@@ -100,10 +97,30 @@ public class SdlMsgVersion extends RPCStruct { * @param minorVersion min: 0; max: 1000
*/
public void setMinorVersion( Integer minorVersion ) {
- if (minorVersion != null) {
- store.put(KEY_MINOR_VERSION, minorVersion );
- } else {
- store.remove(KEY_MINOR_VERSION);
- }
+ setValue(KEY_MINOR_VERSION, minorVersion);
+ }
+
+ /**
+ * Get patch version
+ * <ul>
+ * <li>minvalue="0"</li>
+ * <li>maxvalue="1000"</li>
+ * </ul>
+ * @return the patch version
+ */
+ public Integer getPatchVersion() {
+ return getInteger( KEY_PATCH_VERSION );
+ }
+ /**
+ * Set patch version
+ * <ul>
+ * <li>minvalue="0"</li>
+ * <li>maxvalue="1000"</li>
+ * </ul>
+ * @param patchVersion min: 0; max: 1000
+ */
+ public void setPatchVersion( Integer patchVersion ) {
+ setValue(KEY_PATCH_VERSION, patchVersion);
}
+
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SendHapticData.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SendHapticData.java new file mode 100644 index 000000000..a93fd2b98 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SendHapticData.java @@ -0,0 +1,86 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCRequest; + +import java.util.Hashtable; +import java.util.List; + +/* + * Copyright (c) 2017 Livio, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Livio Inc. nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Request to describe UI elements boundaries to a connected modules. + * @since SmartDeviceLink 4.5.0 + */ +public class SendHapticData extends RPCRequest { + + public static final String KEY_HAPTIC_RECT_DATA = "hapticRectData"; + + /** + * Constructs a new SendHapticData object + */ + public SendHapticData(){ + super(FunctionID.SEND_HAPTIC_DATA.toString()); + } + + /** + * <p> + * Send the spatial data gathered from SDLCarWindow or VirtualDisplayEncoder to the HMI. + * This data will be utilized by the HMI to determine how and when haptic events should occur + * </p> + * + * @param hash The Hashtable to use + */ + public SendHapticData(Hashtable<String, Object> hash){ + super(hash); + } + + /** + * Array of spatial data structures that represent the locations of all user controls present on the app's layout. + * This data should be updated if/when the application presents a new screen. + * When a request is sent, if successful, it will replace all spatial data previously sent through RPC. + * If an empty array is sent, the existing spatial data will be cleared + */ + public void setHapticRectData(List<HapticRect> hapticRectData) { + setParameters(KEY_HAPTIC_RECT_DATA, hapticRectData); + } + + @SuppressWarnings("unchecked") + /** + * @return array of spatial data structures that represent the locations of all user controls present on the app's layout. + */ + public List<HapticRect> getHapticRectData() { + return (List<HapticRect>) getObject(HapticRect.class, KEY_HAPTIC_RECT_DATA); + } + +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SendHapticDataResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SendHapticDataResponse.java new file mode 100644 index 000000000..e7c0c7d30 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SendHapticDataResponse.java @@ -0,0 +1,54 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCResponse; + +import java.util.Hashtable; + +/* + * Copyright (c) 2017 Livio, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Livio Inc. nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Response to request that described UI elements boundaries to a connected modules. + * @since SmartDeviceLink 4.5.0 + */ + +public class SendHapticDataResponse extends RPCResponse { + + public SendHapticDataResponse(){ + super(FunctionID.SEND_HAPTIC_DATA.toString()); + } + + public SendHapticDataResponse(Hashtable<String, Object> hash){ + super(hash); + } +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SendLocation.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SendLocation.java index 2a9108e47..c25f57648 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SendLocation.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SendLocation.java @@ -1,14 +1,13 @@ package com.smartdevicelink.proxy.rpc; -import java.util.Hashtable; -import java.util.List; - import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCRequest; import com.smartdevicelink.proxy.rpc.enums.DeliveryMode; -import com.smartdevicelink.util.DebugTool; import com.smartdevicelink.util.SdlDataTypeConverter; +import java.util.Hashtable; +import java.util.List; + /** * Sends a location to the head-unit to display on a map or list. @@ -59,7 +58,7 @@ public class SendLocation extends RPCRequest{ * @return The longitude of the location */ public Double getLongitudeDegrees(){ - Object value = parameters.get(KEY_LON_DEGREES); + Object value = getParameters(KEY_LON_DEGREES); return SdlDataTypeConverter.objectToDouble(value); } @@ -68,12 +67,7 @@ public class SendLocation extends RPCRequest{ * @param longitudeDegrees */ public void setLongitudeDegrees(Double longitudeDegrees){ - if(longitudeDegrees != null){ - parameters.put(KEY_LON_DEGREES, longitudeDegrees); - } - else{ - parameters.remove(KEY_LON_DEGREES); - } + setParameters(KEY_LON_DEGREES, longitudeDegrees); } /** @@ -87,7 +81,7 @@ public class SendLocation extends RPCRequest{ * @return The latitude of the location */ public Double getLatitudeDegrees(){ - Object value = parameters.get(KEY_LAT_DEGREES); + Object value = getParameters(KEY_LAT_DEGREES); return SdlDataTypeConverter.objectToDouble(value); } @@ -96,12 +90,7 @@ public class SendLocation extends RPCRequest{ * @param latitudeDegrees */ public void setLatitudeDegrees(Double latitudeDegrees){ - if(latitudeDegrees != null){ - parameters.put(KEY_LAT_DEGREES, latitudeDegrees); - } - else{ - parameters.remove(KEY_LAT_DEGREES); - } + setParameters(KEY_LAT_DEGREES, latitudeDegrees); } /** @@ -109,7 +98,7 @@ public class SendLocation extends RPCRequest{ * @return The name of the location */ public String getLocationName(){ - return (String) parameters.get(KEY_LOCATION_NAME); + return getString(KEY_LOCATION_NAME); } /** @@ -117,12 +106,7 @@ public class SendLocation extends RPCRequest{ * @param locationName The name of the location */ public void setLocationName(String locationName){ - if(locationName != null){ - parameters.put(KEY_LOCATION_NAME, locationName); - } - else{ - parameters.remove(KEY_LOCATION_NAME); - } + setParameters(KEY_LOCATION_NAME, locationName); } /** @@ -130,7 +114,7 @@ public class SendLocation extends RPCRequest{ * @return The description of the location to send */ public String getLocationDescription(){ - return (String) parameters.get(KEY_LOCATION_DESCRIPTION); + return getString(KEY_LOCATION_DESCRIPTION); } /** @@ -138,12 +122,7 @@ public class SendLocation extends RPCRequest{ * @param locationDescription The description of the location */ public void setLocationDescription(String locationDescription){ - if(locationDescription != null){ - parameters.put(KEY_LOCATION_DESCRIPTION, locationDescription); - } - else{ - parameters.remove(KEY_LOCATION_DESCRIPTION); - } + setParameters(KEY_LOCATION_DESCRIPTION, locationDescription); } /** @@ -151,7 +130,7 @@ public class SendLocation extends RPCRequest{ * @return */ public String getPhoneNumber(){ - return (String) parameters.get(KEY_PHONE_NUMBER); + return getString(KEY_PHONE_NUMBER); } /** @@ -159,12 +138,7 @@ public class SendLocation extends RPCRequest{ * @param phoneNumber The phone number of the location */ public void setPhoneNumber(String phoneNumber){ - if(phoneNumber != null){ - parameters.put(KEY_PHONE_NUMBER, phoneNumber); - } - else{ - parameters.remove(KEY_PHONE_NUMBER); - } + setParameters(KEY_PHONE_NUMBER, phoneNumber); } /** @@ -173,16 +147,7 @@ public class SendLocation extends RPCRequest{ */ @SuppressWarnings("unchecked") public List<String> getAddressLines(){ - if(parameters.get(KEY_ADDRESS_LINES) instanceof List<?>){ - List<?> list = (List<?>) parameters.get(KEY_ADDRESS_LINES); - if(list != null && list.size() > 0){ - Object obj = list.get(0); - if(obj instanceof String){ - return (List<String>) list; - } - } - } - return null; + return (List<String>) getObject(String.class, KEY_ADDRESS_LINES); } /** @@ -190,12 +155,7 @@ public class SendLocation extends RPCRequest{ * @param addressLines The address lines of the location */ public void setAddressLines(List<String> addressLines){ - if(addressLines != null){ - parameters.put(KEY_ADDRESS_LINES, addressLines); - } - else{ - parameters.remove(KEY_ADDRESS_LINES); - } + setParameters(KEY_ADDRESS_LINES, addressLines); } /** @@ -204,13 +164,7 @@ public class SendLocation extends RPCRequest{ */ @SuppressWarnings("unchecked") public Image getLocationImage(){ - Object obj = parameters.get(KEY_LOCATION_IMAGE); - if (obj instanceof Image) { - return (Image) obj; - } else if (obj instanceof Hashtable) { - return new Image((Hashtable<String, Object>) obj); - } - return null; + return (Image) getObject(Image.class, KEY_LOCATION_IMAGE); } /** @@ -218,75 +172,32 @@ public class SendLocation extends RPCRequest{ * @param locationImage The image of the location to send */ public void setLocationImage(Image locationImage){ - if(locationImage != null){ - parameters.put(KEY_LOCATION_IMAGE, locationImage); - } - else{ - parameters.remove(KEY_LOCATION_IMAGE); - } + setParameters(KEY_LOCATION_IMAGE, locationImage); } public DeliveryMode getDeliveryMode() { - Object obj = parameters.get(KEY_DELIVERY_MODE); - if (obj instanceof DeliveryMode) { - return (DeliveryMode) obj; - } else if (obj instanceof String) { - return DeliveryMode.valueForString((String) obj); - } - return null; + return (DeliveryMode) getObject(DeliveryMode.class, KEY_DELIVERY_MODE); } public void setDeliveryMode(DeliveryMode deliveryMode) { - if (deliveryMode != null) { - parameters.put(KEY_DELIVERY_MODE, deliveryMode); - } else { - parameters.remove(KEY_DELIVERY_MODE); - } + setParameters(KEY_DELIVERY_MODE, deliveryMode); } @SuppressWarnings("unchecked") public DateTime getTimeStamp() { - Object obj = parameters.get(KEY_TIME_STAMP); - if (obj instanceof DateTime) { - return (DateTime) obj; - } else if (obj instanceof Hashtable) { - try { - return new DateTime((Hashtable<String, Object>) obj); - } catch (Exception e) { - DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_TIME_STAMP, e); - } - } - return null; + return (DateTime) getObject(DateTime.class, KEY_TIME_STAMP); } public void setTimeStamp(DateTime timeStamp) { - if (timeStamp != null) { - parameters.put(KEY_TIME_STAMP, timeStamp); - } else { - parameters.remove(KEY_TIME_STAMP); - } + setParameters(KEY_TIME_STAMP, timeStamp); } @SuppressWarnings("unchecked") public OasisAddress getAddress() { - Object obj = parameters.get(KEY_ADDRESS); - if (obj instanceof OasisAddress) { - return (OasisAddress) obj; - } else if (obj instanceof Hashtable) { - try { - return new OasisAddress((Hashtable<String, Object>) obj); - } catch (Exception e) { - DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_ADDRESS, e); - } - } - return null; + return (OasisAddress) getObject(OasisAddress.class, KEY_ADDRESS); } public void setAddress(OasisAddress address) { - if (address != null) { - parameters.put(KEY_ADDRESS, address); - } else { - parameters.remove(KEY_ADDRESS); - } + setParameters(KEY_ADDRESS, address); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetAppIcon.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetAppIcon.java index 2cb5aef31..2063303d9 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetAppIcon.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetAppIcon.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+
/**
* Used to set existing local file on SDL as the app's icon. Not supported on
* first generation SDL vehicles
@@ -71,14 +71,10 @@ public class SetAppIcon extends RPCRequest { * @param sdlFileName
* a String value representing a file reference name
* <p></p>
- * <b>Notes: </b>Maxlength=500
+ * <b>Notes: </b>Maxlength=500, however the max file name length may vary based on remote filesystem limitations
*/
public void setSdlFileName(String sdlFileName) {
- if (sdlFileName != null) {
- parameters.put(KEY_SDL_FILE_NAME, sdlFileName);
- } else {
- parameters.remove(KEY_SDL_FILE_NAME);
- }
+ setParameters(KEY_SDL_FILE_NAME, sdlFileName);
}
/**
@@ -86,6 +82,6 @@ public class SetAppIcon extends RPCRequest { * @return String -a String value
*/
public String getSdlFileName() {
- return (String) parameters.get(KEY_SDL_FILE_NAME);
+ return getString(KEY_SDL_FILE_NAME);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayout.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayout.java index 2a3fd9d4b..e137e7f5b 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayout.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayout.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+
/**
* Used to set an alternate display layout. If not sent, default screen for
* given platform will be shown
@@ -73,17 +73,13 @@ public class SetDisplayLayout extends RPCRequest { * a String value representing a diaply layout
*/
public void setDisplayLayout(String displayLayout) {
- if (displayLayout != null) {
- parameters.put(KEY_DISPLAY_LAYOUT, displayLayout);
- } else {
- parameters.remove(KEY_DISPLAY_LAYOUT);
- }
+ setParameters(KEY_DISPLAY_LAYOUT, displayLayout);
}
/**
* Gets a display layout.
*/
public String getDisplayLayout() {
- return (String) parameters.get(KEY_DISPLAY_LAYOUT);
+ return getString(KEY_DISPLAY_LAYOUT);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayoutResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayoutResponse.java index b9947a4ac..36e9fb7db 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayoutResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetDisplayLayoutResponse.java @@ -1,12 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* Set Display Layout Response is sent, when SetDisplayLayout has been called
*
@@ -39,96 +38,38 @@ public class SetDisplayLayoutResponse extends RPCResponse { @SuppressWarnings("unchecked")
public DisplayCapabilities getDisplayCapabilities() {
- Object obj = parameters.get(KEY_DISPLAY_CAPABILITIES);
- if (obj instanceof DisplayCapabilities) {
- return (DisplayCapabilities)obj;
- } else if (obj instanceof Hashtable) {
- return new DisplayCapabilities((Hashtable<String, Object>)obj);
- }
- return null;
+ return (DisplayCapabilities) getObject(DisplayCapabilities.class, KEY_DISPLAY_CAPABILITIES);
}
public void setDisplayCapabilities(DisplayCapabilities displayCapabilities) {
- if (displayCapabilities != null) {
- parameters.put(KEY_DISPLAY_CAPABILITIES, displayCapabilities);
- } else {
- parameters.remove(KEY_DISPLAY_CAPABILITIES);
- }
+ setParameters(KEY_DISPLAY_CAPABILITIES, displayCapabilities);
}
@SuppressWarnings("unchecked")
public List<ButtonCapabilities> getButtonCapabilities() {
- if (parameters.get(KEY_BUTTON_CAPABILITIES) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_BUTTON_CAPABILITIES);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof ButtonCapabilities) {
- return (List<ButtonCapabilities>) list;
- } else if (obj instanceof Hashtable) {
- List<ButtonCapabilities> newList = new ArrayList<ButtonCapabilities>();
- for (Object hashObj : list) {
- newList.add(new ButtonCapabilities((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<ButtonCapabilities>) getObject(ButtonCapabilities.class, KEY_BUTTON_CAPABILITIES);
}
public void setButtonCapabilities(List<ButtonCapabilities> buttonCapabilities) {
- if (buttonCapabilities != null) {
- parameters.put(KEY_BUTTON_CAPABILITIES, buttonCapabilities);
- } else {
- parameters.remove(KEY_BUTTON_CAPABILITIES);
- }
+ setParameters(KEY_BUTTON_CAPABILITIES, buttonCapabilities);
}
@SuppressWarnings("unchecked")
public List<SoftButtonCapabilities> getSoftButtonCapabilities() {
- if (parameters.get(KEY_SOFT_BUTTON_CAPABILITIES) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_SOFT_BUTTON_CAPABILITIES);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof SoftButtonCapabilities) {
- return (List<SoftButtonCapabilities>) list;
- } else if (obj instanceof Hashtable) {
- List<SoftButtonCapabilities> newList = new ArrayList<SoftButtonCapabilities>();
- for (Object hashObj : list) {
- newList.add(new SoftButtonCapabilities((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<SoftButtonCapabilities>) getObject(SoftButtonCapabilities.class, KEY_SOFT_BUTTON_CAPABILITIES);
}
public void setSoftButtonCapabilities(List<SoftButtonCapabilities> softButtonCapabilities) {
- if (softButtonCapabilities != null) {
- parameters.put(KEY_SOFT_BUTTON_CAPABILITIES, softButtonCapabilities);
- } else {
- parameters.remove(KEY_SOFT_BUTTON_CAPABILITIES);
- }
+ setParameters(KEY_SOFT_BUTTON_CAPABILITIES, softButtonCapabilities);
}
@SuppressWarnings("unchecked")
public PresetBankCapabilities getPresetBankCapabilities() {
- Object obj = parameters.get(KEY_PRESET_BANK_CAPABILITIES);
- if (obj instanceof PresetBankCapabilities) {
- return (PresetBankCapabilities)obj;
- } else if (obj instanceof Hashtable) {
- return new PresetBankCapabilities((Hashtable<String, Object>)obj);
- }
- return null;
+ return (PresetBankCapabilities) getObject(PresetBankCapabilities.class, KEY_PRESET_BANK_CAPABILITIES);
}
public void setPresetBankCapabilities(PresetBankCapabilities presetBankCapabilities) {
- if (presetBankCapabilities != null) {
- parameters.put(KEY_PRESET_BANK_CAPABILITIES, presetBankCapabilities);
- } else {
- parameters.remove(KEY_PRESET_BANK_CAPABILITIES);
- }
+ setParameters(KEY_PRESET_BANK_CAPABILITIES, presetBankCapabilities);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetGlobalProperties.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetGlobalProperties.java index 7f597cafe..edd943494 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetGlobalProperties.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetGlobalProperties.java @@ -1,12 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
+import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.RPCRequest;
+
import java.util.Hashtable;
import java.util.List;
-import com.smartdevicelink.protocol.enums.FunctionID;
-import com.smartdevicelink.proxy.RPCRequest;
-import com.smartdevicelink.util.DebugTool;
/**
* Sets value(s) for the specified global property(ies)
*
@@ -141,22 +140,7 @@ public class SetGlobalProperties extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<TTSChunk> getHelpPrompt() {
- if (parameters.get(KEY_HELP_PROMPT) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_HELP_PROMPT);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TTSChunk) {
- return (List<TTSChunk>) list;
- } else if (obj instanceof Hashtable) {
- List<TTSChunk> newList = new ArrayList<TTSChunk>();
- for (Object hashObj : list) {
- newList.add(new TTSChunk((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TTSChunk>) getObject(TTSChunk.class, KEY_HELP_PROMPT);
}
/**
* Sets a List<TTSChunk> for Help Prompt that Array of one or more
@@ -173,11 +157,7 @@ public class SetGlobalProperties extends RPCRequest { * </ul>
*/
public void setHelpPrompt(List<TTSChunk> helpPrompt) {
- if (helpPrompt != null) {
- parameters.put(KEY_HELP_PROMPT, helpPrompt);
- } else {
- parameters.remove(KEY_HELP_PROMPT);
- }
+ setParameters(KEY_HELP_PROMPT, helpPrompt);
}
/**
* Gets a List<TTSChunk> for Timeout Prompt representing Array of one or
@@ -189,22 +169,7 @@ public class SetGlobalProperties extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<TTSChunk> getTimeoutPrompt() {
- if (parameters.get(KEY_TIMEOUT_PROMPT) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_TIMEOUT_PROMPT);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TTSChunk) {
- return (List<TTSChunk>) list;
- } else if (obj instanceof Hashtable) {
- List<TTSChunk> newList = new ArrayList<TTSChunk>();
- for (Object hashObj : list) {
- newList.add(new TTSChunk((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TTSChunk>) getObject(TTSChunk.class, KEY_TIMEOUT_PROMPT);
}
/**
* Sets a List<TTSChunk> for Timeout Prompt representing Array of one or
@@ -213,11 +178,7 @@ public class SetGlobalProperties extends RPCRequest { *
*/
public void setTimeoutPrompt(List<TTSChunk> timeoutPrompt) {
- if (timeoutPrompt != null) {
- parameters.put(KEY_TIMEOUT_PROMPT, timeoutPrompt);
- } else {
- parameters.remove(KEY_TIMEOUT_PROMPT);
- }
+ setParameters(KEY_TIMEOUT_PROMPT, timeoutPrompt);
}
/**
@@ -228,7 +189,7 @@ public class SetGlobalProperties extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public String getVrHelpTitle() {
- return (String) parameters.get(KEY_VR_HELP_TITLE);
+ return getString(KEY_VR_HELP_TITLE);
}
/**
@@ -248,11 +209,7 @@ public class SetGlobalProperties extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setVrHelpTitle(String vrHelpTitle) {
- if (vrHelpTitle != null) {
- parameters.put(KEY_VR_HELP_TITLE, vrHelpTitle);
- } else {
- parameters.remove(KEY_VR_HELP_TITLE);
- }
+ setParameters(KEY_VR_HELP_TITLE, vrHelpTitle);
}
/**
@@ -265,22 +222,7 @@ public class SetGlobalProperties extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<VrHelpItem> getVrHelp() {
- if (parameters.get(KEY_VR_HELP) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_VR_HELP);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof VrHelpItem) {
- return (List<VrHelpItem>) list;
- } else if (obj instanceof Hashtable) {
- List<VrHelpItem> newList = new ArrayList<VrHelpItem>();
- for (Object hashObj : list) {
- newList.add(new VrHelpItem((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<VrHelpItem>) getObject(VrHelpItem.class, KEY_VR_HELP);
}
/**
@@ -305,69 +247,33 @@ public class SetGlobalProperties extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setVrHelp(List<VrHelpItem> vrHelp) {
- if (vrHelp != null) {
- parameters.put(KEY_VR_HELP, vrHelp);
- } else {
- parameters.remove(KEY_VR_HELP);
- }
+ setParameters(KEY_VR_HELP, vrHelp);
}
public String getMenuTitle() {
- return (String) parameters.get(KEY_MENU_TITLE);
+ return getString(KEY_MENU_TITLE);
}
public void setMenuTitle(String menuTitle) {
- if (menuTitle != null) {
- parameters.put(KEY_MENU_TITLE, menuTitle);
- } else {
- parameters.remove(KEY_MENU_TITLE);
- }
+ setParameters(KEY_MENU_TITLE, menuTitle);
}
public void setMenuIcon(Image menuIcon) {
- if (menuIcon != null) {
- parameters.put(KEY_MENU_ICON, menuIcon);
- } else {
- parameters.remove(KEY_MENU_ICON);
- }
+ setParameters(KEY_MENU_ICON, menuIcon);
}
@SuppressWarnings("unchecked")
public Image getMenuIcon() {
- Object obj = parameters.get(KEY_MENU_ICON);
- if (obj instanceof Image) {
- return (Image) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new Image((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_MENU_ICON, e);
- }
- }
- return null;
+ return (Image) getObject(Image.class, KEY_MENU_ICON);
}
public void setKeyboardProperties(KeyboardProperties keyboardProperties) {
- if (keyboardProperties != null) {
- parameters.put(KEY_KEYBOARD_PROPERTIES, keyboardProperties);
- } else {
- parameters.remove(KEY_KEYBOARD_PROPERTIES);
- }
+ setParameters(KEY_KEYBOARD_PROPERTIES, keyboardProperties);
}
@SuppressWarnings("unchecked")
public KeyboardProperties getKeyboardProperties() {
- Object obj = parameters.get(KEY_KEYBOARD_PROPERTIES);
- if (obj instanceof KeyboardProperties) {
- return (KeyboardProperties) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new KeyboardProperties((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_KEYBOARD_PROPERTIES, e);
- }
- }
- return null;
+ return (KeyboardProperties) getObject(KeyboardProperties.class, KEY_KEYBOARD_PROPERTIES);
}
}
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 bd6bac324..bcef52745 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 @@ -1,10 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.UpdateMode;
+
+import java.util.Hashtable;
+
/**
* Sets the media clock/timer value and the update method (e.g.count-up,
* count-down, etc.)
@@ -98,13 +99,7 @@ public class SetMediaClockTimer extends RPCRequest { */
@SuppressWarnings("unchecked")
public StartTime getStartTime() {
- Object obj = parameters.get(KEY_START_TIME);
- if (obj instanceof StartTime) {
- return (StartTime)obj;
- } else if (obj instanceof Hashtable) {
- return new StartTime((Hashtable<String, Object>)obj);
- }
- return null;
+ return (StartTime) getObject(StartTime.class, KEY_START_TIME);
}
/**
* Sets a Start Time with specifying hour, minute, second values
@@ -120,30 +115,16 @@ public class SetMediaClockTimer extends RPCRequest { * </ul>
*/
public void setStartTime( StartTime startTime ) {
- if (startTime != null) {
- parameters.put(KEY_START_TIME, startTime );
- } else {
- parameters.remove(KEY_START_TIME);
- }
+ setParameters(KEY_START_TIME, startTime);
}
@SuppressWarnings("unchecked")
public StartTime getEndTime() {
- Object obj = parameters.get(KEY_END_TIME);
- if (obj instanceof StartTime) {
- return (StartTime)obj;
- } else if (obj instanceof Hashtable) {
- return new StartTime((Hashtable<String, Object>)obj);
- }
- return null;
+ return (StartTime) getObject(StartTime.class, KEY_END_TIME);
}
public void setEndTime( StartTime endTime ) {
- if (endTime != null) {
- parameters.put(KEY_END_TIME, endTime );
- } else {
- parameters.remove(KEY_END_TIME);
- }
+ setParameters(KEY_END_TIME, endTime);
}
/**
@@ -152,13 +133,7 @@ public class SetMediaClockTimer extends RPCRequest { * @return UpdateMode -a Enumeration value (COUNTUP/COUNTDOWN/PAUSE/RESUME)
*/
public UpdateMode getUpdateMode() {
- Object obj = parameters.get(KEY_UPDATE_MODE);
- if (obj instanceof UpdateMode) {
- return (UpdateMode) obj;
- } else if (obj instanceof String) {
- return UpdateMode.valueForString((String) obj);
- }
- return null;
+ return (UpdateMode) getObject(UpdateMode.class, KEY_UPDATE_MODE);
}
/**
* Sets the media clock/timer update mode (COUNTUP/COUNTDOWN/PAUSE/RESUME)
@@ -175,10 +150,6 @@ public class SetMediaClockTimer extends RPCRequest { * </ul>
*/
public void setUpdateMode( UpdateMode updateMode ) {
- if (updateMode != null) {
- parameters.put(KEY_UPDATE_MODE, updateMode );
- } else {
- parameters.remove(KEY_UPDATE_MODE);
- }
+ setParameters(KEY_UPDATE_MODE, updateMode);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Show.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Show.java index 24307c9de..6a42fe1a8 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Show.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Show.java @@ -1,13 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.TextAlignment;
-import com.smartdevicelink.util.DebugTool;
+
+import java.util.Hashtable;
+import java.util.List;
/**
* Updates the application's display text area, regardless of whether or not
@@ -166,6 +164,7 @@ public class Show extends RPCRequest { public static final String KEY_MEDIA_TRACK = "mediaTrack";
public static final String KEY_SECONDARY_GRAPHIC = "secondaryGraphic";
public static final String KEY_SOFT_BUTTONS = "softButtons";
+ public static final String KEY_METADATA_TAGS = "metadataTags";
/**
* Constructs a new Show object
*/
@@ -191,7 +190,7 @@ public class Show extends RPCRequest { * display
*/
public String getMainField1() {
- return (String) parameters.get(KEY_MAIN_FIELD_1);
+ return getString(KEY_MAIN_FIELD_1);
}
/**
* Sets the text displayed in a single-line display, or in the upper display
@@ -211,11 +210,7 @@ public class Show extends RPCRequest { * </ul>
*/
public void setMainField1(String mainField1) {
- if (mainField1 != null) {
- parameters.put(KEY_MAIN_FIELD_1, mainField1);
- } else {
- parameters.remove(KEY_MAIN_FIELD_1);
- }
+ setParameters(KEY_MAIN_FIELD_1, mainField1);
}
/**
* Gets the text displayed on the second display line of a two-line display
@@ -224,7 +219,7 @@ public class Show extends RPCRequest { * second display line of a two-line display
*/
public String getMainField2() {
- return (String) parameters.get(KEY_MAIN_FIELD_2);
+ return getString(KEY_MAIN_FIELD_2);
}
/**
* Sets the text displayed on the second display line of a two-line display
@@ -245,11 +240,7 @@ public class Show extends RPCRequest { * </ul>
*/
public void setMainField2(String mainField2) {
- if (mainField2 != null) {
- parameters.put(KEY_MAIN_FIELD_2, mainField2);
- } else {
- parameters.remove(KEY_MAIN_FIELD_2);
- }
+ setParameters(KEY_MAIN_FIELD_2, mainField2);
}
/**
@@ -260,7 +251,7 @@ public class Show extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public String getMainField3() {
- return (String) parameters.get(KEY_MAIN_FIELD_3);
+ return getString(KEY_MAIN_FIELD_3);
}
/**
@@ -283,11 +274,7 @@ public class Show extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setMainField3(String mainField3) {
- if (mainField3 != null) {
- parameters.put(KEY_MAIN_FIELD_3, mainField3);
- } else {
- parameters.remove(KEY_MAIN_FIELD_3);
- }
+ setParameters(KEY_MAIN_FIELD_3, mainField3);
}
/**
@@ -298,7 +285,7 @@ public class Show extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public String getMainField4() {
- return (String) parameters.get(KEY_MAIN_FIELD_4);
+ return getString(KEY_MAIN_FIELD_4);
}
/**
@@ -321,11 +308,7 @@ public class Show extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setMainField4(String mainField4) {
- if (mainField4 != null) {
- parameters.put(KEY_MAIN_FIELD_4, mainField4);
- } else {
- parameters.remove(KEY_MAIN_FIELD_4);
- }
+ setParameters(KEY_MAIN_FIELD_4, mainField4);
}
/**
* Gets the alignment that Specifies how mainField1 and mainField2 text
@@ -334,13 +317,7 @@ public class Show extends RPCRequest { * @return TextAlignment -an Enumeration value
*/
public TextAlignment getAlignment() {
- Object obj = parameters.get(KEY_ALIGNMENT);
- if (obj instanceof TextAlignment) {
- return (TextAlignment) obj;
- } else if (obj instanceof String) {
- return TextAlignment.valueForString((String) obj);
- }
- return null;
+ return (TextAlignment) getObject(TextAlignment.class, KEY_ALIGNMENT);
}
/**
* Sets the alignment that Specifies how mainField1 and mainField2 text
@@ -359,11 +336,7 @@ public class Show extends RPCRequest { * </ul>
*/
public void setAlignment(TextAlignment alignment) {
- if (alignment != null) {
- parameters.put(KEY_ALIGNMENT, alignment);
- } else {
- parameters.remove(KEY_ALIGNMENT);
- }
+ setParameters(KEY_ALIGNMENT, alignment);
}
/**
* Gets text in the Status Bar
@@ -371,7 +344,7 @@ public class Show extends RPCRequest { * @return String -the value in the Status Bar
*/
public String getStatusBar() {
- return (String) parameters.get(KEY_STATUS_BAR);
+ return getString(KEY_STATUS_BAR);
}
/**
* Sets text in the Status Bar
@@ -392,11 +365,7 @@ public class Show extends RPCRequest { * </ul>
*/
public void setStatusBar(String statusBar) {
- if (statusBar != null) {
- parameters.put(KEY_STATUS_BAR, statusBar);
- } else {
- parameters.remove(KEY_STATUS_BAR);
- }
+ setParameters(KEY_STATUS_BAR, statusBar);
}
/**
* Gets the String value of the MediaClock
@@ -405,7 +374,7 @@ public class Show extends RPCRequest { */
@Deprecated
public String getMediaClock() {
- return (String) parameters.get(KEY_MEDIA_CLOCK);
+ return getString(KEY_MEDIA_CLOCK);
}
/**
* Sets the value for the MediaClock field using a format described in the
@@ -425,11 +394,7 @@ public class Show extends RPCRequest { */
@Deprecated
public void setMediaClock(String mediaClock) {
- if (mediaClock != null) {
- parameters.put(KEY_MEDIA_CLOCK, mediaClock);
- } else {
- parameters.remove(KEY_MEDIA_CLOCK);
- }
+ setParameters(KEY_MEDIA_CLOCK, mediaClock);
}
/**
* Gets the text in the track field
@@ -437,7 +402,7 @@ public class Show extends RPCRequest { * @return String -a String displayed in the track field
*/
public String getMediaTrack() {
- return (String) parameters.get(KEY_MEDIA_TRACK);
+ return getString(KEY_MEDIA_TRACK);
}
/**
* Sets the text in the track field
@@ -453,11 +418,7 @@ public class Show extends RPCRequest { * </ul>
*/
public void setMediaTrack(String mediaTrack) {
- if (mediaTrack != null) {
- parameters.put(KEY_MEDIA_TRACK, mediaTrack);
- } else {
- parameters.remove(KEY_MEDIA_TRACK);
- }
+ setParameters(KEY_MEDIA_TRACK, mediaTrack);
}
/**
@@ -471,11 +432,7 @@ public class Show extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setGraphic(Image graphic) {
- if (graphic != null) {
- parameters.put(KEY_GRAPHIC, graphic);
- } else {
- parameters.remove(KEY_GRAPHIC);
- }
+ setParameters(KEY_GRAPHIC, graphic);
}
/**
@@ -487,42 +444,18 @@ public class Show extends RPCRequest { */
@SuppressWarnings("unchecked")
public Image getGraphic() {
- Object obj = parameters.get(KEY_GRAPHIC);
- if (obj instanceof Image) {
- return (Image) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new Image((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_GRAPHIC, e);
- }
- }
- return null;
+ return (Image) getObject(Image.class, KEY_GRAPHIC);
}
public void setSecondaryGraphic(Image secondaryGraphic) {
- if (secondaryGraphic != null) {
- parameters.put(KEY_SECONDARY_GRAPHIC, secondaryGraphic);
- } else {
- parameters.remove(KEY_SECONDARY_GRAPHIC);
- }
+ setParameters(KEY_SECONDARY_GRAPHIC, secondaryGraphic);
}
@SuppressWarnings("unchecked")
public Image getSecondaryGraphic() {
- Object obj = parameters.get(KEY_SECONDARY_GRAPHIC);
- if (obj instanceof Image) {
- return (Image) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new Image((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_SECONDARY_GRAPHIC, e);
- }
- }
- return null;
+ return (Image) getObject(Image.class, KEY_SECONDARY_GRAPHIC);
}
@@ -535,22 +468,7 @@ public class Show extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<SoftButton> getSoftButtons() {
- if (parameters.get(KEY_SOFT_BUTTONS) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_SOFT_BUTTONS);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof SoftButton) {
- return (List<SoftButton>) list;
- } else if (obj instanceof Hashtable) {
- List<SoftButton> newList = new ArrayList<SoftButton>();
- for (Object hashObj : list) {
- newList.add(new SoftButton((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<SoftButton>) getObject(SoftButton.class, KEY_SOFT_BUTTONS);
}
/**
@@ -571,11 +489,7 @@ public class Show extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setSoftButtons(List<SoftButton> softButtons) {
- if (softButtons != null) {
- parameters.put(KEY_SOFT_BUTTONS, softButtons);
- } else {
- parameters.remove(KEY_SOFT_BUTTONS);
- }
+ setParameters(KEY_SOFT_BUTTONS, softButtons);
}
/**
@@ -587,16 +501,7 @@ public class Show extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<String> getCustomPresets() {
- if (parameters.get(KEY_CUSTOM_PRESETS) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_CUSTOM_PRESETS);
- if (list != null && list.size()>0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_CUSTOM_PRESETS);
}
/**
@@ -614,10 +519,31 @@ public class Show extends RPCRequest { * @since SmartDeviceLink 2.0
*/
public void setCustomPresets(List<String> customPresets) {
- if (customPresets != null) {
- parameters.put(KEY_CUSTOM_PRESETS, customPresets);
- } else {
- parameters.remove(KEY_CUSTOM_PRESETS);
- }
+ setParameters(KEY_CUSTOM_PRESETS, customPresets);
}
+
+ /**
+ * Sets text field metadata defined by the App
+ *
+ * @param metadataTags
+ * A Struct containing metadata pertaining to the main text fields
+ * <p></p>
+ * <ul>
+ * @since SmartDeviceLink 4.5.0
+ */
+ public void setMetadataTags(MetadataTags metadataTags){
+ setParameters(KEY_METADATA_TAGS, metadataTags);
+ }
+
+ /**
+ * Gets text field metadata defined by the App
+ *
+ * @return metadataTags - App defined metadata information. See MetadataTags. Uses mainField1, mainField2, mainField3, mainField4.
+ * If omitted on supported displays, the currently set metadata tags will not change.
+ * If any text field contains no tags or the none tag, the metadata tag for that textfield should be removed.
+ * @since SmartDeviceLink 4.5.0
+ */
+ public MetadataTags getMetadataTags() {
+ return (MetadataTags) getObject(MetadataTags.class, KEY_METADATA_TAGS);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ShowConstantTbt.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ShowConstantTbt.java index f65e1a100..6a44b9068 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ShowConstantTbt.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/ShowConstantTbt.java @@ -1,12 +1,11 @@ package com.smartdevicelink.proxy.rpc; -import java.util.ArrayList; -import java.util.Hashtable; -import java.util.List; - import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCRequest; +import java.util.Hashtable; +import java.util.List; + /** * <p>This RPC is used to update the user with navigation information for the constantly shown screen (base screen), but * also for the alert type screen</p> @@ -61,12 +60,7 @@ public class ShowConstantTbt extends RPCRequest{ * <b>Notes: </b>Maxlength=500 */ public void setNavigationText1(String navigationText1){ - if(navigationText1 != null){ - parameters.put(KEY_TEXT1, navigationText1); - } - else{ - parameters.remove(KEY_TEXT1); - } + setParameters(KEY_TEXT1, navigationText1); } /** @@ -75,7 +69,7 @@ public class ShowConstantTbt extends RPCRequest{ * @return String -a String value representing a text for navigation text field 1 */ public String getNavigationText1(){ - return (String) parameters.get(KEY_TEXT1); + return getString(KEY_TEXT1); } /** @@ -87,12 +81,7 @@ public class ShowConstantTbt extends RPCRequest{ * <b>Notes: </b>Maxlength=500 */ public void setNavigationText2(String navigationText2){ - if(navigationText2 != null){ - parameters.put(KEY_TEXT2, navigationText2); - } - else{ - parameters.remove(KEY_TEXT2); - } + setParameters(KEY_TEXT2, navigationText2); } /** @@ -101,7 +90,7 @@ public class ShowConstantTbt extends RPCRequest{ * @return String -a String value representing a text for navigation text field 2 */ public String getNavigationText2(){ - return (String) parameters.get(KEY_TEXT2); + return getString(KEY_TEXT2); } /** @@ -113,12 +102,7 @@ public class ShowConstantTbt extends RPCRequest{ * <b>Notes: </b>Maxlength=500 */ public void setEta(String eta){ - if(eta != null){ - parameters.put(KEY_ETA, eta); - } - else{ - parameters.remove(KEY_ETA); - } + setParameters(KEY_ETA, eta); } /** @@ -127,7 +111,7 @@ public class ShowConstantTbt extends RPCRequest{ * @return String -a String value representing a text field for estimated time of arrival */ public String getEta(){ - return (String) parameters.get(KEY_ETA); + return getString(KEY_ETA); } /** @@ -139,12 +123,7 @@ public class ShowConstantTbt extends RPCRequest{ * <b>Notes: </b>Maxlength=500 */ public void setTotalDistance(String totalDistance){ - if(totalDistance != null){ - parameters.put(KEY_TOTAL_DISTANCE, totalDistance); - } - else{ - parameters.remove(KEY_TOTAL_DISTANCE); - } + setParameters(KEY_TOTAL_DISTANCE, totalDistance); } /** @@ -153,7 +132,7 @@ public class ShowConstantTbt extends RPCRequest{ * @return String -a String value representing a text field for total distance */ public String getTotalDistance(){ - return (String) parameters.get(KEY_TOTAL_DISTANCE); + return getString(KEY_TOTAL_DISTANCE); } /** @@ -163,12 +142,7 @@ public class ShowConstantTbt extends RPCRequest{ * an Image value */ public void setTurnIcon(Image turnIcon){ - if(turnIcon != null){ - parameters.put(KEY_MANEUVER_IMAGE, turnIcon); - } - else{ - parameters.remove(KEY_MANEUVER_IMAGE); - } + setParameters(KEY_MANEUVER_IMAGE, turnIcon); } /** @@ -178,13 +152,7 @@ public class ShowConstantTbt extends RPCRequest{ */ @SuppressWarnings("unchecked") public Image getTurnIcon(){ - Object obj = parameters.get(KEY_MANEUVER_IMAGE); - if (obj instanceof Image) { - return (Image) obj; - } else if (obj instanceof Hashtable) { - return new Image((Hashtable<String, Object>) obj); - } - return null; + return (Image) getObject(Image.class, KEY_MANEUVER_IMAGE); } /** @@ -194,12 +162,7 @@ public class ShowConstantTbt extends RPCRequest{ * an Image value */ public void setNextTurnIcon(Image nextTurnIcon){ - if(nextTurnIcon != null){ - parameters.put(KEY_NEXT_MANEUVER_IMAGE, nextTurnIcon); - } - else{ - parameters.remove(KEY_NEXT_MANEUVER_IMAGE); - } + setParameters(KEY_NEXT_MANEUVER_IMAGE, nextTurnIcon); } /** @@ -209,13 +172,7 @@ public class ShowConstantTbt extends RPCRequest{ */ @SuppressWarnings("unchecked") public Image getNextTurnIcon(){ - Object obj = parameters.get(KEY_NEXT_MANEUVER_IMAGE); - if (obj instanceof Image) { - return (Image) obj; - } else if (obj instanceof Hashtable) { - return new Image((Hashtable<String, Object>) obj); - } - return null; + return (Image) getObject(Image.class, KEY_NEXT_MANEUVER_IMAGE); } /** @@ -227,12 +184,7 @@ public class ShowConstantTbt extends RPCRequest{ * <b>Notes: </b>Minvalue=0; Maxvalue=1000000000 */ public void setDistanceToManeuver(Double distanceToManeuver){ - if(distanceToManeuver != null){ - parameters.put(KEY_MANEUVER_DISTANCE, distanceToManeuver); - } - else{ - parameters.remove(KEY_MANEUVER_DISTANCE); - } + setParameters(KEY_MANEUVER_DISTANCE, distanceToManeuver); } /** @@ -241,7 +193,7 @@ public class ShowConstantTbt extends RPCRequest{ * @return Double -a Double value representing a Fraction of distance till next maneuver */ public Double getDistanceToManeuver(){ - return (Double) parameters.get(KEY_MANEUVER_DISTANCE); + return getDouble(KEY_MANEUVER_DISTANCE); } /** @@ -253,12 +205,7 @@ public class ShowConstantTbt extends RPCRequest{ * <b>Notes: </b>Minvalue=0; Maxvalue=1000000000 */ public void setDistanceToManeuverScale(Double distanceToManeuverScale){ - if(distanceToManeuverScale != null){ - parameters.put(KEY_MANEUVER_DISTANCE_SCALE, distanceToManeuverScale); - } - else{ - parameters.remove(KEY_MANEUVER_DISTANCE_SCALE); - } + setParameters(KEY_MANEUVER_DISTANCE_SCALE, distanceToManeuverScale); } /** @@ -267,7 +214,7 @@ public class ShowConstantTbt extends RPCRequest{ * @return Double -a Double value representing a Distance till next maneuver (starting from) from previous maneuver */ public Double getDistanceToManeuverScale(){ - return (Double) parameters.get(KEY_MANEUVER_DISTANCE_SCALE); + return getDouble(KEY_MANEUVER_DISTANCE_SCALE); } /** @@ -280,12 +227,7 @@ public class ShowConstantTbt extends RPCRequest{ * a Boolean value */ public void setManeuverComplete(Boolean maneuverComplete){ - if(maneuverComplete != null){ - parameters.put(KEY_MANEUVER_COMPLETE, maneuverComplete); - } - else{ - parameters.remove(KEY_MANEUVER_COMPLETE); - } + setParameters(KEY_MANEUVER_COMPLETE, maneuverComplete); } /** @@ -294,7 +236,7 @@ public class ShowConstantTbt extends RPCRequest{ * @return Boolean -a Boolean value */ public Boolean getManeuverComplete(){ - return (Boolean) parameters.get(KEY_MANEUVER_COMPLETE); + return getBoolean(KEY_MANEUVER_COMPLETE); } /** @@ -307,12 +249,7 @@ public class ShowConstantTbt extends RPCRequest{ * a List<SoftButton> value */ public void setSoftButtons(List<SoftButton> softButtons){ - if(softButtons != null){ - parameters.put(KEY_SOFT_BUTTONS, softButtons); - } - else{ - parameters.remove(KEY_SOFT_BUTTONS); - } + setParameters(KEY_SOFT_BUTTONS, softButtons); } /** @@ -323,34 +260,14 @@ public class ShowConstantTbt extends RPCRequest{ */ @SuppressWarnings("unchecked") public List<SoftButton> getSoftButtons(){ - if (parameters.get(KEY_SOFT_BUTTONS) instanceof List<?>) { - List<?> list = (List<?>)parameters.get(KEY_SOFT_BUTTONS); - if (list != null && list.size() > 0) { - Object obj = list.get(0); - if (obj instanceof SoftButton) { - return (List<SoftButton>) list; - } else if (obj instanceof Hashtable) { - List<SoftButton> newList = new ArrayList<SoftButton>(); - for (Object hashObj : list) { - newList.add(new SoftButton((Hashtable<String, Object>)hashObj)); - } - return newList; - } - } - } - return null; + return (List<SoftButton>) getObject(SoftButton.class, KEY_SOFT_BUTTONS); } public void setTimeToDestination(String timeToDestination){ - if(timeToDestination != null){ - parameters.put(KEY_TIME_TO_DESTINATION, timeToDestination); - } - else{ - parameters.remove(KEY_TIME_TO_DESTINATION); - } + setParameters(KEY_TIME_TO_DESTINATION, timeToDestination); } public String getTimeToDestination(){ - return (String) parameters.get(KEY_TIME_TO_DESTINATION); + return getString(KEY_TIME_TO_DESTINATION); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SingleTireStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SingleTireStatus.java index ab30ff365..4b8722ea5 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SingleTireStatus.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SingleTireStatus.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.ComponentVolumeStatus;
+import java.util.Hashtable;
+
/**
* Tire pressure status of a single tire.
* <p><b>Parameter List</b></p>
@@ -47,11 +47,7 @@ public class SingleTireStatus extends RPCStruct { * @param status the volume status of a single tire
*/
public void setStatus(ComponentVolumeStatus status) {
- if (status != null) {
- store.put(KEY_STATUS, status);
- } else {
- store.remove(KEY_STATUS);
- }
+ setValue(KEY_STATUS, status);
}
/**
@@ -59,12 +55,6 @@ public class SingleTireStatus extends RPCStruct { * @return the volume status of a single tire
*/
public ComponentVolumeStatus getStatus() {
- Object obj = store.get(KEY_STATUS);
- if (obj instanceof ComponentVolumeStatus) {
- return (ComponentVolumeStatus) obj;
- } else if (obj instanceof String) {
- return ComponentVolumeStatus.valueForString((String) obj);
- }
- return null;
+ return (ComponentVolumeStatus) getObject(ComponentVolumeStatus.class, KEY_STATUS);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Slider.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Slider.java index 16da80dcb..31fb55b1e 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Slider.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Slider.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* <p>Creates a full screen or pop-up overlay (depending on platform) with a single
* user controlled slider.</p>
@@ -119,11 +119,7 @@ public class Slider extends RPCRequest { * <b>Notes: </b>Minvalue=2; Maxvalue=26
*/
public void setNumTicks(Integer numTicks) {
- if (numTicks != null) {
- parameters.put(KEY_NUM_TICKS, numTicks);
- } else {
- parameters.remove(KEY_NUM_TICKS);
- }
+ setParameters(KEY_NUM_TICKS, numTicks);
}
/**
@@ -133,7 +129,7 @@ public class Slider extends RPCRequest { * items on a horizontal axis
*/
public Integer getNumTicks() {
- return (Integer) parameters.get(KEY_NUM_TICKS);
+ return getInteger(KEY_NUM_TICKS);
}
/**
@@ -146,11 +142,7 @@ public class Slider extends RPCRequest { * <b>Notes: </b>Minvalue=1; Maxvalue=26
*/
public void setPosition(Integer position) {
- if (position != null) {
- parameters.put(KEY_POSITION, position);
- } else {
- parameters.remove(KEY_POSITION);
- }
+ setParameters(KEY_POSITION, position);
}
/**
@@ -160,7 +152,7 @@ public class Slider extends RPCRequest { * slider control
*/
public Integer getPosition() {
- return (Integer) parameters.get(KEY_POSITION);
+ return getInteger(KEY_POSITION);
}
/**
@@ -172,11 +164,7 @@ public class Slider extends RPCRequest { * <b>Notes: </b>Maxlength=500
*/
public void setSliderHeader(String sliderHeader) {
- if (sliderHeader != null) {
- parameters.put(KEY_SLIDER_HEADER, sliderHeader);
- } else {
- parameters.remove(KEY_SLIDER_HEADER);
- }
+ setParameters(KEY_SLIDER_HEADER, sliderHeader);
}
/**
@@ -185,7 +173,7 @@ public class Slider extends RPCRequest { * @return String -a String value representing a text header to display
*/
public String getSliderHeader() {
- return (String) parameters.get(KEY_SLIDER_HEADER);
+ return getString(KEY_SLIDER_HEADER);
}
/**
@@ -197,11 +185,7 @@ public class Slider extends RPCRequest { * <b>Notes: </b>Maxlength=500; Minvalue=1; Maxvalue=26
*/
public void setSliderFooter(List<String> sliderFooter) {
- if (sliderFooter != null) {
- parameters.put(KEY_SLIDER_FOOTER, sliderFooter);
- } else {
- parameters.remove(KEY_SLIDER_FOOTER);
- }
+ setParameters(KEY_SLIDER_FOOTER, sliderFooter);
}
/**
@@ -211,16 +195,7 @@ public class Slider extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<String> getSliderFooter() {
- if (parameters.get(KEY_SLIDER_FOOTER) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_SLIDER_FOOTER);
- if (list != null && list.size()>0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_SLIDER_FOOTER);
}
/**
@@ -232,11 +207,7 @@ public class Slider extends RPCRequest { * <b>Notes: </b>Minvalue=0; Maxvalue=65535; Defvalue=10000
*/
public void setTimeout(Integer timeout) {
- if (timeout != null) {
- parameters.put(KEY_TIMEOUT, timeout);
- } else {
- parameters.remove(KEY_TIMEOUT);
- }
+ setParameters(KEY_TIMEOUT, timeout);
}
/**
@@ -244,6 +215,6 @@ public class Slider extends RPCRequest { * @return Integer -an Integer value representing an App defined timeout
*/
public Integer getTimeout() {
- return (Integer) parameters.get(KEY_TIMEOUT);
+ return getInteger(KEY_TIMEOUT);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SliderResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SliderResponse.java index 0d8487d12..8d226d72c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SliderResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SliderResponse.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
+import java.util.Hashtable;
+
/**
* Slider Response is sent, when Slider has been called
*
@@ -36,17 +36,13 @@ public class SliderResponse extends RPCResponse { * @param sliderPosition
*/
public void setSliderPosition(Integer sliderPosition) {
- if (sliderPosition != null) {
- parameters.put(KEY_SLIDER_POSITION, sliderPosition);
- } else {
- parameters.remove(KEY_SLIDER_POSITION);
- }
+ setParameters(KEY_SLIDER_POSITION, sliderPosition);
}
/**
* Gets an Initial position of slider control
* @return Integer
*/
public Integer getSliderPosition() {
- return (Integer) parameters.get(KEY_SLIDER_POSITION);
+ return getInteger(KEY_SLIDER_POSITION);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SoftButton.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SoftButton.java index e010a08da..23e31316d 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SoftButton.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SoftButton.java @@ -95,86 +95,40 @@ public class SoftButton extends RPCStruct { super(hash);
}
public void setType(SoftButtonType type) {
- if (type != null) {
- store.put(KEY_TYPE, type);
- } else {
- store.remove(KEY_TYPE);
- }
+ setValue(KEY_TYPE, type);
}
public SoftButtonType getType() {
- Object obj = store.get(KEY_TYPE);
- if (obj instanceof SoftButtonType) {
- return (SoftButtonType) obj;
- } else if (obj instanceof String) {
- return SoftButtonType.valueForString((String) obj);
- }
- return null;
+ return (SoftButtonType) getObject(SoftButtonType.class, KEY_TYPE);
}
public void setText(String text) {
- if (text != null) {
- store.put(KEY_TEXT, text);
- } else {
- store.remove(KEY_TEXT);
- }
+ setValue(KEY_TEXT, text);
}
public String getText() {
- return (String) store.get(KEY_TEXT);
+ return getString(KEY_TEXT);
}
public void setImage(Image image) {
- if (image != null) {
- store.put(KEY_IMAGE, image);
- } else {
- store.remove(KEY_IMAGE);
- }
+ setValue(KEY_IMAGE, image);
}
@SuppressWarnings("unchecked")
public Image getImage() {
- Object obj = store.get(KEY_IMAGE);
- if (obj instanceof Image) {
- return (Image) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new Image((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_IMAGE, e);
- }
- }
- return null;
+ return (Image) getObject(Image.class, KEY_IMAGE);
}
public void setIsHighlighted(Boolean isHighlighted) {
- if (isHighlighted != null) {
- store.put(KEY_IS_HIGHLIGHTED, isHighlighted);
- } else {
- store.remove(KEY_IS_HIGHLIGHTED);
- }
+ setValue(KEY_IS_HIGHLIGHTED, isHighlighted);
}
public Boolean getIsHighlighted() {
- return (Boolean) store.get(KEY_IS_HIGHLIGHTED);
+ return getBoolean(KEY_IS_HIGHLIGHTED);
}
public void setSoftButtonID(Integer softButtonID) {
- if (softButtonID != null) {
- store.put(KEY_SOFT_BUTTON_ID, softButtonID);
- } else {
- store.remove(KEY_SOFT_BUTTON_ID);
- }
+ setValue(KEY_SOFT_BUTTON_ID, softButtonID);
}
public Integer getSoftButtonID() {
- return (Integer) store.get(KEY_SOFT_BUTTON_ID);
+ return getInteger(KEY_SOFT_BUTTON_ID);
}
public void setSystemAction(SystemAction systemAction) {
- if (systemAction != null) {
- store.put(KEY_SYSTEM_ACTION, systemAction);
- } else {
- store.remove(KEY_SYSTEM_ACTION);
- }
+ setValue(KEY_SYSTEM_ACTION, systemAction);
}
public SystemAction getSystemAction() {
- Object obj = store.get(KEY_SYSTEM_ACTION);
- if (obj instanceof SystemAction) {
- return (SystemAction) obj;
- } else if (obj instanceof String) {
- return SystemAction.valueForString((String) obj);
- }
- return null;
+ return (SystemAction) getObject(SystemAction.class, KEY_SYSTEM_ACTION);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SoftButtonCapabilities.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SoftButtonCapabilities.java index e2849086c..205dfe74c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SoftButtonCapabilities.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SoftButtonCapabilities.java @@ -1,9 +1,9 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
+import java.util.Hashtable;
+
/**
* <p>Contains information about a SoftButton's capabilities.</p>
* <p><b>Parameter List</b></p>
@@ -72,11 +72,7 @@ public class SoftButtonCapabilities extends RPCStruct { * @param shortPressAvailable whether the button supports a short press.
*/
public void setShortPressAvailable(Boolean shortPressAvailable) {
- if (shortPressAvailable != null) {
- store.put(KEY_SHORT_PRESS_AVAILABLE, shortPressAvailable);
- } else {
- store.remove(KEY_SHORT_PRESS_AVAILABLE);
- }
+ setValue(KEY_SHORT_PRESS_AVAILABLE, shortPressAvailable);
}
/**
@@ -84,7 +80,7 @@ public class SoftButtonCapabilities extends RPCStruct { * @return whether the button supports a short press
*/
public Boolean getShortPressAvailable() {
- return (Boolean) store.get( KEY_SHORT_PRESS_AVAILABLE);
+ return getBoolean( KEY_SHORT_PRESS_AVAILABLE);
}
/**
@@ -92,11 +88,7 @@ public class SoftButtonCapabilities extends RPCStruct { * @param longPressAvailable whether the button supports a long press
*/
public void setLongPressAvailable(Boolean longPressAvailable) {
- if (longPressAvailable != null) {
- store.put(KEY_LONG_PRESS_AVAILABLE, longPressAvailable);
- } else {
- store.remove(KEY_LONG_PRESS_AVAILABLE);
- }
+ setValue(KEY_LONG_PRESS_AVAILABLE, longPressAvailable);
}
/**
@@ -104,7 +96,7 @@ public class SoftButtonCapabilities extends RPCStruct { * @return whether the button supports a LONG press
*/
public Boolean getLongPressAvailable() {
- return (Boolean) store.get( KEY_LONG_PRESS_AVAILABLE);
+ return getBoolean( KEY_LONG_PRESS_AVAILABLE);
}
/**
@@ -112,11 +104,7 @@ public class SoftButtonCapabilities extends RPCStruct { * @param upDownAvailable the button supports "button down" and "button up".
*/
public void setUpDownAvailable(Boolean upDownAvailable) {
- if (upDownAvailable != null) {
- store.put(KEY_UP_DOWN_AVAILABLE, upDownAvailable);
- } else {
- store.remove(KEY_UP_DOWN_AVAILABLE);
- }
+ setValue(KEY_UP_DOWN_AVAILABLE, upDownAvailable);
}
/**
@@ -124,7 +112,7 @@ public class SoftButtonCapabilities extends RPCStruct { * @return the button supports "button down" and "button up".
*/
public Boolean getUpDownAvailable() {
- return (Boolean) store.get( KEY_UP_DOWN_AVAILABLE);
+ return getBoolean( KEY_UP_DOWN_AVAILABLE);
}
/**
@@ -132,11 +120,7 @@ public class SoftButtonCapabilities extends RPCStruct { * @param imageSupported whether the button supports referencing a static or dynamic image.
*/
public void setImageSupported(Boolean imageSupported) {
- if (imageSupported != null) {
- store.put(KEY_IMAGE_SUPPORTED, imageSupported);
- } else {
- store.remove(KEY_IMAGE_SUPPORTED);
- }
+ setValue(KEY_IMAGE_SUPPORTED, imageSupported);
}
/**
@@ -144,6 +128,6 @@ public class SoftButtonCapabilities extends RPCStruct { * @return the button supports referencing a static or dynamic image.
*/
public Boolean getImageSupported() {
- return (Boolean) store.get( KEY_IMAGE_SUPPORTED);
+ return getBoolean( KEY_IMAGE_SUPPORTED);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Speak.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Speak.java index b5e775f06..347960731 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Speak.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Speak.java @@ -1,12 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* Speaks a phrase over the vehicle audio system using SDL's TTS
* (text-to-speech) engine. The provided text to be spoken can be simply a text
@@ -135,22 +134,7 @@ public class Speak extends RPCRequest { */
@SuppressWarnings("unchecked")
public List<TTSChunk> getTtsChunks() {
- if (parameters.get(KEY_TTS_CHUNKS) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_TTS_CHUNKS);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TTSChunk) {
- return (List<TTSChunk>) list;
- } else if (obj instanceof Hashtable) {
- List<TTSChunk> newList = new ArrayList<TTSChunk>();
- for (Object hashObj : list) {
- newList.add(new TTSChunk((Hashtable<String, Object>)hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TTSChunk>) getObject(TTSChunk.class, KEY_TTS_CHUNKS);
}
/**
* Sets a List<TTSChunk> representing an array of 1-100 TTSChunk structs
@@ -169,10 +153,6 @@ public class Speak extends RPCRequest { * </ul>
*/
public void setTtsChunks( List<TTSChunk> ttsChunks ) {
- if (ttsChunks != null) {
- parameters.put(KEY_TTS_CHUNKS, ttsChunks );
- } else {
- parameters.remove(KEY_TTS_CHUNKS);
- }
+ setParameters(KEY_TTS_CHUNKS, ttsChunks);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/StartTime.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/StartTime.java index bce0b9fc1..ec515ad46 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/StartTime.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/StartTime.java @@ -1,9 +1,9 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
+import java.util.Hashtable;
+
/**
* Describes the hour, minute and second values used to set the media clock.
* <p><b> Parameter List</b></p>
@@ -59,7 +59,7 @@ public class StartTime extends RPCStruct { * @return hours Minvalue="0", maxvalue="59"
*/
public Integer getHours() {
- return (Integer) store.get( KEY_HOURS );
+ return getInteger( KEY_HOURS );
}
/**
* Set the hour. Minvalue="0", maxvalue="59"
@@ -67,46 +67,34 @@ public class StartTime extends RPCStruct { * @param hours min: 0; max: 59
*/
public void setHours( Integer hours ) {
- if (hours != null) {
- store.put(KEY_HOURS, hours );
- } else {
- store.remove(KEY_HOURS);
- }
+ setValue(KEY_HOURS, hours);
}
/**
* Get the minute. Minvalue="0", maxvalue="59".
* @return minutes Minvalue="0", maxvalue="59"
*/
public Integer getMinutes() {
- return (Integer) store.get( KEY_MINUTES );
+ return getInteger( KEY_MINUTES );
}
/**
* Set the minute. Minvalue="0", maxvalue="59".
* @param minutes min: 0; max: 59
*/
public void setMinutes( Integer minutes ) {
- if (minutes != null) {
- store.put(KEY_MINUTES, minutes );
- } else {
- store.remove(KEY_MINUTES);
- }
+ setValue(KEY_MINUTES, minutes);
}
/**
* Get the second. Minvalue="0", maxvalue="59".
* @return seconds. Minvalue="0", maxvalue="59".
*/
public Integer getSeconds() {
- return (Integer) store.get( KEY_SECONDS );
+ return getInteger( KEY_SECONDS );
}
/**
* Set the second. Minvalue="0", maxvalue="59".
* @param seconds min: 0 max: 59
*/
public void setSeconds( Integer seconds ) {
- if (seconds != null) {
- store.put(KEY_SECONDS, seconds );
- } else {
- store.remove(KEY_SECONDS);
- }
+ setValue(KEY_SECONDS, seconds);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/StreamRPCResponse.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/StreamRPCResponse.java index bd75bef6d..d1de24993 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/StreamRPCResponse.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/StreamRPCResponse.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc; -import java.util.Hashtable; - import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCResponse; +import java.util.Hashtable; + public class StreamRPCResponse extends RPCResponse { public static final String KEY_FILENAME = "fileName"; public static final String KEY_FILESIZE = "fileSize"; @@ -17,25 +17,17 @@ public class StreamRPCResponse extends RPCResponse { } public void setFileName(String fileName) { - if (fileName != null) { - parameters.put(KEY_FILENAME, fileName); - } else { - parameters.remove(KEY_FILENAME); - } + setParameters(KEY_FILENAME, fileName); } public String getFileName() { - return (String) parameters.get(KEY_FILENAME); + return getString(KEY_FILENAME); } public void setFileSize(Long fileSize) { - if (fileSize != null) { - parameters.put(KEY_FILESIZE, fileSize); - } else { - parameters.remove(KEY_FILESIZE); - } + setParameters(KEY_FILESIZE, fileSize); } public Long getFileSize() { - return (Long) parameters.get(KEY_FILESIZE); + return getLong(KEY_FILESIZE); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeButton.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeButton.java index 7f1f92bae..4eedfcb47 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeButton.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeButton.java @@ -1,10 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.ButtonName;
+
+import java.util.Hashtable;
+
/**
*<p> Establishes a subscription to button notifications for HMI buttons. Buttons
* are not necessarily physical buttons, but can also be "soft" buttons on a
@@ -98,23 +99,13 @@ public class SubscribeButton extends RPCRequest { * @return ButtonName -an enum value, see <i>{@linkplain com.smartdevicelink.proxy.rpc.enums.ButtonName}</i>
*/
public ButtonName getButtonName() {
- Object obj = parameters.get(KEY_BUTTON_NAME);
- if (obj instanceof ButtonName) {
- return (ButtonName) obj;
- } else if (obj instanceof String) {
- return ButtonName.valueForString((String) obj);
- }
- return null;
+ return (ButtonName) getObject(ButtonName.class, KEY_BUTTON_NAME);
}
/**
* Sets a name of the button to subscribe to
* @param buttonName a <i>{@linkplain com.smartdevicelink.proxy.rpc.enums.ButtonName}</i> value
*/
public void setButtonName( ButtonName buttonName ) {
- if (buttonName != null) {
- parameters.put(KEY_BUTTON_NAME, buttonName );
- } else {
- parameters.remove(KEY_BUTTON_NAME);
- }
+ setParameters(KEY_BUTTON_NAME, buttonName);
}
}
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 6b934ef21..ddbf54c4a 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 @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import java.util.Hashtable;
+
/**
* Subscribes for specific published vehicle data items. The data will be only
* sent, if it has changed. The application will be notified by the
@@ -289,11 +289,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setGps(Boolean gps) {
- if (gps != null) {
- parameters.put(KEY_GPS, gps);
- } else {
- parameters.remove(KEY_GPS);
- }
+ setParameters(KEY_GPS, gps);
}
/**
@@ -303,7 +299,7 @@ public class SubscribeVehicleData extends RPCRequest { * subscribed.
*/
public Boolean getGps() {
- return (Boolean) parameters.get(KEY_GPS);
+ return getBoolean(KEY_GPS);
}
/**
@@ -313,11 +309,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setSpeed(Boolean speed) {
- if (speed != null) {
- parameters.put(KEY_SPEED, speed);
- } else {
- parameters.remove(KEY_SPEED);
- }
+ setParameters(KEY_SPEED, speed);
}
/**
@@ -327,7 +319,7 @@ public class SubscribeVehicleData extends RPCRequest { * subscribed.
*/
public Boolean getSpeed() {
- return (Boolean) parameters.get(KEY_SPEED);
+ return getBoolean(KEY_SPEED);
}
/**
@@ -337,11 +329,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setRpm(Boolean rpm) {
- if (rpm != null) {
- parameters.put(KEY_RPM, rpm);
- } else {
- parameters.remove(KEY_RPM);
- }
+ setParameters(KEY_RPM, rpm);
}
/**
@@ -351,7 +339,7 @@ public class SubscribeVehicleData extends RPCRequest { * subscribed.
*/
public Boolean getRpm() {
- return (Boolean) parameters.get(KEY_RPM);
+ return getBoolean(KEY_RPM);
}
/**
@@ -361,11 +349,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setFuelLevel(Boolean fuelLevel) {
- if (fuelLevel != null) {
- parameters.put(KEY_FUEL_LEVEL, fuelLevel);
- } else {
- parameters.remove(KEY_FUEL_LEVEL);
- }
+ setParameters(KEY_FUEL_LEVEL, fuelLevel);
}
/**
@@ -376,7 +360,7 @@ public class SubscribeVehicleData extends RPCRequest { * been subscribed.
*/
public Boolean getFuelLevel() {
- return (Boolean) parameters.get(KEY_FUEL_LEVEL);
+ return getBoolean(KEY_FUEL_LEVEL);
}
/**
@@ -409,11 +393,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setFuelLevelState(Boolean fuelLevelState) {
- if (fuelLevelState != null) {
- parameters.put(KEY_FUEL_LEVEL_STATE, fuelLevelState);
- } else {
- parameters.remove(KEY_FUEL_LEVEL_STATE);
- }
+ setParameters(KEY_FUEL_LEVEL_STATE, fuelLevelState);
}
/**
@@ -424,7 +404,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getFuelLevelState() {
- return (Boolean) parameters.get(KEY_FUEL_LEVEL_STATE);
+ return getBoolean(KEY_FUEL_LEVEL_STATE);
}
/**
@@ -434,11 +414,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setInstantFuelConsumption(Boolean instantFuelConsumption) {
- if (instantFuelConsumption != null) {
- parameters.put(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
- } else {
- parameters.remove(KEY_INSTANT_FUEL_CONSUMPTION);
- }
+ setParameters(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
}
/**
@@ -449,7 +425,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getInstantFuelConsumption() {
- return (Boolean) parameters.get(KEY_INSTANT_FUEL_CONSUMPTION);
+ return getBoolean(KEY_INSTANT_FUEL_CONSUMPTION);
}
/**
@@ -459,11 +435,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setExternalTemperature(Boolean externalTemperature) {
- if (externalTemperature != null) {
- parameters.put(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
- } else {
- parameters.remove(KEY_EXTERNAL_TEMPERATURE);
- }
+ setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
}
/**
@@ -474,7 +446,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getExternalTemperature() {
- return (Boolean) parameters.get(KEY_EXTERNAL_TEMPERATURE);
+ return getBoolean(KEY_EXTERNAL_TEMPERATURE);
}
/**
@@ -484,11 +456,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setPrndl(Boolean prndl) {
- if (prndl != null) {
- parameters.put(KEY_PRNDL, prndl);
- } else {
- parameters.remove(KEY_PRNDL);
- }
+ setParameters(KEY_PRNDL, prndl);
}
/**
@@ -499,7 +467,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getPrndl() {
- return (Boolean) parameters.get(KEY_PRNDL);
+ return getBoolean(KEY_PRNDL);
}
/**
@@ -509,11 +477,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setTirePressure(Boolean tirePressure) {
- if (tirePressure != null) {
- parameters.put(KEY_TIRE_PRESSURE, tirePressure);
- } else {
- parameters.remove(KEY_TIRE_PRESSURE);
- }
+ setParameters(KEY_TIRE_PRESSURE, tirePressure);
}
/**
@@ -524,7 +488,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getTirePressure() {
- return (Boolean) parameters.get(KEY_TIRE_PRESSURE);
+ return getBoolean(KEY_TIRE_PRESSURE);
}
/**
@@ -534,11 +498,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setOdometer(Boolean odometer) {
- if (odometer != null) {
- parameters.put(KEY_ODOMETER, odometer);
- } else {
- parameters.remove(KEY_ODOMETER);
- }
+ setParameters(KEY_ODOMETER, odometer);
}
/**
@@ -549,7 +509,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getOdometer() {
- return (Boolean) parameters.get(KEY_ODOMETER);
+ return getBoolean(KEY_ODOMETER);
}
/**
@@ -559,11 +519,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setBeltStatus(Boolean beltStatus) {
- if (beltStatus != null) {
- parameters.put(KEY_BELT_STATUS, beltStatus);
- } else {
- parameters.remove(KEY_BELT_STATUS);
- }
+ setParameters(KEY_BELT_STATUS, beltStatus);
}
/**
@@ -574,7 +530,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getBeltStatus() {
- return (Boolean) parameters.get(KEY_BELT_STATUS);
+ return getBoolean(KEY_BELT_STATUS);
}
/**
@@ -584,11 +540,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setBodyInformation(Boolean bodyInformation) {
- if (bodyInformation != null) {
- parameters.put(KEY_BODY_INFORMATION, bodyInformation);
- } else {
- parameters.remove(KEY_BODY_INFORMATION);
- }
+ setParameters(KEY_BODY_INFORMATION, bodyInformation);
}
/**
@@ -599,7 +551,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getBodyInformation() {
- return (Boolean) parameters.get(KEY_BODY_INFORMATION);
+ return getBoolean(KEY_BODY_INFORMATION);
}
/**
@@ -609,11 +561,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setDeviceStatus(Boolean deviceStatus) {
- if (deviceStatus != null) {
- parameters.put(KEY_DEVICE_STATUS, deviceStatus);
- } else {
- parameters.remove(KEY_DEVICE_STATUS);
- }
+ setParameters(KEY_DEVICE_STATUS, deviceStatus);
}
/**
@@ -624,7 +572,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getDeviceStatus() {
- return (Boolean) parameters.get(KEY_DEVICE_STATUS);
+ return getBoolean(KEY_DEVICE_STATUS);
}
/**
@@ -634,11 +582,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setDriverBraking(Boolean driverBraking) {
- if (driverBraking != null) {
- parameters.put(KEY_DRIVER_BRAKING, driverBraking);
- } else {
- parameters.remove(KEY_DRIVER_BRAKING);
- }
+ setParameters(KEY_DRIVER_BRAKING, driverBraking);
}
/**
@@ -649,7 +593,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getDriverBraking() {
- return (Boolean) parameters.get(KEY_DRIVER_BRAKING);
+ return getBoolean(KEY_DRIVER_BRAKING);
}
/**
@@ -659,11 +603,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setWiperStatus(Boolean wiperStatus) {
- if (wiperStatus != null) {
- parameters.put(KEY_WIPER_STATUS, wiperStatus);
- } else {
- parameters.remove(KEY_WIPER_STATUS);
- }
+ setParameters(KEY_WIPER_STATUS, wiperStatus);
}
/**
@@ -674,7 +614,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getWiperStatus() {
- return (Boolean) parameters.get(KEY_WIPER_STATUS);
+ return getBoolean(KEY_WIPER_STATUS);
}
/**
@@ -684,11 +624,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setHeadLampStatus(Boolean headLampStatus) {
- if (headLampStatus != null) {
- parameters.put(KEY_HEAD_LAMP_STATUS, headLampStatus);
- } else {
- parameters.remove(KEY_HEAD_LAMP_STATUS);
- }
+ setParameters(KEY_HEAD_LAMP_STATUS, headLampStatus);
}
/**
@@ -699,7 +635,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getHeadLampStatus() {
- return (Boolean) parameters.get(KEY_HEAD_LAMP_STATUS);
+ return getBoolean(KEY_HEAD_LAMP_STATUS);
}
/**
@@ -709,11 +645,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setEngineTorque(Boolean engineTorque) {
- if (engineTorque != null) {
- parameters.put(KEY_ENGINE_TORQUE, engineTorque);
- } else {
- parameters.remove(KEY_ENGINE_TORQUE);
- }
+ setParameters(KEY_ENGINE_TORQUE, engineTorque);
}
/**
@@ -724,7 +656,7 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getEngineTorque() {
- return (Boolean) parameters.get(KEY_ENGINE_TORQUE);
+ return getBoolean(KEY_ENGINE_TORQUE);
}
/**
@@ -734,11 +666,7 @@ public class SubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setAccPedalPosition(Boolean accPedalPosition) {
- if (accPedalPosition != null) {
- parameters.put(KEY_ACC_PEDAL_POSITION, accPedalPosition);
- } else {
- parameters.remove(KEY_ACC_PEDAL_POSITION);
- }
+ setParameters(KEY_ACC_PEDAL_POSITION, accPedalPosition);
}
/**
@@ -749,69 +677,45 @@ public class SubscribeVehicleData extends RPCRequest { * has been subscribed.
*/
public Boolean getAccPedalPosition() {
- return (Boolean) parameters.get(KEY_ACC_PEDAL_POSITION);
+ return getBoolean(KEY_ACC_PEDAL_POSITION);
}
public void setSteeringWheelAngle(Boolean steeringWheelAngle) {
- if (steeringWheelAngle != null) {
- parameters.put(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
- } else {
- parameters.remove(KEY_STEERING_WHEEL_ANGLE);
- }
+ setParameters(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
}
public Boolean getSteeringWheelAngle() {
- return (Boolean) parameters.get(KEY_STEERING_WHEEL_ANGLE);
+ return getBoolean(KEY_STEERING_WHEEL_ANGLE);
}
public void setECallInfo(Boolean eCallInfo) {
- if (eCallInfo != null) {
- parameters.put(KEY_E_CALL_INFO, eCallInfo);
- } else {
- parameters.remove(KEY_E_CALL_INFO);
- }
+ setParameters(KEY_E_CALL_INFO, eCallInfo);
}
public Boolean getECallInfo() {
- return (Boolean) parameters.get(KEY_E_CALL_INFO);
+ return getBoolean(KEY_E_CALL_INFO);
}
public void setAirbagStatus(Boolean airbagStatus) {
- if (airbagStatus != null) {
- parameters.put(KEY_AIRBAG_STATUS, airbagStatus);
- } else {
- parameters.remove(KEY_AIRBAG_STATUS);
- }
+ setParameters(KEY_AIRBAG_STATUS, airbagStatus);
}
public Boolean getAirbagStatus() {
- return (Boolean) parameters.get(KEY_AIRBAG_STATUS);
+ return getBoolean(KEY_AIRBAG_STATUS);
}
public void setEmergencyEvent(Boolean emergencyEvent) {
- if (emergencyEvent != null) {
- parameters.put(KEY_EMERGENCY_EVENT, emergencyEvent);
- } else {
- parameters.remove(KEY_EMERGENCY_EVENT);
- }
+ setParameters(KEY_EMERGENCY_EVENT, emergencyEvent);
}
public Boolean getEmergencyEvent() {
- return (Boolean) parameters.get(KEY_EMERGENCY_EVENT);
+ return getBoolean(KEY_EMERGENCY_EVENT);
}
public void setClusterModeStatus(Boolean clusterModeStatus) {
- if (clusterModeStatus != null) {
- parameters.put(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
- } else {
- parameters.remove(KEY_CLUSTER_MODE_STATUS);
- }
+ setParameters(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
}
public Boolean getClusterModeStatus() {
- return (Boolean) parameters.get(KEY_CLUSTER_MODE_STATUS);
+ return getBoolean(KEY_CLUSTER_MODE_STATUS);
}
public void setMyKey(Boolean myKey) {
- if (myKey != null) {
- parameters.put(KEY_MY_KEY, myKey);
- } else {
- parameters.remove(KEY_MY_KEY);
- }
+ setParameters(KEY_MY_KEY, myKey);
}
public Boolean getMyKey() {
- return (Boolean) parameters.get(KEY_MY_KEY);
+ return getBoolean(KEY_MY_KEY);
}
}
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 f8092cae8..3c2a245ee 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 @@ -1,10 +1,9 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
-import com.smartdevicelink.util.DebugTool;
+
+import java.util.Hashtable;
/**
* Subscribe Vehicle Data Response is sent, when SubscribeVehicleData has been called
@@ -60,11 +59,7 @@ public class SubscribeVehicleDataResponse extends RPCResponse { * @param gps
*/
public void setGps(VehicleDataResult gps) {
- if (gps != null) {
- parameters.put(KEY_GPS, gps);
- } else {
- parameters.remove(KEY_GPS);
- }
+ setParameters(KEY_GPS, gps);
}
/**
* Gets gps
@@ -72,28 +67,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getGps() {
- Object obj = parameters.get(KEY_GPS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_GPS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_GPS);
}
/**
* Sets speed
* @param speed
*/
public void setSpeed(VehicleDataResult speed) {
- if (speed != null) {
- parameters.put(KEY_SPEED, speed);
- } else {
- parameters.remove(KEY_SPEED);
- }
+ setParameters(KEY_SPEED, speed);
}
/**
* Gets speed
@@ -101,28 +82,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getSpeed() {
- Object obj = parameters.get(KEY_SPEED);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_SPEED, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_SPEED);
}
/**
* Sets rpm
* @param rpm
*/
public void setRpm(VehicleDataResult rpm) {
- if (rpm != null) {
- parameters.put(KEY_RPM, rpm);
- } else {
- parameters.remove(KEY_RPM);
- }
+ setParameters(KEY_RPM, rpm);
}
/**
* Gets rpm
@@ -130,28 +97,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getRpm() {
- Object obj = parameters.get(KEY_RPM);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_RPM, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_RPM);
}
/**
* Sets Fuel Level
* @param fuelLevel
*/
public void setFuelLevel(VehicleDataResult fuelLevel) {
- if (fuelLevel != null) {
- parameters.put(KEY_FUEL_LEVEL, fuelLevel);
- } else {
- parameters.remove(KEY_FUEL_LEVEL);
- }
+ setParameters(KEY_FUEL_LEVEL, fuelLevel);
}
/**
* Gets Fuel Level
@@ -159,17 +112,7 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getFuelLevel() {
- Object obj = parameters.get(KEY_FUEL_LEVEL);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_FUEL_LEVEL, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_FUEL_LEVEL);
}
/**
* Sets Fuel Level State
@@ -192,11 +135,7 @@ public class SubscribeVehicleDataResponse extends RPCResponse { * @param fuelLevelState
*/
public void setFuelLevelState(VehicleDataResult fuelLevelState) {
- if (fuelLevelState != null) {
- parameters.put(KEY_FUEL_LEVEL_STATE, fuelLevelState);
- } else {
- parameters.remove(KEY_FUEL_LEVEL_STATE);
- }
+ setParameters(KEY_FUEL_LEVEL_STATE, fuelLevelState);
}
/**
* Gets Fuel Level State
@@ -204,24 +143,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getFuelLevelState() {
- Object obj = parameters.get(KEY_FUEL_LEVEL_STATE);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_FUEL_LEVEL_STATE);
}
/**
* Sets Instant Fuel Comsumption
* @param instantFuelConsumption
*/
public void setInstantFuelConsumption(VehicleDataResult instantFuelConsumption) {
- if (instantFuelConsumption != null) {
- parameters.put(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
- } else {
- parameters.remove(KEY_INSTANT_FUEL_CONSUMPTION);
- }
+ setParameters(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
}
/**
* Gets Instant Fuel Consumption
@@ -229,28 +158,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getInstantFuelConsumption() {
- Object obj = parameters.get(KEY_INSTANT_FUEL_CONSUMPTION);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_INSTANT_FUEL_CONSUMPTION, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_INSTANT_FUEL_CONSUMPTION);
}
/**
* Sets External Temperature
* @param externalTemperature
*/
public void setExternalTemperature(VehicleDataResult externalTemperature) {
- if (externalTemperature != null) {
- parameters.put(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
- } else {
- parameters.remove(KEY_EXTERNAL_TEMPERATURE);
- }
+ setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
}
/**
* Gets External Temperature
@@ -258,28 +173,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getExternalTemperature() {
- Object obj = parameters.get(KEY_EXTERNAL_TEMPERATURE);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_EXTERNAL_TEMPERATURE, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_EXTERNAL_TEMPERATURE);
}
/**
* Sets currently selected gear data
* @param prndl
*/
public void setPrndl(VehicleDataResult prndl) {
- if (prndl != null) {
- parameters.put(KEY_PRNDL, prndl);
- } else {
- parameters.remove(KEY_PRNDL);
- }
+ setParameters(KEY_PRNDL, prndl);
}
/**
* Gets currently selected gear data
@@ -287,28 +188,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getPrndl() {
- Object obj = parameters.get(KEY_PRNDL);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_PRNDL, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_PRNDL);
}
/**
* Sets Tire Pressure
* @param tirePressure
*/
public void setTirePressure(VehicleDataResult tirePressure) {
- if (tirePressure != null) {
- parameters.put(KEY_TIRE_PRESSURE, tirePressure);
- } else {
- parameters.remove(KEY_TIRE_PRESSURE);
- }
+ setParameters(KEY_TIRE_PRESSURE, tirePressure);
}
/**
* Gets Tire Pressure
@@ -316,28 +203,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getTirePressure() {
- Object obj = parameters.get(KEY_TIRE_PRESSURE);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_TIRE_PRESSURE, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_TIRE_PRESSURE);
}
/**
* Sets Odometer
* @param odometer
*/
public void setOdometer(VehicleDataResult odometer) {
- if (odometer != null) {
- parameters.put(KEY_ODOMETER, odometer);
- } else {
- parameters.remove(KEY_ODOMETER);
- }
+ setParameters(KEY_ODOMETER, odometer);
}
/**
* Gets Odometer
@@ -345,28 +218,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getOdometer() {
- Object obj = parameters.get(KEY_ODOMETER);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_ODOMETER, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ODOMETER);
}
/**
* Sets Belt Status
* @param beltStatus
*/
public void setBeltStatus(VehicleDataResult beltStatus) {
- if (beltStatus != null) {
- parameters.put(KEY_BELT_STATUS, beltStatus);
- } else {
- parameters.remove(KEY_BELT_STATUS);
- }
+ setParameters(KEY_BELT_STATUS, beltStatus);
}
/**
* Gets Belt Status
@@ -374,28 +233,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getBeltStatus() {
- Object obj = parameters.get(KEY_BELT_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_BELT_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_BELT_STATUS);
}
/**
* Sets Body Information
* @param bodyInformation
*/
public void setBodyInformation(VehicleDataResult bodyInformation) {
- if (bodyInformation != null) {
- parameters.put(KEY_BODY_INFORMATION, bodyInformation);
- } else {
- parameters.remove(KEY_BODY_INFORMATION);
- }
+ setParameters(KEY_BODY_INFORMATION, bodyInformation);
}
/**
* Gets Body Information
@@ -403,28 +248,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getBodyInformation() {
- Object obj = parameters.get(KEY_BODY_INFORMATION);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_BODY_INFORMATION, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_BODY_INFORMATION);
}
/**
* Sets Device Status
* @param deviceStatus
*/
public void setDeviceStatus(VehicleDataResult deviceStatus) {
- if (deviceStatus != null) {
- parameters.put(KEY_DEVICE_STATUS, deviceStatus);
- } else {
- parameters.remove(KEY_DEVICE_STATUS);
- }
+ setParameters(KEY_DEVICE_STATUS, deviceStatus);
}
/**
* Gets Device Status
@@ -432,28 +263,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getDeviceStatus() {
- Object obj = parameters.get(KEY_DEVICE_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_DEVICE_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_DEVICE_STATUS);
}
/**
* Sets Driver Barking
* @param driverBraking
*/
public void setDriverBraking(VehicleDataResult driverBraking) {
- if (driverBraking != null) {
- parameters.put(KEY_DRIVER_BRAKING, driverBraking);
- } else {
- parameters.remove(KEY_DRIVER_BRAKING);
- }
+ setParameters(KEY_DRIVER_BRAKING, driverBraking);
}
/**
* Gets Driver Barking
@@ -461,28 +278,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getDriverBraking() {
- Object obj = parameters.get(KEY_DRIVER_BRAKING);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_DRIVER_BRAKING, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_DRIVER_BRAKING);
}
/**
* Sets wiper Status
* @param wiperStatus
*/
public void setWiperStatus(VehicleDataResult wiperStatus) {
- if (wiperStatus != null) {
- parameters.put(KEY_WIPER_STATUS, wiperStatus);
- } else {
- parameters.remove(KEY_WIPER_STATUS);
- }
+ setParameters(KEY_WIPER_STATUS, wiperStatus);
}
/**
* Gets Wiper Status
@@ -490,28 +293,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getWiperStatus() {
- Object obj = parameters.get(KEY_WIPER_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_WIPER_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_WIPER_STATUS);
}
/**
* Sets Head Lamp Status
* @param headLampStatus
*/
public void setHeadLampStatus(VehicleDataResult headLampStatus) {
- if (headLampStatus != null) {
- parameters.put(KEY_HEAD_LAMP_STATUS, headLampStatus);
- } else {
- parameters.remove(KEY_HEAD_LAMP_STATUS);
- }
+ setParameters(KEY_HEAD_LAMP_STATUS, headLampStatus);
}
/**
* Gets Head Lamp Status
@@ -519,28 +308,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getHeadLampStatus() {
- Object obj = parameters.get(KEY_HEAD_LAMP_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_HEAD_LAMP_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_HEAD_LAMP_STATUS);
}
/**
* Sets Engine Torque
* @param engineTorque
*/
public void setEngineTorque(VehicleDataResult engineTorque) {
- if (engineTorque != null) {
- parameters.put(KEY_ENGINE_TORQUE, engineTorque);
- } else {
- parameters.remove(KEY_ENGINE_TORQUE);
- }
+ setParameters(KEY_ENGINE_TORQUE, engineTorque);
}
/**
* Gets Engine Torque
@@ -548,28 +323,14 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getEngineTorque() {
- Object obj = parameters.get(KEY_ENGINE_TORQUE);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_ENGINE_TORQUE, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ENGINE_TORQUE);
}
/**
* Sets AccPedal Position
* @param accPedalPosition
*/
public void setAccPedalPosition(VehicleDataResult accPedalPosition) {
- if (accPedalPosition != null) {
- parameters.put(KEY_ACC_PEDAL_POSITION, accPedalPosition);
- } else {
- parameters.remove(KEY_ACC_PEDAL_POSITION);
- }
+ setParameters(KEY_ACC_PEDAL_POSITION, accPedalPosition);
}
/**
* Gets AccPedal Position
@@ -577,145 +338,51 @@ public class SubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getAccPedalPosition() {
- Object obj = parameters.get(KEY_ACC_PEDAL_POSITION);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_ACC_PEDAL_POSITION, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ACC_PEDAL_POSITION);
}
public void setSteeringWheelAngle(VehicleDataResult steeringWheelAngle) {
- if (steeringWheelAngle != null) {
- parameters.put(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
- } else {
- parameters.remove(KEY_STEERING_WHEEL_ANGLE);
- }
+ setParameters(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getSteeringWheelAngle() {
- Object obj = parameters.get(KEY_STEERING_WHEEL_ANGLE);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_STEERING_WHEEL_ANGLE, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_STEERING_WHEEL_ANGLE);
}
public void setECallInfo(VehicleDataResult eCallInfo) {
- if (eCallInfo != null) {
- parameters.put(KEY_E_CALL_INFO, eCallInfo);
- } else {
- parameters.remove(KEY_E_CALL_INFO);
- }
+ setParameters(KEY_E_CALL_INFO, eCallInfo);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getECallInfo() {
- Object obj = parameters.get(KEY_E_CALL_INFO);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_E_CALL_INFO, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_E_CALL_INFO);
}
public void setAirbagStatus(VehicleDataResult airbagStatus) {
- if (airbagStatus != null) {
- parameters.put(KEY_AIRBAG_STATUS, airbagStatus);
- } else {
- parameters.remove(KEY_AIRBAG_STATUS);
- }
+ setParameters(KEY_AIRBAG_STATUS, airbagStatus);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getAirbagStatus() {
- Object obj = parameters.get(KEY_AIRBAG_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_AIRBAG_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_AIRBAG_STATUS);
}
public void setEmergencyEvent(VehicleDataResult emergencyEvent) {
- if (emergencyEvent != null) {
- parameters.put(KEY_EMERGENCY_EVENT, emergencyEvent);
- } else {
- parameters.remove(KEY_EMERGENCY_EVENT);
- }
+ setParameters(KEY_EMERGENCY_EVENT, emergencyEvent);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getEmergencyEvent() {
- Object obj = parameters.get(KEY_EMERGENCY_EVENT);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_EMERGENCY_EVENT, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_EMERGENCY_EVENT);
}
public void setClusterModeStatus(VehicleDataResult clusterModeStatus) {
- if (clusterModeStatus != null) {
- parameters.put(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
- } else {
- parameters.remove(KEY_CLUSTER_MODE_STATUS);
- }
+ setParameters(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getClusterModeStatus() {
- Object obj = parameters.get(KEY_CLUSTER_MODE_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_CLUSTER_MODE_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_CLUSTER_MODE_STATUS);
}
public void setMyKey(VehicleDataResult myKey) {
- if (myKey != null) {
- parameters.put(KEY_MY_KEY, myKey);
- } else {
- parameters.remove(KEY_MY_KEY);
- }
+ setParameters(KEY_MY_KEY, myKey);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getMyKey() {
- Object obj = parameters.get(KEY_MY_KEY);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_MY_KEY, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_MY_KEY);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemCapability.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemCapability.java new file mode 100644 index 000000000..a039e266e --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemCapability.java @@ -0,0 +1,57 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.proxy.RPCStruct; +import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType; + +import java.util.Hashtable; + +/** + * Struct that indicates the a SystemCapabilityType and houses different structs to describe particular capabilities + */ + +public class SystemCapability extends RPCStruct { + public static final String KEY_SYSTEM_CAPABILITY_TYPE = "systemCapabilityType"; + public static final String KEY_NAVIGATION_CAPABILITY = "navigationCapability"; + public static final String KEY_PHONE_CAPABILITY = "phoneCapability"; + + public SystemCapability(){} + + public SystemCapability(Hashtable<String, Object> hash) { + super(hash); + } + + /** + * + * @return The SystemCapabilityType that indicates which type of data should be changed and identifies which data object exists in this struct. For example, if the SystemCapability Type is NAVIGATION then a "navigationCapability" should exist + */ + public SystemCapabilityType getSystemCapabilityType(){ + return (SystemCapabilityType) getObject(SystemCapabilityType.class, KEY_SYSTEM_CAPABILITY_TYPE); + } + + /** + * @param value Set the SystemCapabilityType that indicates which type of data should be changed and identifies which data object exists in this struct. + */ + public void setSystemCapabilityType(SystemCapabilityType value){ + setValue(KEY_SYSTEM_CAPABILITY_TYPE, value); + } + + public RPCStruct getCapabilityForType(SystemCapabilityType type){ + if(type.equals(SystemCapabilityType.NAVIGATION)){ + return (RPCStruct) getObject(NavigationCapability.class, KEY_NAVIGATION_CAPABILITY); + }else if(type.equals(SystemCapabilityType.PHONE_CALL)){ + return (RPCStruct) getObject(PhoneCapability.class, KEY_PHONE_CAPABILITY); + }else{ + return null; + } + } + + public void setCapabilityForType(SystemCapabilityType type, RPCStruct capability){ + if(type.equals(SystemCapabilityType.NAVIGATION)){ + setValue(KEY_NAVIGATION_CAPABILITY, capability); + }else if(type.equals(SystemCapabilityType.PHONE_CALL)){ + setValue(KEY_PHONE_CAPABILITY, capability); + }else{ + return; + } + } +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemRequest.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemRequest.java index 14164b964..154907419 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemRequest.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SystemRequest.java @@ -1,11 +1,12 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-import java.util.List;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.RequestType;
+
+import java.util.Hashtable;
+import java.util.List;
+
/** An asynchronous request from the device; binary data can be included in hybrid part of message for some requests (such as HTTP, Proprietary, or Authentication requests)
*
* <p><b>Parameter List</b></p>
@@ -64,53 +65,26 @@ public class SystemRequest extends RPCRequest { @SuppressWarnings("unchecked")
public List<String> getLegacyData() {
- if (parameters.get(KEY_DATA) instanceof List<?>) {
- List<?> list = (List<?>)parameters.get(KEY_DATA);
- if (list != null && list.size()>0) {
- Object obj = list.get(0);
- if (obj instanceof String) {
- return (List<String>) list;
- }
- }
- }
- return null;
+ return (List<String>) getObject(String.class, KEY_DATA);
}
public void setLegacyData( List<String> data ) {
- if ( data!= null) {
- parameters.put(KEY_DATA, data );
- } else {
- parameters.remove(KEY_DATA);
- }
+ setParameters(KEY_DATA, data);
}
public String getFileName() {
- return (String) parameters.get(KEY_FILE_NAME);
+ return getString(KEY_FILE_NAME);
}
public void setFileName(String fileName) {
- if (fileName != null) {
- parameters.put(KEY_FILE_NAME, fileName);
- } else {
- parameters.remove(KEY_FILE_NAME);
- }
+ setParameters(KEY_FILE_NAME, fileName);
}
public RequestType getRequestType() {
- Object obj = parameters.get(KEY_REQUEST_TYPE);
- if (obj instanceof RequestType) {
- return (RequestType) obj;
- } else if (obj instanceof String) {
- return RequestType.valueForString((String) obj);
- }
- return null;
+ return (RequestType) getObject(RequestType.class, KEY_REQUEST_TYPE);
}
public void setRequestType(RequestType requestType) {
- if (requestType != null) {
- parameters.put(KEY_REQUEST_TYPE, requestType);
- } else {
- parameters.remove(KEY_REQUEST_TYPE);
- }
+ setParameters(KEY_REQUEST_TYPE, requestType);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TTSChunk.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TTSChunk.java index 97f865903..d98bb8a5c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TTSChunk.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TTSChunk.java @@ -1,10 +1,10 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
import com.smartdevicelink.proxy.rpc.enums.SpeechCapabilities;
+import java.util.Hashtable;
+
/**
* <p>Specifies what is to be spoken. This can be simply a text phrase, which SDL will speak according to its own rules.
* It can also be phonemes from either the Microsoft SAPI phoneme set, or from the LHPLUS phoneme set.
@@ -56,41 +56,27 @@ public class TTSChunk extends RPCStruct { * @return text to be spoken, or a phoneme specification, or the name of a pre-recorded sound
*/
public String getText() {
- return (String) store.get( KEY_TEXT );
+ return getString( KEY_TEXT );
}
/**
* Set the text to be spoken, or a phoneme specification, or the name of a pre-recorded sound. The contents of this field are indicated by the "type" field.
* @param text to be spoken, or a phoneme specification, or the name of a pre-recorded sound.
*/
public void setText( String text ) {
- if (text != null) {
- store.put(KEY_TEXT, text );
- } else {
- store.remove(KEY_TEXT);
- }
+ setValue(KEY_TEXT, text);
}
/**
* Get the type of information in the "text" field (e.g. phrase to be spoken, phoneme specification, name of pre-recorded sound).
* @return the type of information in the "text" field
*/
public SpeechCapabilities getType() {
- Object obj = store.get(KEY_TYPE);
- if (obj instanceof SpeechCapabilities) {
- return (SpeechCapabilities) obj;
- } else if (obj instanceof String) {
- return SpeechCapabilities.valueForString((String) obj);
- }
- return null;
+ return (SpeechCapabilities) getObject(SpeechCapabilities.class, KEY_TYPE);
}
/**
* Set the type of information in the "text" field (e.g. phrase to be spoken, phoneme specification, name of pre-recorded sound).
* @param type the type of information in the "text" field
*/
public void setType( SpeechCapabilities type ) {
- if (type != null) {
- store.put(KEY_TYPE, type );
- } else {
- store.remove(KEY_TYPE);
- }
+ setValue(KEY_TYPE, type);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TextField.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TextField.java index 918f0eb2f..28e283e9f 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TextField.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TextField.java @@ -6,6 +6,8 @@ import com.smartdevicelink.proxy.RPCStruct; import com.smartdevicelink.proxy.rpc.enums.CharacterSet;
import com.smartdevicelink.proxy.rpc.enums.TextFieldName;
+import static com.smartdevicelink.proxy.rpc.TireStatus.KEY_INNER_RIGHT_REAR;
+
/**
* Struct defining the characteristics of a displayed field on the HMI.
* <p><b> Parameter List</b></p>
@@ -83,48 +85,28 @@ public class TextField extends RPCStruct { * @return the name of TextField
*/
public TextFieldName getName() {
- Object obj = store.get(KEY_NAME);
- if (obj instanceof TextFieldName) {
- return (TextFieldName) obj;
- } else if (obj instanceof String) {
- return TextFieldName.valueForString((String) obj);
- }
- return null;
+ return (TextFieldName) getObject(TextFieldName.class, KEY_NAME);
}
/**
* Set the enumeration identifying the field.
* @param name the name of TextField
*/
public void setName( TextFieldName name ) {
- if (name != null) {
- store.put(KEY_NAME, name );
- } else {
- store.remove(KEY_NAME);
- }
+ setValue(KEY_NAME, name);
}
/**
* Get the character set that is supported in this field.
* @return the character set
*/
public CharacterSet getCharacterSet() {
- Object obj = store.get(KEY_CHARACTER_SET);
- if (obj instanceof CharacterSet) {
- return (CharacterSet) obj;
- } else if (obj instanceof String) {
- return CharacterSet.valueForString((String) obj);
- }
- return null;
+ return (CharacterSet) getObject(CharacterSet.class, KEY_CHARACTER_SET);
}
/**
* Set the character set that is supported in this field.
* @param characterSet - the character set
*/
public void setCharacterSet( CharacterSet characterSet ) {
- if (characterSet != null) {
- store.put(KEY_CHARACTER_SET, characterSet );
- } else {
- store.remove(KEY_CHARACTER_SET);
- }
+ setValue(KEY_CHARACTER_SET, characterSet);
}
/**
* Get the number of characters in one row of this field.
@@ -135,7 +117,7 @@ public class TextField extends RPCStruct { * @return the number of characters in one row of this field
*/
public Integer getWidth() {
- return (Integer) store.get( KEY_WIDTH );
+ return getInteger( KEY_WIDTH );
}
/**
* Set the number of characters in one row of this field.
@@ -146,11 +128,7 @@ public class TextField extends RPCStruct { * @param width the number of characters in one row of this field
*/
public void setWidth( Integer width ) {
- if (width != null) {
- store.put(KEY_WIDTH, width );
- } else {
- store.remove(KEY_WIDTH);
- }
+ setValue(KEY_WIDTH, width);
}
/**
*Get the number of rows for this text field.
@@ -161,13 +139,9 @@ public class TextField extends RPCStruct { * @return the number of rows for this text field
*/
public Integer getRows() {
- return (Integer) store.get( KEY_ROWS );
+ return getInteger( KEY_ROWS );
}
public void setRows( Integer rows ) {
- if (rows != null) {
- store.put(KEY_ROWS, rows );
- } else {
- store.remove(KEY_ROWS);
- }
+ setValue(KEY_ROWS, rows);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TireStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TireStatus.java index f853d673c..4b2169215 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TireStatus.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TireStatus.java @@ -1,10 +1,14 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.VehicleDataNotificationStatus;
import com.smartdevicelink.proxy.rpc.enums.WarningLightStatus;
import com.smartdevicelink.util.DebugTool;
+
+import java.util.Hashtable;
+
+import static com.smartdevicelink.proxy.rpc.ECallInfo.KEY_E_CALL_NOTIFICATION_STATUS;
+
/** <p>The status and pressure of the tires.</p>
* <p><b> Parameter List:</b></p>
*
@@ -89,145 +93,51 @@ public class TireStatus extends RPCStruct { super(hash);
}
public void setPressureTellTale(WarningLightStatus pressureTellTale) {
- if (pressureTellTale != null) {
- store.put(KEY_PRESSURE_TELL_TALE, pressureTellTale);
- } else {
- store.remove(KEY_PRESSURE_TELL_TALE);
- }
+ setValue(KEY_PRESSURE_TELL_TALE, pressureTellTale);
}
public WarningLightStatus getPressureTellTale() {
- Object obj = store.get(KEY_PRESSURE_TELL_TALE);
- if (obj instanceof WarningLightStatus) {
- return (WarningLightStatus) obj;
- } else if (obj instanceof String) {
- return WarningLightStatus.valueForString((String) obj);
- }
- return null;
+ return (WarningLightStatus) getObject(WarningLightStatus.class, KEY_PRESSURE_TELL_TALE);
}
public void setLeftFront(SingleTireStatus leftFront) {
- if (leftFront != null) {
- store.put(KEY_LEFT_FRONT, leftFront);
- } else {
- store.remove(KEY_LEFT_FRONT);
- }
+ setValue(KEY_LEFT_FRONT, leftFront);
}
@SuppressWarnings("unchecked")
public SingleTireStatus getLeftFront() {
- Object obj = store.get(KEY_LEFT_FRONT);
- if (obj instanceof SingleTireStatus) {
- return (SingleTireStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new SingleTireStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_LEFT_FRONT, e);
- }
- }
- return null;
+ return (SingleTireStatus) getObject(SingleTireStatus.class, KEY_LEFT_FRONT);
}
public void setRightFront(SingleTireStatus rightFront) {
- if (rightFront != null) {
- store.put(KEY_RIGHT_FRONT, rightFront);
- } else {
- store.remove(KEY_RIGHT_FRONT);
- }
+ setValue(KEY_RIGHT_FRONT, rightFront);
}
@SuppressWarnings("unchecked")
public SingleTireStatus getRightFront() {
- Object obj = store.get(KEY_RIGHT_FRONT);
- if (obj instanceof SingleTireStatus) {
- return (SingleTireStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new SingleTireStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_RIGHT_FRONT, e);
- }
- }
- return null;
+ return (SingleTireStatus) getObject(SingleTireStatus.class, KEY_RIGHT_FRONT);
}
public void setLeftRear(SingleTireStatus leftRear) {
- if (leftRear != null) {
- store.put(KEY_LEFT_REAR, leftRear);
- } else {
- store.remove(KEY_LEFT_REAR);
- }
+ setValue(KEY_LEFT_REAR, leftRear);
}
@SuppressWarnings("unchecked")
public SingleTireStatus getLeftRear() {
- Object obj = store.get(KEY_LEFT_REAR);
- if (obj instanceof SingleTireStatus) {
- return (SingleTireStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new SingleTireStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_LEFT_REAR, e);
- }
- }
- return null;
+ return (SingleTireStatus) getObject(SingleTireStatus.class, KEY_LEFT_REAR);
}
public void setRightRear(SingleTireStatus rightRear) {
- if (rightRear != null) {
- store.put(KEY_RIGHT_REAR, rightRear);
- } else {
- store.remove(KEY_RIGHT_REAR);
- }
+ setValue(KEY_RIGHT_REAR, rightRear);
}
@SuppressWarnings("unchecked")
public SingleTireStatus getRightRear() {
- Object obj = store.get(KEY_RIGHT_REAR);
- if (obj instanceof SingleTireStatus) {
- return (SingleTireStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new SingleTireStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_RIGHT_REAR, e);
- }
- }
- return null;
+ return (SingleTireStatus) getObject(SingleTireStatus.class, KEY_RIGHT_REAR);
}
public void setInnerLeftRear(SingleTireStatus innerLeftRear) {
- if (innerLeftRear != null) {
- store.put(KEY_INNER_LEFT_REAR, innerLeftRear);
- } else {
- store.remove(KEY_INNER_LEFT_REAR);
- }
+ setValue(KEY_INNER_LEFT_REAR, innerLeftRear);
}
@SuppressWarnings("unchecked")
public SingleTireStatus getInnerLeftRear() {
- Object obj = store.get(KEY_INNER_LEFT_REAR);
- if (obj instanceof SingleTireStatus) {
- return (SingleTireStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new SingleTireStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_INNER_LEFT_REAR, e);
- }
- }
- return null;
+ return (SingleTireStatus) getObject(SingleTireStatus.class, KEY_INNER_LEFT_REAR);
}
public void setInnerRightRear(SingleTireStatus innerRightRear) {
- if (innerRightRear != null) {
- store.put(KEY_INNER_RIGHT_REAR, innerRightRear);
- } else {
- store.remove(KEY_INNER_RIGHT_REAR);
- }
+ setValue(KEY_INNER_RIGHT_REAR, innerRightRear);
}
@SuppressWarnings("unchecked")
public SingleTireStatus getInnerRightRear() {
- Object obj = store.get(KEY_INNER_RIGHT_REAR);
- if (obj instanceof SingleTireStatus) {
- return (SingleTireStatus) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new SingleTireStatus((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_INNER_RIGHT_REAR, e);
- }
- }
- return null;
+ return (SingleTireStatus) getObject(SingleTireStatus.class, KEY_INNER_RIGHT_REAR);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchCoord.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchCoord.java index 95f793fe6..2c0a1a260 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchCoord.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchCoord.java @@ -60,27 +60,19 @@ public class TouchCoord extends RPCStruct { }
public void setX(Integer x) {
- if (x != null) {
- store.put(KEY_X, x);
- } else {
- store.remove(KEY_X);
- }
+ setValue(KEY_X, x);
}
public Integer getX() {
- return (Integer) store.get(KEY_X);
+ return getInteger(KEY_X);
}
public void setY(Integer y) {
- if (y != null) {
- store.put(KEY_Y, y);
- } else {
- store.remove(KEY_Y);
- }
+ setValue(KEY_Y, y);
}
public Integer getY() {
- return (Integer) store.get(KEY_Y);
+ return getInteger(KEY_Y);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchEvent.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchEvent.java index 76e3c4207..f99b0a8e2 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchEvent.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchEvent.java @@ -1,10 +1,11 @@ package com.smartdevicelink.proxy.rpc;
+import com.smartdevicelink.proxy.RPCStruct;
+
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
-import com.smartdevicelink.proxy.RPCStruct;
/**
* <p>For touchscreen interactions, the mode of how the choices are presented.</p>
*
@@ -73,15 +74,11 @@ public class TouchEvent extends RPCStruct { }
public void setId(Integer id) {
- if (id != null) {
- store.put(KEY_ID, id);
- } else {
- store.remove(KEY_ID);
- }
+ setValue(KEY_ID, id);
}
public Integer getId() {
- return (Integer) store.get(KEY_ID);
+ return getInteger(KEY_ID);
}
/**
@@ -96,8 +93,8 @@ public class TouchEvent extends RPCStruct { @SuppressWarnings("unchecked")
public List<Long> getTimestamps() {
- if(store.get(KEY_TS) instanceof List<?>){
- List<?> list = (List<?>)store.get(KEY_TS);
+ if(getValue(KEY_TS) instanceof List<?>){
+ List<?> list = (List<?>) getValue(KEY_TS);
if(list != null && list.size()>0){
Object obj = list.get(0);
if(obj instanceof Integer){ //Backwards case
@@ -117,11 +114,7 @@ public class TouchEvent extends RPCStruct { }
public void setTimestamps(List<Long> ts){
- if (ts != null) {
- store.put(KEY_TS, ts);
- } else {
- store.remove(KEY_TS);
- }
+ setValue(KEY_TS, ts);
}
/**
@@ -143,24 +136,9 @@ public class TouchEvent extends RPCStruct { public List<TouchCoord> getC() {
return getTouchCoordinates();
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("unchecked")
public List<TouchCoord> getTouchCoordinates() {
- if (store.get(KEY_C) instanceof List<?>) {
- List<?> list = (List<?>)store.get(KEY_C);
- if (list != null && list.size() > 0) {
- Object obj = list.get(0);
- if (obj instanceof TouchCoord) {
- return (List<TouchCoord>) list;
- } else if (obj instanceof Hashtable) {
- List<TouchCoord> newList = new ArrayList<TouchCoord>();
- for (Object hashObj : list) {
- newList.add(new TouchCoord((Hashtable<String, Object>) hashObj));
- }
- return newList;
- }
- }
- }
- return null;
+ return (List<TouchCoord>) getObject(TouchCoord.class, KEY_C);
}
/**
@@ -174,10 +152,6 @@ public class TouchEvent extends RPCStruct { }
public void setTouchCoordinates( List<TouchCoord> c ) {
- if (c != null) {
- store.put(KEY_C, c );
- } else {
- store.remove(KEY_C);
- }
+ setValue(KEY_C, c);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchEventCapabilities.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchEventCapabilities.java index b67e5b61a..668c81e0d 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchEventCapabilities.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/TouchEventCapabilities.java @@ -54,38 +54,26 @@ public class TouchEventCapabilities extends RPCStruct { }
public void setPressAvailable(Boolean pressAvailable) {
- if (pressAvailable != null) {
- store.put(KEY_PRESS_AVAILABLE, pressAvailable);
- } else {
- store.remove(KEY_PRESS_AVAILABLE);
- }
+ setValue(KEY_PRESS_AVAILABLE, pressAvailable);
}
public Boolean getPressAvailable() {
- return (Boolean) store.get(KEY_PRESS_AVAILABLE);
+ return getBoolean(KEY_PRESS_AVAILABLE);
}
public void setMultiTouchAvailable(Boolean multiTouchAvailable) {
- if (multiTouchAvailable != null) {
- store.put(KEY_MULTI_TOUCH_AVAILABLE, multiTouchAvailable);
- } else {
- store.remove(KEY_MULTI_TOUCH_AVAILABLE);
- }
+ setValue(KEY_MULTI_TOUCH_AVAILABLE, multiTouchAvailable);
}
public Boolean getMultiTouchAvailable() {
- return (Boolean) store.get(KEY_MULTI_TOUCH_AVAILABLE);
+ return getBoolean(KEY_MULTI_TOUCH_AVAILABLE);
}
public void setDoublePressAvailable(Boolean doublePressAvailable) {
- if (doublePressAvailable != null) {
- store.put(KEY_DOUBLE_PRESS_AVAILABLE, doublePressAvailable);
- } else {
- store.remove(KEY_DOUBLE_PRESS_AVAILABLE);
- }
+ setValue(KEY_DOUBLE_PRESS_AVAILABLE, doublePressAvailable);
}
public Boolean getDoublePressAvailable() {
- return (Boolean) store.get(KEY_DOUBLE_PRESS_AVAILABLE);
+ return getBoolean(KEY_DOUBLE_PRESS_AVAILABLE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Turn.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Turn.java index 437e176a5..6cebac7f1 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Turn.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/Turn.java @@ -1,8 +1,9 @@ package com.smartdevicelink.proxy.rpc; -import java.util.Hashtable; - import com.smartdevicelink.proxy.RPCStruct; +import com.smartdevicelink.proxy.rpc.enums.VehicleDataResultCode; + +import java.util.Hashtable; /** * Describes a navigation turn including an optional icon @@ -51,12 +52,7 @@ public class Turn extends RPCStruct{ * the text to describe the turn (e.g. streetname) */ public void setNavigationText(String navigationText){ - if(navigationText != null){ - store.put(KEY_NAVIGATION_TEXT, navigationText); - } - else{ - store.remove(KEY_NAVIGATION_TEXT); - } + setValue(KEY_NAVIGATION_TEXT, navigationText); } /** @@ -65,7 +61,7 @@ public class Turn extends RPCStruct{ * @return the text to describe the turn (e.g. streetname) */ public String getNavigationText(){ - return (String) store.get(KEY_NAVIGATION_TEXT); + return getString(KEY_NAVIGATION_TEXT); } /** @@ -75,11 +71,7 @@ public class Turn extends RPCStruct{ * the image to be shown for a turn */ public void setTurnIcon(Image turnIcon){ - if (turnIcon != null) { - store.put(KEY_TURN_IMAGE, turnIcon); - } else { - store.remove(KEY_TURN_IMAGE); - } + setValue(KEY_TURN_IMAGE, turnIcon); } /** @@ -89,13 +81,7 @@ public class Turn extends RPCStruct{ */ @SuppressWarnings("unchecked") public Image getTurnIcon(){ - Object obj = store.get(KEY_TURN_IMAGE); - if (obj instanceof Image) { - return (Image) obj; - } else if (obj instanceof Hashtable) { - return new Image((Hashtable<String, Object>) obj); - } - return null; + return (Image) getObject(Image.class, KEY_TURN_IMAGE); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeButton.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeButton.java index 33567a8af..521800426 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeButton.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeButton.java @@ -1,11 +1,11 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.ButtonName;
+import java.util.Hashtable;
+
/**
* Deletes a subscription to button notifications for the specified button. For
* more information about button subscriptions, see {@linkplain SubscribeButton}
@@ -76,13 +76,7 @@ public class UnsubscribeButton extends RPCRequest { * {@linkplain com.smartdevicelink.proxy.rpc.enums.ButtonName}</i>
*/
public ButtonName getButtonName() {
- Object obj = parameters.get(KEY_BUTTON_NAME);
- if (obj instanceof ButtonName) {
- return (ButtonName) obj;
- } else if (obj instanceof String) {
- return ButtonName.valueForString((String) obj);
- }
- return null;
+ return (ButtonName) getObject(ButtonName.class, KEY_BUTTON_NAME);
}
/**
* Sets the name of the button to unsubscribe from
@@ -92,10 +86,6 @@ public class UnsubscribeButton extends RPCRequest { * {@linkplain com.smartdevicelink.proxy.rpc.enums.ButtonName}</i>
*/
public void setButtonName( ButtonName buttonName ) {
- if (buttonName != null) {
- parameters.put(KEY_BUTTON_NAME, buttonName );
- } else {
- parameters.remove(KEY_BUTTON_NAME);
- }
+ setParameters(KEY_BUTTON_NAME, buttonName);
}
}
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 668b31fd9..8a50ec286 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 @@ -283,11 +283,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setGps(Boolean gps) {
- if (gps != null) {
- parameters.put(KEY_GPS, gps);
- } else {
- parameters.remove(KEY_GPS);
- }
+ setParameters(KEY_GPS, gps);
}
/**
@@ -297,7 +293,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * unsubscribed.
*/
public Boolean getGps() {
- return (Boolean) parameters.get(KEY_GPS);
+ return getBoolean(KEY_GPS);
}
/**
@@ -307,11 +303,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setSpeed(Boolean speed) {
- if (speed != null) {
- parameters.put(KEY_SPEED, speed);
- } else {
- parameters.remove(KEY_SPEED);
- }
+ setParameters(KEY_SPEED, speed);
}
/**
@@ -321,7 +313,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * unsubscribed.
*/
public Boolean getSpeed() {
- return (Boolean) parameters.get(KEY_SPEED);
+ return getBoolean(KEY_SPEED);
}
/**
@@ -331,11 +323,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setRpm(Boolean rpm) {
- if (rpm != null) {
- parameters.put(KEY_RPM, rpm);
- } else {
- parameters.remove(KEY_RPM);
- }
+ setParameters(KEY_RPM, rpm);
}
/**
@@ -345,7 +333,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * unsubscribed.
*/
public Boolean getRpm() {
- return (Boolean) parameters.get(KEY_RPM);
+ return getBoolean(KEY_RPM);
}
/**
@@ -355,11 +343,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setFuelLevel(Boolean fuelLevel) {
- if (fuelLevel != null) {
- parameters.put(KEY_FUEL_LEVEL, fuelLevel);
- } else {
- parameters.remove(KEY_FUEL_LEVEL);
- }
+ setParameters(KEY_FUEL_LEVEL, fuelLevel);
}
/**
@@ -370,7 +354,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * been unsubscribed.
*/
public Boolean getFuelLevel() {
- return (Boolean) parameters.get(KEY_FUEL_LEVEL);
+ return getBoolean(KEY_FUEL_LEVEL);
}
/**
@@ -403,11 +387,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setFuelLevelState(Boolean fuelLevelState) {
- if (fuelLevelState != null) {
- parameters.put(KEY_FUEL_LEVEL_STATE, fuelLevelState);
- } else {
- parameters.remove(KEY_FUEL_LEVEL_STATE);
- }
+ setParameters(KEY_FUEL_LEVEL_STATE, fuelLevelState);
}
/**
@@ -418,7 +398,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getFuelLevelState() {
- return (Boolean) parameters.get(KEY_FUEL_LEVEL_STATE);
+ return getBoolean(KEY_FUEL_LEVEL_STATE);
}
/**
@@ -428,11 +408,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setInstantFuelConsumption(Boolean instantFuelConsumption) {
- if (instantFuelConsumption != null) {
- parameters.put(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
- } else {
- parameters.remove(KEY_INSTANT_FUEL_CONSUMPTION);
- }
+ setParameters(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
}
/**
@@ -443,7 +419,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getInstantFuelConsumption() {
- return (Boolean) parameters.get(KEY_INSTANT_FUEL_CONSUMPTION);
+ return getBoolean(KEY_INSTANT_FUEL_CONSUMPTION);
}
/**
@@ -453,11 +429,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setExternalTemperature(Boolean externalTemperature) {
- if (externalTemperature != null) {
- parameters.put(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
- } else {
- parameters.remove(KEY_EXTERNAL_TEMPERATURE);
- }
+ setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
}
/**
@@ -468,7 +440,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getExternalTemperature() {
- return (Boolean) parameters.get(KEY_EXTERNAL_TEMPERATURE);
+ return getBoolean(KEY_EXTERNAL_TEMPERATURE);
}
/**
@@ -478,11 +450,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setPrndl(Boolean prndl) {
- if (prndl != null) {
- parameters.put(KEY_PRNDL, prndl);
- } else {
- parameters.remove(KEY_PRNDL);
- }
+ setParameters(KEY_PRNDL, prndl);
}
/**
@@ -493,7 +461,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getPrndl() {
- return (Boolean) parameters.get(KEY_PRNDL);
+ return getBoolean(KEY_PRNDL);
}
/**
@@ -503,11 +471,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setTirePressure(Boolean tirePressure) {
- if (tirePressure != null) {
- parameters.put(KEY_TIRE_PRESSURE, tirePressure);
- } else {
- parameters.remove(KEY_TIRE_PRESSURE);
- }
+ setParameters(KEY_TIRE_PRESSURE, tirePressure);
}
/**
@@ -518,7 +482,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getTirePressure() {
- return (Boolean) parameters.get(KEY_TIRE_PRESSURE);
+ return getBoolean(KEY_TIRE_PRESSURE);
}
/**
@@ -528,11 +492,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setOdometer(Boolean odometer) {
- if (odometer != null) {
- parameters.put(KEY_ODOMETER, odometer);
- } else {
- parameters.remove(KEY_ODOMETER);
- }
+ setParameters(KEY_ODOMETER, odometer);
}
/**
@@ -543,7 +503,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getOdometer() {
- return (Boolean) parameters.get(KEY_ODOMETER);
+ return getBoolean(KEY_ODOMETER);
}
/**
@@ -553,11 +513,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setBeltStatus(Boolean beltStatus) {
- if (beltStatus != null) {
- parameters.put(KEY_BELT_STATUS, beltStatus);
- } else {
- parameters.remove(KEY_BELT_STATUS);
- }
+ setParameters(KEY_BELT_STATUS, beltStatus);
}
/**
@@ -568,7 +524,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getBeltStatus() {
- return (Boolean) parameters.get(KEY_BELT_STATUS);
+ return getBoolean(KEY_BELT_STATUS);
}
/**
@@ -578,11 +534,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setBodyInformation(Boolean bodyInformation) {
- if (bodyInformation != null) {
- parameters.put(KEY_BODY_INFORMATION, bodyInformation);
- } else {
- parameters.remove(KEY_BODY_INFORMATION);
- }
+ setParameters(KEY_BODY_INFORMATION, bodyInformation);
}
/**
@@ -593,7 +545,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getBodyInformation() {
- return (Boolean) parameters.get(KEY_BODY_INFORMATION);
+ return getBoolean(KEY_BODY_INFORMATION);
}
/**
@@ -603,11 +555,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setDeviceStatus(Boolean deviceStatus) {
- if (deviceStatus != null) {
- parameters.put(KEY_DEVICE_STATUS, deviceStatus);
- } else {
- parameters.remove(KEY_DEVICE_STATUS);
- }
+ setParameters(KEY_DEVICE_STATUS, deviceStatus);
}
/**
@@ -618,7 +566,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getDeviceStatus() {
- return (Boolean) parameters.get(KEY_DEVICE_STATUS);
+ return getBoolean(KEY_DEVICE_STATUS);
}
/**
@@ -628,11 +576,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setDriverBraking(Boolean driverBraking) {
- if (driverBraking != null) {
- parameters.put(KEY_DRIVER_BRAKING, driverBraking);
- } else {
- parameters.remove(KEY_DRIVER_BRAKING);
- }
+ setParameters(KEY_DRIVER_BRAKING, driverBraking);
}
/**
@@ -643,7 +587,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getDriverBraking() {
- return (Boolean) parameters.get(KEY_DRIVER_BRAKING);
+ return getBoolean(KEY_DRIVER_BRAKING);
}
/**
@@ -653,11 +597,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setWiperStatus(Boolean wiperStatus) {
- if (wiperStatus != null) {
- parameters.put(KEY_WIPER_STATUS, wiperStatus);
- } else {
- parameters.remove(KEY_WIPER_STATUS);
- }
+ setParameters(KEY_WIPER_STATUS, wiperStatus);
}
/**
@@ -668,7 +608,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getWiperStatus() {
- return (Boolean) parameters.get(KEY_WIPER_STATUS);
+ return getBoolean(KEY_WIPER_STATUS);
}
/**
@@ -678,11 +618,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setHeadLampStatus(Boolean headLampStatus) {
- if (headLampStatus != null) {
- parameters.put(KEY_HEAD_LAMP_STATUS, headLampStatus);
- } else {
- parameters.remove(KEY_HEAD_LAMP_STATUS);
- }
+ setParameters(KEY_HEAD_LAMP_STATUS, headLampStatus);
}
/**
@@ -693,7 +629,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getHeadLampStatus() {
- return (Boolean) parameters.get(KEY_HEAD_LAMP_STATUS);
+ return getBoolean(KEY_HEAD_LAMP_STATUS);
}
/**
@@ -703,11 +639,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setEngineTorque(Boolean engineTorque) {
- if (engineTorque != null) {
- parameters.put(KEY_ENGINE_TORQUE, engineTorque);
- } else {
- parameters.remove(KEY_ENGINE_TORQUE);
- }
+ setParameters(KEY_ENGINE_TORQUE, engineTorque);
}
/**
@@ -718,7 +650,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getEngineTorque() {
- return (Boolean) parameters.get(KEY_ENGINE_TORQUE);
+ return getBoolean(KEY_ENGINE_TORQUE);
}
/**
@@ -728,11 +660,7 @@ public class UnsubscribeVehicleData extends RPCRequest { * a boolean value
*/
public void setAccPedalPosition(Boolean accPedalPosition) {
- if (accPedalPosition != null) {
- parameters.put(KEY_ACC_PEDAL_POSITION, accPedalPosition);
- } else {
- parameters.remove(KEY_ACC_PEDAL_POSITION);
- }
+ setParameters(KEY_ACC_PEDAL_POSITION, accPedalPosition);
}
/**
@@ -743,69 +671,45 @@ public class UnsubscribeVehicleData extends RPCRequest { * has been unsubscribed.
*/
public Boolean getAccPedalPosition() {
- return (Boolean) parameters.get(KEY_ACC_PEDAL_POSITION);
+ return getBoolean(KEY_ACC_PEDAL_POSITION);
}
public void setSteeringWheelAngle(Boolean steeringWheelAngle) {
- if (steeringWheelAngle != null) {
- parameters.put(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
- } else {
- parameters.remove(KEY_STEERING_WHEEL_ANGLE);
- }
+ setParameters(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
}
public Boolean getSteeringWheelAngle() {
- return (Boolean) parameters.get(KEY_STEERING_WHEEL_ANGLE);
+ return getBoolean(KEY_STEERING_WHEEL_ANGLE);
}
public void setECallInfo(Boolean eCallInfo) {
- if (eCallInfo != null) {
- parameters.put(KEY_E_CALL_INFO, eCallInfo);
- } else {
- parameters.remove(KEY_E_CALL_INFO);
- }
+ setParameters(KEY_E_CALL_INFO, eCallInfo);
}
public Boolean getECallInfo() {
- return (Boolean) parameters.get(KEY_E_CALL_INFO);
+ return getBoolean(KEY_E_CALL_INFO);
}
public void setAirbagStatus(Boolean airbagStatus) {
- if (airbagStatus != null) {
- parameters.put(KEY_AIRBAG_STATUS, airbagStatus);
- } else {
- parameters.remove(KEY_AIRBAG_STATUS);
- }
+ setParameters(KEY_AIRBAG_STATUS, airbagStatus);
}
public Boolean getAirbagStatus() {
- return (Boolean) parameters.get(KEY_AIRBAG_STATUS);
+ return getBoolean(KEY_AIRBAG_STATUS);
}
public void setEmergencyEvent(Boolean emergencyEvent) {
- if (emergencyEvent != null) {
- parameters.put(KEY_EMERGENCY_EVENT, emergencyEvent);
- } else {
- parameters.remove(KEY_EMERGENCY_EVENT);
- }
+ setParameters(KEY_EMERGENCY_EVENT, emergencyEvent);
}
public Boolean getEmergencyEvent() {
- return (Boolean) parameters.get(KEY_EMERGENCY_EVENT);
+ return getBoolean(KEY_EMERGENCY_EVENT);
}
public void setClusterModeStatus(Boolean clusterModeStatus) {
- if (clusterModeStatus != null) {
- parameters.put(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
- } else {
- parameters.remove(KEY_CLUSTER_MODE_STATUS);
- }
+ setParameters(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
}
public Boolean getClusterModeStatus() {
- return (Boolean) parameters.get(KEY_CLUSTER_MODE_STATUS);
+ return getBoolean(KEY_CLUSTER_MODE_STATUS);
}
public void setMyKey(Boolean myKey) {
- if (myKey != null) {
- parameters.put(KEY_MY_KEY, myKey);
- } else {
- parameters.remove(KEY_MY_KEY);
- }
+ setParameters(KEY_MY_KEY, myKey);
}
public Boolean getMyKey() {
- return (Boolean) parameters.get(KEY_MY_KEY);
+ return getBoolean(KEY_MY_KEY);
}
}
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 92d9a46df..af3c94444 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 @@ -6,6 +6,8 @@ import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCResponse;
import com.smartdevicelink.util.DebugTool;
+import static android.provider.Contacts.SettingsColumns.KEY;
+
/**
* Unsubscribe Vehicle Data Response is sent, when UnsubscribeVehicleData has been called.
*
@@ -60,11 +62,7 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { * @param gps
*/
public void setGps(VehicleDataResult gps) {
- if (gps != null) {
- parameters.put(KEY_GPS, gps);
- } else {
- parameters.remove(KEY_GPS);
- }
+ setParameters(KEY_GPS, gps);
}
/**
* Gets Gps
@@ -72,28 +70,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getGps() {
- Object obj = parameters.get(KEY_GPS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_GPS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_GPS);
}
/**
* Sets Speed
* @param speed
*/
public void setSpeed(VehicleDataResult speed) {
- if (speed != null) {
- parameters.put(KEY_SPEED, speed);
- } else {
- parameters.remove(KEY_SPEED);
- }
+ setParameters(KEY_SPEED, speed);
}
/**
* Gets Speed
@@ -101,28 +85,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getSpeed() {
- Object obj = parameters.get(KEY_SPEED);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_SPEED, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_SPEED);
}
/**
* Sets rpm
* @param rpm
*/
public void setRpm(VehicleDataResult rpm) {
- if (rpm != null) {
- parameters.put(KEY_RPM, rpm);
- } else {
- parameters.remove(KEY_RPM);
- }
+ setParameters(KEY_RPM, rpm);
}
/**
* Gets rpm
@@ -130,28 +100,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getRpm() {
- Object obj = parameters.get(KEY_RPM);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_RPM, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_RPM);
}
/**
* Sets Fuel Level
* @param fuelLevel
*/
public void setFuelLevel(VehicleDataResult fuelLevel) {
- if (fuelLevel != null) {
- parameters.put(KEY_FUEL_LEVEL, fuelLevel);
- } else {
- parameters.remove(KEY_FUEL_LEVEL);
- }
+ setParameters(KEY_FUEL_LEVEL, fuelLevel);
}
/**
* Gets Fuel Level
@@ -159,17 +115,7 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getFuelLevel() {
- Object obj = parameters.get(KEY_FUEL_LEVEL);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_FUEL_LEVEL, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_FUEL_LEVEL);
}
/**
* Sets Fuel Level State
@@ -192,11 +138,7 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { * @param fuelLevel_State
*/
public void setFuelLevelState(VehicleDataResult fuelLevelState) {
- if (fuelLevelState != null) {
- parameters.put(KEY_FUEL_LEVEL_STATE, fuelLevelState);
- } else {
- parameters.remove(KEY_FUEL_LEVEL_STATE);
- }
+ setParameters(KEY_FUEL_LEVEL_STATE, fuelLevelState);
}
/**
* Gets Fuel Level State
@@ -204,24 +146,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getFuelLevelState() {
- Object obj = parameters.get(KEY_FUEL_LEVEL_STATE);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_FUEL_LEVEL_STATE);
}
/**
* Sets Instant Fuel Comsumption
* @param instantFuelConsumption
*/
public void setInstantFuelConsumption(VehicleDataResult instantFuelConsumption) {
- if (instantFuelConsumption != null) {
- parameters.put(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
- } else {
- parameters.remove(KEY_INSTANT_FUEL_CONSUMPTION);
- }
+ setParameters(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
}
/**
* Gets Instant Fuel Comsumption
@@ -229,28 +161,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getInstantFuelConsumption() {
- Object obj = parameters.get(KEY_INSTANT_FUEL_CONSUMPTION);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_INSTANT_FUEL_CONSUMPTION, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_INSTANT_FUEL_CONSUMPTION);
}
/**
* Sets External Temperature
* @param externalTemperature
*/
public void setExternalTemperature(VehicleDataResult externalTemperature) {
- if (externalTemperature != null) {
- parameters.put(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
- } else {
- parameters.remove(KEY_EXTERNAL_TEMPERATURE);
- }
+ setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
}
/**
* Gets External Temperature
@@ -258,28 +176,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getExternalTemperature() {
- Object obj = parameters.get(KEY_EXTERNAL_TEMPERATURE);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_EXTERNAL_TEMPERATURE, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_EXTERNAL_TEMPERATURE);
}
/**
* Gets currently selected gear data
* @param prndl
*/
public void setPrndl(VehicleDataResult prndl) {
- if (prndl != null) {
- parameters.put(KEY_PRNDL, prndl);
- } else {
- parameters.remove(KEY_PRNDL);
- }
+ setParameters(KEY_PRNDL, prndl);
}
/**
* Gets currently selected gear data
@@ -287,28 +191,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getPrndl() {
- Object obj = parameters.get(KEY_PRNDL);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_PRNDL, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_PRNDL);
}
/**
* Sets Tire Pressure
* @param tirePressure
*/
public void setTirePressure(VehicleDataResult tirePressure) {
- if (tirePressure != null) {
- parameters.put(KEY_TIRE_PRESSURE, tirePressure);
- } else {
- parameters.remove(KEY_TIRE_PRESSURE);
- }
+ setParameters(KEY_TIRE_PRESSURE, tirePressure);
}
/**
* Gets Tire Pressure
@@ -316,28 +206,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getTirePressure() {
- Object obj = parameters.get(KEY_TIRE_PRESSURE);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_TIRE_PRESSURE, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_TIRE_PRESSURE);
}
/**
* Sets Odometer
* @param odometer
*/
public void setOdometer(VehicleDataResult odometer) {
- if (odometer != null) {
- parameters.put(KEY_ODOMETER, odometer);
- } else {
- parameters.remove(KEY_ODOMETER);
- }
+ setParameters(KEY_ODOMETER, odometer);
}
/**
* Gets Odometer
@@ -345,28 +221,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getOdometer() {
- Object obj = parameters.get(KEY_ODOMETER);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_ODOMETER, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ODOMETER);
}
/**
* Sets Belt Status
* @param beltStatus
*/
public void setBeltStatus(VehicleDataResult beltStatus) {
- if (beltStatus != null) {
- parameters.put(KEY_BELT_STATUS, beltStatus);
- } else {
- parameters.remove(KEY_BELT_STATUS);
- }
+ setParameters(KEY_BELT_STATUS, beltStatus);
}
/**
* Gets Belt Status
@@ -374,28 +236,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getBeltStatus() {
- Object obj = parameters.get(KEY_BELT_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_BELT_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_BELT_STATUS);
}
/**
* Sets Body Information
* @param bodyInformation
*/
public void setBodyInformation(VehicleDataResult bodyInformation) {
- if (bodyInformation != null) {
- parameters.put(KEY_BODY_INFORMATION, bodyInformation);
- } else {
- parameters.remove(KEY_BODY_INFORMATION);
- }
+ setParameters(KEY_BODY_INFORMATION, bodyInformation);
}
/**
* Gets Body Information
@@ -403,28 +251,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getBodyInformation() {
- Object obj = parameters.get(KEY_BODY_INFORMATION);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_BODY_INFORMATION, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_BODY_INFORMATION);
}
/**
* Sets Device Status
* @param deviceStatus
*/
public void setDeviceStatus(VehicleDataResult deviceStatus) {
- if (deviceStatus != null) {
- parameters.put(KEY_DEVICE_STATUS, deviceStatus);
- } else {
- parameters.remove(KEY_DEVICE_STATUS);
- }
+ setParameters(KEY_DEVICE_STATUS, deviceStatus);
}
/**
* Gets Device Status
@@ -432,28 +266,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getDeviceStatus() {
- Object obj = parameters.get(KEY_DEVICE_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_DEVICE_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_DEVICE_STATUS);
}
/**
* Sets Driver Braking
* @param driverBraking
*/
public void setDriverBraking(VehicleDataResult driverBraking) {
- if (driverBraking != null) {
- parameters.put(KEY_DRIVER_BRAKING, driverBraking);
- } else {
- parameters.remove(KEY_DRIVER_BRAKING);
- }
+ setParameters(KEY_DRIVER_BRAKING, driverBraking);
}
/**
* Gets Driver Braking
@@ -461,28 +281,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getDriverBraking() {
- Object obj = parameters.get(KEY_DRIVER_BRAKING);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_DRIVER_BRAKING, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_DRIVER_BRAKING);
}
/**
* Sets Wiper Status
* @param wiperStatus
*/
public void setWiperStatus(VehicleDataResult wiperStatus) {
- if (wiperStatus != null) {
- parameters.put(KEY_WIPER_STATUS, wiperStatus);
- } else {
- parameters.remove(KEY_WIPER_STATUS);
- }
+ setParameters(KEY_WIPER_STATUS, wiperStatus);
}
/**
* Gets Wiper Status
@@ -490,28 +296,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getWiperStatus() {
- Object obj = parameters.get(KEY_WIPER_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_WIPER_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_WIPER_STATUS);
}
/**
* Sets Head Lamp Status
* @param headLampStatus
*/
public void setHeadLampStatus(VehicleDataResult headLampStatus) {
- if (headLampStatus != null) {
- parameters.put(KEY_HEAD_LAMP_STATUS, headLampStatus);
- } else {
- parameters.remove(KEY_HEAD_LAMP_STATUS);
- }
+ setParameters(KEY_HEAD_LAMP_STATUS, headLampStatus);
}
/**
* Gets Head Lamp Status
@@ -519,28 +311,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getHeadLampStatus() {
- Object obj = parameters.get(KEY_HEAD_LAMP_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_HEAD_LAMP_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_HEAD_LAMP_STATUS);
}
/**
* Sets Engine Torque
* @param engineTorque
*/
public void setEngineTorque(VehicleDataResult engineTorque) {
- if (engineTorque != null) {
- parameters.put(KEY_ENGINE_TORQUE, engineTorque);
- } else {
- parameters.remove(KEY_ENGINE_TORQUE);
- }
+ setParameters(KEY_ENGINE_TORQUE, engineTorque);
}
/**
* Gets Engine Torque
@@ -548,28 +326,14 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getEngineTorque() {
- Object obj = parameters.get(KEY_ENGINE_TORQUE);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_ENGINE_TORQUE, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ENGINE_TORQUE);
}
/**
* Sets AccPedal Position
* @param accPedalPosition
*/
public void setAccPedalPosition(VehicleDataResult accPedalPosition) {
- if (accPedalPosition != null) {
- parameters.put(KEY_ACC_PEDAL_POSITION, accPedalPosition);
- } else {
- parameters.remove(KEY_ACC_PEDAL_POSITION);
- }
+ setParameters(KEY_ACC_PEDAL_POSITION, accPedalPosition);
}
/**
* Gets AccPedal Position
@@ -577,145 +341,51 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { */
@SuppressWarnings("unchecked")
public VehicleDataResult getAccPedalPosition() {
- Object obj = parameters.get(KEY_ACC_PEDAL_POSITION);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_ACC_PEDAL_POSITION, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ACC_PEDAL_POSITION);
}
public void setSteeringWheelAngle(VehicleDataResult steeringWheelAngle) {
- if (steeringWheelAngle != null) {
- parameters.put(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
- } else {
- parameters.remove(KEY_STEERING_WHEEL_ANGLE);
- }
+ setParameters(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getSteeringWheelAngle() {
- Object obj = parameters.get(KEY_STEERING_WHEEL_ANGLE);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_STEERING_WHEEL_ANGLE, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_STEERING_WHEEL_ANGLE);
}
public void setECallInfo(VehicleDataResult eCallInfo) {
- if (eCallInfo != null) {
- parameters.put(KEY_E_CALL_INFO, eCallInfo);
- } else {
- parameters.remove(KEY_E_CALL_INFO);
- }
+ setParameters(KEY_E_CALL_INFO, eCallInfo);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getECallInfo() {
- Object obj = parameters.get(KEY_E_CALL_INFO);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_E_CALL_INFO, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_E_CALL_INFO);
}
public void setAirbagStatus(VehicleDataResult airbagStatus) {
- if (airbagStatus != null) {
- parameters.put(KEY_AIRBAG_STATUS, airbagStatus);
- } else {
- parameters.remove(KEY_AIRBAG_STATUS);
- }
+ setParameters(KEY_AIRBAG_STATUS, airbagStatus);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getAirbagStatus() {
- Object obj = parameters.get(KEY_AIRBAG_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_AIRBAG_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_AIRBAG_STATUS);
}
public void setEmergencyEvent(VehicleDataResult emergencyEvent) {
- if (emergencyEvent != null) {
- parameters.put(KEY_EMERGENCY_EVENT, emergencyEvent);
- } else {
- parameters.remove(KEY_EMERGENCY_EVENT);
- }
+ setParameters(KEY_EMERGENCY_EVENT, emergencyEvent);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getEmergencyEvent() {
- Object obj = parameters.get(KEY_EMERGENCY_EVENT);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_EMERGENCY_EVENT, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_EMERGENCY_EVENT);
}
public void setClusterModeStatus(VehicleDataResult clusterModeStatus) {
- if (clusterModeStatus != null) {
- parameters.put(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
- } else {
- parameters.remove(KEY_CLUSTER_MODE_STATUS);
- }
+ setParameters(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getClusterModeStatus() {
- Object obj = parameters.get(KEY_CLUSTER_MODE_STATUS);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_CLUSTER_MODE_STATUS, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_CLUSTER_MODE_STATUS);
}
public void setMyKey(VehicleDataResult myKey) {
- if (myKey != null) {
- parameters.put(KEY_MY_KEY, myKey);
- } else {
- parameters.remove(KEY_MY_KEY);
- }
+ setParameters(KEY_MY_KEY, myKey);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getMyKey() {
- Object obj = parameters.get(KEY_MY_KEY);
- if (obj instanceof VehicleDataResult) {
- return (VehicleDataResult) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new VehicleDataResult((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_MY_KEY, e);
- }
- }
- return null;
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_MY_KEY);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UpdateTurnList.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UpdateTurnList.java index ad2b41163..cb1dde7e4 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UpdateTurnList.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/UpdateTurnList.java @@ -1,12 +1,11 @@ package com.smartdevicelink.proxy.rpc; -import java.util.ArrayList; -import java.util.Hashtable; -import java.util.List; - import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCRequest; +import java.util.Hashtable; +import java.util.List; + /** * Updates the list of next maneuvers, which can be requested by the user pressing the softbutton "Turns" on the * Navigation base screen. Three softbuttons are predefined by the system: Up, Down, Close @@ -52,12 +51,7 @@ public class UpdateTurnList extends RPCRequest{ * <b>Notes: </b>Minsize=1; Maxsize=100</p> */ public void setTurnList(List<Turn> turnList){ - if(turnList != null){ - parameters.put(KEY_TURN_LIST, turnList); - } - else{ - parameters.remove(KEY_TURN_LIST); - } + setParameters(KEY_TURN_LIST, turnList); } /** @@ -67,23 +61,7 @@ public class UpdateTurnList extends RPCRequest{ */ @SuppressWarnings("unchecked") public List<Turn> getTurnList(){ - if(parameters.get(KEY_TURN_LIST) instanceof List<?>){ - List<?> list = (List<?>) parameters.get(KEY_TURN_LIST); - if(list != null && list.size() > 0){ - Object obj = list.get(0); - if(obj instanceof Turn){ - return (List<Turn>) list; - } - else if(obj instanceof Hashtable){ - List<Turn> newList = new ArrayList<Turn>(); - for(Object hashObj : list){ - newList.add(new Turn((Hashtable<String, Object>) hashObj)); - } - return newList; - } - } - } - return null; + return (List<Turn>) getObject(Turn.class, KEY_TURN_LIST); } /** @@ -94,23 +72,7 @@ public class UpdateTurnList extends RPCRequest{ */ @SuppressWarnings("unchecked") public List<SoftButton> getSoftButtons(){ - if(parameters.get(KEY_SOFT_BUTTONS) instanceof List<?>){ - List<?> list = (List<?>) parameters.get(KEY_SOFT_BUTTONS); - if(list != null && list.size() > 0){ - Object obj = list.get(0); - if(obj instanceof SoftButton){ - return (List<SoftButton>) list; - } - else if(obj instanceof Hashtable){ - List<SoftButton> newList = new ArrayList<SoftButton>(); - for(Object hashObj : list){ - newList.add(new SoftButton((Hashtable<String, Object>) hashObj)); - } - return newList; - } - } - } - return null; + return (List<SoftButton>) getObject(SoftButton.class, KEY_SOFT_BUTTONS); } /** @@ -129,12 +91,7 @@ public class UpdateTurnList extends RPCRequest{ */ public void setSoftButtons(List<SoftButton> softButtons){ - if(softButtons != null){ - parameters.put(KEY_SOFT_BUTTONS, softButtons); - } - else{ - parameters.remove(KEY_SOFT_BUTTONS); - } + setParameters(KEY_SOFT_BUTTONS, softButtons); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VehicleDataResult.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VehicleDataResult.java index ef466d727..c0965cd39 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VehicleDataResult.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VehicleDataResult.java @@ -57,35 +57,15 @@ public class VehicleDataResult extends RPCStruct { super(hash);
}
public void setDataType(VehicleDataType dataType) {
- if (dataType != null) {
- store.put(KEY_DATA_TYPE, dataType);
- } else {
- store.remove(KEY_DATA_TYPE);
- }
+ setValue(KEY_DATA_TYPE, dataType);
}
public VehicleDataType getDataType() {
- Object obj = store.get(KEY_DATA_TYPE);
- if (obj instanceof VehicleDataType) {
- return (VehicleDataType) obj;
- } else if (obj instanceof String) {
- return VehicleDataType.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataType) getObject(VehicleDataType.class, KEY_DATA_TYPE);
}
public void setResultCode(VehicleDataResultCode resultCode) {
- if (resultCode != null) {
- store.put(KEY_RESULT_CODE, resultCode);
- } else {
- store.remove(KEY_RESULT_CODE);
- }
+ setValue(KEY_RESULT_CODE, resultCode);
}
public VehicleDataResultCode getResultCode() {
- Object obj = store.get(KEY_RESULT_CODE);
- if (obj instanceof VehicleDataResultCode) {
- return (VehicleDataResultCode) obj;
- } else if (obj instanceof String) {
- return VehicleDataResultCode.valueForString((String) obj);
- }
- return null;
+ return (VehicleDataResultCode) getObject(VehicleDataResultCode.class, KEY_RESULT_CODE);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VehicleType.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VehicleType.java index 3f30774c4..e6f860007 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VehicleType.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VehicleType.java @@ -1,9 +1,9 @@ package com.smartdevicelink.proxy.rpc;
-import java.util.Hashtable;
-
import com.smartdevicelink.proxy.RPCStruct;
+import java.util.Hashtable;
+
/**
* Describes the type of vehicle the mobile phone is connected with.
* <p><b>Parameter List</b></p>
@@ -81,7 +81,7 @@ public class VehicleType extends RPCStruct { * @return the make of the vehicle
*/
public String getMake() {
- return (String) store.get(KEY_MAKE);
+ return getString(KEY_MAKE);
}
/**
@@ -89,11 +89,7 @@ public class VehicleType extends RPCStruct { *@param make the make of the vehicle
*/
public void setMake(String make) {
- if (make != null) {
- store.put(KEY_MAKE, make);
- } else {
- store.remove(KEY_MAKE);
- }
+ setValue(KEY_MAKE, make);
}
/**
@@ -101,7 +97,7 @@ public class VehicleType extends RPCStruct { * @return the model of the vehicle
*/
public String getModel() {
- return (String) store.get(KEY_MODEL);
+ return getString(KEY_MODEL);
}
/**
@@ -109,11 +105,7 @@ public class VehicleType extends RPCStruct { * @param model the model of the vehicle
*/
public void setModel(String model) {
- if (model != null) {
- store.put(KEY_MODEL, model);
- } else {
- store.remove(KEY_MODEL);
- }
+ setValue(KEY_MODEL, model);
}
/**
@@ -121,7 +113,7 @@ public class VehicleType extends RPCStruct { * @return the model year of the vehicle
*/
public String getModelYear() {
- return (String) store.get(KEY_MODEL_YEAR);
+ return getString(KEY_MODEL_YEAR);
}
/**
@@ -129,11 +121,7 @@ public class VehicleType extends RPCStruct { * @param modelYear the model year of the vehicle
*/
public void setModelYear(String modelYear) {
- if (modelYear != null) {
- store.put(KEY_MODEL_YEAR, modelYear);
- } else {
- store.remove(KEY_MODEL_YEAR);
- }
+ setValue(KEY_MODEL_YEAR, modelYear);
}
/**
@@ -141,7 +129,7 @@ public class VehicleType extends RPCStruct { * @return the trim of the vehicle
*/
public String getTrim() {
- return (String) store.get(KEY_TRIM);
+ return getString(KEY_TRIM);
}
/**
@@ -149,10 +137,6 @@ public class VehicleType extends RPCStruct { * @param trim the trim of the vehicle
*/
public void setTrim(String trim) {
- if (trim != null) {
- store.put(KEY_TRIM, trim);
- } else {
- store.remove(KEY_TRIM);
- }
+ setValue(KEY_TRIM, trim);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VideoStreamingCapability.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VideoStreamingCapability.java new file mode 100644 index 000000000..6600cf38d --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VideoStreamingCapability.java @@ -0,0 +1,52 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.proxy.RPCStruct; + +import java.util.Hashtable; +import java.util.List; + +/** + * Contains information about this system's video streaming capabilities. + */ + +public class VideoStreamingCapability extends RPCStruct { + public static final String KEY_PREFERRED_RESOLUTION = "preferredResolution"; + public static final String KEY_MAX_BITRATE = "maxBitrate"; + public static final String KEY_SUPPORTED_FORMATS = "supportedFormats"; + public static final String KEY_HAPTIC_SPATIAL_DATA_SUPPORTED = "hapticSpatialDataSupported"; + + public VideoStreamingCapability(){} + public VideoStreamingCapability(Hashtable<String, Object> hash){super(hash);} + + public void setPreferredResolution(ImageResolution res){ + setValue(KEY_PREFERRED_RESOLUTION, res); + } + + public ImageResolution getPreferredResolution(){ + return (ImageResolution) getObject(ImageResolution.class, KEY_PREFERRED_RESOLUTION); + } + + public void setMaxBitrate(Integer maxBitrate){ + setValue(KEY_MAX_BITRATE, maxBitrate); + } + + public Integer getMaxBitrate(){ + return getInteger(KEY_MAX_BITRATE); + } + + public void setSupportedFormats(List<VideoStreamingFormat> formats){ + setValue(KEY_SUPPORTED_FORMATS, formats); + } + + public List<VideoStreamingFormat> getSupportedFormats(){ + return (List<VideoStreamingFormat>) getObject(VideoStreamingFormat.class, KEY_SUPPORTED_FORMATS); + } + + public Boolean getIsHapticSpatialDataSupported() { + return getBoolean(KEY_HAPTIC_SPATIAL_DATA_SUPPORTED); + } + + public void setIsHapticSpatialDataSupported(Boolean hapticSpatialDataSupported) { + setValue(KEY_HAPTIC_SPATIAL_DATA_SUPPORTED, hapticSpatialDataSupported); + } +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VideoStreamingFormat.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VideoStreamingFormat.java new file mode 100644 index 000000000..274c076c5 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VideoStreamingFormat.java @@ -0,0 +1,35 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.proxy.RPCStruct; +import com.smartdevicelink.proxy.rpc.enums.VideoStreamingCodec; +import com.smartdevicelink.proxy.rpc.enums.VideoStreamingProtocol; + +import java.util.Hashtable; + +/** + * Video streaming formats and their specifications. + */ + +public class VideoStreamingFormat extends RPCStruct { + public static final String KEY_PROTOCOL = "protocol"; + public static final String KEY_CODEC = "codec"; + + public VideoStreamingFormat(){} + public VideoStreamingFormat(Hashtable<String, Object> hash){super(hash);} + + public void setProtocol(VideoStreamingProtocol protocol){ + setValue(KEY_PROTOCOL, protocol); + } + + public VideoStreamingProtocol getProtocol(){ + return (VideoStreamingProtocol) getObject(VideoStreamingProtocol.class, KEY_PROTOCOL); + } + + public void setCodec(VideoStreamingCodec codec){ + setValue(KEY_CODEC, codec); + } + + public VideoStreamingCodec getCodec(){ + return (VideoStreamingCodec) getObject(VideoStreamingCodec.class, KEY_CODEC); + } +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VrHelpItem.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VrHelpItem.java index f195b4cae..00474cd06 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VrHelpItem.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/VrHelpItem.java @@ -65,44 +65,22 @@ public class VrHelpItem extends RPCStruct { super(hash);
}
public void setText(String text) {
- if (text != null) {
- store.put(KEY_TEXT, text);
- } else {
- store.remove(KEY_TEXT);
- }
+ setValue(KEY_TEXT, text);
}
public String getText() {
- return (String) store.get(KEY_TEXT);
+ return getString(KEY_TEXT);
}
public void setImage(Image image) {
- if (image != null) {
- store.put(KEY_IMAGE, image);
- } else {
- store.remove(KEY_IMAGE);
- }
+ setValue(KEY_IMAGE, image);
}
@SuppressWarnings("unchecked")
public Image getImage() {
- Object obj = store.get(KEY_IMAGE);
- if (obj instanceof Image) {
- return (Image) obj;
- } else if (obj instanceof Hashtable) {
- try {
- return new Image((Hashtable<String, Object>) obj);
- } catch (Exception e) {
- DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_IMAGE, e);
- }
- }
- return null;
+ return (Image) getObject(Image.class, KEY_IMAGE);
}
public void setPosition(Integer position) {
- if (position != null) {
- store.put(KEY_POSITION, position);
- } else {
- store.remove(KEY_POSITION);
- }
+ setValue(KEY_POSITION, position);
}
public Integer getPosition() {
- return (Integer) store.get(KEY_POSITION);
+ return getInteger(KEY_POSITION);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/AppHMIType.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/AppHMIType.java index a6aed67d9..2a12bec1e 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/AppHMIType.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/AppHMIType.java @@ -39,6 +39,10 @@ public enum AppHMIType { */
TESTING,
/**
+ * Custom App Interfaces
+ */
+ PROJECTION,
+ /**
* System App
*/
SYSTEM;
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/Language.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/Language.java index 5f0a0b88f..4ac4f6264 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/Language.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/Language.java @@ -11,6 +11,83 @@ import java.util.EnumSet; */
public enum Language {
/**
+ * English - SA
+ */
+
+ EN_SA("EN-SA"),
+
+ /**
+ * Hebrew - IL
+ */
+
+ HE_IL("HE-IL"),
+
+ /**
+ * Romanian - RO
+ */
+
+ RO_RO("RO-RO"),
+
+ /**
+ * Ukrainian - UA
+ */
+
+ UK_UA("UK-UA"),
+
+ /**
+ * Indonesian - ID
+ */
+
+ ID_ID("ID-ID"),
+
+ /**
+ * Vietnamese - VN
+ */
+
+ VI_VN("VI-VN"),
+
+ /**
+ * Malay - MY
+ */
+
+ MS_MY("MS-MY"),
+
+ /**
+ * Hindi - IN
+ */
+
+ HI_IN("HI-IN"),
+
+ /**
+ * Dutch - BE
+ */
+
+ NL_BE("NL-BE"),
+
+ /**
+ * Greek - GR
+ */
+
+ EL_GR("EL-GR"),
+
+ /**
+ * Hungarian - HU
+ */
+
+ HU_HU("HU-HU"),
+
+ /**
+ * Finnish - FI
+ */
+
+ FI_FI("FI-FI"),
+
+ /**
+ * Slovak - SK
+ */
+
+ SK_SK("SK-SK"),
+ /**
* English - US
*/
@@ -129,7 +206,17 @@ public enum Language { * Norwegian - Norway
*/
- NO_NO("NO-NO");
+ NO_NO("NO-NO"),
+ /**
+ * English - India
+ */
+
+ EN_IN("EN-IN"),
+ /**
+ * Thai - Thailand
+ */
+
+ TH_TH("TH-TH");
private final String INTERNAL_NAME;
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MetadataType.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MetadataType.java new file mode 100644 index 000000000..9f51a6437 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/MetadataType.java @@ -0,0 +1,96 @@ +package com.smartdevicelink.proxy.rpc.enums; + +import java.util.EnumSet; + +/** + * Defines the metadata types that can be applied to text fields + * + */ +public enum MetadataType { + + /** + * The data in this field contains the title of the currently playing audio track. + */ + MEDIA_TITLE("mediaTitle"), + + /** + * The data in this field contains the artist or creator of the currently playing audio track. + */ + MEDIA_ARTIST("mediaArtist"), + + /** + * The data in this field contains the album title of the currently playing audio track. + */ + MEDIA_ALBUM("mediaAlbum"), + + /** + * The data in this field contains the creation year of the currently playing audio track. + */ + MEDIA_YEAR("mediaYear"), + + /** + * The data in this field contains the genre of the currently playing audio track. + */ + MEDIA_GENRE("mediaGenre"), + + /** + * The data in this field contains the name of the current source for the media. + */ + MEDIA_STATION("mediaStation"), + + /** + * The data in this field is a rating. + */ + RATING("rating"), + + /** + * The data in this field is the current temperature. + */ + CURRENT_TEMPERATURE("currentTemperature"), + + /** + * The data in this field is the maximum temperature for the day. + */ + MAXIMUM_TEMPERATURE("maximumTemperature"), + + /** + * The data in this field is the minimum temperature for the day. + */ + MINIMUM_TEMPERATURE("minimumTemperature"), + + /** + * The data in this field describes the current weather (ex. cloudy, clear, etc.). + */ + WEATHER_TERM("weatherTerm"), + + /** + * The data in this field describes the current humidity value. + */ + HUMIDITY("humidity"), + + + ; + + private final String internalName; + + private MetadataType(String internalName) { + this.internalName = internalName; + } + + public String toString() { + return this.internalName; + } + + public static MetadataType valueForString(String value) { + if(value == null){ + return null; + } + + for (MetadataType anEnum : EnumSet.allOf(MetadataType.class)) { + if (anEnum.toString().equals(value)) { + return anEnum; + } + } + return null; + } +} diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SystemCapabilityType.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SystemCapabilityType.java new file mode 100644 index 000000000..ebd7ddcf8 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/SystemCapabilityType.java @@ -0,0 +1,21 @@ +package com.smartdevicelink.proxy.rpc.enums; + +/** + * The SystemCapabilityType indicates which type of capability information exists in a SystemCapability struct. + */ + +public enum SystemCapabilityType { + NAVIGATION, + + PHONE_CALL, + + VIDEO_STREAMING; + + public static SystemCapabilityType 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/TouchType.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/TouchType.java index 952904915..7cc259aa4 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/TouchType.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/TouchType.java @@ -20,7 +20,11 @@ public enum TouchType { *
*/
- END;
+ END,
+ /** The user has made a cancellation gesture.
+ *
+ */
+ CANCEL;
/**
* Convert String to TouchType
* @param value String
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VideoStreamingCodec.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VideoStreamingCodec.java new file mode 100644 index 000000000..a41c1d064 --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VideoStreamingCodec.java @@ -0,0 +1,50 @@ +package com.smartdevicelink.proxy.rpc.enums; + +/** + * Enum for each type of video streaming codec. + */ + +public enum VideoStreamingCodec { + /** + * A block-oriented motion-compensation-based video compression standard. As of 2014 it is one + * of the most commonly used formats for the recording, compression, and distribution of video + * content. + */ + H264, + /** + * High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2, is a video + * compression standard, one of several potential successors to the widely used AVC + * (H.264 or MPEG-4 Part 10). In comparison to AVC, HEVC offers about double the data + * compression ratio at the same level of video quality, or substantially improved video quality + * at the same bit rate. It supports resolutions up to 8192x4320, including 8K UHD. + */ + H265, + /** + * Theora is derived from the formerly proprietary VP3 codec, released into the public domain by + * On2 Technologies. It is broadly comparable in design and bitrate efficiency to MPEG-4 Part 2, + * early versions of Windows Media Video, and RealVideo while lacking some of the features + * present in some of these other codecs. It is comparable in open standards philosophy to the + * BBC's Dirac codec. + */ + Theora, + /** + * VP8 can be multiplexed into the Matroska-based container format WebM along with Vorbis and + * Opus audio. The image format WebP is based on VP8's intra-frame coding. VP8's direct + * successor, VP9, and the emerging royalty-free internet video format AV1 from the Alliance + * for Open Media (AOMedia) are based on VP8. + */ + VP8, + /** + * Similar to VP8, but VP9 is customized for video resolutions beyond high-definition video + * (UHD) and also enables lossless compression. + */ + VP9; + + public static VideoStreamingCodec 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/VideoStreamingProtocol.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VideoStreamingProtocol.java new file mode 100644 index 000000000..412badcac --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/VideoStreamingProtocol.java @@ -0,0 +1,44 @@ +package com.smartdevicelink.proxy.rpc.enums; + +/** + * Enum for each type of video streaming protocol type. + */ + +public enum VideoStreamingProtocol { + /** + * Raw stream bytes that contains no timestamp data and is the lowest supported video streaming + */ + RAW, + /** + * RTP facilitates the transfer of real-time data. Information provided by this protocol include + * timestamps (for synchronization), sequence numbers (for packet loss and reordering detection) + * and the payload format which indicates the encoded format of the data. + */ + RTP, + /** + * The transmission of streaming data itself is not a task of RTSP. Most RTSP servers use the + * Real-time Transport Protocol (RTP) in conjunction with Real-time Control Protocol (RTCP) for + * media stream delivery. However, some vendors implement proprietary transport protocols. + */ + RTSP, + /** + * Real-Time Messaging Protocol (RTMP) was initially a proprietary protocol developed by + * Macromedia for streaming audio, video and data over the Internet, between a Flash player and + * a server. Macromedia is now owned by Adobe, which has released an incomplete version of the + * specification of the protocol for public use. + */ + RTMP, + /** + * The WebM container is based on a profile of Matroska. WebM initially supported VP8 video and + * Vorbis audio streams. In 2013 it was updated to accommodate VP9 video and Opus audio. + */ + WEBM; + + public static VideoStreamingProtocol valueForString(String value) { + try{ + return valueOf(value); + }catch(Exception e){ + return null; + } + } +} 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 81dbdd0b0..722fa54f9 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/streaming/AbstractPacketizer.java +++ b/sdl_android/src/main/java/com/smartdevicelink/streaming/AbstractPacketizer.java @@ -11,7 +11,7 @@ abstract public class AbstractPacketizer { protected IStreamListener _streamListener = null;
protected byte _rpcSessionID = 0;
-
+
protected SessionType _serviceType = null;
protected SdlSession _session = null;
protected InputStream is = null;
@@ -20,31 +20,39 @@ abstract public class AbstractPacketizer { protected boolean upts = false;
protected RPCRequest _request = null;
protected byte _wiproVersion = 1;
-
+
//protected long ts = 0, intervalBetweenReports = 5000, delta = 0;
protected long intervalBetweenReports = 5000, delta = 0;
- public AbstractPacketizer(IStreamListener streamListener, InputStream is, SessionType sType, byte rpcSessionID, SdlSession session) throws IOException {
- this._streamListener = streamListener;
+ public AbstractPacketizer(IStreamListener streamListener, InputStream is, SessionType sType, byte rpcSessionID, SdlSession session) throws IOException, IllegalArgumentException {
+ this._streamListener = streamListener;
this.is = is;
_rpcSessionID = rpcSessionID;
_serviceType = sType;
this._session = session;
- bufferSize = this._session.getMtu();
- buffer = new byte[bufferSize];
+ 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, byte wiproVersion, SdlSession session) throws IOException {
- this._streamListener = streamListener;
+
+ 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;
this._session = session;
- bufferSize = this._session.getMtu();
- buffer = new byte[bufferSize];
- }
+ if (this._session != null) {
+ bufferSize = this._session.getMtu();
+ buffer = new byte[bufferSize];
+ }else{
+ throw new IllegalArgumentException("Session variable is null");
+ }
+ }
public abstract void start() throws IOException;
@@ -53,4 +61,4 @@ abstract public class AbstractPacketizer { public abstract void pause();
public abstract void resume();
-}
+}
\ No newline at end of file diff --git a/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamPacketizer.java b/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamPacketizer.java index 525d94739..40cc7d5ed 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamPacketizer.java +++ b/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamPacketizer.java @@ -14,7 +14,14 @@ public class StreamPacketizer extends AbstractPacketizer implements Runnable{ private Thread t = null;
- private final static int BUFF_READ_SIZE = 1024;
+
+ private final static int TLS_MAX_RECORD_SIZE = 16384;
+ private final static int TLS_RECORD_HEADER_SIZE = 5;
+ private final static int TLS_RECORD_MES_AUTH_CDE_SIZE = 32;
+ private final static int TLS_MAX_RECORD_PADDING_SIZE = 256;
+
+
+ private final static int BUFF_READ_SIZE = TLS_MAX_RECORD_SIZE - TLS_RECORD_HEADER_SIZE - TLS_RECORD_MES_AUTH_CDE_SIZE - TLS_MAX_RECORD_PADDING_SIZE;
public SdlConnection sdlConnection = null;
private Object mPauseLock;
diff --git a/sdl_android/src/main/java/com/smartdevicelink/streaming/VideoStreamingParams.java b/sdl_android/src/main/java/com/smartdevicelink/streaming/VideoStreamingParams.java new file mode 100644 index 000000000..82a6fa96c --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/streaming/VideoStreamingParams.java @@ -0,0 +1,99 @@ +package com.smartdevicelink.streaming; + +import android.content.Intent; +import android.util.DisplayMetrics; + +import com.smartdevicelink.proxy.rpc.ImageResolution; +import com.smartdevicelink.proxy.rpc.VideoStreamingFormat; +import com.smartdevicelink.proxy.rpc.enums.VideoStreamingCodec; +import com.smartdevicelink.proxy.rpc.enums.VideoStreamingProtocol; + +public class VideoStreamingParams { + private final VideoStreamingProtocol DEFAULT_PROTOCOL = VideoStreamingProtocol.RAW; + private final VideoStreamingCodec DEFAULT_CODEC = VideoStreamingCodec.H264; + private final int DEFAULT_WIDTH = 800; + private final int DEFAULT_HEIGHT = 480; + private final int DEFAULT_DENSITY = DisplayMetrics.DENSITY_HIGH; + private final int DEFAULT_FRAMERATE = 24; + private final int DEFAULT_BITRATE = 512000; + private final int DEFAULT_INTERVAL = 5; + + + private int displayDensity; + private int frameRate; + private int bitrate; + private int interval; + private ImageResolution resolution; + private VideoStreamingFormat format; + + public VideoStreamingParams(){ + displayDensity = DEFAULT_DENSITY; + frameRate = DEFAULT_FRAMERATE; + bitrate = DEFAULT_BITRATE; + interval = DEFAULT_INTERVAL; + resolution = new ImageResolution(); + resolution.setResolutionWidth(DEFAULT_WIDTH); + resolution.setResolutionHeight(DEFAULT_HEIGHT); + format = new VideoStreamingFormat(); + format.setProtocol(DEFAULT_PROTOCOL); + format.setCodec(DEFAULT_CODEC); + } + + public VideoStreamingParams(int displayDensity, int frameRate, int bitrate, int interval, + ImageResolution resolution, VideoStreamingFormat format){ + this.displayDensity = displayDensity; + this.frameRate = frameRate; + this.bitrate = bitrate; + this.interval = interval; + this.resolution = resolution; + this.format = format; + } + + public void setDisplayDensity(int displayDensity) { + this.displayDensity = displayDensity; + } + + public int getDisplayDensity() { + return displayDensity; + } + + public void setFrameRate(int frameRate) { + this.frameRate = frameRate; + } + + public int getFrameRate() { + return frameRate; + } + + public void setBitrate(int bitrate) { + this.bitrate = bitrate; + } + + public int getBitrate() { + return bitrate; + } + + public void setInterval(int interval) { + this.interval = interval; + } + + public int getInterval() { + return interval; + } + + public void setFormat(VideoStreamingFormat format){ + this.format = format; + } + + public VideoStreamingFormat getFormat(){ + return format; + } + + public void setResolution(ImageResolution resolution){ + this.resolution = resolution; + } + + public ImageResolution getResolution() { + return resolution; + } +}
\ No newline at end of file diff --git a/sdl_android/src/main/java/com/smartdevicelink/trace/DiagLevel.java b/sdl_android/src/main/java/com/smartdevicelink/trace/DiagLevel.java index b77b34486..26dfdebff 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/trace/DiagLevel.java +++ b/sdl_android/src/main/java/com/smartdevicelink/trace/DiagLevel.java @@ -14,29 +14,38 @@ public class DiagLevel { }
public static void setAllLevels(DetailLevel thisDetail) {
- for (int i=0; i < levels.length; i++) {
- levels[i] = thisDetail; //
+ if (thisDetail != null) {
+ for (int i = 0; i < levels.length; i++) {
+ levels[i] = thisDetail; //
+ }
}
}
public static void setLevel(Mod thisMod, DetailLevel thisDetail) {
- levels[thisMod.ordinal()] = thisDetail;
+ if (thisMod != null && thisDetail != null) {
+ levels[thisMod.ordinal()] = thisDetail;
+ }
}
public static DetailLevel getLevel(Mod thisMod) {
- return levels[thisMod.ordinal()];
+ if (thisMod != null) {
+ return levels[thisMod.ordinal()];
+ }
+ return null;
}
-
+
public static boolean isValidDetailLevel(String dtString) {
// Assume false
Boolean isValid = false;
-
- if (dtString.equalsIgnoreCase("verbose"))
- isValid = true;
- else if (dtString.equalsIgnoreCase("terse"))
- isValid = true;
- else if (dtString.equalsIgnoreCase("off"))
- isValid = true;
+
+ if (dtString != null) {
+ if (dtString.equalsIgnoreCase("verbose"))
+ isValid = true;
+ else if (dtString.equalsIgnoreCase("terse"))
+ isValid = true;
+ else if (dtString.equalsIgnoreCase("off"))
+ isValid = true;
+ }
return isValid;
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/trace/Mime.java b/sdl_android/src/main/java/com/smartdevicelink/trace/Mime.java index 026f31721..799ac98f4 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/trace/Mime.java +++ b/sdl_android/src/main/java/com/smartdevicelink/trace/Mime.java @@ -3,10 +3,18 @@ package com.smartdevicelink.trace; // Borrowed from Dave Boll's infamous SdlLinkRelay.java
public class Mime {
-
- private static String m_base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
+
+ private static final String BASE_64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+ /**
+ * @param str A String to encode into base64 String.
+ * @return Base64 encoded String or a null String if input is null.
+ */
public static String base64Encode(String str) {
+ if(str == null){
+ return null;
+ }
+
String b64String = "";
try {
byte[] strBytes = str.getBytes("US-ASCII");
@@ -17,49 +25,76 @@ public class Mime { return b64String;
}
+ /**
+ * @param bytesToEncode A byte array to encode into base64 String.
+ * @return Base64 encoded String or a null String if input array is null.
+ */
public static String base64Encode(byte bytesToEncode[]) {
- return base64Encode(bytesToEncode, 0, bytesToEncode.length);
+ if(bytesToEncode != null){
+ return base64Encode(bytesToEncode, 0, bytesToEncode.length);
+ }
+ return null;
}
+ /**
+ * @param bytesToEncode A byte array to encode into base64 String.
+ * @param offset Offset to begin at
+ * @param length Length to read
+ * @return Base64 encoded String or a null String if input array is null or the input range is out of bounds.
+ */
public static String base64Encode(byte bytesToEncode[], int offset, int length) {
+ if (bytesToEncode == null || bytesToEncode.length < length || bytesToEncode.length < offset + length) {
+ return null;
+ }
+
StringBuilder sb = new StringBuilder();
- int idxin = 0;
- int b64idx = 0;
+ int idxin = 0;
+ int b64idx = 0;
- for (idxin=offset;idxin < offset + length;idxin++) {
- switch ((idxin-offset) % 3) {
+ for (idxin = offset; idxin < offset + length; idxin++) {
+ switch ((idxin - offset) % 3) {
case 0:
b64idx = (bytesToEncode[idxin] >> 2) & 0x3f;
break;
case 1:
b64idx = (bytesToEncode[idxin] >> 4) & 0x0f;
- b64idx |= ((bytesToEncode[idxin-1] << 4)& 0x30);
+ b64idx |= ((bytesToEncode[idxin - 1] << 4) & 0x30);
break;
case 2:
b64idx = (bytesToEncode[idxin] >> 6) & 0x03;
- b64idx |= ((bytesToEncode[idxin-1] << 2)& 0x3c);
- sb.append(m_base64Chars.charAt(b64idx));
+ b64idx |= ((bytesToEncode[idxin - 1] << 2) & 0x3c);
+ sb.append(getBase64Char(b64idx));
b64idx = bytesToEncode[idxin] & 0x3f;
break;
}
- sb.append(m_base64Chars.charAt(b64idx));
+ sb.append(getBase64Char(b64idx));
}
- switch ((idxin-offset) % 3) {
+ switch ((idxin - offset) % 3) {
case 0:
break;
case 1:
- b64idx = (bytesToEncode[idxin-1] << 4) & 0x30;
- sb.append(m_base64Chars.charAt(b64idx));
+ b64idx = (bytesToEncode[idxin - 1] << 4) & 0x30;
+ sb.append(getBase64Char(b64idx));
sb.append("==");
break;
case 2:
- b64idx = ((bytesToEncode[idxin-1] << 2)& 0x3c);
- sb.append(m_base64Chars.charAt(b64idx));
+ b64idx = ((bytesToEncode[idxin - 1] << 2) & 0x3c);
+ sb.append(getBase64Char(b64idx));
sb.append('=');
break;
- }
+ }
+
return sb.toString();
+
+ }
+
+ private static char getBase64Char(int b64idx){
+ if(b64idx >= 0 && b64idx < BASE_64_CHARS.length()) {
+ return BASE_64_CHARS.charAt(b64idx);
+ }else{
+ return 0x20;
+ }
}
}
\ No newline at end of file diff --git a/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java b/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java index b4fea0e71..762c076a3 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java +++ b/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java @@ -50,10 +50,14 @@ public class MultiplexBluetoothTransport { private static final UUID SERVER_UUID= new UUID(0x936DA01F9ABD4D9DL, 0x80C702AF85C822A8L); // Name for the SDP record when creating server socket private static final String NAME_SECURE =" SdlRouterService"; - - - protected static final String SHARED_PREFS = "sdl.bluetoothprefs"; + // Key names received from the BluetoothSerialServer Handler + public static final String DEVICE_NAME = "device_name"; + public static final String TOAST = "toast"; + private static final long MS_TILL_TIMEOUT = 2500; + private static final int READ_BUFFER_SIZE = 4096; + private static final Object THREAD_LOCK = new Object();; + protected static final String SHARED_PREFS = "sdl.bluetoothprefs"; // Constants that indicate the current connection state public static final int STATE_NONE = 0; // we're doing nothing @@ -67,40 +71,24 @@ public class MultiplexBluetoothTransport { private final BluetoothAdapter mAdapter = BluetoothAdapter.getDefaultAdapter(); private final Handler mHandler; private AcceptThread mSecureAcceptThread; - private static Object threadLock = null; private ConnectThread mConnectThread; - private static ConnectedThread mConnectedThread; //I HATE ALL THIS STATIC CRAP, But it seems like the only way right now - private static ConnectedWriteThread mConnectedWriteThread; //I HATE ALL THIS STATIC CRAP, But it seems like the only way right now - - private static int mState; - - // Key names received from the BluetoothSerialServer Handler - public static final String DEVICE_NAME = "device_name"; - public static final String TOAST = "toast"; - - + private ConnectedThread mConnectedThread; + private ConnectedWriteThread mConnectedWriteThread; + private int mState; private int mBluetoothLevel = 0; Handler timeOutHandler; Runnable socketRunable; - private static final long msTillTimeout = 2500; - - private static final int READ_BUFFER_SIZE = 4096; + boolean keepSocketAlive = true; public static String currentlyConnectedDevice = null; public static String currentlyConnectedDeviceAddress = null; - private static MultiplexBluetoothTransport serverInstance = null; - //private BluetoothServerSocket serverSocket= null; - static boolean keepSocketAlive = true; - - /** * Constructor. Prepares a new BluetoothChat session. - * @param context The UI Activity Context * @param handler A Handler to send messages back to the UI Activity */ - private MultiplexBluetoothTransport(Handler handler) { + public MultiplexBluetoothTransport(Handler handler) { //Log.w(TAG, "Creating Bluetooth Serial Adapter"); // mAdapter = BluetoothAdapter.getDefaultAdapter(); mState = STATE_NONE; @@ -108,32 +96,41 @@ public class MultiplexBluetoothTransport { //This will keep track of which method worked last night mBluetoothLevel = SdlRouterService.getBluetoothPrefs(SHARED_PREFS); - Object object = new Object(); - threadLock = object; - } - - /* - * Let's use this method from now on to get bluetooth service + /** + * This method has been deprecated. It will return an instance of MultiplexBluetoothTransport but <b>should not</b> be used. + * @param handler for receiving status messages from the transport + * @return an instance of MultiplexBluetoothTransport + * @deprecated */ + @Deprecated public synchronized static MultiplexBluetoothTransport getBluetoothSerialServerInstance(Handler handler){ - return getBluetoothSerialServerInstance(handler,true); + return new MultiplexBluetoothTransport(handler); } - /* - * Let's use this method from now on to get bluetooth service + /** + * This method has been deprecated. It will return an instance of MultiplexBluetoothTransport but <b>should not</b> be used. + * @param handler for receiving status messages from the transport + * @param keepSocketAlive Flag for keeping the socket alive + * @return an instance of MultiplexBluetoothTransport + * @deprecated */ + @Deprecated public synchronized static MultiplexBluetoothTransport getBluetoothSerialServerInstance(Handler handler, boolean keepSocketAlive){ - - if(serverInstance==null){ - serverInstance = new MultiplexBluetoothTransport(handler); - } - MultiplexBluetoothTransport.keepSocketAlive = keepSocketAlive; - return serverInstance; + MultiplexBluetoothTransport transport = new MultiplexBluetoothTransport(handler); + transport.setKeepSocketAlive(keepSocketAlive); + return transport; } + + /** + * This method has been deprecated. <b>It will always return null.</b> + * @return always null + * @deprecated + */ + @Deprecated public synchronized static MultiplexBluetoothTransport getBluetoothSerialServerInstance(){ - return serverInstance; + return null; } //These methods are used so we can have a semi-static reference to the Accept Thread (Static reference inherited by housing class) @@ -168,7 +165,7 @@ public class MultiplexBluetoothTransport { } public void setKeepSocketAlive(boolean keepSocketAlive){ - MultiplexBluetoothTransport.keepSocketAlive = keepSocketAlive; + this.keepSocketAlive = keepSocketAlive; } /** @@ -177,7 +174,7 @@ public class MultiplexBluetoothTransport { public synchronized void start() { //Log.d(TAG, "Starting up Bluetooth Server to Listen"); // Cancel any thread attempting to make a connection - if (serverInstance.mConnectThread != null) {serverInstance.mConnectThread.cancel(); serverInstance.mConnectThread = null;} + if (mConnectThread != null) {mConnectThread.cancel(); mConnectThread = null;} // Cancel any thread currently running a connection if (mConnectedThread != null) {mConnectedThread.cancel(); mConnectedThread = null;} @@ -186,14 +183,14 @@ public class MultiplexBluetoothTransport { // Start the thread to listen on a BluetoothServerSocket - if (getBluetoothSerialServerInstance().getAcceptThread() == null - && serverInstance.mAdapter != null - && serverInstance.mAdapter.isEnabled()) { + if (getAcceptThread() == null + && mAdapter != null + && mAdapter.isEnabled()) { //Log.d(TAG, "Secure thread was null, attempting to create new"); - getBluetoothSerialServerInstance().setAcceptThread(new AcceptThread(true)); - if(getBluetoothSerialServerInstance().getAcceptThread()!=null){ - getBluetoothSerialServerInstance().setState(STATE_LISTEN); - getBluetoothSerialServerInstance().getAcceptThread().start(); + setAcceptThread(new AcceptThread(true)); + if(getAcceptThread()!=null){ + setState(STATE_LISTEN); + getAcceptThread().start(); } } } @@ -205,7 +202,7 @@ public class MultiplexBluetoothTransport { public synchronized void connect(BluetoothDevice device) { // Cancel any thread attempting to make a connection if (mState == STATE_CONNECTING) { - if (serverInstance.mConnectThread != null) {serverInstance.mConnectThread.cancel(); serverInstance.mConnectThread = null;} + if (mConnectThread != null) {mConnectThread.cancel(); mConnectThread = null;} } // Cancel any thread currently running a connection @@ -220,9 +217,9 @@ public class MultiplexBluetoothTransport { } // Start the thread to connect with the given device - serverInstance.mConnectThread = new ConnectThread(device); - serverInstance.mConnectThread.start(); - serverInstance.setState(STATE_CONNECTING); + mConnectThread = new ConnectThread(device); + mConnectThread.start(); + setState(STATE_CONNECTING); } /** @@ -232,9 +229,9 @@ public class MultiplexBluetoothTransport { */ public synchronized void connected(BluetoothSocket socket, BluetoothDevice device) { // Cancel the thread that completed the connection - if (getBluetoothSerialServerInstance().mConnectThread != null) { - getBluetoothSerialServerInstance().mConnectThread.cancel(); - getBluetoothSerialServerInstance().mConnectThread = null; + if (mConnectThread != null) { + mConnectThread.cancel(); + mConnectThread = null; } // Cancel any thread currently running a connection @@ -247,9 +244,9 @@ public class MultiplexBluetoothTransport { mConnectedWriteThread = null; } // Cancel the accept thread because we only want to connect to one device - if (!keepSocketAlive && getBluetoothSerialServerInstance().mSecureAcceptThread != null) { - getBluetoothSerialServerInstance().mSecureAcceptThread.cancel(); - getBluetoothSerialServerInstance().mSecureAcceptThread = null; + if (!keepSocketAlive && mSecureAcceptThread != null) { + mSecureAcceptThread.cancel(); + mSecureAcceptThread = null; } // Start the thread to manage the connection and perform transmissions @@ -259,32 +256,31 @@ public class MultiplexBluetoothTransport { mConnectedWriteThread = new ConnectedWriteThread(socket); mConnectedWriteThread.start(); - //Store a static name of the device that is connected. We can do this since the only time - //we will access it will be when we receive a CONNECT packet from a device - if(device!=null && device.getName()!=null && device.getName()!=""){ + //Store a static name of the device that is connected. + if(device!=null){ currentlyConnectedDevice = device.getName(); } // Send the name of the connected device back to the UI Activity Message msg = mHandler.obtainMessage(SdlRouterService.MESSAGE_DEVICE_NAME); Bundle bundle = new Bundle(); - bundle.putString(DEVICE_NAME, device.getName()); + bundle.putString(DEVICE_NAME, currentlyConnectedDevice); msg.setData(bundle); - getBluetoothSerialServerInstance().mHandler.sendMessage(msg); - getBluetoothSerialServerInstance().setState(STATE_CONNECTED); + mHandler.sendMessage(msg); + setState(STATE_CONNECTED); } /** * Stop all threads */ public synchronized void stop() { - getBluetoothSerialServerInstance().stop(STATE_NONE); + stop(STATE_NONE); } protected synchronized void stop(int stateToTransitionTo) { //Log.d(TAG, "Attempting to close the bluetooth serial server"); - if (getBluetoothSerialServerInstance().mConnectThread != null) { - getBluetoothSerialServerInstance().mConnectThread.cancel(); - getBluetoothSerialServerInstance().mConnectThread = null; + if (mConnectThread != null) { + mConnectThread.cancel(); + mConnectThread = null; } if (mConnectedThread != null) { @@ -298,7 +294,7 @@ public class MultiplexBluetoothTransport { mSecureAcceptThread = null; } - getBluetoothSerialServerInstance().setState(stateToTransitionTo); + setState(stateToTransitionTo); } @@ -329,7 +325,7 @@ public class MultiplexBluetoothTransport { Bundle bundle = new Bundle(); bundle.putString(TOAST, "Unable to connect device"); msg.setData(bundle); - getBluetoothSerialServerInstance().mHandler.sendMessage(msg); + mHandler.sendMessage(msg); // Start the service over to restart listening mode // BluetoothSerialServer.this.start(); @@ -344,14 +340,14 @@ public class MultiplexBluetoothTransport { Bundle bundle = new Bundle(); bundle.putString(TOAST, "Device connection was lost"); msg.setData(bundle); - getBluetoothSerialServerInstance().mHandler.sendMessage(msg); - getBluetoothSerialServerInstance().stop(); + mHandler.sendMessage(msg); + stop(); } private void timerDelayRemoveDialog(final BluetoothSocket sock){ - getBluetoothSerialServerInstance().timeOutHandler = new Handler(); - getBluetoothSerialServerInstance().socketRunable = new Runnable() { + timeOutHandler = new Handler(); + socketRunable = new Runnable() { public void run() { //Log.e(TAG, "BLUETOOTH SOCKET CONNECT TIMEOUT - ATTEMPT TO CLOSE SOCKET"); try { @@ -361,7 +357,7 @@ public class MultiplexBluetoothTransport { } } }; - getBluetoothSerialServerInstance().timeOutHandler.postDelayed(socketRunable, msTillTimeout); + timeOutHandler.postDelayed(socketRunable, MS_TILL_TIMEOUT); } @@ -378,14 +374,14 @@ public class MultiplexBluetoothTransport { @SuppressLint("NewApi") public AcceptThread(boolean secure) { - synchronized(threadLock){ + synchronized(THREAD_LOCK){ //Log.d(TAG, "Creating an Accept Thread"); BluetoothServerSocket tmp = null; mSocketType = secure ? "Secure":"Insecure"; // Create a new listening server socket try { if (secure) { - tmp = getBluetoothSerialServerInstance().mAdapter.listenUsingRfcommWithServiceRecord(NAME_SECURE, SERVER_UUID); + tmp = mAdapter.listenUsingRfcommWithServiceRecord(NAME_SECURE, SERVER_UUID); } } catch (IOException e) { //Log.e(TAG, "Socket Type: " + mSocketType + "listen() failed", e); @@ -402,7 +398,7 @@ public class MultiplexBluetoothTransport { } public void run() { - synchronized(threadLock){ + synchronized(THREAD_LOCK){ Log.d(TAG, "Socket Type: " + mSocketType + " BEGIN mAcceptThread" + this); setName("AcceptThread" + mSocketType); @@ -415,7 +411,7 @@ public class MultiplexBluetoothTransport { try { if(listenAttempts>=5){ Log.e(TAG, "Complete failure in attempting to listen for Bluetooth connection, erroring out."); - getBluetoothSerialServerInstance().stop(STATE_ERROR); + MultiplexBluetoothTransport.this.stop(STATE_ERROR); return; } listenAttempts++; @@ -430,12 +426,12 @@ public class MultiplexBluetoothTransport { } else{ Log.e(TAG, "Listening Socket was null, stopping the bluetooth serial server."); - getBluetoothSerialServerInstance().stop(STATE_ERROR); + MultiplexBluetoothTransport.this.stop(STATE_ERROR); return; } } catch (IOException e) { Log.e(TAG, "Socket Type: " + mSocketType + "accept() failed"); - getBluetoothSerialServerInstance().stop(STATE_ERROR); + MultiplexBluetoothTransport.this.stop(STATE_ERROR); return; } @@ -446,7 +442,7 @@ public class MultiplexBluetoothTransport { case STATE_LISTEN: case STATE_CONNECTING: // Situation normal. Start the connected thread. - getBluetoothSerialServerInstance().connected(socket, socket.getRemoteDevice()); + connected(socket, socket.getRemoteDevice()); break; case STATE_NONE: @@ -454,9 +450,7 @@ public class MultiplexBluetoothTransport { // Either not ready or already connected. Terminate new socket. try { Log.d(TAG, "Close unwanted socket"); - if(socket!=null){ - socket.close(); - } + socket.close(); } catch (IOException e) { Log.e(TAG, "Could not close unwanted socket", e); } @@ -729,7 +723,7 @@ public class MultiplexBluetoothTransport { // Exception during write //OMG! WE MUST NOT BE CONNECTED ANYMORE! LET THE USER KNOW Log.e(TAG, "Error sending bytes to connected device!"); - getBluetoothSerialServerInstance().connectionLost(); + connectionLost(); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTransport.java b/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTransport.java index ecb8281cc..c7cb0e59e 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTransport.java +++ b/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTransport.java @@ -24,6 +24,7 @@ public class MultiplexTransport extends SdlTransport{ super(transportListener); if(transportConfig == null){ this.handleTransportError("Transport config was null", null); + throw new IllegalArgumentException("Null transportConfig in MultiplexTransport constructor"); } this.transportConfig = transportConfig; brokerThread = new TransportBrokerThread(transportConfig.context, transportConfig.appId, transportConfig.service); diff --git a/sdl_android/src/main/java/com/smartdevicelink/transport/RouterServiceValidator.java b/sdl_android/src/main/java/com/smartdevicelink/transport/RouterServiceValidator.java index 6703232d5..66e415f29 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/transport/RouterServiceValidator.java +++ b/sdl_android/src/main/java/com/smartdevicelink/transport/RouterServiceValidator.java @@ -121,6 +121,11 @@ public class RouterServiceValidator { //This means our service isn't actually running, so set to null. Hopefully we can find a real router service after this. service = null; Log.w(TAG, "Supplied service is not actually running."); + } else { + // If the running router service is created by this app, the validation is good by default + if (this.service.getPackageName().equals(context.getPackageName())) { + return true; + } } } if(this.service == null){ @@ -351,7 +356,7 @@ public class RouterServiceValidator { List<SdlApp> apps = new ArrayList<SdlApp>(); PackageManager packageManager = context.getPackageManager(); Intent intent = new Intent(); - intent.setAction("sdl.router.startservice"); + intent.setAction(TransportConstants.START_ROUTER_SERVICE_ACTION); List<ResolveInfo> infoList = packageManager.queryBroadcastReceivers(intent, 0); //We want to sort our list so that we know it's the same everytime Collections.sort(infoList,new Comparator<ResolveInfo>() { 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 6a5cda6b7..cfcd486b2 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java +++ b/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java @@ -93,9 +93,6 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{ //List obtained. Let's start our service queuedService = componentName; finalIntent.setAction("com.sdl.noaction"); //Replace what's there so we do go into some unintended loop - //Validate the router service so the service knows if this is a trusted router service - RouterServiceValidator vlad = new RouterServiceValidator(finalContext,componentName); - finalIntent.putExtra(TransportConstants.ROUTER_SERVICE_VALIDATED, vlad.validate()); onSdlEnabled(finalContext, finalIntent); } diff --git a/sdl_android/src/main/java/com/smartdevicelink/transport/SdlPsm.java b/sdl_android/src/main/java/com/smartdevicelink/transport/SdlPsm.java index ed86cbb69..1fc40bda4 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/transport/SdlPsm.java +++ b/sdl_android/src/main/java/com/smartdevicelink/transport/SdlPsm.java @@ -76,7 +76,7 @@ public class SdlPsm{ frameType = rawByte&(byte)FRAME_TYPE_MASK; //Log.trace(TAG, rawByte + " = Frame Type: " + frameType); - if((version < 1 || version > 4) //These are known versions supported by this library. + if((version < 1 || version > 5) //These are known versions supported by this library. && frameType!=SdlPacket.FRAME_TYPE_CONTROL){ return ERROR_STATE; } 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 2bae96e27..d3a4fd051 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java +++ b/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java @@ -1,5 +1,6 @@ package com.smartdevicelink.transport; +import static com.smartdevicelink.proxy.constants.Names.info; import static com.smartdevicelink.transport.TransportConstants.CONNECTED_DEVICE_STRING_EXTRA_NAME; import static com.smartdevicelink.transport.TransportConstants.FORMED_PACKET_EXTRA_NAME; import static com.smartdevicelink.transport.TransportConstants.HARDWARE_DISCONNECTED; @@ -93,8 +94,12 @@ public class SdlRouterService extends Service{ private static final long CLIENT_PING_DELAY = 1000; public static final String REGISTER_NEWER_SERVER_INSTANCE_ACTION = "com.sdl.android.newservice"; + /** + * @deprecated use {@link TransportConstants#START_ROUTER_SERVICE_ACTION} instead + */ + @Deprecated public static final String START_SERVICE_ACTION = "sdl.router.startservice"; - public static final String REGISTER_WITH_ROUTER_ACTION = "com.sdl.android.register"; + public static final String REGISTER_WITH_ROUTER_ACTION = "com.sdl.android.register"; /** Message types sent from the BluetoothReadService Handler */ public static final int MESSAGE_STATE_CHANGE = 1; @@ -105,7 +110,7 @@ public class SdlRouterService extends Service{ private final int UNREGISTER_APP_INTERFACE_CORRELATION_ID = 65530; - private static MultiplexBluetoothTransport mSerialService = null; + private MultiplexBluetoothTransport mSerialService = null; private static boolean connectAsClient = false; private static boolean closing = false; @@ -167,7 +172,7 @@ public class SdlRouterService extends Service{ { //Let's grab where to reply to this intent at. We will keep it temp right now because we may have to deny registration String action =intent.getStringExtra(SEND_PACKET_TO_APP_LOCATION_EXTRA_NAME); - sendBroadcast(prepareRegistrationIntent(action)); + sendBroadcast(prepareRegistrationIntent(action)); } }; @@ -192,16 +197,8 @@ public class SdlRouterService extends Service{ Log.e(TAG, "Serial service not initliazed while registering app"); //Maybe we should try to do a connect here instead Log.d(TAG, "Serial service being restarted"); - if(mSerialService ==null){ - Log.e(TAG, "Local copy of BT Server is null"); - mSerialService = MultiplexBluetoothTransport.getBluetoothSerialServerInstance(); - if(mSerialService==null){ - Log.e(TAG, "Local copy of BT Server is still null and so is global"); - mSerialService = MultiplexBluetoothTransport.getBluetoothSerialServerInstance(mHandlerBT); + initBluetoothSerialService(); - } - } - mSerialService.start(); } } @@ -216,7 +213,7 @@ public class SdlRouterService extends Service{ BroadcastReceiver registerAnInstanceOfSerialServer = new BroadcastReceiver() { final Object COMPARE_LOCK = new Object(); @Override - public void onReceive(Context context, Intent intent) + public void onReceive(Context context, Intent intent) { LocalRouterService tempService = intent.getParcelableExtra(SdlBroadcastReceiver.LOCAL_ROUTER_SERVICE_EXTRA); synchronized(COMPARE_LOCK){ @@ -303,7 +300,7 @@ public class SdlRouterService extends Service{ *********************************************** Handlers for bound clients ************************************************************** ****************************************************************************************************************************************/ - + /** * Target we publish for clients to send messages to RouterHandler. */ @@ -318,7 +315,7 @@ public class SdlRouterService extends Service{ public RouterHandler(SdlRouterService provider){ this.provider = new WeakReference<SdlRouterService>(provider); } - + @Override public void handleMessage(Message msg) { if(this.provider.get() == null){ @@ -609,20 +606,20 @@ public class SdlRouterService extends Service{ case TransportConstants.ROUTER_RECEIVED_PACKET: if(receivedBundle!=null){ receivedBundle.setClassLoader(loader);//We do this because loading a custom parceable object isn't possible without it - }else{ - Log.e(TAG, "Bundle was null while sending packet to router service from alt transport"); - } - if(receivedBundle.containsKey(TransportConstants.FORMED_PACKET_EXTRA_NAME)){ - SdlPacket packet = receivedBundle.getParcelable(TransportConstants.FORMED_PACKET_EXTRA_NAME); - if(packet!=null){ - service.onPacketRead(packet); - }else{ - Log.w(TAG, "Received null packet from alt transport service"); - } - }else{ - Log.w(TAG, "Flase positive packet reception"); - } - break; + if(receivedBundle.containsKey(TransportConstants.FORMED_PACKET_EXTRA_NAME)){ + SdlPacket packet = receivedBundle.getParcelable(TransportConstants.FORMED_PACKET_EXTRA_NAME); + if(packet!=null){ + service.onPacketRead(packet); + }else{ + Log.w(TAG, "Received null packet from alt transport service"); + } + }else{ + Log.w(TAG, "Flase positive packet reception"); + } + }else{ + Log.e(TAG, "Bundle was null while sending packet to router service from alt transport"); + } + break; default: super.handleMessage(msg); } @@ -839,7 +836,7 @@ public class SdlRouterService extends Service{ } HashMap<String,ResolveInfo> sdlMultiList ; public void startVersionCheck(){ - Intent intent = new Intent(START_SERVICE_ACTION); + Intent intent = new Intent(TransportConstants.START_ROUTER_SERVICE_ACTION); List<ResolveInfo> infos = getPackageManager().queryBroadcastReceivers(intent, 0); sdlMultiList = new HashMap<String,ResolveInfo>(); for(ResolveInfo info: infos){ @@ -1117,18 +1114,16 @@ public class SdlRouterService extends Service{ Log.d(TAG, "Not starting own bluetooth during legacy mode"); return; } - Log.i(TAG, "Iniitializing bluetooth transport"); //init serial service - if(mSerialService ==null){ - mSerialService = MultiplexBluetoothTransport.getBluetoothSerialServerInstance(); - if(mSerialService==null){ - mSerialService = MultiplexBluetoothTransport.getBluetoothSerialServerInstance(mHandlerBT); - } + if(mSerialService == null || mSerialService.getState() == MultiplexBluetoothTransport.STATE_ERROR){ + Log.i(TAG, "Initializing bluetooth transport"); + mSerialService = new MultiplexBluetoothTransport(mHandlerBT); } if (mSerialService != null) { // Only if the state is STATE_NONE, do we know that we haven't started already - if (mSerialService.getState() == MultiplexBluetoothTransport.STATE_NONE || mSerialService.getState() == MultiplexBluetoothTransport.STATE_ERROR) { + if (mSerialService.getState() == MultiplexBluetoothTransport.STATE_NONE) { // Start the Bluetooth services + Log.i(TAG, "Starting bluetooth transport"); mSerialService.start(); } @@ -1148,12 +1143,24 @@ public class SdlRouterService extends Service{ connectedTransportType = type; Intent startService = new Intent(); - startService.setAction(START_SERVICE_ACTION); + startService.setAction(TransportConstants.START_ROUTER_SERVICE_ACTION); + //Perform our query prior to adding any extras or flags + List<ResolveInfo> sdlApps = getPackageManager().queryBroadcastReceivers(startService, 0); + startService.putExtra(TransportConstants.START_ROUTER_SERVICE_SDL_ENABLED_EXTRA, true); startService.putExtra(TransportConstants.FORCE_TRANSPORT_CONNECTED, true); startService.putExtra(TransportConstants.START_ROUTER_SERVICE_SDL_ENABLED_APP_PACKAGE, getBaseContext().getPackageName()); startService.putExtra(TransportConstants.START_ROUTER_SERVICE_SDL_ENABLED_CMP_NAME, new ComponentName(this, this.getClass())); - sendBroadcast(startService); + startService.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); + + //Iterate through all apps that we know are listening for this intent with an explicit intent (neccessary for Android O SDK 26) + if(sdlApps != null && sdlApps.size()>0){ + for(ResolveInfo app: sdlApps){ + startService.setClassName(app.activityInfo.applicationInfo.packageName, app.activityInfo.name); + sendBroadcast(startService); + } + } + //HARDWARE_CONNECTED if(!(registeredApps== null || registeredApps.isEmpty())){ //If we have clients @@ -1289,10 +1296,10 @@ public class SdlRouterService extends Service{ return false; } if(mSerialService !=null && mSerialService.getState()==MultiplexBluetoothTransport.STATE_CONNECTED){ - byte[] packet = bundle.getByteArray(TransportConstants.BYTES_TO_SEND_EXTRA_NAME); - int offset = bundle.getInt(TransportConstants.BYTES_TO_SEND_EXTRA_OFFSET, 0); //If nothing, start at the begining of the array - int count = bundle.getInt(TransportConstants.BYTES_TO_SEND_EXTRA_COUNT, packet.length); //In case there isn't anything just send the whole packet. + byte[] packet = bundle.getByteArray(TransportConstants.BYTES_TO_SEND_EXTRA_NAME); if(packet!=null){ + int offset = bundle.getInt(TransportConstants.BYTES_TO_SEND_EXTRA_OFFSET, 0); //If nothing, start at the begining of the array + int count = bundle.getInt(TransportConstants.BYTES_TO_SEND_EXTRA_COUNT, packet.length); //In case there isn't anything just send the whole packet. mSerialService.write(packet,offset,count); return true; } @@ -1576,7 +1583,7 @@ public class SdlRouterService extends Service{ Log.d(TAG,"Connecting to device: " + device.getName().toString()); if(mSerialService == null || !mSerialService.isConnected()) { // Set up the Bluetooth serial object - mSerialService = MultiplexBluetoothTransport.getBluetoothSerialServerInstance(mHandlerBT); + mSerialService = new MultiplexBluetoothTransport(mHandlerBT); } // We've been given a device - let's connect to it if(mSerialService.getState()!=MultiplexBluetoothTransport.STATE_CONNECTING){//mSerialService.stop(); @@ -1669,7 +1676,7 @@ public class SdlRouterService extends Service{ //Log.v(TAG, "Self service info " + self); //Log.v(TAG, "Newest compare to service info " + newestServiceReceived); if(newestServiceReceived!=null && self.isNewer(newestServiceReceived)){ - if(SdlRouterService.mSerialService!=null && SdlRouterService.mSerialService.isConnected()){ //We are currently connected. Wait for next connection + if(SdlRouterService.this.mSerialService!=null && SdlRouterService.this.mSerialService.isConnected()){ //We are currently connected. Wait for next connection return; } Log.d(TAG, "There is a newer version "+newestServiceReceived.version+" of the Router Service, starting it up"); @@ -1935,7 +1942,7 @@ public class SdlRouterService extends Service{ private void initPingIntent(){ pingIntent = new Intent(); - pingIntent.setAction(START_SERVICE_ACTION); + pingIntent.setAction(TransportConstants.START_ROUTER_SERVICE_ACTION); pingIntent.putExtra(TransportConstants.START_ROUTER_SERVICE_SDL_ENABLED_EXTRA, true); pingIntent.putExtra(TransportConstants.START_ROUTER_SERVICE_SDL_ENABLED_APP_PACKAGE, getBaseContext().getPackageName()); pingIntent.putExtra(TransportConstants.START_ROUTER_SERVICE_SDL_ENABLED_CMP_NAME, new ComponentName(SdlRouterService.this, SdlRouterService.this.getClass())); diff --git a/sdl_android/src/main/java/com/smartdevicelink/transport/TransportConstants.java b/sdl_android/src/main/java/com/smartdevicelink/transport/TransportConstants.java index 29cdea035..6203aa3e7 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/transport/TransportConstants.java +++ b/sdl_android/src/main/java/com/smartdevicelink/transport/TransportConstants.java @@ -51,9 +51,9 @@ public class TransportConstants { public static final String BIND_REQUEST_TYPE_ALT_TRANSPORT = "BIND_REQUEST_TYPE_ALT_TRANSPORT"; public static final String BIND_REQUEST_TYPE_STATUS = "BIND_REQUEST_TYPE_STATUS"; - + public static final String PING_ROUTER_SERVICE_EXTRA = "ping.router.service"; - + /** * This class houses all important router service versions */ diff --git a/sdl_android/src/main/java/com/smartdevicelink/util/BitConverter.java b/sdl_android/src/main/java/com/smartdevicelink/util/BitConverter.java index c844e49a4..a681a75a8 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/util/BitConverter.java +++ b/sdl_android/src/main/java/com/smartdevicelink/util/BitConverter.java @@ -1,10 +1,21 @@ package com.smartdevicelink.util;
public class BitConverter {
+ /**
+ * @param bytes byte array that will be converted to hex
+ * @return the String containing converted hex values or null if byte array is null
+ */
public static String bytesToHex(byte [] bytes) {
+ if (bytes == null) { return null; }
return bytesToHex(bytes, 0, bytes.length);
} // end-method
+ /**
+ * @param bytes byte array that will be converted to hex
+ * @param offset int representing the offset to begin conversion at
+ * @param length int representing number of bytes in array to convert
+ * @return the String containing converted hex values or null if byte array is null
+ */
public static String bytesToHex(byte[] bytes, int offset, int length) {
if (bytes == null) { return null; }
final char[] HexDigits = new char[] {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
@@ -24,6 +35,10 @@ public class BitConverter { return new String(hexChars);
} // end-method
+ /**
+ * @param hexString the String containing converted hex values
+ * @return byte array converted from input String or null if String is null
+ */
public static byte [] hexToBytes(String hexString) {
if (hexString == null) { return null; }
if (hexString.length() % 2 != 0) {
@@ -45,8 +60,13 @@ public class BitConverter { (byte)(value >>> 8),
(byte)value};
}
-
+
+ /**
+ * @param sizeBuf byte array that will be converted to int
+ * @return int converted from byte array or -1 if byte array is null
+ */
public static int intFromByteArray(byte[] sizeBuf, int offset) {
+ if (sizeBuf == null) { return -1; }
int ret = 0;
for (int i = offset; i < offset + 4; i++) {
ret <<= 8;
@@ -60,8 +80,13 @@ public class BitConverter { (byte)(value >>> 8),
(byte)value};
}
-
+
+ /**
+ * @param sizeBuf byte array that will be converted to short
+ * @return short converted from byte array or -1 if byte array is null
+ */
public static short shortFromByteArray(byte[] sizeBuf, int offset) {
+ if (sizeBuf == null) { return -1; }
short ret = 0;
for (int i = offset; i < offset + 2; i++) {
ret <<= 8;
@@ -72,11 +97,12 @@ public class BitConverter { /**
* Converts the byte array into a string of hex values.
- * @param bytes
+ * @param bytes byte array that will be converted to hex
* @param end EXCLUSIVE so if it it receives 10 it will print 0-9
- * @return
+ * @return the String containing converted hex values or null if byte array is null
*/
public static String bytesToHex(byte[] bytes,int end){
+ if (bytes == null) { return null; }
if(bytes.length<end){
end = bytes.length;
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/util/Version.java b/sdl_android/src/main/java/com/smartdevicelink/util/Version.java new file mode 100644 index 000000000..8621c8cfd --- /dev/null +++ b/sdl_android/src/main/java/com/smartdevicelink/util/Version.java @@ -0,0 +1,47 @@ +package com.smartdevicelink.util; + + +public class Version { + + int major,minor,patch; + + public Version(){ + major = 0; + minor = 0; + patch = 0; + } + + public Version(String versionString){ + String[] versions = versionString.split("\\."); + if(versions.length!=3){ + throw new IllegalArgumentException("Incorrect version string format"); + } + major = Integer.valueOf(versions[0]); + minor = Integer.valueOf(versions[1]); + patch = Integer.valueOf(versions[2]); + + } + + public int getMajor() { + return major; + } + + public int getMinor() { + return minor; + } + + public int getPatch() { + return patch; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append(major); + builder.append("."); + builder.append(minor); + builder.append("."); + builder.append(patch); + return builder.toString(); + } +} |