Supported actions:
1. never - Never show this item as a button in an Action Bar.
2. always - Always show this item as a button in an Action Bar.
Use sparingly! If too many items are set to always show in the Action
Bar it can crowd the Action Bar and degrade the user experience on
devices with smaller screens. A good rule of thumb is to have no more
than 2 items set to always show at a time.
3. withText - When this item is in the action bar, always show it
with a text label even if it also has an icon specified.
4. ifRoom (default) - Show this item as a button in an Action Bar if
the system decides there is room for it.
When ever bundle was reloaded, all currently registered screens
where recreated since they were still attached to the react context.
This commit adds, in a very hacky way, means to respond to bundle
reload events.
Turns out the popping a screen while keyboard is
open has no side effects. The issue was in fact
that under some condition, when adding a screen
back after it was previously removed caused the
screens constructor to be called.
This commits prevent startReactApplication from
being called by setting mAttachScheduled flag.
This commit includes two major changes
1. Move all calls to private react-native API to a single class and
change access modifier of the ReactRootView to private.
2. Hide soft keyboard when a view is removed from screen. This
potentially fixes a bug we encountered internally where react
failed to render the shadow DOM properly, when popping a screen
while the soft keyboard was displayed.