forked from facebook/react-native
-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add onChangeContentSize callback #3
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This one was not synced correctly https://phabricator.fb.com/rFAaebd840baa045b25f7c6641a0657b3cb1a01ba78
Reviewed By: mhorowitz Differential Revision: D2967180 fb-gh-sync-id: fe59b7f7c7dab8b5e7f3a449e72b467e1c2c2c67 shipit-source-id: fe59b7f7c7dab8b5e7f3a449e72b467e1c2c2c67
Summary:**Problem**: As seen in facebook#5820, many devs are confused by the fact that the offline bundle is not generated when running against the simulator, even when running in the "Release" configuration which is supposed to mimic "production" scenarios. This pull request is a small change that fixes facebook#5820 by updating the `react-native-xcode.sh` shell script to still generate the ofline bundle during Release configuration. It also updates `AppDelegate.m` to better document this behaviour in the comments so as to avoid any surprises. **Test plan**: This is a simple change, the two tests done were 1. In a new React Native project, verify that an offline build is not generated when running against the simulator in "Debug" configuration as per normal. 2. Change to a "Release" configuration via Product > Scheme > Edit Scheme in XCode, then verify that the project runs with the offline build generated. ![screen shot 2016-02 Closes facebook#6119 Differential Revision: D2970755 Pulled By: javache fb-gh-sync-id: 64f658512869c73aa19286ca1e3dc6e31b5ac617 shipit-source-id: 64f658512869c73aa19286ca1e3dc6e31b5ac617
Summary:Closes facebook#5270. Closes facebook#5534 Differential Revision: D2970771 fb-gh-sync-id: 36a814032283df7d4c469964f803b8d20d1b0c93 shipit-source-id: 36a814032283df7d4c469964f803b8d20d1b0c93
Summary:Hello! As described in facebook#3288, the `PushNotificationsIOS` `register` callback fires twice. See that issue for discussion. There wasn't any feedback on a proposed PR, so this is the first effort. This change does make the register callback act as expected on my device. I can make any changes necessary. Thanks! Closes facebook#6111 Differential Revision: D2970806 Pulled By: nicklockwood fb-gh-sync-id: a8d0b53210f85cc24b4befdb0e90af46512fa4fb shipit-source-id: a8d0b53210f85cc24b4befdb0e90af46512fa4fb
Summary:Follow-up PR for fixing typos in facebook#5931 **Test plan (required)** This PR contains only copy changes, so no additional testing is required. **Code formatting** This PR code style match the desired [style guide](https://github.com/facebook/react-native/blob/master/CONTRIBUTING.md#style-guide). cc mkonicek Closes facebook#6122 Differential Revision: D2970751 Pulled By: javache fb-gh-sync-id: 007ab6e732e88f39c7f392f00b2bd668ebb4d7d5 shipit-source-id: 007ab6e732e88f39c7f392f00b2bd668ebb4d7d5
Summary:Fixes mocking in NavigationExperimental tests and manually mock React to make things pass Closes facebook#6124 Differential Revision: D2970955 fb-gh-sync-id: ece45f1193a23a39d49fb9c2f529e1d709189f31 shipit-source-id: ece45f1193a23a39d49fb9c2f529e1d709189f31
Summary:Follow-up PR for facebook#5931: Adding missing `TouchableNativeFeedback` example. **Test plan** - Run UIExplorer on iOS and Android devices [Android] - Go to Touchable* examples and scroll down to the `Disabled Touchable*` section. There are two new buttons there: `Enabled TouchableNativeFeedback` and `Disabled TouchableNativeFeedback`. Buttons should behave according their titles. [iOS] - Go to Touchable* examples and scroll down to the `Disabled Touchable*` section. As far as `TouchableNativeFeedback` is supported on Android only, you **wouldn't see** any new buttons there **Code formatting** This PR code style match the desired [style guide](https://github.com/facebook/react-native/blob/master/CONTRIBUTING.md#style-guide). cc mkonicek Closes facebook#6123 Differential Revision: D2971021 fb-gh-sync-id: 3be18bda15b5b495caaf9e4444fd0deb47a44839 shipit-source-id: 3be18bda15b5b495caaf9e4444fd0deb47a44839
Summary: Doc site generation is broken becuase the script can't parse the UIManager file properly. Removing for now. Reviewed By: bestander Differential Revision: D2970814 fb-gh-sync-id: fb782fa6514d875f7e1c289548e82040a7646971 shipit-source-id: fb782fa6514d875f7e1c289548e82040a7646971
Summary:There is no toTime method on a Date object, It should be getTime. Closes facebook#6054 Differential Revision: D2971217 fb-gh-sync-id: 4140be25f0704f251cc0e2f47db8fa83992dc0f0 shipit-source-id: 4140be25f0704f251cc0e2f47db8fa83992dc0f0
Summary:Version exposes the sdk level (which TBH is more useful anyways), not a version string. Closes facebook#6068 Differential Revision: D2971198 fb-gh-sync-id: 0ba1e10e48b2ca51c7b0cebcc1ec13d0b69df783 shipit-source-id: 0ba1e10e48b2ca51c7b0cebcc1ec13d0b69df783
Reviewed By: javache Differential Revision: D2971309 fb-gh-sync-id: 0104f5499d32e0a4e4bd24128c58a9ee4aa7ca4e shipit-source-id: 0104f5499d32e0a4e4bd24128c58a9ee4aa7ca4e
…ntainers of undefined size in the cross-axis Reviewed By: lucasr Differential Revision: D2971032 fb-gh-sync-id: 90ec286ca2070d666571fd3d0db4037bc9d3cda7 shipit-source-id: 90ec286ca2070d666571fd3d0db4037bc9d3cda7
Summary:Unfortunately the 'screen' option in the `UIManager.takeSnapshot` API appears to work only on the iOS simulator, not on an actual device. This diff removes the 'screen' option until a solution can be found that works on the device. (Taking a snapshot of the window still works fine - it just won't include the status bar, etc.) Reviewed By: javache Differential Revision: D2971091 fb-gh-sync-id: 026b9d4eb2f59f686f58c18a16381ff325df612b shipit-source-id: 026b9d4eb2f59f686f58c18a16381ff325df612b
Reviewed By: mkonicek Differential Revision:D2971827 Ninja: oss only fb-gh-sync-id: b86b74a8a582f159777fb90da23645ee730a4802 shipit-source-id: b86b74a8a582f159777fb90da23645ee730a4802
Reviewed By: bestander Differential Revision: D2971225 fb-gh-sync-id: 827d4403d436ec74043e2dde02e19513f7bf811f shipit-source-id: 827d4403d436ec74043e2dde02e19513f7bf811f
Reviewed By: astreet Differential Revision: D2971504 fb-gh-sync-id: 4f2cb5924c135aa39853e6746b0a35e30f3e93a4 shipit-source-id: 4f2cb5924c135aa39853e6746b0a35e30f3e93a4
Summary:Basic implementation of the component NavigationCardStack that animates a list of NavigationCard. This will be used to port the UX of teh current Navigator. Reviewed By: ericvicenti, fkgozali Differential Revision: D2967065 fb-gh-sync-id: a72920e141364fab328e45a083aef21ca5e6fe0c shipit-source-id: a72920e141364fab328e45a083aef21ca5e6fe0c
Summary: Allow customizing the UIImplementation passed in to loadApp. Differential Revision: D2975785 fb-gh-sync-id: 2ce081fb488b78c0c91fcebe6a37dac4f587a467 shipit-source-id: 2ce081fb488b78c0c91fcebe6a37dac4f587a467
Summary:Currently, we're not taking advantage of Flow's built-in type definitions for the React library in all cases because Flow's definition uses `declare module react` and this file uses `import('React')`, which Flow thinks is a different library. After this change, the following starts working which didn't before: ```js import { Component } from 'react-native'; class MyText extends Component<void, {text: string}, void> { render() { return <Text>{this.props.text}</Text> } } // Correctly throws a Flow error for the missing "text" prop const renderedText = <MyText />; ``` Closes facebook#5489 Differential Revision: D2856176 fb-gh-sync-id: 473ca188ad7d990c3e765526c4b33caf49ad9ffd shipit-source-id: 473ca188ad7d990c3e765526c4b33caf49ad9ffd
Summary:Fix the warning generated when some ScrollResponder methods call the deprecated form of scrollResponderScrollTo. Closes facebook#6138 Differential Revision: D2976681 fb-gh-sync-id: 3f5195aeebbffeccadb4bbffc55d52d7f89a9b2d shipit-source-id: 3f5195aeebbffeccadb4bbffc55d52d7f89a9b2d
…k#6099 Summary:Currently, Linking.getInitialURL() only supports custom URL scheme and not Universal Links. This PR fixes that. see facebook#6099 Closes facebook#6147 Differential Revision: D2976902 Pulled By: javache fb-gh-sync-id: 750fe4a7c251ba57433c3a24866a4a510f125069 shipit-source-id: 750fe4a7c251ba57433c3a24866a4a510f125069
Summary:Geolocation timestamp is different for Android and iOs. For Android it is returning in UTC time in milliseconds since January 1, 1970, for iOS it was returned as time interval relative to an absolute reference date (00:00:00 UTC on 1 January 2001). Also for iOS time returned was "current system absolute time" and not the time at which this location was determined. Tested with 0.21.0-rc React Native. Init project with this additional code: `constructor(props) {super(props); navigator.geolocation.getCurrentPosition( (position) => { let initialPosition = JSON.stringify(position); console.log(position.timestamp); }, (error) => alert(error.message), {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000} ); } ` Tested with iOs simulator (iPhone 6S plus 9.2; iPhone 5s 8.4 ) sample result with change: 1456407795021.235 sample result without change: 23478100615007.884 Explaining links for iOS: https://developer.apple.com/library/ios/do Closes facebook#6150 Differential Revision: D2976909 Pulled By: nicklockwood fb-gh-sync-id: 9607ed669d7200591f8387e4186cf7c225ae9b3a shipit-source-id: 9607ed669d7200591f8387e4186cf7c225ae9b3a
Summary:Previously images that have exif orientation data would be cropped and the exif data would be lost leading to us displaying pictures rotated in error. Reviewed By: foghina Differential Revision: D2971596 fb-gh-sync-id: 40f92e27089455259a7d8b83c92d0cf36367e5df shipit-source-id: 40f92e27089455259a7d8b83c92d0cf36367e5df
Reviewed By: nicklockwood Differential Revision: D2939782 fb-gh-sync-id: e2346f053e9594e5d24d1e73d493a34446fb228c shipit-source-id: e2346f053e9594e5d24d1e73d493a34446fb228c
Summary: When rotating on iPad, the dev loading view just looks clowny since it doesn't rotate properly. Reviewed By: majak Differential Revision: D2939721 fb-gh-sync-id: 7f1926f5cee4761cde8881e9387ae6e0063c5d6c shipit-source-id: 7f1926f5cee4761cde8881e9387ae6e0063c5d6c
Summary:Add missing implementation of `textAlignVertical` style prop for `Text`-component. According to the [docs](https://facebook.github.io/react-native/docs/text.html#style) it should be implemented but was only added for `TextInput` in facebook@f453e14. Closes facebook#6105 Differential Revision: D3029783 Pulled By: dmmiller fb-gh-sync-id: 29bcd50a7280c890707f811bcfc7a3d5c5be5142 shipit-source-id: 29bcd50a7280c890707f811bcfc7a3d5c5be5142
Reviewed By: andreicoman11 Differential Revision: D3023912 fb-gh-sync-id: 0f240448f465fd0ad629c239f45a24f01af4dc1b shipit-source-id: 0f240448f465fd0ad629c239f45a24f01af4dc1b
Reviewed By: astreet Differential Revision: D3029772 fb-gh-sync-id: 0af13208659093b14013c0ee3c00b2438fadca9c shipit-source-id: 0af13208659093b14013c0ee3c00b2438fadca9c
Summary:**Motivation** Multiple instances of `Text` inside a `ListView` is a bad idea for the performance of the app. When you create 1000 elements and you scroll through the list it is really slow and laggy because the `NSTextStorage`, which is the backbone of the `RCTText` element, will set more than 1,000 times and also the method `setNeedsDisplay` is called multiple times. This will causes huge memory problems and the app crashes. With this commit I check in `RCTText` if the `NSTextStorage` differs from the old value. If yes then set it otherwise don't set the `NSTextStorage`. This will prevent to call `setNeedsDisplay` when not really needed. Gist with sample app to show behavior can be found here: https://gist.github.com/bpoetzschke/28a17969c6aa54219e18 Closes facebook#6341 Differential Revision: D3035485 Pulled By: nicklockwood fb-gh-sync-id: 181f01b7f87f765dbb01a4ad3196fc40f9d50694 shipit-source-id: 181f01b7f87f765dbb01a4ad3196fc40f9d50694
Summary:Adding my HackerWeb iOS app to the app showcase. Closes facebook#6244 Differential Revision: D3023957 Pulled By: mkonicek fb-gh-sync-id: 82ed565acd269ab904204620570b3e5e6528a809 shipit-source-id: 82ed565acd269ab904204620570b3e5e6528a809
Summary:Everything wrapped in `<Incremental>` is rendered sequentially via `InteractionManager`. The `onDone` callback is called when all descendent incremental components have finished rendering, used by `<IncrementalPresenter>` to make the story visible all at once instead of the parts popping in randomly. This includes an example that demonstrates streaming rendering and the use of `<IncrementalPresenter>`. Pressing down pauses rendering and you can see the `TouchableOpacity` animation runs smoothly. Video: https://youtu.be/4UNf4-8orQ4 Ideally this will be baked into React Core at some point, but according to jordwalke that's going to require a major refactoring and take a long time, so going with this for now. Reviewed By: ericvicenti Differential Revision: D2506522 fb-gh-sync-id: 5969bf248de10d38b0ac22f34d7d49bf1b3ac4b6 shipit-source-id: 5969bf248de10d38b0ac22f34d7d49bf1b3ac4b6
Summary: Closes facebook#6396 Differential Revision: D3034612 Pulled By: nicklockwood fb-gh-sync-id: cd20d405b7064e167b895411decedfae215f3b8b shipit-source-id: cd20d405b7064e167b895411decedfae215f3b8b
Summary:**Motivation** AppStateIOS never currently returns `inactive` as a possible state. I had a requirement that when inactive, certain portions of the app should be blacked out in accordance with compliance rules. This is not possible currently, due to `inactive` never being returned. This PR fixes that. **Test plan** All base tests are passing. Are there AppState specific tests in place at the moment that I'm missing? **Demonstration** ![appstate](https://cloud.githubusercontent.com/assets/286616/13640546/1cb6eeb0-e5e3-11e5-8d64-332ea3383a54.gif) Closes facebook#6379 Differential Revision: D3035530 Pulled By: nicklockwood fb-gh-sync-id: 93deccc8184816809926dca8a95f2bebd1434987 shipit-source-id: 93deccc8184816809926dca8a95f2bebd1434987
Summary:If website has node_modules installed `npm tests` **Test plan (required)** ``` cd website && npm install cd .. && npm test ``` Before this fix we see this error: Error: Failed to build DependencyGraph: providesModule naming collision: Duplicate module name: ViewportMetrics Paths: react-native/node_modules/react/lib/ViewportMetrics.js collides with react-native/website/node_modules/react/lib/ViewportMetrics.js Closes facebook#6170 Differential Revision: D3001147 Pulled By: bestander fb-gh-sync-id: a040edf097183e6899c0ff49785ff36bd465eb61 shipit-source-id: a040edf097183e6899c0ff49785ff36bd465eb61
Reviewed By: mkonicek Differential Revision:D3035945 Ninja: oss docs fb-gh-sync-id: 5569d266330d5ecb232d16b5100e3f12717acf4c shipit-source-id: 5569d266330d5ecb232d16b5100e3f12717acf4c
Summary: The exportedConstants method incurrs a penalty at bridge startup time for every module that implements it. This diff removes exportedConstants from a few modules that don't really need to use it. Reviewed By: majak Differential Revision: D2982341 fb-gh-sync-id: be016187d7b731a073311daacfcf88a0402e1688 shipit-source-id: be016187d7b731a073311daacfcf88a0402e1688
Reviewed By: michalgr Differential Revision: D3005912 fb-gh-sync-id: 3ab1f804e6203807a5d9f35e5560e847a9830cd6 shipit-source-id: 3ab1f804e6203807a5d9f35e5560e847a9830cd6
Reviewed By: javache Differential Revision: D3033918 fb-gh-sync-id: 9085db138754f1aa557f0190456529e5e71ac27b shipit-source-id: 9085db138754f1aa557f0190456529e5e71ac27b
…ation Summary:facebook@f2483eb#diff-0d0be087e61cb933286a7cc733767cbeR106 approve2ship Reviewed By: hedgerwang Differential Revision: D3034798 fb-gh-sync-id: 74d0688f935bc324791cf43b15c0106f3c4dd703 shipit-source-id: 74d0688f935bc324791cf43b15c0106f3c4dd703
Reviewed By: mkonicek Differential Revision:D3036726 Ninja: oss only fb-gh-sync-id: 9d63ba4418a0c10ea4a5a574749f1ca9fc8c6b50 shipit-source-id: 9d63ba4418a0c10ea4a5a574749f1ca9fc8c6b50
Summary:Need to make sure we can use both versions of npm client for publishing and installing **Test plan (required)** Make sure tests pass on both Travis and Circle CI. Closes facebook#6364 Differential Revision: D3036537 fb-gh-sync-id: a3c1ea16f0aeb7b1327574b511aac7594fd3d7e6 shipit-source-id: a3c1ea16f0aeb7b1327574b511aac7594fd3d7e6
Reviewed By: hedgerwang Differential Revision: D3036422 fb-gh-sync-id: 8cf454a76ddc14b5601e84dee1ae5aaf98060d5f shipit-source-id: 8cf454a76ddc14b5601e84dee1ae5aaf98060d5f
…tInput Summary:Add note about side-specific properties not being applied to `TextInput`s if `multiline=false`. Fix formatting of docs describing other `multiline={true/false}` quirks. Closes facebook#2240 Differential Revision: D3037154 Pulled By: andreicoman11 fb-gh-sync-id: d64db906c2ab0054f2357b8e218725414d9868d6 shipit-source-id: d64db906c2ab0054f2357b8e218725414d9868d6
Reviewed By: ericvicenti Differential Revision: D3033857 fb-gh-sync-id: 7391ae943a88c675f8539f5cc81587caec36e80e shipit-source-id: 7391ae943a88c675f8539f5cc81587caec36e80e
ide
force-pushed
the
on-change-content-size-android
branch
from
March 11, 2016 09:18
111cc08
to
744f13d
Compare
No longer relevant. We'll have this change in exp-latest after I rebase stuff. |
ide
pushed a commit
that referenced
this pull request
May 22, 2019
…to match Android Summary: ## Overview This diff switches the RCTSlider onSlidingComplete event on iOS from a bubbling event to a direct (non-bubbling) event to match the non-bubbling type on android. Note that in this case these seems like a bug. I will still explain the motivation and reasoning as this will come up in future diffs. ## Changelog [Slider][BREAKING] Switch Slider onSlidingComplete event to a non-bubbling event on iOS to match Android ## Motivation: The motivation here is that when we codgen the view configs, we'll need to unify all of the events and props across platforms for components that have the same name on iOS and Android. In this case, the view configs (below) conflict for onSlidingComplete. On iOS this is under bubblingEventTypes, on Android this is under directEventTypes. We have code [here](https://fburl.com/3s1dahm2) in the react native renderer which ensures an event is not listed as both. ``` // iOS const SliderViewConfig = { bubblingEventTypes: { onSlidingComplete: { phasedRegistrationNames: { captured: 'onChangeCapture', bubbled: 'onChange' } } }, directEventTypes: { // None }, validAttributes: { // ... } }; ``` ``` // Android const SliderViewConfig = { bubblingEventTypes: { // None }, directEventTypes: { onSlidingComplete: { registrationName: 'onEventDirect' } }, validAttributes: { // ... } }; ``` ## Solutions There are three solutions to this issue: 1. Don't generate view configs 2. Rename the component on one platform 3. Make a breaking change in the event behavior on one platform to make it consistent across both platforms Here we've chosen option #3 Reviewed By: TheSavior Differential Revision: D15322304 fbshipit-source-id: ff1ab86efe9e2bc50fd3f7619e6760ab5c1c5090
ide
pushed a commit
that referenced
this pull request
Apr 1, 2021
Summary: This diff allows specifying the preemptive compilation threshold via CompileFlags. Users get a toggle in CLI and RuntimeConfig that allows choosing between 1. fully eager, 2. fully lazy, 3. use default thresholds ("smart"). The default is #3. However, since we use `-O` by default, it overrides any lazy compilation when using the `hermes` binary. ChangeLog: [Internal] Inspector updated to use new RuntimeConfig laziness control Reviewed By: tmikov Differential Revision: D23356463 fbshipit-source-id: 508b7b2e6a218346c69acfec97e7891e388f0e9b
ide
pushed a commit
that referenced
this pull request
Apr 1, 2021
Summary: This fix is still a little hypothetical. We have a few different JS errors that we're seeing with bridgeless mode that seem to be caused by Fabric trying to access `__fbBatchedBridge` from C++. I think what's happening is: 1. User encounters an unrelated JS error very early in rendering a new surface (possibly while the bundle is still loading?) 2. In release builds, BridgelessReactFragment handles the error by stopping the surface and rendering a retry button (actually, the surface is stopped in a bunch of places in BaseFbReactFragment, which might be why this is popping up now - I recently refactored that class to share more of its logic in bridgeless mode) 3. Fabric stops the surface by first checking to see if the custom binding `RN$stopSurface` exists; if not, it falls back to calling the registered callable module `ReactFabric`. I think #3 is where things are going wrong for bridgeless mode; if you call stopSurface before `RN$stopSurface` is installed (which happens when ReactFabric shim is required) then you'll fall back to the bridge version. My solution here is to instead rely on a flag set in C++ to determine whether we're in bridgeless mode, and then check to see if the stopSurface binding has been installed. If not, we just noop - if the ReactFabric shim hasn't been required, we probably don't actually have a React surface that needs to be stopped. At least, that's my current theory. We'll see if this actually works. Changelog: [Fixed][iOS] Fix an issue calling stopSurface in bridgeless mode before surface is started Reviewed By: mdvacca Differential Revision: D25453696 fbshipit-source-id: bff76675c43989101d0ba5ae0aba60089db230bf
Kudo
pushed a commit
that referenced
this pull request
Feb 17, 2022
Summary: Previous iterations of this diff that were reverted: D30678341 (facebook@8009459), D30868627 (facebook@abd0f38). With the power of selects, we can move the base AppleTVOS flags into the regular base Apple flags. While I'm here, drop the third `p` in `get_application_apppletvos_flags()` as it's driving me insane. Note - This puts get_visibility_option() on all Apple builds. I believe this is the right thing to do as everything except macOS static libraries already do it, and it shouldn't affect binaries. Changelog: [Internal] Reviewed By: mzlee, jdonald Differential Revision: D31024459 fbshipit-source-id: be85296cda3612836c1c74632dc52f6e3f89512e
Kudo
pushed a commit
that referenced
this pull request
Feb 17, 2022
…ake #3) Differential Revision: D31024459 (facebook@0a46e5e) Original commit changeset: be85296cda36 fbshipit-source-id: ceb8e5a3cda57a40a876b07133d8021942308878
Kudo
pushed a commit
that referenced
this pull request
Mar 23, 2022
Summary: This diff adds `overflowInset` values in RN Android. These values are used to give an enlarged boundary of a view group that also contains all its children layout. Here is [the post](https://fb.workplace.com/groups/yogalayout/permalink/2264980363573947/) that discuss more on why this is useful. I steal the pic in that post here as TLDR: {F687030994} In the above case, we will get overflowInset for ViewGroup A as something like `top: 0, right: -20, bottom: -20, left: 0`. This has been added in the [Fabric core](https://fburl.com/code/f8c5tg7b) and [in IOS](https://fburl.com/code/vkh0hpt6). In Android, since we used to ignore all event coordinates outside of a ViewGroup boundary, this is not an issue. However, that caused unregistered touch area problem and got fixed in D30104853 (facebook@e35a963), which dropped the boundary check and made the hit test algorithm in [TouchTargetHelper.java](https://fburl.com/code/dj8jiz22) worse as we now need to explore all the child node under ReactRootNode. This perf issue is getting obvious when a view loads too many items, which matches our experience with "Hover getting slow after scrolling", "Hover getting slow after going back from PDP view", and "The saved list view (in Explore) is very fast (because it has very few components)" To fix this issue, I added the support to `overflowInset` to RN Android by 1. Sending the `overflowInset` values from Binding.cpp in RN Android as a separate mount instruction 2. Update `IntBufferBatchMountItem.java` to read the int buffer sent over JNI, and pass the `overflowInset` values to `SurfaceMountingManager.java` 3. Creating new interface `ReactOverflowViewWithInset.java` and extending the existing `ReactOverflowView.java` usages 4. Adding implementation of getter and setter for `overflowInset` in various views 5. Update `TouchTargetHelper.java` to read the values and check boundaries before exploring ViewGroup's children Note that in #3 I didn't change `ReactOverflowView.java` interface directly. I am concerned about backward compatibility issues in case this interface is being used in OSS. I suggest we deprecate it as we are not using it anymore in our code. Changelog: [Internal][Android] Reviewed By: JoshuaGross Differential Revision: D33133977 fbshipit-source-id: 64e3e837fe7ca6e6dbdbc836ab0615182e10f28c
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.