{"push_id":2675696277,"size":767,"distinct_size":1,"ref":"refs/heads/text-0.55","head":"ec47acf377d3a5836630ba011baa8067e4d3cc56","before":"8537e6f3ae5ce32e7d9613dcc67ef262a81c4c49","commits":[{"sha":"1dde989919d2c272ca7fcaa5c4b2d9ee02c490a0","author":{"name":"Ram N","email":"237b5017397b4de0dc26b47e731620a576aaaae8@fb.com"},"message":"Add support for springDamping in SpringInterpolator\n\nReviewed By: mdvacca\n\nDifferential Revision: D7201334\n\nfbshipit-source-id: 50929b4294188cd5a2a8ffa2080c38c0a9983535","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/1dde989919d2c272ca7fcaa5c4b2d9ee02c490a0"},{"sha":"0459e4ffaadb161598ce1a5b14c08d49a9257c9c","author":{"name":"Moti Zilberman","email":"8b603b22c9c89c36ffb170e88372622acf1aa8d8@gmail.com"},"message":"Support Image resizeMode=repeat on Android\n\nSummary:\n`<Image resizeMode=\"repeat\" />` for Android, matching the iOS implementation (#7968). (Non-goal: changing the component's API for finer-grained control / feature parity with CSS - this would be nice in the future)\n\nAs requested in e.g. #14158.\n\nGiven https://github.com/facebook/fresco/issues/1575, and lacking the context to follow the specific recommendations in https://github.com/facebook/fresco/issues/1575#issuecomment-267004303, I've opted for a minimal change within RN itself.\n\nIt's likely that performance can be improved by offloading this work to Fresco in some clever way; but I'm assuming that the present naive approach is still an improvement over a userland implementation with `onLayout` and multiple `<Image>` instances.\n\n- Picking up on a TODO note in the existing code, I implemented `MultiPostprocessor` to allow arbitrary chaining of Fresco-compatible postprocessors inside `ReactImageView`.\n- Rather than extensively refactor `ImageResizeMode`, `ReactImageManager` and `ReactImageView`, I mostly preserved the existing API that maps `resizeMode` values to [`ScaleType`](http://frescolib.org/javadoc/reference/com/facebook/drawee/drawable/ScalingUtils.ScaleType.html) instances, and simply added a second mapping, to [`TileMode`](https://developer.android.com/reference/android/graphics/Shader.TileMode.html).\n- To match the iOS rendering exactly for oversized images, I found that scaling with a custom `ScaleType` was required - a kind of combination of `CENTER_INSIDE` and `FIT_START` which Fresco doesn't provide - so I implemented that as `ScaleTypeStartInside`. (This is, frankly, questionable as the default behaviour on iOS to begin with - but I am aiming for parity here)\n- `resizeMode=\"repeat\"` is therefore unpacked by the view manager to the effect of:\n  ```js\n     view.setScaleType(ScaleTypeStartInside.INSTANCE);\n     view.setTileMode(Shader.TileMode.REPEAT);\n   ```\n  And the added postprocessing in the view (in case of a non-`CLAMP` tile mode) consists of waiting for layout, allocating a destination bitmap and painting the source bitmap with the requested tile mode and scale type.\n\nNote that as in https://github.com/facebook/react-native/pull/17398#issue-285235247, I have neither updated nor tested the \"Flat\" UI implementation - everything compiles but I've taken [this comment](https://github.com/facebook/react-native/issues/12770#issuecomment-294052694) to mean there's no point in trying to wade through it on my own right now; I'm happy to tackle it if given some pointers.\n\nAlso, I'm happy to address any code style issues or other feedback; I'm new to this codebase and a very infrequent Android/Java coder.\n\nTested by enabling the relevant case in RNTester on Android.\n\n| iOS | Android |\n|-|-|\n| <img src=https://user-images.githubusercontent.com/2246565/34461897-4e12008e-ee2f-11e7-8581-1dc0cc8f2779.png width=300>| <img src=https://user-images.githubusercontent.com/2246565/34461894-40b2c8ec-ee2f-11e7-8a8f-96704f3c8caa.png width=300> |\n\nDocs update: https://github.com/facebook/react-native-website/pull/106\n\n[ANDROID] [FEATURE] [Image] - Implement resizeMode=repeat\nCloses https://github.com/facebook/react-native/pull/17404\n\nReviewed By: achen1\n\nDifferential Revision: D7070329\n\nPulled By: mdvacca\n\nfbshipit-source-id: 6a72fcbdcc7c7c2daf293dc1d8b6728f54ad0249","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/0459e4ffaadb161598ce1a5b14c08d49a9257c9c"},{"sha":"ab92c00245c0ce717819ddb0ab8b9204d4c13c34","author":{"name":"Eli White","email":"e33c64039b96e6fa2799db9fa7b0a25461d4f21d@fb.com"},"message":"Convert Text to ES6 Class\n\nSummary: Utilizing ES6 Classes instead of createReactClass lets us actually enforce the way Text is used via Flow.\n\nReviewed By: fkgozali\n\nDifferential Revision: D7227755\n\nfbshipit-source-id: 8e8285f9ebb3783a0dc4837c37c163178910ff9f","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/ab92c00245c0ce717819ddb0ab8b9204d4c13c34"},{"sha":"7a1c618de6a222f90f6525e7756a018e83b9134a","author":{"name":"Héctor Ramos","email":"4c203a541284f930d7e6ef50077b5dcdec577657@fb.com"},"message":"Change newly imported file to MIT license\n\nSummary:\nThe project at large switched to MIT last month. A PR that was opened prior to the change was merged, this PR updates the file to use the correct license.\n\nNone, trivial PR\n\n[ANDROID] [MINOR] [Image] Update license\nCloses https://github.com/facebook/react-native/pull/18343\n\nDifferential Revision: D7252836\n\nPulled By: hramos\n\nfbshipit-source-id: b7c207c782f4bf19c12d121e86f394e52326a5ab","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/7a1c618de6a222f90f6525e7756a018e83b9134a"},{"sha":"aa323d4aa9d87874f45eda8a4798086fa91fd08e","author":{"name":"Héctor Ramos","email":"4c203a541284f930d7e6ef50077b5dcdec577657@fb.com"},"message":"Use MIT license\n\nSummary: Closes https://github.com/facebook/react-native/pull/18352\n\nDifferential Revision: D7257144\n\nPulled By: hramos\n\nfbshipit-source-id: 477ff82f74cfa3fd0681c9522cc5199a60b24921","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/aa323d4aa9d87874f45eda8a4798086fa91fd08e"},{"sha":"c136c54ff0211e2bf149fab600cd6e295f9d19dd","author":{"name":"Peter Argany","email":"f5fe7fa9f87f0b99fe5fd9e98206e714c628cf90@fb.com"},"message":"Refactor RCTInputAccessoryView view hierarchy and names\n\nReviewed By: shergin\n\nDifferential Revision: D7196162\n\nfbshipit-source-id: 07a5c13d4cdb876f5a632d7d53859eab5e235f49","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/c136c54ff0211e2bf149fab600cd6e295f9d19dd"},{"sha":"ca898f4367083e0943603521a41c48dec403e6c9","author":{"name":"Teddy Martin","email":"37724ffe252eeaf73a83eec3f3d99f21239f5679@gmail.com"},"message":"Add docs for Swift usage to RCTBridgeModule.h\n\nSummary:\nClarifies how to get a reference to RCTBridge from a Swift RCTBridgeModule.\n\n<!--\nThank you for sending the PR! We appreciate you spending the time to work on these changes.\n\nHelp us understand your motivation by explaining why you decided to make this change.\n\nYou can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html\n\nHappy contributing!\n\n-->\n\nIn writing native modules for Swift, I have run into issues where the documentation applies only to Objective-C and does not supply adequate information for how one might accomplish something in Swift.\n\nThis is a good example, where the `synthesize` method simply does not apply to Swift code.\n\n[IOS][ENHANCEMENT][Base/RCTBridgeModule.h] Add documentation for Swift usage.\n<!--\nHelp reviewers and the release process by writing your own release notes\n\n**INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.**\n\n  CATEGORY\n[----------]        TYPE\n[ CLI      ]   [-------------]      LOCATION\n[ DOCS     ]   [ BREAKING    ]   [-------------]\n[ GENERAL  ]   [ BUGFIX      ]   [-{Component}-]\n[ INTERNAL ]   [ ENHANCEMENT ]   [ {File}      ]\n[ IOS      ]   [ FEATURE     ]   [ {Directory} ]   |-----------|\n[ ANDROID  ]   [ MINOR       ]   [ {Framework} ] - | {Message} |\n[----------]   [-------------]   [-------------]   |-----------|\n\n[CATEGORY] [TYPE] [LOCATION] - MESSAGE\n\n EXAMPLES:\n\n [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things\n [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput\n [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with\n [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word\n [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position\n [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see\n-->\nCloses https://github.com/facebook/react-native/pull/18231\n\nDifferential Revision: D7262850\n\nPulled By: hramos\n\nfbshipit-source-id: c6babb3edd786be8571eb49258d594f2fb99141d","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/ca898f4367083e0943603521a41c48dec403e6c9"},{"sha":"41acb0a75b1ed5b4cf2feb74c64113a06a284e85","author":{"name":"Naris Siamwalla","email":"3a06bfc32ff69dce28ce9f4acc63b71f749068ba@fb.com"},"message":"Fix clang-6 compile error (virtual destructor)\n\nReviewed By: smeenai\n\nDifferential Revision: D7264312\n\nfbshipit-source-id: f0567452127ceba6cfa13d05bb2a00a5af7aac05","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/41acb0a75b1ed5b4cf2feb74c64113a06a284e85"},{"sha":"9737774b965d1b4e875f697b9c004fdcbafe7698","author":{"name":"Ram N","email":"237b5017397b4de0dc26b47e731620a576aaaae8@fb.com"},"message":"Fix crash in Sapienz bot for Interpolator type\n\nReviewed By: mdvacca\n\nDifferential Revision: D7252818\n\nfbshipit-source-id: 30c585a2e6f6c2d7a7e7013c26c6228d8ef29aa6","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/9737774b965d1b4e875f697b9c004fdcbafe7698"},{"sha":"db061ea8c7b78d7e9df4a450c9e7a24d9b2382b4","author":{"name":"Janic Duplessis","email":"f87e5dba9accef1a9a04e8942bedbac1246035be@gmail.com"},"message":"Don't wrap ListEmptyComponent in an extra view\n\nSummary:\nA common UI pattern for list empty states is some text/images centered inside the visible part of the list. This is pretty hard to do currently because we wrap ListEmptyComponent with an extra view with no way to style it so we cannot just use `flex: 1` to make it fill the available space.\n\n- Added an example of ListEmptyComponent in the FlatList example in RNTester\n\nBefore (no way to make ListEmptyComponent fill the space):\n<img width=\"377\" alt=\"screen shot 2018-03-05 at 5 24 15 pm\" src=\"https://user-images.githubusercontent.com/2677334/37003152-129db3ac-209a-11e8-9600-110f10d57144.png\">\n\nAfter:\n<img width=\"377\" alt=\"screen shot 2018-03-05 at 5 09 20 pm\" src=\"https://user-images.githubusercontent.com/2677334/37002809-e6971178-2098-11e8-8cf7-74bfb2f6a992.png\">\n\n- Tested some edge cases like returning null from the ListEmptyComponent\n\n- Tested in an app that uses FlatList + ListEmptyComponent\n\n[GENERAL] [MINOR] [VirtualizedList] - Don't wrap ListEmptyComponent in an extra view\nCloses https://github.com/facebook/react-native/pull/18206\n\nDifferential Revision: D7266274\n\nPulled By: sahrens\n\nfbshipit-source-id: 4636d2418474a4c86ac63e5e18a9afc391a518c5","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/db061ea8c7b78d7e9df4a450c9e7a24d9b2382b4"},{"sha":"8466db0fd355aea778ff71cfb10c927cfd18a551","author":{"name":"Sahil Ohri","email":"e58dcb8c0c29f0bd6e47f32b5cc5f04b04c3af1d@fb.com"},"message":"Revert #17927\n\nSummary:\nThis change is a revert of [#17927](https://github.com/facebook/react-native/pull/17927) pull-request.\nThe pull-request caused an issue with the keyboard covering the text field at the bottom of the scroll view.\n\nReviewed By: shergin\n\nDifferential Revision: D7246609\n\nfbshipit-source-id: 149f825274c4fa79ab593f1bae3602667d16ddee","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/8466db0fd355aea778ff71cfb10c927cfd18a551"},{"sha":"af4a36337de8befbf26017a9d0773a18d300477d","author":{"name":"Pritesh Nandgaonkar","email":"eb1b372512d5b151094e697985f79cb2eeb44b33@fb.com"},"message":"Remove the usage of YGUndefined in the default values of Border in YGStyle\n\nReviewed By: emilsjolander\n\nDifferential Revision: D7195115\n\nfbshipit-source-id: e635cf55ac94d8a90caef6cafce281579da2cbfc","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/af4a36337de8befbf26017a9d0773a18d300477d"},{"sha":"9f7e70363a36807f0113fb958b0438cc5003a66a","author":{"name":"Pritesh Nandgaonkar","email":"eb1b372512d5b151094e697985f79cb2eeb44b33@fb.com"},"message":"Changed the return type of YGResolveValue\n\nReviewed By: emilsjolander\n\nDifferential Revision: D7195099\n\nfbshipit-source-id: 72c4163cd08691cf6e40df05394cc52e83b0de14","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/9f7e70363a36807f0113fb958b0438cc5003a66a"},{"sha":"5b3d59598a27bb200c06e7df3105420eb1ffd950","author":{"name":"Pritesh Nandgaonkar","email":"eb1b372512d5b151094e697985f79cb2eeb44b33@fb.com"},"message":"Change the type of flex to YGFloatOptional\n\nReviewed By: emilsjolander\n\nDifferential Revision: D7211327\n\nfbshipit-source-id: 0d979b6ba00317317b98bbc6e63979c7f1feb2da","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/5b3d59598a27bb200c06e7df3105420eb1ffd950"},{"sha":"3274e9fa519abf411304c82e6450dc6e4346d826","author":{"name":"Pritesh Nandgaonkar","email":"eb1b372512d5b151094e697985f79cb2eeb44b33@fb.com"},"message":"Change the type of flexGrow to YGFloatOptional\n\nReviewed By: emilsjolander\n\nDifferential Revision: D7215355\n\nfbshipit-source-id: 1298ee332551d44e4d070169a1e4103d005c4f43","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/3274e9fa519abf411304c82e6450dc6e4346d826"},{"sha":"e3af1508c8ec4e68ab85d8a881952ebf637dd5f4","author":{"name":"Pritesh Nandgaonkar","email":"eb1b372512d5b151094e697985f79cb2eeb44b33@fb.com"},"message":"Change the type of flexShrink to YGFloatOptional\n\nReviewed By: emilsjolander\n\nDifferential Revision: D7232171\n\nfbshipit-source-id: 3111119d3d74a7035c01132bff61b30cf44e120a","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/e3af1508c8ec4e68ab85d8a881952ebf637dd5f4"},{"sha":"f3ef8f85103938162d77622a2730790dfb3f2d7d","author":{"name":"Pritesh Nandgaonkar","email":"eb1b372512d5b151094e697985f79cb2eeb44b33@fb.com"},"message":"Remove the use of YGUndefined for flex-basis\n\nReviewed By: emilsjolander\n\nDifferential Revision: D7243924\n\nfbshipit-source-id: 2bfaca1a5e3da40d5292a273cabf705f59c9d666","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/f3ef8f85103938162d77622a2730790dfb3f2d7d"},{"sha":"321b107685e8f5d3bd36f673d81041ec3876b34e","author":{"name":"Pritesh Nandgaonkar","email":"eb1b372512d5b151094e697985f79cb2eeb44b33@fb.com"},"message":"Expose layout diffing flag to java\n\nReviewed By: emilsjolander\n\nDifferential Revision: D7272067\n\nfbshipit-source-id: e67e82eb057e4c7124904c715f9dca4dcfea21ea","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/321b107685e8f5d3bd36f673d81041ec3876b34e"},{"sha":"a01ae8b68a789e9b6fadf5e0707432e3667c6e7b","author":{"name":"Rafael Oleza","email":"2cf5b502deae2e387c60721eb8244c243cb5c4e1@fb.com"},"message":"Bump metro@0.30.1\n\nReviewed By: BYK\n\nDifferential Revision: D7259632\n\nfbshipit-source-id: ef713d35a953cd829d6a8684d2fa9cfa30e69ac4","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/a01ae8b68a789e9b6fadf5e0707432e3667c6e7b"},{"sha":"4f8328bf2fb71b104baa70178a1e1f9636773c6a","author":{"name":"Héctor Ramos","email":"4c203a541284f930d7e6ef50077b5dcdec577657@fb.com"},"message":"React sync for revisions ab4280b...ad9544f\n\nReviewed By: bvaughn\n\nDifferential Revision: D7256390\n\nfbshipit-source-id: 9fe1324da93cb8f4a7f478e1037944774b9b95ff","distinct":false,"url":"https://api.github.com/repos/gnprice/react-native/commits/4f8328bf2fb71b104baa70178a1e1f9636773c6a"}]}
{"actor":{"display_login":"gnprice"}}