diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index 875a1122..a74ebba4 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -2,21 +2,27 @@
+
+
+
+
+
+
diff --git a/app/src/main/java/chat/revolt/MainActivity.kt b/app/src/main/java/chat/revolt/MainActivity.kt
index a339f100..af3bb9b4 100644
--- a/app/src/main/java/chat/revolt/MainActivity.kt
+++ b/app/src/main/java/chat/revolt/MainActivity.kt
@@ -22,8 +22,8 @@ import chat.revolt.screens.login.LoginScreen
import chat.revolt.screens.login.MfaScreen
import chat.revolt.ui.theme.RevoltTheme
import com.google.accompanist.navigation.animation.AnimatedNavHost
-import com.google.accompanist.navigation.animation.rememberAnimatedNavController
import com.google.accompanist.navigation.animation.composable
+import com.google.accompanist.navigation.animation.rememberAnimatedNavController
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
diff --git a/app/src/main/java/chat/revolt/api/RevoltAPI.kt b/app/src/main/java/chat/revolt/api/RevoltAPI.kt
index ce78e3df..eaad8bfc 100644
--- a/app/src/main/java/chat/revolt/api/RevoltAPI.kt
+++ b/app/src/main/java/chat/revolt/api/RevoltAPI.kt
@@ -16,8 +16,8 @@ import io.ktor.client.plugins.logging.*
import io.ktor.client.plugins.websocket.*
import io.ktor.serialization.kotlinx.json.*
import kotlinx.coroutines.runBlocking
-import kotlinx.serialization.json.Json
import kotlinx.serialization.Serializable
+import kotlinx.serialization.json.Json
const val REVOLT_BASE = "https://api.revolt.chat"
const val REVOLT_SUPPORT = "https://support.revolt.chat"
diff --git a/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt b/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt
index 578fa84a..5812382b 100644
--- a/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt
+++ b/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt
@@ -13,7 +13,7 @@ import chat.revolt.api.realtime.frames.sendable.PingFrame
import io.ktor.client.plugins.websocket.*
import io.ktor.websocket.*
import kotlinx.coroutines.channels.consumeEach
-import java.util.Calendar
+import java.util.*
enum class DisconnectionState {
Disconnected,
diff --git a/app/src/main/java/chat/revolt/api/schemas/User.kt b/app/src/main/java/chat/revolt/api/schemas/User.kt
index 5b758daf..1c373c79 100644
--- a/app/src/main/java/chat/revolt/api/schemas/User.kt
+++ b/app/src/main/java/chat/revolt/api/schemas/User.kt
@@ -1,9 +1,9 @@
package chat.revolt.api.schemas
import kotlinx.serialization.*
-import kotlinx.serialization.json.*
import kotlinx.serialization.descriptors.*
import kotlinx.serialization.encoding.*
+import kotlinx.serialization.json.*
@Serializable
data class User(
diff --git a/app/src/main/java/chat/revolt/components/generic/CollapsibleCard.kt b/app/src/main/java/chat/revolt/components/generic/CollapsibleCard.kt
index 37056c9f..d1ba61a1 100644
--- a/app/src/main/java/chat/revolt/components/generic/CollapsibleCard.kt
+++ b/app/src/main/java/chat/revolt/components/generic/CollapsibleCard.kt
@@ -6,7 +6,10 @@ import androidx.compose.foundation.layout.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.KeyboardArrowDown
import androidx.compose.material.icons.filled.KeyboardArrowUp
-import androidx.compose.material3.*
+import androidx.compose.material3.Card
+import androidx.compose.material3.Icon
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
diff --git a/app/src/main/java/chat/revolt/components/screens/chat/AttachmentManager.kt b/app/src/main/java/chat/revolt/components/screens/chat/AttachmentManager.kt
index 0bfdcb75..e60391b0 100644
--- a/app/src/main/java/chat/revolt/components/screens/chat/AttachmentManager.kt
+++ b/app/src/main/java/chat/revolt/components/screens/chat/AttachmentManager.kt
@@ -4,17 +4,23 @@ import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.horizontalScroll
-import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
import androidx.compose.foundation.rememberScrollState
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Close
-import androidx.compose.material3.*
+import androidx.compose.material3.CircularProgressIndicator
+import androidx.compose.material3.Icon
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
-import chat.revolt.api.routes.microservices.autumn.FileArgs
import chat.revolt.R
+import chat.revolt.api.routes.microservices.autumn.FileArgs
@Composable
fun AttachmentManager(
diff --git a/app/src/main/java/chat/revolt/components/screens/chat/ChannelIcon.kt b/app/src/main/java/chat/revolt/components/screens/chat/ChannelIcon.kt
index a044d3ba..e043a563 100644
--- a/app/src/main/java/chat/revolt/components/screens/chat/ChannelIcon.kt
+++ b/app/src/main/java/chat/revolt/components/screens/chat/ChannelIcon.kt
@@ -8,8 +8,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
-import chat.revolt.api.schemas.ChannelType
import chat.revolt.R
+import chat.revolt.api.schemas.ChannelType
@Composable
fun ChannelIcon(
diff --git a/app/src/main/java/chat/revolt/components/screens/home/LinkOnHome.kt b/app/src/main/java/chat/revolt/components/screens/home/LinkOnHome.kt
index c857a614..552c9e0a 100644
--- a/app/src/main/java/chat/revolt/components/screens/home/LinkOnHome.kt
+++ b/app/src/main/java/chat/revolt/components/screens/home/LinkOnHome.kt
@@ -6,7 +6,10 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.AccountBox
-import androidx.compose.material3.*
+import androidx.compose.material3.ElevatedButton
+import androidx.compose.material3.Icon
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
diff --git a/app/src/main/java/chat/revolt/screens/about/AboutScreen.kt b/app/src/main/java/chat/revolt/screens/about/AboutScreen.kt
index 6a9c9c6c..f41e5721 100644
--- a/app/src/main/java/chat/revolt/screens/about/AboutScreen.kt
+++ b/app/src/main/java/chat/revolt/screens/about/AboutScreen.kt
@@ -2,8 +2,10 @@ package chat.revolt.screens.about
import android.os.Build
import androidx.compose.foundation.layout.*
-import androidx.compose.material3.*
-import chat.revolt.R
+import androidx.compose.material3.Button
+import androidx.compose.material3.ElevatedButton
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.mutableStateOf
@@ -19,6 +21,7 @@ import androidx.lifecycle.viewModelScope
import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.navigation.NavController
import chat.revolt.BuildConfig
+import chat.revolt.R
import chat.revolt.api.REVOLT_BASE
import chat.revolt.api.routes.misc.Root
import chat.revolt.api.routes.misc.getRootRoute
diff --git a/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt b/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt
index 0e626327..e42ba5cc 100644
--- a/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt
+++ b/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt
@@ -29,17 +29,17 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
+import chat.revolt.R
import chat.revolt.api.REVOLT_FILES
import chat.revolt.api.RevoltAPI
-import chat.revolt.components.generic.RemoteImage
-import chat.revolt.screens.chat.views.HomeScreen
-import chat.revolt.R
import chat.revolt.api.realtime.DisconnectionState
import chat.revolt.api.realtime.RealtimeSocket
import chat.revolt.api.schemas.ChannelType
import chat.revolt.components.chat.DisconnectedNotice
+import chat.revolt.components.generic.RemoteImage
import chat.revolt.components.screens.chat.DrawerChannel
import chat.revolt.screens.chat.views.ChannelScreen
+import chat.revolt.screens.chat.views.HomeScreen
import kotlinx.coroutines.launch
class ChatRouterViewModel : ViewModel() {
diff --git a/app/src/main/java/chat/revolt/screens/chat/views/ChannelScreen.kt b/app/src/main/java/chat/revolt/screens/chat/views/ChannelScreen.kt
index 8ac26bb5..6aeb005d 100644
--- a/app/src/main/java/chat/revolt/screens/chat/views/ChannelScreen.kt
+++ b/app/src/main/java/chat/revolt/screens/chat/views/ChannelScreen.kt
@@ -33,32 +33,31 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.navigation.NavController
+import chat.revolt.R
+import chat.revolt.RevoltTweenFloat
+import chat.revolt.RevoltTweenInt
import chat.revolt.api.RevoltAPI
import chat.revolt.api.realtime.RealtimeSocket
import chat.revolt.api.realtime.frames.receivable.ChannelStartTypingFrame
import chat.revolt.api.realtime.frames.receivable.ChannelStopTypingFrame
import chat.revolt.api.realtime.frames.receivable.MessageFrame
+import chat.revolt.api.routes.channel.fetchMessagesFromChannel
import chat.revolt.api.routes.channel.sendMessage
+import chat.revolt.api.routes.microservices.autumn.FileArgs
+import chat.revolt.api.routes.microservices.autumn.MAX_ATTACHMENTS_PER_MESSAGE
+import chat.revolt.api.routes.microservices.autumn.uploadToAutumn
import chat.revolt.api.routes.user.addUserIfUnknown
import chat.revolt.api.schemas.Channel
-import chat.revolt.api.schemas.Message as MessageSchema
import chat.revolt.components.chat.Message
-import kotlinx.coroutines.launch
-import chat.revolt.R
-import chat.revolt.RevoltTweenFloat
-import chat.revolt.RevoltTweenInt
-import chat.revolt.api.routes.channel.fetchMessagesFromChannel
-import chat.revolt.api.routes.microservices.autumn.FileArgs
import chat.revolt.components.chat.MessageField
import chat.revolt.components.generic.CollapsibleCard
import chat.revolt.components.generic.PageHeader
-import chat.revolt.components.screens.chat.ChannelIcon
-import androidx.compose.runtime.getValue
-import chat.revolt.api.routes.microservices.autumn.MAX_ATTACHMENTS_PER_MESSAGE
-import chat.revolt.api.routes.microservices.autumn.uploadToAutumn
import chat.revolt.components.screens.chat.AttachmentManager
+import chat.revolt.components.screens.chat.ChannelIcon
import io.ktor.http.*
+import kotlinx.coroutines.launch
import java.io.File
+import chat.revolt.api.schemas.Message as MessageSchema
class ChannelScreenViewModel : ViewModel() {
private var _channel by mutableStateOf(null)
diff --git a/app/src/main/java/chat/revolt/screens/chat/views/HomeScreen.kt b/app/src/main/java/chat/revolt/screens/chat/views/HomeScreen.kt
index aedda60b..81539fe0 100644
--- a/app/src/main/java/chat/revolt/screens/chat/views/HomeScreen.kt
+++ b/app/src/main/java/chat/revolt/screens/chat/views/HomeScreen.kt
@@ -1,19 +1,19 @@
package chat.revolt.screens.chat.views
-import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.layout.Column
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Close
-import androidx.compose.runtime.*
+import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.ViewModel
import androidx.navigation.NavController
+import chat.revolt.R
import chat.revolt.api.RevoltAPI
+import chat.revolt.components.generic.PageHeader
import chat.revolt.components.screens.home.LinkOnHome
import chat.revolt.persistence.KVStorage
import dagger.hilt.android.lifecycle.HiltViewModel
-import chat.revolt.R
-import chat.revolt.components.generic.PageHeader
import kotlinx.coroutines.runBlocking
import javax.inject.Inject
diff --git a/app/src/main/java/chat/revolt/screens/login/GreeterScreen.kt b/app/src/main/java/chat/revolt/screens/login/GreeterScreen.kt
index 403888a0..7de09241 100644
--- a/app/src/main/java/chat/revolt/screens/login/GreeterScreen.kt
+++ b/app/src/main/java/chat/revolt/screens/login/GreeterScreen.kt
@@ -1,7 +1,6 @@
package chat.revolt.screens.login
import androidx.compose.foundation.Image
-import chat.revolt.R
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Button
import androidx.compose.material3.ElevatedButton
@@ -19,6 +18,7 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.navigation.NavController
+import chat.revolt.R
@Composable
fun GreeterScreen(navController: NavController) {
diff --git a/app/src/main/java/chat/revolt/screens/login/LoginScreen.kt b/app/src/main/java/chat/revolt/screens/login/LoginScreen.kt
index be747f9f..07f88b11 100644
--- a/app/src/main/java/chat/revolt/screens/login/LoginScreen.kt
+++ b/app/src/main/java/chat/revolt/screens/login/LoginScreen.kt
@@ -6,7 +6,10 @@ import androidx.compose.material3.Button
import androidx.compose.material3.ElevatedButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
-import androidx.compose.runtime.*
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
diff --git a/app/src/main/java/chat/revolt/screens/login/MfaScreen.kt b/app/src/main/java/chat/revolt/screens/login/MfaScreen.kt
index a1bc444f..017587c2 100644
--- a/app/src/main/java/chat/revolt/screens/login/MfaScreen.kt
+++ b/app/src/main/java/chat/revolt/screens/login/MfaScreen.kt
@@ -4,7 +4,10 @@ import android.util.Log
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
-import androidx.compose.material3.*
+import androidx.compose.material3.Button
+import androidx.compose.material3.ElevatedButton
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
diff --git a/app/src/main/java/chat/revolt/ui/theme/Typography.kt b/app/src/main/java/chat/revolt/ui/theme/Typography.kt
index 663268b5..262ceb13 100644
--- a/app/src/main/java/chat/revolt/ui/theme/Typography.kt
+++ b/app/src/main/java/chat/revolt/ui/theme/Typography.kt
@@ -2,11 +2,11 @@ package chat.revolt.ui.theme
import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle
-import chat.revolt.R
import androidx.compose.ui.text.font.Font
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.sp
+import chat.revolt.R
private val Inter = FontFamily(
Font(R.font.inter_thin, FontWeight.Thin),