87 lines
2.0 KiB
Kotlin
87 lines
2.0 KiB
Kotlin
package sushi.hardcore.droidfs
|
|
|
|
import java.io.File
|
|
|
|
object FileTypes {
|
|
private val FILE_EXTENSIONS = mapOf(
|
|
Pair("image", listOf("png", "jpg", "jpeg", "gif", "webp", "bmp", "heic")),
|
|
Pair("video", listOf("mp4", "webm", "mkv", "mov")),
|
|
Pair("audio", listOf("mp3", "ogg", "m4a", "wav", "flac", "opus")),
|
|
Pair("pdf", listOf("pdf")),
|
|
Pair("text", listOf(
|
|
"asc",
|
|
"asm",
|
|
"awk",
|
|
"bash",
|
|
"c",
|
|
"cfg",
|
|
"conf",
|
|
"cpp",
|
|
"css",
|
|
"csv",
|
|
"desktop",
|
|
"dot",
|
|
"g4",
|
|
"go",
|
|
"gradle",
|
|
"h",
|
|
"hpp",
|
|
"hs",
|
|
"html",
|
|
"ini",
|
|
"java",
|
|
"js",
|
|
"json",
|
|
"kt",
|
|
"lisp",
|
|
"log",
|
|
"lua",
|
|
"markdown",
|
|
"md",
|
|
"mod",
|
|
"org",
|
|
"php",
|
|
"pl",
|
|
"pro",
|
|
"properties",
|
|
"py",
|
|
"qml",
|
|
"rb",
|
|
"rc",
|
|
"rs",
|
|
"sh",
|
|
"smali",
|
|
"sql",
|
|
"srt",
|
|
"tex",
|
|
"toml",
|
|
"ts",
|
|
"txt",
|
|
"vala",
|
|
"vim",
|
|
"xml",
|
|
"yaml",
|
|
"yml",
|
|
))
|
|
)
|
|
|
|
fun isExtensionType(extensionType: String, path: String): Boolean {
|
|
return FILE_EXTENSIONS[extensionType]?.contains(File(path).extension.lowercase()) ?: false
|
|
}
|
|
|
|
fun isImage(path: String): Boolean {
|
|
return isExtensionType("image", path)
|
|
}
|
|
fun isVideo(path: String): Boolean {
|
|
return isExtensionType("video", path)
|
|
}
|
|
fun isAudio(path: String): Boolean {
|
|
return isExtensionType("audio", path)
|
|
}
|
|
fun isPDF(path: String): Boolean {
|
|
return isExtensionType("pdf", path)
|
|
}
|
|
fun isText(path: String): Boolean {
|
|
return isExtensionType("text", path)
|
|
}
|
|
} |