导入背景失败问题 #81
This commit is contained in:
@@ -41,15 +41,20 @@ class HandleFileContract :
|
||||
}
|
||||
|
||||
override fun parseResult(resultCode: Int, intent: Intent?): Result {
|
||||
val uri = if (resultCode != RESULT_OK || intent?.data == null ||
|
||||
RealPathUtil.getTreePath(intent.data!!)
|
||||
?.startsWith(appCtx.externalFiles.parent!!) == true
|
||||
if (resultCode != RESULT_OK || intent == null) {
|
||||
return Result(null, requestCode, null)
|
||||
}
|
||||
|
||||
val dataUri = intent.data
|
||||
val uri = if (dataUri == null ||
|
||||
RealPathUtil.getTreePath(dataUri)?.startsWith(appCtx.externalFiles.parent!!) == true
|
||||
) {
|
||||
null
|
||||
} else {
|
||||
intent.data
|
||||
dataUri
|
||||
}
|
||||
return Result(uri, requestCode, intent?.getStringExtra("value"))
|
||||
|
||||
return Result(uri, requestCode, intent.getStringExtra("value"))
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -26,22 +26,25 @@ class SelectImageContract : ActivityResultContract<Int?, SelectImageContract.Res
|
||||
val intent = Intent(Intent.ACTION_GET_CONTENT)
|
||||
.addCategory(Intent.CATEGORY_OPENABLE)
|
||||
.setType("image/*")
|
||||
if (intent.resolveActivity(appCtx.packageManager) == null) {
|
||||
useFallback = true
|
||||
useFallback = intent.resolveActivity(appCtx.packageManager) == null
|
||||
return if (useFallback) {
|
||||
val request = PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)
|
||||
return delegate.createIntent(context, request)
|
||||
delegate.createIntent(context, request)
|
||||
} else {
|
||||
intent
|
||||
}
|
||||
return intent
|
||||
}
|
||||
|
||||
override fun parseResult(resultCode: Int, intent: Intent?): Result {
|
||||
val uri = if (useFallback) {
|
||||
val isFallback = useFallback
|
||||
useFallback = false
|
||||
|
||||
val uri = if (isFallback) {
|
||||
delegate.parseResult(resultCode, intent)
|
||||
} else if (resultCode == RESULT_OK) {
|
||||
intent?.data
|
||||
} else {
|
||||
null
|
||||
}
|
||||
} else null
|
||||
|
||||
return Result(requestCode, uri)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user