react-native-navigation 8.1.0-alpha01 → 8.1.0-rc01-snapshot.1685
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.
- package/autolink/postlink/__snapshots__/appDelegateLinker.test.js.snap +12 -12
- package/index.e2e.js +2 -1
- package/lib/Mock/Components/ComponentScreen.tsx +2 -1
- package/lib/Mock/Components/LayoutComponent.tsx +9 -0
- package/lib/Mock/Components/SideMenu.tsx +27 -0
- package/lib/Mock/Layouts/BottomTabsNode.ts +4 -2
- package/lib/Mock/Layouts/LayoutNodeFactory.ts +14 -1
- package/lib/Mock/Layouts/ParentNode.ts +4 -0
- package/lib/Mock/Layouts/SideMenu.ts +87 -0
- package/lib/Mock/Stores/LayoutStore.ts +42 -10
- package/lib/Mock/actions/layoutActions.ts +11 -0
- package/lib/Mock/mocks/NativeCommandsSender.tsx +1 -0
- package/lib/android/app/build.gradle +22 -125
- package/lib/android/app/src/main/java/com/reactnativenavigation/FeatureToggles.kt +4 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationActivity.java +2 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationApplication.java +1 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutFactory.java +4 -4
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationPackage.kt +27 -13
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationReactInitializer.java +2 -14
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationTurboModule.kt +291 -0
- package/lib/android/app/src/{reactNative71 → main}/java/com/reactnativenavigation/react/ReactGateway.java +23 -23
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactView.java +6 -6
- package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ColorUtils.java +11 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/utils/MotionEvent.kt +4 -9
- package/lib/android/app/src/main/java/com/reactnativenavigation/utils/SystemUiUtils.kt +12 -17
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenter.java +0 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +20 -13
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentPresenter.java +18 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +5 -17
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java +28 -13
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenter.java +13 -6
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/TopBarController.kt +35 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/statusbar/StatusBarPresenter.kt +212 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +10 -178
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/StatusBarColorAnimator.kt +28 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java +34 -7
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerVisibilityInfo.kt +5 -0
- package/lib/android/build.gradle +27 -15
- package/lib/dist/Mock/Components/ComponentScreen.js +2 -1
- package/lib/dist/Mock/Components/LayoutComponent.js +9 -0
- package/lib/dist/Mock/Components/SideMenu.d.ts +58 -0
- package/lib/dist/Mock/Components/SideMenu.js +25 -0
- package/lib/dist/Mock/Layouts/BottomTabsNode.d.ts +1 -1
- package/lib/dist/Mock/Layouts/BottomTabsNode.js +3 -2
- package/lib/dist/Mock/Layouts/LayoutNodeFactory.d.ts +2 -1
- package/lib/dist/Mock/Layouts/LayoutNodeFactory.js +10 -1
- package/lib/dist/Mock/Layouts/ParentNode.d.ts +1 -0
- package/lib/dist/Mock/Layouts/ParentNode.js +3 -0
- package/lib/dist/Mock/Layouts/SideMenu.d.ts +31 -0
- package/lib/dist/Mock/Layouts/SideMenu.js +80 -0
- package/lib/dist/Mock/Stores/LayoutStore.js +38 -9
- package/lib/dist/Mock/actions/layoutActions.d.ts +3 -0
- package/lib/dist/Mock/actions/layoutActions.js +11 -1
- package/lib/dist/Mock/mocks/NativeCommandsSender.js +1 -0
- package/lib/dist/src/adapters/NativeCommandsSender.d.ts +39 -4
- package/lib/dist/src/adapters/NativeCommandsSender.js +2 -2
- package/lib/dist/src/adapters/NativeRNNTurboEventEmitter.js +2 -9
- package/lib/dist/src/adapters/NativeRNNTurboModule.d.ts +9 -10
- package/lib/dist/src/adapters/NativeRNNTurboModule.js +1 -12
- package/lib/dist/src/commands/Commands.d.ts +13 -13
- package/lib/ios/AnimatedTextView.mm +1 -0
- package/lib/ios/Constants.mm +7 -1
- package/lib/ios/RNNAppDelegate.mm +3 -1
- package/lib/ios/RNNCommandsHandler.mm +1 -0
- package/lib/ios/RNNCustomTitleView.h +1 -0
- package/lib/ios/RNNCustomTitleView.mm +8 -1
- package/lib/ios/RNNEventEmitter.mm +3 -0
- package/lib/ios/RNNReactButtonView.mm +1 -1
- package/lib/ios/RNNReactView.h +3 -1
- package/lib/ios/RNNReactView.mm +45 -20
- package/lib/ios/TopBarTitlePresenter.mm +2 -0
- package/lib/ios/TurboModules/RNNTurboEventEmitter.mm +7 -0
- package/lib/ios/UINavigationController+RNNCommands.mm +4 -0
- package/lib/src/adapters/NativeCommandsSender.ts +7 -7
- package/lib/src/adapters/NativeRNNTurboEventEmitter.ts +3 -9
- package/lib/src/adapters/NativeRNNTurboModule.ts +23 -21
- package/package.json +14 -17
- package/react-native.config.js +1 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/DevPermissionRequest.java +0 -42
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/statusbar/StatusBarController.kt +0 -9
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/statusbar/StatusBarPresenter.kt +0 -9
- package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
- package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -22
- package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -22
- package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -71
- package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
- package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/SyncUiImplementation.java +0 -83
- package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
- package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
- package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
- package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
- package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
- package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -22
- package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -22
- package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -71
- package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
- package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -22
- package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/SyncUiImplementation.java +0 -83
- package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
- package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
- package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
- package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
- package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
- package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -28
- package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -28
- package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -71
- package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
- package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -25
- package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/SyncUiImplementation.java +0 -83
- package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
- package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
- package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
- package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
- package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
- package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -28
- package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -28
- package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -70
- package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
- package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -25
- package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/SyncUiImplementation.java +0 -70
- package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
- package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
- package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
- package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
- package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
- package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -28
- package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -28
- package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -70
- package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
- package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -25
- package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/SyncUiImplementation.java +0 -83
- package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
- package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
- package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
- package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
- package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
- package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -28
- package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -28
- package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -67
- package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
- package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -25
- package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
- package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
- package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
- package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
- package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
- package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -67
- package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/react/ReactGateway.java +0 -72
- package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -22
- package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
- package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
- package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
- package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
- package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -22
- package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -22
- package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -66
- package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/ReactGateway.java +0 -72
- package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -22
- package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
- package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
- package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
- package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/options/parsers/ColorParser.kt +0 -38
- package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -22
- package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -22
- package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -66
- package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/ReactGateway.java +0 -72
- package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -22
- package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -87
- package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
- package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -12
- package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
- package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/options/parsers/ColorParser.kt +0 -38
- package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -22
- package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -22
- package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -22
- package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -12
- /package/lib/android/app/src/{reactNative63 → main}/java/com/reactnativenavigation/options/parsers/ColorParser.kt +0 -0
- /package/lib/android/app/src/{reactNative62 → main}/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -0
- /package/lib/android/app/src/{reactNative62 → main}/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -0
- /package/lib/android/app/src/{reactNative71 → main}/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -0
- /package/lib/android/app/src/{reactNative51 → main}/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -0
- /package/lib/android/app/src/{reactNative71 → main}/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -0
- /package/lib/android/app/src/{reactNative71 → main}/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -0
- /package/lib/android/app/src/{reactNative63 → main}/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -0
- /package/lib/android/app/src/{reactNative71 → main}/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -0
|
@@ -89,6 +89,8 @@
|
|
|
89
89
|
|
|
90
90
|
viewController.navigationItem.titleView = nil;
|
|
91
91
|
viewController.navigationItem.titleView = _customTitleView;
|
|
92
|
+
[_customTitleView componentWillAppear];
|
|
93
|
+
[_customTitleView componentDidAppear];
|
|
92
94
|
} else {
|
|
93
95
|
[_customTitleView removeFromSuperview];
|
|
94
96
|
if (readyBlock) {
|
|
@@ -21,6 +21,7 @@ typedef void (^RNNAnimationBlock)(void);
|
|
|
21
21
|
|
|
22
22
|
[self
|
|
23
23
|
performBlock:^{
|
|
24
|
+
NSLog(@"About to push a controller %@", newTop);
|
|
24
25
|
[self pushViewController:newTop animated:animated];
|
|
25
26
|
}
|
|
26
27
|
animated:animated
|
|
@@ -38,9 +39,12 @@ typedef void (^RNNAnimationBlock)(void);
|
|
|
38
39
|
}
|
|
39
40
|
animated:animated
|
|
40
41
|
completion:^{
|
|
42
|
+
NSLog(@"Pop popAnimated completed");
|
|
41
43
|
if (poppedVC) {
|
|
44
|
+
NSLog(@"Pop popAnimated completion invokation");
|
|
42
45
|
completion();
|
|
43
46
|
} else {
|
|
47
|
+
NSLog(@"Pop rejection");
|
|
44
48
|
[RNNErrorHandler reject:rejection
|
|
45
49
|
withErrorCode:1012
|
|
46
50
|
errorDescription:@"popping component failed"];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NavigationConstants } from './Constants';
|
|
2
|
-
import RNNCommandsModule from './NativeRNNTurboModule';
|
|
2
|
+
import RNNCommandsModule, { Spec } from './NativeRNNTurboModule';
|
|
3
3
|
|
|
4
4
|
interface NativeCommandsModule {
|
|
5
5
|
setRoot(commandId: string, layout: { root: any; modals: any[]; overlays: any[] }): Promise<any>;
|
|
@@ -9,7 +9,7 @@ interface NativeCommandsModule {
|
|
|
9
9
|
pop(commandId: string, componentId: string, options?: object): Promise<any>;
|
|
10
10
|
popTo(commandId: string, componentId: string, options?: object): Promise<any>;
|
|
11
11
|
popToRoot(commandId: string, componentId: string, options?: object): Promise<any>;
|
|
12
|
-
setStackRoot(commandId: string, onComponentId: string, layout: object): Promise<any>;
|
|
12
|
+
setStackRoot(commandId: string, onComponentId: string, layout: object[]): Promise<any>;
|
|
13
13
|
showModal(commandId: string, layout: object): Promise<any>;
|
|
14
14
|
dismissModal(commandId: string, componentId: string, options?: object): Promise<any>;
|
|
15
15
|
dismissAllModals(commandId: string, options?: object): Promise<any>;
|
|
@@ -23,8 +23,8 @@ interface NativeCommandsModule {
|
|
|
23
23
|
getConstants?: () => NavigationConstants;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export class NativeCommandsSender {
|
|
27
|
-
private readonly nativeCommandsModule:
|
|
26
|
+
export class NativeCommandsSender implements NativeCommandsModule {
|
|
27
|
+
private readonly nativeCommandsModule: Spec;
|
|
28
28
|
constructor() {
|
|
29
29
|
this.nativeCommandsModule = RNNCommandsModule;
|
|
30
30
|
}
|
|
@@ -57,7 +57,7 @@ export class NativeCommandsSender {
|
|
|
57
57
|
return this.nativeCommandsModule.popToRoot(commandId, componentId, options);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
setStackRoot(commandId: string, onComponentId: string, layout: object) {
|
|
60
|
+
setStackRoot(commandId: string, onComponentId: string, layout: object[]) {
|
|
61
61
|
return this.nativeCommandsModule.setStackRoot(commandId, onComponentId, layout);
|
|
62
62
|
}
|
|
63
63
|
|
|
@@ -90,10 +90,10 @@ export class NativeCommandsSender {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
getNavigationConstants() {
|
|
93
|
-
return this.nativeCommandsModule.
|
|
93
|
+
return Promise.resolve(this.nativeCommandsModule.getConstants());
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
getNavigationConstantsSync() {
|
|
97
|
-
return this.nativeCommandsModule.
|
|
97
|
+
return this.nativeCommandsModule.getConstants();
|
|
98
98
|
}
|
|
99
99
|
}
|
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
import { TurboModule, TurboModuleRegistry,
|
|
1
|
+
import { TurboModule, TurboModuleRegistry, NativeModule } from 'react-native';
|
|
2
2
|
|
|
3
3
|
export interface Spec extends TurboModule {
|
|
4
4
|
addListener: (eventType: string) => void;
|
|
5
5
|
removeListeners: (count: number) => void;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
let eventEmitter: Spec | null
|
|
8
|
+
let eventEmitter: Spec | null;
|
|
9
|
+
eventEmitter = TurboModuleRegistry.get<Spec>('RNNTurboEventEmitter');
|
|
9
10
|
|
|
10
|
-
try {
|
|
11
|
-
// Running in bridge mode
|
|
12
|
-
eventEmitter = NativeModules.RNNBridgeEventEmitter;
|
|
13
|
-
} catch (e) {
|
|
14
|
-
// Running in bridgeless, access to NativeModules is prohibited
|
|
15
|
-
eventEmitter = TurboModuleRegistry.get<Spec>('RNNTurboEventEmitter');
|
|
16
|
-
}
|
|
17
11
|
|
|
18
12
|
export default eventEmitter as NativeModule;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TurboModule, TurboModuleRegistry
|
|
1
|
+
import { TurboModule, TurboModuleRegistry } from 'react-native';
|
|
2
2
|
import { UnsafeObject, Double } from 'react-native/Libraries/Types/CodegenTypes';
|
|
3
3
|
|
|
4
4
|
export interface Spec extends TurboModule {
|
|
@@ -6,42 +6,44 @@ export interface Spec extends TurboModule {
|
|
|
6
6
|
topBarHeight: Double;
|
|
7
7
|
statusBarHeight: Double;
|
|
8
8
|
bottomTabsHeight: Double;
|
|
9
|
+
backButtonId: string;
|
|
9
10
|
};
|
|
10
11
|
|
|
11
12
|
setRoot(commandId: string, layout: UnsafeObject): Promise<string>;
|
|
13
|
+
|
|
12
14
|
setDefaultOptions(options: UnsafeObject): void;
|
|
15
|
+
|
|
13
16
|
mergeOptions(componentId: string, options: UnsafeObject): void;
|
|
17
|
+
|
|
14
18
|
push(commandId: string, componentId: string, layout: UnsafeObject): Promise<string>;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
|
|
20
|
+
pop(commandId: string, componentId: string, options?: UnsafeObject): Promise<string>;
|
|
21
|
+
|
|
22
|
+
popTo(commandId: string, componentId: string, options?: UnsafeObject): Promise<string>;
|
|
23
|
+
|
|
24
|
+
popToRoot(commandId: string, componentId: string, options?: UnsafeObject): Promise<string>;
|
|
25
|
+
|
|
18
26
|
setStackRoot(
|
|
19
27
|
commandId: string,
|
|
20
28
|
componentId: string,
|
|
21
29
|
layout: Array<UnsafeObject>
|
|
22
30
|
): Promise<string>;
|
|
31
|
+
|
|
23
32
|
showModal(commandId: string, layout: UnsafeObject): Promise<string>;
|
|
24
|
-
|
|
25
|
-
|
|
33
|
+
|
|
34
|
+
dismissModal(commandId: string, componentId: string, options?: UnsafeObject): Promise<string>;
|
|
35
|
+
|
|
36
|
+
dismissAllModals(commandId: string, options?: UnsafeObject): Promise<string>;
|
|
37
|
+
|
|
26
38
|
showOverlay(commandId: string, layout: UnsafeObject): Promise<string>;
|
|
27
|
-
dismissOverlay(commandId: string, componentId: string): Promise<void>;
|
|
28
|
-
dismissAllOverlays(commandId: string): Promise<void>;
|
|
29
|
-
getLaunchArgs(commandId: string): Promise<Array<string>>;
|
|
30
|
-
}
|
|
31
39
|
|
|
32
|
-
|
|
40
|
+
dismissOverlay(commandId: string, componentId: string): Promise<string>;
|
|
33
41
|
|
|
34
|
-
|
|
35
|
-
isTurboModuleEnabled && Platform.OS === 'ios'
|
|
36
|
-
? TurboModuleRegistry.get<Spec>('RNNTurboModule')
|
|
37
|
-
: NativeModules.RNNBridgeModule;
|
|
42
|
+
dismissAllOverlays(commandId: string): Promise<string>;
|
|
38
43
|
|
|
39
|
-
|
|
44
|
+
getLaunchArgs(commandId: string): Promise<Array<string>>;
|
|
45
|
+
}
|
|
40
46
|
|
|
41
|
-
|
|
42
|
-
if (!isNewArchWithBridgeless)
|
|
43
|
-
throw new Error('Allowed only in New Architecture with Bridgeless!');
|
|
44
|
-
};
|
|
47
|
+
const commands = TurboModuleRegistry.get<Spec>('RNNTurboModule')!;
|
|
45
48
|
|
|
46
|
-
export const isRNNTurboModuleAvailable = isNewArchWithBridgeless;
|
|
47
49
|
export default commands;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-navigation",
|
|
3
|
-
"version": "8.1.0-
|
|
3
|
+
"version": "8.1.0-rc01-snapshot.1685",
|
|
4
4
|
"description": "React Native Navigation - truly native navigation for iOS and Android",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"nativePackage": true,
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
"bin": {
|
|
20
20
|
"rnn-link": "./autolink/postlink/run.js"
|
|
21
21
|
},
|
|
22
|
-
"main": "lib/src/index.
|
|
22
|
+
"main": "lib/dist/src/index.js",
|
|
23
|
+
"typings": "lib/dist/src/index.d.ts",
|
|
23
24
|
"scripts": {
|
|
24
25
|
"build": "node ./scripts/build",
|
|
25
26
|
"watch": "node ./scripts/watch",
|
|
@@ -80,41 +81,39 @@
|
|
|
80
81
|
"@react-native-community/cli-platform-android": "15.0.1",
|
|
81
82
|
"@react-native-community/cli-platform-ios": "15.0.1",
|
|
82
83
|
"@react-native-community/datetimepicker": "^8.2.0",
|
|
83
|
-
"@react-native-community/eslint-config": "3.2.0",
|
|
84
84
|
"@react-native-community/netinfo": "^11.4.1",
|
|
85
|
-
"@react-native/babel-preset": "0.
|
|
86
|
-
"@react-native/eslint-config": "0.
|
|
87
|
-
"@react-native/metro-config": "0.
|
|
88
|
-
"@react-native/typescript-config": "0.
|
|
85
|
+
"@react-native/babel-preset": "0.77.2",
|
|
86
|
+
"@react-native/eslint-config": "0.77.2",
|
|
87
|
+
"@react-native/metro-config": "0.77.2",
|
|
88
|
+
"@react-native/typescript-config": "0.77.2",
|
|
89
89
|
"@testing-library/jest-native": "^5.4.2",
|
|
90
90
|
"@testing-library/react-native": "^13.0.1",
|
|
91
91
|
"@types/hoist-non-react-statics": "^3.3.6",
|
|
92
92
|
"@types/jasmine": "3.5.10",
|
|
93
|
-
"@types/jest": "
|
|
93
|
+
"@types/jest": "^29.5.13",
|
|
94
94
|
"@types/lodash": "^4.14.149",
|
|
95
95
|
"@types/react": "^18.2.6",
|
|
96
96
|
"@types/react-test-renderer": "^18.0.0",
|
|
97
97
|
"@typescript-eslint/eslint-plugin": "8.21.0",
|
|
98
98
|
"@typescript-eslint/parser": "8.21.0",
|
|
99
|
-
"babel-jest": "^27.0.0",
|
|
100
99
|
"clang-format": "^1.4.0",
|
|
101
|
-
"detox": "20.
|
|
100
|
+
"detox": "20.34.4",
|
|
102
101
|
"detox-testing-library-rnn-adapter": "^2.0.3",
|
|
103
102
|
"eslint": "^8.19.0",
|
|
104
103
|
"eslint-config-prettier": "6.11.0",
|
|
105
104
|
"eslint-formatter-codeframe": "^7.32.1",
|
|
106
105
|
"eslint-plugin-prettier": "3.1.4",
|
|
106
|
+
"eslint-plugin-jest": "^28.11.0",
|
|
107
107
|
"github-release-notes": "https://github.com/yogevbd/github-release-notes/tarball/e601b3dba72dcd6cba323c1286ea6dd0c0110b58",
|
|
108
108
|
"husky": "4.2.5",
|
|
109
109
|
"identity-obj-proxy": "3.0.0",
|
|
110
|
-
"jest": "^
|
|
110
|
+
"jest": "^29.6.3",
|
|
111
111
|
"lint-staged": "10.2.11",
|
|
112
|
-
"metro-react-native-babel-preset": "^0.76.2",
|
|
113
112
|
"pixelmatch": "^5.2.1",
|
|
114
113
|
"pngjs": "^6.0.0",
|
|
115
114
|
"prettier": "2.8.8",
|
|
116
115
|
"react": "18.3.1",
|
|
117
|
-
"react-native": "0.
|
|
116
|
+
"react-native": "0.77.2",
|
|
118
117
|
"react-native-fast-image": "^8.6.3",
|
|
119
118
|
"react-native-gesture-handler": "^2.22.1",
|
|
120
119
|
"react-native-reanimated": "3.16.7",
|
|
@@ -123,6 +122,7 @@
|
|
|
123
122
|
"redux": "3.x.x",
|
|
124
123
|
"remx": "3.x.x",
|
|
125
124
|
"semver": "5.x.x",
|
|
125
|
+
"setimmediate": "^1.0.5",
|
|
126
126
|
"shell-utils": "1.x.x",
|
|
127
127
|
"ts-mockito": "^2.3.1",
|
|
128
128
|
"typedoc": "0.x.x",
|
|
@@ -257,9 +257,6 @@
|
|
|
257
257
|
"codegenConfig": {
|
|
258
258
|
"name": "rnnavigation",
|
|
259
259
|
"type": "all",
|
|
260
|
-
"jsSrcsDir": "./lib/src"
|
|
261
|
-
"android": {
|
|
262
|
-
"javaPackageName": "wix.rnn.specs"
|
|
263
|
-
}
|
|
260
|
+
"jsSrcsDir": "./lib/src"
|
|
264
261
|
}
|
|
265
262
|
}
|
package/react-native.config.js
CHANGED
|
@@ -5,7 +5,7 @@ module.exports = {
|
|
|
5
5
|
android: {
|
|
6
6
|
sourceDir: './lib/android/app/',
|
|
7
7
|
packageImportPath: 'import com.reactnativenavigation.react.NavigationPackage;',
|
|
8
|
-
packageInstance: 'new NavigationPackage(
|
|
8
|
+
packageInstance: 'new NavigationPackage()',
|
|
9
9
|
},
|
|
10
10
|
},
|
|
11
11
|
},
|
package/lib/android/app/src/main/java/com/reactnativenavigation/react/DevPermissionRequest.java
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.react;
|
|
2
|
-
|
|
3
|
-
import android.annotation.TargetApi;
|
|
4
|
-
import android.app.Activity;
|
|
5
|
-
import android.content.Intent;
|
|
6
|
-
import android.os.Build;
|
|
7
|
-
import android.provider.Settings;
|
|
8
|
-
import android.util.Log;
|
|
9
|
-
import android.widget.Toast;
|
|
10
|
-
|
|
11
|
-
import com.facebook.react.common.ReactConstants;
|
|
12
|
-
import com.reactnativenavigation.BuildConfig;
|
|
13
|
-
|
|
14
|
-
public class DevPermissionRequest {
|
|
15
|
-
|
|
16
|
-
private final boolean isDebug;
|
|
17
|
-
|
|
18
|
-
public DevPermissionRequest(boolean isDebug) {
|
|
19
|
-
this.isDebug = isDebug;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
public boolean shouldAskPermission(Activity activity) {
|
|
23
|
-
return isDebug &&
|
|
24
|
-
Build.VERSION.SDK_INT >= 23 &&
|
|
25
|
-
BuildConfig.REACT_NATVE_VERSION_MINOR <= 51 &&
|
|
26
|
-
!Settings.canDrawOverlays(activity);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@TargetApi(23)
|
|
30
|
-
public void askPermission(Activity activity) {
|
|
31
|
-
if (shouldAskPermission(activity)) {
|
|
32
|
-
Intent serviceIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
|
|
33
|
-
serviceIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
34
|
-
activity.startActivity(serviceIntent);
|
|
35
|
-
String msg = "Overlay permissions needs to be granted in order for react native apps to run in dev mode";
|
|
36
|
-
Log.w(ReactConstants.TAG, "======================================\n\n");
|
|
37
|
-
Log.w(ReactConstants.TAG, msg);
|
|
38
|
-
Log.w(ReactConstants.TAG, "\n\n======================================");
|
|
39
|
-
Toast.makeText(activity, msg, Toast.LENGTH_LONG).show();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.viewcontrollers.stack.statusbar
|
|
2
|
-
|
|
3
|
-
import android.animation.Animator
|
|
4
|
-
import com.reactnativenavigation.options.Options
|
|
5
|
-
|
|
6
|
-
interface StatusBarController {
|
|
7
|
-
fun getStatusBarPushAnimation(appearingOptions: Options): Animator?
|
|
8
|
-
fun getStatusBarPopAnimation(appearingOptions: Options, disappearingOptions: Options): Animator?
|
|
9
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.viewcontrollers.stack.statusbar
|
|
2
|
-
|
|
3
|
-
import android.animation.Animator
|
|
4
|
-
import com.reactnativenavigation.options.Options
|
|
5
|
-
|
|
6
|
-
interface StatusBarPresenter {
|
|
7
|
-
fun getStatusBarPushAnimation(appearingOptions: Options): Animator?
|
|
8
|
-
fun getStatusBarPopAnimation(appearingOptions: Options, disappearingOptions: Options): Animator?
|
|
9
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.options.parsers;
|
|
2
|
-
|
|
3
|
-
import android.content.Context;
|
|
4
|
-
|
|
5
|
-
import com.reactnativenavigation.options.params.Colour;
|
|
6
|
-
import com.reactnativenavigation.options.params.DontApplyColour;
|
|
7
|
-
import com.reactnativenavigation.options.params.NullColor;
|
|
8
|
-
|
|
9
|
-
import org.json.JSONObject;
|
|
10
|
-
|
|
11
|
-
public class ColorParser {
|
|
12
|
-
public static Colour parse(Context context, JSONObject json, String color) {
|
|
13
|
-
if (json.has(color)) {
|
|
14
|
-
return json.opt(color) instanceof Integer ? new Colour(json.optInt(color)) : new DontApplyColour();
|
|
15
|
-
}
|
|
16
|
-
return new NullColor();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.react;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
|
|
4
|
-
|
|
5
|
-
import javax.annotation.Nullable;
|
|
6
|
-
|
|
7
|
-
public class DevBundleDownloadListenerAdapter implements DevBundleDownloadListener {
|
|
8
|
-
@Override
|
|
9
|
-
public void onSuccess() {
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
@Override
|
|
14
|
-
public void onProgress(@Nullable String status, @Nullable Integer done, @Nullable Integer total) {
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@Override
|
|
19
|
-
public void onFailure(Exception cause) {
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.react;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
|
|
4
|
-
|
|
5
|
-
import javax.annotation.Nullable;
|
|
6
|
-
|
|
7
|
-
public class JsDevReloadHandlerFacade implements DevBundleDownloadListener, NavigationDevBundleDownloadListener {
|
|
8
|
-
@Override
|
|
9
|
-
public void onSuccess() {
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
@Override
|
|
14
|
-
public void onProgress(@Nullable String status, @Nullable Integer done, @Nullable Integer total) {
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@Override
|
|
19
|
-
public void onFailure(Exception cause) {
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.react;
|
|
2
|
-
|
|
3
|
-
import com.facebook.infer.annotation.Assertions;
|
|
4
|
-
import com.facebook.react.ReactInstanceManager;
|
|
5
|
-
import com.facebook.react.ReactInstanceManagerBuilder;
|
|
6
|
-
import com.facebook.react.ReactNativeHost;
|
|
7
|
-
import com.facebook.react.ReactPackage;
|
|
8
|
-
import com.facebook.react.common.LifecycleState;
|
|
9
|
-
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
|
|
10
|
-
import com.reactnativenavigation.NavigationApplication;
|
|
11
|
-
import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
|
|
12
|
-
|
|
13
|
-
import androidx.annotation.NonNull;
|
|
14
|
-
import androidx.annotation.Nullable;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Default implementation of {@link ReactNativeHost} that includes {@link NavigationPackage}
|
|
18
|
-
* and user-defined additional packages.
|
|
19
|
-
*/
|
|
20
|
-
public abstract class NavigationReactNativeHost extends ReactNativeHost implements BundleDownloadListenerProvider {
|
|
21
|
-
|
|
22
|
-
private @Nullable NavigationDevBundleDownloadListener bundleListener;
|
|
23
|
-
private final DevBundleDownloadListener bundleListenerMediator = new DevBundleDownloadListenerAdapter() {
|
|
24
|
-
@Override
|
|
25
|
-
public void onSuccess() {
|
|
26
|
-
if (bundleListener != null) {
|
|
27
|
-
bundleListener.onSuccess();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
@SuppressWarnings("WeakerAccess")
|
|
33
|
-
public NavigationReactNativeHost(NavigationApplication application) {
|
|
34
|
-
super(application);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
@Override
|
|
38
|
-
public void setBundleLoaderListener(NavigationDevBundleDownloadListener listener) {
|
|
39
|
-
bundleListener = listener;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
protected ReactInstanceManager createReactInstanceManager() {
|
|
43
|
-
ReactInstanceManagerBuilder builder = ReactInstanceManager.builder()
|
|
44
|
-
.setApplication(getApplication())
|
|
45
|
-
.setJSMainModulePath(getJSMainModuleName())
|
|
46
|
-
.setUseDeveloperSupport(getUseDeveloperSupport())
|
|
47
|
-
.setRedBoxHandler(getRedBoxHandler())
|
|
48
|
-
.setJavaScriptExecutorFactory(new HermesExecutorFactory())
|
|
49
|
-
.setUIImplementationProvider(getUIImplementationProvider())
|
|
50
|
-
.setInitialLifecycleState(LifecycleState.BEFORE_CREATE)
|
|
51
|
-
.setDevBundleDownloadListener(getDevBundleDownloadListener());
|
|
52
|
-
|
|
53
|
-
for (ReactPackage reactPackage : getPackages()) {
|
|
54
|
-
builder.addPackage(reactPackage);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
String jsBundleFile = getJSBundleFile();
|
|
58
|
-
if (jsBundleFile != null) {
|
|
59
|
-
builder.setJSBundleFile(jsBundleFile);
|
|
60
|
-
} else {
|
|
61
|
-
builder.setBundleAssetName(Assertions.assertNotNull(getBundleAssetName()));
|
|
62
|
-
}
|
|
63
|
-
return builder.build();
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
@SuppressWarnings("WeakerAccess")
|
|
67
|
-
@NonNull
|
|
68
|
-
protected DevBundleDownloadListener getDevBundleDownloadListener() {
|
|
69
|
-
return bundleListenerMediator;
|
|
70
|
-
}
|
|
71
|
-
}
|
package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/ReactGateway.java
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.react;
|
|
2
|
-
|
|
3
|
-
import android.app.Activity;
|
|
4
|
-
import android.content.Intent;
|
|
5
|
-
import android.content.res.Configuration;
|
|
6
|
-
|
|
7
|
-
import com.facebook.react.ReactNativeHost;
|
|
8
|
-
import com.reactnativenavigation.NavigationActivity;
|
|
9
|
-
|
|
10
|
-
import androidx.annotation.NonNull;
|
|
11
|
-
|
|
12
|
-
public class ReactGateway {
|
|
13
|
-
|
|
14
|
-
private final ReactNativeHost host;
|
|
15
|
-
private final NavigationReactInitializer initializer;
|
|
16
|
-
private final JsDevReloadHandler jsDevReloadHandler;
|
|
17
|
-
|
|
18
|
-
public ReactGateway(ReactNativeHost host) {
|
|
19
|
-
this.host = host;
|
|
20
|
-
initializer = new NavigationReactInitializer(host.getReactInstanceManager(), host.getUseDeveloperSupport());
|
|
21
|
-
jsDevReloadHandler = new JsDevReloadHandler(host.getReactInstanceManager().getDevSupportManager());
|
|
22
|
-
if (host instanceof BundleDownloadListenerProvider) {
|
|
23
|
-
((BundleDownloadListenerProvider) host).setBundleLoaderListener(jsDevReloadHandler);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public void onActivityCreated(NavigationActivity activity) {
|
|
28
|
-
initializer.onActivityCreated();
|
|
29
|
-
jsDevReloadHandler.setReloadListener(activity);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public void onActivityResumed(NavigationActivity activity) {
|
|
33
|
-
initializer.onActivityResumed(activity);
|
|
34
|
-
jsDevReloadHandler.onActivityResumed(activity);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
public boolean onNewIntent(Intent intent) {
|
|
38
|
-
if (host.hasInstance()) {
|
|
39
|
-
host.getReactInstanceManager().onNewIntent(intent);
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
public void onConfigurationChanged(NavigationActivity activity, @NonNull Configuration newConfig) {
|
|
46
|
-
// noop, needs rn >= 0.62
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public void onActivityPaused(NavigationActivity activity) {
|
|
50
|
-
initializer.onActivityPaused(activity);
|
|
51
|
-
jsDevReloadHandler.onActivityPaused(activity);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
public void onActivityDestroyed(NavigationActivity activity) {
|
|
55
|
-
jsDevReloadHandler.removeReloadListener(activity);
|
|
56
|
-
initializer.onActivityDestroyed(activity);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
public boolean onKeyUp(Activity activity, int keyCode) {
|
|
60
|
-
return jsDevReloadHandler.onKeyUp(activity, keyCode);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
public void onBackPressed() {
|
|
64
|
-
host.getReactInstanceManager().onBackPressed();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) {
|
|
68
|
-
host.getReactInstanceManager().onActivityResult(activity, requestCode, resultCode, data);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.react;
|
|
2
|
-
|
|
3
|
-
import androidx.annotation.Nullable;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
6
|
-
import com.facebook.react.bridge.ReadableArray;
|
|
7
|
-
import com.facebook.react.bridge.ReadableMap;
|
|
8
|
-
import com.facebook.react.uimanager.MeasureSpecProvider;
|
|
9
|
-
import com.facebook.react.uimanager.SizeMonitoringFrameLayout;
|
|
10
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
11
|
-
import com.facebook.react.uimanager.UIImplementation;
|
|
12
|
-
import com.facebook.react.uimanager.UIImplementationProvider;
|
|
13
|
-
import com.facebook.react.uimanager.UIManagerModule;
|
|
14
|
-
import com.facebook.react.uimanager.ViewManager;
|
|
15
|
-
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
16
|
-
|
|
17
|
-
import java.util.List;
|
|
18
|
-
|
|
19
|
-
@SuppressWarnings("WeakerAccess")
|
|
20
|
-
public class SyncUiImplementation extends UIImplementation {
|
|
21
|
-
private static final Object lock = new Object();
|
|
22
|
-
|
|
23
|
-
public static class Provider extends UIImplementationProvider {
|
|
24
|
-
@Override
|
|
25
|
-
public UIImplementation createUIImplementation(ReactApplicationContext reactContext, List<ViewManager> viewManagerList, EventDispatcher eventDispatcher, int minTimeLeftInFrameForNonBatchedOperationMs) {
|
|
26
|
-
return new SyncUiImplementation(reactContext, viewManagerList, eventDispatcher, minTimeLeftInFrameForNonBatchedOperationMs);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@Override
|
|
30
|
-
public UIImplementation createUIImplementation(ReactApplicationContext reactContext, UIManagerModule.ViewManagerResolver viewManagerResolver, EventDispatcher eventDispatcher, int minTimeLeftInFrameForNonBatchedOperationMs) {
|
|
31
|
-
return new SyncUiImplementation(reactContext, viewManagerResolver, eventDispatcher, minTimeLeftInFrameForNonBatchedOperationMs);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
public SyncUiImplementation(ReactApplicationContext reactContext, List<ViewManager> viewManagerList, EventDispatcher eventDispatcher, int minTimeLeftInFrameForNonBatchedOperationMs) {
|
|
36
|
-
super(reactContext, viewManagerList, eventDispatcher, minTimeLeftInFrameForNonBatchedOperationMs);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
public SyncUiImplementation(ReactApplicationContext reactContext, UIManagerModule.ViewManagerResolver viewManagerResolver, EventDispatcher eventDispatcher, int minTimeLeftInFrameForNonBatchedOperationMs) {
|
|
40
|
-
super(reactContext, viewManagerResolver, eventDispatcher, minTimeLeftInFrameForNonBatchedOperationMs);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
@Override
|
|
44
|
-
public void manageChildren(
|
|
45
|
-
int viewTag,
|
|
46
|
-
@Nullable ReadableArray moveFrom,
|
|
47
|
-
@Nullable ReadableArray moveTo,
|
|
48
|
-
@Nullable ReadableArray addChildTags,
|
|
49
|
-
@Nullable ReadableArray addAtIndices,
|
|
50
|
-
@Nullable ReadableArray removeFrom) {
|
|
51
|
-
synchronized (lock) {
|
|
52
|
-
super.manageChildren(viewTag, moveFrom, moveTo, addChildTags, addAtIndices, removeFrom);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
@Override
|
|
57
|
-
public void setChildren(int viewTag, ReadableArray childrenTags) {
|
|
58
|
-
synchronized (lock) {
|
|
59
|
-
super.setChildren(viewTag, childrenTags);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@Override
|
|
64
|
-
public void createView(int tag, String className, int rootViewTag, ReadableMap props) {
|
|
65
|
-
synchronized (lock) {
|
|
66
|
-
super.createView(tag, className, rootViewTag, props);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
@Override
|
|
71
|
-
public void removeRootShadowNode(int rootViewTag) {
|
|
72
|
-
synchronized (lock) {
|
|
73
|
-
super.removeRootShadowNode(rootViewTag);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
@Override
|
|
78
|
-
public <T extends SizeMonitoringFrameLayout & MeasureSpecProvider> void registerRootView(T rootView, int tag, ThemedReactContext context) {
|
|
79
|
-
synchronized (lock) {
|
|
80
|
-
super.registerRootView(rootView, tag, context);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|