Skip to content

Conversation

@tboba
Copy link
Contributor

@tboba tboba commented Jan 31, 2024

Description

Unfortunately, the Tap gesture as the default gesture in ScreenGestureDetector breaks the back button on Android and iOS. Somehow, gesture detector while "tapping" just taps and holds the back button, resulting in breaking CI and our testing apps.
This PR changes this gesture to Fling, resulting in correct behavior. It cannot be changed to Manual gesture, since it also breaks the iOS CI.

Changes

  • Changed gesture from Tap to Fling
  • Updated detox from 20.11.4 to 20.17.0
  • Fixed Android E2E tests by building the bundle with .so files on x86_64 architecture
  • Changed scroll action that was opening background apps preview on Android 33 (and higher) levels
  • Adjusted CI parameters, fixed the typo of artifact names

Test code and steps to reproduce

You can go through Example app and try to click back button in Events. Right now it should work properly.

Checklist

  • Ensured that CI passes

@tboba tboba requested a review from WoLewicki January 31, 2024 15:41
@tboba tboba self-assigned this Jan 31, 2024
@tboba tboba changed the title fix: Change default gesture from Tap to Manual fix: change default gesture from Tap to Manual Jan 31, 2024
Co-authored-by: m-bert <michal.bert@swmansion.com>
.toBeVisible()
.whileElement(by.id('root-screen-examples-scrollview'))
.scroll(200, 'down');
.scroll(100, 'down', NaN, 0.85);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the reason for changing this value?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see that on higher Android APIs with gestures as a device navigation, phone can accidentally go into the preview of apps in the background - that's why I've added the offset here

@WoLewicki
Copy link
Member

Also, I am not sure I understand what is going on exactly. Why does gesture-handler call the tap? Are we testing custom animations on CI?

@tboba
Copy link
Contributor Author

tboba commented Feb 1, 2024

@WoLewicki we're not testing them, but this change does not only limit to the case of the CI. Because of the default Tap option as an empty gesture, Android and iOS simulate that motion as holding the element (I don't specifically know why), resulting in unability to click "go back" button, because it detects the click as the hold motion. Fortunately, changing the empty gesture as Manual or Fling fixes that issue.
Also, unfortunately fixing this behavior does not fix the CI problem at all. Sorry for early requesting for code review!

@WoLewicki
Copy link
Member

Ok keep me updated 🚀

shottah referenced this pull request in Kolektivo/Kolektivo-Mobile-App May 15, 2024
…xyz#5239)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[react-native-screens](https://togithub.com/software-mansion/react-native-screens)
| [`^3.29.0` ->
`^3.30.1`](https://renovatebot.com/diffs/npm/react-native-screens/3.29.0/3.30.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-screens/3.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-screens/3.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-screens/3.29.0/3.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-screens/3.29.0/3.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>software-mansion/react-native-screens
(react-native-screens)</summary>

###
[`v3.30.1`](https://togithub.com/software-mansion/react-native-screens/releases/tag/3.30.1)

[Compare
Source](https://togithub.com/software-mansion/react-native-screens/compare/3.30.0...3.30.1)

Patch release addressing an issue with building a package due to the
missing submodule from `postinstall` command.

#### 🔢 Miscellaneous

- Remove postinstall step from package.json by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2081](https://togithub.com/software-mansion/react-native-screens/pull/2081)

**Full Changelog**:
software-mansion/react-native-screens@3.30.0...3.30.1

###
[`v3.30.0`](https://togithub.com/software-mansion/react-native-screens/releases/tag/3.30.0)

[Compare
Source](https://togithub.com/software-mansion/react-native-screens/compare/3.29.0...3.30.0)

Minor release including custom screen transitions, adding support for
VisionOS, supporting `slide_from_left` animation on iOS and fixing other
aspects (including wrong targets for touchable components on Fabric).
Thanks for following along! 💙

**Note**: Please note that support for React Native versions lower than
0.68 have been **dropped**. Older versions may still continue to work
with this and newer releases of react-native-screens, but bugs from
deprecated versions will not be considered for repair.

#### What's Changed

#### 👍 Improvements

- **Custom screen transitions** - In 3.30.0, we've introduced a support
for custom transition animations while making a "go back" gesture. Made
by [@&#8203;piaskowyk](https://togithub.com/piaskowyk) and
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1913](https://togithub.com/software-mansion/react-native-screens/pull/1913)

- **Support for VisionOS is here!** - From now, react-native-screens
offers bundled support for VisionOS platform. Made by
[@&#8203;okwasniewski](https://togithub.com/okwasniewski) in
[https://github.com/software-mansion/react-native-screens/pull/2025](https://togithub.com/software-mansion/react-native-screens/pull/2025)

- **`slide_from_left` transition on iOS** - You can use
`slide_from_left` animation that will be used for pushing or popping a
new screen. Made by
[@&#8203;kirillzyusko](https://togithub.com/kirillzyusko) in
[https://github.com/software-mansion/react-native-screens/pull/2057](https://togithub.com/software-mansion/react-native-screens/pull/2057)

- Add `cancelSearch` command on SearchBar by
[@&#8203;Jasonzj](https://togithub.com/Jasonzj) in
[https://github.com/software-mansion/react-native-screens/pull/1987](https://togithub.com/software-mansion/react-native-screens/pull/1987)

- Fixed Android screen stack animation by
[@&#8203;janicduplessis](https://togithub.com/janicduplessis) in
[https://github.com/software-mansion/react-native-screens/pull/2019](https://togithub.com/software-mansion/react-native-screens/pull/2019)

#### 🐛 Bug fixes

- Not working hitslop for headerRight/Left views by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1995](https://togithub.com/software-mansion/react-native-screens/pull/1995)
- App freeze when navigating back from any modal nested in contained
modal by [@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1996](https://togithub.com/software-mansion/react-native-screens/pull/1996)
- Incorrect safe area on transparent modals using landscape orientation
by [@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2008](https://togithub.com/software-mansion/react-native-screens/pull/2008)
- Invalid orientation of contained modals by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2011](https://togithub.com/software-mansion/react-native-screens/pull/2011)
- Modify the decorFitsSystemWindow parameter in setNavigationBarHidden
by [@&#8203;jiyong1](https://togithub.com/jiyong1) in
[https://github.com/software-mansion/react-native-screens/pull/1988](https://togithub.com/software-mansion/react-native-screens/pull/1988)
- Avoid race condition related to state on the new arch by
[@&#8203;j-piasecki](https://togithub.com/j-piasecki) in
[https://github.com/software-mansion/react-native-screens/pull/2024](https://togithub.com/software-mansion/react-native-screens/pull/2024)
- Check for multiple screens while changing screen orientation by
[@&#8203;uzegonemad](https://togithub.com/uzegonemad) in
[https://github.com/software-mansion/react-native-screens/pull/2035](https://togithub.com/software-mansion/react-native-screens/pull/2035)
- Fix setting incorrect measure with native header by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) and
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2028](https://togithub.com/software-mansion/react-native-screens/pull/2028)
- Add notifying for header height change, fix header height values by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2075](https://togithub.com/software-mansion/react-native-screens/pull/2075)
- Change context while running `runOnUiQueueThread` on 0.73 with
Bridgeless by [@&#8203;cortinico](https://togithub.com/cortinico) in
[https://github.com/software-mansion/react-native-screens/pull/2022](https://togithub.com/software-mansion/react-native-screens/pull/2022)
- Use reactApplicationContext in onScreenChanged by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/2046](https://togithub.com/software-mansion/react-native-screens/pull/2046)
- Remove calculating status bar height in useAnimatedHeaderHeight when
header is not shown by [@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2033](https://togithub.com/software-mansion/react-native-screens/pull/2033)
- Handle setting `display` for `_viewConfig` attribute by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) and
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2071](https://togithub.com/software-mansion/react-native-screens/pull/2071)
- Fix crash with searchResultsController in RNSSearchBar by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2004](https://togithub.com/software-mansion/react-native-screens/pull/2004)
- Add constraints for velocity in `goBackGesture` screen transition by
[@&#8203;piaskowyk](https://togithub.com/piaskowyk) in
[https://github.com/software-mansion/react-native-screens/pull/2061](https://togithub.com/software-mansion/react-native-screens/pull/2061)
- Add view check for getting StackView in `goBackGesture` by
[@&#8203;piaskowyk](https://togithub.com/piaskowyk) in
[https://github.com/software-mansion/react-native-screens/pull/2060](https://togithub.com/software-mansion/react-native-screens/pull/2060)
- Change default value of context of ScreenGestureDetector, add warning
for goBackGesture by [@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2013](https://togithub.com/software-mansion/react-native-screens/pull/2013)
- Move GHContext from gesture-handler to native-stack by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2017](https://togithub.com/software-mansion/react-native-screens/pull/2017)
- Change default gesture from Tap to Fling, fix failing CI by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2023](https://togithub.com/software-mansion/react-native-screens/pull/2023)

#### 🔢 Miscellaneous

- **Drop React Native 0.64 - 0.67 since 3.30.0** by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2036](https://togithub.com/software-mansion/react-native-screens/pull/2036)
- Remove mixed CJS/ESM, refactorize index.native.tsx by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/1982](https://togithub.com/software-mansion/react-native-screens/pull/1982)
- Add react-navigation as submodule & use it in test applications by
[@&#8203;kkafar](https://togithub.com/kkafar) and
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/1993](https://togithub.com/software-mansion/react-native-screens/pull/1993)
- Unify member-field naming convention in Kotlin by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1999](https://togithub.com/software-mansion/react-native-screens/pull/1999)
- Update compatibility table with supported RN versions with Fabric by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/2001](https://togithub.com/software-mansion/react-native-screens/pull/2001)
- Change name of `headerBackButtonClicked` event by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/2015](https://togithub.com/software-mansion/react-native-screens/pull/2015)
- Stabilize Android E2E tests by
[@&#8203;kirillzyusko](https://togithub.com/kirillzyusko) in
[https://github.com/software-mansion/react-native-screens/pull/2062](https://togithub.com/software-mansion/react-native-screens/pull/2062)
- Update Podfiles in Example projects, update RN in FabricExample to
0.73 by [@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/1989](https://togithub.com/software-mansion/react-native-screens/pull/1989)
- Update React Native to 0.73.4, change Cocoapods version by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2032](https://togithub.com/software-mansion/react-native-screens/pull/2032)
- Configure yarn version in package.json by
[@&#8203;bakkerjoeri](https://togithub.com/bakkerjoeri) in
[https://github.com/software-mansion/react-native-screens/pull/2077](https://togithub.com/software-mansion/react-native-screens/pull/2077)
- Bump ip from 1.1.8 to 1.1.9 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/software-mansion/react-native-screens/pull/2038](https://togithub.com/software-mansion/react-native-screens/pull/2038)
- Bump ip from 1.1.8 to 1.1.9 in example apps by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/2044](https://togithub.com/software-mansion/react-native-screens/pull/2044)

#### New Contributors

- [@&#8203;jiyong1](https://togithub.com/jiyong1) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1988](https://togithub.com/software-mansion/react-native-screens/pull/1988)
- [@&#8203;Jasonzj](https://togithub.com/Jasonzj) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1987](https://togithub.com/software-mansion/react-native-screens/pull/1987)
- [@&#8203;j-piasecki](https://togithub.com/j-piasecki) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/2024](https://togithub.com/software-mansion/react-native-screens/pull/2024)
- [@&#8203;cortinico](https://togithub.com/cortinico) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/2022](https://togithub.com/software-mansion/react-native-screens/pull/2022)
- [@&#8203;okwasniewski](https://togithub.com/okwasniewski) made their
first contribution in
[https://github.com/software-mansion/react-native-screens/pull/2025](https://togithub.com/software-mansion/react-native-screens/pull/2025)
- [@&#8203;uzegonemad](https://togithub.com/uzegonemad) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/2035](https://togithub.com/software-mansion/react-native-screens/pull/2035)
- [@&#8203;bakkerjoeri](https://togithub.com/bakkerjoeri) made their
first contribution in
[https://github.com/software-mansion/react-native-screens/pull/2077](https://togithub.com/software-mansion/react-native-screens/pull/2077)

#### 🙌 Thank you for your contributions!

**Full Changelog**:
software-mansion/react-native-screens@3.29.0...3.30.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 5pm,every weekend" in timezone
America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone
America/Los_Angeles.

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/valora-inc/wallet).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: valora-bot <valorabot@valoraapp.com>
ja1ns pushed a commit to WiseOwlTech/react-native-screens that referenced this pull request Oct 9, 2024
…re-mansion#2023)

## Description

Unfortunately, the `Tap` gesture as the default gesture in
ScreenGestureDetector breaks the back button on Android and iOS.
Somehow, gesture detector while "tapping" just taps and holds the back
button, resulting in breaking CI and our testing apps.
This PR changes this gesture to `Fling`, resulting in correct behavior.
It cannot be changed to `Manual` gesture, since it also breaks the iOS
CI.

## Changes

- Changed gesture from Tap to Fling
- Updated detox from 20.11.4 to 20.17.0
- Fixed Android E2E tests by building the bundle with .so files on
x86_64 architecture
- Changed scroll action that was opening background apps preview on
Android 33 (and higher) levels
- Adjusted CI parameters, fixed the typo of artifact names

## Test code and steps to reproduce

You can go through Example app and try to click back button in `Events`.
Right now it should work properly.

## Checklist

- [x] Ensured that CI passes

---------

Co-authored-by: m-bert <michal.bert@swmansion.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants