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

Unified Diff: ui/android/java/src/org/chromium/ui/base/WindowAndroid.java

Issue 1112643004: Hide the autofill keyboard accessory when the keyboard hides. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
« no previous file with comments | « ui/android/java/src/org/chromium/ui/autofill/AutofillKeyboardAccessory.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
diff --git a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
index 86cb72dffbcdbea0a1779f4525d9fc4d3fa3e500..050e09bd2448531fe81611a2852ff026b4890094 100644
--- a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
+++ b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
@@ -26,6 +26,7 @@ import org.chromium.ui.VSyncMonitor;
import java.lang.ref.WeakReference;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.LinkedList;
/**
* The window base class that has the minimum functionality.
@@ -58,6 +59,15 @@ public class WindowAndroid {
private ViewGroup mKeyboardAccessoryView;
+ /**
+ * An interface to notify listeners of changes in the soft keyboard's visibility.
+ */
+ public interface KeyboardVisibilityListener {
+ public void keyboardVisibilityChanged(boolean isShowing);
+ }
+ private LinkedList<KeyboardVisibilityListener> mKeyboardVisibilityListeners =
+ new LinkedList<KeyboardVisibilityListener>();
+
private final VSyncMonitor.Listener mVSyncListener = new VSyncMonitor.Listener() {
@Override
public void onVSync(VSyncMonitor monitor, long vsyncTimeMicros) {
@@ -327,6 +337,34 @@ public class WindowAndroid {
}
/**
+ * Adds a listener that is updated of keyboard visibility changes. This works as a best guess.
+ * {@see UiUtils.isKeyboardShowing}
+ */
+ public void addKeyboardVisibilityListener(KeyboardVisibilityListener listener) {
+ mKeyboardVisibilityListeners.add(listener);
+ }
+
+ /**
+ * {@see addKeyboardVisibilityListener()}.
+ */
+ public void removeKeyboardVisibilityListener(KeyboardVisibilityListener listener) {
+ mKeyboardVisibilityListeners.remove(listener);
+ }
+
+ /**
+ * To be called when the keyboard visibility state has changed. Informs listeners of the state
+ * change.
+ */
+ public void keyboardVisibilityChanged(boolean isShowing) {
+ // Clone the list in case a listener tries to remove itself during the callback.
+ LinkedList<KeyboardVisibilityListener> listeners =
+ new LinkedList<KeyboardVisibilityListener>(mKeyboardVisibilityListeners);
+ for (KeyboardVisibilityListener listener : listeners) {
+ listener.keyboardVisibilityChanged(isShowing);
+ }
+ }
+
+ /**
* Start a post-layout animation on top of web content.
*
* By default, Android optimizes what it shows on top of SurfaceViews (saves power).
« no previous file with comments | « ui/android/java/src/org/chromium/ui/autofill/AutofillKeyboardAccessory.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698