From 8a2cf22ea66b570aced79a6761af3d98a815a940 Mon Sep 17 00:00:00 2001 From: igoralvess Date: Tue, 11 May 2021 11:29:01 -0300 Subject: [PATCH 1/2] fix: saving KeyListener with the status of when it was changed --- .../com/aiqfome/aiqcomponents/textinput/TextInput.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/aiqcomponents/src/main/java/com/aiqfome/aiqcomponents/textinput/TextInput.java b/aiqcomponents/src/main/java/com/aiqfome/aiqcomponents/textinput/TextInput.java index cc7d39f..01b9af0 100644 --- a/aiqcomponents/src/main/java/com/aiqfome/aiqcomponents/textinput/TextInput.java +++ b/aiqcomponents/src/main/java/com/aiqfome/aiqcomponents/textinput/TextInput.java @@ -45,8 +45,6 @@ public TextInput(Context context, @Nullable AttributeSet attrs) { inputLayout = findViewById(R.id.input); icon = findViewById(R.id.iv_selected_icon); - inputKeyListener = input.getKeyListener(); - setupAttrs(context, attrs); setOnClickListener(onClickListener()); @@ -162,10 +160,16 @@ private void setupAttrs(Context context, @Nullable AttributeSet attrs) { public void setEnabled(boolean enabled) { super.setEnabled(enabled); this.input.setEnabled(enabled); + saveInputKeyListener(); setEllipsized(!enabled); } + private void saveInputKeyListener() { + if(input.getKeyListener() != null) + inputKeyListener = input.getKeyListener(); + } + public void setSelectorEnabled(boolean enabled) { super.setEnabled(enabled); } From b1f262d0b40e1dd555e23dd8f8a8b741be5152d4 Mon Sep 17 00:00:00 2001 From: igoralvess Date: Wed, 12 May 2021 14:39:00 -0300 Subject: [PATCH 2/2] refactor: changing InputType of KeyListener whenever the InputType is changed --- .../aiqcomponents/textinput/TextInput.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/aiqcomponents/src/main/java/com/aiqfome/aiqcomponents/textinput/TextInput.java b/aiqcomponents/src/main/java/com/aiqfome/aiqcomponents/textinput/TextInput.java index 01b9af0..962aaa3 100644 --- a/aiqcomponents/src/main/java/com/aiqfome/aiqcomponents/textinput/TextInput.java +++ b/aiqcomponents/src/main/java/com/aiqfome/aiqcomponents/textinput/TextInput.java @@ -3,6 +3,7 @@ import android.content.Context; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; +import android.text.InputType; import android.text.TextUtils; import android.text.method.DigitsKeyListener; import android.text.method.KeyListener; @@ -33,6 +34,7 @@ public class TextInput extends ConstraintLayout { private TextInputLayout inputLayout; private ImageView icon; private KeyListener inputKeyListener; + private int inputType; public TextInput(Context context, @Nullable AttributeSet attrs) { super(context, attrs); @@ -44,6 +46,8 @@ public TextInput(Context context, @Nullable AttributeSet attrs) { input = findViewById(R.id.et_input); inputLayout = findViewById(R.id.input); icon = findViewById(R.id.iv_selected_icon); + inputKeyListener = input.getKeyListener(); + inputType = inputKeyListener.getInputType(); setupAttrs(context, attrs); setOnClickListener(onClickListener()); @@ -119,6 +123,7 @@ private void setupAttrs(Context context, @Nullable AttributeSet attrs) { .getInt(attr, EditorInfo.TYPE_TEXT_VARIATION_NORMAL); input.setInputType(inputType); + this.inputType = inputType; } else if (attr == R.styleable.TextInput_android_selectAllOnFocus) { boolean selectAllOnFocus = styledAttributes.getBoolean(attr, false); @@ -160,20 +165,20 @@ private void setupAttrs(Context context, @Nullable AttributeSet attrs) { public void setEnabled(boolean enabled) { super.setEnabled(enabled); this.input.setEnabled(enabled); - saveInputKeyListener(); setEllipsized(!enabled); } - private void saveInputKeyListener() { - if(input.getKeyListener() != null) - inputKeyListener = input.getKeyListener(); - } public void setSelectorEnabled(boolean enabled) { super.setEnabled(enabled); } + public void setInputType(int inputType) { + this.inputType = inputType; + input.setInputType(inputType); + } + private void setEllipsized(boolean enabled) { this.input.setCursorVisible(!enabled); if (enabled) { @@ -185,6 +190,7 @@ private void setEllipsized(boolean enabled) { this.input.setEllipsize(null); this.input.setKeyListener(inputKeyListener); + this.input.setInputType(inputType); } private OnClickListener onClickListener() {