Upgrade compose to latest stable.

This commit is contained in:
Alex Hart
2025-09-25 15:48:03 -03:00
committed by Michelle Tang
parent e16ca2b2d2
commit d4a1cb0bfb
7 changed files with 941 additions and 58 deletions

View File

@@ -25,6 +25,7 @@ import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.Density
import androidx.compose.ui.unit.dp
import org.thoughtcrime.securesms.components.webrtc.ToggleButtonOutputState
import org.thoughtcrime.securesms.components.webrtc.WebRtcAudioDevice
@@ -173,9 +174,10 @@ private fun rememberCallScreenSheetState(
) {
SheetState(
skipPartiallyExpanded = false,
density = density,
initialValue = initialValue,
confirmValueChange = confirmValueChange,
positionalThreshold = { with(density) { 56.dp.toPx() } },
velocityThreshold = { with(density) { 125.dp.toPx() } },
skipHiddenState = skipHiddenState
)
}
@@ -202,7 +204,8 @@ private fun saveSheetState(
SheetState(
skipPartiallyExpanded = false,
density = density,
positionalThreshold = { with(density) { 56.dp.toPx() } },
velocityThreshold = { with(density) { 125.dp.toPx() } },
initialValue = value,
confirmValueChange = confirmValueChange,
skipHiddenState = skipHiddenState

View File

@@ -7,6 +7,7 @@ package org.thoughtcrime.securesms.components.webrtc.v2
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.DefaultTooltipCaretShape
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.PlainTooltip
import androidx.compose.material3.Text
@@ -42,7 +43,7 @@ fun CallScreenTooltipBox(
state = state,
tooltip = {
PlainTooltip(
caretSize = TooltipDefaults.caretSize,
caretShape = DefaultTooltipCaretShape(),
shape = TooltipDefaults.plainTooltipContainerShape,
containerColor = colorResource(R.color.signal_light_colorPrimary),
contentColor = colorResource(R.color.signal_light_colorOnPrimary)

View File

@@ -23,6 +23,7 @@ dependencies {
androidTestApi(composeBom)
}
api(libs.androidx.compose.material.icons.core)
api(libs.androidx.compose.material3)
api(libs.androidx.compose.material3.adaptive)
api(libs.androidx.compose.material3.adaptive.layout)

View File

@@ -5,7 +5,6 @@
package org.signal.core.ui.compose
import android.R
import androidx.compose.material3.Icon
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@@ -50,7 +49,7 @@ object Icons {
private fun BrushedForegroundPreview() {
Previews.Preview {
Icons.BrushedForeground(
painter = painterResource(id = R.drawable.ic_menu_camera),
painter = painterResource(id = android.R.drawable.ic_menu_camera),
contentDescription = null,
foregroundBrush = Brush.linearGradient(listOf(Color.Red, Color.Blue))
)

View File

@@ -8,23 +8,14 @@ package org.signal.core.ui.compose
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.PlainTooltip
import androidx.compose.material3.TooltipAnchorPosition
import androidx.compose.material3.TooltipBox
import androidx.compose.material3.TooltipDefaults
import androidx.compose.material3.rememberTooltipState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.snapshotFlow
import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Path
import androidx.compose.ui.layout.boundsInWindow
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.IntOffset
import androidx.compose.ui.unit.IntRect
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.LayoutDirection
import androidx.compose.ui.window.PopupPositionProvider
import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.flow.filterNot
@@ -48,41 +39,15 @@ object Tooltips {
isPersistent = true
)
val caretSize = with(LocalDensity.current) {
TooltipDefaults.caretSize.toSize()
}
TooltipBox(
positionProvider = PositionBelowAnchor,
positionProvider = TooltipDefaults.rememberTooltipPositionProvider(TooltipAnchorPosition.Below),
state = tooltipState,
tooltip = {
PlainTooltip(
shape = TooltipDefaults.plainTooltipContainerShape,
caretShape = TooltipDefaults.caretShape(),
containerColor = containerColor,
contentColor = contentColor,
modifier = Modifier.drawCaret { anchorLayoutCoordinates ->
val path = if (anchorLayoutCoordinates != null) {
val anchorBounds = anchorLayoutCoordinates.boundsInWindow()
val anchorMid = (anchorBounds.right - anchorBounds.left) / 2
val position = Offset(size.width - anchorMid, 0f)
Path().apply {
moveTo(x = position.x, y = position.y)
lineTo(x = position.x + caretSize.width / 2, y = position.y)
lineTo(x = position.x, y = position.y - caretSize.height)
lineTo(x = position.x - caretSize.width / 2, y = position.y)
close()
}
} else {
Path()
}
onDrawWithContent {
drawContent()
drawPath(path = path, color = containerColor)
}
}
contentColor = contentColor
) {
tooltipContent()
}
@@ -106,16 +71,4 @@ object Tooltips {
.collect { onDismiss() }
}
}
private object PositionBelowAnchor : PopupPositionProvider {
override fun calculatePosition(anchorBounds: IntRect, windowSize: IntSize, layoutDirection: LayoutDirection, popupContentSize: IntSize): IntOffset {
val x = if (layoutDirection == LayoutDirection.Ltr) {
anchorBounds.right - popupContentSize.width
} else {
anchorBounds.left
}
return IntOffset(x, anchorBounds.bottom)
}
}
}

View File

@@ -40,7 +40,8 @@ android-application = { module = "com.android.application:com.android.applicatio
androidx-benchmark-gradle-plugin = "androidx.benchmark:benchmark-gradle-plugin:1.3.3"
# Compose
androidx-compose-bom = "androidx.compose:compose-bom:2025.08.00"
androidx-compose-bom = "androidx.compose:compose-bom:2025.09.01"
androidx-compose-material-icons-core = { module = "androidx.compose.material:material-icons-core" }
androidx-compose-material3 = { module = "androidx.compose.material3:material3" }
androidx-compose-material3-adaptive = { module = "androidx.compose.material3.adaptive:adaptive"}
androidx-compose-material3-adaptive-layout = { module = "androidx.compose.material3.adaptive:adaptive-layout"}
@@ -50,7 +51,7 @@ androidx-compose-ui-tooling-core = { module = "androidx.compose.ui:ui-tooling" }
androidx-compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" }
androidx-compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" }
androidx-compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" }
androidx-compose-rxjava3 = "androidx.compose.runtime:runtime-rxjava3:1.7.8"
androidx-compose-rxjava3 = "androidx.compose.runtime:runtime-rxjava3:1.9.2"
# Accompanist
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }

File diff suppressed because it is too large Load Diff