Skip to content

Commit cff4bc8

Browse files
yungstersfacebook-github-bot
authored andcommitted
RN: Silently Fail onRequestPermissionsResult for Invalid Activities (#37047)
Summary: Pull Request resolved: #37047 We're seeing scenarios where `onRequestPermissionsResult` is being invoked but the current activity does not implement `PermissionAwareActivity`. This should not crash the app. Changelog: [Android][Fixed] - Fix crash when Android requests permission with activity that does not implement `PermissionAwareActivity` Reviewed By: mdvacca Differential Revision: D45203319 fbshipit-source-id: 4a6eb67ad67ae5c731c27301967b837b1286ccbb
1 parent 555014a commit cff4bc8

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import android.os.Build;
1414
import android.os.Process;
1515
import android.util.SparseArray;
16+
import com.facebook.common.logging.FLog;
1617
import com.facebook.fbreact.specs.NativePermissionsAndroidSpec;
1718
import com.facebook.react.bridge.Callback;
1819
import com.facebook.react.bridge.Promise;
@@ -198,9 +199,17 @@ public void invoke(Object... args) {
198199
@Override
199200
public boolean onRequestPermissionsResult(
200201
int requestCode, String[] permissions, int[] grantResults) {
201-
mCallbacks.get(requestCode).invoke(grantResults, getPermissionAwareActivity());
202-
mCallbacks.remove(requestCode);
203-
return mCallbacks.size() == 0;
202+
try {
203+
mCallbacks.get(requestCode).invoke(grantResults, getPermissionAwareActivity());
204+
mCallbacks.remove(requestCode);
205+
return mCallbacks.size() == 0;
206+
} catch (IllegalStateException e) {
207+
FLog.e(
208+
"PermissionsModule",
209+
e,
210+
"Unexpected invocation of `onRequestPermissionsResult` with invalid current activity");
211+
return false;
212+
}
204213
}
205214

206215
private PermissionAwareActivity getPermissionAwareActivity() {

0 commit comments

Comments
 (0)