mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-15 07:28:30 +00:00
Upgrade compose to latest stable.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user