Skip to content

Instantly share code, notes, and snippets.

@hilfritz
Created November 2, 2018 10:33
Show Gist options
  • Save hilfritz/1002c0ac3bdb9507a62672376de10209 to your computer and use it in GitHub Desktop.
Save hilfritz/1002c0ac3bdb9507a62672376de10209 to your computer and use it in GitHub Desktop.
use rxPermissions
https://stackoverflow.com/questions/32854169/does-checking-the-never-ask-again-box-when-asking-for-a-runtime-permission-disab
final String[] objects = new String[]{Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION};
findViewById(R.id.enableCamera).setOnClickListener(
view -> rxPermissions
.requestEach(
objects
)
.subscribe(permission -> { // will emit 2 Permission objects
if (permission.granted) {
// `permission.name` is granted !
Log.d(TAG, System.currentTimeMillis()+" fritz permission:"+permission.name+" granted. ");
} else if (permission.shouldShowRequestPermissionRationale) {
// Denied permission without ask never again
Log.d(TAG, System.currentTimeMillis()+" fritz permission:"+permission.name+" denied. (can ask again) ");
} else {
Log.d(TAG, System.currentTimeMillis()+" fritz permission:"+permission.name+" denied. (can never ask again) ");
// Denied permission with ask never again
// Need to go to the settings
}
}));
findViewById(R.id.verifyPermissions)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//rxPermissions.isGranted()
int size= objects.length;
for(int x = 0; x < size; x++){
final int i = ActivityCompat.checkSelfPermission(MainActivity.this, objects[x]);
if (i==PackageManager.PERMISSION_GRANTED){
Log.d(TAG, System.currentTimeMillis()+" fritz verify permission: x:"+x+" "+objects[x]+" granted. ");
}else if (i==PackageManager.PERMISSION_DENIED){
Log.d(TAG, System.currentTimeMillis()+" fritz verify permission: x:"+x+" "+objects[x]+" denied. ");
}else {
Log.d(TAG, System.currentTimeMillis()+" fritz verify permission: x:"+x+" "+objects[x]+" unknown. ");
}
/*
if (rxPermissions.isGranted(objects[x])){
Log.d(TAG, System.currentTimeMillis()+" fritz verify permission: x:"+x+" "+objects[x]+" granted. ");
}else if (rxPermissions.isRevoked(objects[x])){
Log.d(TAG, System.currentTimeMillis()+" fritz verify permission: x:"+x+" "+objects[x]+" denied. ");
}else{
Log.d(TAG, System.currentTimeMillis()+" fritz verify permission: x:"+x+" "+objects[x]+" unknown. ");
}
*/
//https://stackoverflow.com/questions/32854169/does-checking-the-never-ask-again-box-when-asking-for-a-runtime-permission-disab
}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment