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 c14de9eaff86c85679a5b602adc1d03ce46f7254..84a34990d35a0c5df5375c3de7a071557f31fdac 100644 |
--- a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java |
+++ b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java |
@@ -405,11 +405,20 @@ public class WindowAndroid { |
return mKeyboardAccessoryView; |
} |
+ protected void registerKeyboardVisibilityCallbacks() { |
jdduke (slow)
2015/05/14 21:51:54
Should we be failing here, or just asserting false
boliu
2015/05/14 23:05:29
I don't want to add random asserts that I don't ac
jdduke (slow)
2015/05/14 23:09:36
How is it random? In what world should we be regis
boliu
2015/05/14 23:12:47
Random as in it's not part of this fix (and I don'
|
+ } |
+ |
+ protected void unregisterKeyboardVisibilityCallbacks() { |
+ } |
+ |
/** |
* Adds a listener that is updated of keyboard visibility changes. This works as a best guess. |
* {@see UiUtils.isKeyboardShowing} |
*/ |
public void addKeyboardVisibilityListener(KeyboardVisibilityListener listener) { |
+ if (mKeyboardVisibilityListeners.isEmpty()) { |
+ registerKeyboardVisibilityCallbacks(); |
+ } |
mKeyboardVisibilityListeners.add(listener); |
} |
@@ -418,6 +427,9 @@ public class WindowAndroid { |
*/ |
public void removeKeyboardVisibilityListener(KeyboardVisibilityListener listener) { |
mKeyboardVisibilityListeners.remove(listener); |
+ if (mKeyboardVisibilityListeners.isEmpty()) { |
+ unregisterKeyboardVisibilityCallbacks(); |
+ } |
} |
/** |