react-native-external-keyboard 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +113 -0
  3. package/android/Android.mk +45 -0
  4. package/android/build.gradle +139 -0
  5. package/android/gradle.properties +5 -0
  6. package/android/registration.cpp +18 -0
  7. package/android/src/main/AndroidManifest.xml +4 -0
  8. package/android/src/main/java/com/externalkeyboard/A11yKeyboardModule.java +46 -0
  9. package/android/src/main/java/com/externalkeyboard/ExternalKeyboardViewPackage.java +63 -0
  10. package/android/src/main/java/com/externalkeyboard/events/FocusChangeEvent.java +39 -0
  11. package/android/src/main/java/com/externalkeyboard/events/KeyPressDownEvent.java +49 -0
  12. package/android/src/main/java/com/externalkeyboard/events/KeyPressUpEvent.java +49 -0
  13. package/android/src/main/java/com/externalkeyboard/services/KeyboardKeyPressHandler.java +56 -0
  14. package/android/src/main/java/com/externalkeyboard/services/KeyboardService.java +52 -0
  15. package/android/src/main/java/com/externalkeyboard/views/ExternalKeyboardView/ExternalKeyboardView.java +28 -0
  16. package/android/src/main/java/com/externalkeyboard/views/ExternalKeyboardView/ExternalKeyboardViewManager.java +101 -0
  17. package/android/src/newarch/A11yKeyboardModuleSpec.java +9 -0
  18. package/android/src/newarch/ExternalKeyboardViewManagerSpec.java +31 -0
  19. package/android/src/oldarch/A11yKeyboardModuleSpec.java +15 -0
  20. package/android/src/oldarch/ExternalKeyboardViewManagerSpec.java +9 -0
  21. package/ios/ExternalKeyboard.xcodeproj/project.pbxproj +384 -0
  22. package/ios/ExternalKeyboard.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  23. package/ios/ExternalKeyboard.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  24. package/ios/ExternalKeyboard.xcodeproj/project.xcworkspace/xcuserdata/Artur_Kalach.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  25. package/ios/ExternalKeyboard.xcodeproj/xcuserdata/Artur_Kalach.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +24 -0
  26. package/ios/ExternalKeyboard.xcodeproj/xcuserdata/Artur_Kalach.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  27. package/ios/ExternalKeyboardView/ExternalKeyboardView.h +41 -0
  28. package/ios/ExternalKeyboardView/ExternalKeyboardView.mm +186 -0
  29. package/ios/Helpers/FocusWrapper/FocusWrapper.h +32 -0
  30. package/ios/Helpers/FocusWrapper/FocusWrapper.mm +63 -0
  31. package/ios/Helpers/KeyboardKeyPressHandler/KeyboardKeyPressHandler.h +27 -0
  32. package/ios/Helpers/KeyboardKeyPressHandler/KeyboardKeyPressHandler.mm +73 -0
  33. package/ios/Modules/A11yKeyboardModule/A11yKeyboardModule.h +20 -0
  34. package/ios/Modules/A11yKeyboardModule/A11yKeyboardModule.mm +86 -0
  35. package/ios/ViewManagers/ExternalKeyboardViewManager/ExternalKeyboardViewManager.h +16 -0
  36. package/ios/ViewManagers/ExternalKeyboardViewManager/ExternalKeyboardViewManager.mm +29 -0
  37. package/lib/commonjs/NativeModules/A11yKeyboardModule/A11yKeyboardModule.js +33 -0
  38. package/lib/commonjs/NativeModules/A11yKeyboardModule/A11yKeyboardModule.js.map +1 -0
  39. package/lib/commonjs/NativeModules/A11yKeyboardModule/index.js +13 -0
  40. package/lib/commonjs/NativeModules/A11yKeyboardModule/index.js.map +1 -0
  41. package/lib/commonjs/NativeModules/index.js +13 -0
  42. package/lib/commonjs/NativeModules/index.js.map +1 -0
  43. package/lib/commonjs/components/KeyboardFocusView/KeyboardFocusView.android.js +41 -0
  44. package/lib/commonjs/components/KeyboardFocusView/KeyboardFocusView.android.js.map +1 -0
  45. package/lib/commonjs/components/KeyboardFocusView/KeyboardFocusView.d.js +6 -0
  46. package/lib/commonjs/components/KeyboardFocusView/KeyboardFocusView.d.js.map +1 -0
  47. package/lib/commonjs/components/KeyboardFocusView/KeyboardFocusView.ios.js +46 -0
  48. package/lib/commonjs/components/KeyboardFocusView/KeyboardFocusView.ios.js.map +1 -0
  49. package/lib/commonjs/components/KeyboardFocusView/hooks/index.js +13 -0
  50. package/lib/commonjs/components/KeyboardFocusView/hooks/index.js.map +1 -0
  51. package/lib/commonjs/components/KeyboardFocusView/hooks/useFocusStyle/index.js +13 -0
  52. package/lib/commonjs/components/KeyboardFocusView/hooks/useFocusStyle/index.js.map +1 -0
  53. package/lib/commonjs/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.js +33 -0
  54. package/lib/commonjs/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.js.map +1 -0
  55. package/lib/commonjs/components/KeyboardFocusView/index.js +13 -0
  56. package/lib/commonjs/components/KeyboardFocusView/index.js.map +1 -0
  57. package/lib/commonjs/components/Pressable/Pressable.android.js +76 -0
  58. package/lib/commonjs/components/Pressable/Pressable.android.js.map +1 -0
  59. package/lib/commonjs/components/Pressable/Pressable.d.js +6 -0
  60. package/lib/commonjs/components/Pressable/Pressable.d.js.map +1 -0
  61. package/lib/commonjs/components/Pressable/Pressable.ios.js +157 -0
  62. package/lib/commonjs/components/Pressable/Pressable.ios.js.map +1 -0
  63. package/lib/commonjs/components/Pressable/index.js +13 -0
  64. package/lib/commonjs/components/Pressable/index.js.map +1 -0
  65. package/lib/commonjs/components/index.js +20 -0
  66. package/lib/commonjs/components/index.js.map +1 -0
  67. package/lib/commonjs/index.js +46 -0
  68. package/lib/commonjs/index.js.map +1 -0
  69. package/lib/commonjs/nativeSpec/ExternalKeyboardViewNativeComponent.js +11 -0
  70. package/lib/commonjs/nativeSpec/ExternalKeyboardViewNativeComponent.js.map +1 -0
  71. package/lib/commonjs/nativeSpec/NativeKeyboardModule.js +10 -0
  72. package/lib/commonjs/nativeSpec/NativeKeyboardModule.js.map +1 -0
  73. package/lib/commonjs/nativeSpec/index.js +21 -0
  74. package/lib/commonjs/nativeSpec/index.js.map +1 -0
  75. package/lib/commonjs/services/A11yModule/A11yModule.android.js +22 -0
  76. package/lib/commonjs/services/A11yModule/A11yModule.android.js.map +1 -0
  77. package/lib/commonjs/services/A11yModule/A11yModule.d.js +6 -0
  78. package/lib/commonjs/services/A11yModule/A11yModule.d.js.map +1 -0
  79. package/lib/commonjs/services/A11yModule/A11yModule.ios.js +28 -0
  80. package/lib/commonjs/services/A11yModule/A11yModule.ios.js.map +1 -0
  81. package/lib/commonjs/services/A11yModule/A11yModule.types.js +6 -0
  82. package/lib/commonjs/services/A11yModule/A11yModule.types.js.map +1 -0
  83. package/lib/commonjs/services/A11yModule/index.js +13 -0
  84. package/lib/commonjs/services/A11yModule/index.js.map +1 -0
  85. package/lib/commonjs/services/index.js +13 -0
  86. package/lib/commonjs/services/index.js.map +1 -0
  87. package/lib/commonjs/types/FocusStyle.js +6 -0
  88. package/lib/commonjs/types/FocusStyle.js.map +1 -0
  89. package/lib/commonjs/types/KeyboardFocusView.types.js +6 -0
  90. package/lib/commonjs/types/KeyboardFocusView.types.js.map +1 -0
  91. package/lib/commonjs/types/index.js +38 -0
  92. package/lib/commonjs/types/index.js.map +1 -0
  93. package/lib/module/NativeModules/A11yKeyboardModule/A11yKeyboardModule.js +26 -0
  94. package/lib/module/NativeModules/A11yKeyboardModule/A11yKeyboardModule.js.map +1 -0
  95. package/lib/module/NativeModules/A11yKeyboardModule/index.js +2 -0
  96. package/lib/module/NativeModules/A11yKeyboardModule/index.js.map +1 -0
  97. package/lib/module/NativeModules/index.js +2 -0
  98. package/lib/module/NativeModules/index.js.map +1 -0
  99. package/lib/module/components/KeyboardFocusView/KeyboardFocusView.android.js +33 -0
  100. package/lib/module/components/KeyboardFocusView/KeyboardFocusView.android.js.map +1 -0
  101. package/lib/module/components/KeyboardFocusView/KeyboardFocusView.d.js +2 -0
  102. package/lib/module/components/KeyboardFocusView/KeyboardFocusView.d.js.map +1 -0
  103. package/lib/module/components/KeyboardFocusView/KeyboardFocusView.ios.js +37 -0
  104. package/lib/module/components/KeyboardFocusView/KeyboardFocusView.ios.js.map +1 -0
  105. package/lib/module/components/KeyboardFocusView/hooks/index.js +2 -0
  106. package/lib/module/components/KeyboardFocusView/hooks/index.js.map +1 -0
  107. package/lib/module/components/KeyboardFocusView/hooks/useFocusStyle/index.js +2 -0
  108. package/lib/module/components/KeyboardFocusView/hooks/useFocusStyle/index.js.map +1 -0
  109. package/lib/module/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.js +26 -0
  110. package/lib/module/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.js.map +1 -0
  111. package/lib/module/components/KeyboardFocusView/index.js +2 -0
  112. package/lib/module/components/KeyboardFocusView/index.js.map +1 -0
  113. package/lib/module/components/Pressable/Pressable.android.js +70 -0
  114. package/lib/module/components/Pressable/Pressable.android.js.map +1 -0
  115. package/lib/module/components/Pressable/Pressable.d.js +2 -0
  116. package/lib/module/components/Pressable/Pressable.d.js.map +1 -0
  117. package/lib/module/components/Pressable/Pressable.ios.js +148 -0
  118. package/lib/module/components/Pressable/Pressable.ios.js.map +1 -0
  119. package/lib/module/components/Pressable/index.js +2 -0
  120. package/lib/module/components/Pressable/index.js.map +1 -0
  121. package/lib/module/components/index.js +3 -0
  122. package/lib/module/components/index.js.map +1 -0
  123. package/lib/module/index.js +5 -0
  124. package/lib/module/index.js.map +1 -0
  125. package/lib/module/nativeSpec/ExternalKeyboardViewNativeComponent.js +3 -0
  126. package/lib/module/nativeSpec/ExternalKeyboardViewNativeComponent.js.map +1 -0
  127. package/lib/module/nativeSpec/NativeKeyboardModule.js +3 -0
  128. package/lib/module/nativeSpec/NativeKeyboardModule.js.map +1 -0
  129. package/lib/module/nativeSpec/index.js +4 -0
  130. package/lib/module/nativeSpec/index.js.map +1 -0
  131. package/lib/module/services/A11yModule/A11yModule.android.js +15 -0
  132. package/lib/module/services/A11yModule/A11yModule.android.js.map +1 -0
  133. package/lib/module/services/A11yModule/A11yModule.d.js +2 -0
  134. package/lib/module/services/A11yModule/A11yModule.d.js.map +1 -0
  135. package/lib/module/services/A11yModule/A11yModule.ios.js +21 -0
  136. package/lib/module/services/A11yModule/A11yModule.ios.js.map +1 -0
  137. package/lib/module/services/A11yModule/A11yModule.types.js +2 -0
  138. package/lib/module/services/A11yModule/A11yModule.types.js.map +1 -0
  139. package/lib/module/services/A11yModule/index.js +2 -0
  140. package/lib/module/services/A11yModule/index.js.map +1 -0
  141. package/lib/module/services/index.js +2 -0
  142. package/lib/module/services/index.js.map +1 -0
  143. package/lib/module/types/FocusStyle.js +2 -0
  144. package/lib/module/types/FocusStyle.js.map +1 -0
  145. package/lib/module/types/KeyboardFocusView.types.js +2 -0
  146. package/lib/module/types/KeyboardFocusView.types.js.map +1 -0
  147. package/lib/module/types/index.js +3 -0
  148. package/lib/module/types/index.js.map +1 -0
  149. package/lib/typescript/NativeModules/A11yKeyboardModule/A11yKeyboardModule.d.ts +5 -0
  150. package/lib/typescript/NativeModules/A11yKeyboardModule/A11yKeyboardModule.d.ts.map +1 -0
  151. package/lib/typescript/NativeModules/A11yKeyboardModule/index.d.ts +2 -0
  152. package/lib/typescript/NativeModules/A11yKeyboardModule/index.d.ts.map +1 -0
  153. package/lib/typescript/NativeModules/index.d.ts +2 -0
  154. package/lib/typescript/NativeModules/index.d.ts.map +1 -0
  155. package/lib/typescript/components/KeyboardFocusView/KeyboardFocusView.android.d.ts +14 -0
  156. package/lib/typescript/components/KeyboardFocusView/KeyboardFocusView.android.d.ts.map +1 -0
  157. package/lib/typescript/components/KeyboardFocusView/KeyboardFocusView.ios.d.ts +14 -0
  158. package/lib/typescript/components/KeyboardFocusView/KeyboardFocusView.ios.d.ts.map +1 -0
  159. package/lib/typescript/components/KeyboardFocusView/hooks/index.d.ts +2 -0
  160. package/lib/typescript/components/KeyboardFocusView/hooks/index.d.ts.map +1 -0
  161. package/lib/typescript/components/KeyboardFocusView/hooks/useFocusStyle/index.d.ts +2 -0
  162. package/lib/typescript/components/KeyboardFocusView/hooks/useFocusStyle/index.d.ts.map +1 -0
  163. package/lib/typescript/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.d.ts +8 -0
  164. package/lib/typescript/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.d.ts.map +1 -0
  165. package/lib/typescript/components/KeyboardFocusView/index.d.ts +2 -0
  166. package/lib/typescript/components/KeyboardFocusView/index.d.ts.map +1 -0
  167. package/lib/typescript/components/Pressable/Pressable.android.d.ts +24 -0
  168. package/lib/typescript/components/Pressable/Pressable.android.d.ts.map +1 -0
  169. package/lib/typescript/components/Pressable/Pressable.ios.d.ts +88 -0
  170. package/lib/typescript/components/Pressable/Pressable.ios.d.ts.map +1 -0
  171. package/lib/typescript/components/Pressable/index.d.ts +2 -0
  172. package/lib/typescript/components/Pressable/index.d.ts.map +1 -0
  173. package/lib/typescript/components/index.d.ts +3 -0
  174. package/lib/typescript/components/index.d.ts.map +1 -0
  175. package/lib/typescript/index.d.ts +5 -0
  176. package/lib/typescript/index.d.ts.map +1 -0
  177. package/lib/typescript/nativeSpec/ExternalKeyboardViewNativeComponent.d.ts +30 -0
  178. package/lib/typescript/nativeSpec/ExternalKeyboardViewNativeComponent.d.ts.map +1 -0
  179. package/lib/typescript/nativeSpec/NativeKeyboardModule.d.ts +8 -0
  180. package/lib/typescript/nativeSpec/NativeKeyboardModule.d.ts.map +1 -0
  181. package/lib/typescript/nativeSpec/index.d.ts +5 -0
  182. package/lib/typescript/nativeSpec/index.d.ts.map +1 -0
  183. package/lib/typescript/services/A11yModule/A11yModule.android.d.ts +9 -0
  184. package/lib/typescript/services/A11yModule/A11yModule.android.d.ts.map +1 -0
  185. package/lib/typescript/services/A11yModule/A11yModule.ios.d.ts +10 -0
  186. package/lib/typescript/services/A11yModule/A11yModule.ios.d.ts.map +1 -0
  187. package/lib/typescript/services/A11yModule/A11yModule.types.d.ts +12 -0
  188. package/lib/typescript/services/A11yModule/A11yModule.types.d.ts.map +1 -0
  189. package/lib/typescript/services/A11yModule/index.d.ts +2 -0
  190. package/lib/typescript/services/A11yModule/index.d.ts.map +1 -0
  191. package/lib/typescript/services/index.d.ts +2 -0
  192. package/lib/typescript/services/index.d.ts.map +1 -0
  193. package/lib/typescript/types/FocusStyle.d.ts +6 -0
  194. package/lib/typescript/types/FocusStyle.d.ts.map +1 -0
  195. package/lib/typescript/types/KeyboardFocusView.types.d.ts +36 -0
  196. package/lib/typescript/types/KeyboardFocusView.types.d.ts.map +1 -0
  197. package/lib/typescript/types/index.d.ts +3 -0
  198. package/lib/typescript/types/index.d.ts.map +1 -0
  199. package/package.json +165 -0
  200. package/react-native-external-keyboard.podspec +36 -0
  201. package/src/NativeModules/A11yKeyboardModule/A11yKeyboardModule.ts +37 -0
  202. package/src/NativeModules/A11yKeyboardModule/index.ts +1 -0
  203. package/src/NativeModules/index.ts +1 -0
  204. package/src/components/KeyboardFocusView/KeyboardFocusView.android.tsx +41 -0
  205. package/src/components/KeyboardFocusView/KeyboardFocusView.d.ts +7 -0
  206. package/src/components/KeyboardFocusView/KeyboardFocusView.ios.tsx +51 -0
  207. package/src/components/KeyboardFocusView/hooks/index.ts +1 -0
  208. package/src/components/KeyboardFocusView/hooks/useFocusStyle/index.ts +1 -0
  209. package/src/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.ts +31 -0
  210. package/src/components/KeyboardFocusView/index.ts +1 -0
  211. package/src/components/Pressable/Pressable.android.tsx +95 -0
  212. package/src/components/Pressable/Pressable.d.ts +7 -0
  213. package/src/components/Pressable/Pressable.ios.tsx +282 -0
  214. package/src/components/Pressable/index.ts +1 -0
  215. package/src/components/index.ts +2 -0
  216. package/src/index.tsx +5 -0
  217. package/src/nativeSpec/ExternalKeyboardViewNativeComponent.ts +37 -0
  218. package/src/nativeSpec/NativeKeyboardModule.ts +9 -0
  219. package/src/nativeSpec/index.ts +6 -0
  220. package/src/services/A11yModule/A11yModule.android.ts +20 -0
  221. package/src/services/A11yModule/A11yModule.d.ts +3 -0
  222. package/src/services/A11yModule/A11yModule.ios.ts +33 -0
  223. package/src/services/A11yModule/A11yModule.types.ts +15 -0
  224. package/src/services/A11yModule/index.ts +1 -0
  225. package/src/services/index.ts +1 -0
  226. package/src/types/FocusStyle.ts +10 -0
  227. package/src/types/KeyboardFocusView.types.ts +43 -0
  228. package/src/types/index.ts +6 -0
@@ -0,0 +1,52 @@
1
+ package com.externalkeyboard.services;
2
+
3
+
4
+ import static com.facebook.react.uimanager.common.UIManagerType.FABRIC;
5
+
6
+ import android.app.Activity;
7
+ import android.util.Log;
8
+ import android.view.View;
9
+
10
+ import com.facebook.react.bridge.ReactApplicationContext;
11
+ import com.facebook.react.bridge.UIManager;
12
+ import com.facebook.react.uimanager.IllegalViewOperationException;
13
+ import com.facebook.react.uimanager.UIManagerHelper;
14
+ import com.facebook.react.uimanager.UIManagerModule;
15
+ import com.facebook.react.uimanager.common.ViewUtil;
16
+
17
+ public class KeyboardService {
18
+ private final ReactApplicationContext context;
19
+
20
+ public KeyboardService(ReactApplicationContext context) {
21
+ this.context = context;
22
+ }
23
+
24
+ public void setKeyboardFocus(int tag) {
25
+ final Activity activity = context.getCurrentActivity();
26
+
27
+ if (activity == null) {
28
+ return;
29
+ }
30
+
31
+ activity.runOnUiThread(() -> {
32
+ try {
33
+ int uiManagerType = ViewUtil.getUIManagerType(tag);
34
+ if (uiManagerType == FABRIC) {
35
+ UIManager fabricUIManager =
36
+ UIManagerHelper.getUIManager(context, uiManagerType);
37
+ if (fabricUIManager != null) {
38
+ View view = fabricUIManager.resolveView(tag);
39
+ view.requestFocus();
40
+ }
41
+ } else {
42
+ UIManager uiManager = context.getNativeModule(UIManagerModule.class);
43
+ View view = uiManager.resolveView(tag);
44
+ view.requestFocus();
45
+ }
46
+ } catch (IllegalViewOperationException error) {
47
+ Log.e("KEYBOARD_FOCUS_ERROR", error.getMessage());
48
+ }
49
+ });
50
+ }
51
+
52
+ }
@@ -0,0 +1,28 @@
1
+ package com.externalkeyboard.views.ExternalKeyboardView;
2
+
3
+ import android.content.Context;
4
+ import android.util.AttributeSet;
5
+ import android.view.ViewGroup;
6
+
7
+ import androidx.annotation.Nullable;
8
+
9
+ public class ExternalKeyboardView extends ViewGroup {
10
+
11
+ public ExternalKeyboardView(Context context) {
12
+ super(context);
13
+ }
14
+
15
+ public ExternalKeyboardView(Context context, @Nullable AttributeSet attrs) {
16
+ super(context, attrs);
17
+ }
18
+
19
+ public ExternalKeyboardView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
20
+ super(context, attrs, defStyleAttr);
21
+ }
22
+
23
+ @Override
24
+ protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
25
+ // No-op since UIManagerModule handles actually laying out children.
26
+ }
27
+
28
+ }
@@ -0,0 +1,101 @@
1
+ package com.externalkeyboard.views.ExternalKeyboardView;
2
+
3
+ import android.view.KeyEvent;
4
+ import android.view.View;
5
+ import android.view.ViewGroup;
6
+
7
+ import androidx.annotation.Nullable;
8
+
9
+ import com.externalkeyboard.events.FocusChangeEvent;
10
+ import com.externalkeyboard.events.KeyPressDownEvent;
11
+ import com.externalkeyboard.events.KeyPressUpEvent;
12
+ import com.externalkeyboard.services.KeyboardKeyPressHandler;
13
+ import com.facebook.react.common.MapBuilder;
14
+ import com.facebook.react.module.annotations.ReactModule;
15
+ import com.facebook.react.uimanager.ThemedReactContext;
16
+ import com.facebook.react.uimanager.UIManagerHelper;
17
+ import com.facebook.react.uimanager.annotations.ReactProp;
18
+
19
+ import java.util.Map;
20
+
21
+
22
+ @ReactModule(name = ExternalKeyboardViewManager.NAME)
23
+ public class ExternalKeyboardViewManager extends com.externalkeyboard.ExternalKeyboardViewManagerSpec<ExternalKeyboardView> {
24
+
25
+ public static final String NAME = "ExternalKeyboardView";
26
+ private KeyboardKeyPressHandler keyboardKeyPressHandler;
27
+
28
+ @Override
29
+ public String getName() {
30
+ return NAME;
31
+ }
32
+
33
+ @Override
34
+ public ExternalKeyboardView createViewInstance(ThemedReactContext context) {
35
+ this.keyboardKeyPressHandler = new KeyboardKeyPressHandler();
36
+ return new ExternalKeyboardView(context);
37
+ }
38
+
39
+
40
+ private void onKeyPressHandler(ExternalKeyboardView viewGroup, int keyCode, KeyEvent keyEvent, ThemedReactContext reactContext) {
41
+ KeyboardKeyPressHandler.PressInfo pressInfo = keyboardKeyPressHandler.getEventsFromKeyPress(keyCode, keyEvent);
42
+
43
+ if (pressInfo.firePressDownEvent) {
44
+ KeyPressDownEvent keyPressDownEvent = new KeyPressDownEvent(viewGroup.getId(), keyCode, keyEvent);
45
+ UIManagerHelper.getEventDispatcherForReactTag(reactContext, viewGroup.getId()).dispatchEvent(keyPressDownEvent);
46
+ }
47
+
48
+ if (pressInfo.firePressUpEvent) {
49
+ KeyPressUpEvent keyPressUpEvent = new KeyPressUpEvent(viewGroup.getId(), keyCode, keyEvent, pressInfo.isLongPress);
50
+ UIManagerHelper.getEventDispatcherForReactTag(reactContext, viewGroup.getId()).dispatchEvent(keyPressUpEvent);
51
+ }
52
+ }
53
+
54
+ @Override
55
+ protected void addEventEmitters(final ThemedReactContext reactContext, ExternalKeyboardView viewGroup) {
56
+ viewGroup.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
57
+ @Override
58
+ public void onChildViewAdded(View parent, View child) {
59
+ child.setOnFocusChangeListener(
60
+ (v, hasFocus) -> {
61
+ FocusChangeEvent event = new FocusChangeEvent(viewGroup.getId(), hasFocus);
62
+ UIManagerHelper.getEventDispatcherForReactTag(reactContext, v.getId()).dispatchEvent(event);
63
+ });
64
+
65
+ child.setOnKeyListener((View v, int keyCode, KeyEvent keyEvent) -> {
66
+ onKeyPressHandler(viewGroup, keyCode, keyEvent, reactContext);
67
+ return false;
68
+ });
69
+ }
70
+
71
+ @Override
72
+ public void onChildViewRemoved(View parent, View child) {
73
+ }
74
+ });
75
+ }
76
+
77
+
78
+ @Nullable
79
+ @Override
80
+ public Map<String, Object> getExportedCustomDirectEventTypeConstants() {
81
+ Map<String, Object> export = MapBuilder.<String, Object>builder().build();
82
+ if (export == null) {
83
+ export = MapBuilder.newHashMap();
84
+ }
85
+
86
+ export.put(FocusChangeEvent.EVENT_NAME, MapBuilder.of("registrationName", "onFocusChange"));
87
+ export.put(KeyPressUpEvent.EVENT_NAME, MapBuilder.of("registrationName", "onKeyUpPress"));
88
+ export.put(KeyPressDownEvent.EVENT_NAME, MapBuilder.of("registrationName", "onKeyDownPress"));
89
+
90
+ return export;
91
+ }
92
+
93
+ @Override
94
+ @ReactProp(name = "canBeFocused", defaultBoolean = true)
95
+ public void setCanBeFocused(ExternalKeyboardView wrapper, boolean canBeFocused) {
96
+ int descendantFocusability = canBeFocused ?
97
+ ViewGroup.FOCUS_AFTER_DESCENDANTS
98
+ : ViewGroup.FOCUS_BLOCK_DESCENDANTS;
99
+ wrapper.setDescendantFocusability(descendantFocusability);
100
+ }
101
+ }
@@ -0,0 +1,9 @@
1
+ package com.externalkeyboard;
2
+
3
+ import com.facebook.react.bridge.ReactApplicationContext;
4
+
5
+ abstract class A11yKeyboardModuleSpec extends NativeKeyboardModuleSpec {
6
+ A11yKeyboardModuleSpec(ReactApplicationContext context) {
7
+ super(context);
8
+ }
9
+ }
@@ -0,0 +1,31 @@
1
+ package com.externalkeyboard;
2
+
3
+ import android.view.ViewGroup;
4
+
5
+ import androidx.annotation.Nullable;
6
+
7
+ import com.facebook.react.uimanager.ViewGroupManager;
8
+ import com.facebook.react.uimanager.ViewManagerDelegate;
9
+ import com.facebook.react.viewmanagers.ExternalKeyboardViewManagerDelegate;
10
+ import com.facebook.react.viewmanagers.ExternalKeyboardViewManagerInterface;
11
+ import com.facebook.soloader.SoLoader;
12
+
13
+ public abstract class ExternalKeyboardViewManagerSpec<T extends ViewGroup> extends ViewGroupManager<T> implements ExternalKeyboardViewManagerInterface<T> {
14
+ static {
15
+ if (BuildConfig.CODEGEN_MODULE_REGISTRATION != null) {
16
+ SoLoader.loadLibrary(BuildConfig.CODEGEN_MODULE_REGISTRATION);
17
+ }
18
+ }
19
+
20
+ private final ViewManagerDelegate<T> mDelegate;
21
+
22
+ public ExternalKeyboardViewManagerSpec() {
23
+ mDelegate = new ExternalKeyboardViewManagerDelegate(this);
24
+ }
25
+
26
+ @Nullable
27
+ @Override
28
+ protected ViewManagerDelegate<T> getDelegate() {
29
+ return mDelegate;
30
+ }
31
+ }
@@ -0,0 +1,15 @@
1
+ package com.externalkeyboard;
2
+
3
+ import com.facebook.react.bridge.ReactApplicationContext;
4
+ import com.facebook.react.bridge.ReactContextBaseJavaModule;
5
+
6
+ public abstract class A11yKeyboardModuleSpec extends ReactContextBaseJavaModule {
7
+ protected A11yKeyboardModuleSpec(ReactApplicationContext context) {
8
+ super(context);
9
+ }
10
+
11
+ public abstract void setKeyboardFocus(double nativeTag, double nextTag);
12
+
13
+ public abstract void setPreferredKeyboardFocus(double nativeTag, double nextTag);
14
+ }
15
+
@@ -0,0 +1,9 @@
1
+ package com.externalkeyboard;
2
+
3
+ import android.view.ViewGroup;
4
+
5
+ import com.facebook.react.uimanager.ViewGroupManager;
6
+
7
+ public abstract class ExternalKeyboardViewManagerSpec<T extends ViewGroup> extends ViewGroupManager<T> {
8
+ public abstract void setCanBeFocused(T wrapper, boolean canBeFocused);
9
+ }
@@ -0,0 +1,384 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 4909DF422A645F0F006648DA /* A11yKeyboardModule.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4909DF412A645F0F006648DA /* A11yKeyboardModule.mm */; };
11
+ 49EA62882A65FBB500F8C388 /* ExternalKeyboardViewManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 49EA62792A65FBB500F8C388 /* ExternalKeyboardViewManager.mm */; };
12
+ 49EA62892A65FBB500F8C388 /* KeyboardKeyPressHandler.mm in Sources */ = {isa = PBXBuildFile; fileRef = 49EA627D2A65FBB500F8C388 /* KeyboardKeyPressHandler.mm */; };
13
+ 49EA628A2A65FBB500F8C388 /* FocusWrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 49EA62802A65FBB500F8C388 /* FocusWrapper.mm */; };
14
+ 49EA628B2A65FBB500F8C388 /* ExternalKeyboardView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 49EA62832A65FBB500F8C388 /* ExternalKeyboardView.mm */; };
15
+ 49EA628C2A65FBB500F8C388 /* A11yKeyboardModule.mm in Sources */ = {isa = PBXBuildFile; fileRef = 49EA62872A65FBB500F8C388 /* A11yKeyboardModule.mm */; };
16
+ /* End PBXBuildFile section */
17
+
18
+ /* Begin PBXCopyFilesBuildPhase section */
19
+ 58B511D91A9E6C8500147676 /* CopyFiles */ = {
20
+ isa = PBXCopyFilesBuildPhase;
21
+ buildActionMask = 2147483647;
22
+ dstPath = "include/$(PRODUCT_NAME)";
23
+ dstSubfolderSpec = 16;
24
+ files = (
25
+ );
26
+ runOnlyForDeploymentPostprocessing = 0;
27
+ };
28
+ /* End PBXCopyFilesBuildPhase section */
29
+
30
+ /* Begin PBXFileReference section */
31
+ 134814201AA4EA6300B7C361 /* libExternalKeyboard.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libExternalKeyboard.a; sourceTree = BUILT_PRODUCTS_DIR; };
32
+ 4909DF412A645F0F006648DA /* A11yKeyboardModule.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = A11yKeyboardModule.mm; sourceTree = "<group>"; };
33
+ 4909DF432A645F17006648DA /* A11yKeyboardModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = A11yKeyboardModule.h; sourceTree = "<group>"; };
34
+ 49EA62782A65FBB500F8C388 /* ExternalKeyboardViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExternalKeyboardViewManager.h; sourceTree = "<group>"; };
35
+ 49EA62792A65FBB500F8C388 /* ExternalKeyboardViewManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ExternalKeyboardViewManager.mm; sourceTree = "<group>"; };
36
+ 49EA627C2A65FBB500F8C388 /* KeyboardKeyPressHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyboardKeyPressHandler.h; sourceTree = "<group>"; };
37
+ 49EA627D2A65FBB500F8C388 /* KeyboardKeyPressHandler.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KeyboardKeyPressHandler.mm; sourceTree = "<group>"; };
38
+ 49EA627F2A65FBB500F8C388 /* FocusWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FocusWrapper.h; sourceTree = "<group>"; };
39
+ 49EA62802A65FBB500F8C388 /* FocusWrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FocusWrapper.mm; sourceTree = "<group>"; };
40
+ 49EA62822A65FBB500F8C388 /* ExternalKeyboardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExternalKeyboardView.h; sourceTree = "<group>"; };
41
+ 49EA62832A65FBB500F8C388 /* ExternalKeyboardView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ExternalKeyboardView.mm; sourceTree = "<group>"; };
42
+ 49EA62862A65FBB500F8C388 /* A11yKeyboardModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = A11yKeyboardModule.h; sourceTree = "<group>"; };
43
+ 49EA62872A65FBB500F8C388 /* A11yKeyboardModule.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = A11yKeyboardModule.mm; sourceTree = "<group>"; };
44
+ /* End PBXFileReference section */
45
+
46
+ /* Begin PBXFrameworksBuildPhase section */
47
+ 58B511D81A9E6C8500147676 /* Frameworks */ = {
48
+ isa = PBXFrameworksBuildPhase;
49
+ buildActionMask = 2147483647;
50
+ files = (
51
+ );
52
+ runOnlyForDeploymentPostprocessing = 0;
53
+ };
54
+ /* End PBXFrameworksBuildPhase section */
55
+
56
+ /* Begin PBXGroup section */
57
+ 134814211AA4EA7D00B7C361 /* Products */ = {
58
+ isa = PBXGroup;
59
+ children = (
60
+ 134814201AA4EA6300B7C361 /* libExternalKeyboard.a */,
61
+ );
62
+ name = Products;
63
+ sourceTree = "<group>";
64
+ };
65
+ 4909DF3F2A645EE3006648DA /* Modules */ = {
66
+ isa = PBXGroup;
67
+ children = (
68
+ 4909DF402A645EF9006648DA /* A11yKeyboardModule */,
69
+ );
70
+ path = Modules;
71
+ sourceTree = "<group>";
72
+ };
73
+ 4909DF402A645EF9006648DA /* A11yKeyboardModule */ = {
74
+ isa = PBXGroup;
75
+ children = (
76
+ 4909DF412A645F0F006648DA /* A11yKeyboardModule.mm */,
77
+ 4909DF432A645F17006648DA /* A11yKeyboardModule.h */,
78
+ );
79
+ path = A11yKeyboardModule;
80
+ sourceTree = "<group>";
81
+ };
82
+ 49EA62762A65FBB500F8C388 /* ViewManagers */ = {
83
+ isa = PBXGroup;
84
+ children = (
85
+ 49EA62772A65FBB500F8C388 /* ExternalKeyboardViewManager */,
86
+ );
87
+ path = ViewManagers;
88
+ sourceTree = "<group>";
89
+ };
90
+ 49EA62772A65FBB500F8C388 /* ExternalKeyboardViewManager */ = {
91
+ isa = PBXGroup;
92
+ children = (
93
+ 49EA62782A65FBB500F8C388 /* ExternalKeyboardViewManager.h */,
94
+ 49EA62792A65FBB500F8C388 /* ExternalKeyboardViewManager.mm */,
95
+ );
96
+ path = ExternalKeyboardViewManager;
97
+ sourceTree = "<group>";
98
+ };
99
+ 49EA627A2A65FBB500F8C388 /* Helpers */ = {
100
+ isa = PBXGroup;
101
+ children = (
102
+ 49EA627B2A65FBB500F8C388 /* KeyboardKeyPressHandler */,
103
+ 49EA627E2A65FBB500F8C388 /* FocusWrapper */,
104
+ );
105
+ path = Helpers;
106
+ sourceTree = "<group>";
107
+ };
108
+ 49EA627B2A65FBB500F8C388 /* KeyboardKeyPressHandler */ = {
109
+ isa = PBXGroup;
110
+ children = (
111
+ 49EA627C2A65FBB500F8C388 /* KeyboardKeyPressHandler.h */,
112
+ 49EA627D2A65FBB500F8C388 /* KeyboardKeyPressHandler.mm */,
113
+ );
114
+ path = KeyboardKeyPressHandler;
115
+ sourceTree = "<group>";
116
+ };
117
+ 49EA627E2A65FBB500F8C388 /* FocusWrapper */ = {
118
+ isa = PBXGroup;
119
+ children = (
120
+ 49EA627F2A65FBB500F8C388 /* FocusWrapper.h */,
121
+ 49EA62802A65FBB500F8C388 /* FocusWrapper.mm */,
122
+ );
123
+ path = FocusWrapper;
124
+ sourceTree = "<group>";
125
+ };
126
+ 49EA62812A65FBB500F8C388 /* ExternalKeyboardView */ = {
127
+ isa = PBXGroup;
128
+ children = (
129
+ 49EA62822A65FBB500F8C388 /* ExternalKeyboardView.h */,
130
+ 49EA62832A65FBB500F8C388 /* ExternalKeyboardView.mm */,
131
+ );
132
+ path = ExternalKeyboardView;
133
+ sourceTree = "<group>";
134
+ };
135
+ 49EA62842A65FBB500F8C388 /* Modules */ = {
136
+ isa = PBXGroup;
137
+ children = (
138
+ 49EA62852A65FBB500F8C388 /* A11yKeyboardModule */,
139
+ );
140
+ path = Modules;
141
+ sourceTree = "<group>";
142
+ };
143
+ 49EA62852A65FBB500F8C388 /* A11yKeyboardModule */ = {
144
+ isa = PBXGroup;
145
+ children = (
146
+ 49EA62862A65FBB500F8C388 /* A11yKeyboardModule.h */,
147
+ 49EA62872A65FBB500F8C388 /* A11yKeyboardModule.mm */,
148
+ );
149
+ path = A11yKeyboardModule;
150
+ sourceTree = "<group>";
151
+ };
152
+ 58B511D21A9E6C8500147676 = {
153
+ isa = PBXGroup;
154
+ children = (
155
+ 4909DF3F2A645EE3006648DA /* Modules */,
156
+ 49EA62812A65FBB500F8C388 /* ExternalKeyboardView */,
157
+ 49EA627A2A65FBB500F8C388 /* Helpers */,
158
+ 49EA62842A65FBB500F8C388 /* Modules */,
159
+ 49EA62762A65FBB500F8C388 /* ViewManagers */,
160
+ 134814211AA4EA7D00B7C361 /* Products */,
161
+ );
162
+ sourceTree = "<group>";
163
+ };
164
+ /* End PBXGroup section */
165
+
166
+ /* Begin PBXNativeTarget section */
167
+ 58B511DA1A9E6C8500147676 /* ExternalKeyboard */ = {
168
+ isa = PBXNativeTarget;
169
+ buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "ExternalKeyboard" */;
170
+ buildPhases = (
171
+ 58B511D71A9E6C8500147676 /* Sources */,
172
+ 58B511D81A9E6C8500147676 /* Frameworks */,
173
+ 58B511D91A9E6C8500147676 /* CopyFiles */,
174
+ );
175
+ buildRules = (
176
+ );
177
+ dependencies = (
178
+ );
179
+ name = ExternalKeyboard;
180
+ productName = RCTDataManager;
181
+ productReference = 134814201AA4EA6300B7C361 /* libExternalKeyboard.a */;
182
+ productType = "com.apple.product-type.library.static";
183
+ };
184
+ /* End PBXNativeTarget section */
185
+
186
+ /* Begin PBXProject section */
187
+ 58B511D31A9E6C8500147676 /* Project object */ = {
188
+ isa = PBXProject;
189
+ attributes = {
190
+ LastUpgradeCheck = 0920;
191
+ ORGANIZATIONNAME = Facebook;
192
+ TargetAttributes = {
193
+ 58B511DA1A9E6C8500147676 = {
194
+ CreatedOnToolsVersion = 6.1.1;
195
+ };
196
+ };
197
+ };
198
+ buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "ExternalKeyboard" */;
199
+ compatibilityVersion = "Xcode 3.2";
200
+ developmentRegion = English;
201
+ hasScannedForEncodings = 0;
202
+ knownRegions = (
203
+ English,
204
+ en,
205
+ );
206
+ mainGroup = 58B511D21A9E6C8500147676;
207
+ productRefGroup = 58B511D21A9E6C8500147676;
208
+ projectDirPath = "";
209
+ projectRoot = "";
210
+ targets = (
211
+ 58B511DA1A9E6C8500147676 /* ExternalKeyboard */,
212
+ );
213
+ };
214
+ /* End PBXProject section */
215
+
216
+ /* Begin PBXSourcesBuildPhase section */
217
+ 58B511D71A9E6C8500147676 /* Sources */ = {
218
+ isa = PBXSourcesBuildPhase;
219
+ buildActionMask = 2147483647;
220
+ files = (
221
+ 49EA628A2A65FBB500F8C388 /* FocusWrapper.mm in Sources */,
222
+ 49EA628B2A65FBB500F8C388 /* ExternalKeyboardView.mm in Sources */,
223
+ 49EA62892A65FBB500F8C388 /* KeyboardKeyPressHandler.mm in Sources */,
224
+ 49EA62882A65FBB500F8C388 /* ExternalKeyboardViewManager.mm in Sources */,
225
+ 4909DF422A645F0F006648DA /* A11yKeyboardModule.mm in Sources */,
226
+ 49EA628C2A65FBB500F8C388 /* A11yKeyboardModule.mm in Sources */,
227
+ );
228
+ runOnlyForDeploymentPostprocessing = 0;
229
+ };
230
+ /* End PBXSourcesBuildPhase section */
231
+
232
+ /* Begin XCBuildConfiguration section */
233
+ 58B511ED1A9E6C8500147676 /* Debug */ = {
234
+ isa = XCBuildConfiguration;
235
+ buildSettings = {
236
+ ALWAYS_SEARCH_USER_PATHS = NO;
237
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
238
+ CLANG_CXX_LIBRARY = "libc++";
239
+ CLANG_ENABLE_MODULES = YES;
240
+ CLANG_ENABLE_OBJC_ARC = YES;
241
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
242
+ CLANG_WARN_BOOL_CONVERSION = YES;
243
+ CLANG_WARN_COMMA = YES;
244
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
245
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
246
+ CLANG_WARN_EMPTY_BODY = YES;
247
+ CLANG_WARN_ENUM_CONVERSION = YES;
248
+ CLANG_WARN_INFINITE_RECURSION = YES;
249
+ CLANG_WARN_INT_CONVERSION = YES;
250
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
251
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
252
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
253
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
254
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
255
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
256
+ CLANG_WARN_UNREACHABLE_CODE = YES;
257
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
258
+ COPY_PHASE_STRIP = NO;
259
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
260
+ ENABLE_TESTABILITY = YES;
261
+ "EXCLUDED_ARCHS[sdk=*]" = arm64;
262
+ GCC_C_LANGUAGE_STANDARD = gnu99;
263
+ GCC_DYNAMIC_NO_PIC = NO;
264
+ GCC_NO_COMMON_BLOCKS = YES;
265
+ GCC_OPTIMIZATION_LEVEL = 0;
266
+ GCC_PREPROCESSOR_DEFINITIONS = (
267
+ "DEBUG=1",
268
+ "$(inherited)",
269
+ );
270
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
271
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
272
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
273
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
274
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
275
+ GCC_WARN_UNUSED_FUNCTION = YES;
276
+ GCC_WARN_UNUSED_VARIABLE = YES;
277
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
278
+ MTL_ENABLE_DEBUG_INFO = YES;
279
+ ONLY_ACTIVE_ARCH = YES;
280
+ SDKROOT = iphoneos;
281
+ };
282
+ name = Debug;
283
+ };
284
+ 58B511EE1A9E6C8500147676 /* Release */ = {
285
+ isa = XCBuildConfiguration;
286
+ buildSettings = {
287
+ ALWAYS_SEARCH_USER_PATHS = NO;
288
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
289
+ CLANG_CXX_LIBRARY = "libc++";
290
+ CLANG_ENABLE_MODULES = YES;
291
+ CLANG_ENABLE_OBJC_ARC = YES;
292
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
293
+ CLANG_WARN_BOOL_CONVERSION = YES;
294
+ CLANG_WARN_COMMA = YES;
295
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
296
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
297
+ CLANG_WARN_EMPTY_BODY = YES;
298
+ CLANG_WARN_ENUM_CONVERSION = YES;
299
+ CLANG_WARN_INFINITE_RECURSION = YES;
300
+ CLANG_WARN_INT_CONVERSION = YES;
301
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
302
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
303
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
304
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
305
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
306
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
307
+ CLANG_WARN_UNREACHABLE_CODE = YES;
308
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
309
+ COPY_PHASE_STRIP = YES;
310
+ ENABLE_NS_ASSERTIONS = NO;
311
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
312
+ "EXCLUDED_ARCHS[sdk=*]" = arm64;
313
+ GCC_C_LANGUAGE_STANDARD = gnu99;
314
+ GCC_NO_COMMON_BLOCKS = YES;
315
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
316
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
317
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
318
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
319
+ GCC_WARN_UNUSED_FUNCTION = YES;
320
+ GCC_WARN_UNUSED_VARIABLE = YES;
321
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
322
+ MTL_ENABLE_DEBUG_INFO = NO;
323
+ SDKROOT = iphoneos;
324
+ VALIDATE_PRODUCT = YES;
325
+ };
326
+ name = Release;
327
+ };
328
+ 58B511F01A9E6C8500147676 /* Debug */ = {
329
+ isa = XCBuildConfiguration;
330
+ buildSettings = {
331
+ HEADER_SEARCH_PATHS = (
332
+ "$(inherited)",
333
+ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
334
+ "$(SRCROOT)/../../../React/**",
335
+ "$(SRCROOT)/../../react-native/React/**",
336
+ );
337
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
338
+ OTHER_LDFLAGS = "-ObjC";
339
+ PRODUCT_NAME = ExternalKeyboard;
340
+ SKIP_INSTALL = YES;
341
+ };
342
+ name = Debug;
343
+ };
344
+ 58B511F11A9E6C8500147676 /* Release */ = {
345
+ isa = XCBuildConfiguration;
346
+ buildSettings = {
347
+ HEADER_SEARCH_PATHS = (
348
+ "$(inherited)",
349
+ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
350
+ "$(SRCROOT)/../../../React/**",
351
+ "$(SRCROOT)/../../react-native/React/**",
352
+ );
353
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
354
+ OTHER_LDFLAGS = "-ObjC";
355
+ PRODUCT_NAME = ExternalKeyboard;
356
+ SKIP_INSTALL = YES;
357
+ };
358
+ name = Release;
359
+ };
360
+ /* End XCBuildConfiguration section */
361
+
362
+ /* Begin XCConfigurationList section */
363
+ 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "ExternalKeyboard" */ = {
364
+ isa = XCConfigurationList;
365
+ buildConfigurations = (
366
+ 58B511ED1A9E6C8500147676 /* Debug */,
367
+ 58B511EE1A9E6C8500147676 /* Release */,
368
+ );
369
+ defaultConfigurationIsVisible = 0;
370
+ defaultConfigurationName = Release;
371
+ };
372
+ 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "ExternalKeyboard" */ = {
373
+ isa = XCConfigurationList;
374
+ buildConfigurations = (
375
+ 58B511F01A9E6C8500147676 /* Debug */,
376
+ 58B511F11A9E6C8500147676 /* Release */,
377
+ );
378
+ defaultConfigurationIsVisible = 0;
379
+ defaultConfigurationName = Release;
380
+ };
381
+ /* End XCConfigurationList section */
382
+ };
383
+ rootObject = 58B511D31A9E6C8500147676 /* Project object */;
384
+ }
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ </Workspace>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>IDEDidComputeMac32BitWarning</key>
6
+ <true/>
7
+ </dict>
8
+ </plist>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Bucket
3
+ uuid = "6A472AA3-EDA7-4BBC-9834-125C45235935"
4
+ type = "1"
5
+ version = "2.0">
6
+ <Breakpoints>
7
+ <BreakpointProxy
8
+ BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
9
+ <BreakpointContent
10
+ uuid = "77A1ECE5-D456-4921-9000-0AE0262A99A5"
11
+ shouldBeEnabled = "No"
12
+ ignoreCount = "0"
13
+ continueAfterRunningActions = "No"
14
+ filePath = "Modules/A11yKeyboardModule/A11yKeyboardModule.m"
15
+ startingColumnNumber = "9223372036854775807"
16
+ endingColumnNumber = "9223372036854775807"
17
+ startingLineNumber = "25"
18
+ endingLineNumber = "25"
19
+ landmarkName = "A11yKeyboardModule"
20
+ landmarkType = "3">
21
+ </BreakpointContent>
22
+ </BreakpointProxy>
23
+ </Breakpoints>
24
+ </Bucket>