forked from facebook/react-native
-
Notifications
You must be signed in to change notification settings - Fork 132
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
[Cherry Pick] Remove some usages of APIs deprecated in iOS & removed in visionOS #2034
Merged
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 was referenced Jan 15, 2024
lcapkovic
approved these changes
Jan 15, 2024
…on (facebook#41125) Summary: The goal of this PR is to migrate deprecated `UIMenuController` to `UIEditMenuInteraction`. `UIMenuController` has been deprecated in iOS 16 and for that reason it's not available for VisionOS. https://github.com/facebook/react-native/assets/52801365/fed994be-d444-462a-9ed0-39b50531425d bypass-github-export-checks <!-- Help reviewers and the release process by writing your own changelog entry. Pick one each for the category and type tags: [ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message For more details, see: https://reactnative.dev/contributing/changelogs-in-pull-requests --> [IOS] [CHANGED] - Migrate RCTTextView to UIEditMenuInteraction Pull Request resolved: facebook#41125 Test Plan: Launch RNTester and check for "Selectable Text" example and check that it works for iOS 16/17. Reviewed By: javache Differential Revision: D50551016 Pulled By: cipolleschi fbshipit-source-id: 558ecc5a04a5daa9c4360fabddcab28fba72a323
…facebook#41214) Summary: The goal of this PR is to migrate from deprecated `[UIScreen mainScreen]` and get the `displayScale` from currentTraitCollection. Both of those return the same values. [IOS] [CHANGED] - retrieve screen scale from trait collection instead of UIScreen mainScreen Pull Request resolved: facebook#41214 Test Plan: Go to Dimensions example and check that everything works as expected <img src="https://github.com/facebook/react-native/assets/52801365/53141e67-63e2-4c3b-818e-6a232aae8a5b" height="500" /> <img src="https://github.com/facebook/react-native/assets/52801365/33728fce-0298-459c-b63e-a0b8ea34bde1" height="500" /> Reviewed By: NickGerleman Differential Revision: D50736794 Pulled By: javache fbshipit-source-id: d512cba1120204be95caf43ac9916f6597e2ccc8
Saadnajmi
force-pushed
the
cherry-pick
branch
from
January 15, 2024 03:46
71db28c
to
9ee81c3
Compare
…k#41388) Summary: The goal for this PR is to further remove references for `[UIScreen mainScreen]` and migrate them to use trait collections. This helps out of tree platforms like visionOS (where the `UIScreen` is not available). bypass-github-export-checks [INTERNAL] [CHANGED] - use currentTraitCollection for FBSnapshotTestController.m [IOS] [CHANGED] - use key window width to assign the correct width for RCTDevLoadingView Pull Request resolved: facebook#41388 Test Plan: – Check if tests passes - Check if `RCTDevLoadingView` shows up correctly. Screenshot: ![CleanShot 2023-11-09 at 13 48 48@2x](https://github.com/facebook/react-native/assets/52801365/4c91399e-f70a-4e78-8288-bc7b8377c980) Reviewed By: javache Differential Revision: D51156230 Pulled By: cipolleschi fbshipit-source-id: bbe711e0281046a082fd1680b55e2d117915ad00
…acebook#41935) Summary: This PR optimises RCTKeyWindow() calls in `RCTForceTouchAvailable` method. This method was calling RCTKeyWindow hundreds of times while scrolling on the screen. Before: On the video you can see that this function is being called **350 times** just from simple list scrolling. RCTKeyWindow is looping over app windows so it's not a cheap operation. https://github.com/facebook/react-native/assets/52801365/5b69cbd6-d148-4d06-b672-bd7b60472c13 After: the function is called only few times at the start of the app to get initial layout measurements. Solution: I think we can check just once for the force touch capabilities as devices can't change it on the fly bypass-github-export-checks ## Changelog: [IOS] [FIXED] - Optimise RCTKeyWindow() calls in RCTForceTouchAvailable method Pull Request resolved: facebook#41935 Test Plan: CI Green Reviewed By: dmytrorykun Differential Revision: D52172510 Pulled By: cipolleschi fbshipit-source-id: 881a3125a2af4376ce65d785d8eee09c7d8f1f16
…window apps (facebook#42036) Summary: This PRs refactors `RCTKeyWindow()` to be more resilient and work in multi-window apps. After my recent PR got merged (facebook#41935) it significantly reduced the number of calls to `RCTKeyWindow()` and now it's called only when necessary. So this PR makes this function a bit more resource intensive but it guarantees that we will find current scene's key window. This would also fix some brownfield scenarios where React Native is working in multi-window mode and in the future allow us to more easily adopt `UIWindowSceneDelegate` bypass-github-export-checks [IOS] [CHANGED] - refactor `RCTKeyWindow` to be more resilient and work in multi-window apps Pull Request resolved: facebook#42036 Test Plan: Checkout RNTester example for Alerts and LoadingView. https://github.com/facebook/react-native/assets/52801365/8cf4d698-db6d-4a12-8d8d-7a5acf34858b Reviewed By: huntie Differential Revision: D52431720 Pulled By: cipolleschi fbshipit-source-id: 0d6ef1d46b2428c30c9f64dae66b95dbc69f0a3b
Saadnajmi
force-pushed
the
cherry-pick
branch
from
January 15, 2024 04:14
9ee81c3
to
5717eea
Compare
Saadnajmi
changed the title
[Cherry Pick] Cherry Pick commits that remove APIs deprecated in iOS & removed in visionOS
[Cherry Pick] Remove some usages of APIs deprecated in iOS & removed in visionOS
Jan 15, 2024
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.
Please select one of the following
Summary:
Cherry pick several commits that will help make adding visionOS support easier. These will be back ported to
0.73-stable
and0.72-stable
.Specific commits:
UIMenuController
which is no longer available on visionOS[UIScreen mainScreen]
usage[UIScreen mainScreen]
usageRCTKeyWindow
Test Plan:
CI should pass