Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3393)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java

Issue 2617493003: [Android] Fix overzealous autocomplete removal in the omnibox. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
index d97f1c4adc7ea07ef1a32fbc72fa3d2af2ddf8f3..0479f00f161e7a2872705710a3e01c1f080d7099 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
@@ -32,6 +32,7 @@ import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputConnectionWrapper;
import org.chromium.base.ApiCompatibilityUtils;
+import org.chromium.base.Log;
import org.chromium.base.SysUtils;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R;
@@ -52,7 +53,9 @@ import java.net.URL;
* The URL text entry view for the Omnibox.
*/
public class UrlBar extends VerticallyFixedEditText {
- private static final String TAG = "UrlBar";
+ private static final String TAG = "cr_UrlBar";
+
+ private static final boolean DEBUG = false;
// TextView becomes very slow on long strings, so we limit maximum length
// of what is displayed to the user, see limitDisplayableLength().
@@ -349,6 +352,7 @@ public class UrlBar extends VerticallyFixedEditText {
@Override
public void onBeginBatchEdit() {
+ if (DEBUG) Log.i(TAG, "onBeginBatchEdit");
mBeforeBatchEditAutocompleteIndex = getText().getSpanStart(mAutocompleteSpan);
mBeforeBatchEditFullText = getText().toString();
@@ -359,6 +363,7 @@ public class UrlBar extends VerticallyFixedEditText {
@Override
public void onEndBatchEdit() {
+ if (DEBUG) Log.i(TAG, "onEndBatchEdit");
super.onEndBatchEdit();
mInBatchEditMode = false;
limitDisplayableLength();
@@ -391,6 +396,7 @@ public class UrlBar extends VerticallyFixedEditText {
@Override
protected void onSelectionChanged(int selStart, int selEnd) {
+ if (DEBUG) Log.i(TAG, "onSelectionChanged -- selStart: %d, selEnd: %d", selStart, selEnd);
if (!mInBatchEditMode) {
int beforeTextLength = getText().length();
if (validateSelection(selStart, selEnd)) {
@@ -414,7 +420,15 @@ public class UrlBar extends VerticallyFixedEditText {
private boolean validateSelection(int selStart, int selEnd) {
int spanStart = getText().getSpanStart(mAutocompleteSpan);
int spanEnd = getText().getSpanEnd(mAutocompleteSpan);
+
+ if (DEBUG) {
+ Log.i(TAG, "validateSelection -- selStart: %d, selEnd: %d, spanStart: %d, spanEnd: %d",
+ selStart, selEnd, spanStart, spanEnd);
+ }
+
if (spanStart >= 0 && (spanStart != selStart || spanEnd != selEnd)) {
+ CharSequence previousAutocompleteText = mAutocompleteSpan.mAutocompleteText;
+
// On selection changes, the autocomplete text has been accepted by the user or needs
// to be deleted below.
mAutocompleteSpan.clearSpan();
@@ -426,7 +440,10 @@ public class UrlBar extends VerticallyFixedEditText {
// character appears, Chrome may decide to append some autocomplete, but the keyboard
// will then remove this temporary character only while leaving the autocomplete text
// alone. See crbug/273763 for more details.
- if (selEnd <= spanStart) getText().delete(spanStart, getText().length());
+ if (selEnd <= spanStart && TextUtils.equals(previousAutocompleteText,
+ getText().subSequence(spanStart, getText().length()))) {
+ getText().delete(spanStart, getText().length());
+ }
return true;
}
return false;
@@ -758,6 +775,10 @@ public class UrlBar extends VerticallyFixedEditText {
* @param inlineAutocompleteText The suggested autocompletion for the user's text.
*/
public void setAutocompleteText(CharSequence userText, CharSequence inlineAutocompleteText) {
+ if (DEBUG) {
+ Log.i(TAG, "setAutocompleteText -- userText: %s, inlineAutocompleteText: %s",
+ userText, inlineAutocompleteText);
+ }
boolean emptyAutocomplete = TextUtils.isEmpty(inlineAutocompleteText);
if (!emptyAutocomplete) mDisableTextScrollingFromAutocomplete = true;
@@ -842,6 +863,11 @@ public class UrlBar extends VerticallyFixedEditText {
@Override
protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) {
+ if (DEBUG) {
+ Log.i(TAG, "onTextChanged -- text: %s, start: %d, lengthBefore: %d, lengthAfter: %d",
+ text, start, lengthBefore, lengthAfter);
+ }
+
super.onTextChanged(text, start, lengthBefore, lengthAfter);
if (!mInBatchEditMode) {
limitDisplayableLength();
@@ -854,6 +880,8 @@ public class UrlBar extends VerticallyFixedEditText {
@Override
public void setText(CharSequence text, BufferType type) {
+ if (DEBUG) Log.i(TAG, "setText -- text: %s", text);
+
mDisableTextScrollingFromAutocomplete = false;
// Avoid setting the same text to the URL bar as it will mess up the scroll/cursor
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698