Fix Path -> Uri conversion for paths contain '%'

This reverts commit ab2e4a8e2d.
This commit is contained in:
FooIbar committed 2024-07-10 19:44:13 +08:00
1 parent a28d3ba840
commit 2d2ce3281e
2 files changed
+25 -21

No files matched your search

@@ -103,14 +103,14 @@ class AndroidFileSystem(context: Context) : FileSystem() {
}
}
val uri = dir.toUri()
var documentId = DocumentsContract.getDocumentId(uri)
if (uri.isCifsDocument()) {
documentId += '/'
}
val childrenUri = DocumentsContract.buildChildDocumentsUriUsingTree(uri, documentId)
return runCatching {
val uri = dir.toUri()
var documentId = DocumentsContract.getDocumentId(uri)
if (uri.isCifsDocument()) {
documentId += '/'
}
val childrenUri = DocumentsContract.buildChildDocumentsUriUsingTree(uri, documentId)
contentResolver.query(childrenUri, arrayOf(Document.COLUMN_DISPLAY_NAME), null, null, null)?.use { c ->
List(c.count) {
c.moveToNext()
@@ -126,15 +126,15 @@ class AndroidFileSystem(context: Context) : FileSystem() {
return physicalFileSystem.metadataOrNull(path)
}
val uri = path.toUri()
val isMediaUri = uri.authority == MediaStore.AUTHORITY
val projection = if (isMediaUri) {
arrayOf(MediaStore.MediaColumns.MIME_TYPE, MediaStore.MediaColumns.DATE_MODIFIED)
} else {
arrayOf(Document.COLUMN_MIME_TYPE, Document.COLUMN_LAST_MODIFIED)
}
return runCatching {
val uri = path.toUri()
val isMediaUri = uri.authority == MediaStore.AUTHORITY
val projection = if (isMediaUri) {
arrayOf(MediaStore.MediaColumns.MIME_TYPE, MediaStore.MediaColumns.DATE_MODIFIED)
} else {
arrayOf(Document.COLUMN_MIME_TYPE, Document.COLUMN_LAST_MODIFIED)
}
contentResolver.query(uri, projection, null, null, null)?.use { c ->
if (!c.moveToNext()) return null