| 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 9dc8a9860b4073bb498982825d4de174ba3cdef4..ad12e21d13c770772f88b39b1a03ee6809873240 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
|
| @@ -23,6 +23,7 @@ import android.text.style.ReplacementSpan;
|
| import android.util.AttributeSet;
|
| import android.util.Pair;
|
| import android.view.GestureDetector;
|
| +import android.view.KeyEvent;
|
| import android.view.MotionEvent;
|
| import android.view.View;
|
| import android.view.accessibility.AccessibilityEvent;
|
| @@ -39,6 +40,7 @@ import org.chromium.base.Log;
|
| import org.chromium.base.SysUtils;
|
| import org.chromium.base.VisibleForTesting;
|
| import org.chromium.chrome.R;
|
| +import org.chromium.chrome.browser.WindowDelegate;
|
| import org.chromium.chrome.browser.metrics.StartupMetrics;
|
| import org.chromium.chrome.browser.omnibox.LocationBarLayout.OmniboxLivenessListener;
|
| import org.chromium.chrome.browser.tab.Tab;
|
| @@ -90,6 +92,9 @@ public class UrlBar extends VerticallyFixedEditText {
|
| * because the URL bar has custom touch event handling. See: {@link #onTouchEvent}.
|
| */
|
| private final GestureDetector mGestureDetector;
|
| +
|
| + private final KeyboardHideHelper mKeyboardHideHelper;
|
| +
|
| private boolean mFocused;
|
| private boolean mAllowFocus = true;
|
|
|
| @@ -171,6 +176,11 @@ public class UrlBar extends VerticallyFixedEditText {
|
| * @return Whether the light security theme should be used.
|
| */
|
| boolean shouldEmphasizeHttpsScheme();
|
| +
|
| + /**
|
| + * Called to notify that back key has been pressed while the URL bar has focus.
|
| + */
|
| + void backKeyPressed();
|
| }
|
|
|
| public UrlBar(Context context, AttributeSet attrs) {
|
| @@ -219,12 +229,25 @@ public class UrlBar extends VerticallyFixedEditText {
|
| }
|
| });
|
| mGestureDetector.setOnDoubleTapListener(null);
|
| + mKeyboardHideHelper = new KeyboardHideHelper(this, new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + if (mUrlBarDelegate != null) mUrlBarDelegate.backKeyPressed();
|
| + }
|
| + });
|
|
|
| mAccessibilityManager =
|
| (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
|
| }
|
|
|
| /**
|
| + * Initialize the delegate that allows interaction with the Window.
|
| + */
|
| + public void setWindowDelegate(WindowDelegate windowDelegate) {
|
| + mKeyboardHideHelper.setWindowDelegate(windowDelegate);
|
| + }
|
| +
|
| + /**
|
| * Specifies whether the URL bar should use dark text colors or light colors.
|
| * @param useDarkColors Whether the text colors should be dark (i.e. appropriate for use
|
| * on a light background).
|
| @@ -268,6 +291,14 @@ public class UrlBar extends VerticallyFixedEditText {
|
| }
|
| }
|
|
|
| + @Override
|
| + public boolean onKeyPreIme(int keyCode, KeyEvent event) {
|
| + if (KeyEvent.KEYCODE_BACK == keyCode && event.getAction() == KeyEvent.ACTION_UP) {
|
| + mKeyboardHideHelper.monitorForKeyboardHidden();
|
| + }
|
| + return super.onKeyPreIme(keyCode, event);
|
| + }
|
| +
|
| /**
|
| * Sets whether text changes should trigger autocomplete.
|
| * <p>
|
|
|