forked from facebook/react-native
-
Notifications
You must be signed in to change notification settings - Fork 4
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
textInput: Fix placeholder is not completely visible on Android. #3
Open
jainkuniya
wants to merge
1,109
commits into
zulip:0.55.4-zulip
Choose a base branch
from
jainkuniya:android-textinput-placeholder
base: 0.55.4-zulip
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
textInput: Fix placeholder is not completely visible on Android. #3
jainkuniya
wants to merge
1,109
commits into
zulip:0.55.4-zulip
from
jainkuniya:android-textinput-placeholder
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
Reviewed By: sahrens Differential Revision: D8529116 fbshipit-source-id: 5ce4a7737d8837ca9a9c94054e1d1182fb38c094
Summary: These are the flow errors that resulted from this diff: P59723027 Reviewed By: sahrens Differential Revision: D8454977 fbshipit-source-id: e10901d3ecfc541b25f2fefb18702629f0bbab71
Reviewed By: sahrens Differential Revision: D8529727 fbshipit-source-id: 6b3659d3cdea70931a30e22a6acfd140091e8ad7
Summary: Use colon after Test Plan to ensure the plan is copied to Facebook's internal Phabricator instance successfully. Closes facebook#19813 Differential Revision: D8530181 Pulled By: hramos fbshipit-source-id: 83be6ecaca54a3c6fd4e47b08b8632976f5635aa
Summary: @public A few people have been complaining, including me, that when we compile a react native project, there are a lot of warnings from xcode, suggesting to update the project build settings to the new recommendations. I took the liberty to actually update the xcode projects, so we can finally have these gone, as well as replace some deprecated methods with the new suggested ones. [IOS] [MINOR] [Xcode] - updated the Xcode projects with the latest suggestions from Xcode 9.3, and replaced a few deprecated methods of iOS with their new replacements. Closes facebook#19574 Reviewed By: shergin Differential Revision: D8530135 Pulled By: hramos fbshipit-source-id: b9c9ede0e07760cb2207caa6b468bd5c241848dc
Summary: We enforce this config locally in fbsource, lets ensure our flow strict files are run the same way in the github repo. @public Reviewed By: sahrens Differential Revision: D8530133 fbshipit-source-id: 18528992ad6490826431359d5d8c6acd6710a8ae
Summary: This was done by running the command on: https://our.intern.facebook.com/intern/wiki/Flow_Strict/ ``` ag -L --ignore __snapshots__ 'flow strict$|noflow|generated|partially-generated' | ag '\.js$' | xargs ag -l 'flow' | sort > ~/temp cat ~/temp | xargs ag -L 'flow strict' | xargs sed -i 's/flow$/flow strict/' cat ~/temp | xargs ag -L 'flow strict$' | xargs sed -i 's/flow strict-local$/flow strict/' until flow; do flow --json | jq -r '.errors[].message[0].path' | sort | uniq | xargs hg revert; done ``` Reviewed By: sahrens Differential Revision: D8530207 fbshipit-source-id: c28c7ac5ed3e9b80f3d126d5f30463be8a8a744d
Summary: Improving the exported type of Image on android so we can work on migrating the implementation off of createReactClass and propTypes. Reviewed By: yungsters Differential Revision: D8530549 fbshipit-source-id: dab0cb5034464b7939a0b04e8912bae916690e8c
Reviewed By: zats Differential Revision: D8529663 fbshipit-source-id: ddedf1daa153f25bc62db19b8e1ace32b4ab3201
Reviewed By: skotchvail Differential Revision: D8529938 fbshipit-source-id: 6a97d2c54757d7e75fe8731efe24704cf7fdf87c
Summary: @public This new version of metro replaces the `getProjectRoots()` config param by `getProjectRoot()` (which is used as the main folder for calculating relative paths of files, etc) and `getWatchFolders()` (which is used to know which files/folder to crawl when starting metro). More info: facebook/metro@3bdf386 [skip-ci] Reviewed By: yungsters, mmmulani Differential Revision: D8538986 fbshipit-source-id: 2afc33950334a278364debb39f34ef0fe0535894
Summary: Need to test a potential issue with Animated.Image on Android. Adding a RNTester example to exercise it. Reviewed By: yungsters Differential Revision: D8559440 fbshipit-source-id: 4319d958de146c177cb0bd4b84679b773ce50833
Summary: This brings Image a bit more inline with the .ios.js counterpart. Reviewed By: yungsters Differential Revision: D8557495 fbshipit-source-id: 263da529d1a2541b0168745c0141c3fc622a1883
Summary: as title Reviewed By: fred2028 Differential Revision: D8550184 fbshipit-source-id: 5ba72538fae11d75a82568774dd937b4493e7292
Summary: I broke this on a previous change: https://pxl.cl/fh2n This caused server snapshot tests to fail: https://our.intern.facebook.com/intern/testinfra/screenshots_reports?report_id=88925 Reviewed By: mmmulani Differential Revision: D8576282 fbshipit-source-id: 03217c6b68dca63cba67f9ac04cf39bbc24e91eb
…the emitter is deallocated. Summary: @public There are some race conditions between VM objects getting deallocated and the instanceHandle held by the eventEmitter can point to deallocated memory space, causing undefined behavior like a crash. For now, keep a strong ref to the eventTarget inside EventEmitter to avoid that scenario. This is a temporary workaround. Reviewed By: shergin Differential Revision: D8576785 fbshipit-source-id: 87ef36f716270ceca906b32bb86e0046ceaca19e
Summary: @public Added a property `accessibilityIgnoresInvertColors (boolean)` to Views which allows the Apple API `accessibilityIgnoresInvertColors` to be used in React Native. Now, when a user has Display: Smart Invert enabled, you can set the property to be true, and things like photos and views with the property set to true will no longer be inverted when Smart Invert is enabled. This property can also be applied to the Image Component. Example Use Case: ``` <Image accessibilityIgnoresInvertColors={true} /> ``` ``` <View accessibilityIgnoresInvertColors={true} /> ``` | Before | After | | ------ | ----- | | ![original](https://user-images.githubusercontent.com/165856/41738737-b62c6ebc-7547-11e8-8ea3-f82239998071.jpg) | ![feeditem](https://user-images.githubusercontent.com/165856/41738749-beef6de2-7547-11e8-9771-b44e513de0fd.jpg) Reviewed By: PeteTheHeat Differential Revision: D8549084 fbshipit-source-id: 82a3bc73c9e6d75d6b50ba013b88127f07692641
Summary: Added Smart Inversion Compatibility to Marketplace on iOS so that photos don't appear inverted Added Property to View for Ignoring Color Inversion Applied Property to Images on marketplace. **Note: Android doesn't support smart inversion Reviewed By: PeteTheHeat Differential Revision: D8528543 fbshipit-source-id: 63caf592bc71e6fe9db7e70c72b56d32873be048
Summary: bypass-lint allow-large-files Reviewed By: gabelevi Differential Revision: D8579147 fbshipit-source-id: 12280dd4872551247ff9baafab3d766d3d7a544a
…SString Summary: @public Trivial. Reviewed By: fkgozali Differential Revision: D8473507 fbshipit-source-id: 49c9e66dc6b32b0a5208aeb4c2fb68fbe1f71738
…ePresenter Summary: @public Trivial. Reviewed By: mdvacca Differential Revision: D8473512 fbshipit-source-id: 7b6c160a2a1a1abcd571b0522760d49644632922
…rics Summary: @public ... and we initalize this in Surface. We need this for requesting images with proper size/pixel-density, setup proper parameters for rasterizing CALayer's and rounding layout metric values. Then we have to figure out how to wire this up with YGConfig. Reviewed By: fkgozali Differential Revision: D8475639 fbshipit-source-id: cec7af581b94efb4595dcf3f232252ce87a1fde3
Summary: @public This diff changes how we store and manage Yoga Config in layoutable shadow nodes. Previously we have `shared_ptr` to single shared yoga config (one to many relationships); now we initiate and store yoga config with yoga node (one to one relationship). Cons: - Less memory efficient. Pros: - Much more flexible model. Configuration can be tweaked on a per-node basis. - More performant. Dealing with `shared_ptr` is expensive because of atomic ref-counter. (This is not really applicable for the previous approach but would be applicable for any alternate approach where we want to have more granular control of the configuration.) Data locality is also great in the new model which should positively impact performance. - Simplicity. Any alternate approach where we manage sets of nodes which share the same configuration is going to be quite complex. Reviewed By: fkgozali Differential Revision: D8475638 fbshipit-source-id: 5d73116718ced8e4b2d31d857bb9aac69eb69f2b
Summary: @public `ContextContainer` is general purpose DI container for Fabric. We need this to communicate some enviroment-specific and/or platform-specific modules down to cross-platform C++ code. The first one will be ImageManager. Soon. Reviewed By: fkgozali Differential Revision: D8475636 fbshipit-source-id: 0afc65063f818d0bab736cd2c55c6fdd21b629ac
Summary: @public After reading about move-semantic and rvalue refs I realized that we (I) definitely overuse `auto &&` (aka universal reference) construction. Even if this is harmless, does not look good and idiomatic. Whenever I used that from a semantical point of view I always meant "I need an alias for this" which is actually "read-only reference" which is `const auto &`. This is also fit good to our policy where "everything is const (immutable) by default". Hence I change that to how it should be. Reviewed By: fkgozali Differential Revision: D8475637 fbshipit-source-id: 0a691ededa0e798db8ffa053bff0f400913ab7b8
Summary: @public ImageManager coordinates all work related to loading image bitmaps for <Image> component. The particular iOS implementation uses RCTImageLoader from RCTImage module under the hood. Reviewed By: fkgozali Differential Revision: D8526571 fbshipit-source-id: a0d927972d30113eed6e0cd169fceee17610181d
Summary: @public This diff implements basics of cross-platform part of <Image> component. Known issues: - Events does not work yet. - Some quite specific image source parameters (like custom http headers) are not supported yet. Reviewed By: fkgozali Differential Revision: D8526575 fbshipit-source-id: ecc97d9fda2b2e65bb1b079af057f8e176a161e5
Summary: @public This is iOS-specific implementation of <Image> view. Not all props and features are supported yet. Known issues: - Animated GIFs; - CA transitions during image appearance. Reviewed By: mdvacca Differential Revision: D8526570 fbshipit-source-id: a4b1dca583b139b8a09431565a79f051fae67a36
Summary: @public If some prop has `std::vector` type, it possible that on JS side we want to pass just one element of the array. And in this case we sometimes drop array initialization (`[]`) part, so instead of passing `[{x:1, y:1}]` we pass `{x:1, y:1}`. This diff adds support for that. Reviewed By: mdvacca Differential Revision: D8526572 fbshipit-source-id: 33d4369ac48cac3eb1c534f477d8259e76e0c547
Summary: This diff tries to fix an issue that started appearing in RN master when the latest metro version is used (more info here: facebook@c5ce762#commitcomment-29443117). The problem is that RN is still reading `projectRoots` from the Metro config and trying to call `concat()` on them. Latest Metro sets the default `projectRoots` to null, so this fails. Also, a couple other things have been done: * Make sure that the `projectRoot` and `watchFolder` objects from args are passed to Metro (so they contain the overrides from the CLI arguments). * Add a `--projectRoot` CLI arg, replacing the `--root` one (this is not actually needed, since it does the same as `--watchFolders` Differential Revision: D8567229 fbshipit-source-id: 3b76fd8e23d201a4097e9dfba3a512d64f348cb0
Summary: @public Auto-fixes formatting of YGLayout.cpp YGNode.cpp Yoga-internal.h Reviewed By: astreet Differential Revision: D8875514 fbshipit-source-id: 38d709831349c4ad015f20451421aea89fc6f007
Summary: @public Makes `YGFloatIsUndefined` inlineable Reviewed By: swolchok Differential Revision: D8875520 fbshipit-source-id: 7ac653e002512b1a8d5f9c04e0a21381aeb02e67
Summary: This fixes some regressions with local-cli introduced in c4a66a8. - We didn't pass `assetRegistryPath` which caused the following error when loading the bundle: ``` error: bundling failed: Error: Unable to resolve module `missing-asset-registry-path` from `/Users/janic/Developer/react-native/RNTester/js/[email protected]`: Module `missing-asset-registry-path` does not exist in the Haste module map ``` - The middlewares were not added to the metro server. This causes some packager server features to fail. The one I noticed is that the /status endpoint didn't exist anymore which causes CI to fail and also Android to not load the bundle from the packager initially. The remote debugging feature was also broken. Pull Request resolved: facebook#20162 Differential Revision: D8867610 Pulled By: hramos fbshipit-source-id: 8a08b7f3175692ab6ee73c0a7c25075091ae4792
Summary: It doesn't seem to be used internally, it hurts greppability, and there are setters for these properties as needed anyway. Reviewed By: davidaurelio Differential Revision: D8842084 fbshipit-source-id: f0275b490e585ea94df341c97c34b441ed91c4fb
Summary: No need to type out the old version. This is exactly equivalent (unless I've misread and the old version did something other than memberwise copy). Reviewed By: davidaurelio Differential Revision: D8842326 fbshipit-source-id: c575ea4cee6caef9ea15aaf5967597385ed26ec3
Summary: Trying to see what it takes to get server snapshot tests working on android. This will be landed after fixing few things. Reviewed By: achen1 Differential Revision: D8237948 fbshipit-source-id: 926555ba752171dac4e5814f5c8e5c2c173a82c7
…#20229) Summary: Currently, `AccessibilityInfo.setAccessibilityFocus` is only available on iOS. The same behaviour can be achieved on Android by dispatching the proper accessibility event. I implemented the same function for Android, to make life slightly more convenient for the developer. Today, developers must write something like this: ``` if (Platform.OS === 'ios') { AccessibilityInfo.setAccessibilityFocus(reactTag) } else { UIManager.sendAccessibilityEvent(reactTag, 8) } ``` With this change, the following is enough for both Android and iOS: ``` AccessibilityInfo.setAccessibilityFocus(reactTag) ``` Pull Request resolved: facebook#20229 Differential Revision: D8874107 Pulled By: mdvacca fbshipit-source-id: a6ffd7bb89ce56d6d65b06419633a71dcf3d0733
Summary: @public Bump Babel to version 7 beta 54 This version has reversed the windows path denormalization so we need it to be able to fix windows paths. Reviewed By: rafeca Differential Revision: D8894700 fbshipit-source-id: 3ae1480b77380cae8070621d4729b21a34c4b928
Summary: This form of THIS_DIR resolves symlinks, which is better. Reviewed By: davidaurelio Differential Revision: D8661886 fbshipit-source-id: 90bf329e765d9623d103b03c5dd3b71fae9d9854
Summary: @public automatically applies lint fixes to YGLayout.h YGNode.h YGStyle.cpp YGStyle.h Reviewed By: astreet Differential Revision: D8913432 fbshipit-source-id: 488bf25db041ddb527565c26c1762c6ee4cae736
Summary: @public inlines some trivial constructors, destructors, and methods. Reviewed By: astreet Differential Revision: D8912691 fbshipit-source-id: 79840ef3322676deebed99391390d6c1796963b5
Summary: @public auto-fixes formatting for `Yoga.cpp`/`Yoga.h`. Submitted separately to keep other diffs cleaner. Reviewed By: astreet Differential Revision: D8868179 fbshipit-source-id: d0667f8bb909bb5ada1263aac6e22b0a8f8875ad
Summary: @public Inlines macros used for declarations of `YGNodeStyle*` and `YGNodeLayout*` functions. Benefits easier grepping and code base navigation. Reviewed By: astreet Differential Revision: D8868168 fbshipit-source-id: d6b1b70981a59a2214dc7d166435a1d1a844e1b7
Summary: @public Replacing the `YG_NODE_STYLE_PROPERTY_IMPL` macro with template code, in order to make code easier to edit and grep. Reviewed By: astreet Differential Revision: D8868184 fbshipit-source-id: f52537376fa8d4dd53aa98bb43e93279699dbdd5
…(1/3) Summary: Context: After discussing with @[1038750002:yungsters], `currentViewStates` is a very ambiguous name for a prop, especially because there are only two possible values. From a developer's perspective, it makes more sense to just call them `accessibilityStates` because the main use for them is to add states to Talkback and Voiceover. Also, the actual implementation of what we're changing under the hood in Native Code is abstracted away from developers using React Native, so as long as behavior is as they would expect, it makes more sense to change the name into a clear one. Changes in this Diff: Changed the prop name `currentViewStates` to `accessibilityStates` in js files Reviewed By: PeteTheHeat Differential Revision: D8896223 fbshipit-source-id: dfdb48dce69303a347dfccd194af2fef9beb776c
…roid (2/3) Summary: Context: After discussing with @[1038750002:yungsters], `currentViewStates` is a very ambiguous name for a prop, especially because there are only two possible values. From a developer's perspective, it makes more sense to just call them `accessibilityStates` because the main use for them is to add states to Talkback and Voiceover. Defense for changing name in Android: The actual implementation of what we're changing under the hood in Native Code is abstracted away from developers using React Native, so as long as behavior is as they would expect, it makes more sense to change the name into a clear one regardless of how it is implemented. Changes: changed the Prop name from `currentViewStates` to `accessibilityStates` in the BaseViewManager file where the view property is being exposed. Reviewed By: PeteTheHeat Differential Revision: D8896389 fbshipit-source-id: 35dcd9239fae016b790e528947994681684bd654
Summary: Context: After discussing with yungsters, `currentViewStates` is a very ambiguous name for a prop, especially because there are only two possible values. From a developer's perspective, it makes more sense to just call them `accessibilityStates` because the main use for them is to add states to Talkback and Voiceover. Also, the actual implementation of what we're changing under the hood in Native Code is abstracted away from developers using React Native, so as long as behavior is as they would expect, it makes more sense to change the name into a clear one. Changes in this Diff: Renamed the view property exposed to native iOS code from `currentViewStates` to `accessibilityStates` Also deleted setting the userInteractionEnabled view property, because we want to keep it as just an accessibility property. Reviewed By: PeteTheHeat Differential Revision: D8896821 fbshipit-source-id: 95674c9b7295f5b9e60994c297acdee83f6226d7
Summary: [![Build status](https://ci.appveyor.com/api/projects/status/79bl3twr4palqmra/branch/feature/appveyor?svg=true)](https://ci.appveyor.com/project/gengjiawen/react-native/branch/master) Add windows ci pass all current ci. none [GENERAL] [INTERNAL] [CI] - add windows ci Pull Request resolved: facebook#20281 Differential Revision: D8924625 Pulled By: hramos fbshipit-source-id: 6b933a8affe7c131c0fd02694f6177885a196611
Summary: Fix the calculation of offsetX in onLayout (ReactHorizontalScrollContainerView.java) that re-positions the updated layout. A private instance variable (oldWidth) is added in order to track the width difference between consecutive updates. (Issue report: facebook#19979) Reviewed By: mdvacca Differential Revision: D8772780 fbshipit-source-id: 969dcead550f4a3d24d06416b63d960492b7a124
Summary: Problem: The first ReactTextInputShadowNode layout calculation didn't consider the placeholder. When the layout with placeholder was actually being measured, its height was constraint by the previously calculated height, causing long placeholder content to be clipped. Fix: Access the placeholder property in ReactTextInputShadowNode, set the dummyEditText's hint with placeholder before ReactTextInputShadowNode's first measurement. Reviewed By: mdvacca Differential Revision: D8903108 fbshipit-source-id: 8f3e518d0395ac875807f9ea989a0b5bbe4b2a26
Summary: Fix ReactHorizontalScrollView so that its children won't overflow. (Task: https://our.intern.facebook.com/intern/tasks/?t=31128239) Reviewed By: achen1 Differential Revision: D8923947 fbshipit-source-id: 56c36b25c29a87a306d92544273603d0d086edc0
Summary: Set clipChildren to false by default in ReactRootView.java so that Overflow: visible/hidden will work for the root view. Moved sDefaultOverflowHidden from ReactViewGroup.java to ViewProps.java so that it can be used in both ReactViewGroup.java and ReactRootView.java. Reviewed By: mdvacca Differential Revision: D8727140 fbshipit-source-id: b593bed63e479cdbd22e4a025b936e6aeb28fc8c
Summary: Moves the `ReactNativeART` workaround to callers. There are legitimate use cases where you don't want to re-mount this component repeatedly. Reviewed By: fkgozali Differential Revision: D8928633 fbshipit-source-id: 0aafc1136ce9acb290e26a4f1a958819439bf2f0
Summary: See facebook#18104 Tested the above snack with: - stickyHeadersEnabled true/false - initialScrollIndex set and not Visibly verified consistent rendering. [GENERAL] [BUGFIX] [VirtualizedList] - Fix for jumpy content when initialScrollIndex specified Pull Request resolved: facebook#18105 Differential Revision: D8382122 Pulled By: sahrens fbshipit-source-id: 9421351469e8684bc61438605abbd9988b664c29
Summary: shipit @public [skip-ci] Reviewed By: mjesun Differential Revision: D8931237 fbshipit-source-id: db5bb09eb8ec01ae302cee16e4d6cb229f8244c9
Summary: @public Let's get rid of the "unbundle" terminology and instead use "RAM bundle", short for "Random Access Bundle" format. THIS IS A BREAKING CHANGE FOR OSS, as the command becomes `ram-bundle` instead of `unbundle`. It realy shouldn't be a command to start with (only a "format" specifier for the `bundle` command), but I don't want to do that change at this point. Reviewed By: davidaurelio Differential Revision: D8894433 fbshipit-source-id: 5565f9ae94c7c2d7f6b25f95ae45b64f27f6aec8
facebook#19834) Summary: I broke `currentlyFocusedField` when adding it back in ce3b7b8 because `this` no longer refers to the proper object because it is assigned here facebook@ce3b7b8#diff-b48972356bc8dca4a00747d002fc3dd5R330. This code was pretty prone to breaking so I simply removed the `this` usage and rely on a top level variable instead. Also moved everything to named functions. Pull Request resolved: facebook#19834 Differential Revision: D8943088 Pulled By: hramos fbshipit-source-id: 24d1470f6117138a5978fb7e467147847a9f3658
Summary: This PR is based on facebook#13342 by pvinis and fixes facebook#14442. As suggested in the discussion on the PR mentioned above, I moved the code from `React/Views/RCTPickerManager.m` to the `initWithFrame` function in `React/Views/RCTPicker.m` and verified that it still fixes the problem. Before the change in this PR the selection indicator lines are missing when the Picker is initially added to the View and only appear after changing to a different Tab and back. This happens both in the Simulator and my real device (iPhone 6S on iOS 11.3). ![beforechange](https://user-images.githubusercontent.com/7568362/38824104-7b294cae-41a8-11e8-8609-7a647ab3adb8.png) After the change, the indicator lines always appear. I did not notice any side effects of this change when playing around with the Picker in different configurations. ![afterchange](https://user-images.githubusercontent.com/7568362/38824109-82a5b382-41a8-11e8-8af3-ca07c8b2c30e.png) facebook#13342 also fixes this issue but appears to be inactive. [IOS] [BUGFIX] [PickerIOS] - Fixed missing selection indicator lines Pull Request resolved: facebook#18885 Differential Revision: D8945483 Pulled By: hramos fbshipit-source-id: 2b6c6f42559691530b062503feb24bc305f4a8af
On Android, placeholder of TextInput is not completely visible. TextInput had some default fixed width. On iOS it is perfectly visible. This commit makes it consistent on both the platforms. Before: https://user-images.githubusercontent.com/39303760/43045649-54cb45e8-8dda-11e8-9935-059ad8ee9def.png After: https://user-images.githubusercontent.com/39303760/43045650-54fb9428-8dda-11e8-88b8-176839d6c0a7.png Testing code: https://github.com/jainkuniya/TestTextInput/blob/a0a6fbb491e979fe7cc9d0a580d67790b3481eb8/App.js
gnprice
pushed a commit
that referenced
this pull request
Aug 3, 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.
Motivation
On Android, placeholder of TextInput is not completely visible.
TextInput had some default fixed width. On iOS it is perfectly
visible.
This commit makes it consistent on both the platforms.
Before:
https://user-images.githubusercontent.com/39303760/43045649-54cb45e8-8dda-11e8-9935-059ad8ee9def.png
After:
https://user-images.githubusercontent.com/39303760/43045650-54fb9428-8dda-11e8-88b8-176839d6c0a7.png
Testing code:
https://github.com/jainkuniya/TestTextInput/blob/a0a6fbb491e979fe7cc9d0a580d67790b3481eb8/App.js
Test Plan
Clone code from https://github.com/jainkuniya/TestTextInput/blob/a0a6fbb491e979fe7cc9d0a580d67790b3481eb8/App.js and test on Android with and without this commit.
Before:
https://user-images.githubusercontent.com/39303760/43045649-54cb45e8-8dda-11e8-9935-059ad8ee9def.png
After:
https://user-images.githubusercontent.com/39303760/43045650-54fb9428-8dda-11e8-88b8-176839d6c0a7.png
Release Notes
[ANDROID] [BUGFIX] [TextInput] - Fix placeholder is not completely visible on Android.