package com.owncloud.android.utils; import android.Manifest; import android.app.Activity; import android.content.Context; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; /** * Created by scherzia on 29.12.2015. */ public class PermissionUtil { public static final int PERMISSIONS_WRITE_EXTERNAL_STORAGE = 1; public static final int PERMISSIONS_READ_CONTACTS_AUTOMATIC = 2; public static final int PERMISSIONS_READ_CONTACTS_MANUALLY = 3; public static final int PERMISSIONS_WRITE_CONTACTS = 4; /** * Wrapper method for ContextCompat.checkSelfPermission(). * Determine whether the app has been granted a particular permission. * * @param permission The name of the permission being checked. * @return true if app has the permission, or false if not. */ public static boolean checkSelfPermission(Context context, String permission) { return ContextCompat.checkSelfPermission(context, permission) == android.content.pm.PackageManager.PERMISSION_GRANTED; } /** * Wrapper method for ActivityCompat.shouldShowRequestPermissionRationale(). * Gets whether you should show UI with rationale for requesting a permission. * You should do this only if you do not have the permission and the context in * which the permission is requested does not clearly communicate to the user * what would be the benefit from granting this permission. * * @param activity The target activity. * @param permission A permission to be requested. * @return Whether to show permission rationale UI. */ public static boolean shouldShowRequestPermissionRationale(Activity activity, String permission) { return ActivityCompat.shouldShowRequestPermissionRationale(activity, permission); } /** * request the write permission for external storage. * * @param activity The target activity. */ public static void requestWriteExternalStoreagePermission(Activity activity) { ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSIONS_WRITE_EXTERNAL_STORAGE); } }