summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRHenigan <heniganr1@gmail.com>2020-08-05 13:27:31 -0400
committerRHenigan <heniganr1@gmail.com>2020-08-05 13:27:31 -0400
commita52d89561a7d8d144d376c0261c57066f99546b2 (patch)
tree615a9925559e805e18a5fdb63c8c4064bf567254
parentba4d587bc22d46771dd12a8db68e14cb95271cf7 (diff)
downloadsdl_android-a52d89561a7d8d144d376c0261c57066f99546b2.tar.gz
Update for RPC changes with main menu/pagination
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SystemCapabilityManagerTests.java2
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ImageFieldNameTests.java1
-rw-r--r--base/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java2
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/DynamicUpdateCapabilities.java137
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/OnUpdateFile.java111
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/OnUpdateSubMenu.java142
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/WindowCapability.java23
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/enums/ImageFieldName.java6
8 files changed, 423 insertions, 1 deletions
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SystemCapabilityManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SystemCapabilityManagerTests.java
index 75b45797f..3ddcdc519 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SystemCapabilityManagerTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SystemCapabilityManagerTests.java
@@ -210,7 +210,7 @@ public class SystemCapabilityManagerTests {
public void testNullDisplayCapabilitiesEnablesAllTextAndImageFields() {
List<DisplayCapability> displayCapabilityList = createDisplayCapabilityList(null, TestValues.GENERAL_BUTTONCAPABILITIES_LIST, TestValues.GENERAL_SOFTBUTTONCAPABILITIES_LIST);
assertEquals(displayCapabilityList.get(0).getWindowCapabilities().get(0).getTextFields().size(), 29);
- assertEquals(displayCapabilityList.get(0).getWindowCapabilities().get(0).getImageFields().size(), 14);
+ assertEquals(displayCapabilityList.get(0).getWindowCapabilities().get(0).getImageFields().size(), 15);
}
@Test
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ImageFieldNameTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ImageFieldNameTests.java
index 3bca4edc9..805f1f862 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ImageFieldNameTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/ImageFieldNameTests.java
@@ -109,6 +109,7 @@ public class ImageFieldNameTests extends TestCase {
enumTestList.add(ImageFieldName.locationImage);
enumTestList.add(ImageFieldName.secondaryGraphic);
enumTestList.add(ImageFieldName.alertIcon);
+ enumTestList.add(ImageFieldName.subMenuIcon);
assertTrue("Enum value list does not match enum class list",
diff --git a/base/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java b/base/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java
index 928f0dade..ddbb146c2 100644
--- a/base/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java
+++ b/base/src/main/java/com/smartdevicelink/protocol/enums/FunctionID.java
@@ -131,6 +131,8 @@ public enum FunctionID{
ON_RC_STATUS(32785, "OnRCStatus"),
ON_APP_SERVICE_DATA(32786, "OnAppServiceData"),
ON_SYSTEM_CAPABILITY_UPDATED(32787, "OnSystemCapabilityUpdated"),
+ ON_UPDATE_FILE(32789, "OnUpdateFile"),
+ ON_UPDATE_SUB_MENU(32790, "OnUpdateSubMenu"),
// MOCKED FUNCTIONS (NOT SENT FROM HEAD-UNIT)
@Deprecated
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/DynamicUpdateCapabilities.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/DynamicUpdateCapabilities.java
new file mode 100644
index 000000000..f8b16ce29
--- /dev/null
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/DynamicUpdateCapabilities.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (c) 2017 - 2020, SmartDeviceLink Consortium, 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 SmartDeviceLink Consortium 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.
+ */
+package com.smartdevicelink.proxy.rpc;
+
+import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.ImageFieldName;
+
+import java.util.Hashtable;
+import java.util.List;
+
+/**
+ *
+ * <p><b>Parameter List</b></p>
+ *
+ * <table border="1" rules="all">
+ * <tr>
+ * <th>Param Name</th>
+ * <th>Type</th>
+ * <th>Description</th>
+ * <th>Required</th>
+ * <th>Version Available</th>
+ * </tr>
+ * <tr>
+ * <td>supportedDynamicImageFieldNames</td>
+ * <td>List<ImageFieldName></td>
+ * <td>An array of ImageFieldName values for which the system supports sending OnFileUpdatenotifications. If you send an Image struct for that image field with a name without havinguploaded the image data using PutFile that matches that name, the system will request thatyou upload the data with PutFile at a later point when the HMI needs it. The HMI will thendisplay the image in the appropriate field. If not sent, assume false.</td>
+ * <td>N</td>
+ * <td></td>
+ * </tr>
+ * <tr>
+ * <td>supportsDynamicSubMenus</td>
+ * <td>Boolean</td>
+ * <td>If true, the head unit supports dynamic sub-menus by sending OnUpdateSubMenunotifications. If true, you should not send AddCommands that attach to a parentID for anAddSubMenu until OnUpdateSubMenu is received with the menuID. At that point, you shouldsend all AddCommands with a parentID that match the menuID. If not set, assume false.</td>
+ * <td>N</td>
+ * <td></td>
+ * </tr>
+ * </table>
+ * @since SmartDeviceLink 7.0.0
+ */
+public class DynamicUpdateCapabilities extends RPCStruct {
+ public static final String KEY_SUPPORTED_DYNAMIC_IMAGE_FIELD_NAMES = "supportedDynamicImageFieldNames";
+ public static final String KEY_SUPPORTS_DYNAMIC_SUB_MENUS = "supportsDynamicSubMenus";
+
+ /**
+ * Constructs a new DynamicUpdateCapabilities object
+ */
+ public DynamicUpdateCapabilities() { }
+
+ /**
+ * Constructs a new DynamicUpdateCapabilities object indicated by the Hashtable parameter
+ *
+ * @param hash The Hashtable to use
+ */
+ public DynamicUpdateCapabilities(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Sets the supportedDynamicImageFieldNames.
+ *
+ * @param supportedDynamicImageFieldNames An array of ImageFieldName values for which the system supports sending OnFileUpdate
+ * notifications. If you send an Image struct for that image field with a name without having
+ * uploaded the image data using PutFile that matches that name, the system will request that
+ * you upload the data with PutFile at a later point when the HMI needs it. The HMI will then
+ * display the image in the appropriate field. If not sent, assume false.
+ */
+ public void setSupportedDynamicImageFieldNames(List<ImageFieldName> supportedDynamicImageFieldNames) {
+ setValue(KEY_SUPPORTED_DYNAMIC_IMAGE_FIELD_NAMES, supportedDynamicImageFieldNames);
+ }
+
+ /**
+ * Gets the supportedDynamicImageFieldNames.
+ *
+ * @return List<ImageFieldName> An array of ImageFieldName values for which the system supports sending OnFileUpdate
+ * notifications. If you send an Image struct for that image field with a name without having
+ * uploaded the image data using PutFile that matches that name, the system will request that
+ * you upload the data with PutFile at a later point when the HMI needs it. The HMI will then
+ * display the image in the appropriate field. If not sent, assume false.
+ */
+ @SuppressWarnings("unchecked")
+ public List<ImageFieldName> getSupportedDynamicImageFieldNames() {
+ return (List<ImageFieldName>) getObject(ImageFieldName.class, KEY_SUPPORTED_DYNAMIC_IMAGE_FIELD_NAMES);
+ }
+
+ /**
+ * Sets the supportsDynamicSubMenus.
+ *
+ * @param supportsDynamicSubMenus If true, the head unit supports dynamic sub-menus by sending OnUpdateSubMenu
+ * notifications. If true, you should not send AddCommands that attach to a parentID for an
+ * AddSubMenu until OnUpdateSubMenu is received with the menuID. At that point, you should
+ * send all AddCommands with a parentID that match the menuID. If not set, assume false.
+ */
+ public void setSupportsDynamicSubMenus(Boolean supportsDynamicSubMenus) {
+ setValue(KEY_SUPPORTS_DYNAMIC_SUB_MENUS, supportsDynamicSubMenus);
+ }
+
+ /**
+ * Gets the supportsDynamicSubMenus.
+ *
+ * @return Boolean If true, the head unit supports dynamic sub-menus by sending OnUpdateSubMenu
+ * notifications. If true, you should not send AddCommands that attach to a parentID for an
+ * AddSubMenu until OnUpdateSubMenu is received with the menuID. At that point, you should
+ * send all AddCommands with a parentID that match the menuID. If not set, assume false.
+ */
+ public Boolean getSupportsDynamicSubMenus() {
+ return getBoolean(KEY_SUPPORTS_DYNAMIC_SUB_MENUS);
+ }
+}
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/OnUpdateFile.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/OnUpdateFile.java
new file mode 100644
index 000000000..a0bfcba6e
--- /dev/null
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/OnUpdateFile.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2017 - 2020, SmartDeviceLink Consortium, 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 SmartDeviceLink Consortium 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.
+ */
+package com.smartdevicelink.proxy.rpc;
+
+import android.support.annotation.NonNull;
+
+import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.RPCNotification;
+
+import java.util.Hashtable;
+
+/**
+ * This notification tells an app to upload and update a file with a given name.
+ *
+ * <p><b>Parameter List</b></p>
+ *
+ * <table border="1" rules="all">
+ * <tr>
+ * <th>Param Name</th>
+ * <th>Type</th>
+ * <th>Description</th>
+ * <th>Required</th>
+ * <th>Version Available</th>
+ * </tr>
+ * <tr>
+ * <td>fileName</td>
+ * <td>String</td>
+ * <td>File reference name.</td>
+ * <td>Y</td>
+ * <td></td>
+ * </tr>
+ * </table>
+ *
+ * @since SmartDeviceLink 7.0.0
+ */
+public class OnUpdateFile extends RPCNotification {
+ public static final String KEY_FILE_NAME = "fileName";
+
+ /**
+ * Constructs a new OnUpdateFile object
+ */
+ public OnUpdateFile() {
+ super(FunctionID.ON_UPDATE_FILE.toString());
+ }
+
+ /**
+ * Constructs a new OnUpdateFile object indicated by the Hashtable parameter
+ *
+ * @param hash The Hashtable to use
+ */
+ public OnUpdateFile(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Constructs a new OnUpdateFile object
+ *
+ * @param fileName File reference name.
+ */
+ public OnUpdateFile(@NonNull String fileName) {
+ this();
+ setFileName(fileName);
+ }
+
+ /**
+ * Sets the fileName.
+ *
+ * @param fileName File reference name.
+ */
+ public void setFileName(@NonNull String fileName) {
+ setParameters(KEY_FILE_NAME, fileName);
+ }
+
+ /**
+ * Gets the fileName.
+ *
+ * @return String File reference name.
+ */
+ public String getFileName() {
+ return getString(KEY_FILE_NAME);
+ }
+}
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/OnUpdateSubMenu.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/OnUpdateSubMenu.java
new file mode 100644
index 000000000..8c6869f8f
--- /dev/null
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/OnUpdateSubMenu.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2017 - 2020, SmartDeviceLink Consortium, 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 SmartDeviceLink Consortium 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.
+ */
+package com.smartdevicelink.proxy.rpc;
+
+import android.support.annotation.NonNull;
+
+import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.RPCNotification;
+
+import java.util.Hashtable;
+
+/**
+ * This notification tells an app to update the AddSubMenu or its 'sub' AddCommand and
+ * AddSubMenus with the requested data
+ *
+ * <p><b>Parameter List</b></p>
+ *
+ * <table border="1" rules="all">
+ * <tr>
+ * <th>Param Name</th>
+ * <th>Type</th>
+ * <th>Description</th>
+ * <th>Required</th>
+ * <th>Version Available</th>
+ * </tr>
+ * <tr>
+ * <td>menuID</td>
+ * <td>Integer</td>
+ * <td>This menuID must match a menuID in the current menu structure</td>
+ * <td>Y</td>
+ * <td></td>
+ * </tr>
+ * <tr>
+ * <td>updateSubCells</td>
+ * <td>Boolean</td>
+ * <td>If not set, assume false. If true, the app should send AddCommands with parentIDs matchingthe menuID. These AddCommands will then be attached to the submenu and displayed if thesubmenu is selected.</td>
+ * <td>N</td>
+ * <td></td>
+ * </tr>
+ * </table>
+ *
+ * @since SmartDeviceLink 7.0.0
+ */
+public class OnUpdateSubMenu extends RPCNotification {
+ public static final String KEY_MENU_ID = "menuID";
+ public static final String KEY_UPDATE_SUB_CELLS = "updateSubCells";
+
+ /**
+ * Constructs a new OnUpdateSubMenu object
+ */
+ public OnUpdateSubMenu() {
+ super(FunctionID.ON_UPDATE_SUB_MENU.toString());
+ }
+
+ /**
+ * Constructs a new OnUpdateSubMenu object indicated by the Hashtable parameter
+ *
+ * @param hash The Hashtable to use
+ */
+ public OnUpdateSubMenu(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Constructs a new OnUpdateSubMenu object
+ *
+ * @param menuID This menuID must match a menuID in the current menu structure
+ */
+ public OnUpdateSubMenu(@NonNull Integer menuID) {
+ this();
+ setMenuID(menuID);
+ }
+
+ /**
+ * Sets the menuID.
+ *
+ * @param menuID This menuID must match a menuID in the current menu structure
+ */
+ public void setMenuID(@NonNull Integer menuID) {
+ setParameters(KEY_MENU_ID, menuID);
+ }
+
+ /**
+ * Gets the menuID.
+ *
+ * @return Integer This menuID must match a menuID in the current menu structure
+ */
+ public Integer getMenuID() {
+ return getInteger(KEY_MENU_ID);
+ }
+
+ /**
+ * Sets the updateSubCells.
+ *
+ * @param updateSubCells If not set, assume false. If true, the app should send AddCommands with parentIDs matching
+ * the menuID. These AddCommands will then be attached to the submenu and displayed if the
+ * submenu is selected.
+ */
+ public void setUpdateSubCells(Boolean updateSubCells) {
+ setParameters(KEY_UPDATE_SUB_CELLS, updateSubCells);
+ }
+
+ /**
+ * Gets the updateSubCells.
+ *
+ * @return Boolean If not set, assume false. If true, the app should send AddCommands with parentIDs matching
+ * the menuID. These AddCommands will then be attached to the submenu and displayed if the
+ * submenu is selected.
+ */
+ public Boolean getUpdateSubCells() {
+ return getBoolean(KEY_UPDATE_SUB_CELLS);
+ }
+}
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/WindowCapability.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/WindowCapability.java
index 6974c82db..c93cb50ca 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/WindowCapability.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/WindowCapability.java
@@ -20,6 +20,7 @@ public class WindowCapability extends RPCStruct {
public static final String KEY_BUTTON_CAPABILITIES = "buttonCapabilities";
public static final String KEY_SOFT_BUTTON_CAPABILITIES = "softButtonCapabilities";
public static final String KEY_MENU_LAYOUTS_AVAILABLE = "menuLayoutsAvailable";
+ public static final String KEY_DYNAMIC_UPDATE_CAPABILITIES = "dynamicUpdateCapabilities";
public WindowCapability() {
}
@@ -205,4 +206,26 @@ public class WindowCapability extends RPCStruct {
public List<MenuLayout> getMenuLayoutsAvailable() {
return (List<MenuLayout>) getObject(MenuLayout.class, KEY_MENU_LAYOUTS_AVAILABLE);
}
+
+ /**
+ * Sets the dynamicUpdateCapabilities.
+ *
+ * @param dynamicUpdateCapabilities Contains the head unit's capabilities for dynamic updating features declaring if the
+ * module will send dynamic update RPCs.
+ * @since SmartDeviceLink 7.0.0
+ */
+ public void setDynamicUpdateCapabilities(DynamicUpdateCapabilities dynamicUpdateCapabilities) {
+ setValue(KEY_DYNAMIC_UPDATE_CAPABILITIES, dynamicUpdateCapabilities);
+ }
+
+ /**
+ * Gets the dynamicUpdateCapabilities.
+ *
+ * @return DynamicUpdateCapabilities Contains the head unit's capabilities for dynamic updating features declaring if the
+ * module will send dynamic update RPCs.
+ * @since SmartDeviceLink 7.0.0
+ */
+ public DynamicUpdateCapabilities getDynamicUpdateCapabilities() {
+ return (DynamicUpdateCapabilities) getObject(DynamicUpdateCapabilities.class, KEY_DYNAMIC_UPDATE_CAPABILITIES);
+ }
}
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/ImageFieldName.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/ImageFieldName.java
index 9c7aa2722..13f4af0d3 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/ImageFieldName.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/ImageFieldName.java
@@ -109,6 +109,12 @@ public enum ImageFieldName {
* @since SmartDeviceLink 6.0.0
*/
alertIcon,
+ /**
+ * The image field for AddSubMenu.menuIcon
+ *
+ * @since SmartDeviceLink 7.0.0
+ */
+ subMenuIcon
;
/**