From aaa390355e5717c8c133a332ffa7be8f4d3c314b Mon Sep 17 00:00:00 2001 From: Jack Date: Tue, 21 Dec 2021 09:18:06 +0800 Subject: [PATCH] Fixed: android:digits not working in some input method. Using Regex filter instead. --- .../android/colorpicker/ColorPickerDialog.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/com/jaredrummler/android/colorpicker/ColorPickerDialog.java b/library/src/main/java/com/jaredrummler/android/colorpicker/ColorPickerDialog.java index 6eadb74..4899419 100644 --- a/library/src/main/java/com/jaredrummler/android/colorpicker/ColorPickerDialog.java +++ b/library/src/main/java/com/jaredrummler/android/colorpicker/ColorPickerDialog.java @@ -81,7 +81,7 @@ public class ColorPickerDialog extends DialogFragment implements OnTouchListener private static final String ARG_PRESETS_BUTTON_TEXT = "presetsButtonText"; private static final String ARG_CUSTOM_BUTTON_TEXT = "customButtonText"; private static final String ARG_SELECTED_BUTTON_TEXT = "selectedButtonText"; - + private static final String REGEX = "[^0-9^a-fA-F]"; public static final int TYPE_CUSTOM = 0; public static final int TYPE_PRESETS = 1; @@ -370,7 +370,12 @@ public void onFocusChange(View v, boolean hasFocus) { @Override public void afterTextChanged(Editable s) { if (hexEditText.isFocused()) { - int color = parseColorString(s.toString()); + String colorString = s.toString(); + if(colorString.matches(REGEX)){ + hexEditText.setText(colorString.replaceAll(REGEX, "")); + return; + } + int color = parseColorString(colorString); if (color != colorPicker.getColor()) { fromEditText = true; colorPicker.setColor(color, true);