Skip to content

Commit 328137b

Browse files
committed
fix(android): invalid column flags
1 parent ef9e9d3 commit 328137b

File tree

1 file changed

+16
-9
lines changed
  • packages/document-picker/android/src/main/java/com/reactnativedocumentpicker

1 file changed

+16
-9
lines changed

packages/document-picker/android/src/main/java/com/reactnativedocumentpicker/MetadataGetter.kt

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,26 +65,33 @@ class MetadataGetter(private val uriMap: MutableMap<String, Uri>) {
6565
}
6666
}
6767

68-
queryContentResolverMetadata(contentResolver, metadataBuilder, context)
68+
val couldBeVirtualFile = pickOptions.allowVirtualFiles && DocumentsContract.isDocumentUri(context, sourceUri)
69+
queryContentResolverMetadata(contentResolver, metadataBuilder, couldBeVirtualFile)
6970

7071
metadataBuilder
7172
}
7273

7374
fun queryContentResolverMetadata(
7475
contentResolver: ContentResolver,
7576
metadataBuilder: DocumentMetadataBuilder,
76-
context: Context
77+
couldBeVirtualFile: Boolean
7778
) {
7879
val forUri = metadataBuilder.getUri()
80+
81+
val projection = mutableListOf(
82+
DocumentsContract.Document.COLUMN_MIME_TYPE,
83+
OpenableColumns.DISPLAY_NAME,
84+
OpenableColumns.SIZE,
85+
).apply {
86+
if (couldBeVirtualFile) {
87+
add(DocumentsContract.Document.COLUMN_FLAGS)
88+
}
89+
}.toTypedArray()
90+
7991
contentResolver
8092
.query(
8193
forUri,
82-
arrayOf(
83-
DocumentsContract.Document.COLUMN_MIME_TYPE,
84-
OpenableColumns.DISPLAY_NAME,
85-
OpenableColumns.SIZE,
86-
DocumentsContract.Document.COLUMN_FLAGS,
87-
),
94+
projection,
8895
null,
8996
null,
9097
null
@@ -106,7 +113,7 @@ class MetadataGetter(private val uriMap: MutableMap<String, Uri>) {
106113
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
107114
// https://developer.android.com/training/data-storage/shared/documents-files#open-virtual-file
108115
val isVirtual =
109-
if (DocumentsContract.isDocumentUri(context, forUri)) {
116+
if (couldBeVirtualFile) {
110117
val cursorValue: Int =
111118
getCursorValue(
112119
cursor, DocumentsContract.Document.COLUMN_FLAGS, Int::class.java

0 commit comments

Comments
 (0)