diff --git a/README.md b/README.md index c95ca3b..f870343 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,13 @@ # Permissions +[![](https://jitpack.io/v/lorenzofelletti/permissions.svg)](https://jitpack.io/#lorenzofelletti/permissions) + ## Easy permissions management library for Android -An easy to use permissions management library. +An easy to use permissions management library designed to be used with Kotlin. + +The library is deployed on JitPack here, follow the steps indicated in the link to add it to your project. -To use it, just: +To use it in your project, just: * Declare the permissions your app will use in your application's Manifest * Example: add to the app `AndroidManifest.xml` ```xml diff --git a/permissions/build.gradle b/permissions/build.gradle index 545faa3..72c4fbd 100644 --- a/permissions/build.gradle +++ b/permissions/build.gradle @@ -53,7 +53,7 @@ publishing { release(MavenPublication) { groupId 'com.github.lorenzofelletti' artifactId 'permissions' - version '0.3.0' + version '0.3.1' afterEvaluate { from components.release diff --git a/permissions/src/main/java/com/lorenzofelletti/permissions/PermissionManager.kt b/permissions/src/main/java/com/lorenzofelletti/permissions/PermissionManager.kt index 6401385..965d0a0 100644 --- a/permissions/src/main/java/com/lorenzofelletti/permissions/PermissionManager.kt +++ b/permissions/src/main/java/com/lorenzofelletti/permissions/PermissionManager.kt @@ -68,14 +68,23 @@ class PermissionManager(val activity: Activity) { } if (shouldShowRationale && !comingFromRationale) { - requestResultsDispatcher.getOnShowRationale(requestCode) - ?.invoke(permissionsNotGranted.toList(), requestCode) + dispatchRationale(permissionsNotGranted, requestCode) } else { ActivityCompat.requestPermissions(activity, permissionsNotGranted, requestCode) } } } + private fun dispatchRationale(permissionsNotGranted: Array, requestCode: Int) { + val toInvoke = requestResultsDispatcher.getOnShowRationale(requestCode) ?: fun( + _: List, + requestCode: Int + ) { + checkRequestAndDispatch(requestCode, true) + } + toInvoke.invoke(permissionsNotGranted.toList(), requestCode) + } + /** * Checks whether a set of permissions is granted or not. * diff --git a/permissions/src/main/java/com/lorenzofelletti/permissions/dispatcher/DispatcherEntry.kt b/permissions/src/main/java/com/lorenzofelletti/permissions/dispatcher/DispatcherEntry.kt index 70e898b..ad36163 100644 --- a/permissions/src/main/java/com/lorenzofelletti/permissions/dispatcher/DispatcherEntry.kt +++ b/permissions/src/main/java/com/lorenzofelletti/permissions/dispatcher/DispatcherEntry.kt @@ -37,7 +37,7 @@ class DispatcherEntry( /** * The rationale to be shown */ - var onShowRationale: (List, requestCode: Int) -> Unit = { _, _ -> } + var onShowRationale: ((List, requestCode: Int) -> Unit)? = null private set override fun equals(other: Any?): Boolean {