91 lines
2.8 KiB
Kotlin
91 lines
2.8 KiB
Kotlin
package com.sffteam.voidclient
|
|
|
|
import androidx.compose.material.icons.Icons
|
|
import androidx.compose.material.icons.automirrored.filled.Article
|
|
import androidx.compose.material.icons.automirrored.filled.InsertDriveFile
|
|
import androidx.compose.material.icons.filled.Article
|
|
import androidx.compose.material.icons.filled.AudioFile
|
|
import androidx.compose.material.icons.filled.InsertDriveFile
|
|
import androidx.compose.material3.windowsizeclass.WindowSizeClass
|
|
import androidx.compose.ui.graphics.Color
|
|
import androidx.compose.ui.graphics.vector.ImageVector
|
|
import java.io.File
|
|
import kotlin.math.absoluteValue
|
|
|
|
object Utils {
|
|
lateinit var windowSize: WindowSizeClass
|
|
|
|
val audioExtensions = listOf(
|
|
"mp3", "aac", "m4a", "ogg", "oga", "opus", "wma", "amr", "3gp",
|
|
"flac", "alac", "ape", "wav", "aiff", "aif", "aifc", "wv", "tta", "tak", "shn",
|
|
"dsf", "dff", "dsd", "pcm", "dxp", "pt24",
|
|
"mid", "midi", "rmi", "kar",
|
|
"mod", "xm", "s3m", "it", "mtm", "umx", "mo3",
|
|
"caf", "au", "snd", "ra", "rm", "mka", "weba", "ac3", "eac3", "dts", "m4b",
|
|
"voc", "8svx", "cda", "gsm", "mpc", "spx", "la"
|
|
)
|
|
|
|
fun getIconForFile(file : String) : ImageVector {
|
|
val extension = File(file).extension
|
|
|
|
if (extension == "txt") {
|
|
return Icons.AutoMirrored.Filled.Article
|
|
}
|
|
|
|
for (i in audioExtensions) {
|
|
if (extension == i) {
|
|
return Icons.Filled.AudioFile
|
|
}
|
|
}
|
|
|
|
return Icons.AutoMirrored.Filled.InsertDriveFile
|
|
}
|
|
fun getSizeFromBytes(bytes : Long) : String {
|
|
if (bytes <= 1000) {
|
|
return "$bytes B"
|
|
}
|
|
|
|
if (bytes in 1000..<1000000) {
|
|
val kb = bytes / 1000
|
|
|
|
return "$kb KB"
|
|
}
|
|
|
|
if (bytes > 1000000) {
|
|
val mb = bytes / 1000000
|
|
|
|
return "$mb MB"
|
|
}
|
|
|
|
return "$bytes"
|
|
}
|
|
fun getColorForAvatar(avatar: String): Pair<Color, Color> {
|
|
val colors = listOf(
|
|
Pair(Color(0xFFFF0026), Color(0xFFFF00BB)),
|
|
Pair(Color(0xFFFFC004), Color(0xFFFFE59F)),
|
|
Pair(Color(0xFF0A5BC2), Color(0xFF3B8FFF)),
|
|
Pair(Color(0xFF04C715), Color(0xFF6AFC78)),
|
|
Pair(Color(0xFFA308C4), Color(0xFFE071FC)),
|
|
)
|
|
|
|
val index = (avatar.hashCode().absoluteValue) % colors.size
|
|
|
|
return colors[index]
|
|
}
|
|
|
|
fun getColorForNickname(nickName: String): Color {
|
|
val colors = listOf(
|
|
Color(0xFFFF2B4B),
|
|
Color(0xFFF8C324),
|
|
Color(0xFFFD903C),
|
|
Color(0xFF2196F3),
|
|
Color(0xFF2BFF47),
|
|
Color(0xFFE139FF),
|
|
Color(0xFF41E0D2),
|
|
Color(0xFF7826FC),
|
|
)
|
|
val index = (nickName.hashCode().absoluteValue) % colors.size
|
|
|
|
return colors[index]
|
|
}
|
|
} |