PermissionUtil.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.owncloud.android.utils;
  2. import android.Manifest;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import androidx.core.app.ActivityCompat;
  6. import androidx.core.content.ContextCompat;
  7. /**
  8. * Created by scherzia on 29.12.2015.
  9. */
  10. public final 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. public static final int PERMISSIONS_CAMERA = 5;
  16. private PermissionUtil() {
  17. // utility class -> private constructor
  18. }
  19. /**
  20. * Wrapper method for ContextCompat.checkSelfPermission().
  21. * Determine whether <em>the app</em> has been granted a particular permission.
  22. *
  23. * @param permission The name of the permission being checked.
  24. * @return <code>true</code> if app has the permission, or <code>false</code> if not.
  25. */
  26. public static boolean checkSelfPermission(Context context, String permission) {
  27. return ContextCompat.checkSelfPermission(context, permission)
  28. == android.content.pm.PackageManager.PERMISSION_GRANTED;
  29. }
  30. /**
  31. * Wrapper method for ActivityCompat.shouldShowRequestPermissionRationale().
  32. * Gets whether you should show UI with rationale for requesting a permission.
  33. * You should do this only if you do not have the permission and the context in
  34. * which the permission is requested does not clearly communicate to the user
  35. * what would be the benefit from granting this permission.
  36. *
  37. * @param activity The target activity.
  38. * @param permission A permission to be requested.
  39. * @return Whether to show permission rationale UI.
  40. */
  41. public static boolean shouldShowRequestPermissionRationale(Activity activity, String permission) {
  42. return ActivityCompat.shouldShowRequestPermissionRationale(activity, permission);
  43. }
  44. /**
  45. * request the write permission for external storage.
  46. *
  47. * @param activity The target activity.
  48. */
  49. public static void requestWriteExternalStoreagePermission(Activity activity) {
  50. ActivityCompat.requestPermissions(activity,
  51. new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
  52. PERMISSIONS_WRITE_EXTERNAL_STORAGE);
  53. }
  54. /**
  55. * request camera permission.
  56. *
  57. * @param activity The target activity.
  58. */
  59. public static void requestCameraPermission(Activity activity) {
  60. ActivityCompat.requestPermissions(activity,
  61. new String[]{Manifest.permission.CAMERA},
  62. PERMISSIONS_CAMERA);
  63. }
  64. }