Allow experimental suffix/prefix-label extensions

Stephen Paul Weber created

Change summary

src/cheogram/res/layout/command_text_field.xml                  |  1 
src/main/java/eu/siacs/conversations/entities/Conversation.java | 12 +++
src/main/res/values/dimens.xml                                  |  1 
3 files changed, 14 insertions(+)

Detailed changes

src/cheogram/res/layout/command_text_field.xml 🔗

@@ -9,6 +9,7 @@
             android:paddingLeft="8dp"
             android:paddingRight="8dp"
             android:paddingBottom="16dp"
+            app:suffixTextAppearance="@style/Widget.Conversations.EditText"
             app:errorTextAppearance="@style/TextAppearance.Conversations.Design.Error"
             app:hintTextAppearance="@style/TextAppearance.Conversations.Design.Hint"
             app:helperTextTextAppearance="@style/TextAppearance.Conversations.Status"

src/main/java/eu/siacs/conversations/entities/Conversation.java 🔗

@@ -2059,6 +2059,18 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
                     binding.textinputLayout.setErrorEnabled(field.error != null);
                     if (field.error != null) binding.textinputLayout.setError(field.error);
 
+                    binding.textinput.setTextAlignment(View.TEXT_ALIGNMENT_GRAVITY);
+                    String suffixLabel = field.el.findChildContent("x", "https://ns.cheogram.com/suffix-label");
+                    if (suffixLabel != null) {
+                        binding.textinputLayout.setSuffixText(suffixLabel);
+                        binding.textinput.setTextAlignment(View.TEXT_ALIGNMENT_TEXT_END);
+                    }
+
+                    String prefixLabel = field.el.findChildContent("x", "https://ns.cheogram.com/prefix-label");
+                    if (prefixLabel != null) {
+                        binding.textinputLayout.setPrefixText(prefixLabel);
+                    }
+
                     mValue = field.getValue();
                     binding.textinput.setText(mValue.getContent());
                     setupInputType(field.el, binding.textinput, binding.textinputLayout);

src/main/res/values/dimens.xml 🔗

@@ -51,4 +51,5 @@
     <dimen name="activity_margin">16dp</dimen>
     <dimen name="small_margin">4dp</dimen>
     <dimen name="actionbar_text_size">20sp</dimen>
+    <dimen name="material_input_text_to_prefix_suffix_padding">0dp</dimen>
 </resources>