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 26afaa47..36d327aa 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 @@ -127,7 +127,7 @@ fun AttachmentManager( ModalBottomSheet( onDismissRequest = { showPreviewSheet = false - }, sheetState = sheetState, windowInsets = BottomSheetInsets + }, sheetState = sheetState ) { previewingAttachment?.let { FilePreviewSheet(args = it, canRemove = canRemove, onRemove = { diff --git a/app/src/main/java/chat/revolt/components/screens/chat/drawer/ChannelSideDrawer.kt b/app/src/main/java/chat/revolt/components/screens/chat/drawer/ChannelSideDrawer.kt index 03c727e4..83f58442 100644 --- a/app/src/main/java/chat/revolt/components/screens/chat/drawer/ChannelSideDrawer.kt +++ b/app/src/main/java/chat/revolt/components/screens/chat/drawer/ChannelSideDrawer.kt @@ -179,8 +179,7 @@ fun ChannelSideDrawer( sheetState = channelContextSheetState, onDismissRequest = { channelContextSheetTarget = null - }, - windowInsets = BottomSheetInsets + } ) { ChannelContextSheet( channelId = channelContextSheetTarget!!, diff --git a/app/src/main/java/chat/revolt/internals/extensions/Insets.kt b/app/src/main/java/chat/revolt/internals/extensions/Insets.kt index 46271d30..7dba03b3 100644 --- a/app/src/main/java/chat/revolt/internals/extensions/Insets.kt +++ b/app/src/main/java/chat/revolt/internals/extensions/Insets.kt @@ -12,9 +12,3 @@ val WindowInsets.Companion.zero: WindowInsets @Composable @NonRestartableComposable get() = WindowInsets(left = 0, right = 0, top = 0, bottom = 0) - -val BottomSheetInsets: WindowInsets - @OptIn(ExperimentalMaterial3Api::class) - @Composable - @NonRestartableComposable - get() = BottomSheetDefaults.windowInsets.exclude(WindowInsets.navigationBars) \ No newline at end of file diff --git a/app/src/main/java/chat/revolt/screens/about/AttributionScreen.kt b/app/src/main/java/chat/revolt/screens/about/AttributionScreen.kt index aa86e38e..961be042 100644 --- a/app/src/main/java/chat/revolt/screens/about/AttributionScreen.kt +++ b/app/src/main/java/chat/revolt/screens/about/AttributionScreen.kt @@ -128,8 +128,7 @@ fun AttributionScreen(navController: NavController) { sheetState = licenceSheetState, onDismissRequest = { licenceSheetOpen = false - }, - windowInsets = BottomSheetInsets + } ) { Column( modifier = Modifier 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 35052e62..43c59653 100644 --- a/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt +++ b/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt @@ -482,8 +482,7 @@ fun ChatRouterScreen( sheetState = statusSheetState, onDismissRequest = { showStatusSheet = false - }, - windowInsets = BottomSheetInsets + } ) { StatusSheet( onBeforeNavigation = { @@ -506,8 +505,7 @@ fun ChatRouterScreen( sheetState = addServerSheetState, onDismissRequest = { showAddServerSheet = false - }, - windowInsets = BottomSheetInsets + } ) { AddServerSheet() } @@ -520,8 +518,7 @@ fun ChatRouterScreen( sheetState = serverContextSheetState, onDismissRequest = { showServerContextSheet = false - }, - windowInsets = BottomSheetInsets + } ) { ServerContextSheet( serverId = serverContextSheetTarget, @@ -544,8 +541,7 @@ fun ChatRouterScreen( sheetState = userContextSheetState, onDismissRequest = { showUserContextSheet = false - }, - windowInsets = BottomSheetInsets + } ) { UserInfoSheet( userId = userContextSheetTarget, @@ -622,8 +618,7 @@ fun ChatRouterScreen( sheetState = linkInfoSheetState, onDismissRequest = { showLinkInfoSheet = false - }, - windowInsets = BottomSheetInsets + } ) { LinkInfoSheet( url = linkInfoSheetUrl, @@ -641,8 +636,7 @@ fun ChatRouterScreen( sheetState = emoteInfoSheetState, onDismissRequest = { showEmoteInfoSheet = false - }, - windowInsets = BottomSheetInsets + } ) { EmoteInfoSheet( id = emoteInfoSheetTarget, @@ -660,8 +654,7 @@ fun ChatRouterScreen( sheetState = reactionInfoSheetState, onDismissRequest = { showReactionInfoSheet = false - }, - windowInsets = BottomSheetInsets + } ) { ReactionInfoSheet( messageId = reactionInfoSheetMessageId, 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 7d2a0643..bb82150b 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 @@ -341,8 +341,7 @@ fun ChannelScreen( sheetState = channelInfoSheetState, onDismissRequest = { channelInfoSheetShown = false - }, - windowInsets = BottomSheetInsets + } ) { ChannelInfoSheet( channelId = channelId, @@ -363,8 +362,7 @@ fun ChannelScreen( sheetState = messageContextSheetState, onDismissRequest = { messageContextSheetShown = false - }, - windowInsets = BottomSheetInsets + } ) { MessageContextSheet( messageId = messageContextSheetTarget, @@ -390,8 +388,7 @@ fun ChannelScreen( sheetState = reactSheetState, onDismissRequest = { reactSheetShown = false - }, - windowInsets = BottomSheetInsets + } ) { ReactSheet(reactSheetTarget) { if (it == null) return@ReactSheet diff --git a/app/src/main/java/chat/revolt/screens/settings/AppearanceSettingsScreen.kt b/app/src/main/java/chat/revolt/screens/settings/AppearanceSettingsScreen.kt index 3d9af8d4..fc0200d1 100644 --- a/app/src/main/java/chat/revolt/screens/settings/AppearanceSettingsScreen.kt +++ b/app/src/main/java/chat/revolt/screens/settings/AppearanceSettingsScreen.kt @@ -240,8 +240,7 @@ fun AppearanceSettingsScreen( sheetState = sheetState, onDismissRequest = { viewModel.overridePickerSheetVisible = false - }, - windowInsets = BottomSheetInsets + } ) { ColourPickerSheet( initialValue = viewModel.selectedOverrideInitialValue ?: 0, diff --git a/app/src/main/java/chat/revolt/sheets/ChannelInfoSheet.kt b/app/src/main/java/chat/revolt/sheets/ChannelInfoSheet.kt index 46ea1adf..3dda9a20 100644 --- a/app/src/main/java/chat/revolt/sheets/ChannelInfoSheet.kt +++ b/app/src/main/java/chat/revolt/sheets/ChannelInfoSheet.kt @@ -41,7 +41,6 @@ import chat.revolt.callbacks.ActionChannel import chat.revolt.components.generic.SheetButton import chat.revolt.components.generic.SheetEnd import chat.revolt.components.screens.chat.ChannelSheetHeader -import chat.revolt.internals.extensions.BottomSheetInsets import chat.revolt.internals.extensions.rememberChannelPermissions import chat.revolt.screens.chat.dialogs.InviteDialog import kotlinx.coroutines.delay @@ -63,8 +62,7 @@ fun ChannelInfoSheet(channelId: String, onHideSheet: suspend () -> Unit) { sheetState = memberListSheetState, onDismissRequest = { memberListSheetShown = false - }, - windowInsets = BottomSheetInsets + } ) { MemberListSheet( channelId = channelId, diff --git a/app/src/main/java/chat/revolt/sheets/LinkInfoSheet.kt b/app/src/main/java/chat/revolt/sheets/LinkInfoSheet.kt index 0e9afa44..213b67ee 100644 --- a/app/src/main/java/chat/revolt/sheets/LinkInfoSheet.kt +++ b/app/src/main/java/chat/revolt/sheets/LinkInfoSheet.kt @@ -4,6 +4,7 @@ import android.net.Uri import android.widget.Toast import androidx.browser.customtabs.CustomTabsIntent import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -11,13 +12,12 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ExitToApp -import androidx.compose.material.ripple.LocalRippleTheme import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalClipboardManager @@ -30,7 +30,6 @@ import chat.revolt.R import chat.revolt.components.generic.SheetButton import chat.revolt.components.generic.SheetEnd import chat.revolt.internals.Platform -import chat.revolt.ui.theme.ClearRippleTheme import kotlinx.coroutines.launch @Composable @@ -43,11 +42,13 @@ fun LinkInfoSheet(url: String, onDismiss: () -> Unit) { verticalArrangement = Arrangement.spacedBy(16.dp), modifier = Modifier.padding(top = 16.dp, start = 16.dp, end = 16.dp, bottom = 4.dp), ) { - CompositionLocalProvider(value = LocalRippleTheme provides ClearRippleTheme) { - Box( - modifier = Modifier - .fillMaxWidth() - .clickable(onClick = { + Box( + modifier = Modifier + .fillMaxWidth() + .clickable( + interactionSource = remember(::MutableInteractionSource), + indication = null, + onClick = { val customTab = CustomTabsIntent .Builder() .setShowTitle(true) @@ -65,12 +66,11 @@ fun LinkInfoSheet(url: String, onDismiss: () -> Unit) { .show() } }) - ) { - Text( - text = url, - color = MaterialTheme.colorScheme.primary - ) - } + ) { + Text( + text = url, + color = MaterialTheme.colorScheme.primary + ) } HorizontalDivider() @@ -133,6 +133,6 @@ fun LinkInfoSheet(url: String, onDismiss: () -> Unit) { onDismiss() } ) - + SheetEnd() } diff --git a/app/src/main/java/chat/revolt/sheets/MemberListSheet.kt b/app/src/main/java/chat/revolt/sheets/MemberListSheet.kt index 907838f8..802d6f8b 100644 --- a/app/src/main/java/chat/revolt/sheets/MemberListSheet.kt +++ b/app/src/main/java/chat/revolt/sheets/MemberListSheet.kt @@ -235,8 +235,7 @@ fun MemberListSheet( sheetState = userContextSheetState, onDismissRequest = { showUserInfoSheet = false - }, - windowInsets = BottomSheetInsets + } ) { UserInfoSheet( userId = userInfoSheetTarget, @@ -256,8 +255,7 @@ fun MemberListSheet( sheetState = memberContextSheetState, onDismissRequest = { showMemberContextSheet = false - }, - windowInsets = BottomSheetInsets + } ) { if (serverId != null) { ServerMemberContextSheet( diff --git a/app/src/main/java/chat/revolt/sheets/MessageContextSheet.kt b/app/src/main/java/chat/revolt/sheets/MessageContextSheet.kt index 5f5f4320..36e3204d 100644 --- a/app/src/main/java/chat/revolt/sheets/MessageContextSheet.kt +++ b/app/src/main/java/chat/revolt/sheets/MessageContextSheet.kt @@ -12,7 +12,6 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Delete import androidx.compose.material.icons.filled.Edit -import androidx.compose.material.ripple.LocalRippleTheme import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator @@ -24,7 +23,6 @@ import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -51,8 +49,6 @@ import chat.revolt.components.chat.Message import chat.revolt.components.generic.SheetButton import chat.revolt.components.generic.SheetEnd import chat.revolt.internals.Platform -import chat.revolt.internals.extensions.BottomSheetInsets -import chat.revolt.ui.theme.ClearRippleTheme import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @@ -89,8 +85,7 @@ fun MessageContextSheet( sheetState = shareSheetState, onDismissRequest = { showShareSheet = false - }, - windowInsets = BottomSheetInsets + } ) { Column( modifier = Modifier @@ -252,8 +247,7 @@ fun MessageContextSheet( sheetState = reactSheetState, onDismissRequest = { showReactSheet = false - }, - windowInsets = BottomSheetInsets + } ) { ReactSheet(messageId) { if (it == null) return@ReactSheet @@ -316,20 +310,18 @@ fun MessageContextSheet( modifier = Modifier .verticalScroll(rememberScrollState()) ) { - CompositionLocalProvider(value = LocalRippleTheme provides ClearRippleTheme) { - Column( - verticalArrangement = Arrangement.spacedBy(16.dp), - modifier = Modifier.padding(top = 8.dp, start = 16.dp, end = 16.dp, bottom = 4.dp), - ) { - Message( - message = message.copy( - tail = false, - masquerade = null - ) + Column( + verticalArrangement = Arrangement.spacedBy(16.dp), + modifier = Modifier.padding(top = 8.dp, start = 16.dp, end = 16.dp, bottom = 4.dp), + ) { + Message( + message = message.copy( + tail = false, + masquerade = null ) + ) - HorizontalDivider() - } + HorizontalDivider() } SheetButton( diff --git a/app/src/main/java/chat/revolt/ui/theme/Theme.kt b/app/src/main/java/chat/revolt/ui/theme/Theme.kt index f8a18ab2..a5bab427 100644 --- a/app/src/main/java/chat/revolt/ui/theme/Theme.kt +++ b/app/src/main/java/chat/revolt/ui/theme/Theme.kt @@ -5,7 +5,6 @@ import android.app.Activity import android.os.Build import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material.ripple.RippleAlpha -import androidx.compose.material.ripple.RippleTheme import androidx.compose.material3.ColorScheme import androidx.compose.material3.MaterialTheme import androidx.compose.material3.darkColorScheme @@ -160,19 +159,6 @@ fun getDefaultTheme(): Theme { } } -object ClearRippleTheme : RippleTheme { - @Composable - override fun defaultColor(): Color = Color.Transparent - - @Composable - override fun rippleAlpha() = RippleAlpha( - draggedAlpha = 0.0f, - focusedAlpha = 0.0f, - hoveredAlpha = 0.0f, - pressedAlpha = 0.0f, - ) -} - fun isThemeDark(theme: Theme, systemIsDark: Boolean): Boolean { return when (theme) { Theme.Revolt, Theme.Amoled -> true