Skip to content

Commit 2881d11

Browse files
author
LaksCastro
committed
(#50) Query COLUMN_DOCUMENT_ID even when not requested
1 parent 90b7331 commit 2881d11

File tree

1 file changed

+11
-8
lines changed
  • android/src/main/kotlin/io/lakscastro/sharedstorage/storageaccessframework/lib

1 file changed

+11
-8
lines changed

android/src/main/kotlin/io/lakscastro/sharedstorage/storageaccessframework/lib/DocumentCommon.kt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,12 @@ import android.os.Build
88
import android.provider.DocumentsContract
99
import android.util.Base64
1010
import androidx.annotation.RequiresApi
11-
import androidx.annotation.RestrictTo
1211
import androidx.documentfile.provider.DocumentFile
1312
import io.lakscastro.sharedstorage.plugin.API_19
1413
import io.lakscastro.sharedstorage.plugin.API_21
1514
import io.lakscastro.sharedstorage.plugin.API_24
1615
import java.io.ByteArrayOutputStream
1716
import java.io.Closeable
18-
import java.io.File
1917

2018
/**
2119
* Helper class to make more easy to handle callbacks using Kotlin syntax
@@ -174,12 +172,17 @@ fun traverseDirectoryEntries(
174172
while (dirNodes.isNotEmpty()) {
175173
val (parent, children) = dirNodes.removeAt(0)
176174

177-
val requiredColumns = if (rootOnly) emptyArray() else arrayOf(
178-
DocumentsContract.Document.COLUMN_MIME_TYPE,
179-
DocumentsContract.Document.COLUMN_DOCUMENT_ID
180-
)
175+
val requiredColumns =
176+
if (rootOnly) emptyArray() else arrayOf(DocumentsContract.Document.COLUMN_MIME_TYPE)
177+
178+
val intrinsicColumns =
179+
arrayOf(DocumentsContract.Document.COLUMN_DOCUMENT_ID)
181180

182-
val projection = arrayOf(*columns, *requiredColumns).toSet().toTypedArray()
181+
val projection = arrayOf(
182+
*columns,
183+
*requiredColumns,
184+
*intrinsicColumns
185+
).toSet().toTypedArray()
183186

184187
val cursor = contentResolver.query(
185188
children,
@@ -220,7 +223,7 @@ fun traverseDirectoryEntries(
220223
)
221224
)
222225

223-
if (isDirectory != null && isDirectory && !rootOnly) {
226+
if (isDirectory == true && !rootOnly) {
224227
val nextChildren =
225228
DocumentsContract.buildChildDocumentsUriUsingTree(rootUri, id)
226229

0 commit comments

Comments
 (0)