diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreen.kt index cedbdf6ac..6a67f7c9d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreen.kt @@ -36,7 +36,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.CustomAccessibilityAction import androidx.compose.ui.semantics.customActions @@ -77,6 +76,7 @@ import com.x8bit.bitwarden.ui.platform.components.field.BitwardenPasswordField import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextField import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.theme.clickableSpanStyle @@ -170,7 +170,7 @@ fun CreateAccountScreen( BitwardenTopAppBar( title = stringResource(id = R.string.create_account), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(CloseClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt index 52e910bf0..9ad314c70 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt @@ -21,7 +21,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextAlign @@ -39,6 +38,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextField import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager @@ -111,7 +111,7 @@ fun EnterpriseSignOnScreen( BitwardenTopAppBar( title = stringResource(id = R.string.app_name), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(EnterpriseSignOnAction.CloseButtonClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreen.kt index 5fc54bde0..86bdfaa22 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreen.kt @@ -21,7 +21,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.input.KeyboardType @@ -38,6 +37,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextField import com.x8bit.bitwarden.ui.platform.components.header.BitwardenListHeaderText import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Displays the about self-hosted/custom environment screen. @@ -83,7 +83,7 @@ fun EnvironmentScreen( BitwardenTopAppBar( title = stringResource(id = R.string.settings), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(EnvironmentAction.CloseClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreen.kt index 18b67bcaf..d3b207b8f 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreen.kt @@ -38,7 +38,6 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.input.KeyboardType @@ -63,6 +62,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.row.BitwardenSelectionR import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextField import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.util.displayLabel import kotlinx.collections.immutable.toImmutableList @@ -227,7 +227,7 @@ private fun LandingScreenContent( Spacer(modifier = Modifier.height(topPadding)) Image( - painter = painterResource(id = R.drawable.logo), + painter = rememberVectorPainter(id = R.drawable.logo), colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.primary), contentDescription = null, modifier = Modifier @@ -381,7 +381,7 @@ private fun EnvironmentSelector( modifier = Modifier.padding(end = 8.dp), ) Icon( - painter = painterResource(id = R.drawable.ic_region_select_dropdown), + painter = rememberVectorPainter(id = R.drawable.ic_region_select_dropdown), contentDescription = stringResource(id = R.string.region), tint = MaterialTheme.colorScheme.primary, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreen.kt index c0fbf00bf..c1892b493 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreen.kt @@ -29,7 +29,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.platform.SoftwareKeyboardController import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextAlign @@ -52,6 +51,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.field.BitwardenPasswordField import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.text.BitwardenClickableText +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import kotlinx.collections.immutable.persistentListOf @@ -122,7 +122,7 @@ fun LoginScreen( BitwardenTopAppBar( title = stringResource(id = R.string.app_name), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(LoginAction.CloseButtonClick) } @@ -275,7 +275,7 @@ private fun LoginScreenContent( if (state.shouldShowLoginWithDevice) { BitwardenOutlinedButtonWithIcon( label = stringResource(id = R.string.log_in_with_device), - icon = painterResource(id = R.drawable.ic_device), + icon = rememberVectorPainter(id = R.drawable.ic_device), onClick = onLoginWithDeviceClick, modifier = Modifier .testTag("LogInWithAnotherDeviceButton") @@ -288,7 +288,7 @@ private fun LoginScreenContent( BitwardenOutlinedButtonWithIcon( label = stringResource(id = R.string.log_in_sso), - icon = painterResource(id = R.drawable.ic_briefcase), + icon = rememberVectorPainter(id = R.drawable.ic_briefcase), onClick = onSingleSignOnClick, modifier = Modifier .testTag("LogInWithSsoButton") diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreen.kt index 730e313d2..e3c6c7707 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreen.kt @@ -29,7 +29,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextAlign @@ -46,6 +45,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.text.BitwardenClickableText +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.theme.LocalNonMaterialColors @@ -98,7 +98,7 @@ fun LoginWithDeviceScreen( BitwardenTopAppBar( title = state.toolbarTitle(), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(LoginWithDeviceAction.CloseButtonClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordhint/MasterPasswordHintScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordhint/MasterPasswordHintScreen.kt index 2a5015b3f..a12e88f67 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordhint/MasterPasswordHintScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordhint/MasterPasswordHintScreen.kt @@ -15,7 +15,6 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.input.KeyboardType @@ -33,6 +32,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextField import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * The top level composable for the Login screen. @@ -96,7 +96,7 @@ fun MasterPasswordHintScreen( BitwardenTopAppBar( title = stringResource(id = R.string.password_hint), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(MasterPasswordHintAction.CloseClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/trusteddevice/TrustedDeviceScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/trusteddevice/TrustedDeviceScreen.kt index 074712ed1..96cc0652d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/trusteddevice/TrustedDeviceScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/trusteddevice/TrustedDeviceScreen.kt @@ -23,7 +23,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.tooling.preview.Preview @@ -44,6 +43,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.text.BitwardenClickableText import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * The top level composable for the Reset Password screen. @@ -109,7 +109,7 @@ private fun TrustedDeviceScaffold( title = stringResource(id = R.string.log_in_initiated), scrollBehavior = scrollBehavior, navigationIcon = NavigationIcon( - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = handlers.onBackClick, ), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreen.kt index 0b4c46fe4..b60b82a17 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreen.kt @@ -55,6 +55,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.field.BitwardenPasswordField import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenWideSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.composition.LocalNfcManager import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager @@ -130,7 +131,7 @@ fun TwoFactorLoginScreen( BitwardenTopAppBar( title = state.authMethod.title(), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(TwoFactorLoginAction.CloseButtonClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountActionItem.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountActionItem.kt index 5f57ab3fa..bc8fdc3d1 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountActionItem.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountActionItem.kt @@ -8,7 +8,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.colorResource -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.TextStyle @@ -20,6 +19,7 @@ import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.util.toSafeOverlayColor import com.x8bit.bitwarden.ui.platform.base.util.toUnscaledTextUnit +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Displays an icon representing a Bitwarden account with the user's initials superimposed. @@ -35,7 +35,7 @@ fun BitwardenAccountActionItem( color: Color, onClick: () -> Unit, ) { - val iconPainter = painterResource(id = R.drawable.ic_account_initials_container) + val iconPainter = rememberVectorPainter(id = R.drawable.ic_account_initials_container) val contentDescription = stringResource(id = R.string.account) IconButton( diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountSwitcher.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountSwitcher.kt index af135dc96..cc53ad41d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountSwitcher.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountSwitcher.kt @@ -36,7 +36,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.clearAndSetSemantics import androidx.compose.ui.semantics.testTag @@ -51,6 +50,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenSelectionDialo import com.x8bit.bitwarden.ui.platform.components.dialog.row.BitwardenBasicDialogRow import com.x8bit.bitwarden.ui.platform.components.model.AccountSummary import com.x8bit.bitwarden.ui.platform.components.scrim.BitwardenAnimatedScrim +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.feature.vault.util.iconRes import com.x8bit.bitwarden.ui.vault.feature.vault.util.iconTestTag import com.x8bit.bitwarden.ui.vault.feature.vault.util.initials @@ -266,7 +266,7 @@ private fun AccountSummaryItem( contentAlignment = Alignment.Center, ) { Icon( - painter = painterResource(id = R.drawable.ic_account_initials_container), + painter = rememberVectorPainter(id = R.drawable.ic_account_initials_container), contentDescription = null, tint = accountSummary.avatarColor, modifier = Modifier.size(40.dp), @@ -313,7 +313,7 @@ private fun AccountSummaryItem( Spacer(modifier = Modifier.width(16.dp)) Icon( - painter = painterResource(id = accountSummary.iconRes), + painter = rememberVectorPainter(id = accountSummary.iconRes), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, modifier = Modifier @@ -372,7 +372,7 @@ private fun AddAccountItem( .then(modifier), ) { Icon( - painter = painterResource(id = R.drawable.ic_plus), + painter = rememberVectorPainter(id = R.drawable.ic_plus), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, modifier = Modifier diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenPlaceholderAccountItem.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenPlaceholderAccountItem.kt index 6037e7dfc..9c6fa75be 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenPlaceholderAccountItem.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenPlaceholderAccountItem.kt @@ -5,12 +5,12 @@ import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag import androidx.compose.ui.tooling.preview.Preview import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme @@ -29,12 +29,12 @@ fun BitwardenPlaceholderAccountActionItem( .semantics(mergeDescendants = true) { testTag = "CurrentActiveAccount" }, ) { Icon( - painter = painterResource(id = R.drawable.ic_account_initials_container), + painter = rememberVectorPainter(id = R.drawable.ic_account_initials_container), contentDescription = null, tint = MaterialTheme.colorScheme.secondaryContainer, ) Icon( - painter = painterResource(id = R.drawable.ic_dots), + painter = rememberVectorPainter(id = R.drawable.ic_dots), contentDescription = stringResource(id = R.string.account), tint = MaterialTheme.colorScheme.onSecondaryContainer, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenMediumTopAppBar.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenMediumTopAppBar.kt index 46140429a..9a399c75e 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenMediumTopAppBar.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenMediumTopAppBar.kt @@ -13,10 +13,10 @@ import androidx.compose.material3.rememberTopAppBarState import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.tooling.preview.Preview import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * A custom Bitwarden-themed medium top app bar with support for actions. @@ -76,7 +76,7 @@ private fun BitwardenMediumTopAppBar_preview() { actions = { IconButton(onClick = { }) { Icon( - painter = painterResource(id = R.drawable.ic_more), + painter = rememberVectorPainter(id = R.drawable.ic_more), contentDescription = "", tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenSearchTopAppBar.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenSearchTopAppBar.kt index 65c0f5225..1afed7679 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenSearchTopAppBar.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenSearchTopAppBar.kt @@ -20,12 +20,12 @@ import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.input.ImeAction import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.util.mirrorIfRtl +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Represents a Bitwarden styled [TopAppBar] that assumes the following components: @@ -85,7 +85,7 @@ fun BitwardenSearchTopAppBar( onClick = { onSearchTermChange("") }, ) { Icon( - painter = painterResource(id = R.drawable.ic_close), + painter = rememberVectorPainter(id = R.drawable.ic_close), contentDescription = stringResource(id = R.string.clear), ) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenTopAppBar.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenTopAppBar.kt index af8c90f25..cea997057 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenTopAppBar.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/BitwardenTopAppBar.kt @@ -14,13 +14,13 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.util.mirrorIfRtl +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -125,7 +125,7 @@ private fun BitwardenTopAppBar_preview() { rememberTopAppBarState(), ), navigationIcon = NavigationIcon( - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = { }, ), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/action/BitwardenOverflowActionItem.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/action/BitwardenOverflowActionItem.kt index c84c05dea..1dd752074 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/action/BitwardenOverflowActionItem.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/action/BitwardenOverflowActionItem.kt @@ -18,7 +18,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag @@ -27,6 +26,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf @@ -58,7 +58,7 @@ fun BitwardenOverflowActionItem( modifier = Modifier.testTag("HeaderBarOptionsButton"), ) { Icon( - painter = painterResource(id = R.drawable.ic_more), + painter = rememberVectorPainter(id = R.drawable.ic_more), contentDescription = stringResource(id = R.string.more), ) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/action/BitwardenSearchActionItem.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/action/BitwardenSearchActionItem.kt index a0bf6602f..8989b88bf 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/action/BitwardenSearchActionItem.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/appbar/action/BitwardenSearchActionItem.kt @@ -5,10 +5,10 @@ import androidx.compose.material3.IconButton import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.tooling.preview.Preview import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Represents the Bitwarden search action item. @@ -30,7 +30,7 @@ fun BitwardenSearchActionItem( modifier = Modifier.testTag("SearchButton"), ) { Icon( - painter = painterResource(id = R.drawable.ic_search), + painter = rememberVectorPainter(id = R.drawable.ic_search), contentDescription = contentDescription, ) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenFilledButtonWithIcon.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenFilledButtonWithIcon.kt index 70f187663..7f15b9931 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenFilledButtonWithIcon.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenFilledButtonWithIcon.kt @@ -10,11 +10,11 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -65,7 +65,7 @@ private fun BitwardenFilledButtonWithIcon_preview() { BitwardenTheme { BitwardenFilledButtonWithIcon( label = "Test Button", - icon = painterResource(id = R.drawable.ic_tooltip), + icon = rememberVectorPainter(id = R.drawable.ic_tooltip), onClick = {}, isEnabled = true, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenFilledTonalButtonWithIcon.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenFilledTonalButtonWithIcon.kt index 89f37017d..c30cce87d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenFilledTonalButtonWithIcon.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenFilledTonalButtonWithIcon.kt @@ -10,10 +10,10 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -66,7 +66,7 @@ private fun BitwardenFilledTonalButtonWithIcon_preview() { BitwardenTheme { BitwardenFilledTonalButtonWithIcon( label = "Sample Text", - icon = painterResource(id = R.drawable.ic_tooltip), + icon = rememberVectorPainter(id = R.drawable.ic_tooltip), onClick = {}, modifier = Modifier.padding(horizontal = 16.dp), ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenOutlinedButtonWithIcon.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenOutlinedButtonWithIcon.kt index 60721a411..9efa0396b 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenOutlinedButtonWithIcon.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/button/BitwardenOutlinedButtonWithIcon.kt @@ -10,11 +10,11 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Represents a Bitwarden-styled filled [OutlinedButton] with an icon. @@ -63,7 +63,7 @@ fun BitwardenOutlinedButtonWithIcon( private fun BitwardenOutlinedButtonWithIcon_preview_isEnabled() { BitwardenOutlinedButtonWithIcon( label = "Label", - icon = painterResource(id = R.drawable.ic_light_bulb), + icon = rememberVectorPainter(id = R.drawable.ic_light_bulb), onClick = {}, isEnabled = true, ) @@ -74,7 +74,7 @@ private fun BitwardenOutlinedButtonWithIcon_preview_isEnabled() { private fun BitwardenOutlinedButtonWithIcon_preview_isNotEnabled() { BitwardenOutlinedButtonWithIcon( label = "Label", - icon = painterResource(id = R.drawable.ic_light_bulb), + icon = rememberVectorPainter(id = R.drawable.ic_light_bulb), onClick = {}, isEnabled = false, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenDateSelectButton.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenDateSelectButton.kt index ffdda0efa..d8b62b961 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenDateSelectButton.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenDateSelectButton.kt @@ -21,7 +21,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.Role import androidx.compose.ui.semantics.clearAndSetSemantics @@ -31,6 +30,7 @@ import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag import androidx.compose.ui.semantics.testTagsAsResourceId import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.util.orNow import com.x8bit.bitwarden.ui.platform.util.toFormattedPattern import java.time.Instant @@ -90,7 +90,7 @@ fun BitwardenDateSelectButton( enabled = shouldShowDialog, trailingIcon = { Icon( - painter = painterResource(id = R.drawable.ic_region_select_dropdown), + painter = rememberVectorPainter(id = R.drawable.ic_region_select_dropdown), contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenTimePickerDialog.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenTimePickerDialog.kt index ba693c4bb..74526afc7 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenTimePickerDialog.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenTimePickerDialog.kt @@ -30,7 +30,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag @@ -39,6 +38,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * A custom composable representing a dialog that displays the time picker dialog. @@ -98,7 +98,7 @@ fun BitwardenTimePickerDialog( @Suppress("MaxLineLength") Icon( modifier = Modifier.size(24.dp), - painter = painterResource(id = R.drawable.ic_keyboard), + painter = rememberVectorPainter(id = R.drawable.ic_keyboard), tint = MaterialTheme.colorScheme.onSurfaceVariant, contentDescription = stringResource( // TODO: Get our own string for this (BIT-1405) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenTimeSelectButton.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenTimeSelectButton.kt index 309e7d0bf..4271285e1 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenTimeSelectButton.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenTimeSelectButton.kt @@ -14,12 +14,12 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.Role import androidx.compose.ui.semantics.clearAndSetSemantics import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.role import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.util.orNow import com.x8bit.bitwarden.ui.platform.util.toFormattedPattern import java.time.ZonedDateTime @@ -77,7 +77,7 @@ fun BitwardenTimeSelectButton( enabled = shouldShowDialog, trailingIcon = { Icon( - painter = painterResource(id = R.drawable.ic_region_select_dropdown), + painter = rememberVectorPainter(id = R.drawable.ic_region_select_dropdown), contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dropdown/BitwardenMultiSelectButton.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dropdown/BitwardenMultiSelectButton.kt index 94b98f417..00257e016 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dropdown/BitwardenMultiSelectButton.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/dropdown/BitwardenMultiSelectButton.kt @@ -21,7 +21,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.CustomAccessibilityAction import androidx.compose.ui.semantics.Role import androidx.compose.ui.semantics.clearAndSetSemantics @@ -36,6 +35,7 @@ import com.x8bit.bitwarden.ui.platform.base.util.asText import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenSelectionDialog import com.x8bit.bitwarden.ui.platform.components.dialog.row.BitwardenSelectionRow import com.x8bit.bitwarden.ui.platform.components.model.TooltipData +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf @@ -118,7 +118,7 @@ fun BitwardenMultiSelectButton( modifier = Modifier.size(16.dp), ) { Icon( - painter = painterResource(id = R.drawable.ic_tooltip_small), + painter = rememberVectorPainter(id = R.drawable.ic_tooltip_small), contentDescription = it.contentDescription, ) } @@ -130,7 +130,7 @@ fun BitwardenMultiSelectButton( enabled = shouldShowDialog, trailingIcon = { Icon( - painter = painterResource(id = R.drawable.ic_region_select_dropdown), + painter = rememberVectorPainter(id = R.drawable.ic_region_select_dropdown), contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenPasswordField.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenPasswordField.kt index 0934dfaca..1f52c46fb 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenPasswordField.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenPasswordField.kt @@ -18,7 +18,6 @@ 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.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag @@ -29,6 +28,7 @@ import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.tooling.preview.Preview import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.components.util.nonLetterColorVisualTransformation +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Represents a Bitwarden-styled password field that hoists show/hide password state to the caller. @@ -109,7 +109,7 @@ fun BitwardenPasswordField( val contentDescriptionRes = if (showPassword) R.string.hide else R.string.show Icon( modifier = Modifier.semantics { showPasswordTestTag?.let { testTag = it } }, - painter = painterResource(id = painterRes), + painter = rememberVectorPainter(id = painterRes), contentDescription = stringResource(id = contentDescriptionRes), tint = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenPasswordFieldWithActions.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenPasswordFieldWithActions.kt index 6311828d7..4b755db26 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenPasswordFieldWithActions.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenPasswordFieldWithActions.kt @@ -10,7 +10,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag import androidx.compose.ui.tooling.preview.Preview @@ -18,6 +17,7 @@ import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.components.icon.BitwardenIconButtonWithResource import com.x8bit.bitwarden.ui.platform.components.model.IconResource +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -134,7 +134,7 @@ private fun BitwardenPasswordFieldWithActions_preview() { actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_check_mark), + iconPainter = rememberVectorPainter(id = R.drawable.ic_check_mark), contentDescription = "", ), onClick = {}, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenTextFieldWithActions.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenTextFieldWithActions.kt index e221afec7..44907b4cf 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenTextFieldWithActions.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/field/BitwardenTextFieldWithActions.kt @@ -8,7 +8,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.TextStyle @@ -17,6 +16,7 @@ import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.tooling.preview.Preview import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.components.row.BitwardenRowOfActions +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -92,11 +92,11 @@ private fun BitwardenTextFieldWithActions_preview() { onValueChange = {}, actions = { Icon( - painter = painterResource(id = R.drawable.ic_tooltip), + painter = rememberVectorPainter(id = R.drawable.ic_tooltip), contentDescription = "Action 1", ) Icon( - painter = painterResource(id = R.drawable.ic_generator), + painter = rememberVectorPainter(id = R.drawable.ic_generator), contentDescription = "Action 2", ) }, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/icon/BitwardenIcon.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/icon/BitwardenIcon.kt index ff0ca0367..56e42522a 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/icon/BitwardenIcon.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/icon/BitwardenIcon.kt @@ -4,11 +4,11 @@ import androidx.compose.material3.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi import com.bumptech.glide.integration.compose.GlideImage import com.bumptech.glide.integration.compose.placeholder import com.x8bit.bitwarden.ui.platform.components.model.IconData +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Represents a Bitwarden icon that is either locally loaded or loaded using glide. @@ -40,7 +40,7 @@ fun BitwardenIcon( is IconData.Local -> { Icon( - painter = painterResource(id = iconData.iconRes), + painter = rememberVectorPainter(id = iconData.iconRes), contentDescription = contentDescription, tint = tint, modifier = modifier, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/icon/BitwardenIconButtonWithResource.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/icon/BitwardenIconButtonWithResource.kt index c56569ea4..c322117cd 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/icon/BitwardenIconButtonWithResource.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/icon/BitwardenIconButtonWithResource.kt @@ -6,11 +6,11 @@ import androidx.compose.material3.IconButtonColors import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.tooling.preview.Preview import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.components.model.IconResource +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -52,7 +52,7 @@ private fun BitwardenIconButtonWithResource_preview() { BitwardenTheme { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_tooltip), + iconPainter = rememberVectorPainter(id = R.drawable.ic_tooltip), contentDescription = "Sample Icon", ), onClick = {}, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/listitem/BitwardenGroupItem.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/listitem/BitwardenGroupItem.kt index 261e79d78..40e7f5f9d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/listitem/BitwardenGroupItem.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/listitem/BitwardenGroupItem.kt @@ -15,7 +15,6 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag import androidx.compose.ui.tooling.preview.Preview @@ -23,6 +22,7 @@ import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.util.bottomDivider import com.x8bit.bitwarden.ui.platform.base.util.mirrorIfRtl +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -90,7 +90,7 @@ fun BitwardenGroupItem( ) Icon( - painter = painterResource(id = R.drawable.ic_navigate_next), + painter = rememberVectorPainter(id = R.drawable.ic_navigate_next), contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier @@ -107,7 +107,7 @@ private fun BitwardenGroupItem_preview() { BitwardenGroupItem( label = "Sample Label", supportingLabel = "5", - startIcon = painterResource(id = R.drawable.ic_send_text), + startIcon = rememberVectorPainter(id = R.drawable.ic_send_text), startIconTestTag = "Test Tag", onClick = {}, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/listitem/BitwardenListItem.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/listitem/BitwardenListItem.kt index 061d5ff81..04cba601b 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/listitem/BitwardenListItem.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/listitem/BitwardenListItem.kt @@ -24,7 +24,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag @@ -37,6 +36,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.row.BitwardenBasicDialo import com.x8bit.bitwarden.ui.platform.components.icon.BitwardenIcon import com.x8bit.bitwarden.ui.platform.components.model.IconData import com.x8bit.bitwarden.ui.platform.components.model.IconResource +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf @@ -140,7 +140,7 @@ fun BitwardenListItem( modifier = Modifier.semantics { optionsTestTag?.let { testTag = it } }, ) { Icon( - painter = painterResource(id = R.drawable.ic_more_horizontal), + painter = rememberVectorPainter(id = R.drawable.ic_more_horizontal), contentDescription = stringResource(id = R.string.options), tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(24.dp), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/model/IconResource.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/model/IconResource.kt index 70c75d480..1d54672e7 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/model/IconResource.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/model/IconResource.kt @@ -4,8 +4,8 @@ import android.os.Parcelable import androidx.annotation.DrawableRes import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.res.painterResource import com.x8bit.bitwarden.ui.platform.base.util.Text +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import kotlinx.parcelize.Parcelize /** @@ -48,7 +48,7 @@ fun List<IconRes>.toIconResources(): List<IconResource> = this.map { it.toIconRe @Composable fun IconRes.toIconResource(): IconResource = IconResource( - iconPainter = painterResource(id = iconRes), + iconPainter = rememberVectorPainter(id = iconRes), contentDescription = contentDescription(), testTag = testTag, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/row/BitwardenExternalLinkRow.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/row/BitwardenExternalLinkRow.kt index b9f6b7968..9a7d74e00 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/row/BitwardenExternalLinkRow.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/row/BitwardenExternalLinkRow.kt @@ -8,12 +8,12 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.util.mirrorIfRtl import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -52,7 +52,7 @@ fun BitwardenExternalLinkRow( ) { Icon( modifier = Modifier.mirrorIfRtl(), - painter = painterResource(id = R.drawable.ic_external_link), + painter = rememberVectorPainter(id = R.drawable.ic_external_link), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/row/BitwardenRowOfActions.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/row/BitwardenRowOfActions.kt index 08d53861b..8ef731de0 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/row/BitwardenRowOfActions.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/row/BitwardenRowOfActions.kt @@ -9,10 +9,10 @@ import androidx.compose.material3.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -44,12 +44,12 @@ private fun BitwardenRowOfIconButtons_preview() { BitwardenTheme { BitwardenRowOfActions { Icon( - painter = painterResource(id = R.drawable.ic_tooltip), + painter = rememberVectorPainter(id = R.drawable.ic_tooltip), contentDescription = "Icon 1", modifier = Modifier.size(24.dp), ) Icon( - painter = painterResource(id = R.drawable.ic_tooltip), + painter = rememberVectorPainter(id = R.drawable.ic_tooltip), contentDescription = "Icon 2", modifier = Modifier.size(24.dp), ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/stepper/BitwardenStepper.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/stepper/BitwardenStepper.kt index 5310b464a..a586941c1 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/stepper/BitwardenStepper.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/stepper/BitwardenStepper.kt @@ -2,7 +2,6 @@ package com.x8bit.bitwarden.ui.platform.components.stepper import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.input.KeyboardType @@ -12,6 +11,7 @@ import com.x8bit.bitwarden.ui.platform.base.util.orNullIfBlank import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextFieldWithActions import com.x8bit.bitwarden.ui.platform.components.icon.BitwardenIconButtonWithResource import com.x8bit.bitwarden.ui.platform.components.model.IconResource +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Displays a stepper that allows the user to increment and decrement an int value. @@ -58,7 +58,7 @@ fun BitwardenStepper( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_minus), + iconPainter = rememberVectorPainter(id = R.drawable.ic_minus), contentDescription = "\u2212", ), onClick = { @@ -76,7 +76,7 @@ fun BitwardenStepper( ) BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_plus), + iconPainter = rememberVectorPainter(id = R.drawable.ic_plus), contentDescription = "+", ), onClick = { diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/toggle/BitwardenSwitchWithActions.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/toggle/BitwardenSwitchWithActions.kt index a9c0c3f66..6e86c4c69 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/toggle/BitwardenSwitchWithActions.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/toggle/BitwardenSwitchWithActions.kt @@ -14,7 +14,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.toggleableState @@ -22,6 +21,7 @@ import androidx.compose.ui.state.ToggleableState import androidx.compose.ui.tooling.preview.Preview import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.components.row.BitwardenRowOfActions +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -79,7 +79,7 @@ private fun BitwardenSwitchWithActions_preview() { actions = { IconButton(onClick = {}) { Icon( - painter = painterResource(id = R.drawable.ic_tooltip), + painter = rememberVectorPainter(id = R.drawable.ic_tooltip), tint = MaterialTheme.colorScheme.onSurface, contentDescription = stringResource( id = R.string.master_password_re_prompt_help, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/util/RememberVectorPainter.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/util/RememberVectorPainter.kt new file mode 100644 index 000000000..be5a03e3d --- /dev/null +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/util/RememberVectorPainter.kt @@ -0,0 +1,19 @@ +package com.x8bit.bitwarden.ui.platform.components.util + +import androidx.annotation.DrawableRes +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.VectorPainter +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.res.vectorResource + +/** + * Returns a [VectorPainter] built from the given [id] to circumvent issues with painter resources + * recomposing unnecessarily. + */ +@Composable +fun rememberVectorPainter( + @DrawableRes id: Int, +): VectorPainter = rememberVectorPainter( + image = ImageVector.vectorResource(id), +) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchEmptyContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchEmptyContent.kt index a5f8c3869..797d0cd92 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchEmptyContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchEmptyContent.kt @@ -15,11 +15,11 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * The empty state for the search screen. @@ -35,7 +35,7 @@ fun SearchEmptyContent( horizontalAlignment = Alignment.CenterHorizontally, ) { Icon( - painter = painterResource(id = R.drawable.ic_search), + painter = rememberVectorPainter(id = R.drawable.ic_search), contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt index cfd35a0cb..d124e308d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt @@ -16,7 +16,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -35,6 +34,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.search.handlers.SearchHandlers import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager @@ -88,7 +88,7 @@ fun SearchScreen( onSearchTermChange = searchHandlers.onSearchTermChange, scrollBehavior = scrollBehavior, navigationIcon = NavigationIcon( - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = searchHandlers.onBackClick, ), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsScreen.kt index 2cb4fc056..a10bede36 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsScreen.kt @@ -25,7 +25,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.tooling.preview.Preview @@ -38,6 +37,7 @@ import com.x8bit.bitwarden.ui.platform.base.util.bottomDivider import com.x8bit.bitwarden.ui.platform.base.util.mirrorIfRtl import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenMediumTopAppBar import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -128,7 +128,7 @@ private fun SettingsRow( color = MaterialTheme.colorScheme.onSurface, ) Icon( - painter = painterResource(id = R.drawable.ic_navigate_next), + painter = rememberVectorPainter(id = R.drawable.ic_navigate_next), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, modifier = Modifier diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt index e08a56211..5d38cb2b0 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt @@ -30,7 +30,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.semantics @@ -48,6 +47,7 @@ import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.row.BitwardenExternalLinkRow import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenWideSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme @@ -106,7 +106,7 @@ fun AboutScreen( BitwardenTopAppBar( title = stringResource(id = R.string.about), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(AboutAction.BackClick) } @@ -274,7 +274,7 @@ private fun CopyRow( color = MaterialTheme.colorScheme.onSurface, ) Icon( - painter = painterResource(id = R.drawable.ic_copy), + painter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt index 33d97656b..10623e598 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt @@ -28,7 +28,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -57,6 +56,7 @@ import com.x8bit.bitwarden.ui.platform.components.row.BitwardenTextRow import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.text.BitwardenPolicyWarningText import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenWideSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalBiometricsManager import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.composition.LocalPermissionsManager @@ -141,7 +141,7 @@ fun AccountSecurityScreen( BitwardenTopAppBar( title = stringResource(id = R.string.account_security), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(AccountSecurityAction.BackClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccount/DeleteAccountScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccount/DeleteAccountScreen.kt index bde7ed5f7..27a834643 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccount/DeleteAccountScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccount/DeleteAccountScreen.kt @@ -27,7 +27,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -44,6 +43,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenMasterPasswordDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Displays the delete account screen. @@ -112,7 +112,7 @@ fun DeleteAccountScreen( BitwardenTopAppBar( title = stringResource(id = R.string.delete_account), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(DeleteAccountAction.CloseClick) } @@ -129,7 +129,7 @@ fun DeleteAccountScreen( ) { Spacer(modifier = Modifier.height(8.dp)) Icon( - painter = painterResource(id = R.drawable.ic_warning), + painter = rememberVectorPainter(id = R.drawable.ic_warning), contentDescription = null, tint = MaterialTheme.colorScheme.error, modifier = Modifier.padding(horizontal = 16.dp), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreen.kt index 846ef1720..9b77b9d46 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreen.kt @@ -14,7 +14,6 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.hilt.navigation.compose.hiltViewModel import com.x8bit.bitwarden.R @@ -25,6 +24,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Displays the delete account confirmation screen. @@ -116,7 +116,7 @@ private fun DeleteAccountConfirmationScaffold( BitwardenTopAppBar( title = stringResource(id = R.string.verification_code), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = onCloseClick, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt index 829c50b1e..9fcca9405 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt @@ -24,7 +24,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag @@ -42,6 +41,7 @@ import com.x8bit.bitwarden.ui.platform.components.content.BitwardenLoadingConten import com.x8bit.bitwarden.ui.platform.components.dialog.BasicDialogState import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalExitManager import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager import com.x8bit.bitwarden.ui.platform.theme.LocalNonMaterialColors @@ -100,7 +100,7 @@ fun LoginApprovalScreen( BitwardenTopAppBar( title = stringResource(id = R.string.log_in_requested), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(LoginApprovalAction.CloseClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt index c59014831..4e3eb9746 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt @@ -38,7 +38,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextAlign @@ -54,6 +53,7 @@ import com.x8bit.bitwarden.ui.platform.components.content.BitwardenErrorContent import com.x8bit.bitwarden.ui.platform.components.content.BitwardenLoadingContent import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.LocalNonMaterialColors import com.x8bit.bitwarden.ui.platform.theme.LocalNonMaterialTypography @@ -112,7 +112,7 @@ fun PendingRequestsScreen( BitwardenTopAppBar( title = stringResource(id = R.string.pending_log_in_requests), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(PendingRequestsAction.CloseClick) } @@ -221,7 +221,7 @@ private fun PendingRequestsContent( BitwardenFilledTonalButtonWithIcon( label = stringResource(id = R.string.decline_all_requests), - icon = painterResource(id = R.drawable.ic_trash), + icon = rememberVectorPainter(id = R.drawable.ic_trash), onClick = { shouldShowDeclineAllRequestsConfirm = true }, modifier = Modifier .testTag("DeclineAllRequestsButton") @@ -318,7 +318,7 @@ private fun PendingRequestsEmpty( Spacer(modifier = Modifier.height(16.dp)) Spacer(modifier = Modifier.weight(1f)) Image( - painter = painterResource(id = R.drawable.ic_pending_requests), + painter = rememberVectorPainter(id = R.drawable.ic_pending_requests), contentDescription = null, modifier = Modifier .padding(vertical = 16.dp) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreen.kt index 6820745f4..62dfc4f94 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreen.kt @@ -20,7 +20,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -37,6 +36,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.row.BitwardenSelectionR import com.x8bit.bitwarden.ui.platform.components.row.BitwardenTextRow import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenWideSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.feature.settings.appearance.model.AppLanguage import com.x8bit.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme import com.x8bit.bitwarden.ui.platform.util.displayLabel @@ -67,7 +67,7 @@ fun AppearanceScreen( BitwardenTopAppBar( title = stringResource(id = R.string.appearance), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(AppearanceAction.BackClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreen.kt index 49dd4d76e..f3eb7efde 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreen.kt @@ -25,7 +25,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -43,6 +42,7 @@ import com.x8bit.bitwarden.ui.platform.components.header.BitwardenListHeaderText import com.x8bit.bitwarden.ui.platform.components.row.BitwardenTextRow import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenWideSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.util.displayLabel import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager @@ -102,7 +102,7 @@ fun AutoFillScreen( BitwardenTopAppBar( title = stringResource(id = R.string.autofill), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(AutoFillAction.BackClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/BlockAutoFillScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/BlockAutoFillScreen.kt index 2a3b04283..905749321 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/BlockAutoFillScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/BlockAutoFillScreen.kt @@ -35,7 +35,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextAlign @@ -47,6 +46,7 @@ import com.x8bit.bitwarden.ui.platform.base.util.EventsEffect import com.x8bit.bitwarden.ui.platform.base.util.bottomDivider import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Displays the block auto-fill screen. @@ -120,7 +120,7 @@ fun BlockAutoFillScreen( BitwardenTopAppBar( title = stringResource(id = R.string.block_auto_fill), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(BlockAutoFillAction.BackClick) } @@ -141,7 +141,7 @@ fun BlockAutoFillScreen( modifier = Modifier.testTag("AddItemButton"), ) { Icon( - painter = painterResource(id = R.drawable.ic_plus), + painter = rememberVectorPainter(id = R.drawable.ic_plus), contentDescription = stringResource(id = R.string.add_item), tint = MaterialTheme.colorScheme.onPrimaryContainer, ) @@ -224,7 +224,7 @@ private fun BlockAutoFillNoItems( ) { Box(contentAlignment = Alignment.Center) { Icon( - painter = painterResource( + painter = rememberVectorPainter( id = R.drawable.ic_blocked_uri_background, ), contentDescription = null, @@ -232,7 +232,7 @@ private fun BlockAutoFillNoItems( ) Icon( - painter = painterResource( + painter = rememberVectorPainter( id = R.drawable.ic_blocked_uri_foreground, ), contentDescription = null, @@ -300,7 +300,7 @@ private fun BlockAutoFillListItem( color = MaterialTheme.colorScheme.onSurface, ) Icon( - painter = painterResource(id = R.drawable.ic_edit_alt), + painter = rememberVectorPainter(id = R.drawable.ic_edit_alt), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, modifier = Modifier.size(24.dp), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt index bdb32a7b3..f09344ecd 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt @@ -27,7 +27,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.input.KeyboardType @@ -49,6 +48,7 @@ import com.x8bit.bitwarden.ui.platform.components.dropdown.BitwardenMultiSelectB import com.x8bit.bitwarden.ui.platform.components.field.BitwardenPasswordField import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.text.BitwardenPolicyWarningText +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.settings.exportvault.model.ExportVaultFormat import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager @@ -156,7 +156,7 @@ fun ExportVaultScreen( BitwardenTopAppBar( title = stringResource(id = R.string.export_vault), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(ExportVaultAction.CloseButtonClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/FoldersScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/FoldersScreen.kt index 17bff9297..c161662ff 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/FoldersScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/FoldersScreen.kt @@ -27,7 +27,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextAlign @@ -41,6 +40,7 @@ import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.content.BitwardenErrorContent import com.x8bit.bitwarden.ui.platform.components.content.BitwardenLoadingContent import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.feature.settings.folders.model.FolderDisplayItem /** @@ -79,7 +79,7 @@ fun FoldersScreen( BitwardenTopAppBar( title = stringResource(id = R.string.folders), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(FoldersAction.CloseButtonClick) } @@ -97,7 +97,7 @@ fun FoldersScreen( .navigationBarsPadding(), ) { Icon( - painter = painterResource(id = R.drawable.ic_plus), + painter = rememberVectorPainter(id = R.drawable.ic_plus), contentDescription = stringResource(id = R.string.add_item), tint = MaterialTheme.colorScheme.onPrimaryContainer, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/addedit/FolderAddEditScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/addedit/FolderAddEditScreen.kt index b58e18afc..dc3a52a9e 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/addedit/FolderAddEditScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/addedit/FolderAddEditScreen.kt @@ -19,7 +19,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -41,6 +40,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialo import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextField import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import kotlinx.collections.immutable.persistentListOf /** @@ -99,7 +99,7 @@ fun FolderAddEditScreen( BitwardenTopAppBar( title = state.screenDisplayName.invoke(), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(FolderAddEditAction.CloseClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherScreen.kt index f609823fd..d9e2eaac7 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherScreen.kt @@ -25,7 +25,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -44,6 +43,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.row.BitwardenSelectionR import com.x8bit.bitwarden.ui.platform.components.row.BitwardenTextRow import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenWideSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Displays the other screen. @@ -75,7 +75,7 @@ fun OtherScreen( BitwardenTopAppBar( title = stringResource(id = R.string.other), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(OtherAction.BackClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultSettingsScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultSettingsScreen.kt index d0f10fa15..35b66d2b9 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultSettingsScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultSettingsScreen.kt @@ -16,7 +16,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.core.net.toUri @@ -28,6 +27,7 @@ import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.row.BitwardenExternalLinkRow import com.x8bit.bitwarden.ui.platform.components.row.BitwardenTextRow import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager @@ -71,7 +71,7 @@ fun VaultSettingsScreen( BitwardenTopAppBar( title = stringResource(id = R.string.vault), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(VaultSettingsAction.BackClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/vaultunlockednavbar/VaultUnlockedNavBarScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/vaultunlockednavbar/VaultUnlockedNavBarScreen.kt index ad6f2b16e..b6ed50359 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/vaultunlockednavbar/VaultUnlockedNavBarScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/vaultunlockednavbar/VaultUnlockedNavBarScreen.kt @@ -29,7 +29,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextOverflow @@ -49,6 +48,7 @@ import com.x8bit.bitwarden.ui.platform.base.util.max import com.x8bit.bitwarden.ui.platform.base.util.toDp import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.scrim.BitwardenAnimatedScrim +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType import com.x8bit.bitwarden.ui.platform.feature.settings.SETTINGS_GRAPH_ROUTE import com.x8bit.bitwarden.ui.platform.feature.settings.navigateToSettingsGraph @@ -282,7 +282,7 @@ private fun VaultBottomAppBar( NavigationBarItem( icon = { Icon( - painter = painterResource( + painter = rememberVectorPainter( id = if (isSelected) { destination.iconResSelected } else { diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreen.kt index 1e0624972..5120a94cf 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreen.kt @@ -40,7 +40,6 @@ import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag @@ -72,6 +71,7 @@ import com.x8bit.bitwarden.ui.platform.components.stepper.BitwardenStepper import com.x8bit.bitwarden.ui.platform.components.text.BitwardenPolicyWarningText import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenWideSwitch import com.x8bit.bitwarden.ui.platform.components.util.nonLetterColorVisualTransformation +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme @@ -276,7 +276,7 @@ private fun ModalAppBar( ) { BitwardenTopAppBar( title = stringResource(id = R.string.generator), - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = onCloseClick, scrollBehavior = scrollBehavior, @@ -395,7 +395,7 @@ private fun GeneratedStringItem( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_copy), + iconPainter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource(id = R.string.copy), ), onClick = onCopyClick, @@ -403,7 +403,7 @@ private fun GeneratedStringItem( ) BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_generator), + iconPainter = rememberVectorPainter(id = R.drawable.ic_generator), contentDescription = stringResource(id = R.string.generate_password), ), onClick = onRegenerateClick, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryListItem.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryListItem.kt index 23b5f047b..04d515cea 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryListItem.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryListItem.kt @@ -18,7 +18,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.tooling.preview.Preview @@ -27,6 +26,7 @@ import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.util.withLineBreaksAtWidth import com.x8bit.bitwarden.ui.platform.base.util.withVisualTransformation import com.x8bit.bitwarden.ui.platform.components.util.nonLetterColorVisualTransformation +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme import com.x8bit.bitwarden.ui.platform.theme.LocalNonMaterialTypography @@ -86,7 +86,7 @@ fun PasswordHistoryListItem( modifier = Modifier.testTag("CopyPasswordValueButton"), ) { Icon( - painter = painterResource(id = R.drawable.ic_copy), + painter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource(id = R.string.copy), ) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryScreen.kt index 0850bb96b..3eef102bc 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryScreen.kt @@ -27,7 +27,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -39,6 +38,7 @@ import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.appbar.action.BitwardenOverflowActionItem import com.x8bit.bitwarden.ui.platform.components.appbar.action.OverflowMenuItemData import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import kotlinx.collections.immutable.persistentListOf /** @@ -73,7 +73,7 @@ fun PasswordHistoryScreen( BitwardenTopAppBar( title = stringResource(id = R.string.password_history), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(PasswordHistoryAction.CloseClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendContent.kt index f2bc8784f..dce19686f 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendContent.kt @@ -10,7 +10,6 @@ import androidx.compose.foundation.lazy.items import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -20,6 +19,7 @@ import com.x8bit.bitwarden.ui.platform.components.header.BitwardenListHeaderText import com.x8bit.bitwarden.ui.platform.components.listitem.BitwardenGroupItem import com.x8bit.bitwarden.ui.platform.components.model.IconData import com.x8bit.bitwarden.ui.platform.components.text.BitwardenPolicyWarningText +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.tools.feature.send.handlers.SendHandlers /** @@ -59,7 +59,7 @@ fun SendContent( BitwardenGroupItem( label = stringResource(id = R.string.type_text), supportingLabel = state.textTypeCount.toString(), - startIcon = painterResource(id = R.drawable.ic_send_text), + startIcon = rememberVectorPainter(id = R.drawable.ic_send_text), onClick = sendHandlers.onTextTypeClick, modifier = Modifier .fillMaxWidth() @@ -72,7 +72,7 @@ fun SendContent( BitwardenGroupItem( label = stringResource(id = R.string.type_file), supportingLabel = state.fileTypeCount.toString(), - startIcon = painterResource(id = R.drawable.ic_send_file), + startIcon = rememberVectorPainter(id = R.drawable.ic_send_file), onClick = sendHandlers.onFileTypeClick, modifier = Modifier .fillMaxWidth() diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendListItem.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendListItem.kt index 4cb037d95..25466decb 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendListItem.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendListItem.kt @@ -7,7 +7,6 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.x8bit.bitwarden.R @@ -17,6 +16,7 @@ import com.x8bit.bitwarden.ui.platform.components.listitem.SelectionItemData import com.x8bit.bitwarden.ui.platform.components.model.IconData import com.x8bit.bitwarden.ui.platform.components.model.IconRes import com.x8bit.bitwarden.ui.platform.components.model.IconResource +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme import com.x8bit.bitwarden.ui.platform.util.persistentListOfNotNull import kotlinx.collections.immutable.toPersistentList @@ -62,7 +62,7 @@ fun SendListItem( trailingLabelIcons = trailingLabelIcons .map { IconResource( - iconPainter = painterResource(it.iconRes), + iconPainter = rememberVectorPainter(it.iconRes), contentDescription = it.contentDescription(), ) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendScreen.kt index 3d924e176..03d1155e7 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendScreen.kt @@ -22,7 +22,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.core.net.toUri @@ -41,6 +40,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager @@ -164,7 +164,7 @@ fun SendScreen( modifier = Modifier.testTag("AddItemButton"), ) { Icon( - painter = painterResource(id = R.drawable.ic_plus), + painter = rememberVectorPainter(id = R.drawable.ic_plus), contentDescription = stringResource(id = R.string.add_item), tint = MaterialTheme.colorScheme.onPrimaryContainer, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendContent.kt index 714f1b10b..6c26324ee 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendContent.kt @@ -30,10 +30,8 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clipToBounds import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.components.button.BitwardenFilledTonalButton @@ -46,6 +44,7 @@ import com.x8bit.bitwarden.ui.platform.components.segment.SegmentedButtonState import com.x8bit.bitwarden.ui.platform.components.stepper.BitwardenStepper import com.x8bit.bitwarden.ui.platform.components.text.BitwardenPolicyWarningText import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenWideSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManager import com.x8bit.bitwarden.ui.platform.theme.LocalNonMaterialTypography import com.x8bit.bitwarden.ui.tools.feature.send.addsend.handlers.AddSendHandlers @@ -314,11 +313,13 @@ private fun AddSendOptions( modifier = Modifier.padding(end = 8.dp), ) Icon( - painter = if (isExpanded) { - painterResource(R.drawable.ic_expand_up) - } else { - painterResource(R.drawable.ic_expand_down) - }, + painter = rememberVectorPainter( + if (isExpanded) { + R.drawable.ic_expand_up + } else { + R.drawable.ic_expand_down + }, + ), contentDescription = null, tint = MaterialTheme.colorScheme.primary, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreen.kt index 42f1a6b75..dea8d8056 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreen.kt @@ -18,7 +18,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.hilt.navigation.compose.hiltViewModel @@ -38,6 +37,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalExitManager import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.composition.LocalPermissionsManager @@ -131,7 +131,7 @@ fun AddSendScreen( BitwardenTopAppBar( title = state.screenDisplayName(), navigationIcon = NavigationIcon( - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(AddSendAction.CloseClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditCardItems.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditCardItems.kt index a30af4981..7f545237c 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditCardItems.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditCardItems.kt @@ -12,7 +12,6 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.input.KeyboardType @@ -24,6 +23,7 @@ import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextField import com.x8bit.bitwarden.ui.platform.components.header.BitwardenListHeaderText import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenSwitchWithActions +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.components.collectionItemsSelector import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCardTypeHandlers import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCommonHandlers @@ -212,7 +212,7 @@ fun LazyListScope.vaultAddEditCardItems( actions = { IconButton(onClick = commonHandlers.onTooltipClick) { Icon( - painter = painterResource(id = R.drawable.ic_tooltip), + painter = rememberVectorPainter(id = R.drawable.ic_tooltip), tint = MaterialTheme.colorScheme.onSurface, contentDescription = stringResource( id = R.string.master_password_re_prompt_help, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditCustomField.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditCustomField.kt index 22cedceb9..666e4834d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditCustomField.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditCustomField.kt @@ -9,7 +9,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import com.x8bit.bitwarden.R @@ -23,6 +22,7 @@ import com.x8bit.bitwarden.ui.platform.components.icon.BitwardenIconButtonWithRe import com.x8bit.bitwarden.ui.platform.components.model.IconResource import com.x8bit.bitwarden.ui.platform.components.row.BitwardenRowOfActions import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenWideSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.feature.addedit.model.CustomFieldAction import com.x8bit.bitwarden.ui.vault.model.VaultLinkedFieldType import kotlinx.collections.immutable.ImmutableList @@ -156,7 +156,7 @@ private fun CustomFieldBoolean( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_settings), + iconPainter = rememberVectorPainter(id = R.drawable.ic_settings), contentDescription = stringResource(id = R.string.edit), ), onClick = onEditValue, @@ -186,7 +186,7 @@ private fun CustomFieldHiddenField( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_settings), + iconPainter = rememberVectorPainter(id = R.drawable.ic_settings), contentDescription = stringResource(id = R.string.edit), ), onClick = onEditValue, @@ -215,7 +215,7 @@ private fun CustomFieldTextField( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_settings), + iconPainter = rememberVectorPainter(id = R.drawable.ic_settings), contentDescription = stringResource(id = R.string.edit), ), onClick = onEditValue, @@ -262,7 +262,7 @@ private fun CustomFieldLinkedField( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_settings), + iconPainter = rememberVectorPainter(id = R.drawable.ic_settings), contentDescription = stringResource(id = R.string.edit), ), onClick = onEditValue, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditIdentityItems.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditIdentityItems.kt index e1e3eb03e..cb87e7704 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditIdentityItems.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditIdentityItems.kt @@ -13,7 +13,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -23,6 +22,7 @@ import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextField import com.x8bit.bitwarden.ui.platform.components.header.BitwardenListHeaderText import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenSwitchWithActions +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.components.collectionItemsSelector import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCommonHandlers import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditIdentityTypeHandlers @@ -329,7 +329,7 @@ fun LazyListScope.vaultAddEditIdentityItems( actions = { IconButton(onClick = commonTypeHandlers.onTooltipClick) { Icon( - painter = painterResource(id = R.drawable.ic_tooltip), + painter = rememberVectorPainter(id = R.drawable.ic_tooltip), tint = MaterialTheme.colorScheme.onSurface, contentDescription = stringResource( id = R.string.master_password_re_prompt_help, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditLoginItems.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditLoginItems.kt index f8a9dec00..d4e38cd81 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditLoginItems.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditLoginItems.kt @@ -16,7 +16,6 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -35,6 +34,7 @@ import com.x8bit.bitwarden.ui.platform.components.icon.BitwardenIconButtonWithRe import com.x8bit.bitwarden.ui.platform.components.model.IconResource import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenSwitchWithActions +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.components.collectionItemsSelector import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCommonHandlers import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditLoginTypeHandlers @@ -119,7 +119,7 @@ fun LazyListScope.vaultAddEditLoginItems( onClick = loginItemTypeHandlers.onClearTotpKeyClick, ) { Icon( - painter = painterResource(id = R.drawable.ic_close), + painter = rememberVectorPainter(id = R.drawable.ic_close), contentDescription = stringResource(id = R.string.delete), ) } @@ -130,7 +130,7 @@ fun LazyListScope.vaultAddEditLoginItems( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_copy), + iconPainter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource(id = R.string.copy_totp), ), onClick = { @@ -139,7 +139,7 @@ fun LazyListScope.vaultAddEditLoginItems( ) BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_camera), + iconPainter = rememberVectorPainter(id = R.drawable.ic_camera), contentDescription = stringResource(id = R.string.camera), ), onClick = onTotpSetupClick, @@ -152,7 +152,7 @@ fun LazyListScope.vaultAddEditLoginItems( Spacer(modifier = Modifier.height(16.dp)) BitwardenFilledTonalButtonWithIcon( label = stringResource(id = R.string.setup_totp), - icon = painterResource(id = R.drawable.ic_light_bulb), + icon = rememberVectorPainter(id = R.drawable.ic_light_bulb), onClick = onTotpSetupClick, modifier = Modifier .testTag("SetupTotpButton") @@ -253,7 +253,7 @@ fun LazyListScope.vaultAddEditLoginItems( actions = { IconButton(onClick = commonActionHandler.onTooltipClick) { Icon( - painter = painterResource(id = R.drawable.ic_tooltip), + painter = rememberVectorPainter(id = R.drawable.ic_tooltip), tint = MaterialTheme.colorScheme.onSurface, contentDescription = stringResource( id = R.string.master_password_re_prompt_help, @@ -385,7 +385,7 @@ private fun UsernameRow( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_generator), + iconPainter = rememberVectorPainter(id = R.drawable.ic_generator), contentDescription = stringResource(id = R.string.generate_username), ), onClick = { @@ -447,7 +447,7 @@ private fun PasswordRow( ) { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_check_mark), + iconPainter = rememberVectorPainter(id = R.drawable.ic_check_mark), contentDescription = stringResource(id = R.string.check_password), ), onClick = loginItemTypeHandlers.onPasswordCheckerClick, @@ -456,7 +456,7 @@ private fun PasswordRow( ) BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_generator), + iconPainter = rememberVectorPainter(id = R.drawable.ic_generator), contentDescription = stringResource(id = R.string.generate_password), ), onClick = { diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt index dda6eba10..26b029e69 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt @@ -17,7 +17,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.core.net.toUri @@ -39,6 +38,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalExitManager import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.composition.LocalPermissionsManager @@ -168,7 +168,7 @@ fun VaultAddEditScreen( BitwardenTopAppBar( title = state.screenDisplayName(), navigationIcon = NavigationIcon( - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(VaultAddEditAction.Common.CloseClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditSecureNotesItems.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditSecureNotesItems.kt index 0eafd3bc3..f26a1189b 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditSecureNotesItems.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditSecureNotesItems.kt @@ -11,7 +11,6 @@ import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -21,6 +20,7 @@ import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextField import com.x8bit.bitwarden.ui.platform.components.header.BitwardenListHeaderText import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenSwitchWithActions +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.components.collectionItemsSelector import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCommonHandlers import com.x8bit.bitwarden.ui.vault.feature.addedit.model.CustomFieldType @@ -108,7 +108,7 @@ fun LazyListScope.vaultAddEditSecureNotesItems( actions = { IconButton(onClick = commonTypeHandlers.onTooltipClick) { Icon( - painter = painterResource(id = R.drawable.ic_tooltip), + painter = rememberVectorPainter(id = R.drawable.ic_tooltip), tint = MaterialTheme.colorScheme.onSurface, contentDescription = stringResource( id = R.string.master_password_re_prompt_help, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditUriItem.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditUriItem.kt index 21ad86bfd..71dc0aa81 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditUriItem.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditUriItem.kt @@ -8,7 +8,6 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -19,6 +18,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.row.BitwardenSelectionR import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextFieldWithActions import com.x8bit.bitwarden.ui.platform.components.icon.BitwardenIconButtonWithResource import com.x8bit.bitwarden.ui.platform.components.model.IconResource +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.feature.addedit.model.UriItem import com.x8bit.bitwarden.ui.vault.feature.addedit.model.UriMatchDisplayType import com.x8bit.bitwarden.ui.vault.feature.addedit.util.toDisplayMatchType @@ -44,7 +44,7 @@ fun VaultAddEditUriItem( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_settings), + iconPainter = rememberVectorPainter(id = R.drawable.ic_settings), contentDescription = stringResource(id = R.string.options), ), onClick = { shouldShowOptionsDialog = true }, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsContent.kt index ff16dfb4b..fdc3efc4c 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsContent.kt @@ -23,7 +23,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextAlign @@ -34,6 +33,7 @@ import com.x8bit.bitwarden.ui.platform.base.util.bottomDivider import com.x8bit.bitwarden.ui.platform.components.button.BitwardenFilledTonalButton import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog import com.x8bit.bitwarden.ui.platform.components.header.BitwardenListHeaderText +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.feature.attachments.handlers.AttachmentsHandlers /** @@ -185,7 +185,7 @@ private fun AttachmentListEntry( modifier = Modifier, ) { Icon( - painter = painterResource(id = R.drawable.ic_trash), + painter = rememberVectorPainter(id = R.drawable.ic_trash), contentDescription = stringResource(id = R.string.delete), tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(24.dp), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreen.kt index ab4b8add5..22f05d610 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreen.kt @@ -13,7 +13,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.hilt.navigation.compose.hiltViewModel @@ -30,6 +29,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.vault.feature.attachments.handlers.AttachmentsHandlers @@ -86,7 +86,7 @@ fun AttachmentsScreen( title = stringResource(id = R.string.attachments), scrollBehavior = scrollBehavior, navigationIcon = NavigationIcon( - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = attachmentsHandlers.onBackClick, ), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemAttachmentContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemAttachmentContent.kt index 81442d0db..6dc91a2d6 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemAttachmentContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemAttachmentContent.kt @@ -18,7 +18,6 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -26,6 +25,7 @@ import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.util.bottomDivider import com.x8bit.bitwarden.ui.platform.components.button.BitwardenTextButton import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Attachment UI common for all item types. @@ -85,7 +85,7 @@ fun AttachmentItemContent( modifier = Modifier, ) { Icon( - painter = painterResource(id = R.drawable.ic_download), + painter = rememberVectorPainter(id = R.drawable.ic_download), contentDescription = stringResource(id = R.string.download), tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(24.dp), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemCardContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemCardContent.kt index 267da52ff..f29c06b69 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemCardContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemCardContent.kt @@ -10,7 +10,6 @@ import androidx.compose.foundation.lazy.items import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -20,6 +19,7 @@ import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextField import com.x8bit.bitwarden.ui.platform.components.header.BitwardenListHeaderText import com.x8bit.bitwarden.ui.platform.components.icon.BitwardenIconButtonWithResource import com.x8bit.bitwarden.ui.platform.components.model.IconResource +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.feature.item.handlers.VaultCardItemTypeHandlers import com.x8bit.bitwarden.ui.vault.feature.item.handlers.VaultCommonItemTypeHandlers import com.x8bit.bitwarden.ui.vault.model.VaultCardBrand @@ -88,7 +88,7 @@ fun VaultItemCardContent( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_copy), + iconPainter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource(id = R.string.copy_number), ), onClick = vaultCardItemTypeHandlers.onCopyNumberClick, @@ -150,7 +150,7 @@ fun VaultItemCardContent( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_copy), + iconPainter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource( id = R.string.copy_security_code, ), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemCustomField.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemCustomField.kt index b0ddead11..042c349cc 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemCustomField.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemCustomField.kt @@ -2,7 +2,6 @@ package com.x8bit.bitwarden.ui.vault.feature.item import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.components.field.BitwardenPasswordFieldWithActions @@ -11,6 +10,7 @@ import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextFieldWithAc import com.x8bit.bitwarden.ui.platform.components.icon.BitwardenIconButtonWithResource import com.x8bit.bitwarden.ui.platform.components.model.IconResource import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenWideSwitch +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter /** * Custom Field UI common for all item types. @@ -49,7 +49,7 @@ fun CustomField( if (customField.isCopyable) { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_copy), + iconPainter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource(id = R.string.copy), ), onClick = { @@ -66,7 +66,7 @@ fun CustomField( label = customField.name, value = customField.vaultLinkedFieldType.label.invoke(), leadingIconResource = IconResource( - iconPainter = painterResource(id = R.drawable.ic_linked), + iconPainter = rememberVectorPainter(id = R.drawable.ic_linked), contentDescription = stringResource(id = R.string.field_type_linked), ), onValueChange = { }, @@ -88,7 +88,7 @@ fun CustomField( if (customField.isCopyable) { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_copy), + iconPainter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource(id = R.string.copy), ), onClick = { onCopyCustomTextField(customField.value) }, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemLoginContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemLoginContent.kt index 06c374602..98063209a 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemLoginContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemLoginContent.kt @@ -14,7 +14,6 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag @@ -28,6 +27,7 @@ import com.x8bit.bitwarden.ui.platform.components.header.BitwardenListHeaderText import com.x8bit.bitwarden.ui.platform.components.icon.BitwardenIconButtonWithResource import com.x8bit.bitwarden.ui.platform.components.indicator.BitwardenCircularCountdownIndicator import com.x8bit.bitwarden.ui.platform.components.model.IconResource +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.LocalNonMaterialTypography import com.x8bit.bitwarden.ui.vault.feature.item.handlers.VaultCommonItemTypeHandlers import com.x8bit.bitwarden.ui.vault.feature.item.handlers.VaultLoginItemTypeHandlers @@ -311,7 +311,7 @@ private fun PasswordField( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_check_mark), + iconPainter = rememberVectorPainter(id = R.drawable.ic_check_mark), contentDescription = stringResource( id = R.string.check_known_data_breaches_for_this_password, ), @@ -321,7 +321,7 @@ private fun PasswordField( ) BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_copy), + iconPainter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource(id = R.string.copy_password), ), onClick = onCopyPasswordClick, @@ -389,7 +389,7 @@ private fun TotpField( ) BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_copy), + iconPainter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource(id = R.string.copy_totp), ), onClick = onCopyTotpClick, @@ -429,7 +429,7 @@ private fun UriField( if (uriData.isLaunchable) { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_launch), + iconPainter = rememberVectorPainter(id = R.drawable.ic_launch), contentDescription = stringResource(id = R.string.launch), ), onClick = { onLaunchUriClick(uriData.uri) }, @@ -439,7 +439,7 @@ private fun UriField( if (uriData.isCopyable) { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_copy), + iconPainter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource(id = R.string.copy), ), onClick = { onCopyUriClick(uriData.uri) }, @@ -467,7 +467,7 @@ private fun UsernameField( actions = { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_copy), + iconPainter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource(id = R.string.copy_username), ), onClick = onCopyUsernameClick, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt index 007b2d246..8db21ca81 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt @@ -23,7 +23,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -45,6 +44,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenMasterPassword import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.util.persistentListOfNotNull @@ -181,7 +181,7 @@ fun VaultItemScreen( BitwardenTopAppBar( title = stringResource(id = R.string.view_item), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(VaultItemAction.Common.CloseClick) } @@ -266,7 +266,7 @@ fun VaultItemScreen( .padding(bottom = 16.dp), ) { Icon( - painter = painterResource(id = R.drawable.ic_edit), + painter = rememberVectorPainter(id = R.drawable.ic_edit), contentDescription = stringResource(id = R.string.edit_item), ) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingContent.kt index 928714f2e..cdfdf7f10 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingContent.kt @@ -16,7 +16,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R @@ -28,6 +27,7 @@ import com.x8bit.bitwarden.ui.platform.components.listitem.BitwardenListItem import com.x8bit.bitwarden.ui.platform.components.listitem.SelectionItemData import com.x8bit.bitwarden.ui.platform.components.model.toIconResources import com.x8bit.bitwarden.ui.platform.components.text.BitwardenPolicyWarningText +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.feature.itemlisting.model.ListingItemOverflowAction import kotlinx.collections.immutable.toPersistentList @@ -129,7 +129,7 @@ fun VaultItemListingContent( items(state.displayCollectionList) { collection -> BitwardenGroupItem( - startIcon = painterResource(id = R.drawable.ic_collection), + startIcon = rememberVectorPainter(id = R.drawable.ic_collection), label = collection.name, supportingLabel = collection.count.toString(), onClick = { collectionClick(collection.id) }, @@ -158,7 +158,7 @@ fun VaultItemListingContent( items(state.displayFolderList) { folder -> BitwardenGroupItem( - startIcon = painterResource(id = R.drawable.ic_folder), + startIcon = rememberVectorPainter(id = R.drawable.ic_folder), label = folder.name, supportingLabel = folder.count.toString(), onClick = { folderClick(folder.id) }, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt index 25a17e1ee..895b07eeb 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt @@ -23,7 +23,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.core.net.toUri @@ -44,6 +43,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager @@ -191,7 +191,7 @@ private fun VaultItemListingScaffold( title = state.appBarTitle(), scrollBehavior = scrollBehavior, navigationIcon = NavigationIcon( - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = vaultItemListingHandlers.backClick, ) @@ -233,7 +233,7 @@ private fun VaultItemListingScaffold( modifier = Modifier.testTag("AddItemButton"), ) { Icon( - painter = painterResource(id = R.drawable.ic_plus), + painter = rememberVectorPainter(id = R.drawable.ic_plus), contentDescription = stringResource(id = R.string.add_item), ) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreen.kt index d58538d5c..372459490 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreen.kt @@ -25,7 +25,6 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel @@ -38,6 +37,7 @@ import com.x8bit.bitwarden.ui.platform.components.button.BitwardenFilledTonalBut import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog import com.x8bit.bitwarden.ui.platform.components.field.BitwardenTextField import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.composition.LocalPermissionsManager import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager @@ -113,7 +113,7 @@ fun ManualCodeEntryScreen( topBar = { BitwardenTopAppBar( title = stringResource(id = R.string.authenticator_key_scanner), - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(ManualCodeEntryAction.CloseClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/movetoorganization/VaultMoveToOrganizationScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/movetoorganization/VaultMoveToOrganizationScreen.kt index 42b43823e..720552501 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/movetoorganization/VaultMoveToOrganizationScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/movetoorganization/VaultMoveToOrganizationScreen.kt @@ -14,7 +14,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.hilt.navigation.compose.hiltViewModel @@ -31,6 +30,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.model.VaultCollection /** @@ -113,7 +113,7 @@ private fun VaultMoveToOrganizationScaffold( BitwardenTopAppBar( title = state.appBarText(), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = closeClick, actions = { diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreen.kt index 5f274f771..a49246c1b 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreen.kt @@ -44,7 +44,6 @@ import androidx.compose.ui.graphics.nativeCanvas import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLifecycleOwner -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.CustomAccessibilityAction import androidx.compose.ui.semantics.semantics @@ -60,6 +59,7 @@ import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.util.EventsEffect import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.LocalNonMaterialColors import com.x8bit.bitwarden.ui.platform.theme.clickableSpanStyle import com.x8bit.bitwarden.ui.vault.feature.qrcodescan.util.QrCodeAnalyzer @@ -115,7 +115,7 @@ fun QrCodeScanScreen( topBar = { BitwardenTopAppBar( title = stringResource(id = R.string.scan_qr_code), - navigationIcon = painterResource(id = R.drawable.ic_close), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_close), navigationIconContentDescription = stringResource(id = R.string.close), onNavigationIconClick = remember(viewModel) { { viewModel.trySendAction(QrCodeScanAction.CloseClick) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultContent.kt index e39f8f2da..9a31040f1 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultContent.kt @@ -11,7 +11,6 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -19,6 +18,7 @@ import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.components.header.BitwardenListHeaderTextWithSupportLabel import com.x8bit.bitwarden.ui.platform.components.listitem.BitwardenGroupItem import com.x8bit.bitwarden.ui.platform.components.model.toIconResources +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.feature.itemlisting.model.ListingItemOverflowAction import com.x8bit.bitwarden.ui.vault.feature.vault.handlers.VaultHandlers import kotlinx.collections.immutable.toPersistentList @@ -50,7 +50,7 @@ fun VaultContent( item { BitwardenGroupItem( - startIcon = painterResource(id = R.drawable.access_time), + startIcon = rememberVectorPainter(id = R.drawable.access_time), label = stringResource(id = R.string.verification_codes), supportingLabel = state.totpItemsCount.toString(), onClick = vaultHandlers.verificationCodesClick, @@ -138,7 +138,7 @@ fun VaultContent( item { BitwardenGroupItem( - startIcon = painterResource(id = R.drawable.ic_login_item), + startIcon = rememberVectorPainter(id = R.drawable.ic_login_item), startIconTestTag = "LoginCipherIcon", label = stringResource(id = R.string.type_login), supportingLabel = state.loginItemsCount.toString(), @@ -153,7 +153,7 @@ fun VaultContent( item { BitwardenGroupItem( - startIcon = painterResource(id = R.drawable.ic_card_item), + startIcon = rememberVectorPainter(id = R.drawable.ic_card_item), startIconTestTag = "CardCipherIcon", label = stringResource(id = R.string.type_card), supportingLabel = state.cardItemsCount.toString(), @@ -168,7 +168,7 @@ fun VaultContent( item { BitwardenGroupItem( - startIcon = painterResource(id = R.drawable.ic_identity_item), + startIcon = rememberVectorPainter(id = R.drawable.ic_identity_item), startIconTestTag = "IdentityCipherIcon", label = stringResource(id = R.string.type_identity), supportingLabel = state.identityItemsCount.toString(), @@ -183,7 +183,7 @@ fun VaultContent( item { BitwardenGroupItem( - startIcon = painterResource(id = R.drawable.ic_secure_note_item), + startIcon = rememberVectorPainter(id = R.drawable.ic_secure_note_item), startIconTestTag = "SecureNoteCipherIcon", label = stringResource(id = R.string.type_secure_note), supportingLabel = state.secureNoteItemsCount.toString(), @@ -223,7 +223,7 @@ fun VaultContent( items(state.folderItems) { folder -> BitwardenGroupItem( - startIcon = painterResource(id = R.drawable.ic_folder), + startIcon = rememberVectorPainter(id = R.drawable.ic_folder), label = folder.name(), supportingLabel = folder.itemCount.toString(), onClick = { vaultHandlers.folderClick(folder) }, @@ -308,7 +308,7 @@ fun VaultContent( items(state.collectionItems) { collection -> BitwardenGroupItem( - startIcon = painterResource(id = R.drawable.ic_collection), + startIcon = rememberVectorPainter(id = R.drawable.ic_collection), label = collection.name, supportingLabel = collection.itemCount.toString(), onClick = { vaultHandlers.collectionClick(collection) }, @@ -347,7 +347,7 @@ fun VaultContent( item { BitwardenGroupItem( - startIcon = painterResource(id = R.drawable.ic_trash), + startIcon = rememberVectorPainter(id = R.drawable.ic_trash), label = stringResource(id = R.string.trash), supportingLabel = state.trashItemsCount.toString(), onClick = vaultHandlers.trashClick, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultFilter.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultFilter.kt index b60ba3968..e74b69e4c 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultFilter.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultFilter.kt @@ -18,7 +18,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -27,6 +26,7 @@ import com.x8bit.bitwarden.ui.platform.base.util.bottomDivider import com.x8bit.bitwarden.ui.platform.base.util.scrolledContainerBackground import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenSelectionDialog import com.x8bit.bitwarden.ui.platform.components.dialog.row.BitwardenSelectionRow +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.feature.vault.model.VaultFilterType import kotlinx.collections.immutable.ImmutableList @@ -98,7 +98,7 @@ fun VaultFilter( modifier = Modifier.testTag("OpenOrgFilter"), ) { Icon( - painter = painterResource(id = R.drawable.ic_more_horizontal), + painter = rememberVectorPainter(id = R.drawable.ic_more_horizontal), contentDescription = stringResource(id = R.string.filter_by_vault), tint = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt index a4b3455eb..bce77c3ec 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt @@ -29,7 +29,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp @@ -53,6 +52,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenMasterPassword import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.composition.LocalExitManager import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType @@ -257,7 +257,7 @@ private fun VaultScreenScaffold( modifier = Modifier.testTag("AddItemButton"), ) { Icon( - painter = painterResource(id = R.drawable.ic_plus), + painter = rememberVectorPainter(id = R.drawable.ic_plus), contentDescription = stringResource(id = R.string.add_item), tint = MaterialTheme.colorScheme.onPrimaryContainer, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeItem.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeItem.kt index f4ae55ac6..f256cd9ab 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeItem.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeItem.kt @@ -17,7 +17,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview @@ -26,6 +25,7 @@ import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.components.icon.BitwardenIcon import com.x8bit.bitwarden.ui.platform.components.indicator.BitwardenCircularCountdownIndicator import com.x8bit.bitwarden.ui.platform.components.model.IconData +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme /** @@ -113,7 +113,7 @@ fun VaultVerificationCodeItem( onClick = onCopyClick, ) { Icon( - painter = painterResource(id = R.drawable.ic_copy), + painter = rememberVectorPainter(id = R.drawable.ic_copy), contentDescription = stringResource(id = R.string.copy), tint = MaterialTheme.colorScheme.primary, modifier = Modifier.size(24.dp), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeScreen.kt index 6063c9bd5..46d2ce336 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeScreen.kt @@ -16,7 +16,6 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel @@ -32,6 +31,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.LoadingDialogState import com.x8bit.bitwarden.ui.platform.components.header.BitwardenListHeaderTextWithSupportLabel import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold +import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.vault.feature.verificationcode.handlers.VerificationCodeHandlers import kotlinx.collections.immutable.persistentListOf @@ -82,7 +82,7 @@ fun VerificationCodeScreen( BitwardenTopAppBar( title = stringResource(id = R.string.verification_codes), scrollBehavior = scrollBehavior, - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = rememberVectorPainter(id = R.drawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = verificationCodeHandler.backClick, actions = {