package org.commcare.utils; import android.text.InputFilter; import android.text.Spanned; /** * @author amstone326 * * An InputFilter that limits the characters a user can enter, * based on whether or not they represent a valid integer in Java. * Used by IntegerWidget.java. */ public class IntegerSizeFilter implements InputFilter { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { String destString = dest.toString(); if (source.equals("") || destString.equals("")) { return null; //If the source or destination strings are empty, can leave as is } String part1 = destString.substring(0, dstart); String part2 = destString.substring(dend); String newString = part1 + source.subSequence(start, end).toString() + part2; try { Integer x = Integer.parseInt(newString); return null; //keep original } catch (NumberFormatException e) { return ""; //don't allow edit that was just made } } }