Skip to content

Commit 63b695a

Browse files
committed
Add a NullPointerException catch
1 parent 2d496bb commit 63b695a

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

android/src/main/java/com/zoontek/rnpermissions/RNPermissionsModule.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -139,17 +139,17 @@ public String getName() {
139139
return null;
140140
}
141141

142-
private boolean permissionExists(final String permission) {
142+
private boolean isPermissionUnavailable(final String permission) {
143143
String fieldName = getFieldName(permission);
144144

145145
if (fieldName == null)
146-
return false;
146+
return true;
147147

148148
try {
149149
Manifest.permission.class.getField(fieldName);
150-
return true;
151-
} catch (NoSuchFieldException ignored) {
152150
return false;
151+
} catch (NoSuchFieldException ignored) {
152+
return true;
153153
}
154154
}
155155

@@ -187,7 +187,7 @@ public void openSettings(final Promise promise) {
187187

188188
@ReactMethod
189189
public void checkPermission(final String permission, final Promise promise) {
190-
if (permission == null || !permissionExists(permission)) {
190+
if (permission == null || isPermissionUnavailable(permission)) {
191191
promise.resolve(UNAVAILABLE);
192192
return;
193193
}
@@ -226,7 +226,7 @@ public void shouldShowRequestPermissionRationale(final String permission, final
226226

227227
@ReactMethod
228228
public void requestPermission(final String permission, final Promise promise) {
229-
if (permission == null || !permissionExists(permission)) {
229+
if (permission == null || isPermissionUnavailable(permission)) {
230230
promise.resolve(UNAVAILABLE);
231231
return;
232232
}
@@ -285,7 +285,7 @@ public void checkMultiplePermissions(final ReadableArray permissions, final Prom
285285
for (int i = 0; i < permissions.size(); i++) {
286286
String permission = permissions.getString(i);
287287

288-
if (!permissionExists(permission)) {
288+
if (isPermissionUnavailable(permission)) {
289289
output.putString(permission, UNAVAILABLE);
290290
} else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
291291
output.putString(
@@ -314,7 +314,7 @@ public void requestMultiplePermissions(final ReadableArray permissions, final Pr
314314
for (int i = 0; i < permissions.size(); i++) {
315315
String permission = permissions.getString(i);
316316

317-
if (!permissionExists(permission)) {
317+
if (isPermissionUnavailable(permission)) {
318318
output.putString(permission, UNAVAILABLE);
319319
checkedPermissionsCount++;
320320
} else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
@@ -422,6 +422,12 @@ public boolean onRequestPermissionsResult(int requestCode, String[] permissions,
422422
e,
423423
"Unexpected invocation of `onRequestPermissionsResult` with invalid current activity");
424424
return false;
425+
} catch (NullPointerException e) {
426+
FLog.e(
427+
"PermissionsModule",
428+
e,
429+
"Unexpected invocation of `onRequestPermissionsResult` with invalid request code");
430+
return false;
425431
}
426432
}
427433

example/ios/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,7 @@ PODS:
487487
- React-jsi (= 0.72.5)
488488
- React-logger (= 0.72.5)
489489
- React-perflogger (= 0.72.5)
490-
- RNPermissions (3.10.0):
490+
- RNPermissions (3.10.1):
491491
- React-Core
492492
- RNVectorIcons (10.0.0):
493493
- React-Core
@@ -720,7 +720,7 @@ SPEC CHECKSUMS:
720720
React-runtimescheduler: cc32add98c45c5df18436a6a52a7e1f6edec102c
721721
React-utils: 7a9918a1ffdd39aba67835d42386f592ea3f8e76
722722
ReactCommon: 91ece8350ebb3dd2be9cef662abd78b6948233c0
723-
RNPermissions: 841114b546bd9d07254d76b8ed9c1a365fe95195
723+
RNPermissions: c355116790124654beb71c2e713f38d04ff21a48
724724
RNVectorIcons: 8b5bb0fa61d54cd2020af4f24a51841ce365c7e9
725725
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
726726
Yoga: 86fed2e4d425ee4c6eab3813ba1791101ee153c6

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-native-permissions",
3-
"version": "3.10.0",
3+
"version": "3.10.1",
44
"license": "MIT",
55
"description": "An unified permissions API for React Native on iOS, Android and Windows",
66
"author": "Mathieu Acthernoene <zoontek@gmail.com>",

0 commit comments

Comments
 (0)