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