Fix touch target for app toolbar avatar.

This commit is contained in:
Alex Hart
2025-04-10 12:14:18 -03:00
committed by GitHub
parent 09e36e0ed8
commit 9d6e7560f0
3 changed files with 20 additions and 8 deletions

View File

@@ -28,14 +28,13 @@ fun AvatarImage(
modifier: Modifier = Modifier,
useProfile: Boolean = true
) {
val context = LocalContext.current
if (LocalInspectionMode.current) {
Spacer(
modifier = modifier
.background(color = Color.Red, shape = CircleShape)
)
} else {
val context = LocalContext.current
val state = recipient.live().liveData.map { AvatarImageState(NameUtil.getAbbreviation(it.getDisplayName(context)), it, AvatarHelper.getAvatarFileDetails(context, it.id)) }.observeAsState().value ?: return
AndroidView(

View File

@@ -64,6 +64,7 @@ private fun BadgeImage(
},
update = {
it.setBadge(badge)
it.isClickable = false
},
modifier = modifier
)

View File

@@ -18,11 +18,12 @@ import androidx.compose.animation.core.tween
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
@@ -39,6 +40,7 @@ import androidx.compose.material3.Text
import androidx.compose.material3.TextFieldDefaults
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.ripple
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
@@ -302,18 +304,26 @@ private fun PrimaryToolbar(
Box(
contentAlignment = Alignment.Center,
modifier = Modifier
.padding(start = 28.dp, end = 26.dp)
.fillMaxHeight()
.padding(start = 20.dp, end = 16.dp)
.size(48.dp)
) {
AvatarImage(
recipient = state.self,
modifier = Modifier
.clip(CircleShape)
.size(28.dp)
)
val interactionSource = remember { MutableInteractionSource() }
Box(
modifier = Modifier
.fillMaxSize()
.clickable(
onClick = callback::onSettingsClick,
onClickLabel = stringResource(R.string.conversation_list_settings_shortcut)
onClickLabel = stringResource(R.string.conversation_list_settings_shortcut),
interactionSource = interactionSource,
indication = ripple(radius = 14.dp)
)
.size(28.dp)
)
BadgeImageSmall(
@@ -698,7 +708,9 @@ private fun SearchToolbarPreview() {
private fun ArchiveToolbarPreview() {
Previews.Preview {
ArchiveToolbar(
state = MainToolbarState(),
state = MainToolbarState(
self = Recipient(isResolving = false)
),
callback = MainToolbarCallback.Empty
)
}