Sha256: cd19dbfc8b6170cd513eff0147f4cf1ea803f2a3bdcdc2f0cd7dee7b228496b4
Contents?: true
Size: 1.73 KB
Versions: 2
Compression:
Stored size: 1.73 KB
Contents
package sh.calaba.instrumentationbackend.actions.text; import android.app.Activity; import android.content.Context; import android.view.View; import android.view.inputmethod.InputMethodManager; import java.lang.reflect.Field; import sh.calaba.instrumentationbackend.InstrumentationBackend; import sh.calaba.instrumentationbackend.Result; import sh.calaba.instrumentationbackend.actions.Action; public class HideSoftKeyboard implements Action { @Override public Result execute(String... args) { Context context = InstrumentationBackend.instrumentation.getTargetContext(); InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); Activity activity = InstrumentationBackend.solo.getCurrentActivity(); View view; view = tryGetServedView(); if (view == null) { view = activity.getCurrentFocus(); } if (view == null) { view = new View(activity); } inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); return Result.successResult(); } View tryGetServedView() { Context context = InstrumentationBackend.instrumentation.getTargetContext(); try { InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); Field servedViewField = InputMethodManager.class.getDeclaredField("mServedView"); servedViewField.setAccessible(true); return (View)servedViewField.get(inputMethodManager); } catch (Exception e) { return null; } } @Override public String key() { return "hide_soft_keyboard"; } }
Version data entries
2 entries across 2 versions & 1 rubygems