Utilize ImageVector instead of Painter in SettingsScaffold.

This commit is contained in:
Alex Hart
2025-06-13 10:36:02 -03:00
committed by Michelle Tang
parent 297c712c0f
commit c0dfe9bd53
37 changed files with 99 additions and 64 deletions

View File

@@ -184,7 +184,7 @@ private fun AppSettingsContent(
Scaffolds.Settings(
title = stringResource(R.string.text_secure_normal__menu_settings),
navigationContentDescription = stringResource(R.string.CallScreenTopBar__go_back),
navigationIconPainter = painterResource(R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(R.drawable.symbol_arrow_start_24),
onNavigationClick = callbacks::onNavigationClick
) { contentPadding ->
Column(

View File

@@ -23,8 +23,10 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
@@ -93,7 +95,7 @@ class ExportAccountDataFragment : ComposeFragment() {
Scaffolds.Settings(
title = stringResource(id = R.string.AccountSettingsFragment__request_account_data),
onNavigationClick = onNavigationClick,
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24),
navigationContentDescription = stringResource(id = R.string.Material3SearchToolbar__close)
) { contentPadding ->
Surface(

View File

@@ -37,8 +37,10 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.style.TextAlign
@@ -72,7 +74,7 @@ class AppIconSelectionFragment : ComposeFragment() {
onNavigationClick = {
findNavController().popBackStack()
},
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24),
navigationContentDescription = stringResource(id = R.string.Material3SearchToolbar__close)
) { contentPadding: PaddingValues ->
IconSelectionScreen(appIconUtility.currentAppIcon, ::updateAppIcon, ::openLearnMore, Modifier.padding(contentPadding))

View File

@@ -22,9 +22,11 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
@@ -43,7 +45,7 @@ class AppIconTutorialFragment : ComposeFragment() {
onNavigationClick = {
findNavController().popBackStack()
},
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24),
navigationContentDescription = stringResource(id = R.string.Material3SearchToolbar__close)
) { contentPadding: PaddingValues ->
TutorialScreen(Modifier.padding(contentPadding))

View File

@@ -34,7 +34,6 @@ import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.fragment.app.viewModels
import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -122,7 +121,7 @@ private fun BackupsSettingsContent(
) {
Scaffolds.Settings(
title = stringResource(R.string.preferences_chats__backups),
navigationIconPainter = painterResource(R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(R.drawable.symbol_arrow_start_24),
onNavigationClick = onNavigationClick
) { paddingValues ->
LazyColumn(

View File

@@ -406,7 +406,7 @@ private fun RemoteBackupsSettingsContent(
TextWithBetaLabel(text = title, textStyle = MaterialTheme.typography.titleLarge)
},
onNavigationClick = contentCallbacks::onNavigationClick,
navigationIconPainter = painterResource(R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(R.drawable.symbol_arrow_start_24),
navigationContentDescription = stringResource(R.string.DefaultTopAppBar__navigate_up_content_description),
scrollBehavior = scrollBehavior
)

View File

@@ -79,7 +79,7 @@ class ChatFoldersFragment : ComposeFragment() {
Scaffolds.Settings(
title = stringResource(id = R.string.ChatsSettingsFragment__chat_folders),
onNavigationClick = { requireActivity().onNavigateUp() },
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24),
navigationContentDescription = stringResource(id = R.string.Material3SearchToolbar__close)
) { contentPadding: PaddingValues ->
FoldersScreen(

View File

@@ -40,10 +40,11 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.unit.dp
import androidx.fragment.app.activityViewModels
@@ -119,7 +120,7 @@ class CreateFoldersFragment : ComposeFragment() {
requireActivity().onNavigateUp()
}
},
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24),
navigationContentDescription = stringResource(id = R.string.Material3SearchToolbar__close)
) { contentPadding: PaddingValues ->
CreateFolderScreen(

View File

@@ -15,7 +15,6 @@ import androidx.compose.ui.Alignment.Companion.CenterVertically
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.navigation.NavController
@@ -42,7 +41,7 @@ class HelpSettingsFragment : ComposeFragment() {
Scaffolds.Settings(
title = stringResource(R.string.preferences__help),
onNavigationClick = { navController.popBackStack() },
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24),
navigationContentDescription = stringResource(id = R.string.Material3SearchToolbar__close)
) { contentPadding ->
LazyColumn(

View File

@@ -14,8 +14,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.rxjava3.subscribeAsState
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.navigation.fragment.findNavController
@@ -46,7 +47,7 @@ class LicenseFragment : ComposeFragment() {
Scaffolds.Settings(
title = stringResource(id = R.string.HelpSettingsFragment__licenses),
onNavigationClick = findNavController()::popBackStack,
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24),
navigationContentDescription = stringResource(id = R.string.Material3SearchToolbar__close)
) {
LicenseScreen(licenseTextLines = textState.value, modifier = Modifier.padding(it))

View File

@@ -21,7 +21,8 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
@@ -109,7 +110,7 @@ private fun Content(
) {
Scaffolds.Settings(
title = "One-time donation state",
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24),
navigationContentDescription = null,
onNavigationClick = onNavigationClick
) {

View File

@@ -15,10 +15,11 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.fragment.app.viewModels
@@ -104,7 +105,7 @@ private fun Screen(
Scaffolds.Settings(
title = stringResource(id = R.string.preferences_app_protection__phone_number),
onNavigationClick = onNavigationClick,
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24),
navigationContentDescription = stringResource(id = R.string.Material3SearchToolbar__close),
snackbarHost = {
SnackbarHost(snackbarHostState)

View File

@@ -32,9 +32,11 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.semantics.Role
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
@@ -112,7 +114,7 @@ class ScreenLockSettingsFragment : ComposeFragment() {
Scaffolds.Settings(
title = stringResource(id = R.string.preferences_app_protection__screen_lock),
onNavigationClick = { navController.popBackStack() },
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24),
navigationContentDescription = stringResource(id = R.string.Material3SearchToolbar__close)
) { contentPadding: PaddingValues ->
ScreenLockScreen(

View File

@@ -32,10 +32,12 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.integerArrayResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.pluralStringResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.TextRange
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.input.TextFieldValue
@@ -273,7 +275,7 @@ private fun ManageStorageSettingsScreen(
Scaffolds.Settings(
title = stringResource(id = R.string.preferences__storage),
onNavigationClick = onNavigationClick,
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24)
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24)
) { contentPadding ->
Column(
modifier = Modifier
@@ -378,7 +380,7 @@ private fun SetKeepMessagesScreen(
Scaffolds.Settings(
title = stringResource(id = R.string.preferences__keep_messages),
onNavigationClick = onNavigationClick,
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24)
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24)
) { contentPadding ->
Column(
modifier = Modifier
@@ -418,7 +420,7 @@ private fun SetChatLengthLimitScreen(
Scaffolds.Settings(
title = stringResource(id = R.string.preferences__conversation_length_limit),
onNavigationClick = onNavigationClick,
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24)
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24)
) { contentPadding ->
Column(
modifier = Modifier

View File

@@ -31,9 +31,10 @@ import androidx.compose.ui.focus.FocusDirection
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.focus.onFocusChanged
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.text.input.KeyboardType
@@ -221,7 +222,7 @@ private fun BankTransferDetailsContent(
Scaffolds.Settings(
title = "Bank transfer",
onNavigationClick = onNavigationClick,
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24)
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24)
) {
Column(
horizontalAlignment = CenterHorizontally,

View File

@@ -25,9 +25,10 @@ import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusDirection
import androidx.compose.ui.focus.onFocusChanged
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.text.input.KeyboardType
@@ -220,7 +221,7 @@ private fun IdealTransferDetailsContent(
Scaffolds.Settings(
title = stringResource(id = R.string.GatewaySelectorBottomSheet__ideal),
onNavigationClick = onNavigationClick,
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_start_24)
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24)
) {
val focusManager = LocalFocusManager.current

View File

@@ -14,8 +14,9 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.AnnotatedString
import org.signal.core.ui.compose.Dialogs
import org.signal.core.ui.compose.Previews
@@ -55,7 +56,7 @@ fun InternalConversationSettingsScreen(
Scaffolds.Settings(
title = stringResource(R.string.ConversationSettingsFragment__internal_details),
onNavigationClick = callbacks::onNavigationClick,
navigationIconPainter = painterResource(R.drawable.symbol_arrow_start_24),
navigationIcon = ImageVector.vectorResource(R.drawable.symbol_arrow_start_24),
navigationContentDescription = stringResource(R.string.CallScreenTopBar__go_back)
) { paddingValues ->
LazyColumn(