Skip to content
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

Improved error handling for "Attempt to invoke interface method 'void com.facebook.react.bridge.Callback.invoke(java.lang.Object[])'" on com.zoontek.rnpermissions.RNPermissionsModule.onRequestPermissionsResult #835

Merged
merged 3 commits into from
Jan 27, 2024

Conversation

webraptor
Copy link
Contributor

@webraptor webraptor commented Jan 9, 2024

Summary

This PR further extends on some crash reports that we've seen for android users in production environments, which were already handled and reduced in occurrences by #805 and 63b695a

Compatibility

OS Implemented
iOS
Android

Checklist

  • I have tested this on a device and a simulator
  • tested in live/production environment using PRs fork as source

@webraptor
Copy link
Contributor Author

@zoontek any idea when you could look into this PR?

@zoontek
Copy link
Owner

zoontek commented Jan 15, 2024

@webraptor I think it would be better to simplify it to only this (and catch all exceptions, without custom messages are the Exception e details are logged anyway):

try {
  mCallbacks.get(requestCode).invoke(grantResults, getPermissionAwareActivity());
  mCallbacks.remove(requestCode);
  return mCallbacks.size() == 0;
} catch (Exception e) {
  FLog.e(
    "PermissionsModule",
    e,
    "Unexpected invocation of `onRequestPermissionsResult`");
  return false;
}

@webraptor
Copy link
Contributor Author

Yeah @zoontek, that would work as well. Wasn't sure if anyone else might want the more detailed exception catching.

I'll update the PR shortly so it's easier to merge.

@webraptor
Copy link
Contributor Author

@zoontek PR code updated. Thanks

@zoontek
Copy link
Owner

zoontek commented Jan 17, 2024

@webraptor Thanks, I will have a look and release this weekend.

@zoontek zoontek changed the base branch from master to 4.1.0 January 27, 2024 11:44
@zoontek
Copy link
Owner

zoontek commented Jan 27, 2024

Sorry, I was not personally available (at least had no free time) until now. I merge this is a 4.1.0 for more testing before a release, thanks a lot!

@zoontek zoontek merged commit e621fe5 into zoontek:4.1.0 Jan 27, 2024
@zoontek
Copy link
Owner

zoontek commented Jan 27, 2024

Done, thanks! https://github.com/zoontek/react-native-permissions/releases/tag/4.1.0

github-merge-queue bot referenced this pull request in valora-inc/wallet Apr 24, 2024
[![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-permissions](https://togithub.com/zoontek/react-native-permissions)
| [`^3.10.1` ->
`^4.1.5`](https://renovatebot.com/diffs/npm/react-native-permissions/3.10.1/4.1.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-permissions/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-permissions/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-permissions/3.10.1/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-permissions/3.10.1/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>zoontek/react-native-permissions
(react-native-permissions)</summary>

###
[`v4.1.5`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.5)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.4...4.1.5)

- Use `Microsoft.Windows.CppWinRT` version provided by RNW by
[@&#8203;tido64](https://togithub.com/tido64) in
[https://github.com/zoontek/react-native-permissions/pull/860](https://togithub.com/zoontek/react-native-permissions/pull/860)
- Add Apple privacy manifest & usage descriptions for `UserDefaults` by
[@&#8203;johnhatvani](https://togithub.com/johnhatvani) in
[https://github.com/zoontek/react-native-permissions/pull/861](https://togithub.com/zoontek/react-native-permissions/pull/861)

###
[`v4.1.4`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.4)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.3...4.1.4)

- Improve new architecture code
([https://github.com/zoontek/react-native-permissions/pull/850](https://togithub.com/zoontek/react-native-permissions/pull/850))

###
[`v4.1.3`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.3)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.2...4.1.3)

- Switch to Objective-C++
([https://github.com/zoontek/react-native-permissions/pull/849](https://togithub.com/zoontek/react-native-permissions/pull/849))

###
[`v4.1.2`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.2)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.1...4.1.2)

- Replace deprecated microphone API on iOS >= 17
([https://github.com/zoontek/react-native-permissions/pull/846](https://togithub.com/zoontek/react-native-permissions/pull/846))

###
[`v4.1.1`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.1)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.0...4.1.1)

- Fix Expo plugin not working on Expo SDK 50 (closes
[#&#8203;840](https://togithub.com/zoontek/react-native-permissions/issues/840))

###
[`v4.1.0`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.0)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.4...4.1.0)

- Add expo config plugin for iOS permissions setup by
[@&#8203;fobos531](https://togithub.com/fobos531) in
[https://github.com/zoontek/react-native-permissions/pull/834](https://togithub.com/zoontek/react-native-permissions/pull/834)
- Improved error handling for `Attempt to invoke interface method 'void
com.facebook.react.bridge.Callback.invoke(java.lang.Object[])'` by
[@&#8203;webraptor](https://togithub.com/webraptor) in
[https://github.com/zoontek/react-native-permissions/pull/835](https://togithub.com/zoontek/react-native-permissions/pull/835)

###
[`v4.0.4`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.4)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.3...4.0.4)

- Fix a regression caused by the example app (now using `yarn link`)
that updated the project `podspec`

###
[`v4.0.3`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.3)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.2...4.0.3)

-   Add Android Gradle plugin 8 compatibility
-   Fix `AndroidManifest.xml` namespace deprecation warning

###
[`v4.0.2`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.2)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.1...4.0.2)

- Support `PERMISSIONS.IOS.MEDIA_LIBRARY` permission request on the iOS
simulator
([https://github.com/zoontek/react-native-permissions/pull/831](https://togithub.com/zoontek/react-native-permissions/pull/831)
by [@&#8203;asafkorem](https://togithub.com/asafkorem))

###
[`v4.0.1`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.1)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.0...4.0.1)

- Enforce `checkNotifications` behaviour on Android < 13 to match the
Android runtime permissions flow and all others permissions behaviour
*(for more details, I made a post
[here](https://togithub.com/zoontek/react-native-permissions/issues/714#issuecomment-1855538079))*.
-   Update example app to React Native 0.73.0

###
[`v4.0.0`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.0)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/3.10.1...4.0.0)

#### Version 4.0.0, with iOS 17 and Android 14 support 🎉

⚠️ This version requires [**Xcode
15**](https://developer.apple.com/xcode/) and drops support for iOS <
12.4 and React Native < 0.70.

##### What's changed

- Deprecated iOS permission setup methods have been removed.
[`setup_permissions`](https://togithub.com/zoontek/react-native-permissions/releases/tag/3.9.0)
is now the unique way to do it
-   `openLimitedPhotoLibraryPicker` has been renamed `openPhotoPicker`
- `PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL` has been renamed
`PERMISSIONS.IOS.BLUETOOTH`

##### What's new

- New Android permission:
`PERMISSIONS.ANDROID.READ_MEDIA_VISUAL_USER_SELECTED` (closes
[https://github.com/zoontek/react-native-permissions/issues/827](https://togithub.com/zoontek/react-native-permissions/issues/827))
- New iOS permission: `PERMISSIONS.IOS.CALENDARS_WRITE_ONLY` (closes
[https://github.com/zoontek/react-native-permissions/issues/804](https://togithub.com/zoontek/react-native-permissions/issues/804))
- `openPhotoPicker` now resolves on picker close, not immediately
(closes
[https://github.com/zoontek/react-native-permissions/issues/689](https://togithub.com/zoontek/react-native-permissions/issues/689))
- `PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY` now resolves the
`requestTrackingAuthorizationWithCompletionHandler` callback value
(closes
[https://github.com/zoontek/react-native-permissions/issues/823](https://togithub.com/zoontek/react-native-permissions/issues/823))

##### How to migrate

- Migrate to the
[`setup_permissions`](https://togithub.com/zoontek/react-native-permissions/releases/tag/3.9.0)
method
- Replace `PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL` with
`PERMISSIONS.IOS.BLUETOOTH`
- Replace `BluetoothPeripheral` with `Bluetooth` in `setup_permissions`
- Replace `NSCalendarsUsageDescription` with
`NSCalendarsFullAccessUsageDescription`
- Replace `NSRemindersUsageDescription` with
`NSRemindersFullAccessUsageDescription`
-   Replace `openLimitedPhotoLibraryPicker` with `openPhotoPicker`

##### What's next?

This release is quite minimal. If your company wants a new feature,
feels free to reach me [via
email](https://togithub.com/zoontek/react-native-permissions/blob/7f9e774947e4baf7f0db6a0fe954453a783b84be/package.json#L6)
to hire me for it 🙂

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJucG0iLCJyZW5vdmF0ZSJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: valora-bot <valorabot@valoraapp.com>
shottah referenced this pull request in zed-io/kolektivo May 15, 2024
…nc#5311)

[![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-permissions](https://togithub.com/zoontek/react-native-permissions)
| [`^3.10.1` ->
`^4.1.5`](https://renovatebot.com/diffs/npm/react-native-permissions/3.10.1/4.1.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-permissions/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-permissions/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-permissions/3.10.1/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-permissions/3.10.1/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>zoontek/react-native-permissions
(react-native-permissions)</summary>

###
[`v4.1.5`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.5)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.4...4.1.5)

- Use `Microsoft.Windows.CppWinRT` version provided by RNW by
[@&#8203;tido64](https://togithub.com/tido64) in
[https://github.com/zoontek/react-native-permissions/pull/860](https://togithub.com/zoontek/react-native-permissions/pull/860)
- Add Apple privacy manifest & usage descriptions for `UserDefaults` by
[@&#8203;johnhatvani](https://togithub.com/johnhatvani) in
[https://github.com/zoontek/react-native-permissions/pull/861](https://togithub.com/zoontek/react-native-permissions/pull/861)

###
[`v4.1.4`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.4)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.3...4.1.4)

- Improve new architecture code
([https://github.com/zoontek/react-native-permissions/pull/850](https://togithub.com/zoontek/react-native-permissions/pull/850))

###
[`v4.1.3`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.3)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.2...4.1.3)

- Switch to Objective-C++
([https://github.com/zoontek/react-native-permissions/pull/849](https://togithub.com/zoontek/react-native-permissions/pull/849))

###
[`v4.1.2`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.2)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.1...4.1.2)

- Replace deprecated microphone API on iOS >= 17
([https://github.com/zoontek/react-native-permissions/pull/846](https://togithub.com/zoontek/react-native-permissions/pull/846))

###
[`v4.1.1`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.1)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.0...4.1.1)

- Fix Expo plugin not working on Expo SDK 50 (closes
[#&#8203;840](https://togithub.com/zoontek/react-native-permissions/issues/840))

###
[`v4.1.0`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.0)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.4...4.1.0)

- Add expo config plugin for iOS permissions setup by
[@&#8203;fobos531](https://togithub.com/fobos531) in
[https://github.com/zoontek/react-native-permissions/pull/834](https://togithub.com/zoontek/react-native-permissions/pull/834)
- Improved error handling for `Attempt to invoke interface method 'void
com.facebook.react.bridge.Callback.invoke(java.lang.Object[])'` by
[@&#8203;webraptor](https://togithub.com/webraptor) in
[https://github.com/zoontek/react-native-permissions/pull/835](https://togithub.com/zoontek/react-native-permissions/pull/835)

###
[`v4.0.4`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.4)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.3...4.0.4)

- Fix a regression caused by the example app (now using `yarn link`)
that updated the project `podspec`

###
[`v4.0.3`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.3)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.2...4.0.3)

-   Add Android Gradle plugin 8 compatibility
-   Fix `AndroidManifest.xml` namespace deprecation warning

###
[`v4.0.2`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.2)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.1...4.0.2)

- Support `PERMISSIONS.IOS.MEDIA_LIBRARY` permission request on the iOS
simulator
([https://github.com/zoontek/react-native-permissions/pull/831](https://togithub.com/zoontek/react-native-permissions/pull/831)
by [@&#8203;asafkorem](https://togithub.com/asafkorem))

###
[`v4.0.1`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.1)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.0...4.0.1)

- Enforce `checkNotifications` behaviour on Android < 13 to match the
Android runtime permissions flow and all others permissions behaviour
*(for more details, I made a post
[here](https://togithub.com/zoontek/react-native-permissions/issues/714#issuecomment-1855538079))*.
-   Update example app to React Native 0.73.0

###
[`v4.0.0`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.0)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/3.10.1...4.0.0)

#### Version 4.0.0, with iOS 17 and Android 14 support 🎉

⚠️ This version requires [**Xcode
15**](https://developer.apple.com/xcode/) and drops support for iOS <
12.4 and React Native < 0.70.

##### What's changed

- Deprecated iOS permission setup methods have been removed.
[`setup_permissions`](https://togithub.com/zoontek/react-native-permissions/releases/tag/3.9.0)
is now the unique way to do it
-   `openLimitedPhotoLibraryPicker` has been renamed `openPhotoPicker`
- `PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL` has been renamed
`PERMISSIONS.IOS.BLUETOOTH`

##### What's new

- New Android permission:
`PERMISSIONS.ANDROID.READ_MEDIA_VISUAL_USER_SELECTED` (closes
[https://github.com/zoontek/react-native-permissions/issues/827](https://togithub.com/zoontek/react-native-permissions/issues/827))
- New iOS permission: `PERMISSIONS.IOS.CALENDARS_WRITE_ONLY` (closes
[https://github.com/zoontek/react-native-permissions/issues/804](https://togithub.com/zoontek/react-native-permissions/issues/804))
- `openPhotoPicker` now resolves on picker close, not immediately
(closes
[https://github.com/zoontek/react-native-permissions/issues/689](https://togithub.com/zoontek/react-native-permissions/issues/689))
- `PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY` now resolves the
`requestTrackingAuthorizationWithCompletionHandler` callback value
(closes
[https://github.com/zoontek/react-native-permissions/issues/823](https://togithub.com/zoontek/react-native-permissions/issues/823))

##### How to migrate

- Migrate to the
[`setup_permissions`](https://togithub.com/zoontek/react-native-permissions/releases/tag/3.9.0)
method
- Replace `PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL` with
`PERMISSIONS.IOS.BLUETOOTH`
- Replace `BluetoothPeripheral` with `Bluetooth` in `setup_permissions`
- Replace `NSCalendarsUsageDescription` with
`NSCalendarsFullAccessUsageDescription`
- Replace `NSRemindersUsageDescription` with
`NSRemindersFullAccessUsageDescription`
-   Replace `openLimitedPhotoLibraryPicker` with `openPhotoPicker`

##### What's next?

This release is quite minimal. If your company wants a new feature,
feels free to reach me [via
email](https://togithub.com/zoontek/react-native-permissions/blob/7f9e774947e4baf7f0db6a0fe954453a783b84be/package.json#L6)
to hire me for it 🙂

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJucG0iLCJyZW5vdmF0ZSJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: valora-bot <valorabot@valoraapp.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.

2 participants