From d024e8db464e8b0ba0133feed67896b854fd8b25 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Mon, 3 Jul 2017 22:34:05 -0700 Subject: Push permission manager for release --- .../kotlin/ca/allanwang/kau/sample/AnimActivity.kt | 29 +++++++++++++++++++--- .../ca/allanwang/kau/sample/PermissionCheckbox.kt | 13 ++++++++-- 2 files changed, 36 insertions(+), 6 deletions(-) (limited to 'sample/src/main/kotlin') diff --git a/sample/src/main/kotlin/ca/allanwang/kau/sample/AnimActivity.kt b/sample/src/main/kotlin/ca/allanwang/kau/sample/AnimActivity.kt index 2fd846c..8b8d784 100644 --- a/sample/src/main/kotlin/ca/allanwang/kau/sample/AnimActivity.kt +++ b/sample/src/main/kotlin/ca/allanwang/kau/sample/AnimActivity.kt @@ -2,8 +2,14 @@ package ca.allanwang.kau.sample import android.os.Bundle import android.support.v7.app.AppCompatActivity +import ca.allanwang.kau.logging.KL +import ca.allanwang.kau.permissions.PERMISSION_ACCESS_COARSE_LOCATION +import ca.allanwang.kau.permissions.PERMISSION_ACCESS_FINE_LOCATION +import ca.allanwang.kau.permissions.kauOnRequestPermissionsResult +import ca.allanwang.kau.permissions.requestPermissions import ca.allanwang.kau.utils.fullLinearRecycler import ca.allanwang.kau.utils.startActivitySlideOut +import ca.allanwang.kau.utils.toast import com.mikepenz.fastadapter.commons.adapters.FastItemAdapter /** @@ -16,14 +22,29 @@ class AnimActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val adapter = FastItemAdapter - val recycler = fullLinearRecycler { - + val adapter = FastItemAdapter() + setContentView(fullLinearRecycler(adapter)) + adapter.add(listOf( + PERMISSION_ACCESS_COARSE_LOCATION, + PERMISSION_ACCESS_FINE_LOCATION + ).map{ PermissionCheckbox(it) }) + adapter.withOnClickListener { _, _, item, _ -> + KL.d("Perm Click") + requestPermissions(item.permission) { + granted, deniedPerm -> + toast("${item.permission} enabled: $granted") + adapter.notifyAdapterDataSetChanged() + } + true } - setContentView(R.layout.sample) } override fun onBackPressed() { startActivitySlideOut(MainActivity::class.java) } + + override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults) + kauOnRequestPermissionsResult(permissions, grantResults) + } } \ No newline at end of file diff --git a/sample/src/main/kotlin/ca/allanwang/kau/sample/PermissionCheckbox.kt b/sample/src/main/kotlin/ca/allanwang/kau/sample/PermissionCheckbox.kt index 012d523..c1b1865 100644 --- a/sample/src/main/kotlin/ca/allanwang/kau/sample/PermissionCheckbox.kt +++ b/sample/src/main/kotlin/ca/allanwang/kau/sample/PermissionCheckbox.kt @@ -4,15 +4,24 @@ import android.support.v7.widget.RecyclerView import android.view.View import android.widget.CheckBox import android.widget.TextView -import ca.allanwang.kau.iitems.KotlinIItem +import ca.allanwang.kau.iitems.KauIItem import ca.allanwang.kau.utils.bindView +import ca.allanwang.kau.utils.hasPermission /** * Created by Allan Wang on 2017-07-03. */ -class PermissionCheckbox(val permission: String) : KotlinIItem( +class PermissionCheckbox(val permission: String) : KauIItem( R.layout.permission_checkbox, R.layout.permission_checkbox, { ViewHolder(it) }) { + override fun bindView(holder: ViewHolder, payloads: MutableList?) { + super.bindView(holder, payloads) + holder.text.text = permission + holder.checkbox.isChecked = holder.itemView.context.hasPermission(permission) + holder.checkbox.isClickable = false + holder.checkbox.jumpDrawablesToCurrentState() //Cancel the animation + } + class ViewHolder(v: View) : RecyclerView.ViewHolder(v) { val text: TextView by bindView(R.id.perm_text) val checkbox: CheckBox by bindView(R.id.perm_checkbox) -- cgit v1.2.3