init
This commit is contained in:
91
app/src/main/java/com/sffteam/voidclient/Utils.kt
Normal file
91
app/src/main/java/com/sffteam/voidclient/Utils.kt
Normal file
@@ -0,0 +1,91 @@
|
||||
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]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user