Skip to content

Instantly share code, notes, and snippets.

@Qamar4P
Created April 11, 2018 04:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Qamar4P/0d7021da6cf07e5fdef1f7d1ec92e57b to your computer and use it in GitHub Desktop.
Save Qamar4P/0d7021da6cf07e5fdef1f7d1ec92e57b to your computer and use it in GitHub Desktop.
Run-time permission helper. Dangerous permissions https://stackoverflow.com/a/36937109/5710872
package com.qamar.kust.ui.helpers;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.PermissionChecker;
/**
* Created by Qamar Abbas KUST on 12/11/2017.
*/
public class PermissionHelper {
PermissionCallback permissionCallback;
int requestCode;
String[] requiredPermission;
Activity context;
public PermissionHelper(Activity context, int requestCode, String[] requiredPermission, PermissionCallback permissionCallback) {
this.context = context;
this.requestCode = requestCode;
this.requiredPermission = requiredPermission;
this.permissionCallback = permissionCallback;
}
public PermissionHelper request() {
if (isPermissionGranted(context,requiredPermission)){
permissionCallback.granted();
return this;
}
ActivityCompat.requestPermissions(context, requiredPermission, requestCode);
return this;
}
public static boolean isPermissionGranted(Context context, String... requiredPermission){
for (String permission: requiredPermission){
if (ContextCompat.checkSelfPermission(context,permission)!= PermissionChecker.PERMISSION_GRANTED){
return false;
}
}
return true;
}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (this.requestCode == requestCode) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
permissionCallback.granted();
} else {
permissionCallback.failed();
}
}
}
public interface PermissionCallback {
void granted();
void failed();
}
}
@Qamar4P
Copy link
Author

Qamar4P commented Apr 11, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment