summaryrefslogtreecommitdiffstats
path: root/ui/android
diff options
context:
space:
mode:
authormiguelg@chromium.org <miguelg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-06 21:00:51 +0000
committermiguelg@chromium.org <miguelg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-06 21:00:51 +0000
commite0bc438974b30f4ccc077f0dbfb8215a07591fc2 (patch)
tree61ac85ea84a9fa261cc42e105458b1252ada07c2 /ui/android
parent9c5df567068ded0cfaf09646ab1a485b95f7f912 (diff)
downloadchromium_src-e0bc438974b30f4ccc077f0dbfb8215a07591fc2.zip
chromium_src-e0bc438974b30f4ccc077f0dbfb8215a07591fc2.tar.gz
chromium_src-e0bc438974b30f4ccc077f0dbfb8215a07591fc2.tar.bz2
Upstream isKeyboardShowing
BUG=268339 Review URL: https://chromiumcodereview.appspot.com/22200002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215972 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/android')
-rw-r--r--ui/android/java/src/org/chromium/ui/UiUtils.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/ui/android/java/src/org/chromium/ui/UiUtils.java b/ui/android/java/src/org/chromium/ui/UiUtils.java
index 21e304e..4a9fe15 100644
--- a/ui/android/java/src/org/chromium/ui/UiUtils.java
+++ b/ui/android/java/src/org/chromium/ui/UiUtils.java
@@ -5,6 +5,7 @@
package org.chromium.ui;
import android.content.Context;
+import android.graphics.Rect;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
@@ -20,6 +21,9 @@ public class UiUtils {
private UiUtils() {
}
+ /** The minimum size of the bottom margin below the app to detect a keyboard. */
+ private static float KEYBOARD_DETECT_BOTTOM_THRESHOLD_DP = 100;
+
/**
* Shows the software keyboard if necessary.
* @param view The currently focused {@link View}, which would receive soft keyboard input.
@@ -44,6 +48,17 @@ public class UiUtils {
return imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
+ public static boolean isKeyboardShowing(Context context, View view) {
+ View rootView = view.getRootView();
+ if (rootView == null) return false;
+ Rect appRect = new Rect();
+ rootView.getWindowVisibleDisplayFrame(appRect);
+ final float screenHeight = context.getResources().getDisplayMetrics().heightPixels;
+ final float bottomMargin = Math.abs(appRect.bottom - screenHeight);
+ final float density = context.getResources().getDisplayMetrics().density;
+ return bottomMargin > KEYBOARD_DETECT_BOTTOM_THRESHOLD_DP * density;
+ }
+
/**
* Inserts a {@link View} into a {@link ViewGroup} after directly before a given {@View}.
* @param container The {@link View} to add newView to.