* added method for getting the currently visible screen ID. Can be useful to decide if logic should be applied according to screen visibility, for example: set buttons/title dynamically, or even determine that you don’t need to show the same screen again if it’s the current one that’s showing
* Implement getCurrentlyVisibleScreenId on Android
Can be used statically:
Navigation.getCurrentlyVisibleScreenId() - returns the unique screen
instance id
With a navigator instance:
await this.props.navigator.screenIsCurrentlyVisible() - resolves a
promise that checks if the current screen is visible
* Add screen visibility listener which can be registered globally
API
new ScreenVisibilityListener({
willAppear: ({screen, timestamp}) => console.log(`Displaying screen ${screen}`),
didAppear: ({screen, timestamp}) => console.log(`Screen ${screen} displayed in ${Date.now() - timestamp} millis`)
}).register();
todo
* Add timestamp to modal, resetTo
* implement unregister
* implement iOS
* Add global screen visibility listener to example app
* Think I better assign a value to emitter
* Send timestamp in resetTo
* Moved listener to library, it can be deleted from the app
* Add push and resetTo buttons to pushed screens
* Send appear/disappear events after animation ends
* Pass pop timestamp from js
* Send timestamp in popToRoot
* Add popToRoot button in push screen
* Add few navigation buttons to modal screen
* Pass timestamp to tabs
relevant only to first/initial tab
* Update timestamp when navigating between BottomTabs
* Send screen visible events after modal dismiss
* log willDisappear and didDisappear
* Report both start and end timestamps
* Implement unregister
* Send NavigationType parameter in visibilityEvent
This indicates the type of the navigation command that triggered the visibility change
* Rename pushInitialScreen to more explicit name
* Fix duplicate initialScreen visibility events
* Update screen visibility log statement
* Show popToRoot in modal screen only if screens were pushed
* implement global screen event for iOS
* fix lint issues
* Set to use old bridge for compatibility with 0.30+
* Fixed crash occurring when tabBarBackgroundColor or tabBarButtonColor is not supplied
* Adds setStyle property to index.js
* Adds native code for setting style on RCCViewController
* Fixes setStyle function
* Fixes setting style on navigator
* Adds some styling to tab bar controller and fixes some bugs
* Adds ability to set modal presentation style
* Makes sure autoAdjustScrollViewInsets isn't propagated through when push another view controller
* Changes import to reference controllers rather than react-native-controllers and fixes setStyle mutating colours
* Fixed to work with RN 33
* Fixes updating title font styling with new RCCTitleViewHelper logic
* Fixes subtitle being shown
* Adds extendedLayoutIncludesOpaqueBars to navigation styling
* Adds ability to add shadows to text in navigation bar / tab bar
* Fixed merged ReactGateway.java file
* Fixed issue with rightButtons getting ignored in preference for empty Screen buttons
* Fixes compiler error