summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrettyWhite <geekman3454@protonmail.com>2019-07-18 10:52:22 -0400
committerBrettyWhite <geekman3454@protonmail.com>2019-07-18 10:52:22 -0400
commitcb448da8a33ef05dcd113fb84358ea454e3c236a (patch)
tree7b92f3af167fe65d7a9f1c79aaec138971901399
parentb1cc83300451245d92baf874cd99019728fe1ffa (diff)
downloadsdl_android-cb448da8a33ef05dcd113fb84358ea454e3c236a.tar.gz
update displaycapabilities and tests
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java2
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DisplayCapabilitiesTests.java14
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/DisplayCapabilities.java29
3 files changed, 42 insertions, 3 deletions
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
index e6a005e8c..110e5f1e6 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
@@ -149,6 +149,7 @@ import com.smartdevicelink.proxy.rpc.enums.MassageMode;
import com.smartdevicelink.proxy.rpc.enums.MassageZone;
import com.smartdevicelink.proxy.rpc.enums.MediaClockFormat;
import com.smartdevicelink.proxy.rpc.enums.MediaType;
+import com.smartdevicelink.proxy.rpc.enums.MenuLayout;
import com.smartdevicelink.proxy.rpc.enums.MetadataType;
import com.smartdevicelink.proxy.rpc.enums.ModuleType;
import com.smartdevicelink.proxy.rpc.enums.NavigationAction;
@@ -456,6 +457,7 @@ public class Test {
public static final List<WeatherAlert> GENERAL_WEATHERALERT_LIST = Arrays.asList(GENERAL_WEATHERALERT);
public static final List<NavigationInstruction> GENERAL_NAVIGATION_INSTRUCTION_LIST = Arrays.asList(GENERAL_NAVIGATION_INSTRUCTION);
public static final List<Integer> GENERAL_AVAILABLE_HD_CHANNELS_LIST = Arrays.asList(new Integer[]{ 1, 2});
+ public static final List<MenuLayout> GENERAL_MENU_LAYOUT_LIST = Arrays.asList(MenuLayout.LIST, MenuLayout.TILES);
public static final int GENERAL_MENU_MAX_ID = 2000000000;
public static final MenuCell GENERAL_MENUCELL = new MenuCell(GENERAL_STRING,null, null, new MenuSelectionListener() {
@Override
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DisplayCapabilitiesTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DisplayCapabilitiesTests.java
index f7fcb45e3..d4f2d256b 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DisplayCapabilitiesTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/DisplayCapabilitiesTests.java
@@ -7,6 +7,7 @@ import com.smartdevicelink.proxy.rpc.ScreenParams;
import com.smartdevicelink.proxy.rpc.TextField;
import com.smartdevicelink.proxy.rpc.enums.DisplayType;
import com.smartdevicelink.proxy.rpc.enums.MediaClockFormat;
+import com.smartdevicelink.proxy.rpc.enums.MenuLayout;
import com.smartdevicelink.test.JsonUtils;
import com.smartdevicelink.test.Test;
import com.smartdevicelink.test.Validator;
@@ -23,7 +24,7 @@ import java.util.List;
/**
* This is a unit test class for the SmartDeviceLink library project class :
- * {@link com.smartdevicelink.rpc.DisplayCapabilities}
+ * {@link com.smartdevicelink.proxy.rpc.DisplayCapabilities}
*/
public class DisplayCapabilitiesTests extends TestCase{
@@ -42,6 +43,7 @@ public class DisplayCapabilitiesTests extends TestCase{
msg.setMediaClockFormats(Test.GENERAL_MEDIACLOCKFORMAT_LIST);
msg.setScreenParams(Test.GENERAL_SCREENPARAMS);
msg.setTemplatesAvailable(Test.GENERAL_STRING_LIST);
+ msg.setMenuLayoutsAvailable(Test.GENERAL_MENU_LAYOUT_LIST);
}
/**
@@ -58,6 +60,7 @@ public class DisplayCapabilitiesTests extends TestCase{
List<MediaClockFormat> mediaClock = msg.getMediaClockFormats();
List<TextField> textFields = msg.getTextFields();
List<ImageField> imageFields = msg.getImageFields();
+ List<MenuLayout> menuLayouts = msg.getMenuLayoutsAvailable();
// Valid Tests
assertEquals(Test.MATCH, Test.GENERAL_BOOLEAN, graphicSupported);
@@ -69,6 +72,7 @@ public class DisplayCapabilitiesTests extends TestCase{
assertEquals(Test.MATCH, Test.GENERAL_MEDIACLOCKFORMAT_LIST.size(), mediaClock.size());
assertEquals(Test.MATCH, Test.GENERAL_TEXTFIELD_LIST.size(), textFields.size());
assertEquals(Test.MATCH, Test.GENERAL_IMAGEFIELD_LIST.size(), imageFields.size());
+ assertEquals(Test.MATCH, Test.GENERAL_MENU_LAYOUT_LIST.size(), menuLayouts.size());
for(int i = 0; i < Test.GENERAL_STRING_LIST.size(); i++){
assertEquals(Test.MATCH, Test.GENERAL_STRING_LIST.get(i), templatesAvailable.get(i));
@@ -85,6 +89,10 @@ public class DisplayCapabilitiesTests extends TestCase{
for(int i = 0; i < Test.GENERAL_IMAGEFIELD_LIST.size(); i++){
assertTrue(Test.TRUE, Validator.validateImageFields(Test.GENERAL_IMAGEFIELD_LIST.get(i), imageFields.get(i)));
}
+
+ for(int i = 0; i < Test.GENERAL_MENU_LAYOUT_LIST.size(); i++){
+ assertEquals(Test.MATCH, Test.GENERAL_MENU_LAYOUT_LIST.get(i), menuLayouts.get(i));
+ }
// Invalid/Null Tests
DisplayCapabilities msg = new DisplayCapabilities();
@@ -99,6 +107,7 @@ public class DisplayCapabilitiesTests extends TestCase{
assertNull(Test.NULL, msg.getScreenParams());
assertNull(Test.NULL, msg.getTemplatesAvailable());
assertNull(Test.NULL, msg.getTextFields());
+ assertNull(Test.NULL, msg.getMenuLayoutsAvailable());
}
public void testJson(){
@@ -114,6 +123,7 @@ public class DisplayCapabilitiesTests extends TestCase{
reference.put(DisplayCapabilities.KEY_TEXT_FIELDS, Test.JSON_TEXTFIELDS);
reference.put(DisplayCapabilities.KEY_IMAGE_FIELDS, Test.JSON_IMAGEFIELDS);
reference.put(DisplayCapabilities.KEY_SCREEN_PARAMS, Test.JSON_SCREENPARAMS);
+ reference.put(DisplayCapabilities.KEY_MENU_LAYOUTS_AVAILABLE, JsonUtils.createJsonArray(Test.GENERAL_MENU_LAYOUT_LIST));
JSONObject underTest = msg.serializeJSON();
assertEquals(Test.MATCH, reference.length(), underTest.length());
@@ -153,7 +163,7 @@ public class DisplayCapabilitiesTests extends TestCase{
Hashtable<String, Object> hashTest= JsonRPCMarshaller.deserializeJSONObject(underTestArray);
assertTrue(Test.TRUE, Validator.validateScreenParams(new ScreenParams(hashReference), new ScreenParams(hashTest)));
- } else if(key.equals(DisplayCapabilities.KEY_MEDIA_CLOCK_FORMATS)){
+ } else if(key.equals(DisplayCapabilities.KEY_MEDIA_CLOCK_FORMATS) || key.equals(DisplayCapabilities.KEY_MENU_LAYOUTS_AVAILABLE)){
JSONArray referenceArray = JsonUtils.readJsonArrayFromJsonObject(reference, key);
JSONArray underTestArray = JsonUtils.readJsonArrayFromJsonObject(underTest, key);
assertEquals(Test.MATCH, referenceArray.length(), underTestArray.length());
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/DisplayCapabilities.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/DisplayCapabilities.java
index 32677230b..8f0fc3fb4 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/DisplayCapabilities.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/DisplayCapabilities.java
@@ -36,6 +36,7 @@ import android.support.annotation.NonNull;
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.MenuLayout;
import com.smartdevicelink.util.Version;
import java.util.Hashtable;
@@ -85,6 +86,12 @@ import java.util.List;
* <td>The display's persistent screen supports referencing a static or dynamic image.</td>
* <td>SmartDeviceLink 2.0</td>
* </tr>
+ * <tr>
+ * <td>menuLayoutsAvailable</td>
+ * <td>MenuLayout[]</td>
+ * <td>An array of available menu layouts. If this parameter is not provided, only the `LIST` layout is assumed to be available</td>
+ * <td>SmartDeviceLink 6.0</td>
+ * </tr>
* </table>
* @since SmartDeviceLink 1.0
* @see DisplayType
@@ -103,6 +110,7 @@ public class DisplayCapabilities extends RPCStruct {
public static final String KEY_SCREEN_PARAMS = "screenParams";
public static final String KEY_TEMPLATES_AVAILABLE = "templatesAvailable";
public static final String KEY_NUM_CUSTOM_PRESETS_AVAILABLE = "numCustomPresetsAvailable";
+ public static final String KEY_MENU_LAYOUTS_AVAILABLE = "menuLayoutsAvailable";
/**
* Constructs a newly allocated DisplayCapabilities object
*/
@@ -270,5 +278,24 @@ public class DisplayCapabilities extends RPCStruct {
@SuppressWarnings("unchecked")
public ScreenParams getScreenParams() {
return (ScreenParams) getObject(ScreenParams.class, KEY_SCREEN_PARAMS);
- }
+ }
+
+ /**
+ * An array of available menu layouts. If this parameter is not provided, only the `LIST` layout
+ * is assumed to be available
+ * @param menuLayout - An array of MenuLayouts
+ */
+ public void setMenuLayoutsAvailable(List<MenuLayout> menuLayout) {
+ setValue(KEY_MENU_LAYOUTS_AVAILABLE, menuLayout);
+ }
+
+ /**
+ * An array of available menu layouts. If this parameter is not provided, only the `LIST` layout
+ * is assumed to be available
+ * @return MenuLayout[]
+ */
+ @SuppressWarnings("unchecked")
+ public List<MenuLayout> getMenuLayoutsAvailable() {
+ return (List<MenuLayout>) getObject(MenuLayout.class, KEY_MENU_LAYOUTS_AVAILABLE);
+ }
}