package sushi.hardcore.droidfs import android.net.Uri import java.io.File class ConstValues { companion object { const val creator = "DroidFS" const val gocryptfsConfFilename = "gocryptfs.conf" const val FILE_MODE = 384 //0600 const val DIRECTORY_MODE = 448 //0700 const val volumeDatabaseName = "SavedVolumes" const val sort_order_key = "sort_order" val fakeUri: Uri = Uri.parse("fakeuri://droidfs") const val MAX_KERNEL_WRITE = 128*1024 const val wipe_passes = 2 const val slideshow_delay: Long = 4000 const val DEFAULT_THEME_VALUE = "dark_green" private val fileExtensions = mapOf( Pair("image", listOf("png", "jpg", "jpeg", "gif", "webp", "bmp")), Pair("video", listOf("mp4", "webm", "mkv", "mov")), Pair("audio", listOf("mp3", "ogg", "m4a", "wav", "flac")), Pair("pdf", listOf("pdf")), Pair("text", listOf("txt", "json", "conf", "log", "xml", "java", "kt", "py", "pl", "rb", "go", "c", "h", "cpp", "hpp", "rs", "sh", "bat", "js", "html", "css", "php", "yml", "yaml", "toml", "ini", "md", "properties")) ) fun isExtensionType(extensionType: String, path: String): Boolean { return fileExtensions[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) } } }