package im.actor.sdk.util; import android.content.Context; import android.os.ResultReceiver; import android.view.View; import android.view.inputmethod.InputMethodManager; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class KeyboardHelper { private Context context; public KeyboardHelper(Context context) { this.context = context; } private Runnable mShowImeRunnable = new Runnable() { public void run() { InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null) { //imm.showSoftInput(AutoFocusEditText.this, InputMethodManager.SHOW_FORCED); // imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0); Method showSoftInputUnchecked = null; try { showSoftInputUnchecked = imm.getClass() .getMethod("showSoftInputUnchecked", int.class, ResultReceiver.class); } catch (NoSuchMethodException e) { // Log something } if (showSoftInputUnchecked != null) { try { showSoftInputUnchecked.invoke(imm, 0, null); } catch (IllegalAccessException e) { // Log something } catch (InvocationTargetException e) { // Log something } } } } }; public void setImeVisibility(View view, final boolean visible) { if (visible) { //postDelayed(mShowImeRunnable, 100); view.post(mShowImeRunnable); view.postDelayed(mShowImeRunnable, 100); } else { view.removeCallbacks(mShowImeRunnable); InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null) { imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } } } }