Merge pull request #1726 from kiwix/feature/macgills/1725-stack-overflow-file-search

#1725 CrashReport 3.1.3: StackOverflowError - use a file walk for ext…
This commit is contained in:
Seán Mac Gillicuddy 2020-01-29 13:07:28 +00:00 committed by GitHub
commit 0cc35377e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -71,17 +71,8 @@ class FileSearch @Inject constructor(private val context: Context) {
private fun directoryRoots() =
StorageDeviceUtils.getReadableStorage(context).map(StorageDevice::name)
private fun scanDirectory(directory: String): List<File> = File(directory).listFiles()
?.fold(
mutableListOf(), { acc, file ->
acc.apply {
if (file.isDirectory) {
addAll(scanDirectory(file.path))
} else if (file.extension.isAny(*zimFileExtensions)) {
add(file)
}
}
}) ?: emptyList()
private fun scanDirectory(directory: String): List<File> =
File(directory).walk().filter { it.extension.isAny(*zimFileExtensions) }.toList()
}
internal fun String.isAny(vararg suffixes: String) =