From 24a0e30c78a7a86ce723639d270b17ff163e2b7e Mon Sep 17 00:00:00 2001 From: Martin Riese Date: Tue, 21 Nov 2023 09:32:51 -0600 Subject: [PATCH 1/2] Add flag if to show borders on case list fields --- .../java/org/commcare/suite/model/DetailField.java | 12 ++++++++++++ src/main/java/org/commcare/suite/model/Style.java | 7 +++++++ src/main/java/org/commcare/xml/StyleParser.java | 3 +++ 3 files changed, 22 insertions(+) diff --git a/src/main/java/org/commcare/suite/model/DetailField.java b/src/main/java/org/commcare/suite/model/DetailField.java index ea812612da..807059971c 100644 --- a/src/main/java/org/commcare/suite/model/DetailField.java +++ b/src/main/java/org/commcare/suite/model/DetailField.java @@ -49,6 +49,8 @@ public class DetailField implements Externalizable { @Nullable private EndpointAction endpointAction; + private boolean showBorder; + /** * Optional hint which provides a hint for whether rich media should be * displayed based on returning a URI. May be either 'image' or @@ -207,6 +209,7 @@ public void readExternal(DataInputStream in, PrototypeFactory pf) throws IOExcep verticalAlign = ExtUtil.nullIfEmpty(ExtUtil.readString(in)); cssID = ExtUtil.nullIfEmpty(ExtUtil.readString(in)); endpointAction = (EndpointAction)ExtUtil.read(in, new ExtWrapNullable(EndpointAction.class), pf); + showBorder = ExtUtil.readBool(in); } @Override @@ -237,6 +240,7 @@ public void writeExternal(DataOutputStream out) throws IOException { ExtUtil.writeString(out, ExtUtil.emptyIfNull(verticalAlign)); ExtUtil.writeString(out, ExtUtil.emptyIfNull(cssID)); ExtUtil.write(out, new ExtWrapNullable(endpointAction)); + ExtUtil.writeBool(out, showBorder); } public int getGridX() { @@ -276,6 +280,10 @@ public String getCssId() { return cssID; } + public boolean getShowBorder() { + return showBorder; + } + public static class Builder { final DetailField field; @@ -398,5 +406,9 @@ public void setCssID(String id) { public void setEndpointAction(EndpointAction endpointAction) { field.endpointAction = endpointAction; } + + public void setShowBorder(boolean showBorder) { + field.showBorder = showBorder; + } } } diff --git a/src/main/java/org/commcare/suite/model/Style.java b/src/main/java/org/commcare/suite/model/Style.java index a53eb67c43..529558c58a 100644 --- a/src/main/java/org/commcare/suite/model/Style.java +++ b/src/main/java/org/commcare/suite/model/Style.java @@ -11,6 +11,8 @@ public class Style { private String horizontalAlign; private String verticalAlign; + private boolean showBorder; + public Style(){} public Style(DetailField detail){ @@ -35,6 +37,7 @@ public Style(DetailField detail){ verticalAlign = detail.getVerticalAlign(); horizontalAlign = detail.getHorizontalAlign(); + showBorder = detail.getShowBorder(); } enum DisplayFormat { @@ -118,4 +121,8 @@ public String getHorizontalAlign() { public String getVerticalAlign() { return verticalAlign; } + + public boolean getShowBorder() { + return showBorder; + } } diff --git a/src/main/java/org/commcare/xml/StyleParser.java b/src/main/java/org/commcare/xml/StyleParser.java index b04c4fbccf..c915e5ed61 100644 --- a/src/main/java/org/commcare/xml/StyleParser.java +++ b/src/main/java/org/commcare/xml/StyleParser.java @@ -40,6 +40,9 @@ public Integer parse() throws InvalidStructureException, IOException, XmlPullPar String cssID = parser.getAttributeValue(null, "css-id"); builder.setCssID(cssID); + String showBorder = parser.getAttributeValue(null, "show-border"); + builder.setShowBorder(Boolean.parseBoolean(showBorder)); + parser.nextTag(); return Integer.valueOf(1); From 3a0750a1fea7285c080e08c63253e7aa91b9fb84 Mon Sep 17 00:00:00 2001 From: Martin Riese Date: Fri, 24 Nov 2023 11:49:28 -0600 Subject: [PATCH 2/2] Add test case for border sytle --- .../backend/suite/model/test/AppStructureTests.java | 7 +++++++ src/test/resources/app_structure/suite.xml | 3 +++ 2 files changed, 10 insertions(+) diff --git a/src/test/java/org/commcare/backend/suite/model/test/AppStructureTests.java b/src/test/java/org/commcare/backend/suite/model/test/AppStructureTests.java index f228147bcc..46ab8193d8 100644 --- a/src/test/java/org/commcare/backend/suite/model/test/AppStructureTests.java +++ b/src/test/java/org/commcare/backend/suite/model/test/AppStructureTests.java @@ -227,6 +227,13 @@ public void testDetailWithFieldAction() { assertFalse(endpoint.isRespectRelevancy()); } + @Test + public void testDetailWithBorder() { + Detail detail = mApp.getSession().getPlatform().getDetail("m0_case_short"); + DetailField field1 = detail.getFields()[0]; + assertTrue(field1.getShowBorder()); + } + @Test public void testDefaultEndpointRelevancy_shouldBeTrue() { Endpoint endpoint = mApp.getSession().getPlatform().getEndpoint("endpoint_with_no_relevancy"); diff --git a/src/test/resources/app_structure/suite.xml b/src/test/resources/app_structure/suite.xml index eadc29fd99..8134c36e35 100644 --- a/src/test/resources/app_structure/suite.xml +++ b/src/test/resources/app_structure/suite.xml @@ -62,6 +62,9 @@ +
Name