1package eu.siacs.conversations.ui.forms;
2
3import android.content.Context;
4import android.text.InputType;
5import android.widget.EditText;
6import android.widget.TextView;
7
8import java.util.ArrayList;
9import java.util.List;
10
11import eu.siacs.conversations.R;
12import eu.siacs.conversations.xmpp.forms.Field;
13
14public class FormTextFieldWrapper extends FormFieldWrapper {
15
16 protected EditText editText;
17
18 protected FormTextFieldWrapper(Context context, Field field) {
19 super(context, field);
20 editText = (EditText) view.findViewById(R.id.field);
21 editText.setSingleLine(!"text-multi".equals(field.getType()));
22 if ("text-private".equals(field.getType())) {
23 editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
24 }
25 }
26
27 @Override
28 protected void setLabel(String label, boolean required) {
29 TextView textView = (TextView) view.findViewById(R.id.label);
30 textView.setText(createSpannableLabelString(label, required));
31 }
32
33 protected String getValue() {
34 return editText.getText().toString();
35 }
36
37 @Override
38 public List<String> getValues() {
39 List<String> values = new ArrayList<>();
40 for (String line : getValue().split("\\n")) {
41 values.add(line);
42 }
43 return values;
44 }
45
46 @Override
47 public boolean validates() {
48 return getValue().trim().length() > 0 || !field.isRequired();
49 }
50
51 @Override
52 protected int getLayoutResource() {
53 return R.layout.form_text;
54 }
55}