public abstract class PermissionCase<T> extends RequirementCase<T>
PermissionCase(String)
takes single permission (which is good in terms of UX instead of String[] like Activity.requestPermissions
suggests). The only method that must be overriden is `showPermissionRationale`. This class contains
few helper methods:
| Constructor and Description |
|---|
PermissionCase(java.lang.String permission) |
PermissionCase(java.lang.String permission,
int requestCode) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
meetsRequirement()
Synchronous method to check if requirement is satisfied
|
protected void |
navigateToSettingsScreen()
Opens settings screen of the application.
|
boolean |
onActivityResult(int requestCode,
int resultCode,
android.content.Intent data)
Please override this method if your
RequirementCase need to receive `onActivityResult` event |
boolean |
onRequestPermissionsResult(int requestCode,
java.lang.String[] permissions,
int[] grantResults)
Please override this method if your
RequirementCase need to receive `onRequestPermissionsResult` event |
java.lang.String |
permission() |
int |
requestCode() |
protected void |
requestPermission()
This method must be called after rationale was shown (
showPermissionRationale()) and
user gave his/her agreement |
protected void |
showExplanationOnNever()
Override this method if you would like to display a confirmation to a user when he/she
checks `never` checkbox on the system permission request dialog.
|
protected abstract void |
showPermissionRationale()
Should display rationale.
|
void |
startResolution()
Starts requirement resolution process.
|
java.lang.String |
toString() |
activity, appContext, attach, checkSelfPermission, deliverResult, deliverResult, detach, requestPermission, shouldShowRequestPermissionRationale, startActivityForResult, targetpublic PermissionCase(java.lang.String permission)
public PermissionCase(java.lang.String permission,
int requestCode)
public boolean meetsRequirement()
meetsRequirement in class RequirementCase<T>public void startResolution()
RequirementCase.meetsRequirement() returns falsestartResolution in class RequirementCase<T>protected abstract void showPermissionRationale()
RequirementCase.deliverResult(boolean)
with cancellation event or requestPermission()protected void showExplanationOnNever()
protected void requestPermission()
showPermissionRationale()) and
user gave his/her agreementprotected void navigateToSettingsScreen()
showExplanationOnNever(), which should indicate further
user actionspublic boolean onActivityResult(int requestCode,
int resultCode,
android.content.Intent data)
RequirementCase need to receive `onActivityResult` eventonActivityResult in class RequirementCase<T>public boolean onRequestPermissionsResult(int requestCode,
java.lang.String[] permissions,
int[] grantResults)
RequirementCase need to receive `onRequestPermissionsResult` eventonRequestPermissionsResult in class RequirementCase<T>public java.lang.String permission()
public int requestCode()
RequestCode.createRequestCode(String)public java.lang.String toString()
toString in class java.lang.Object