summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnil Dahiya <anil_dahiya@infosys.com>2018-02-14 12:33:27 +0530
committerAnil Dahiya <anil_dahiya@infosys.com>2018-07-19 11:17:58 +0530
commita8e7aae235ab52222679705c32dde9e17bbc5c60 (patch)
tree97d36778e57d680fd570eddf4120f58bb1e4aea8
parentef10c5e39bc228e9f9a1dd45e8c59eed9121afb4 (diff)
downloadsdl_android-a8e7aae235ab52222679705c32dde9e17bbc5c60.tar.gz
Implementation changes for OnRcStatus Notification.
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java6
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnRCStatusTests.java88
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java1
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java16
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java3
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnRCStatus.java38
6 files changed, 152 insertions, 0 deletions
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java
index b50f6f48d..21091edc8 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java
@@ -50,6 +50,7 @@ import com.smartdevicelink.proxy.rpc.OnKeyboardInput;
import com.smartdevicelink.proxy.rpc.OnLanguageChange;
import com.smartdevicelink.proxy.rpc.OnLockScreenStatus;
import com.smartdevicelink.proxy.rpc.OnPermissionsChange;
+import com.smartdevicelink.proxy.rpc.OnRCStatus;
import com.smartdevicelink.proxy.rpc.OnStreamRPC;
import com.smartdevicelink.proxy.rpc.OnSystemRequest;
import com.smartdevicelink.proxy.rpc.OnTBTClientState;
@@ -619,5 +620,10 @@ public class SdlProxyBaseTests extends AndroidTestCase{
public void onSendHapticDataResponse(SendHapticDataResponse response) {
Log.i(TAG, "SendHapticDataResponse response from SDL: " + response);
}
+
+ @Override
+ public void onOnRCStatus(OnRCStatus notification) {
+
+ }
}
}
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnRCStatusTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnRCStatusTests.java
new file mode 100644
index 000000000..9d3c3a474
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnRCStatusTests.java
@@ -0,0 +1,88 @@
+package com.smartdevicelink.test.rpc.notifications;
+
+import com.smartdevicelink.marshal.JsonRPCMarshaller;
+import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.RPCMessage;
+import com.smartdevicelink.proxy.rpc.ModuleData;
+import com.smartdevicelink.proxy.rpc.OnRCStatus;
+import com.smartdevicelink.test.BaseRpcTests;
+import com.smartdevicelink.test.Test;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class OnRCStatusTests extends BaseRpcTests {
+ @Override
+ protected RPCMessage createMessage(){
+ OnRCStatus msg = new OnRCStatus();
+
+ List<ModuleData> listAllocatedModules = new ArrayList<>();
+ listAllocatedModules.add(Test.GENERAL_MODULEDATA);
+
+ msg.setAllocatedModules(listAllocatedModules);
+
+ List<ModuleData> listFreeModules = new ArrayList<>();
+ listFreeModules.add(Test.GENERAL_MODULEDATA);
+ msg.setFreeModules(listFreeModules);
+
+ return msg;
+ }
+
+ @Override
+ protected String getMessageType(){
+ return RPCMessage.KEY_NOTIFICATION;
+ }
+
+ @Override
+ protected String getCommandType(){
+ return FunctionID.ON_RC_STATUS.toString();
+ }
+
+ @Override
+ protected JSONObject getExpectedParameters(int sdlVersion){
+ JSONObject result = new JSONObject();
+
+ JSONArray jsonArrayAllocatedModules = new JSONArray();
+ JSONArray jsonArrayFreeModules = new JSONArray();
+ try {
+ jsonArrayAllocatedModules.put(JsonRPCMarshaller.serializeHashtable(Test.GENERAL_MODULEDATA.getStore()));
+ jsonArrayFreeModules.put(JsonRPCMarshaller.serializeHashtable(Test.GENERAL_MODULEDATA.getStore()));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ try {
+ result.put(OnRCStatus.KEY_ALLOCATED_MODULES, jsonArrayAllocatedModules);
+ result.put(OnRCStatus.KEY_FREE_MODULES, jsonArrayFreeModules);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ return result;
+ }
+
+ /**
+ * Tests the expected values of the RPC message.
+ */
+ public void testRpcValues () {
+ // Test Values
+ List<ModuleData> listAllocatedModules = ((OnRCStatus) msg).getAllocatedModules();
+ List<ModuleData> listFreeModules = ((OnRCStatus) msg).getFreeModules();
+
+ // Valid Tests
+ assertEquals(Test.MATCH, Test.GENERAL_MODULEDATA, listAllocatedModules.get(0));
+ assertEquals(Test.MATCH, Test.GENERAL_MODULEDATA, listFreeModules.get(0));
+
+ // Invalid/Null Tests
+ OnRCStatus msg = new OnRCStatus();
+ assertNotNull(Test.NOT_NULL, msg);
+ testNullBase(msg);
+
+ assertNull(Test.NULL, msg.getAllocatedModules());
+ assertNull(Test.NULL, msg.getFreeModules());
+ }
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java b/sdl_android/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java
index 412d3f857..c08749f7a 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java
@@ -82,6 +82,7 @@ public enum FunctionID{
ON_HASH_CHANGE(32782, "OnHashChange"),
ON_INTERIOR_VEHICLE_DATA(32783, "OnInteriorVehicleData"),
ON_WAY_POINT_CHANGE(32784, "OnWayPointChange"),
+ ON_RC_STATUS(32794, "OnRCStatus"),
// MOCKED FUNCTIONS (NOT SENT FROM HEAD-UNIT)
ON_LOCK_SCREEN_STATUS(-1, "OnLockScreenStatus"),
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java
index 7d25745d9..3ca4aa0f0 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java
@@ -3476,6 +3476,22 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
onRPCNotificationReceived(msg);
}
}
+ else if (functionName.equals(FunctionID.ON_RC_STATUS.toString())) {
+ final OnRCStatus msg = new OnRCStatus(hash);
+ if (_callbackToUIThread) {
+ // Run in UI thread
+ _mainUIHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ _proxyListener.onOnRCStatus(msg);
+ onRPCNotificationReceived(msg);
+ }
+ });
+ } else {
+ _proxyListener.onOnRCStatus(msg);
+ onRPCNotificationReceived(msg);
+ }
+ }
else {
if (_sdlMsgVersion != null) {
DebugTool.logInfo("Unrecognized notification Message: " + functionName +
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java
index 618819f20..b7486785f 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java
@@ -35,6 +35,7 @@ import com.smartdevicelink.proxy.rpc.OnKeyboardInput;
import com.smartdevicelink.proxy.rpc.OnLanguageChange;
import com.smartdevicelink.proxy.rpc.OnLockScreenStatus;
import com.smartdevicelink.proxy.rpc.OnPermissionsChange;
+import com.smartdevicelink.proxy.rpc.OnRCStatus;
import com.smartdevicelink.proxy.rpc.OnStreamRPC;
import com.smartdevicelink.proxy.rpc.OnSystemRequest;
import com.smartdevicelink.proxy.rpc.OnTBTClientState;
@@ -353,4 +354,6 @@ public interface IProxyListenerBase {
public void onOnInteriorVehicleData(OnInteriorVehicleData notification);
public void onSendHapticDataResponse(SendHapticDataResponse response);
+
+ public void onOnRCStatus(OnRCStatus notification);
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnRCStatus.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnRCStatus.java
new file mode 100644
index 000000000..69d374afa
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/rpc/OnRCStatus.java
@@ -0,0 +1,38 @@
+package com.smartdevicelink.proxy.rpc;
+
+import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.RPCNotification;
+
+import java.util.Hashtable;
+import java.util.List;
+
+public class OnRCStatus extends RPCNotification {
+ public static final String KEY_ALLOCATED_MODULES = "allocatedModules";
+ public static final String KEY_FREE_MODULES = "freeModules";
+
+ public OnRCStatus() {
+ super(FunctionID.ON_RC_STATUS.toString());
+ }
+
+ public OnRCStatus(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ @SuppressWarnings("unchecked")
+ public List<ModuleData> getAllocatedModules() {
+ return (List<ModuleData>) getObject(ModuleData.class, KEY_ALLOCATED_MODULES);
+ }
+
+ public void setAllocatedModules(List<ModuleData> allocatedModules) {
+ setParameters(KEY_ALLOCATED_MODULES, allocatedModules);
+ }
+
+ @SuppressWarnings("unchecked")
+ public List<ModuleData> getFreeModules() {
+ return (List<ModuleData>) getObject(ModuleData.class, KEY_FREE_MODULES);
+ }
+
+ public void setFreeModules(List<ModuleData> freeModules) {
+ setParameters(KEY_FREE_MODULES, freeModules);
+ }
+}