diff --git a/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java b/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java index 95c5e8ea47..d71210b137 100644 --- a/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java +++ b/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java @@ -9,7 +9,10 @@ public class RuntimeUtils { private static final Runnable sUIUpdateClosure = new Runnable() { @Override public void run() { - ReactContextHolder.getContext().getNativeModule(UIManagerModule.class).onBatchComplete(); + UIManagerModule uiManager = ReactContextHolder.getContext().getNativeModule(UIManagerModule.class); + if (uiManager != null) { + uiManager.onBatchComplete(); + } } }; diff --git a/lib/components/Keyboard/KeyboardInput/KeyboardAccessoryView.tsx b/lib/components/Keyboard/KeyboardInput/KeyboardAccessoryView.tsx index 00051ef3e9..4881e3a953 100644 --- a/lib/components/Keyboard/KeyboardInput/KeyboardAccessoryView.tsx +++ b/lib/components/Keyboard/KeyboardInput/KeyboardAccessoryView.tsx @@ -62,6 +62,7 @@ export type KeyboardAccessoryViewProps = kbTrackingViewProps & { * @gif: https://github.com/wix/react-native-ui-lib/blob/master/demo/showcase/KeyboardAccessoryView/KeyboardAccessoryView.gif?raw=true */ class KeyboardAccessoryView extends Component { + androidBackHandlerSubscription?: { remove: () => void }; static scrollBehaviors = KeyboardTrackingView.scrollBehaviors; static defaultProps = { @@ -94,8 +95,8 @@ class KeyboardAccessoryView extends Component { if (this.customInputControllerEventsSubscriber) { this.customInputControllerEventsSubscriber.remove(); } - if (IsAndroid) { - BackHandler.removeEventListener('hardwareBackPress', this.onAndroidBackPressed); + if (IsAndroid && this.androidBackHandlerSubscription) { + this.androidBackHandlerSubscription.remove(); } } @@ -146,7 +147,7 @@ class KeyboardAccessoryView extends Component { registerAndroidBackHandler() { if (IsAndroid) { - BackHandler.addEventListener('hardwareBackPress', this.onAndroidBackPressed); + this.androidBackHandlerSubscription = BackHandler.addEventListener('hardwareBackPress', this.onAndroidBackPressed); } }