package com.xabber.android.ui.helper;
import android.Manifest;
import android.app.Fragment;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.v4.content.ContextCompat;
import com.xabber.android.data.Application;
public class PermissionsRequester {
public static boolean requestFileReadPermissionIfNeeded(Fragment fragment, int requestCode) {
return checkAndRequestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, fragment, requestCode);
}
public static boolean requestFileWritePermissionIfNeeded(Fragment fragment, int requestCode) {
return checkAndRequestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, fragment, requestCode);
}
private static boolean checkAndRequestPermission(String permission, Fragment fragment, int requestCode) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
return true;
}
if (checkPermission(permission)) {
return true;
} else {
fragment.requestPermissions(new String[]{permission}, requestCode);
}
return false;
}
public static boolean isPermissionGranted(int[] grantResults) {
return grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED;
}
private static boolean checkPermission(String permission) {
final int permissionCheck = ContextCompat.checkSelfPermission(Application.getInstance(), permission);
return permissionCheck == PackageManager.PERMISSION_GRANTED;
}
}