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

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

Issue 2821793002: Defocus omnibox on back if keyboard hides. (Closed)
Patch Set: Add comments Created 3 years, 8 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
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>

Powered by Google App Engine
This is Rietveld 408576698