@@ -53,18 +53,22 @@ val permissionFlow = PermissionFlow.getInstance()
5353
5454// Observe state of single permission
5555suspend fun observePermission () {
56- permissionFlow.getPermissionState(android. Manifest .permission.READ_CONTACTS ).collect { state ->
56+ permissionFlow.getPermissionState(Manifest .permission.READ_CONTACTS ).collect { state ->
5757 if (state.isGranted) {
58- // Do something
58+ // Permission granted, access contacts.
59+ } else if (state.isRationaleRequired == true ) {
60+ // Permission denied, but can be requested again
61+ } else {
62+ // Permission denied, and can't be requested again
5963 }
6064 }
6165}
6266
6367// Observe state of multiple permissions
6468suspend fun observeMultiplePermissions () {
6569 permissionFlow.getMultiplePermissionState(
66- android. Manifest .permission.READ_CONTACTS ,
67- android. Manifest .permission.READ_SMS
70+ Manifest .permission.READ_CONTACTS ,
71+ Manifest .permission.READ_SMS
6872 ).collect { state ->
6973 // All permission states
7074 val allPermissions = state.permissions
@@ -77,6 +81,9 @@ suspend fun observeMultiplePermissions() {
7781
7882 // List of denied permissions
7983 val deniedPermissions = state.deniedPermissions
84+
85+ // List of permissions requiring rationale
86+ val permissionsRequiringRationale = state.permissionsRequiringRationale
8087 }
8188}
8289```
@@ -90,9 +97,11 @@ State of a permission and state of multiple permissions can also be observed in
9097fun ExampleSinglePermission () {
9198 val state by rememberPermissionState(Manifest .permission.CAMERA )
9299 if (state.isGranted) {
93- // Render something
100+ // Permission granted
101+ } else if (state.isRationaleRequired == true ) {
102+ // Permission denied, but can be requested again
94103 } else {
95- // Render something else
104+ // Permission denied, and can't be requested again
96105 }
97106}
98107
@@ -113,6 +122,9 @@ fun ExampleMultiplePermission() {
113122
114123 val deniedPermissions = state.deniedPermissions
115124 // Do something with `deniedPermissions`
125+
126+ val permissionsRequiringRationale = state.permissionsRequiringRationale
127+ // Do something with `permissionsRequiringRationale`
116128}
117129```
118130
0 commit comments