From 1fd136d2028d35093e4fd0e2f5440cfdcd433897 Mon Sep 17 00:00:00 2001 From: Aleksandr Borisenko Date: Tue, 15 Aug 2017 20:12:24 +0300 Subject: [PATCH 1/2] Feature: restore incompleted input on screen rotation --- .../com/tokenautocomplete/TokenCompleteTextView.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/tokenautocomplete/TokenCompleteTextView.java b/library/src/main/java/com/tokenautocomplete/TokenCompleteTextView.java index c9be38a8..18e236f6 100644 --- a/library/src/main/java/com/tokenautocomplete/TokenCompleteTextView.java +++ b/library/src/main/java/com/tokenautocomplete/TokenCompleteTextView.java @@ -1479,8 +1479,13 @@ public void onRestoreInstanceState(Parcelable state) { SavedState ss = (SavedState) state; super.onRestoreInstanceState(ss.getSuperState()); + char sentinel = splitChar[0]; + String superStateText = getText().toString(); + String uncompletedTag = + superStateText.substring(superStateText.lastIndexOf(sentinel) + 1).trim(); setText(ss.prefix); prefix = ss.prefix; + updateHint(); allowCollapse = ss.allowCollapse; allowDuplicates = ss.allowDuplicates; @@ -1498,7 +1503,11 @@ public void onRestoreInstanceState(Parcelable state) { } for (T obj: objects) { - addObject(obj); + if (uncompletedTag.equals(obj.toString())) { + setText(obj.toString()); + } else { + addObject(obj); + } } // Collapse the view if necessary From 5097fe176b7475d8506770f843d64bcd95b9902c Mon Sep 17 00:00:00 2001 From: Aleksandr Borisenko Date: Wed, 16 Aug 2017 10:23:15 +0300 Subject: [PATCH 2/2] Fixed token loss on some conditions --- .../tokenautocomplete/TokenCompleteTextView.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/library/src/main/java/com/tokenautocomplete/TokenCompleteTextView.java b/library/src/main/java/com/tokenautocomplete/TokenCompleteTextView.java index 18e236f6..a834276e 100644 --- a/library/src/main/java/com/tokenautocomplete/TokenCompleteTextView.java +++ b/library/src/main/java/com/tokenautocomplete/TokenCompleteTextView.java @@ -1480,12 +1480,11 @@ public void onRestoreInstanceState(Parcelable state) { super.onRestoreInstanceState(ss.getSuperState()); char sentinel = splitChar[0]; - String superStateText = getText().toString(); - String uncompletedTag = - superStateText.substring(superStateText.lastIndexOf(sentinel) + 1).trim(); + String text = getText().toString(); + String uncompletedToken = text.substring(text.lastIndexOf(sentinel) + 1).trim(); + setText(ss.prefix); prefix = ss.prefix; - updateHint(); allowCollapse = ss.allowCollapse; allowDuplicates = ss.allowDuplicates; @@ -1503,8 +1502,10 @@ public void onRestoreInstanceState(Parcelable state) { } for (T obj: objects) { - if (uncompletedTag.equals(obj.toString())) { - setText(obj.toString()); + CharSequence token = obj.toString(); + if (uncompletedToken.equals(token)) { + getText().append(token); + setSelection(token.length()); } else { addObject(obj); }