FormTextFieldWrapper.java

 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}