Please sign in to comment.
Fix RefreshControl race condition
Summary: There was a race condition with `SwipeRefreshLayout` that cause the `RefreshControl` to keep refreshing when it shouldn't. It was caused because we have to use `post` to set the refreshing state otherwise it doesn't work when setting `refreshing=true` on initial mount. What happened is that `post` doesn't guarantee the order the runnables will be called so calling post with `refreshing=true` followed by `refreshing=false` caused the `resfreshing=false` runnable to be called before the `resfreshing=true` one. This made it stay in refreshing state when it should not. ``` D/test ( 6171): setRefreshing true W/ReactNativeJS( 6171): false D/test ( 6171): setRefreshing false D/test ( 6171): setRefreshing post false D/test ( 6171): setRefreshing post true ``` This change adds an instance variable and uses it in the `post` runnable to make sure the last set value is always used. **Test plan (required)** Tested that it fixed the issue in the [original issue app](https://github.com/digisqu Closes #7317 Differential Revision: D3290464 Pulled By: andreicoman11 fbshipit-source-id: 15cabcfc6d2f191443be96e8845b924ce66c369f
- Loading branch information...
Showing with 19 additions and 9 deletions.