diff options
author | BrettyWhite <geekman3454@protonmail.com> | 2019-07-18 10:52:22 -0400 |
---|---|---|
committer | BrettyWhite <geekman3454@protonmail.com> | 2019-07-18 10:52:22 -0400 |
commit | cb448da8a33ef05dcd113fb84358ea454e3c236a (patch) | |
tree | 7b92f3af167fe65d7a9f1c79aaec138971901399 | |
parent | b1cc83300451245d92baf874cd99019728fe1ffa (diff) | |
download | sdl_android-cb448da8a33ef05dcd113fb84358ea454e3c236a.tar.gz |
update displaycapabilities and tests
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);
+ }
}
|