Behavior - ParadiseHell/PermissionTerminator GitHub Wiki
Introducation
There are 3 kinds of behavior in ParmissionTerminator.
- PermissionRationalBehavior
- This behavior is used to explain why we need to ask for permissions in a common way while we requesting. And in this behavior, we can do 2 things using RationalRequest
- Cancel to request permissions which will invoke
PermissionCallabck#onDenied. - Do real requesting.
- Cancel to request permissions which will invoke
- This behavior is used to explain why we need to ask for permissions in a common way while we requesting. And in this behavior, we can do 2 things using RationalRequest
- PermissionDenialBehavior
- This behavior is used to handle such a situation when at least one permission is denied in a common way. And in this behavior, we can do 2 things using DenialRequest
- Cancel to handle this situation which will invoke
PermissionCallabck#onDenied. - Request again denied permissions.
- Cancel to handle this situation which will invoke
- This behavior is used to handle such a situation when at least one permission is denied in a common way. And in this behavior, we can do 2 things using DenialRequest
- PermissionNeverAskBehavior.
- This behavior is used to handle such a situation when at least one permission is marked never ask again. And in this behavior, we can do 2 things using NeverAskRequest
- Cancel to handle this situation which will invoke
PermissionCallabck#onNeverAsked. - Launch system setting activity to let users allow permissions that are marked never ask again, after that
PermissionTerminatorwill check whether these permissions are granted or not.
- Cancel to handle this situation which will invoke
- This behavior is used to handle such a situation when at least one permission is marked never ask again. And in this behavior, we can do 2 things using NeverAskRequest
How to use
PermissionRationalBehavior
Add a custom PermissionRationalBehavior using PermissionRationalBehavior.Factory, of course we can more type of PermissionRationalBehavior.
PermissionTerminator.addRationalBehaviorFactory(factoryType, factory)
Set a default PermissionRationalBehavior to handle a common situation.
PermissionTerminator.setDefaultRationalBehaviorFactoryType(factoryType)
Use a different PermissionRationalBehavior not just default.
PermissionTerminator
.with(this)
.withRationalBehavior(rationalType)
Disable to use PermissionRationalBehavior.
PermissionTerminator
.with(this)
.disableRationalBehavior()
PermissionDenialBehavior
Add a custom PermissionDenialBehavior using PermissionDenialBehavior.Factory, of course we can more type of PermissionDenialBehavior.
PermissionTerminator.addDenialBehavior(type, factory)
Set a default PermissionDenialBehavior to handle a common situation.
PermissionTerminator.setDefaultDenialBehaviorFactoryType(factoryType)
Use a different PermissionDenialBehavior not just default.
PermissionTerminator
.with(this)
.withDenialBehavior(denialType)
Disable to use PermissionDenialBehavior.
PermissionTerminator
.with(this)
.disableDenialBehavior()
PermissionNeverAskBehavior
Add a custom PermissionNeverAskBehavior using PermissionNeverAskBehavior.Factory, of course we can more type of PermissionNeverAskBehavior.
PermissionTerminator.addNeverAskBehavior(factoryType, factory)
Set a default PermissionNeverAskBehavior to handle a common situation.
PermissionTerminator.setDefaultNeverAskBehaviorFactoryType(factoryType)
Use a different PermissionNeverAskBehavior not just default.
PermissionTerminator
.with(this)
.withNeverAskBehavior(neverAskType)
Disable to use PermissionNeverAskBehavior.
PermissionTerminator
.with(this)
.disableNeverAskBehavior()