1111import android .provider .Settings ;
1212import android .util .SparseArray ;
1313
14- import androidx .annotation .Nullable ;
14+ import androidx .annotation .NonNull ;
1515import androidx .core .app .NotificationManagerCompat ;
1616
1717import com .facebook .common .logging .FLog ;
@@ -54,96 +54,10 @@ public String getName() {
5454 return NAME ;
5555 }
5656
57- private @ Nullable String getFieldName (final String permission ) {
58- if (permission .equals ("android.permission.ACCEPT_HANDOVER" ))
59- return "ACCEPT_HANDOVER" ;
60- if (permission .equals ("android.permission.ACCESS_BACKGROUND_LOCATION" ))
61- return "ACCESS_BACKGROUND_LOCATION" ;
62- if (permission .equals ("android.permission.ACCESS_COARSE_LOCATION" ))
63- return "ACCESS_COARSE_LOCATION" ;
64- if (permission .equals ("android.permission.ACCESS_FINE_LOCATION" ))
65- return "ACCESS_FINE_LOCATION" ;
66- if (permission .equals ("android.permission.ACCESS_MEDIA_LOCATION" ))
67- return "ACCESS_MEDIA_LOCATION" ;
68- if (permission .equals ("android.permission.ACTIVITY_RECOGNITION" ))
69- return "ACTIVITY_RECOGNITION" ;
70- if (permission .equals ("com.android.voicemail.permission.ADD_VOICEMAIL" ))
71- return "ADD_VOICEMAIL" ;
72- if (permission .equals ("android.permission.ANSWER_PHONE_CALLS" ))
73- return "ANSWER_PHONE_CALLS" ;
74- if (permission .equals ("android.permission.BLUETOOTH_ADVERTISE" ))
75- return "BLUETOOTH_ADVERTISE" ;
76- if (permission .equals ("android.permission.BLUETOOTH_CONNECT" ))
77- return "BLUETOOTH_CONNECT" ;
78- if (permission .equals ("android.permission.BLUETOOTH_SCAN" ))
79- return "BLUETOOTH_SCAN" ;
80- if (permission .equals ("android.permission.BODY_SENSORS" ))
81- return "BODY_SENSORS" ;
82- if (permission .equals ("android.permission.BODY_SENSORS_BACKGROUND" ))
83- return "BODY_SENSORS_BACKGROUND" ;
84- if (permission .equals ("android.permission.CALL_PHONE" ))
85- return "CALL_PHONE" ;
86- if (permission .equals ("android.permission.CAMERA" ))
87- return "CAMERA" ;
88- if (permission .equals ("android.permission.GET_ACCOUNTS" ))
89- return "GET_ACCOUNTS" ;
90- if (permission .equals ("android.permission.NEARBY_WIFI_DEVICES" ))
91- return "NEARBY_WIFI_DEVICES" ;
92- if (permission .equals ("android.permission.POST_NOTIFICATIONS" ))
93- return "POST_NOTIFICATIONS" ;
94- if (permission .equals ("android.permission.PROCESS_OUTGOING_CALLS" ))
95- return "PROCESS_OUTGOING_CALLS" ;
96- if (permission .equals ("android.permission.READ_CALENDAR" ))
97- return "READ_CALENDAR" ;
98- if (permission .equals ("android.permission.READ_CALL_LOG" ))
99- return "READ_CALL_LOG" ;
100- if (permission .equals ("android.permission.READ_CONTACTS" ))
101- return "READ_CONTACTS" ;
102- if (permission .equals ("android.permission.READ_EXTERNAL_STORAGE" ))
103- return "READ_EXTERNAL_STORAGE" ;
104- if (permission .equals ("android.permission.READ_MEDIA_AUDIO" ))
105- return "READ_MEDIA_AUDIO" ;
106- if (permission .equals ("android.permission.READ_MEDIA_IMAGES" ))
107- return "READ_MEDIA_IMAGES" ;
108- if (permission .equals ("android.permission.READ_MEDIA_VIDEO" ))
109- return "READ_MEDIA_VIDEO" ;
110- if (permission .equals ("android.permission.READ_PHONE_NUMBERS" ))
111- return "READ_PHONE_NUMBERS" ;
112- if (permission .equals ("android.permission.READ_PHONE_STATE" ))
113- return "READ_PHONE_STATE" ;
114- if (permission .equals ("android.permission.READ_SMS" ))
115- return "READ_SMS" ;
116- if (permission .equals ("android.permission.RECEIVE_MMS" ))
117- return "RECEIVE_MMS" ;
118- if (permission .equals ("android.permission.RECEIVE_SMS" ))
119- return "RECEIVE_SMS" ;
120- if (permission .equals ("android.permission.RECEIVE_WAP_PUSH" ))
121- return "RECEIVE_WAP_PUSH" ;
122- if (permission .equals ("android.permission.RECORD_AUDIO" ))
123- return "RECORD_AUDIO" ;
124- if (permission .equals ("android.permission.SEND_SMS" ))
125- return "SEND_SMS" ;
126- if (permission .equals ("android.permission.USE_SIP" ))
127- return "USE_SIP" ;
128- if (permission .equals ("android.permission.UWB_RANGING" ))
129- return "UWB_RANGING" ;
130- if (permission .equals ("android.permission.WRITE_CALENDAR" ))
131- return "WRITE_CALENDAR" ;
132- if (permission .equals ("android.permission.WRITE_CALL_LOG" ))
133- return "WRITE_CALL_LOG" ;
134- if (permission .equals ("android.permission.WRITE_CONTACTS" ))
135- return "WRITE_CONTACTS" ;
136- if (permission .equals ("android.permission.WRITE_EXTERNAL_STORAGE" ))
137- return "WRITE_EXTERNAL_STORAGE" ;
138-
139- return null ;
140- }
141-
142- private boolean isPermissionUnavailable (final String permission ) {
143- String fieldName = getFieldName (permission );
144-
145- if (fieldName == null )
146- return true ;
57+ private boolean isPermissionUnavailable (@ NonNull final String permission ) {
58+ String fieldName = permission
59+ .replace ("android.permission." , "" )
60+ .replace ("com.android.voicemail.permission." , "" );
14761
14862 try {
14963 Manifest .permission .class .getField (fieldName );
@@ -186,7 +100,7 @@ public void openSettings(final Promise promise) {
186100 }
187101
188102 @ ReactMethod
189- public void checkPermission (final String permission , final Promise promise ) {
103+ public void check (final String permission , final Promise promise ) {
190104 if (permission == null || isPermissionUnavailable (permission )) {
191105 promise .resolve (UNAVAILABLE );
192106 return ;
@@ -197,8 +111,8 @@ public void checkPermission(final String permission, final Promise promise) {
197111 if (Build .VERSION .SDK_INT < Build .VERSION_CODES .M ) {
198112 promise .resolve (context .checkPermission (permission , Process .myPid (), Process .myUid ())
199113 == PackageManager .PERMISSION_GRANTED
200- ? GRANTED
201- : BLOCKED );
114+ ? GRANTED
115+ : BLOCKED );
202116 return ;
203117 }
204118
@@ -210,7 +124,7 @@ public void checkPermission(final String permission, final Promise promise) {
210124 }
211125
212126 @ ReactMethod
213- public void shouldShowRequestPermissionRationale (final String permission , final Promise promise ) {
127+ public void shouldShowRequestRationale (final String permission , final Promise promise ) {
214128 if (permission == null || Build .VERSION .SDK_INT < Build .VERSION_CODES .M ) {
215129 promise .resolve (false );
216130 return ;
@@ -225,7 +139,7 @@ public void shouldShowRequestPermissionRationale(final String permission, final
225139 }
226140
227141 @ ReactMethod
228- public void requestPermission (final String permission , final Promise promise ) {
142+ public void request (final String permission , final Promise promise ) {
229143 if (permission == null || isPermissionUnavailable (permission )) {
230144 promise .resolve (UNAVAILABLE );
231145 return ;
@@ -278,7 +192,7 @@ public void invoke(Object... args) {
278192 }
279193
280194 @ ReactMethod
281- public void checkMultiplePermissions (final ReadableArray permissions , final Promise promise ) {
195+ public void checkMultiple (final ReadableArray permissions , final Promise promise ) {
282196 final WritableMap output = new WritableNativeMap ();
283197 Context context = getReactApplicationContext ().getBaseContext ();
284198
@@ -305,7 +219,7 @@ public void checkMultiplePermissions(final ReadableArray permissions, final Prom
305219 }
306220
307221 @ ReactMethod
308- public void requestMultiplePermissions (final ReadableArray permissions , final Promise promise ) {
222+ public void requestMultiple (final ReadableArray permissions , final Promise promise ) {
309223 final WritableMap output = new WritableNativeMap ();
310224 final ArrayList <String > permissionsToCheck = new ArrayList <String >();
311225 int checkedPermissionsCount = 0 ;
@@ -380,21 +294,11 @@ protected Map<String, Object> getTypedExportedConstants() {
380294 return new HashMap <>();
381295 }
382296
383- @ Override
384- public void check (String permission , Promise promise ) {
385- promise .reject ("Permissions:check" , "check is not supported on Android" );
386- }
387-
388297 @ Override
389298 public void checkLocationAccuracy (Promise promise ) {
390299 promise .reject ("Permissions:checkLocationAccuracy" , "checkLocationAccuracy is not supported on Android" );
391300 }
392301
393- @ Override
394- public void request (String permission , Promise promise ) {
395- promise .reject ("Permissions:request" , "request is not supported on Android" );
396- }
397-
398302 @ Override
399303 public void requestLocationAccuracy (String purposeKey , Promise promise ) {
400304 promise .reject ("Permissions:requestLocationAccuracy" , "requestLocationAccuracy is not supported on Android" );
@@ -406,8 +310,8 @@ public void requestNotifications(ReadableArray options, Promise promise) {
406310 }
407311
408312 @ Override
409- public void openLimitedPhotoLibraryPicker (Promise promise ) {
410- promise .reject ("Permissions:openLimitedPhotoLibraryPicker " , "openLimitedPhotoLibraryPicker is not supported on Android" );
313+ public void openPhotoPicker (Promise promise ) {
314+ promise .reject ("Permissions:openPhotoPicker " , "openPhotoPicker is not supported on Android" );
411315 }
412316
413317 @ Override
@@ -418,15 +322,15 @@ public boolean onRequestPermissionsResult(int requestCode, String[] permissions,
418322 return mCallbacks .size () == 0 ;
419323 } catch (IllegalStateException e ) {
420324 FLog .e (
421- "PermissionsModule" ,
422- e ,
423- "Unexpected invocation of `onRequestPermissionsResult` with invalid current activity" );
325+ "PermissionsModule" ,
326+ e ,
327+ "Unexpected invocation of `onRequestPermissionsResult` with invalid current activity" );
424328 return false ;
425329 } catch (NullPointerException e ) {
426330 FLog .e (
427- "PermissionsModule" ,
428- e ,
429- "Unexpected invocation of `onRequestPermissionsResult` with invalid request code" );
331+ "PermissionsModule" ,
332+ e ,
333+ "Unexpected invocation of `onRequestPermissionsResult` with invalid request code" );
430334 return false ;
431335 }
432336 }
0 commit comments