-
-
Notifications
You must be signed in to change notification settings - Fork 836
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
Conversation
@zoontek any idea when you could look into this PR? |
@webraptor I think it would be better to simplify it to only this (and catch all exceptions, without custom messages are the Exception 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;
} |
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. |
@zoontek PR code updated. Thanks |
@webraptor Thanks, I will have a look and release this weekend. |
Sorry, I was not personally available (at least had no free time) until now. I merge this is a |
[![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 [@​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 [@​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 [#​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 [@​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 [@​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 [@​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>
…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 [@​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 [@​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 [#​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 [@​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 [@​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 [@​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>
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
Checklist