PermissionUtil.java 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.owncloud.android.utils;
  2. import android.Manifest;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.support.v4.app.ActivityCompat;
  6. import android.support.v4.content.ContextCompat;
  7. /**
  8. * Created by scherzia on 29.12.2015.
  9. */
  10. public class PermissionUtil {
  11. public static final int PERMISSIONS_WRITE_EXTERNAL_STORAGE = 1;
  12. public static final int PERMISSIONS_READ_CONTACTS_AUTOMATIC = 2;
  13. public static final int PERMISSIONS_READ_CONTACTS_MANUALLY = 3;
  14. public static final int PERMISSIONS_WRITE_CONTACTS = 4;
  15. /**
  16. * Wrapper method for ContextCompat.checkSelfPermission().
  17. * Determine whether <em>the app</em> has been granted a particular permission.
  18. *
  19. * @param permission The name of the permission being checked.
  20. *
  21. * @return <code>true</code> if app has the permission, or <code>false</code> if not.
  22. */
  23. public static boolean checkSelfPermission(Context context, String permission) {
  24. return ContextCompat.checkSelfPermission(context, permission)
  25. == android.content.pm.PackageManager.PERMISSION_GRANTED;
  26. }
  27. /**
  28. * Wrapper method for ActivityCompat.shouldShowRequestPermissionRationale().
  29. * Gets whether you should show UI with rationale for requesting a permission.
  30. * You should do this only if you do not have the permission and the context in
  31. * which the permission is requested does not clearly communicate to the user
  32. * what would be the benefit from granting this permission.
  33. *
  34. * @param activity The target activity.
  35. * @param permission A permission to be requested.
  36. * @return Whether to show permission rationale UI.
  37. */
  38. public static boolean shouldShowRequestPermissionRationale(Activity activity, String permission) {
  39. return ActivityCompat.shouldShowRequestPermissionRationale(activity, permission);
  40. }
  41. /**
  42. * request the write permission for external storage.
  43. *
  44. * @param activity The target activity.
  45. */
  46. public static void requestWriteExternalStoreagePermission(Activity activity) {
  47. ActivityCompat.requestPermissions(activity,
  48. new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
  49. PERMISSIONS_WRITE_EXTERNAL_STORAGE);
  50. }
  51. /**
  52. * request the read permission for contacts
  53. *
  54. * @param activity The target activity.
  55. */
  56. public static void requestReadContactPermission(Activity activity, int permission) {
  57. ActivityCompat.requestPermissions(activity,
  58. new String[]{Manifest.permission.READ_CONTACTS},
  59. permission);
  60. }
  61. /**
  62. * request the write permission for contacts
  63. *
  64. * @param activity The target activity.
  65. */
  66. public static void requestWriteContactPermission(Activity activity) {
  67. ActivityCompat.requestPermissions(activity,
  68. new String[]{Manifest.permission.WRITE_CONTACTS},
  69. PERMISSIONS_WRITE_CONTACTS);
  70. }
  71. /**
  72. * request the write permission for contacts
  73. *
  74. * @param fragment The target fragment.
  75. */
  76. public static void requestWriteContactPermission(android.support.v4.app.Fragment fragment) {
  77. fragment.requestPermissions(new String[]{Manifest.permission.WRITE_CONTACTS},
  78. PERMISSIONS_WRITE_CONTACTS);
  79. }
  80. }