Skip to content

Commit 4a2237c

Browse files
committed
writing semicolon values in xml almost working correctly #103
1 parent 8f103bb commit 4a2237c

File tree

3 files changed

+27
-4
lines changed

3 files changed

+27
-4
lines changed

app/src/main/java/org/redcross/openmapkit/odkcollect/tag/ODKTag.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public boolean hasCheckedTagValues() {
9494
return false;
9595
}
9696

97-
public String getSemiColonDelimitedTagValues() {
97+
public String getSemiColonDelimitedTagValues(String customValues) {
9898
String values = null;
9999
boolean firstVal = true;
100100
for (CheckBox cb : checkBoxes) {
@@ -111,6 +111,16 @@ public String getSemiColonDelimitedTagValues() {
111111
}
112112
}
113113
}
114+
if (customValues != null) {
115+
customValues = customValues.trim();
116+
if (customValues.length() > 0) {
117+
if (firstVal) {
118+
values = customValues;
119+
} else {
120+
values += ';' + customValues;
121+
}
122+
}
123+
}
114124
return values;
115125
}
116126
}

app/src/main/java/org/redcross/openmapkit/tagswipe/SelectMultipleTagValueFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ private void setupWidgets() {
7272

7373
@SuppressWarnings("ResourceType")
7474
private void setupCheckBoxes() {
75-
tagEdit.setCheckBoxMode(true);
7675
final LinearLayout checkboxLinearLayout = (LinearLayout)rootView.findViewById(R.id.checkboxLinearLayout);
7776
final Activity activity = getActivity();
7877
ODKTag odkTag = tagEdit.getODKTag();
@@ -150,6 +149,7 @@ public void onClick(View view) {
150149
}
151150
}
152151
});
152+
tagEdit.setupEditCheckbox(editTextCheckBox, editText);
153153

154154
LinearLayout customLinearLayout = new LinearLayout(activity);
155155
customLinearLayout.setOrientation(LinearLayout.HORIZONTAL);

app/src/main/java/org/redcross/openmapkit/tagswipe/TagEdit.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.redcross.openmapkit.tagswipe;
22

3+
import android.widget.CheckBox;
34
import android.widget.EditText;
45
import android.widget.LinearLayout;
56
import android.widget.RadioButton;
@@ -39,6 +40,12 @@ public class TagEdit {
3940
private int idx = -1;
4041
private EditText editText;
4142
private RadioGroup radioGroup;
43+
44+
/**
45+
* For CheckBox mode.
46+
*/
47+
private CheckBox editTextCheckBox;
48+
private EditText checkBoxEditText;
4249

4350
public static List<TagEdit> buildTagEdits() {
4451
int idx = 0;
@@ -137,8 +144,10 @@ public void setRadioGroup(RadioGroup radioGroup) {
137144
this.radioGroup = radioGroup;
138145
}
139146

140-
public void setCheckBoxMode(boolean bool) {
147+
public void setupEditCheckbox(CheckBox cb, EditText et) {
141148
checkBoxMode = true;
149+
editTextCheckBox = cb;
150+
checkBoxEditText = et;
142151
}
143152

144153
public ODKTag getODKTag() {
@@ -149,7 +158,11 @@ private void updateTagInOSMElement() {
149158
// check boxes
150159
if (odkTag != null && checkBoxMode) {
151160
if (odkTag.hasCheckedTagValues()) {
152-
tagVal = odkTag.getSemiColonDelimitedTagValues();
161+
if (editTextCheckBox.isChecked()) {
162+
tagVal = odkTag.getSemiColonDelimitedTagValues(checkBoxEditText.getText().toString());
163+
} else {
164+
tagVal = odkTag.getSemiColonDelimitedTagValues(null);
165+
}
153166
osmElement.addOrEditTag(tagKey, tagVal);
154167
} else {
155168
osmElement.deleteTag(tagKey);

0 commit comments

Comments
 (0)