From 388e5f2836300d6de9fd70f2d9d38f633001dd6a Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 22 Jun 2022 13:33:15 -0500 Subject: [PATCH] Refactor to bind to an Item container, not just a raw Element Gets rid of the Column extends Element hack and paves the way for error messages and other things. --- .../conversations/entities/Conversation.java | 226 +++++++++--------- 1 file changed, 113 insertions(+), 113 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/entities/Conversation.java b/src/main/java/eu/siacs/conversations/entities/Conversation.java index 8f6ad8306..22027a0da 100644 --- a/src/main/java/eu/siacs/conversations/entities/Conversation.java +++ b/src/main/java/eu/siacs/conversations/entities/Conversation.java @@ -1341,7 +1341,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl this.binding = binding; } - abstract public void bind(Element el); + abstract public void bind(Item el); protected void setupInputType(Element field, TextView textinput, TextInputLayout layout) { int flags = 0; @@ -1409,10 +1409,10 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public ErrorViewHolder(CommandNoteBinding binding) { super(binding); } @Override - public void bind(Element iq) { + public void bind(Item iq) { binding.errorIcon.setVisibility(View.VISIBLE); - Element error = iq.findChild("error"); + Element error = iq.el.findChild("error"); if (error == null) return; String text = error.findChildContent("text", "urn:ietf:params:xml:ns:xmpp-stanzas"); if (text == null || text.equals("")) { @@ -1426,10 +1426,10 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public NoteViewHolder(CommandNoteBinding binding) { super(binding); } @Override - public void bind(Element note) { - binding.message.setText(note.getContent()); + public void bind(Item note) { + binding.message.setText(note.el.getContent()); - String type = note.getAttribute("type"); + String type = note.el.getAttribute("type"); if (type != null && type.equals("error")) { binding.errorIcon.setVisibility(View.VISIBLE); } @@ -1440,9 +1440,9 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public ResultFieldViewHolder(CommandResultFieldBinding binding) { super(binding); } @Override - public void bind(Element field) { - String label = field.getAttribute("label"); - if (label == null) label = field.getAttribute("var"); + public void bind(Item field) { + String label = field.el.getAttribute("label"); + if (label == null) label = field.el.getAttribute("var"); if (label == null) { binding.label.setVisibility(View.GONE); } else { @@ -1450,7 +1450,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl binding.label.setText(label); } - String desc = field.findChildContent("desc", "jabber:x:data"); + String desc = field.el.findChildContent("desc", "jabber:x:data"); if (desc == null) { binding.desc.setVisibility(View.GONE); } else { @@ -1459,7 +1459,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl } ArrayAdapter values = new ArrayAdapter(binding.getRoot().getContext(), R.layout.simple_list_item); - for (Element el : field.getChildren()) { + for (Element el : field.el.getChildren()) { if (el.getName().equals("value") && el.getNamespace().equals("jabber:x:data")) { values.add(el.getContent()); } @@ -1480,15 +1480,15 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public ResultCellViewHolder(CommandResultCellBinding binding) { super(binding); } @Override - public void bind(Element field) { - Column col = (Column) field; + public void bind(Item field) { + Cell cell = (Cell) field; - if (col.item == null) { + if (cell.el == null) { binding.text.setTextAppearance(binding.getRoot().getContext(), R.style.TextAppearance_Conversations_Subhead); - binding.text.setText(col.reported.getAttribute("label")); + binding.text.setText(cell.reported.getAttribute("label")); } else { binding.text.setTextAppearance(binding.getRoot().getContext(), R.style.TextAppearance_Conversations_Body1); - binding.text.setText(col.item.findChildContent("value", "jabber:x:data")); + binding.text.setText(cell.el.findChildContent("value", "jabber:x:data")); } } } @@ -1504,13 +1504,13 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl protected Element mValue = null; @Override - public void bind(Element field) { - String label = field.getAttribute("label"); - if (label == null) label = field.getAttribute("var"); + public void bind(Item field) { + String label = field.el.getAttribute("label"); + if (label == null) label = field.el.getAttribute("var"); if (label == null) label = ""; binding.label.setText(label); - String desc = field.findChildContent("desc", "jabber:x:data"); + String desc = field.el.findChildContent("desc", "jabber:x:data"); if (desc == null) { binding.desc.setVisibility(View.GONE); } else { @@ -1518,9 +1518,9 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl binding.desc.setText(desc); } - mValue = field.findChild("value", "jabber:x:data"); + mValue = field.el.findChild("value", "jabber:x:data"); if (mValue == null) { - mValue = field.addChild("value", "jabber:x:data"); + mValue = field.el.addChild("value", "jabber:x:data"); } binding.checkbox.setChecked(mValue.getContent() != null && (mValue.getContent().equals("true") || mValue.getContent().equals("1"))); @@ -1553,9 +1553,9 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl protected ArrayAdapter