googlesamples / easypermissions

Simplify Android M system permissions
https://firebaseopensource.com/projects/googlesamples/easypermissions/
Apache License 2.0
9.86k stars 1.46k forks source link

doc: inconsistent sample code for AfterPermissionGranted annotation #354

Open freitzzz opened 1 year ago

freitzzz commented 1 year ago

Basic Information

Device type: any OS version: any EasyPermissions version: 3.0.0

Describe the problem

The library sample code states that methods annotated with @AfterPermissionGranted for a specific request code are called when all requested permissions are granted, which can be confirmed in the library source code. However, in the README sample code, there is a check if the requested permissions have been granted, which is completely confusing and should be considered dead code.

Code and logs

README Sample Code

@AfterPermissionGranted(RC_CAMERA_AND_LOCATION)
private void methodRequiresTwoPermission() {
    String[] perms = {Manifest.permission.CAMERA, Manifest.permission.ACCESS_FINE_LOCATION};
    if (EasyPermissions.hasPermissions(this, perms)) {
        // Already have permission, do the thing
        // ...
    } else {
        // Do not have permissions, request them now
        EasyPermissions.requestPermissions(this, getString(R.string.camera_and_location_rationale),
                RC_CAMERA_AND_LOCATION, perms);
    }
}

Library permissions grant check to call annotated methods

https://github.com/googlesamples/easypermissions/blob/1d8c6e0854e6f0d1ea4482b7cffc416004f67e41/easypermissions/src/main/java/pub/devrel/easypermissions/EasyPermissions.java#L204-L206