From b85d3416889317a315a61c9646e304dd03a8e069 Mon Sep 17 00:00:00 2001 From: Shubham Goyal Date: Thu, 16 Nov 2023 16:18:45 -0500 Subject: [PATCH] Adds to allItems even if parent menu is not valid --- .../java/org/commcare/suite/model/MenuLoader.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/commcare/suite/model/MenuLoader.java b/src/main/java/org/commcare/suite/model/MenuLoader.java index f28cad18f..3f53cfd82 100644 --- a/src/main/java/org/commcare/suite/model/MenuLoader.java +++ b/src/main/java/org/commcare/suite/model/MenuLoader.java @@ -15,9 +15,7 @@ import org.javarosa.xpath.expr.XPathExpression; import org.javarosa.xpath.parser.XPathSyntaxException; -import java.util.HashMap; import java.util.Hashtable; -import java.util.Map; import java.util.Set; import java.util.Vector; @@ -80,9 +78,8 @@ private void getMenuDisplayables(CommCarePlatform platform, for (Menu m : s.getMenus()) { try { if (m.getId().equals(menuID)) { - if (menuIsRelevant(sessionWrapper, m) && menuAssertionsPass(sessionWrapper, m)) { - addRelevantCommandEntries(sessionWrapper, m, items, badges, map, includeBadges, allItems); - } + boolean addToItems = menuIsRelevant(sessionWrapper, m) && menuAssertionsPass(sessionWrapper, m); + addRelevantCommandEntries(sessionWrapper, m, items, badges, map, includeBadges, allItems, addToItems); } else { addUnaddedMenu(sessionWrapper, menuID, m, items, badges, hideTrainingRoot, includeBadges, allItems); } @@ -190,7 +187,8 @@ private void addRelevantCommandEntries(SessionWrapperInterface sessionWrapper, Vector badges, Hashtable map, boolean includeBadges, - Vector allItems) + Vector allItems, + boolean addToItems) throws XPathSyntaxException { xPathErrorMessage = ""; for (String command : m.getCommandIds()) { @@ -228,7 +226,9 @@ private void addRelevantCommandEntries(SessionWrapperInterface sessionWrapper, } } - items.add(e); + if (addToItems) { + items.add(e); + } if (includeBadges) { badges.add(e.getTextForBadge(sessionWrapper.getEvaluationContext(e.getCommandId())).blockingGet()); }