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.
Files changed (185) hide show
  1. package/autolink/postlink/__snapshots__/appDelegateLinker.test.js.snap +12 -12
  2. package/index.e2e.js +2 -1
  3. package/lib/Mock/Components/ComponentScreen.tsx +2 -1
  4. package/lib/Mock/Components/LayoutComponent.tsx +9 -0
  5. package/lib/Mock/Components/SideMenu.tsx +27 -0
  6. package/lib/Mock/Layouts/BottomTabsNode.ts +4 -2
  7. package/lib/Mock/Layouts/LayoutNodeFactory.ts +14 -1
  8. package/lib/Mock/Layouts/ParentNode.ts +4 -0
  9. package/lib/Mock/Layouts/SideMenu.ts +87 -0
  10. package/lib/Mock/Stores/LayoutStore.ts +42 -10
  11. package/lib/Mock/actions/layoutActions.ts +11 -0
  12. package/lib/Mock/mocks/NativeCommandsSender.tsx +1 -0
  13. package/lib/android/app/build.gradle +22 -125
  14. package/lib/android/app/src/main/java/com/reactnativenavigation/FeatureToggles.kt +4 -2
  15. package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationActivity.java +2 -2
  16. package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationApplication.java +1 -1
  17. package/lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutFactory.java +4 -4
  18. package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationPackage.kt +27 -13
  19. package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationReactInitializer.java +2 -14
  20. package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationTurboModule.kt +291 -0
  21. package/lib/android/app/src/{reactNative71 → main}/java/com/reactnativenavigation/react/ReactGateway.java +23 -23
  22. package/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactView.java +6 -6
  23. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ColorUtils.java +11 -0
  24. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/MotionEvent.kt +4 -9
  25. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/SystemUiUtils.kt +12 -17
  26. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenter.java +0 -1
  27. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +20 -13
  28. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentPresenter.java +18 -0
  29. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +5 -17
  30. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java +28 -13
  31. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenter.java +13 -6
  32. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/TopBarController.kt +35 -2
  33. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/statusbar/StatusBarPresenter.kt +212 -0
  34. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +10 -178
  35. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/StatusBarColorAnimator.kt +28 -0
  36. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java +34 -7
  37. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerVisibilityInfo.kt +5 -0
  38. package/lib/android/build.gradle +27 -15
  39. package/lib/dist/Mock/Components/ComponentScreen.js +2 -1
  40. package/lib/dist/Mock/Components/LayoutComponent.js +9 -0
  41. package/lib/dist/Mock/Components/SideMenu.d.ts +58 -0
  42. package/lib/dist/Mock/Components/SideMenu.js +25 -0
  43. package/lib/dist/Mock/Layouts/BottomTabsNode.d.ts +1 -1
  44. package/lib/dist/Mock/Layouts/BottomTabsNode.js +3 -2
  45. package/lib/dist/Mock/Layouts/LayoutNodeFactory.d.ts +2 -1
  46. package/lib/dist/Mock/Layouts/LayoutNodeFactory.js +10 -1
  47. package/lib/dist/Mock/Layouts/ParentNode.d.ts +1 -0
  48. package/lib/dist/Mock/Layouts/ParentNode.js +3 -0
  49. package/lib/dist/Mock/Layouts/SideMenu.d.ts +31 -0
  50. package/lib/dist/Mock/Layouts/SideMenu.js +80 -0
  51. package/lib/dist/Mock/Stores/LayoutStore.js +38 -9
  52. package/lib/dist/Mock/actions/layoutActions.d.ts +3 -0
  53. package/lib/dist/Mock/actions/layoutActions.js +11 -1
  54. package/lib/dist/Mock/mocks/NativeCommandsSender.js +1 -0
  55. package/lib/dist/src/adapters/NativeCommandsSender.d.ts +39 -4
  56. package/lib/dist/src/adapters/NativeCommandsSender.js +2 -2
  57. package/lib/dist/src/adapters/NativeRNNTurboEventEmitter.js +2 -9
  58. package/lib/dist/src/adapters/NativeRNNTurboModule.d.ts +9 -10
  59. package/lib/dist/src/adapters/NativeRNNTurboModule.js +1 -12
  60. package/lib/dist/src/commands/Commands.d.ts +13 -13
  61. package/lib/ios/AnimatedTextView.mm +1 -0
  62. package/lib/ios/Constants.mm +7 -1
  63. package/lib/ios/RNNAppDelegate.mm +3 -1
  64. package/lib/ios/RNNCommandsHandler.mm +1 -0
  65. package/lib/ios/RNNCustomTitleView.h +1 -0
  66. package/lib/ios/RNNCustomTitleView.mm +8 -1
  67. package/lib/ios/RNNEventEmitter.mm +3 -0
  68. package/lib/ios/RNNReactButtonView.mm +1 -1
  69. package/lib/ios/RNNReactView.h +3 -1
  70. package/lib/ios/RNNReactView.mm +45 -20
  71. package/lib/ios/TopBarTitlePresenter.mm +2 -0
  72. package/lib/ios/TurboModules/RNNTurboEventEmitter.mm +7 -0
  73. package/lib/ios/UINavigationController+RNNCommands.mm +4 -0
  74. package/lib/src/adapters/NativeCommandsSender.ts +7 -7
  75. package/lib/src/adapters/NativeRNNTurboEventEmitter.ts +3 -9
  76. package/lib/src/adapters/NativeRNNTurboModule.ts +23 -21
  77. package/package.json +14 -17
  78. package/react-native.config.js +1 -1
  79. package/lib/android/app/src/main/java/com/reactnativenavigation/react/DevPermissionRequest.java +0 -42
  80. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/statusbar/StatusBarController.kt +0 -9
  81. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/statusbar/StatusBarPresenter.kt +0 -9
  82. package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
  83. package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -22
  84. package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -22
  85. package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -71
  86. package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
  87. package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/SyncUiImplementation.java +0 -83
  88. package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
  89. package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
  90. package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
  91. package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
  92. package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
  93. package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -22
  94. package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -22
  95. package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -71
  96. package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
  97. package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -22
  98. package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/SyncUiImplementation.java +0 -83
  99. package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
  100. package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
  101. package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
  102. package/lib/android/app/src/reactNative55/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
  103. package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
  104. package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -28
  105. package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -28
  106. package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -71
  107. package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
  108. package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -25
  109. package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/SyncUiImplementation.java +0 -83
  110. package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
  111. package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
  112. package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
  113. package/lib/android/app/src/reactNative56/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
  114. package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
  115. package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -28
  116. package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -28
  117. package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -70
  118. package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
  119. package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -25
  120. package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/SyncUiImplementation.java +0 -70
  121. package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
  122. package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
  123. package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
  124. package/lib/android/app/src/reactNative57/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
  125. package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
  126. package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -28
  127. package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -28
  128. package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -70
  129. package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
  130. package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -25
  131. package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/SyncUiImplementation.java +0 -83
  132. package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
  133. package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
  134. package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
  135. package/lib/android/app/src/reactNative57_5/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
  136. package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
  137. package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -28
  138. package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -28
  139. package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -67
  140. package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/ReactGateway.java +0 -70
  141. package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -25
  142. package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
  143. package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
  144. package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
  145. package/lib/android/app/src/reactNative60/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
  146. package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/options/parsers/ColorParser.java +0 -18
  147. package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -67
  148. package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/react/ReactGateway.java +0 -72
  149. package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -22
  150. package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
  151. package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
  152. package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -27
  153. package/lib/android/app/src/reactNative62/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
  154. package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -22
  155. package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -22
  156. package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -66
  157. package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/ReactGateway.java +0 -72
  158. package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -22
  159. package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -81
  160. package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
  161. package/lib/android/app/src/reactNative63/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
  162. package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/options/parsers/ColorParser.kt +0 -38
  163. package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -22
  164. package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -22
  165. package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -66
  166. package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/ReactGateway.java +0 -72
  167. package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -22
  168. package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -87
  169. package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -42
  170. package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -12
  171. package/lib/android/app/src/reactNative68/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -32
  172. package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/options/parsers/ColorParser.kt +0 -38
  173. package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -22
  174. package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -22
  175. package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -22
  176. package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -12
  177. /package/lib/android/app/src/{reactNative63 → main}/java/com/reactnativenavigation/options/parsers/ColorParser.kt +0 -0
  178. /package/lib/android/app/src/{reactNative62 → main}/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +0 -0
  179. /package/lib/android/app/src/{reactNative62 → main}/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +0 -0
  180. /package/lib/android/app/src/{reactNative71 → main}/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +0 -0
  181. /package/lib/android/app/src/{reactNative51 → main}/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +0 -0
  182. /package/lib/android/app/src/{reactNative71 → main}/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +0 -0
  183. /package/lib/android/app/src/{reactNative71 → main}/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegate.kt +0 -0
  184. /package/lib/android/app/src/{reactNative63 → main}/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxHelper.java +0 -0
  185. /package/lib/android/app/src/{reactNative71 → main}/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +0 -0
@@ -53,7 +53,7 @@ public abstract class NavigationApplication extends Application implements React
53
53
  * @return a singleton {@link ReactGateway}
54
54
  */
55
55
  protected ReactGateway createReactGateway() {
56
- return new ReactGateway(getReactHost(), getReactNativeHost().getUseDeveloperSupport());
56
+ return new ReactGateway(getReactHost());
57
57
  }
58
58
 
59
59
  public ReactGateway getReactGateway() {
@@ -51,8 +51,8 @@ import static com.reactnativenavigation.utils.CollectionUtils.*;
51
51
  import org.json.JSONObject;
52
52
 
53
53
  public class LayoutFactory {
54
- private final ReactHost reactHost;
55
- private Activity activity;
54
+ private final ReactHost reactHost;
55
+ private Activity activity;
56
56
  private ChildControllersRegistry childRegistry;
57
57
  private EventEmitter eventEmitter;
58
58
  private Map<String, ExternalComponentCreator> externalComponentCreators;
@@ -60,8 +60,8 @@ public class LayoutFactory {
60
60
  private TypefaceLoader typefaceManager;
61
61
 
62
62
  public LayoutFactory(ReactHost reactHost) {
63
- this.reactHost = reactHost;
64
- }
63
+ this.reactHost = reactHost;
64
+ }
65
65
 
66
66
  public void setDefaultOptions(@NonNull Options defaultOptions) {
67
67
  Assertions.assertNotNull(defaultOptions);
@@ -1,27 +1,41 @@
1
1
  package com.reactnativenavigation.react
2
2
 
3
+ import com.facebook.react.BaseReactPackage
3
4
  import com.facebook.react.ReactApplication
4
- import com.facebook.react.ReactHost
5
- import com.facebook.react.ReactPackage
6
5
  import com.facebook.react.bridge.NativeModule
7
6
  import com.facebook.react.bridge.ReactApplicationContext
7
+ import com.facebook.react.module.model.ReactModuleInfo
8
+ import com.facebook.react.module.model.ReactModuleInfoProvider
8
9
  import com.facebook.react.uimanager.ViewManager
9
10
  import com.reactnativenavigation.options.LayoutFactory
10
11
  import com.reactnativenavigation.react.modal.ModalViewManager
11
12
 
12
- class NavigationPackage() : ReactPackage {
13
- override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
14
- val reactApp = reactContext.applicationContext as ReactApplication
15
- return listOf(
16
- NavigationModule(
17
- reactContext,
18
- LayoutFactory(reactApp.reactHost)
19
- )
20
- )
13
+ class NavigationPackage() : BaseReactPackage() {
14
+
15
+ override fun getModule(name: String, context: ReactApplicationContext): NativeModule? {
16
+ val reactApp = context.applicationContext as ReactApplication
17
+ return when (name) {
18
+ NavigationTurboModule.NAME -> {
19
+ NavigationTurboModule(context, LayoutFactory(reactApp.reactHost))
20
+ }
21
+ else -> {
22
+ null
23
+ }
24
+ }
21
25
  }
22
26
 
23
- override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
27
+ override fun getReactModuleInfoProvider() = ReactModuleInfoProvider {
28
+ mapOf(NavigationTurboModule.NAME to ReactModuleInfo(
29
+ name = NavigationTurboModule.NAME,
30
+ className = NavigationTurboModule.NAME,
31
+ canOverrideExistingModule = false,
32
+ needsEagerInit = false,
33
+ isCxxModule = false,
34
+ isTurboModule = true
35
+ ))
36
+ }
24
37
 
25
- return listOf(ModalViewManager(reactContext))
38
+ override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
39
+ return mutableListOf(ModalViewManager(reactContext))
26
40
  }
27
41
  }
@@ -11,13 +11,11 @@ import androidx.annotation.NonNull;
11
11
  public class NavigationReactInitializer implements ReactInstanceManager.ReactInstanceEventListener {
12
12
 
13
13
  private final ReactHost reactHost;
14
- private final DevPermissionRequest devPermissionRequest;
15
14
  private boolean waitingForAppLaunchEvent = true;
16
15
  private boolean isActivityReadyForUi = false;
17
16
 
18
- NavigationReactInitializer(ReactHost reactHost, boolean isDebug) {
17
+ NavigationReactInitializer(ReactHost reactHost) {
19
18
  this.reactHost = reactHost;
20
- this.devPermissionRequest = new DevPermissionRequest(isDebug);
21
19
  }
22
20
 
23
21
  void onActivityCreated() {
@@ -26,33 +24,23 @@ public class NavigationReactInitializer implements ReactInstanceManager.ReactIns
26
24
  }
27
25
 
28
26
  void onActivityResumed(NavigationActivity activity) {
29
- if (devPermissionRequest.shouldAskPermission(activity)) {
30
- devPermissionRequest.askPermission(activity);
31
- } else {
27
+
32
28
  reactHost.onHostResume(activity, activity);
33
29
  isActivityReadyForUi = true;
34
30
  prepareReactApp();
35
- }
36
31
  }
37
32
 
38
33
  void onActivityPaused(NavigationActivity activity) {
39
34
  isActivityReadyForUi = false;
40
- // TODO: Check it needed
41
- //if (reactHost.hasStartedCreatingInitialContext()) {
42
35
  reactHost.onHostPause(activity);
43
- //}
44
36
  }
45
37
 
46
38
  void onActivityDestroyed(NavigationActivity activity) {
47
39
  reactHost.removeReactInstanceEventListener(this);
48
- //if (reactHost.gehasStartedCreatingInitialContext()) {
49
40
  reactHost.onHostDestroy(activity);
50
- //}
51
41
  }
52
42
 
53
43
  private void prepareReactApp() {
54
- // TODO: Check if needed
55
- //if (shouldCreateContext()) {
56
44
  reactHost.start();
57
45
  if (waitingForAppLaunchEvent) {
58
46
  if (reactHost.getCurrentReactContext() != null) {
@@ -0,0 +1,291 @@
1
+ package com.reactnativenavigation.react
2
+
3
+ import android.util.Log
4
+ import com.facebook.react.bridge.Promise
5
+ import com.facebook.react.bridge.ReactApplicationContext
6
+ import com.facebook.react.bridge.ReadableArray
7
+ import com.facebook.react.bridge.ReadableMap
8
+ import com.reactnativenavigation.NavigationActivity
9
+ import com.reactnativenavigation.NavigationApplication
10
+ import com.reactnativenavigation.options.LayoutFactory
11
+ import com.reactnativenavigation.options.Options
12
+ import com.reactnativenavigation.options.parsers.JSONParser
13
+ import com.reactnativenavigation.options.parsers.LayoutNodeParser
14
+ import com.reactnativenavigation.options.parsers.TypefaceLoader
15
+ import com.reactnativenavigation.react.events.EventEmitter
16
+ import com.reactnativenavigation.utils.LaunchArgsParser
17
+ import com.reactnativenavigation.utils.Now
18
+ import com.reactnativenavigation.utils.SystemUiUtils.getStatusBarHeight
19
+ import com.reactnativenavigation.utils.UiThread
20
+ import com.reactnativenavigation.utils.UiUtils
21
+ import com.reactnativenavigation.viewcontrollers.navigator.Navigator
22
+ import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController
23
+ import java.util.Objects
24
+
25
+ class NavigationTurboModule(
26
+ reactContext: ReactApplicationContext,
27
+ private val layoutFactory: LayoutFactory
28
+ ) : NativeRNNTurboModuleSpec(reactContext) {
29
+
30
+ private val now = Now()
31
+ private val jsonParser: JSONParser = JSONParser()
32
+ private lateinit var eventEmitter: EventEmitter
33
+
34
+ init {
35
+ reactContext.addLifecycleEventListener(object : LifecycleEventListenerAdapter() {
36
+ override fun onHostPause() {
37
+ super.onHostPause()
38
+ UiUtils.runOnMainThread {
39
+ navigator().onHostPause()
40
+ }
41
+ }
42
+
43
+ override fun onHostResume() {
44
+ eventEmitter = EventEmitter(reactContext)
45
+ navigator().setEventEmitter(eventEmitter)
46
+ layoutFactory.init(
47
+ activity(),
48
+ eventEmitter,
49
+ navigator().getChildRegistry(),
50
+ (activity().application as NavigationApplication).externalComponents
51
+ )
52
+ UiUtils.runOnMainThread { navigator().onHostResume() }
53
+ }
54
+ })
55
+ }
56
+
57
+ override fun getTypedExportedConstants(): MutableMap<String, Any> {
58
+ val constants = mutableMapOf<String, Any>()
59
+ constants[Constants.BACK_BUTTON_JS_KEY] = Constants.BACK_BUTTON_ID
60
+ constants[Constants.BOTTOM_TABS_HEIGHT_KEY] =
61
+ UiUtils.pxToDp(
62
+ reactApplicationContext,
63
+ UiUtils.getBottomTabsHeight(reactApplicationContext).toFloat()
64
+ ).toDouble()
65
+ constants[Constants.STATUS_BAR_HEIGHT_KEY] =
66
+ UiUtils.pxToDp(reactApplicationContext, getStatusBarHeight(currentActivity).toFloat())
67
+ .toDouble()
68
+ constants[Constants.TOP_BAR_HEIGHT_KEY] = UiUtils.pxToDp(
69
+ reactApplicationContext,
70
+ UiUtils.getTopBarHeight(reactApplicationContext).toFloat()
71
+ ).toDouble()
72
+ return constants
73
+ }
74
+
75
+ override fun setRoot(commandId: String, layout: ReadableMap, promise: Promise) {
76
+ Log.d("NavigationTurboModule", "setRoot ${Thread.currentThread()}")
77
+ val layoutTree = LayoutNodeParser.parse(
78
+ Objects.requireNonNull(
79
+ jsonParser.parse(layout).optJSONObject("root")
80
+ )
81
+ )
82
+ handle {
83
+ Log.d("NavigationTurboModule", "setRoot handle ${Thread.currentThread()}")
84
+ val viewController = layoutFactory.create(layoutTree)
85
+ navigator().setRoot(
86
+ viewController,
87
+ NativeCommandListener("setRoot", commandId, promise, eventEmitter, now)
88
+ )
89
+ }
90
+ }
91
+
92
+ override fun setDefaultOptions(options: ReadableMap?) {
93
+ handle {
94
+ val defaultOptions = parse(options)
95
+ layoutFactory.defaultOptions = defaultOptions
96
+ navigator().defaultOptions = defaultOptions
97
+ }
98
+ }
99
+
100
+ override fun mergeOptions(componentId: String?, options: ReadableMap?) {
101
+ handle { navigator().mergeOptions(componentId, parse(options)) }
102
+ }
103
+
104
+ override fun push(
105
+ commandId: String,
106
+ componentId: String,
107
+ layout: ReadableMap,
108
+ promise: Promise
109
+ ) {
110
+ val layoutTree = LayoutNodeParser.parse(jsonParser.parse(layout))
111
+ handle {
112
+ val viewController = layoutFactory.create(layoutTree)
113
+ navigator().push(
114
+ componentId,
115
+ viewController,
116
+ NativeCommandListener("push", commandId, promise, eventEmitter, now)
117
+ )
118
+ }
119
+ }
120
+
121
+ override fun pop(
122
+ commandId: String,
123
+ componentId: String,
124
+ options: ReadableMap?,
125
+ promise: Promise
126
+ ) {
127
+ handle {
128
+ navigator().pop(
129
+ componentId,
130
+ parse(options),
131
+ NativeCommandListener("pop", commandId, promise, eventEmitter, now)
132
+ )
133
+ }
134
+ }
135
+
136
+ override fun popTo(
137
+ commandId: String,
138
+ componentId: String,
139
+ options: ReadableMap?,
140
+ promise: Promise
141
+ ) {
142
+ handle {
143
+ navigator().popTo(
144
+ componentId,
145
+ parse(options),
146
+ NativeCommandListener("popTo", commandId, promise, eventEmitter, now)
147
+ )
148
+ }
149
+ }
150
+
151
+ override fun popToRoot(
152
+ commandId: String,
153
+ componentId: String,
154
+ options: ReadableMap?,
155
+ promise: Promise
156
+ ) {
157
+ handle {
158
+ navigator().popToRoot(
159
+ componentId,
160
+ parse(options),
161
+ NativeCommandListener("popToRoot", commandId, promise, eventEmitter, now)
162
+ )
163
+ }
164
+ }
165
+
166
+ override fun setStackRoot(
167
+ commandId: String,
168
+ componentId: String,
169
+ children: ReadableArray,
170
+ promise: Promise
171
+ ) {
172
+ handle {
173
+ val _children = ArrayList<ViewController<*>>()
174
+ for (i in 0..<children.size()) {
175
+ val layoutTree = LayoutNodeParser.parse(jsonParser.parse(children.getMap(i)))
176
+ _children.add(layoutFactory.create(layoutTree))
177
+ }
178
+ navigator().setStackRoot(
179
+ componentId,
180
+ _children,
181
+ NativeCommandListener("setStackRoot", commandId, promise, eventEmitter, now)
182
+ )
183
+ }
184
+ }
185
+
186
+ override fun showModal(commandId: String, layout: ReadableMap, promise: Promise) {
187
+ val layoutTree = LayoutNodeParser.parse(jsonParser.parse(layout))
188
+ handle {
189
+ val viewController = layoutFactory.create(layoutTree)
190
+ navigator().showModal(
191
+ viewController,
192
+ NativeCommandListener("showModal", commandId, promise, eventEmitter, now)
193
+ )
194
+ }
195
+ }
196
+
197
+ override fun dismissModal(
198
+ commandId: String,
199
+ componentId: String,
200
+ options: ReadableMap?,
201
+ promise: Promise
202
+ ) {
203
+ handle {
204
+ navigator().mergeOptions(componentId, parse(options))
205
+ navigator().dismissModal(
206
+ componentId,
207
+ NativeCommandListener("dismissModal", commandId, promise, eventEmitter, now)
208
+ )
209
+ }
210
+ }
211
+
212
+ override fun dismissAllModals(commandId: String, options: ReadableMap?, promise: Promise) {
213
+ handle {
214
+ navigator().dismissAllModals(
215
+ parse(options),
216
+ NativeCommandListener("dismissAllModals", commandId, promise, eventEmitter, now)
217
+ )
218
+ }
219
+ }
220
+
221
+ override fun showOverlay(commandId: String, layout: ReadableMap, promise: Promise) {
222
+ val layoutTree = LayoutNodeParser.parse(jsonParser.parse(layout))
223
+ handle {
224
+ val viewController = layoutFactory.create(layoutTree)
225
+ navigator().showOverlay(
226
+ viewController,
227
+ NativeCommandListener("showOverlay", commandId, promise, eventEmitter, now)
228
+ )
229
+ }
230
+ }
231
+
232
+ override fun dismissOverlay(commandId: String, componentId: String, promise: Promise) {
233
+ handle {
234
+ navigator().dismissOverlay(
235
+ componentId,
236
+ NativeCommandListener("dismissOverlay", commandId, promise, eventEmitter, now)
237
+ )
238
+ }
239
+ }
240
+
241
+ override fun dismissAllOverlays(commandId: String, promise: Promise) {
242
+ handle {
243
+ navigator().dismissAllOverlays(
244
+ NativeCommandListener(
245
+ "dismissAllOverlays",
246
+ commandId,
247
+ promise,
248
+ eventEmitter,
249
+ now
250
+ )
251
+ )
252
+ }
253
+ }
254
+
255
+ override fun getLaunchArgs(commandId: String, promise: Promise) {
256
+ promise.resolve(LaunchArgsParser.parse(activity()))
257
+
258
+ }
259
+
260
+ private fun parse(mergeOptions: ReadableMap?): Options {
261
+ val ctx = reactApplicationContext
262
+ return if (mergeOptions ==
263
+ null
264
+ ) Options.EMPTY else Options.parse(
265
+ ctx,
266
+ TypefaceLoader(activity()),
267
+ jsonParser.parse(mergeOptions)
268
+ )
269
+ }
270
+
271
+ private fun navigator(): Navigator {
272
+ return activity().navigator
273
+ }
274
+
275
+ private fun handle(task: Runnable) {
276
+ UiThread.post {
277
+ if (currentActivity != null && !activity().isFinishing) {
278
+ task.run()
279
+ }
280
+ }
281
+ }
282
+
283
+ private fun activity(): NavigationActivity {
284
+ return currentActivity as NavigationActivity
285
+ }
286
+
287
+ companion object {
288
+ const val NAME = "RNNTurboModule"
289
+ }
290
+
291
+ }
@@ -12,28 +12,28 @@ import androidx.annotation.NonNull;
12
12
 
13
13
  public class ReactGateway {
14
14
 
15
- private final ReactHost host;
16
- private final NavigationReactInitializer initializer;
17
- private final JsDevReloadHandler jsDevReloadHandler;
15
+ private final ReactHost host;
16
+ private final NavigationReactInitializer initializer;
17
+ private final JsDevReloadHandler jsDevReloadHandler;
18
18
 
19
- public ReactGateway(ReactHost host, boolean isDebug) {
19
+ public ReactGateway(ReactHost host) {
20
20
  this.host = host;
21
- initializer = new NavigationReactInitializer(host, isDebug);
21
+ initializer = new NavigationReactInitializer(host);
22
22
  jsDevReloadHandler = new JsDevReloadHandler(host.getDevSupportManager());
23
23
  if (host instanceof BundleDownloadListenerProvider) {
24
24
  ((BundleDownloadListenerProvider) host).setBundleLoaderListener(jsDevReloadHandler);
25
25
  }
26
26
  }
27
27
 
28
- public void onActivityCreated(NavigationActivity activity) {
29
- initializer.onActivityCreated();
28
+ public void onActivityCreated(NavigationActivity activity) {
29
+ initializer.onActivityCreated();
30
30
  jsDevReloadHandler.setReloadListener(activity);
31
- }
31
+ }
32
32
 
33
- public void onActivityResumed(NavigationActivity activity) {
34
- initializer.onActivityResumed(activity);
35
- jsDevReloadHandler.onActivityResumed(activity);
36
- }
33
+ public void onActivityResumed(NavigationActivity activity) {
34
+ initializer.onActivityResumed(activity);
35
+ jsDevReloadHandler.onActivityResumed(activity);
36
+ }
37
37
 
38
38
  public boolean onNewIntent(Intent intent) {
39
39
  if (host.getCurrentReactContext() != null) {
@@ -47,22 +47,22 @@ public class ReactGateway {
47
47
  host.onConfigurationChanged(activity);
48
48
  }
49
49
 
50
- public void onActivityPaused(NavigationActivity activity) {
51
- initializer.onActivityPaused(activity);
52
- jsDevReloadHandler.onActivityPaused(activity);
53
- }
50
+ public void onActivityPaused(NavigationActivity activity) {
51
+ initializer.onActivityPaused(activity);
52
+ jsDevReloadHandler.onActivityPaused(activity);
53
+ }
54
54
 
55
- public void onActivityDestroyed(NavigationActivity activity) {
55
+ public void onActivityDestroyed(NavigationActivity activity) {
56
56
  jsDevReloadHandler.removeReloadListener(activity);
57
- initializer.onActivityDestroyed(activity);
58
- }
57
+ initializer.onActivityDestroyed(activity);
58
+ }
59
59
 
60
- public boolean onKeyUp(Activity activity, int keyCode) {
61
- return jsDevReloadHandler.onKeyUp(activity, keyCode);
62
- }
60
+ public boolean onKeyUp(Activity activity, int keyCode) {
61
+ return jsDevReloadHandler.onKeyUp(activity, keyCode);
62
+ }
63
63
 
64
64
  public void onBackPressed() {
65
- host.onBackPressed();
65
+ host.onBackPressed();
66
66
  }
67
67
 
68
68
  public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) {
@@ -72,7 +72,7 @@ public class ReactView extends FrameLayout implements IReactView, Renderable {
72
72
 
73
73
  public void sendComponentWillStart(ComponentType type) {
74
74
  this.post(()->{
75
- ReactContext currentReactContext = getReactContent();
75
+ ReactContext currentReactContext = getReactContext();
76
76
  if (currentReactContext != null)
77
77
  new EventEmitter(currentReactContext).emitComponentWillAppear(componentId, componentName, type);
78
78
  });
@@ -80,7 +80,7 @@ public class ReactView extends FrameLayout implements IReactView, Renderable {
80
80
 
81
81
  public void sendComponentStart(ComponentType type) {
82
82
  this.post(()->{
83
- ReactContext currentReactContext = getReactContent();
83
+ ReactContext currentReactContext = getReactContext();
84
84
  if (currentReactContext != null) {
85
85
  new EventEmitter(currentReactContext).emitComponentDidAppear(componentId, componentName, type);
86
86
  }
@@ -88,7 +88,7 @@ public class ReactView extends FrameLayout implements IReactView, Renderable {
88
88
  }
89
89
 
90
90
  public void sendComponentStop(ComponentType type) {
91
- ReactContext currentReactContext = getReactContent();
91
+ ReactContext currentReactContext = getReactContext();
92
92
  if (currentReactContext != null) {
93
93
  new EventEmitter(currentReactContext).emitComponentDidDisappear(componentId, componentName, type);
94
94
  }
@@ -96,7 +96,7 @@ public class ReactView extends FrameLayout implements IReactView, Renderable {
96
96
 
97
97
  @Override
98
98
  public void sendOnNavigationButtonPressed(String buttonId) {
99
- ReactContext currentReactContext = getReactContent();
99
+ ReactContext currentReactContext = getReactContext();
100
100
  if (currentReactContext != null) {
101
101
  new EventEmitter(currentReactContext).emitOnNavigationButtonPressed(componentId, buttonId);
102
102
  }
@@ -121,7 +121,7 @@ public class ReactView extends FrameLayout implements IReactView, Renderable {
121
121
  }
122
122
 
123
123
  public EventDispatcher getEventDispatcher() {
124
- ReactContext reactContext = getReactContent();
124
+ ReactContext reactContext = getReactContext();
125
125
  return reactContext == null ? null : UIManagerHelper.getEventDispatcher(reactContext, UIManagerType.FABRIC);
126
126
  }
127
127
 
@@ -134,7 +134,7 @@ public class ReactView extends FrameLayout implements IReactView, Renderable {
134
134
  return ((ReactApplication)getContext().getApplicationContext()).getReactHost();
135
135
  }
136
136
 
137
- private ReactContext getReactContent() {
137
+ private ReactContext getReactContext() {
138
138
  return getReactHost().getCurrentReactContext();
139
139
  }
140
140
  }
@@ -1,5 +1,7 @@
1
1
  package com.reactnativenavigation.utils;
2
2
 
3
+ import android.graphics.Color;
4
+
3
5
  public class ColorUtils {
4
6
  public static double[] colorToLAB(int color) {
5
7
  final double[] result = new double[3];
@@ -10,4 +12,13 @@ public class ColorUtils {
10
12
  public static int labToColor(double[] lab) {
11
13
  return androidx.core.graphics.ColorUtils.LABToColor(lab[0], lab[1], lab[2]);
12
14
  }
15
+
16
+ public static boolean isColorLight(int color) {
17
+ double darkness = 1 - (0.299 * Color.red(color) + 0.587 * Color.green(color) + 0.114 * Color.blue(color)) / 255;
18
+ return darkness < 0.5;
19
+ }
20
+
21
+ public static int setAlpha(int color, int alpha) {
22
+ return (color & 0x00FFFFFF) | (alpha << 24);
23
+ }
13
24
  }
@@ -9,14 +9,9 @@ import com.reactnativenavigation.BuildConfig
9
9
  val hitRect = Rect()
10
10
 
11
11
  fun MotionEvent.coordinatesInsideView(view: View?): Boolean {
12
- if (BuildConfig.REACT_NATVE_VERSION_MINOR < 71) {
13
- view ?: return false
14
- view.getHitRect(hitRect)
15
- return hitRect.contains(x.toInt(), y.toInt())
16
- } else {
17
- val viewGroup = (view as? ViewGroup)?.getChildAt(0) as? ViewGroup ?: view
12
+ val viewGroup = (view as? ViewGroup)?.getChildAt(0) as? ViewGroup ?: view
13
+
14
+ viewGroup?.getHitRect(hitRect)
15
+ return hitRect.contains(x.toInt(), y.toInt())
18
16
 
19
- viewGroup?.getHitRect(hitRect)
20
- return hitRect.contains(x.toInt(), y.toInt())
21
- }
22
17
  }
@@ -3,7 +3,6 @@ package com.reactnativenavigation.utils
3
3
  import android.app.Activity
4
4
  import android.graphics.Color
5
5
  import android.graphics.Rect
6
- import android.os.Build
7
6
  import android.view.View
8
7
  import android.view.Window
9
8
  import androidx.annotation.ColorInt
@@ -16,7 +15,6 @@ import kotlin.math.ceil
16
15
 
17
16
  object SystemUiUtils {
18
17
  private const val STATUS_BAR_HEIGHT_M = 24
19
- private const val STATUS_BAR_HEIGHT_L = 25
20
18
  internal const val STATUS_BAR_HEIGHT_TRANSLUCENCY = 0.65f
21
19
  private var statusBarHeight = -1
22
20
  var navigationBarDefaultColor = -1
@@ -38,7 +36,7 @@ object SystemUiUtils {
38
36
  val contentViewTop = contentView.top
39
37
  abs(contentViewTop - statusBarHeight)
40
38
  }
41
- } ?: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) STATUS_BAR_HEIGHT_M else STATUS_BAR_HEIGHT_L
39
+ } ?: STATUS_BAR_HEIGHT_M
42
40
  statusBarHeight
43
41
  }
44
42
  return res
@@ -77,8 +75,6 @@ object SystemUiUtils {
77
75
 
78
76
  @JvmStatic
79
77
  fun setStatusBarColorScheme(window: Window?, view: View, isDark: Boolean) {
80
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return
81
-
82
78
  window?.let {
83
79
  WindowInsetsControllerCompat(window, view).isAppearanceLightStatusBars = isDark
84
80
  // Workaround: on devices with api 30 status bar icons flickers or get hidden when removing view
@@ -121,18 +117,17 @@ object SystemUiUtils {
121
117
  @ColorInt color: Int,
122
118
  translucent: Boolean
123
119
  ) {
124
- val opaqueColor =
125
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
126
- Color.BLACK
127
- } else {
128
- val colorAlpha = Color.alpha(color)
129
- val alpha = if (translucent && colorAlpha == 255) STATUS_BAR_HEIGHT_TRANSLUCENCY else colorAlpha/255.0f
130
- val red: Int = Color.red(color)
131
- val green: Int = Color.green(color)
132
- val blue: Int = Color.blue(color)
133
- Color.argb(ceil(alpha * 255).toInt(), red, green, blue)
134
- }
135
- window?.statusBarColor = opaqueColor
120
+ val colorAlpha = Color.alpha(color)
121
+ val alpha = if (translucent && colorAlpha == 255) STATUS_BAR_HEIGHT_TRANSLUCENCY else colorAlpha/255.0f
122
+ val red: Int = Color.red(color)
123
+ val green: Int = Color.green(color)
124
+ val blue: Int = Color.blue(color)
125
+ val opaqueColor = Color.argb(ceil(alpha * 255).toInt(), red, green, blue)
126
+ setStatusBarColor(window, opaqueColor)
127
+ }
128
+
129
+ fun setStatusBarColor(window: Window?, color: Int) {
130
+ window?.statusBarColor = color
136
131
  }
137
132
 
138
133
  @JvmStatic
@@ -9,7 +9,6 @@ import android.graphics.drawable.Drawable;
9
9
 
10
10
  import androidx.annotation.NonNull;
11
11
 
12
- import com.aurelhubert.ahbottomnavigation.AHTextView;
13
12
  import com.aurelhubert.ahbottomnavigation.notification.AHNotification;
14
13
  import com.reactnativenavigation.options.BottomTabOptions;
15
14
  import com.reactnativenavigation.options.DotIndicatorOptions;