Use vectorResource in CallLink fragments.

Resolves #13911
This commit is contained in:
Sagar 2025-01-14 20:38:51 +05:30 committed by Greyson Parrelli
parent dea2094e3e
commit 9bd4fecc4f
3 changed files with 55 additions and 7 deletions

View file

@ -25,9 +25,11 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.app.ShareCompat import androidx.core.app.ShareCompat
@ -299,19 +301,19 @@ private fun CreateCallLinkBottomSheetContent(
Rows.TextRow( Rows.TextRow(
text = stringResource(id = R.string.CreateCallLinkBottomSheetDialogFragment__share_link_via_signal), text = stringResource(id = R.string.CreateCallLinkBottomSheetDialogFragment__share_link_via_signal),
icon = painterResource(id = R.drawable.symbol_forward_24), icon = ImageVector.vectorResource(id = R.drawable.symbol_forward_24),
onClick = onShareViaSignalClicked onClick = onShareViaSignalClicked
) )
Rows.TextRow( Rows.TextRow(
text = stringResource(id = R.string.CreateCallLinkBottomSheetDialogFragment__copy_link), text = stringResource(id = R.string.CreateCallLinkBottomSheetDialogFragment__copy_link),
icon = painterResource(id = R.drawable.symbol_copy_android_24), icon = ImageVector.vectorResource(id = R.drawable.symbol_copy_android_24),
onClick = onCopyLinkClicked onClick = onCopyLinkClicked
) )
Rows.TextRow( Rows.TextRow(
text = stringResource(id = R.string.CreateCallLinkBottomSheetDialogFragment__share_link), text = stringResource(id = R.string.CreateCallLinkBottomSheetDialogFragment__share_link),
icon = painterResource(id = R.drawable.symbol_share_android_24), icon = ImageVector.vectorResource(id = R.drawable.symbol_share_android_24),
onClick = onShareLinkClicked onClick = onShareLinkClicked
) )

View file

@ -17,8 +17,10 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
@ -316,25 +318,25 @@ private fun CallLinkDetails(
Rows.TextRow( Rows.TextRow(
text = stringResource(id = R.string.CreateCallLinkBottomSheetDialogFragment__share_link_via_signal), text = stringResource(id = R.string.CreateCallLinkBottomSheetDialogFragment__share_link_via_signal),
icon = painterResource(id = R.drawable.symbol_forward_24), icon = ImageVector.vectorResource(id = R.drawable.symbol_forward_24),
onClick = callback::onShareLinkViaSignalClicked onClick = callback::onShareLinkViaSignalClicked
) )
Rows.TextRow( Rows.TextRow(
text = stringResource(id = R.string.CreateCallLinkBottomSheetDialogFragment__copy_link), text = stringResource(id = R.string.CreateCallLinkBottomSheetDialogFragment__copy_link),
icon = painterResource(id = R.drawable.symbol_copy_android_24), icon = ImageVector.vectorResource(id = R.drawable.symbol_copy_android_24),
onClick = callback::onCopyClicked onClick = callback::onCopyClicked
) )
Rows.TextRow( Rows.TextRow(
text = stringResource(id = R.string.CallLinkDetailsFragment__share_link), text = stringResource(id = R.string.CallLinkDetailsFragment__share_link),
icon = painterResource(id = R.drawable.symbol_link_24), icon = ImageVector.vectorResource(id = R.drawable.symbol_link_24),
onClick = callback::onShareClicked onClick = callback::onShareClicked
) )
Rows.TextRow( Rows.TextRow(
text = stringResource(id = R.string.CallLinkDetailsFragment__delete_call_link), text = stringResource(id = R.string.CallLinkDetailsFragment__delete_call_link),
icon = painterResource(id = R.drawable.symbol_trash_24), icon = ImageVector.vectorResource(id = R.drawable.symbol_trash_24),
foregroundTint = MaterialTheme.colorScheme.error, foregroundTint = MaterialTheme.colorScheme.error,
onClick = callback::onDeleteClicked onClick = callback::onDeleteClicked
) )

View file

@ -33,6 +33,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.alpha
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
@ -198,6 +199,49 @@ object Rows {
) )
} }
/**
* Text row that positions [text] and optional [label] in a [TextAndLabel] to the side of an [icon] using ImageVector.
*/
@Composable
fun TextRow(
text: String,
icon: ImageVector?,
modifier: Modifier = Modifier,
iconModifier: Modifier = Modifier,
label: String? = null,
foregroundTint: Color = MaterialTheme.colorScheme.onSurface,
onClick: (() -> Unit)? = null,
onLongClick: (() -> Unit)? = null,
enabled: Boolean = true
) {
TextRow(
text = {
TextAndLabel(
text = text,
label = label,
textColor = foregroundTint,
enabled = enabled
)
},
icon = if (icon != null) {
{
Icon(
imageVector = icon,
contentDescription = null,
tint = foregroundTint,
modifier = iconModifier
)
}
} else {
null
},
modifier = modifier,
onClick = onClick,
onLongClick = onLongClick,
enabled = enabled
)
}
/** /**
* Customizable text row that allows [text] and [icon] to be provided as composable functions instead of primitives. * Customizable text row that allows [text] and [icon] to be provided as composable functions instead of primitives.
*/ */