chore: unify url constants

This commit is contained in:
infi 2026-05-21 15:41:58 +02:00
parent 4ede85eafb
commit ebf279cf25
39 changed files with 56 additions and 68 deletions

View File

@ -47,7 +47,6 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.StoatAPIError import chat.stoat.api.StoatAPIError
import chat.stoat.api.routes.invites.fetchInviteByCode import chat.stoat.api.routes.invites.fetchInviteByCode
@ -57,6 +56,7 @@ import chat.stoat.api.settings.SyncedSettings
import chat.stoat.callbacks.ActionChannel import chat.stoat.callbacks.ActionChannel
import chat.stoat.composables.generic.IconPlaceholder import chat.stoat.composables.generic.IconPlaceholder
import chat.stoat.composables.generic.RemoteImage import chat.stoat.composables.generic.RemoteImage
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.Invite import chat.stoat.core.model.schemas.Invite
import chat.stoat.core.model.schemas.InviteJoined import chat.stoat.core.model.schemas.InviteJoined
import chat.stoat.core.model.util.RsResult import chat.stoat.core.model.util.RsResult

View File

@ -41,11 +41,11 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.core.view.WindowCompat import androidx.core.view.WindowCompat
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatHttp import chat.stoat.api.StoatHttp
import chat.stoat.core.model.schemas.AutumnResource import chat.stoat.core.model.schemas.AutumnResource
import chat.stoat.api.settings.LoadedSettings import chat.stoat.api.settings.LoadedSettings
import chat.stoat.api.settings.SyncedSettings import chat.stoat.api.settings.SyncedSettings
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.providers.getAttachmentContentUri import chat.stoat.providers.getAttachmentContentUri
import chat.stoat.ui.theme.StoatTheme import chat.stoat.ui.theme.StoatTheme
import io.ktor.client.request.get import io.ktor.client.request.get

View File

@ -19,8 +19,8 @@ import androidx.lifecycle.lifecycleScope
import androidx.media3.common.MediaItem import androidx.media3.common.MediaItem
import androidx.media3.exoplayer.ExoPlayer import androidx.media3.exoplayer.ExoPlayer
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatHttp import chat.stoat.api.StoatHttp
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.AutumnResource import chat.stoat.core.model.schemas.AutumnResource
import chat.stoat.databinding.ActivityVideoplayerBinding import chat.stoat.databinding.ActivityVideoplayerBinding
import chat.stoat.providers.getAttachmentContentUri import chat.stoat.providers.getAttachmentContentUri

View File

@ -12,6 +12,7 @@ import chat.stoat.api.realtime.DisconnectionState
import chat.stoat.api.realtime.RealtimeSocket import chat.stoat.api.realtime.RealtimeSocket
import chat.stoat.api.routes.user.fetchSelf import chat.stoat.api.routes.user.fetchSelf
import chat.stoat.api.unreads.Unreads import chat.stoat.api.unreads.Unreads
import chat.stoat.core.model.data.STOAT_BASE
import chat.stoat.core.model.schemas.AutumnResource import chat.stoat.core.model.schemas.AutumnResource
import chat.stoat.core.model.schemas.ChannelType import chat.stoat.core.model.schemas.ChannelType
import chat.stoat.core.model.schemas.Emoji import chat.stoat.core.model.schemas.Emoji
@ -54,21 +55,6 @@ import kotlinx.serialization.json.Json
import java.net.SocketException import java.net.SocketException
import chat.stoat.core.model.schemas.Channel as ChannelSchema import chat.stoat.core.model.schemas.Channel as ChannelSchema
private const val USE_ALPHA_API = false
val STOAT_BASE =
if (USE_ALPHA_API) "https://alpha.revolt.chat/api" else "https://api.stoat.chat/0.8"
const val STOAT_SUPPORT = "https://support.stoat.chat"
const val STOAT_MARKETING = "https://stoat.chat"
val STOAT_FILES =
if (USE_ALPHA_API) "https://alpha.revolt.chat/autumn" else "https://cdn.stoatusercontent.com"
val STOAT_PROXY =
if (USE_ALPHA_API) "https://alpha.revolt.chat/january" else "https://proxy.stoatusercontent.com"
const val STOAT_WEB_APP = "https://stoat.chat"
const val STOAT_INVITES = "https://stt.gg"
val STOAT_WEBSOCKET =
if (USE_ALPHA_API) "wss://alpha.revolt.chat/ws" else "wss://events.stoat.chat"
fun String.api(): String { fun String.api(): String {
return "$STOAT_BASE$this" return "$STOAT_BASE$this"
} }

View File

@ -1,7 +1,7 @@
package chat.stoat.api.internals package chat.stoat.api.internals
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.api import chat.stoat.api.api
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.User import chat.stoat.core.model.schemas.User
object ResourceLocations { object ResourceLocations {

View File

@ -1,8 +1,8 @@
package chat.stoat.api.internals package chat.stoat.api.internals
import androidx.core.net.toUri import androidx.core.net.toUri
import chat.stoat.api.STOAT_MARKETING
import chat.stoat.api.StoatCbor import chat.stoat.api.StoatCbor
import chat.stoat.core.model.data.STOAT_MARKETING
import chat.stoat.core.model.schemas.User import chat.stoat.core.model.schemas.User
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
@ -26,7 +26,7 @@ object UserQR {
StoatCbor.encodeToByteArray( StoatCbor.encodeToByteArray(
UserQRContents.serializer(), UserQRContents.serializer(),
UserQRContents( UserQRContents(
format = "rqr\$user\$0", format = $$"rqr$user$0",
avatar = user.avatar?.id avatar = user.avatar?.id
?: "01JDZRBY95P8AY4CFVX16FFVWS", // Sentinel value for missing avatar ?: "01JDZRBY95P8AY4CFVX16FFVWS", // Sentinel value for missing avatar
displayName = user.displayName displayName = user.displayName

View File

@ -3,7 +3,6 @@ package chat.stoat.api.realtime
import android.util.Log import android.util.Log
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import chat.stoat.StoatApplication import chat.stoat.StoatApplication
import chat.stoat.api.STOAT_WEBSOCKET
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.StoatHttp import chat.stoat.api.StoatHttp
import chat.stoat.api.StoatJson import chat.stoat.api.StoatJson
@ -41,13 +40,14 @@ import chat.stoat.api.realtime.frames.sendable.BeginTypingFrame
import chat.stoat.api.realtime.frames.sendable.EndTypingFrame import chat.stoat.api.realtime.frames.sendable.EndTypingFrame
import chat.stoat.api.realtime.frames.sendable.PingFrame import chat.stoat.api.realtime.frames.sendable.PingFrame
import chat.stoat.api.routes.server.fetchMember import chat.stoat.api.routes.server.fetchMember
import chat.stoat.core.model.schemas.Channel
import chat.stoat.core.model.schemas.ChannelType
import chat.stoat.core.model.util.ChannelVoiceState
import chat.stoat.core.model.schemas.Role
import chat.stoat.api.settings.LoadedSettings import chat.stoat.api.settings.LoadedSettings
import chat.stoat.api.settings.SyncedSettings import chat.stoat.api.settings.SyncedSettings
import chat.stoat.c2dm.ChannelRegistrator import chat.stoat.c2dm.ChannelRegistrator
import chat.stoat.core.model.data.STOAT_WEBSOCKET
import chat.stoat.core.model.schemas.Channel
import chat.stoat.core.model.schemas.ChannelType
import chat.stoat.core.model.schemas.Role
import chat.stoat.core.model.util.ChannelVoiceState
import chat.stoat.persistence.Database import chat.stoat.persistence.Database
import chat.stoat.persistence.SqlStorage import chat.stoat.persistence.SqlStorage
import io.ktor.client.plugins.websocket.ws import io.ktor.client.plugins.websocket.ws

View File

@ -1,10 +1,10 @@
package chat.stoat.api.routes.microservices.autumn package chat.stoat.api.routes.microservices.autumn
import chat.stoat.api.HitRateLimitException import chat.stoat.api.HitRateLimitException
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.StoatHttp import chat.stoat.api.StoatHttp
import chat.stoat.api.StoatJson import chat.stoat.api.StoatJson
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.AutumnError import chat.stoat.core.model.schemas.AutumnError
import chat.stoat.core.model.schemas.AutumnId import chat.stoat.core.model.schemas.AutumnId
import io.ktor.client.plugins.onUpload import io.ktor.client.plugins.onUpload

View File

@ -1,6 +1,6 @@
package chat.stoat.api.routes.microservices.january package chat.stoat.api.routes.microservices.january
import chat.stoat.api.STOAT_PROXY import chat.stoat.core.model.data.STOAT_PROXY
import java.net.URLEncoder import java.net.URLEncoder
fun asJanuaryProxyUrl(url: String): String { fun asJanuaryProxyUrl(url: String): String {

View File

@ -17,13 +17,13 @@ import androidx.core.graphics.drawable.IconCompat
import chat.stoat.BuildConfig import chat.stoat.BuildConfig
import chat.stoat.R import chat.stoat.R
import chat.stoat.activities.MainActivity import chat.stoat.activities.MainActivity
import chat.stoat.api.STOAT_BASE
import chat.stoat.api.StoatJson import chat.stoat.api.StoatJson
import chat.stoat.api.internals.ULID import chat.stoat.api.internals.ULID
import chat.stoat.api.routes.push.subscribePush import chat.stoat.api.routes.push.subscribePush
import chat.stoat.c2dm.ChannelRegistrator.Companion.CHANNEL_ID_GROUP_CONVERSATIONS_MESSAGES
import chat.stoat.core.model.data.STOAT_BASE
import chat.stoat.core.model.schemas.Message import chat.stoat.core.model.schemas.Message
import chat.stoat.core.model.schemas.User import chat.stoat.core.model.schemas.User
import chat.stoat.c2dm.ChannelRegistrator.Companion.CHANNEL_ID_GROUP_CONVERSATIONS_MESSAGES
import chat.stoat.persistence.Database import chat.stoat.persistence.Database
import chat.stoat.persistence.SqlStorage import chat.stoat.persistence.SqlStorage
import com.bumptech.glide.Glide import com.bumptech.glide.Glide

View File

@ -8,7 +8,6 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.internals.BrushCompat import chat.stoat.api.internals.BrushCompat
import chat.stoat.api.internals.Roles import chat.stoat.api.internals.Roles
import chat.stoat.api.internals.solidColor import chat.stoat.api.internals.solidColor
@ -16,6 +15,7 @@ import chat.stoat.core.model.schemas.Member
import chat.stoat.core.model.schemas.User import chat.stoat.core.model.schemas.User
import chat.stoat.composables.generic.UserAvatar import chat.stoat.composables.generic.UserAvatar
import chat.stoat.composables.generic.presenceFromStatus import chat.stoat.composables.generic.presenceFromStatus
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.internals.extensions.TransparentListItemColours import chat.stoat.internals.extensions.TransparentListItemColours
@Composable @Composable

View File

@ -62,7 +62,6 @@ import androidx.compose.ui.unit.sp
import chat.stoat.R import chat.stoat.R
import chat.stoat.activities.media.ImageViewActivity import chat.stoat.activities.media.ImageViewActivity
import chat.stoat.activities.media.VideoViewActivity import chat.stoat.activities.media.VideoViewActivity
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.internals.BrushCompat import chat.stoat.api.internals.BrushCompat
import chat.stoat.api.internals.MessageFlag import chat.stoat.api.internals.MessageFlag
@ -86,6 +85,7 @@ import chat.stoat.composables.generic.UserAvatar
import chat.stoat.composables.generic.UserAvatarWidthPlaceholder import chat.stoat.composables.generic.UserAvatarWidthPlaceholder
import chat.stoat.composables.markdown.LocalMarkdownTreeConfig import chat.stoat.composables.markdown.LocalMarkdownTreeConfig
import chat.stoat.composables.markdown.RichMarkdown import chat.stoat.composables.markdown.RichMarkdown
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.internals.text.Gigamoji import chat.stoat.internals.text.Gigamoji
import chat.stoat.internals.text.MessageProcessor import chat.stoat.internals.text.MessageProcessor
import chat.stoat.markdown.jbm.JBM import chat.stoat.markdown.jbm.JBM

View File

@ -33,9 +33,9 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_FILES
import chat.stoat.composables.generic.RemoteImage import chat.stoat.composables.generic.RemoteImage
import chat.stoat.composables.media.AudioPlayer import chat.stoat.composables.media.AudioPlayer
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.AutumnResource import chat.stoat.core.model.schemas.AutumnResource
import dev.chrisbanes.haze.hazeEffect import dev.chrisbanes.haze.hazeEffect
import dev.chrisbanes.haze.hazeSource import dev.chrisbanes.haze.hazeSource

View File

@ -82,13 +82,13 @@ import androidx.compose.ui.unit.dp
import chat.stoat.R import chat.stoat.R
import chat.stoat.activities.StoatTweenFloat import chat.stoat.activities.StoatTweenFloat
import chat.stoat.activities.StoatTweenInt import chat.stoat.activities.StoatTweenInt
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.internals.BrushCompat import chat.stoat.api.internals.BrushCompat
import chat.stoat.core.model.schemas.ChannelType import chat.stoat.core.model.schemas.ChannelType
import chat.stoat.core.model.schemas.Member import chat.stoat.core.model.schemas.Member
import chat.stoat.composables.generic.RemoteImage import chat.stoat.composables.generic.RemoteImage
import chat.stoat.composables.generic.UserAvatar import chat.stoat.composables.generic.UserAvatar
import chat.stoat.composables.screens.chat.ChannelIcon import chat.stoat.composables.screens.chat.ChannelIcon
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.internals.Autocomplete import chat.stoat.internals.Autocomplete
import kotlinx.coroutines.launch import kotlinx.coroutines.launch

View File

@ -28,10 +28,10 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.internals.isUlid import chat.stoat.api.internals.isUlid
import chat.stoat.composables.generic.RemoteImage import chat.stoat.composables.generic.RemoteImage
import chat.stoat.core.model.data.STOAT_FILES
@OptIn(ExperimentalFoundationApi::class) @OptIn(ExperimentalFoundationApi::class)
@Composable @Composable

View File

@ -62,11 +62,11 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import chat.stoat.R import chat.stoat.R
import chat.stoat.activities.StoatTweenFloat import chat.stoat.activities.StoatTweenFloat
import chat.stoat.api.STOAT_FILES
import chat.stoat.callbacks.Action import chat.stoat.callbacks.Action
import chat.stoat.callbacks.ActionChannel import chat.stoat.callbacks.ActionChannel
import chat.stoat.composables.generic.IconPlaceholder import chat.stoat.composables.generic.IconPlaceholder
import chat.stoat.composables.generic.RemoteImage import chat.stoat.composables.generic.RemoteImage
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.internals.Category import chat.stoat.internals.Category
import chat.stoat.internals.EmojiImpl import chat.stoat.internals.EmojiImpl
import chat.stoat.internals.EmojiPickerItem import chat.stoat.internals.EmojiPickerItem

View File

@ -23,10 +23,10 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_BASE
import chat.stoat.api.STOAT_FILES
import chat.stoat.core.model.schemas.AutumnResource import chat.stoat.core.model.schemas.AutumnResource
import chat.stoat.api.settings.LoadedSettings import chat.stoat.api.settings.LoadedSettings
import chat.stoat.core.model.data.STOAT_BASE
import chat.stoat.core.model.data.STOAT_FILES
enum class Presence { enum class Presence {
Online, Online,

View File

@ -35,7 +35,6 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.core.net.toUri import androidx.core.net.toUri
import chat.stoat.R import chat.stoat.R
import chat.stoat.activities.InviteActivity import chat.stoat.activities.InviteActivity
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.routes.custom.fetchEmoji import chat.stoat.api.routes.custom.fetchEmoji
import chat.stoat.core.model.schemas.isInviteUri import chat.stoat.core.model.schemas.isInviteUri
@ -43,6 +42,7 @@ import chat.stoat.callbacks.Action
import chat.stoat.callbacks.ActionChannel import chat.stoat.callbacks.ActionChannel
import chat.stoat.composables.generic.RemoteImage import chat.stoat.composables.generic.RemoteImage
import chat.stoat.composables.utils.detectTapGesturesConditionalConsume import chat.stoat.composables.utils.detectTapGesturesConditionalConsume
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.internals.resolveTimestamp import chat.stoat.internals.resolveTimestamp
import chat.stoat.ndk.AstNode import chat.stoat.ndk.AstNode
import chat.stoat.ui.theme.FragmentMono import chat.stoat.ui.theme.FragmentMono

View File

@ -26,13 +26,13 @@ import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import chat.stoat.api.STOAT_FILES
import chat.stoat.core.model.schemas.AutumnResource import chat.stoat.core.model.schemas.AutumnResource
import chat.stoat.core.model.schemas.ChannelType import chat.stoat.core.model.schemas.ChannelType
import chat.stoat.core.model.schemas.User import chat.stoat.core.model.schemas.User
import chat.stoat.composables.generic.RemoteImage import chat.stoat.composables.generic.RemoteImage
import chat.stoat.composables.generic.UserAvatar import chat.stoat.composables.generic.UserAvatar
import chat.stoat.composables.markdown.MarkdownTree import chat.stoat.composables.markdown.MarkdownTree
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.ndk.AstNode import chat.stoat.ndk.AstNode
import chat.stoat.ndk.Stendal import chat.stoat.ndk.Stendal

View File

@ -24,10 +24,10 @@ import androidx.compose.ui.unit.sp
import chat.stoat.R import chat.stoat.R
import chat.stoat.activities.StoatTweenFloat import chat.stoat.activities.StoatTweenFloat
import chat.stoat.activities.StoatTweenInt import chat.stoat.activities.StoatTweenInt
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.core.model.schemas.User import chat.stoat.core.model.schemas.User
import chat.stoat.composables.generic.UserAvatar import chat.stoat.composables.generic.UserAvatar
import chat.stoat.core.model.data.STOAT_FILES
@Composable @Composable
fun StackedUserAvatars( fun StackedUserAvatars(

View File

@ -75,7 +75,6 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.navigation.NavController import androidx.navigation.NavController
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.internals.CategorisedChannelList import chat.stoat.api.internals.CategorisedChannelList
import chat.stoat.api.internals.ChannelUtils import chat.stoat.api.internals.ChannelUtils
@ -90,6 +89,7 @@ import chat.stoat.composables.generic.RemoteImage
import chat.stoat.composables.generic.UserAvatar import chat.stoat.composables.generic.UserAvatar
import chat.stoat.composables.generic.presenceFromStatus import chat.stoat.composables.generic.presenceFromStatus
import chat.stoat.composables.screens.chat.ChannelIcon import chat.stoat.composables.screens.chat.ChannelIcon
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.Category import chat.stoat.core.model.schemas.Category
import chat.stoat.core.model.schemas.Channel import chat.stoat.core.model.schemas.Channel
import chat.stoat.core.model.schemas.ChannelType import chat.stoat.core.model.schemas.ChannelType

View File

@ -23,11 +23,11 @@ import androidx.compose.ui.draw.alpha
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.viewinterop.AndroidView
import chat.stoat.activities.InviteActivity import chat.stoat.activities.InviteActivity
import chat.stoat.api.STOAT_INVITES
import chat.stoat.api.STOAT_WEB_APP
import chat.stoat.api.StoatJson import chat.stoat.api.StoatJson
import chat.stoat.api.buildUserAgent import chat.stoat.api.buildUserAgent
import chat.stoat.api.internals.ThemeCompat import chat.stoat.api.internals.ThemeCompat
import chat.stoat.core.model.data.STOAT_INVITES
import chat.stoat.core.model.data.STOAT_WEB_APP
import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.JsonPrimitive

View File

@ -27,9 +27,9 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_FILES
import chat.stoat.composables.generic.IconPlaceholder import chat.stoat.composables.generic.IconPlaceholder
import chat.stoat.composables.generic.RemoteImage import chat.stoat.composables.generic.RemoteImage
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.Server import chat.stoat.core.model.schemas.Server
import chat.stoat.core.model.schemas.ServerFlags import chat.stoat.core.model.schemas.ServerFlags
import chat.stoat.core.model.schemas.has import chat.stoat.core.model.schemas.has

View File

@ -31,7 +31,6 @@ import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.internals.SpecialUsers import chat.stoat.api.internals.SpecialUsers
import chat.stoat.api.internals.ULID import chat.stoat.api.internals.ULID
@ -40,6 +39,7 @@ import chat.stoat.api.routes.user.fetchUserProfile
import chat.stoat.composables.generic.RemoteImage import chat.stoat.composables.generic.RemoteImage
import chat.stoat.composables.generic.UserAvatar import chat.stoat.composables.generic.UserAvatar
import chat.stoat.composables.generic.presenceFromStatus import chat.stoat.composables.generic.presenceFromStatus
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.AutumnResource import chat.stoat.core.model.schemas.AutumnResource
import chat.stoat.core.model.schemas.Profile import chat.stoat.core.model.schemas.Profile
import chat.stoat.core.model.schemas.User import chat.stoat.core.model.schemas.User

View File

@ -20,10 +20,10 @@ import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.viewinterop.AndroidView
import androidx.webkit.WebViewAssetLoader import androidx.webkit.WebViewAssetLoader
import chat.stoat.activities.InviteActivity import chat.stoat.activities.InviteActivity
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.STOAT_WEB_APP
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.internals.ResourceLocations import chat.stoat.api.internals.ResourceLocations
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.data.STOAT_WEB_APP
import chat.stoat.core.model.schemas.isInviteUri import chat.stoat.core.model.schemas.isInviteUri
@SuppressLint("SetJavaScriptEnabled") @SuppressLint("SetJavaScriptEnabled")

View File

@ -72,7 +72,6 @@ import androidx.compose.ui.unit.sp
import androidx.core.net.toUri import androidx.core.net.toUri
import chat.stoat.R import chat.stoat.R
import chat.stoat.activities.InviteActivity import chat.stoat.activities.InviteActivity
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.internals.BrushCompat import chat.stoat.api.internals.BrushCompat
import chat.stoat.api.internals.InstancedBrushCompat import chat.stoat.api.internals.InstancedBrushCompat
@ -86,6 +85,7 @@ import chat.stoat.composables.generic.RemoteImage
import chat.stoat.composables.generic.UserAvatar import chat.stoat.composables.generic.UserAvatar
import chat.stoat.composables.markdown.Annotations import chat.stoat.composables.markdown.Annotations
import chat.stoat.composables.utils.detectTapGesturesConditionalConsume import chat.stoat.composables.utils.detectTapGesturesConditionalConsume
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.ui.theme.FragmentMono import chat.stoat.ui.theme.FragmentMono
import chat.stoat.ui.theme.isThemeDark import chat.stoat.ui.theme.isThemeDark
import dev.snipme.highlights.Highlights import dev.snipme.highlights.Highlights

View File

@ -20,7 +20,7 @@ import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.viewinterop.AndroidView
import androidx.webkit.WebViewAssetLoader import androidx.webkit.WebViewAssetLoader
import chat.stoat.activities.InviteActivity import chat.stoat.activities.InviteActivity
import chat.stoat.api.STOAT_WEB_APP import chat.stoat.core.model.data.STOAT_WEB_APP
import chat.stoat.core.model.schemas.isInviteUri import chat.stoat.core.model.schemas.isInviteUri
internal fun Color.asHexString(includeAlphaComponent: Boolean = true): String { internal fun Color.asHexString(includeAlphaComponent: Boolean = true): String {

View File

@ -53,11 +53,11 @@ import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.navigation.NavController import androidx.navigation.NavController
import chat.stoat.BuildConfig import chat.stoat.BuildConfig
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_BASE
import chat.stoat.api.StoatJson import chat.stoat.api.StoatJson
import chat.stoat.api.routes.misc.Root import chat.stoat.api.routes.misc.Root
import chat.stoat.api.routes.misc.getRootRoute import chat.stoat.api.routes.misc.getRootRoute
import chat.stoat.composables.generic.PrimaryTabs import chat.stoat.composables.generic.PrimaryTabs
import chat.stoat.core.model.data.STOAT_BASE
import chat.stoat.internals.Platform import chat.stoat.internals.Platform
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.net.URI import java.net.URI

View File

@ -42,9 +42,9 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_INVITES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.routes.channel.createInvite import chat.stoat.api.routes.channel.createInvite
import chat.stoat.core.model.data.STOAT_INVITES
import chat.stoat.internals.Platform import chat.stoat.internals.Platform
import chat.stoat.ui.theme.FragmentMono import chat.stoat.ui.theme.FragmentMono
import kotlinx.coroutines.Job import kotlinx.coroutines.Job

View File

@ -44,9 +44,9 @@ import androidx.compose.ui.unit.sp
import androidx.navigation.NavController import androidx.navigation.NavController
import chat.stoat.BuildConfig import chat.stoat.BuildConfig
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_MARKETING
import chat.stoat.composables.generic.AnyLink import chat.stoat.composables.generic.AnyLink
import chat.stoat.composables.generic.Weblink import chat.stoat.composables.generic.Weblink
import chat.stoat.core.model.data.STOAT_MARKETING
import com.chuckerteam.chucker.api.Chucker import com.chuckerteam.chucker.api.Chucker
@OptIn(ExperimentalFoundationApi::class) @OptIn(ExperimentalFoundationApi::class)

View File

@ -48,13 +48,13 @@ import androidx.lifecycle.viewModelScope
import androidx.navigation.NavController import androidx.navigation.NavController
import chat.stoat.R import chat.stoat.R
import chat.stoat.StoatApplication import chat.stoat.StoatApplication
import chat.stoat.api.STOAT_WEB_APP
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.routes.account.EmailPasswordAssessment import chat.stoat.api.routes.account.EmailPasswordAssessment
import chat.stoat.api.routes.account.negotiateAuthentication import chat.stoat.api.routes.account.negotiateAuthentication
import chat.stoat.api.routes.onboard.needsOnboarding import chat.stoat.api.routes.onboard.needsOnboarding
import chat.stoat.composables.generic.FormTextField import chat.stoat.composables.generic.FormTextField
import chat.stoat.composables.generic.Weblink import chat.stoat.composables.generic.Weblink
import chat.stoat.core.model.data.STOAT_WEB_APP
import chat.stoat.persistence.KVStorage import chat.stoat.persistence.KVStorage
import chat.stoat.ui.theme.FragmentMono import chat.stoat.ui.theme.FragmentMono
import kotlinx.coroutines.launch import kotlinx.coroutines.launch

View File

@ -33,10 +33,10 @@ import androidx.compose.ui.unit.sp
import androidx.navigation.NavController import androidx.navigation.NavController
import chat.stoat.BuildConfig import chat.stoat.BuildConfig
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_MARKETING
import chat.stoat.api.settings.LoadedSettings import chat.stoat.api.settings.LoadedSettings
import chat.stoat.composables.generic.AnyLink import chat.stoat.composables.generic.AnyLink
import chat.stoat.composables.generic.Weblink import chat.stoat.composables.generic.Weblink
import chat.stoat.core.model.data.STOAT_MARKETING
import chat.stoat.ui.theme.Theme import chat.stoat.ui.theme.Theme
import com.chuckerteam.chucker.api.Chucker import com.chuckerteam.chucker.api.Chucker

View File

@ -46,13 +46,13 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import androidx.navigation.NavController import androidx.navigation.NavController
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.routes.microservices.autumn.uploadToAutumn import chat.stoat.api.routes.microservices.autumn.uploadToAutumn
import chat.stoat.api.routes.user.fetchUserProfile import chat.stoat.api.routes.user.fetchUserProfile
import chat.stoat.api.routes.user.patchSelf import chat.stoat.api.routes.user.patchSelf
import chat.stoat.composables.generic.InlineMediaPicker import chat.stoat.composables.generic.InlineMediaPicker
import chat.stoat.composables.screens.settings.RawUserOverview import chat.stoat.composables.screens.settings.RawUserOverview
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.Profile import chat.stoat.core.model.schemas.Profile
import io.ktor.http.ContentType import io.ktor.http.ContentType
import kotlinx.coroutines.launch import kotlinx.coroutines.launch

View File

@ -52,12 +52,12 @@ import androidx.lifecycle.viewModelScope
import androidx.navigation.NavController import androidx.navigation.NavController
import chat.stoat.R import chat.stoat.R
import chat.stoat.activities.StoatTweenFloat import chat.stoat.activities.StoatTweenFloat
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.routes.channel.patchChannel import chat.stoat.api.routes.channel.patchChannel
import chat.stoat.api.routes.microservices.autumn.uploadToAutumn import chat.stoat.api.routes.microservices.autumn.uploadToAutumn
import chat.stoat.composables.generic.InlineMediaPicker import chat.stoat.composables.generic.InlineMediaPicker
import chat.stoat.composables.generic.ListHeader import chat.stoat.composables.generic.ListHeader
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.Channel import chat.stoat.core.model.schemas.Channel
import io.ktor.http.ContentType import io.ktor.http.ContentType
import kotlinx.coroutines.launch import kotlinx.coroutines.launch

View File

@ -54,7 +54,6 @@ import androidx.compose.ui.unit.dp
import androidx.core.net.toUri import androidx.core.net.toUri
import chat.stoat.R import chat.stoat.R
import chat.stoat.activities.InviteActivity import chat.stoat.activities.InviteActivity
import chat.stoat.api.STOAT_WEB_APP
import chat.stoat.api.routes.server.createServer import chat.stoat.api.routes.server.createServer
import chat.stoat.callbacks.Action import chat.stoat.callbacks.Action
import chat.stoat.callbacks.ActionChannel import chat.stoat.callbacks.ActionChannel
@ -62,6 +61,7 @@ import chat.stoat.composables.sheets.SheetSelection
import chat.stoat.composables.vectorassets.CreateServer import chat.stoat.composables.vectorassets.CreateServer
import chat.stoat.composables.vectorassets.JoinServer import chat.stoat.composables.vectorassets.JoinServer
import chat.stoat.composables.vectorassets.NewServer import chat.stoat.composables.vectorassets.NewServer
import chat.stoat.core.model.data.STOAT_WEB_APP
import chat.stoat.material.EasingTokens import chat.stoat.material.EasingTokens
import chat.stoat.screens.chat.ChatRouterDestination import chat.stoat.screens.chat.ChatRouterDestination
import chat.stoat.ui.theme.FragmentMono import chat.stoat.ui.theme.FragmentMono

View File

@ -31,13 +31,13 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.routes.custom.fetchEmoji import chat.stoat.api.routes.custom.fetchEmoji
import chat.stoat.core.model.schemas.Emoji import chat.stoat.core.model.schemas.Emoji
import chat.stoat.core.model.schemas.Server import chat.stoat.core.model.schemas.Server
import chat.stoat.composables.generic.RemoteImage import chat.stoat.composables.generic.RemoteImage
import chat.stoat.composables.generic.SheetButton import chat.stoat.composables.generic.SheetButton
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.internals.Platform import chat.stoat.internals.Platform
import kotlinx.coroutines.launch import kotlinx.coroutines.launch

View File

@ -29,13 +29,13 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalResources
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import chat.stoat.BuildConfig import chat.stoat.BuildConfig
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_WEB_APP
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.internals.PermissionBit import chat.stoat.api.internals.PermissionBit
import chat.stoat.api.internals.Roles import chat.stoat.api.internals.Roles
@ -46,6 +46,7 @@ import chat.stoat.api.settings.Experiments
import chat.stoat.callbacks.UiCallbacks import chat.stoat.callbacks.UiCallbacks
import chat.stoat.composables.chat.Message import chat.stoat.composables.chat.Message
import chat.stoat.composables.generic.SheetButton import chat.stoat.composables.generic.SheetButton
import chat.stoat.core.model.data.STOAT_WEB_APP
import chat.stoat.internals.Platform import chat.stoat.internals.Platform
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -69,6 +70,7 @@ fun MessageContextSheet(
} }
val context = LocalContext.current val context = LocalContext.current
val resources = LocalResources.current
val clipboardManager = LocalClipboardManager.current val clipboardManager = LocalClipboardManager.current
val coroutineScope = rememberCoroutineScope() val coroutineScope = rememberCoroutineScope()
@ -111,7 +113,7 @@ fun MessageContextSheet(
onHideSheet() onHideSheet()
Toast.makeText( Toast.makeText(
context, context,
context.getString( resources.getString(
R.string.message_context_sheet_actions_copy_failed_empty R.string.message_context_sheet_actions_copy_failed_empty
), ),
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
@ -123,7 +125,7 @@ fun MessageContextSheet(
if (Platform.needsShowClipboardNotification()) { if (Platform.needsShowClipboardNotification()) {
Toast.makeText( Toast.makeText(
context, context,
context.getString(R.string.copied), resources.getString(R.string.copied),
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
).show() ).show()
} }
@ -156,7 +158,7 @@ fun MessageContextSheet(
if (message.content.isNullOrEmpty()) { if (message.content.isNullOrEmpty()) {
Toast.makeText( Toast.makeText(
context, context,
context.getString( resources.getString(
R.string.message_context_sheet_actions_copy_failed_empty R.string.message_context_sheet_actions_copy_failed_empty
), ),
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
@ -182,7 +184,7 @@ fun MessageContextSheet(
if (Platform.needsShowClipboardNotification()) { if (Platform.needsShowClipboardNotification()) {
Toast.makeText( Toast.makeText(
context, context,
context.getString( resources.getString(
R.string.message_context_sheet_actions_copy_link_copied R.string.message_context_sheet_actions_copy_link_copied
), ),
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
@ -220,7 +222,7 @@ fun MessageContextSheet(
if (Platform.needsShowClipboardNotification()) { if (Platform.needsShowClipboardNotification()) {
Toast.makeText( Toast.makeText(
context, context,
context.getString( resources.getString(
R.string.message_context_sheet_actions_copy_id_copied R.string.message_context_sheet_actions_copy_id_copied
), ),
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
@ -412,7 +414,7 @@ fun MessageContextSheet(
onClick = { onClick = {
Toast.makeText( Toast.makeText(
context, context,
context.getString(R.string.comingsoon_toast), resources.getString(R.string.comingsoon_toast),
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
).show() ).show()

View File

@ -44,7 +44,6 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_FILES
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.internals.isUlid import chat.stoat.api.internals.isUlid
import chat.stoat.api.routes.custom.fetchEmoji import chat.stoat.api.routes.custom.fetchEmoji
@ -52,6 +51,7 @@ import chat.stoat.api.routes.user.fetchUser
import chat.stoat.api.settings.LoadedSettings import chat.stoat.api.settings.LoadedSettings
import chat.stoat.composables.chat.MemberListItem import chat.stoat.composables.chat.MemberListItem
import chat.stoat.composables.generic.RemoteImage import chat.stoat.composables.generic.RemoteImage
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.Emoji import chat.stoat.core.model.schemas.Emoji
import chat.stoat.core.model.schemas.User import chat.stoat.core.model.schemas.User
import chat.stoat.internals.text.MessageProcessor import chat.stoat.internals.text.MessageProcessor

View File

@ -41,13 +41,13 @@ import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.net.toUri import androidx.core.net.toUri
import chat.stoat.R import chat.stoat.R
import chat.stoat.api.STOAT_WEB_APP
import chat.stoat.api.StoatAPI import chat.stoat.api.StoatAPI
import chat.stoat.api.routes.server.leaveOrDeleteServer import chat.stoat.api.routes.server.leaveOrDeleteServer
import chat.stoat.composables.generic.SheetButton import chat.stoat.composables.generic.SheetButton
import chat.stoat.composables.markdown.RichMarkdown import chat.stoat.composables.markdown.RichMarkdown
import chat.stoat.composables.screens.settings.ServerOverview import chat.stoat.composables.screens.settings.ServerOverview
import chat.stoat.composables.sheets.SheetSelection import chat.stoat.composables.sheets.SheetSelection
import chat.stoat.core.model.data.STOAT_WEB_APP
import chat.stoat.internals.Platform import chat.stoat.internals.Platform
import kotlinx.coroutines.launch import kotlinx.coroutines.launch