aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/ca/allanwang/kau/permissions/PermissionResult.kt
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/kotlin/ca/allanwang/kau/permissions/PermissionResult.kt')
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/permissions/PermissionResult.kt26
1 files changed, 26 insertions, 0 deletions
diff --git a/core/src/main/kotlin/ca/allanwang/kau/permissions/PermissionResult.kt b/core/src/main/kotlin/ca/allanwang/kau/permissions/PermissionResult.kt
new file mode 100644
index 0000000..14bfdff
--- /dev/null
+++ b/core/src/main/kotlin/ca/allanwang/kau/permissions/PermissionResult.kt
@@ -0,0 +1,26 @@
+package ca.allanwang.kau.permissions
+
+import android.content.pm.PackageManager
+
+/**
+ * Created by Allan Wang on 2017-07-03.
+ */
+class PermissionResult(permissions: Array<out String>, val callback: (granted: Boolean, deniedPerm: String?) -> Unit) {
+ val permissions = mutableSetOf(*permissions)
+
+ /**
+ * Called from the manager whenever a permission has changed
+ * Returns true if result is completed, false otherwise
+ */
+ fun onResult(permission: String, result: Int): Boolean {
+ if (result != PackageManager.PERMISSION_GRANTED) {
+ callback(false, permission)
+ permissions.clear()
+ return true
+ }
+ permissions.remove(permission)
+ if (permissions.isNotEmpty()) return false
+ callback(true, null)
+ return true
+ }
+} \ No newline at end of file