1 // Copyright 2015-present 650 Industries. All rights reserved.
2 
3 package versioned.host.exp.exponent.modules.api;
4 
5 import android.app.Activity;
6 import android.view.View;
7 import android.view.inputmethod.InputMethodManager;
8 
9 import com.facebook.react.bridge.Promise;
10 import com.facebook.react.bridge.ReactApplicationContext;
11 import com.facebook.react.bridge.ReactContextBaseJavaModule;
12 import com.facebook.react.bridge.ReactMethod;
13 
14 public class KeyboardModule extends ReactContextBaseJavaModule {
KeyboardModule(ReactApplicationContext context)15   public KeyboardModule(ReactApplicationContext context) {
16     super(context);
17   }
18 
19   @Override
getName()20   public String getName() {
21     return "ExponentKeyboard";
22   }
23 
24   @ReactMethod
hideAsync(final Promise promise)25   public void hideAsync(final Promise promise) {
26     Boolean success = false;
27     Activity activity = getCurrentActivity();
28     if (activity != null) {
29       InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
30       View view = activity.getCurrentFocus();
31       if (view != null) {
32         imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
33         success = true;
34       }
35     }
36     promise.resolve(success);
37   }
38 }
39