* 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
FadeIn ContentView and TopBar when pushing shared element screen
If the screen is pushed with `animated: false` then only TopBar is
animated in. This is a compromise until we expose means to control the
transition of each element on the screen.
* Add view manager
* Don’t update screen style on ViewPagerScreenChangedEvent
* change version to legacy
* Fix headers after rebase
* version bump
* Add image to each list item
* Basics structure is done (I think)
toElement also animates into place, even though values are completely wrong.
* Stop relying on refs to resolve fromElements
* Hide only corresponding fromElement
* Animate sharedElements back into place on screen pop
* Update example project with Dota heroes
* Initial curved animation implementation
* Stop resolving sharedElement refs
* Move getLocationOnScreen to ViewUtils
* Parse control points passed from Js
* Scale animation works
Not sure about pivot coordinates yet.
* minor update to SharedElementsTransition screen
* Minor changes to example screens
* Draw shared elements on Screen
Ignore Z order and draw shared elements directly on screen
* stuff
* Start animation after views are drawn
* f
* Animate text color
* Less allocations when animating text color
* Switch from RGB to LAB 😎
* Save and restore SpannedString
* Use correct status bar height in Android M
* Pass show and hide duration from Js
* Fix flicker when show animation starts
* Make shared elements not clickable
motivation: might be related to some native crash
* Use linear interpolation as default interpolation
* Code cleanup
* Clear SharedElements refs when screen is destroyed
* Code cleanup
* Add decelerate interpolator
* No more occasional flicker on animation start (Hopefully 🙏)
* Add FastOutSlowIn interpolator
* Animate only visible shared elements
* Clip bounds animator somewhat works
* Hope fully no more flickery images
* Add interpolator to each animator
* some work on shared element screens
* rebase fix
* fix lint
Since fab set dynamically wasn’t saved in screen params, when returning
to that screen the fab wasn't displayed.
This commit also enables setting fab dynamically in modals
* Adds iOS callback for viewWillAppear/didAppear e.t.c.
* Adds in screen events on Android
* Fixed issue with rightButtons getting ignored in preference for empty Screen buttons
* Android screen lifecycle
This commit is contains a few changes and enhancements to the PR made by simon:
* Use getEventEmitter instead of sendNavigatorEvent
* Dispatch willDisappear and didDisappear events when pushing screens
* Dispatch willAppear and didAppear events when popping screen
* Don’t create SideMenu button automatically on Android
* Remove left button and add it dynamically
* Fix resetTo animation on Android
Up until now resetTo would destroy the current stack and create a new
one. This was an easy implementation but resulted in jurky
(none existent) animations.
This commit changes resetTo behavior. Instead of recreating the stack,
the we reset to is pushed to the stack, and the other elements are
removed when show animation ends.
This commit removes necessary hacks which were introduced due to
limitations of previous React Native apis.
Mount/unmount logic isn't coupled to view attached/detached
to window callbacks. Instead, `unmountReactApplication` was added.
We can safely call it when a screen is popped and when application is
reloaded in debug.
* Don't show fab of a screen that's pushed to a none active tab
* Change fab when navigating back in the stack with back button
* Add screens before SnackbarAndFabContainer