diff --git a/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java b/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java index 4f234f5082eb477b9ac4f85c4836dbc098030bca..41b5287cb611917dfeaa4d59499edbf116092142 100644 --- a/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java +++ b/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java @@ -35,6 +35,8 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Timer; +import java.util.TimerTask; import cz.nic.tablexia.Tablexia; import cz.nic.tablexia.TablexiaApplication; @@ -104,6 +106,8 @@ public class FormScreen extends AbstractTablexiaScreen<Void> { private static final int COMMON_INT_CODE_FOR_ENTER = 13; private static final int ANDROID_INT_CODE_FOR_ENTER = 10; + private static final int TEXT_FIELD_HINT_DELAY = 5000; + public static final String GFX_PATH = "gfx/"; public static final String AVATAR_PATH = GFX_PATH + "avatar/"; public static final String HINT_FINGER_SOUND = "mfx/profil_podpis_prst.mp3"; @@ -118,6 +122,8 @@ public class FormScreen extends AbstractTablexiaScreen<Void> { protected Map<FormValidationEnum, Boolean> validations; protected Set<String> alreadyPlayedHints; private Group mugshots; + private Timer timer; + private boolean timerSet; protected TextField nameField; @@ -197,12 +203,27 @@ public class FormScreen extends AbstractTablexiaScreen<Void> { nameField.setFocusTraversal(false); nameField.setMaxLength(MAX_NAME_LENGTH); + timerSet = false; + nameField.addListener(new InputListener() { @Override public boolean keyTyped(InputEvent event, char character) { - // have to check also (int)character because of some bug in iOS keyboard. It returns code Input.Keys.ENTER for every key after "done" button pressed + + if(timerSet) timer.cancel(); + + // have to check also (int)character because of some bug in iOS keyboard. It returns code Input.Keys.ENTER for every key after "done" button pressed if ((event.getKeyCode() == Input.Keys.ENTER && ((int)character == ANDROID_INT_CODE_FOR_ENTER || (int)character == COMMON_INT_CODE_FOR_ENTER)) || event.getKeyCode() == Input.Keys.TAB) { validate(); + } else { + timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + validate(); + timerSet = false; + } + }, TEXT_FIELD_HINT_DELAY); + timerSet = true; } return false; }