diff options
-rw-r--r-- | api/current.txt | 1 | ||||
-rw-r--r-- | api/system-current.txt | 1 | ||||
-rw-r--r-- | core/java/android/app/Fragment.java | 27 |
3 files changed, 29 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt index 3c878c8..cc16cf2 100644 --- a/api/current.txt +++ b/api/current.txt @@ -4384,6 +4384,7 @@ package android.app { method public void setSharedElementReturnTransition(android.transition.Transition); method public void setTargetFragment(android.app.Fragment, int); method public void setUserVisibleHint(boolean); + method public boolean shouldShowRequestPermissionRationale(java.lang.String); method public void startActivity(android.content.Intent); method public void startActivity(android.content.Intent, android.os.Bundle); method public void startActivityForResult(android.content.Intent, int); diff --git a/api/system-current.txt b/api/system-current.txt index 65ca29a..b0836fe 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -4480,6 +4480,7 @@ package android.app { method public void setSharedElementReturnTransition(android.transition.Transition); method public void setTargetFragment(android.app.Fragment, int); method public void setUserVisibleHint(boolean); + method public boolean shouldShowRequestPermissionRationale(java.lang.String); method public void startActivity(android.content.Intent); method public void startActivity(android.content.Intent, android.os.Bundle); method public void startActivityForResult(android.content.Intent, int); diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java index 40c5c64..26d4fd4 100644 --- a/core/java/android/app/Fragment.java +++ b/core/java/android/app/Fragment.java @@ -1223,6 +1223,33 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene } /** + * 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. + * <p> + * For example, if you write a camera app, requesting the camera permission + * would be expected by the user and no rationale for why it is requested is + * needed. If however, the app needs location for tagging photos then a non-tech + * savvy user may wonder how location is related to taking photos. In this case + * you may choose to show UI with rationale of requesting this permission. + * </p> + * + * @param permission A permission your app wants to request. + * @return Whether you can show permission rationale UI. + * + * @see Context#checkSelfPermission(String) + * @see #requestPermissions(String[], int) + * @see #onRequestPermissionsResult(int, String[], int[]) + */ + public boolean shouldShowRequestPermissionRationale(@NonNull String permission) { + if (mHost != null) { + mHost.getContext().getPackageManager().shouldShowRequestPermissionRationale(permission); + } + return false; + } + + /** * @hide Hack so that DialogFragment can make its Dialog before creating * its views, and the view construction can use the dialog's context for * inflation. Maybe this should become a public API. Note sure. |