From 684970ca328415bd135e851ab9dc5551f1a3ee9d Mon Sep 17 00:00:00 2001 From: Infi Date: Wed, 23 Jul 2025 03:09:05 +0200 Subject: [PATCH] chore: take out voice chat Signed-off-by: Infi --- .../chat/revolt/api/settings/FeatureFlags.kt | 25 ++++++++++++++++++- .../revolt/composables/voice/VoiceSheet.kt | 21 +++------------- .../chat/views/channel/ChannelScreen.kt | 8 +++--- 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/chat/revolt/api/settings/FeatureFlags.kt b/app/src/main/java/chat/revolt/api/settings/FeatureFlags.kt index 3a22d769..41046d8f 100644 --- a/app/src/main/java/chat/revolt/api/settings/FeatureFlags.kt +++ b/app/src/main/java/chat/revolt/api/settings/FeatureFlags.kt @@ -56,6 +56,19 @@ sealed class MassMentionsVariates { object Disabled : MassMentionsVariates() } +@FeatureFlag("VoiceChannels2_0") +sealed class VoiceChannels2_0Variates { + @Treatment( + "Enable the new voice channels 2.0 for all users" + ) + object Enabled : VoiceChannels2_0Variates() + + @Treatment( + "Disable the new voice channels 2.0 for all users" + ) + object Disabled : VoiceChannels2_0Variates() +} + object FeatureFlags { @FeatureFlag("LabsAccessControl") var labsAccessControl by mutableStateOf( @@ -97,11 +110,21 @@ object FeatureFlags { @FeatureFlag("MassMentions") var massMentions by mutableStateOf( - MassMentionsVariates.Enabled + MassMentionsVariates.Disabled ) val massMentionsGranted: Boolean get() = when (massMentions) { is MassMentionsVariates.Enabled -> true is MassMentionsVariates.Disabled -> false } + + @FeatureFlag("VoiceChannels2_0") + var voiceChannels2_0 by mutableStateOf( + VoiceChannels2_0Variates.Disabled + ) + val voiceChannels2_0Granted: Boolean + get() = when (voiceChannels2_0) { + is VoiceChannels2_0Variates.Enabled -> true + is VoiceChannels2_0Variates.Disabled -> false + } } diff --git a/app/src/main/java/chat/revolt/composables/voice/VoiceSheet.kt b/app/src/main/java/chat/revolt/composables/voice/VoiceSheet.kt index c2f83ada..7deb95fd 100644 --- a/app/src/main/java/chat/revolt/composables/voice/VoiceSheet.kt +++ b/app/src/main/java/chat/revolt/composables/voice/VoiceSheet.kt @@ -1,31 +1,16 @@ package chat.revolt.composables.voice -import androidx.compose.animation.animateContentSize -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.material3.Button -import androidx.compose.material3.ButtonDefaults -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.lifecycle.viewmodel.compose.viewModel import chat.revolt.R import chat.revolt.api.routes.misc.getRootRoute import chat.revolt.api.routes.voice.joinCall -import io.livekit.android.compose.local.RoomLocal -import io.livekit.android.compose.local.RoomScope -import io.livekit.android.compose.state.rememberTracks -import io.livekit.android.compose.ui.VideoTrackView import logcat.LogPriority import logcat.asLog import logcat.logcat @@ -93,7 +78,9 @@ fun VoiceSheet( viewModel.getVoiceToken() } - RoomScope( + // TODO - Voice channels are not supported yet + LaunchedEffect(Unit) { onDisconnect() } + /*RoomScope( url = viewModel.voiceLkNode, token = viewModel.voiceToken, audio = true, @@ -146,5 +133,5 @@ fun VoiceSheet( } } } - } + }*/ } \ No newline at end of file diff --git a/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreen.kt b/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreen.kt index fad15477..93643853 100644 --- a/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreen.kt +++ b/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreen.kt @@ -124,6 +124,7 @@ import chat.revolt.api.routes.channel.react import chat.revolt.api.routes.microservices.autumn.FileArgs import chat.revolt.api.schemas.ChannelType import chat.revolt.api.schemas.Message +import chat.revolt.api.settings.FeatureFlags import chat.revolt.callbacks.Action import chat.revolt.callbacks.ActionChannel import chat.revolt.composables.chat.DateDivider @@ -157,7 +158,6 @@ import com.valentinilk.shimmer.shimmer import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.launch import kotlinx.datetime.Instant -import logcat.logcat import java.io.File import kotlin.math.max @@ -936,7 +936,9 @@ fun ChannelScreen( } } - if (viewModel.channel?.channelType == ChannelType.VoiceChannel) { + if (viewModel.channel?.channelType == ChannelType.VoiceChannel + && FeatureFlags.voiceChannels2_0Granted + ) { JoinVoiceChannelButton(channelId) } } @@ -984,7 +986,7 @@ fun ChannelScreen( onToggleSpoiler = { val index = viewModel.draftAttachments .indexOfFirst { a -> a.pickerIdentifier == it.pickerIdentifier } - + if (index != -1) { val attachment = viewModel.draftAttachments[index]