safer activity request to get volume access
This commit is contained in:
parent
dcfc07ff00
commit
b5d800edc2
1 changed files with 7 additions and 3 deletions
|
@ -7,7 +7,6 @@ import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.storage.StorageManager
|
import android.os.storage.StorageManager
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.core.app.ActivityCompat
|
|
||||||
import deckers.thibault.aves.utils.StorageUtils.PathSegments
|
import deckers.thibault.aves.utils.StorageUtils.PathSegments
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
@ -23,7 +22,6 @@ object PermissionManager {
|
||||||
|
|
||||||
fun requestVolumeAccess(activity: Activity, path: String, onGranted: () -> Unit, onDenied: () -> Unit) {
|
fun requestVolumeAccess(activity: Activity, path: String, onGranted: () -> Unit, onDenied: () -> Unit) {
|
||||||
Log.i(LOG_TAG, "request user to select and grant access permission to volume=$path")
|
Log.i(LOG_TAG, "request user to select and grant access permission to volume=$path")
|
||||||
pendingPermissionMap[VOLUME_ACCESS_REQUEST_CODE] = PendingPermissionHandler(path, onGranted, onDenied)
|
|
||||||
|
|
||||||
var intent: Intent? = null
|
var intent: Intent? = null
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||||
|
@ -36,7 +34,13 @@ object PermissionManager {
|
||||||
intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
|
intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
|
||||||
}
|
}
|
||||||
|
|
||||||
ActivityCompat.startActivityForResult(activity, intent, VOLUME_ACCESS_REQUEST_CODE, null)
|
if (intent.resolveActivity(activity.packageManager) != null) {
|
||||||
|
pendingPermissionMap[VOLUME_ACCESS_REQUEST_CODE] = PendingPermissionHandler(path, onGranted, onDenied)
|
||||||
|
activity.startActivityForResult(intent, VOLUME_ACCESS_REQUEST_CODE, null)
|
||||||
|
} else {
|
||||||
|
Log.e(LOG_TAG, "failed to resolve activity for intent=$intent")
|
||||||
|
onDenied()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onPermissionResult(requestCode: Int, treeUri: Uri?) {
|
fun onPermissionResult(requestCode: Int, treeUri: Uri?) {
|
||||||
|
|
Loading…
Reference in a new issue