From 7df4a7593211d7683bb28e38ef6130119c7a5775 Mon Sep 17 00:00:00 2001 From: LionZXY Date: Wed, 19 Jul 2017 13:11:14 +0300 Subject: [PATCH] Revert Android Studio refactor --- KeyboardUtils.java | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/KeyboardUtils.java b/KeyboardUtils.java index ebf7d7d..33b94aa 100644 --- a/KeyboardUtils.java +++ b/KeyboardUtils.java @@ -13,7 +13,8 @@ * Based on the following Stackoverflow answer: * http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android */ -public class KeyboardUtils implements ViewTreeObserver.OnGlobalLayoutListener { +public class KeyboardUtils implements ViewTreeObserver.OnGlobalLayoutListener +{ private final static int MAGIC_NUMBER = 200; private SoftKeyboardToggleListener mCallback; @@ -22,18 +23,20 @@ public class KeyboardUtils implements ViewTreeObserver.OnGlobalLayoutListener { private float mScreenDensity = 1; private static HashMap sListenerMap = new HashMap<>(); - public interface SoftKeyboardToggleListener { + public interface SoftKeyboardToggleListener + { void onToggleSoftKeyboard(boolean isVisible); } @Override - public void onGlobalLayout() { + public void onGlobalLayout() + { Rect r = new Rect(); mRootView.getWindowVisibleDisplayFrame(r); int heightDiff = mRootView.getRootView().getHeight() - (r.bottom - r.top); - float dp = heightDiff / mScreenDensity; + float dp = heightDiff/ mScreenDensity; boolean isVisible = dp > MAGIC_NUMBER; if (mCallback != null && (prevValue == null || isVisible != prevValue)) { @@ -43,14 +46,17 @@ public void onGlobalLayout() { } - public static void addKeyboardToggleListener(Activity act, SoftKeyboardToggleListener listener) { + public static void addKeyboardToggleListener(Activity act, SoftKeyboardToggleListener listener) + { removeKeyboardToggleListener(listener); sListenerMap.put(listener, new KeyboardUtils(act, listener)); } - public static void removeKeyboardToggleListener(SoftKeyboardToggleListener listener) { - if (sListenerMap.containsKey(listener)) { + public static void removeKeyboardToggleListener(SoftKeyboardToggleListener listener) + { + if(sListenerMap.containsKey(listener)) + { KeyboardUtils k = sListenerMap.get(listener); k.removeListener(); @@ -58,37 +64,39 @@ public static void removeKeyboardToggleListener(SoftKeyboardToggleListener liste } } - public static void removeAllKeyboardToggleListeners() { - for (SoftKeyboardToggleListener l : sListenerMap.keySet()) + public static void removeAllKeyboardToggleListeners() + { + for(SoftKeyboardToggleListener l : sListenerMap.keySet()) sListenerMap.get(l).removeListener(); sListenerMap.clear(); } - public static void toggleKeyboardVisibility(Context context) { + public static void toggleKeyboardVisibility(Context context) + { InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); } /** * Closes the keyboard - * * @param activeView the view with the keyboard focus */ - public static void forceCloseKeyboard(View activeView) { + public static void forceCloseKeyboard(View activeView) + { InputMethodManager inputMethodManager = (InputMethodManager) activeView.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow(activeView.getWindowToken(), 0); } - private void removeListener() { + private void removeListener() + { mCallback = null; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { - mRootView.getViewTreeObserver().removeOnGlobalLayoutListener(this); - } + mRootView.getViewTreeObserver().removeOnGlobalLayoutListener(this); } - private KeyboardUtils(Activity act, SoftKeyboardToggleListener listener) { + private KeyboardUtils(Activity act, SoftKeyboardToggleListener listener) + { mCallback = listener; mRootView = ((ViewGroup) act.findViewById(android.R.id.content)).getChildAt(0);