From 0a582c33cad39e8c786e07a0476d358f283e11f8 Mon Sep 17 00:00:00 2001 From: riksof-anas Date: Tue, 26 Nov 2019 14:31:34 +0500 Subject: [PATCH] keyboard resize fix for android with status bar overlay --- src/android/CDVIonicKeyboard.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/android/CDVIonicKeyboard.java b/src/android/CDVIonicKeyboard.java index b7ec455..455e036 100644 --- a/src/android/CDVIonicKeyboard.java +++ b/src/android/CDVIonicKeyboard.java @@ -10,11 +10,13 @@ import org.json.JSONException; import android.content.Context; +import android.graphics.Color; import android.graphics.Rect; import android.util.DisplayMetrics; import android.view.View; import android.view.ViewTreeObserver; import android.view.ViewTreeObserver.OnGlobalLayoutListener; +import android.view.Window; import android.view.inputmethod.InputMethodManager; // import additionally required classes for calculating screen height @@ -140,7 +142,14 @@ private void possiblyResizeChildOfContent() { private int computeUsableHeight() { Rect r = new Rect(); mChildOfContent.getWindowVisibleDisplayFrame(r); - return (r.bottom - r.top); + if ( checkStatusBarTransparent() ) return r.bottom; + return r.height(); + } + + private boolean checkStatusBarTransparent() { + final Window window = cordova.getActivity().getWindow(); + return ( window.getStatusBarColor() == Color.TRANSPARENT + || window.getDecorView().getSystemUiVisibility() == View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN ); } };