|
5 | 5 | import android.widget.EditText; |
6 | 6 | import android.widget.TextView; |
7 | 7 |
|
| 8 | +import org.apache.commons.lang3.StringUtils; |
| 9 | + |
8 | 10 | import java.util.ArrayList; |
9 | 11 | import java.util.Collection; |
10 | 12 | import java.util.HashMap; |
| 13 | +import java.util.HashSet; |
11 | 14 | import java.util.LinkedHashMap; |
12 | 15 | import java.util.List; |
13 | 16 | import java.util.Map; |
| 17 | +import java.util.Set; |
14 | 18 |
|
15 | 19 | /** |
16 | 20 | * Structure for ODK OSM Tag elements in XForm. |
@@ -95,32 +99,26 @@ public boolean hasCheckedTagValues() { |
95 | 99 | } |
96 | 100 |
|
97 | 101 | public String getSemiColonDelimitedTagValues(String customValues) { |
98 | | - String values = null; |
99 | | - boolean firstVal = true; |
| 102 | + Set<String> values = new HashSet<>(); |
100 | 103 | for (CheckBox cb : checkBoxes) { |
101 | 104 | if (cb.isChecked()) { |
102 | 105 | int id = cb.getId(); |
103 | 106 | ODKTagItem item = buttonIdToODKTagItemHash.get(id); |
104 | 107 | if (item != null) { |
105 | | - if (firstVal) { |
106 | | - firstVal = false; |
107 | | - values = item.getValue(); |
108 | | - } else { |
109 | | - values += ';' + item.getValue(); |
110 | | - } |
| 108 | + values.add(item.getValue()); |
111 | 109 | } |
112 | 110 | } |
113 | 111 | } |
114 | 112 | if (customValues != null) { |
115 | 113 | customValues = customValues.trim(); |
116 | | - if (customValues.length() > 0) { |
117 | | - if (firstVal) { |
118 | | - values = customValues; |
119 | | - } else { |
120 | | - values += ';' + customValues; |
| 114 | + String[] customValuesArr = customValues.split(";"); |
| 115 | + if (customValuesArr.length > 0) { |
| 116 | + for (int i = 0; i < customValuesArr.length; i++) { |
| 117 | + String customVal = customValuesArr[i]; |
| 118 | + values.add(customVal); |
121 | 119 | } |
122 | 120 | } |
123 | 121 | } |
124 | | - return values; |
| 122 | + return StringUtils.join(values, ";"); |
125 | 123 | } |
126 | 124 | } |
0 commit comments