diff options
Diffstat (limited to 'srcs/juloo.keyboard2/Keyboard2View.java')
| -rw-r--r-- | srcs/juloo.keyboard2/Keyboard2View.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java index 1b08cf3..9234366 100644 --- a/srcs/juloo.keyboard2/Keyboard2View.java +++ b/srcs/juloo.keyboard2/Keyboard2View.java @@ -1,15 +1,19 @@ package juloo.keyboard2; import android.content.Context; +import android.content.ContextWrapper; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; +import android.inputmethodservice.InputMethodService; +import android.os.Build.VERSION; import android.os.Vibrator; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; +import android.view.Window; public class Keyboard2View extends View implements View.OnTouchListener, Pointers.IPointerEventHandler @@ -49,10 +53,35 @@ public class Keyboard2View extends View _theme = new Theme(getContext(), attrs); _config = Config.globalConfig(); _pointers = new Pointers(this, _config); + refresh_navigation_bar(context); setOnTouchListener(this); reset(); } + private Window getParentWindow(Context context) + { + if (context instanceof InputMethodService) + return ((InputMethodService)context).getWindow().getWindow(); + if (context instanceof ContextWrapper) + return getParentWindow(((ContextWrapper)context).getBaseContext()); + return null; + } + + public void refresh_navigation_bar(Context context) + { + if (VERSION.SDK_INT < 21) + return; + // The intermediate Window is a [Dialog]. + Window w = getParentWindow(context); + int uiFlags = getSystemUiVisibility(); + if (_theme.isLightNavBar) + uiFlags |= View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR; + else + uiFlags &= ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR; + w.setNavigationBarColor(_theme.colorNavBar); + setSystemUiVisibility(uiFlags); + } + public void setKeyboard(KeyboardData kw) { _keyboard = _config.modify_layout(kw); |
