unify the storage permission requesting

This commit is contained in:
tibbi 2017-10-22 11:36:18 +02:00
parent b29f7f07cc
commit e805baf6eb
1 changed files with 19 additions and 25 deletions

View File

@ -122,39 +122,33 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
private fun checkIntents() { private fun checkIntents() {
if (intent?.action == Intent.ACTION_SEND && intent.type.startsWith("image/")) { if (intent?.action == Intent.ACTION_SEND && intent.type.startsWith("image/")) {
handlePermission(PERMISSION_WRITE_STORAGE) { getStoragePermission {
if (it) { val uri = intent.getParcelableExtra<Uri>(Intent.EXTRA_STREAM)
val uri = intent.getParcelableExtra<Uri>(Intent.EXTRA_STREAM) tryOpenUri(uri)
tryOpenUri(uri)
} else {
toast(R.string.no_storage_permissions)
}
} }
} }
if (intent?.action == Intent.ACTION_SEND_MULTIPLE && intent.type.startsWith("image/")) { if (intent?.action == Intent.ACTION_SEND_MULTIPLE && intent.type.startsWith("image/")) {
handlePermission(PERMISSION_WRITE_STORAGE) { getStoragePermission {
if (it) { val imageUris = intent.getParcelableArrayListExtra<Uri>(Intent.EXTRA_STREAM)
val imageUris = intent.getParcelableArrayListExtra<Uri>(Intent.EXTRA_STREAM) imageUris.any { tryOpenUri(it) }
for (uri in imageUris) {
if (tryOpenUri(uri)) {
break
}
}
} else {
toast(R.string.no_storage_permissions)
}
} }
} }
if (intent?.action == Intent.ACTION_VIEW && intent.data != null) { if (intent?.action == Intent.ACTION_VIEW && intent.data != null) {
val path = intent.data!!.path getStoragePermission {
handlePermission(PERMISSION_WRITE_STORAGE) { val path = intent.data.path
if (it) { openPath(path)
openPath(path) }
} else { }
toast(R.string.no_storage_permissions) }
}
private fun getStoragePermission(callback: () -> Unit) {
handlePermission(PERMISSION_WRITE_STORAGE) {
if (it) {
callback()
} else {
toast(R.string.no_storage_permissions)
} }
} }
} }