diff options
author | miguelg@chromium.org <miguelg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-06 21:00:51 +0000 |
---|---|---|
committer | miguelg@chromium.org <miguelg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-06 21:00:51 +0000 |
commit | e0bc438974b30f4ccc077f0dbfb8215a07591fc2 (patch) | |
tree | 61ac85ea84a9fa261cc42e105458b1252ada07c2 /ui/android | |
parent | 9c5df567068ded0cfaf09646ab1a485b95f7f912 (diff) | |
download | chromium_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.java | 15 |
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. |