permission temp
This commit is contained in:
parent
4b1bc30d32
commit
93bccfad9f
|
|
@ -0,0 +1,29 @@
|
|||
package luyao.util.ktx.ext.permission
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
|
||||
/**
|
||||
* Created by luyao
|
||||
* on 2019/6/18 16:27
|
||||
*/
|
||||
class KtxPermissionFragment : Fragment() {
|
||||
|
||||
private val PERMISSION_REQUEST_CODE = 0XFF
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
retainInstance = true
|
||||
}
|
||||
|
||||
fun requestPermissions(permissions: Array<String>) {
|
||||
requestPermissions(permissions, PERMISSION_REQUEST_CODE)
|
||||
}
|
||||
|
||||
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||
if (requestCode == PERMISSION_REQUEST_CODE) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
package luyao.util.ktx.ext.permission
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
|
||||
/**
|
||||
* Created by luyao
|
||||
* on 2019/6/18 15:47
|
||||
*/
|
||||
|
||||
fun Activity.request(vararg permissions: String) {
|
||||
|
||||
val needRequestPermissions = permissions.filter { !isGranted(it) && !isRevoked(it) }
|
||||
|
||||
if (needRequestPermissions.isEmpty()) {
|
||||
// onGranted
|
||||
} else {
|
||||
val shouldShowRationalePermissions = mutableListOf<String>()
|
||||
val shouldNotShowRationalePermissions = mutableListOf<String>()
|
||||
for (permission in needRequestPermissions) {
|
||||
if (ActivityCompat.shouldShowRequestPermissionRationale(this, permission))
|
||||
shouldShowRationalePermissions.add(permission)
|
||||
else
|
||||
shouldNotShowRationalePermissions.add(permission)
|
||||
}
|
||||
|
||||
if (shouldShowRationalePermissions.isNotEmpty()){
|
||||
// shouldShowRequestPermissionRationale
|
||||
}
|
||||
|
||||
if (shouldNotShowRationalePermissions.isNotEmpty()){
|
||||
// request permission
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun Activity.isGranted(permission: String): Boolean {
|
||||
return Build.VERSION.SDK_INT < Build.VERSION_CODES.M ||
|
||||
ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED
|
||||
}
|
||||
|
||||
fun Activity.isRevoked(permission: String): Boolean {
|
||||
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
|
||||
packageManager.isPermissionRevokedByPolicy(permission, packageName)
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue