diff --git a/app/src/main/java/io/legado/app/ui/book/local/ImportBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/local/ImportBookActivity.kt index df335d8ca..e506ec77a 100644 --- a/app/src/main/java/io/legado/app/ui/book/local/ImportBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/local/ImportBookActivity.kt @@ -215,7 +215,7 @@ class ImportBookActivity : VMBaseActivity false - it.isDirectory -> true + it.isDir -> true else -> it.name.matches(bookFileRegex) } } diff --git a/app/src/main/java/io/legado/app/ui/font/FontSelectDialog.kt b/app/src/main/java/io/legado/app/ui/font/FontSelectDialog.kt index fae800396..152a8ca31 100644 --- a/app/src/main/java/io/legado/app/ui/font/FontSelectDialog.kt +++ b/app/src/main/java/io/legado/app/ui/font/FontSelectDialog.kt @@ -22,7 +22,6 @@ import io.legado.app.utils.* import io.legado.app.utils.viewbindingdelegate.viewBinding import kotlinx.coroutines.Dispatchers.Main import kotlinx.coroutines.launch -import splitties.init.appCtx import java.io.File import java.util.* import kotlin.collections.ArrayList @@ -31,9 +30,6 @@ class FontSelectDialog : BaseDialogFragment(R.layout.dialog_font_select), Toolbar.OnMenuItemClickListener, FontAdapter.CallBack { private val fontRegex = Regex("(?i).*\\.[ot]tf") - private val fontFolder by lazy { - FileUtils.createFolderIfNotExist(appCtx.filesDir, "Fonts") - } private val binding by viewBinding(DialogFontSelectBinding::bind) private val adapter by lazy { val curFontPath = callBack?.curFontPath ?: "" @@ -188,7 +184,6 @@ class FontSelectDialog : BaseDialogFragment(R.layout.dialog_font_select), override fun onClick(docItem: FileDoc) { execute { - FileUtils.deleteFile(fontFolder.absolutePath) callBack?.selectFont(docItem.uri.toString()) }.onSuccess { dismissAllowingStateLoss() diff --git a/app/src/main/java/io/legado/app/utils/DocumentExtensions.kt b/app/src/main/java/io/legado/app/utils/DocumentExtensions.kt index 15c2e6336..db0ab5279 100644 --- a/app/src/main/java/io/legado/app/utils/DocumentExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/DocumentExtensions.kt @@ -96,6 +96,9 @@ object DocumentUtils { @Throws(Exception::class) fun listFiles(uri: Uri, filter: ((file: FileDoc) -> Boolean)? = null): ArrayList { + if (!uri.isContentScheme()) { + return listFiles(uri.path!!, filter) + } val docList = arrayListOf() var cursor: Cursor? = null try { @@ -139,23 +142,22 @@ object DocumentUtils { } @Throws(Exception::class) - fun listFiles(path: String, filter: ((file: File) -> Boolean)? = null): ArrayList { - val docItems = arrayListOf() + fun listFiles(path: String, filter: ((file: FileDoc) -> Boolean)? = null): ArrayList { + val docList = arrayListOf() val file = File(path) - file.listFiles { pathName -> - filter?.invoke(pathName) ?: true - }?.forEach { - docItems.add( - FileDoc( - it.name, - it.isDirectory, - it.length(), - Date(it.lastModified()), - Uri.parse(it.absolutePath) - ) + file.listFiles()?.forEach { + val item = FileDoc( + it.name, + it.isDirectory, + it.length(), + Date(it.lastModified()), + Uri.parse(it.absolutePath) ) + if (filter == null || filter.invoke(item)) { + docList.add(item) + } } - return docItems + return docList } }