summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2018-07-26 16:30:35 -0400
committerGitHub <noreply@github.com>2018-07-26 16:30:35 -0400
commit7ec84be8412c77d692dff6b8882d1536f2427cee (patch)
tree45c203d42487517173adba81e1bffc983976c62b
parent9682b3727e7bf44640de9deebd516c7ed373913f (diff)
parent700fe6fd655aadb4791351a6a1c16cc91cb30a97 (diff)
downloadsdl_android-7ec84be8412c77d692dff6b8882d1536f2427cee.tar.gz
Merge pull request #800 from smartdevicelink/feature/issue_710_audio_streaming_indicator
feature/issue710 Add audio streaming indicator
-rw-r--r--sdl_android/src/androidTest/assets/json/SetMediaClockTimer.json3
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java2
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingIndicatorTests.java80
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingStateTests.java2
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetMediaClockTimerTests.java11
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetMediaClockTimer.java25
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/AudioStreamingIndicator.java48
7 files changed, 167 insertions, 4 deletions
diff --git a/sdl_android/src/androidTest/assets/json/SetMediaClockTimer.json b/sdl_android/src/androidTest/assets/json/SetMediaClockTimer.json
index af1671200..e4950d05d 100644
--- a/sdl_android/src/androidTest/assets/json/SetMediaClockTimer.json
+++ b/sdl_android/src/androidTest/assets/json/SetMediaClockTimer.json
@@ -13,7 +13,8 @@
"seconds":19,
"hours":12
},
- "updateMode":"COUNTDOWN"
+ "updateMode":"COUNTDOWN",
+ "audioStreamingIndicator":"PLAY"
}
},
"response":{
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
index b971341fc..25c79677e 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
@@ -63,6 +63,7 @@ import com.smartdevicelink.proxy.rpc.VrHelpItem;
import com.smartdevicelink.proxy.rpc.enums.AmbientLightStatus;
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
import com.smartdevicelink.proxy.rpc.enums.AppInterfaceUnregisteredReason;
+import com.smartdevicelink.proxy.rpc.enums.AudioStreamingIndicator;
import com.smartdevicelink.proxy.rpc.enums.AudioStreamingState;
import com.smartdevicelink.proxy.rpc.enums.AudioType;
import com.smartdevicelink.proxy.rpc.enums.BitsPerSample;
@@ -278,6 +279,7 @@ public class Test {
public static final SingleTireStatus GENERAL_SINGLETIRESTATUS = new SingleTireStatus();
public static final DriverDistractionState GENERAL_DRIVERDISTRACTIONSTATE = DriverDistractionState.DD_ON;
public static final List<LocationDetails> GENERAL_LOCATIONDETAILS_LIST = Arrays.asList(new LocationDetails[] { Test.GENERAL_LOCATIONDETAILS, Test.GENERAL_LOCATIONDETAILS});
+ public static final AudioStreamingIndicator GENERAL_AUDIO_STREAMING_INDICATOR = AudioStreamingIndicator.PLAY;
public static final ModuleType GENERAL_MODULETYPE = ModuleType.CLIMATE;
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingIndicatorTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingIndicatorTests.java
new file mode 100644
index 000000000..85312ecde
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingIndicatorTests.java
@@ -0,0 +1,80 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import com.smartdevicelink.proxy.rpc.enums.AudioStreamingIndicator;
+
+/**
+ * This is a unit test class for the SmartDeviceLink library project class :
+ * {@link com.smartdevicelink.proxy.rpc.enums.AudioStreamingIndicator}
+ */
+public class AudioStreamingIndicatorTests extends TestCase {
+
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums () {
+ String example = "PLAY_PAUSE";
+ AudioStreamingIndicator enumPlayPause = AudioStreamingIndicator.valueForString(example);
+ example = "PLAY";
+ AudioStreamingIndicator enumPlay = AudioStreamingIndicator.valueForString(example);
+ example = "PAUSE";
+ AudioStreamingIndicator enumPause = AudioStreamingIndicator.valueForString(example);
+ example = "STOP";
+ AudioStreamingIndicator enumStop = AudioStreamingIndicator.valueForString(example);
+
+
+ assertNotNull("PLAY_PAUSE returned null", enumPlayPause);
+ assertNotNull("PLAY returned null", enumPlay);
+ assertNotNull("PAUSE returned null", enumPause);
+ assertNotNull("STOP returned null", enumStop);
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum () {
+ String example = "pLayPauZe";
+ try {
+ AudioStreamingIndicator temp = AudioStreamingIndicator.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum () {
+ String example = null;
+ try {
+ AudioStreamingIndicator temp = AudioStreamingIndicator.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of AudioStreamingIndicator.
+ */
+ public void testListEnum() {
+ List<AudioStreamingIndicator> enumValueList = Arrays.asList(AudioStreamingIndicator.values());
+
+ List<AudioStreamingIndicator> enumTestList = new ArrayList<>();
+ enumTestList.add(AudioStreamingIndicator.PLAY_PAUSE);
+ enumTestList.add(AudioStreamingIndicator.PLAY);
+ enumTestList.add(AudioStreamingIndicator.PAUSE);
+ enumTestList.add(AudioStreamingIndicator.STOP);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+} \ No newline at end of file
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingStateTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingStateTests.java
index ab5972218..178613e53 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingStateTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AudioStreamingStateTests.java
@@ -10,7 +10,7 @@ import com.smartdevicelink.proxy.rpc.enums.AudioStreamingState;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.enums.AudioStreaming}
+ * {@link com.smartdevicelink.proxy.rpc.enums.AudioStreamingState}
*/
public class AudioStreamingStateTests extends TestCase {
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetMediaClockTimerTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetMediaClockTimerTests.java
index 7d52bb75c..a90bd31b9 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetMediaClockTimerTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SetMediaClockTimerTests.java
@@ -10,6 +10,7 @@ import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCMessage;
import com.smartdevicelink.proxy.rpc.SetMediaClockTimer;
import com.smartdevicelink.proxy.rpc.StartTime;
+import com.smartdevicelink.proxy.rpc.enums.AudioStreamingIndicator;
import com.smartdevicelink.proxy.rpc.enums.UpdateMode;
import com.smartdevicelink.test.BaseRpcTests;
import com.smartdevicelink.test.JsonUtils;
@@ -19,7 +20,7 @@ import com.smartdevicelink.test.json.rpc.JsonFileReader;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.SetMediaClockTimer}
+ * {@link com.smartdevicelink.proxy.rpc.SetMediaClockTimer}
*/
public class SetMediaClockTimerTests extends BaseRpcTests {
@@ -30,6 +31,7 @@ public class SetMediaClockTimerTests extends BaseRpcTests {
msg.setStartTime(Test.GENERAL_STARTTIME);
msg.setEndTime(Test.GENERAL_STARTTIME);
msg.setUpdateMode(Test.GENERAL_UPDATEMODE);
+ msg.setAudioStreamingIndicator(Test.GENERAL_AUDIO_STREAMING_INDICATOR);
return msg;
}
@@ -51,7 +53,8 @@ public class SetMediaClockTimerTests extends BaseRpcTests {
try {
result.put(SetMediaClockTimer.KEY_START_TIME, Test.JSON_STARTTIME);
result.put(SetMediaClockTimer.KEY_END_TIME, Test.JSON_STARTTIME);
- result.put(SetMediaClockTimer.KEY_UPDATE_MODE, Test.GENERAL_UPDATEMODE);
+ result.put(SetMediaClockTimer.KEY_UPDATE_MODE, Test.GENERAL_UPDATEMODE);
+ result.put(SetMediaClockTimer.KEY_AUDIO_STREAMING_INDICATOR, Test.GENERAL_AUDIO_STREAMING_INDICATOR);
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
@@ -67,9 +70,11 @@ public class SetMediaClockTimerTests extends BaseRpcTests {
StartTime testStartTime = ( (SetMediaClockTimer) msg ).getStartTime();
StartTime testEndTime = ( (SetMediaClockTimer) msg ).getEndTime();
UpdateMode testUpdateMode = ( (SetMediaClockTimer) msg ).getUpdateMode();
+ AudioStreamingIndicator testAudioStreamingIndicator = ( (SetMediaClockTimer) msg ).getAudioStreamingIndicator();
// Valid Tests
assertEquals(Test.MATCH, Test.GENERAL_UPDATEMODE, testUpdateMode);
+ assertEquals(Test.MATCH, Test.GENERAL_AUDIO_STREAMING_INDICATOR, testAudioStreamingIndicator);
assertTrue(Test.TRUE, Validator.validateStartTime(Test.GENERAL_STARTTIME, testStartTime));
assertTrue(Test.TRUE, Validator.validateStartTime(Test.GENERAL_STARTTIME, testEndTime));
@@ -81,6 +86,7 @@ public class SetMediaClockTimerTests extends BaseRpcTests {
assertNull(Test.NULL, msg.getStartTime());
assertNull(Test.NULL, msg.getEndTime());
assertNull(Test.NULL, msg.getUpdateMode());
+ assertNull(Test.NULL, msg.getAudioStreamingIndicator());
}
/**
@@ -110,6 +116,7 @@ public class SetMediaClockTimerTests extends BaseRpcTests {
StartTime referenceEndTime = new StartTime(JsonRPCMarshaller.deserializeJSONObject(endTime));
assertTrue(Test.TRUE, Validator.validateStartTime(referenceEndTime, cmd.getEndTime()));
assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, SetMediaClockTimer.KEY_UPDATE_MODE), cmd.getUpdateMode().toString());
+ assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, SetMediaClockTimer.KEY_AUDIO_STREAMING_INDICATOR), cmd.getAudioStreamingIndicator().toString());
} catch (JSONException e) {
fail(Test.JSON_FAIL);
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetMediaClockTimer.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetMediaClockTimer.java
index 4ec73b9d7..fb15e3242 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetMediaClockTimer.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/SetMediaClockTimer.java
@@ -4,6 +4,7 @@ import android.support.annotation.NonNull;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
+import com.smartdevicelink.proxy.rpc.enums.AudioStreamingIndicator;
import com.smartdevicelink.proxy.rpc.enums.UpdateMode;
import java.util.Hashtable;
@@ -54,6 +55,13 @@ import java.util.Hashtable;
* <td>SmartDeviceLink 1.0</td>
* </tr>
* <tr>
+ * <td>audioStreamingIndicator</td>
+ * <td>AudioStreamingIndicator</td>
+ * <td></td>
+ * <td>N</td>
+ * <td></td>
+ * <td>SmartDeviceLink 4.6</td>
+ * </tr>
*
* </table>
*
@@ -76,6 +84,7 @@ public class SetMediaClockTimer extends RPCRequest {
public static final String KEY_START_TIME = "startTime";
public static final String KEY_END_TIME = "endTime";
public static final String KEY_UPDATE_MODE = "updateMode";
+ public static final String KEY_AUDIO_STREAMING_INDICATOR = "audioStreamingIndicator";
/**
* Constructs a new SetMediaClockTimer object
*/
@@ -168,4 +177,20 @@ public class SetMediaClockTimer extends RPCRequest {
public void setUpdateMode( @NonNull UpdateMode updateMode ) {
setParameters(KEY_UPDATE_MODE, updateMode);
}
+
+ /**
+ * Gets the playback status of a media app
+ *
+ * @return AudioStreamingIndicator - a Enumeration value
+ */
+ public AudioStreamingIndicator getAudioStreamingIndicator() {
+ return (AudioStreamingIndicator) getObject(AudioStreamingIndicator.class, KEY_AUDIO_STREAMING_INDICATOR);
+ }
+
+ /**
+ * Sets the playback status of a media app
+ */
+ public void setAudioStreamingIndicator(AudioStreamingIndicator audioStreamingIndicator ) {
+ setParameters(KEY_AUDIO_STREAMING_INDICATOR, audioStreamingIndicator);
+ }
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/AudioStreamingIndicator.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/AudioStreamingIndicator.java
new file mode 100644
index 000000000..1792de469
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/enums/AudioStreamingIndicator.java
@@ -0,0 +1,48 @@
+package com.smartdevicelink.proxy.rpc.enums;
+
+/**
+ * Identifies the playback status of a media app
+ *
+ * @since SmartDeviceLink 4.6
+ */
+public enum AudioStreamingIndicator {
+ /**
+ * Default playback indicator.
+ *
+ * @since SmartDeviceLink 4.6
+ */
+ PLAY_PAUSE,
+
+ /**
+ * Indicates that a button press of the Play/Pause button would start the playback.
+ *
+ * @since SmartDeviceLink 4.6
+ */
+ PLAY,
+ /**
+ * Indicates that a button press of the Play/Pause button would pause the current playback.
+ *
+ * @since SmartDeviceLink 4.6
+ */
+ PAUSE,
+ /**
+ * Indicates that a button press of the Play/Pause button would stop the current playback.
+ *
+ * @since SmartDeviceLink 4.6
+ */
+ STOP,
+ ;
+
+ /**
+ * Convert String to AudioStreamingIndicator
+ * @param value String
+ * @return AudioStreamingIndicator
+ */
+ public static AudioStreamingIndicator valueForString(String value) {
+ try{
+ return valueOf(value);
+ }catch(Exception e){
+ return null;
+ }
+ }
+}