diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/auth/unlock/UnlockScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/auth/unlock/UnlockScreen.kt index f44edf9640..f088cdf0f2 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/auth/unlock/UnlockScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/auth/unlock/UnlockScreen.kt @@ -37,6 +37,7 @@ import com.bitwarden.authenticator.ui.platform.components.scaffold.BitwardenScaf import com.bitwarden.authenticator.ui.platform.composition.LocalBiometricsManager import com.bitwarden.authenticator.ui.platform.manager.biometrics.BiometricsManager import com.bitwarden.ui.platform.base.util.EventsEffect +import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.util.asText /** @@ -131,7 +132,7 @@ fun UnlockScreen( .height(74.dp) .fillMaxWidth(), colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.primary), - painter = painterResource(id = R.drawable.ic_logo_horizontal), + painter = painterResource(id = BitwardenDrawable.ic_logo_horizontal), contentDescription = stringResource(R.string.bitwarden_authenticator), ) Spacer(modifier = Modifier.height(32.dp)) diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/edititem/EditItemScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/edititem/EditItemScreen.kt index 8ff3053d82..2ff9670548 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/edititem/EditItemScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/edititem/EditItemScreen.kt @@ -1,6 +1,7 @@ package com.bitwarden.authenticator.ui.authenticator.feature.edititem import android.widget.Toast +import androidx.compose.animation.core.animateFloatAsState import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Row @@ -16,6 +17,7 @@ import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FabPosition +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.TopAppBarDefaults @@ -27,6 +29,7 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.rotate import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag @@ -60,10 +63,8 @@ import com.bitwarden.authenticator.ui.platform.components.stepper.BitwardenStepp import com.bitwarden.authenticator.ui.platform.components.toggle.BitwardenSwitch import com.bitwarden.ui.platform.base.util.EventsEffect import com.bitwarden.ui.platform.base.util.standardHorizontalMargin -import com.bitwarden.ui.platform.components.icon.BitwardenIcon -import com.bitwarden.ui.platform.components.icon.model.IconData +import com.bitwarden.ui.platform.components.util.rememberVectorPainter import com.bitwarden.ui.platform.resource.BitwardenDrawable -import com.bitwarden.ui.util.asText import kotlinx.collections.immutable.toImmutableList /** @@ -306,7 +307,11 @@ fun EditItemContent( ) } - item { + item(key = "AdvancedOptions") { + val iconRotationDegrees = animateFloatAsState( + targetValue = if (viewState.isAdvancedOptionsExpanded) 180f else 0f, + label = "expanderIconRotationAnimation", + ) Spacer(modifier = Modifier.height(16.dp)) Row( modifier = Modifier @@ -322,7 +327,8 @@ fun EditItemContent( interactionSource = remember { MutableInteractionSource() }, onClick = onExpandAdvancedOptionsClicked, ) - .padding(vertical = 12.dp), + .padding(vertical = 12.dp) + .animateItem(), verticalAlignment = Alignment.CenterVertically, ) { Text( @@ -331,16 +337,16 @@ fun EditItemContent( color = MaterialTheme.colorScheme.primary, ) Spacer(Modifier.width(8.dp)) - BitwardenIcon( - iconData = IconData.Local( - iconRes = if (viewState.isAdvancedOptionsExpanded) { - R.drawable.ic_chevron_up - } else { - R.drawable.ic_chevron_down - }, - contentDescription = R.string.collapse_advanced_options.asText(), - ), + Icon( + painter = rememberVectorPainter(id = BitwardenDrawable.ic_chevron_down), + contentDescription = if (viewState.isAdvancedOptionsExpanded) { + stringResource(R.string.collapse_advanced_options) + } else { + stringResource(R.string.expand_advanced_options) + }, tint = MaterialTheme.colorScheme.primary, + modifier = Modifier + .rotate(degrees = iconRotationDegrees.value), ) } } diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreen.kt index 37110fa128..91415e4ed7 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreen.kt @@ -385,7 +385,7 @@ private fun ItemListingContent( ItemListingExpandableFabAction.ScanQrCode( label = R.string.scan_a_qr_code.asText(), icon = IconResource( - iconPainter = painterResource(id = R.drawable.ic_camera), + iconPainter = painterResource(id = BitwardenDrawable.ic_camera), contentDescription = stringResource(id = R.string.scan_a_qr_code), testTag = "ScanQRCodeButton", ), @@ -394,7 +394,7 @@ private fun ItemListingContent( ItemListingExpandableFabAction.EnterSetupKey( label = R.string.enter_key_manually.asText(), icon = IconResource( - iconPainter = painterResource(id = R.drawable.ic_keyboard_24px), + iconPainter = painterResource(id = BitwardenDrawable.ic_keyboard), contentDescription = stringResource(id = R.string.enter_key_manually), testTag = "EnterSetupKeyButton", ), @@ -403,7 +403,7 @@ private fun ItemListingContent( ), expandableFabIcon = ExpandableFabIcon( iconData = IconResource( - iconPainter = painterResource(id = R.drawable.ic_plus), + iconPainter = painterResource(id = BitwardenDrawable.ic_plus), contentDescription = stringResource(id = R.string.add_item), testTag = "AddItemButton", ), @@ -608,7 +608,7 @@ fun EmptyItemListingContent( ItemListingExpandableFabAction.ScanQrCode( label = R.string.scan_a_qr_code.asText(), icon = IconResource( - iconPainter = painterResource(id = R.drawable.ic_camera), + iconPainter = painterResource(id = BitwardenDrawable.ic_camera), contentDescription = stringResource(id = R.string.scan_a_qr_code), testTag = "ScanQRCodeButton", ), @@ -617,7 +617,7 @@ fun EmptyItemListingContent( ItemListingExpandableFabAction.EnterSetupKey( label = R.string.enter_key_manually.asText(), icon = IconResource( - iconPainter = painterResource(id = R.drawable.ic_keyboard_24px), + iconPainter = painterResource(id = BitwardenDrawable.ic_keyboard), contentDescription = stringResource(id = R.string.enter_key_manually), testTag = "EnterSetupKeyButton", ), @@ -626,7 +626,7 @@ fun EmptyItemListingContent( ), expandableFabIcon = ExpandableFabIcon( iconData = IconResource( - iconPainter = painterResource(id = R.drawable.ic_plus), + iconPainter = painterResource(id = BitwardenDrawable.ic_plus), contentDescription = stringResource(id = R.string.add_item), testTag = "AddItemButton", ), @@ -675,9 +675,9 @@ fun EmptyItemListingContent( modifier = Modifier.fillMaxWidth(), painter = painterResource( id = when (appTheme) { - AppTheme.DARK -> R.drawable.ic_empty_vault_dark - AppTheme.LIGHT -> R.drawable.ic_empty_vault_light - AppTheme.DEFAULT -> R.drawable.ic_empty_vault + AppTheme.DARK -> BitwardenDrawable.ic_empty_vault_dark + AppTheme.LIGHT -> BitwardenDrawable.ic_empty_vault_light + AppTheme.DEFAULT -> BitwardenDrawable.ic_empty_vault }, ), contentDescription = stringResource( @@ -718,7 +718,7 @@ private fun DownloadBitwardenActionCard( onDownloadBitwardenClick: () -> Unit, ) = BitwardenActionCard( modifier = modifier, - actionIcon = rememberVectorPainter(R.drawable.ic_bitwarden), + actionIcon = rememberVectorPainter(BitwardenDrawable.ic_shield), actionText = stringResource(R.string.download_bitwarden_card_message), callToActionText = stringResource(R.string.download_now), titleText = stringResource(R.string.download_bitwarden_card_title), @@ -763,7 +763,7 @@ private fun SyncWithBitwardenActionCard( verticalAlignment = Alignment.CenterVertically, ) { Icon( - painter = rememberVectorPainter(id = R.drawable.ic_bitwarden), + painter = rememberVectorPainter(id = BitwardenDrawable.ic_shield), contentDescription = null, tint = MaterialTheme.colorScheme.primary, modifier = Modifier.size(size = 20.dp), diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/VaultVerificationCodeItem.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/VaultVerificationCodeItem.kt index dd53d9ca6a..e09e86d5ce 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/VaultVerificationCodeItem.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/VaultVerificationCodeItem.kt @@ -38,6 +38,7 @@ import com.bitwarden.authenticator.ui.platform.components.indicator.BitwardenCir import com.bitwarden.authenticator.ui.platform.theme.AuthenticatorTheme import com.bitwarden.ui.platform.components.icon.BitwardenIcon import com.bitwarden.ui.platform.components.icon.model.IconData +import com.bitwarden.ui.platform.resource.BitwardenDrawable /** * The verification code item displayed to the user. @@ -165,7 +166,7 @@ fun VaultVerificationCodeItem( }, leadingIcon = { Icon( - painter = painterResource(id = R.drawable.ic_copy), + painter = painterResource(id = BitwardenDrawable.ic_copy), contentDescription = stringResource(id = R.string.copy), ) }, @@ -181,7 +182,7 @@ fun VaultVerificationCodeItem( }, leadingIcon = { Icon( - painter = painterResource(id = R.drawable.ic_edit_item), + painter = painterResource(id = BitwardenDrawable.ic_edit_item), contentDescription = stringResource(R.string.edit_item), ) }, @@ -198,7 +199,7 @@ fun VaultVerificationCodeItem( }, leadingIcon = { Icon( - painter = painterResource(id = R.drawable.ic_arrow_right), + painter = painterResource(id = BitwardenDrawable.ic_arrow_right), contentDescription = stringResource( id = R.string.copy_to_bitwarden_vault, ), @@ -217,7 +218,7 @@ fun VaultVerificationCodeItem( }, leadingIcon = { Icon( - painter = painterResource(id = R.drawable.ic_delete_item), + painter = painterResource(id = BitwardenDrawable.ic_delete_item), contentDescription = stringResource(id = R.string.delete_item), ) }, @@ -238,7 +239,7 @@ private fun VerificationCodeItem_preview() { periodSeconds = 30, timeLeftSeconds = 15, alertThresholdSeconds = 7, - startIcon = IconData.Local(R.drawable.ic_login_item), + startIcon = IconData.Local(BitwardenDrawable.ic_login_item), onItemClick = {}, onDropdownMenuClick = {}, allowLongPress = true, diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/model/VerificationCodeDisplayItem.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/model/VerificationCodeDisplayItem.kt index 68e7693040..a46175c87f 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/model/VerificationCodeDisplayItem.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/model/VerificationCodeDisplayItem.kt @@ -1,8 +1,8 @@ package com.bitwarden.authenticator.ui.authenticator.feature.model import android.os.Parcelable -import com.bitwarden.authenticator.R import com.bitwarden.ui.platform.components.icon.model.IconData +import com.bitwarden.ui.platform.resource.BitwardenDrawable import kotlinx.parcelize.Parcelize /** @@ -18,7 +18,7 @@ data class VerificationCodeDisplayItem( val alertThresholdSeconds: Int, val authCode: String, val startIcon: IconData = IconData.Local( - iconRes = R.drawable.ic_login_item, + iconRes = BitwardenDrawable.ic_login_item, testTag = "BitwardenIcon", ), val favorite: Boolean, diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarScreen.kt index 2041842ab3..a999136b26 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarScreen.kt @@ -54,6 +54,7 @@ import com.bitwarden.authenticator.ui.platform.feature.settings.navigateToSettin import com.bitwarden.ui.platform.base.util.EventsEffect import com.bitwarden.ui.platform.base.util.max import com.bitwarden.ui.platform.base.util.toDp +import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.theme.RootTransitionProviders import com.bitwarden.ui.platform.util.toObjectNavigationRoute import kotlinx.coroutines.flow.launchIn @@ -306,8 +307,8 @@ private sealed class AuthenticatorNavBarTab : Parcelable { */ @Parcelize data object VerificationCodes : AuthenticatorNavBarTab() { - override val iconResSelected get() = R.drawable.ic_verification_codes_filled - override val iconRes get() = R.drawable.ic_verification_codes + override val iconResSelected get() = BitwardenDrawable.ic_verification_codes_filled + override val iconRes get() = BitwardenDrawable.ic_verification_codes override val labelRes get() = R.string.verification_codes override val contentDescriptionRes get() = R.string.verification_codes override val route get() = ItemListingRoute.toObjectNavigationRoute() @@ -319,8 +320,8 @@ private sealed class AuthenticatorNavBarTab : Parcelable { */ @Parcelize data object Settings : AuthenticatorNavBarTab() { - override val iconResSelected get() = R.drawable.ic_settings_filled - override val iconRes get() = R.drawable.ic_settings + override val iconResSelected get() = BitwardenDrawable.ic_settings_solid + override val iconRes get() = BitwardenDrawable.ic_settings override val labelRes get() = R.string.settings override val contentDescriptionRes get() = R.string.settings override val route get() = SettingsGraphRoute.toObjectNavigationRoute() diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchEmptyContent.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchEmptyContent.kt index e6953a915a..0fea2acbf7 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchEmptyContent.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchEmptyContent.kt @@ -19,7 +19,7 @@ import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.bitwarden.authenticator.R +import com.bitwarden.ui.platform.resource.BitwardenDrawable /** * The empty state for the item search screen. @@ -35,7 +35,7 @@ fun ItemSearchEmptyContent( horizontalAlignment = Alignment.CenterHorizontally, ) { Icon( - painter = painterResource(id = R.drawable.ic_search_24px), + painter = painterResource(id = BitwardenDrawable.ic_search_wide), contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchScreen.kt index d80969ac44..bf0da10696 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchScreen.kt @@ -26,6 +26,7 @@ import com.bitwarden.authenticator.ui.platform.components.scaffold.BitwardenScaf import com.bitwarden.ui.platform.base.util.EventsEffect import com.bitwarden.ui.platform.base.util.bottomDivider import com.bitwarden.ui.platform.components.appbar.NavigationIcon +import com.bitwarden.ui.platform.resource.BitwardenDrawable /** * The search screen for authenticator items. @@ -67,7 +68,7 @@ fun ItemSearchScreen( onSearchTermChange = searchHandlers.onSearchTermChange, scrollBehavior = scrollBehavior, navigationIcon = NavigationIcon( - navigationIcon = painterResource(id = R.drawable.ic_back), + navigationIcon = painterResource(id = BitwardenDrawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = searchHandlers.onBackClick, ), diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/VaultVerificationCodeItem.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/VaultVerificationCodeItem.kt index bd492b78c6..3cd3398db2 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/VaultVerificationCodeItem.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/VaultVerificationCodeItem.kt @@ -27,6 +27,7 @@ import com.bitwarden.authenticator.ui.platform.components.indicator.BitwardenCir import com.bitwarden.authenticator.ui.platform.theme.AuthenticatorTheme import com.bitwarden.ui.platform.components.icon.BitwardenIcon import com.bitwarden.ui.platform.components.icon.model.IconData +import com.bitwarden.ui.platform.resource.BitwardenDrawable /** * The verification code item displayed to the user. @@ -115,7 +116,7 @@ fun VaultVerificationCodeItem( onClick = onCopyClick, ) { Icon( - painter = painterResource(id = R.drawable.ic_copy), + painter = painterResource(id = BitwardenDrawable.ic_copy), contentDescription = stringResource(id = R.string.copy), tint = MaterialTheme.colorScheme.primary, modifier = Modifier.size(24.dp), @@ -130,7 +131,7 @@ fun VaultVerificationCodeItem( private fun VerificationCodeItem_preview() { AuthenticatorTheme { VaultVerificationCodeItem( - startIcon = IconData.Local(R.drawable.ic_login_item), + startIcon = IconData.Local(BitwardenDrawable.ic_login_item), issuer = "Sample Label", supportingLabel = "Supporting Label", authCode = "1234567890".chunked(3).joinToString(" "), diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/appbar/action/AuthenticatorSearchActionItem.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/appbar/action/AuthenticatorSearchActionItem.kt index f4c4803eeb..ec7ef3ccaf 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/appbar/action/AuthenticatorSearchActionItem.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/appbar/action/AuthenticatorSearchActionItem.kt @@ -6,8 +6,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag import androidx.compose.ui.tooling.preview.Preview -import com.bitwarden.authenticator.R import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.resource.BitwardenDrawable /** * Represents the Authenticator search action item. @@ -29,7 +29,7 @@ fun AuthenticatorSearchActionItem( modifier = Modifier.testTag("SearchButton"), ) { Icon( - painter = rememberVectorPainter(id = R.drawable.ic_search_24px), + painter = rememberVectorPainter(id = BitwardenDrawable.ic_search_wide), contentDescription = contentDescription, ) } diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/card/BitwardenActionCard.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/card/BitwardenActionCard.kt index 28d93bed0e..325ce4caa8 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/card/BitwardenActionCard.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/card/BitwardenActionCard.kt @@ -110,7 +110,7 @@ private fun ActionCardPreview() { @Composable private fun ActionCardWithTrailingPreview() { BitwardenActionCard( - actionIcon = rememberVectorPainter(id = R.drawable.ic_bitwarden), + actionIcon = rememberVectorPainter(id = BitwardenDrawable.ic_shield), actionText = "An action with trailing content", titleText = "This is a title", callToActionText = "Take action", diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/dropdown/BitwardenMultiSelectButton.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/dropdown/BitwardenMultiSelectButton.kt index f5bdfa6da0..bbe1061deb 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/dropdown/BitwardenMultiSelectButton.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/dropdown/BitwardenMultiSelectButton.kt @@ -31,11 +31,11 @@ import androidx.compose.ui.semantics.role import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.bitwarden.authenticator.R import com.bitwarden.authenticator.ui.platform.components.dialog.BitwardenSelectionDialog import com.bitwarden.authenticator.ui.platform.components.dialog.BitwardenSelectionRow import com.bitwarden.authenticator.ui.platform.theme.AuthenticatorTheme import com.bitwarden.ui.platform.components.model.TooltipData +import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.util.asText 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 = painterResource(id = BitwardenDrawable.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 = painterResource(id = BitwardenDrawable.ic_region_select_dropdown), contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/field/BitwardenPasswordField.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/field/BitwardenPasswordField.kt index 0f75ac961b..9d5762b056 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/field/BitwardenPasswordField.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/field/BitwardenPasswordField.kt @@ -30,6 +30,7 @@ import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.tooling.preview.Preview import com.bitwarden.authenticator.R import com.bitwarden.authenticator.ui.platform.components.util.nonLetterColorVisualTransformation +import com.bitwarden.ui.platform.resource.BitwardenDrawable /** * Represents a Bitwarden-styled password field that hoists show/hide password state to the caller. @@ -103,9 +104,9 @@ fun BitwardenPasswordField( ) { @DrawableRes val painterRes = if (showPassword) { - R.drawable.ic_visibility_off + BitwardenDrawable.ic_visibility_off } else { - R.drawable.ic_visibility + BitwardenDrawable.ic_visibility } @StringRes diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/field/BitwardenTextFieldWithActions.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/field/BitwardenTextFieldWithActions.kt index 20add6681b..1822f59128 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/field/BitwardenTextFieldWithActions.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/field/BitwardenTextFieldWithActions.kt @@ -14,9 +14,9 @@ import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.tooling.preview.Preview -import com.bitwarden.authenticator.R import com.bitwarden.authenticator.ui.platform.theme.AuthenticatorTheme import com.bitwarden.ui.platform.components.row.BitwardenRowOfActions +import com.bitwarden.ui.platform.resource.BitwardenDrawable /** * Represents a Bitwarden-styled text field accompanied by a series of actions. @@ -91,7 +91,7 @@ private fun BitwardenTextFieldWithActions_preview() { onValueChange = {}, actions = { Icon( - painter = painterResource(id = R.drawable.ic_tooltip), + painter = painterResource(id = BitwardenDrawable.ic_tooltip), contentDescription = "Action 1", ) }, diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/icon/BitwardenIconButtonWithResource.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/icon/BitwardenIconButtonWithResource.kt index 6e4bc5d312..468c97a549 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/icon/BitwardenIconButtonWithResource.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/icon/BitwardenIconButtonWithResource.kt @@ -9,9 +9,9 @@ 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.bitwarden.authenticator.R import com.bitwarden.authenticator.ui.platform.components.model.IconResource import com.bitwarden.authenticator.ui.platform.theme.AuthenticatorTheme +import com.bitwarden.ui.platform.resource.BitwardenDrawable /** * An icon button that displays an icon from the provided [IconResource]. @@ -52,7 +52,7 @@ private fun BitwardenIconButtonWithResource_preview() { AuthenticatorTheme { BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = painterResource(id = R.drawable.ic_tooltip), + iconPainter = painterResource(id = BitwardenDrawable.ic_tooltip), contentDescription = "Sample Icon", ), onClick = {}, diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/listitem/BitwardenListItem.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/listitem/BitwardenListItem.kt index ae563201ff..a3316707f0 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/listitem/BitwardenListItem.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/listitem/BitwardenListItem.kt @@ -38,6 +38,7 @@ import com.bitwarden.authenticator.ui.platform.components.model.IconResource import com.bitwarden.authenticator.ui.platform.theme.AuthenticatorTheme import com.bitwarden.ui.platform.components.icon.BitwardenIcon import com.bitwarden.ui.platform.components.icon.model.IconData +import com.bitwarden.ui.platform.resource.BitwardenDrawable import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf @@ -135,7 +136,7 @@ fun BitwardenListItem( modifier = Modifier.semantics { optionsTestTag?.let { testTag = it } }, ) { Icon( - painter = painterResource(id = R.drawable.ic_more_horizontal), + painter = painterResource(id = BitwardenDrawable.ic_more_horizontal), contentDescription = stringResource(id = R.string.options), tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(24.dp), @@ -180,7 +181,7 @@ private fun BitwardenListItem_preview() { BitwardenListItem( label = "Sample Label", supportingLabel = "Jan 3, 2024, 10:35 AM", - startIcon = IconData.Local(R.drawable.ic_login_item), + startIcon = IconData.Local(BitwardenDrawable.ic_login_item), onClick = {}, selectionDataList = persistentListOf(), ) diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/row/BitwardenExternalLinkRow.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/row/BitwardenExternalLinkRow.kt index 642e3f1ac3..5546641530 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/row/BitwardenExternalLinkRow.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/row/BitwardenExternalLinkRow.kt @@ -15,6 +15,7 @@ import com.bitwarden.authenticator.ui.platform.components.dialog.BitwardenTwoBut import com.bitwarden.authenticator.ui.platform.theme.AuthenticatorTheme import com.bitwarden.ui.platform.base.util.mirrorIfRtl import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.resource.BitwardenDrawable /** * Represents a row of text that can be clicked on and contains an external link. @@ -52,7 +53,7 @@ fun BitwardenExternalLinkRow( ) { Icon( modifier = Modifier.mirrorIfRtl(), - painter = rememberVectorPainter(id = R.drawable.ic_external_link), + painter = rememberVectorPainter(id = BitwardenDrawable.ic_external_link), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/stepper/BitwardenStepper.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/stepper/BitwardenStepper.kt index a937234736..b9a97ff290 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/stepper/BitwardenStepper.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/components/stepper/BitwardenStepper.kt @@ -5,13 +5,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.input.KeyboardType -import com.bitwarden.authenticator.R import com.bitwarden.authenticator.ui.platform.components.field.BitwardenTextFieldWithActions import com.bitwarden.authenticator.ui.platform.components.icon.BitwardenIconButtonWithResource import com.bitwarden.authenticator.ui.platform.components.model.IconResource import com.bitwarden.ui.platform.base.util.ZERO_WIDTH_CHARACTER import com.bitwarden.ui.platform.base.util.orNullIfBlank import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.resource.BitwardenDrawable /** * 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 = rememberVectorPainter(id = R.drawable.ic_minus), + iconPainter = rememberVectorPainter(id = BitwardenDrawable.ic_minus), contentDescription = "\u2212", ), onClick = { @@ -76,7 +76,7 @@ fun BitwardenStepper( ) BitwardenIconButtonWithResource( iconRes = IconResource( - iconPainter = rememberVectorPainter(id = R.drawable.ic_plus), + iconPainter = rememberVectorPainter(id = BitwardenDrawable.ic_plus), contentDescription = "+", ), onClick = { diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/debugmenu/DebugMenuScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/debugmenu/DebugMenuScreen.kt index 39679eba0b..c21c97007d 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/debugmenu/DebugMenuScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/debugmenu/DebugMenuScreen.kt @@ -34,6 +34,7 @@ import com.bitwarden.ui.platform.base.util.standardHorizontalMargin import com.bitwarden.ui.platform.components.appbar.NavigationIcon import com.bitwarden.ui.platform.components.divider.BitwardenHorizontalDivider import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.resource.BitwardenDrawable /** * Top level screen for the debug menu. @@ -62,7 +63,7 @@ fun DebugMenuScreen( title = stringResource(R.string.debug_menu), scrollBehavior = scrollBehavior, navigationIcon = NavigationIcon( - navigationIcon = rememberVectorPainter(R.drawable.ic_back), + navigationIcon = rememberVectorPainter(BitwardenDrawable.ic_back), navigationIconContentDescription = stringResource(id = R.string.back), onNavigationIconClick = remember(viewModel) { { diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreen.kt index a44ab59361..2c54aae8dc 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreen.kt @@ -69,6 +69,7 @@ import com.bitwarden.ui.platform.base.util.mirrorIfRtl import com.bitwarden.ui.platform.base.util.spanStyleOf import com.bitwarden.ui.platform.components.util.rememberVectorPainter import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme +import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.util.Text import com.bitwarden.ui.util.asText @@ -310,7 +311,7 @@ private fun VaultSettings( modifier = Modifier .mirrorIfRtl() .size(24.dp), - painter = painterResource(id = R.drawable.ic_navigate_next), + painter = painterResource(id = BitwardenDrawable.ic_navigate_next), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) @@ -328,7 +329,7 @@ private fun VaultSettings( modifier = Modifier .mirrorIfRtl() .size(24.dp), - painter = painterResource(id = R.drawable.ic_navigate_next), + painter = painterResource(id = BitwardenDrawable.ic_navigate_next), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) @@ -370,10 +371,8 @@ private fun VaultSettings( withDivider = true, content = { Icon( - modifier = Modifier - .mirrorIfRtl() - .size(24.dp), - painter = painterResource(id = R.drawable.ic_external_link), + modifier = Modifier.mirrorIfRtl(), + painter = painterResource(id = BitwardenDrawable.ic_external_link), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) @@ -510,7 +509,7 @@ private fun ThemeSelectionRow( .mirrorIfRtl() .size(24.dp), painter = painterResource( - id = R.drawable.ic_navigate_next, + id = BitwardenDrawable.ic_navigate_next, ), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, @@ -647,7 +646,7 @@ private fun CopyRow( color = MaterialTheme.colorScheme.onSurface, ) Icon( - painter = rememberVectorPainter(id = R.drawable.ic_copy), + painter = rememberVectorPainter(id = BitwardenDrawable.ic_copy), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/tutorial/TutorialViewModel.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/tutorial/TutorialViewModel.kt index 3edf14e577..732b53862a 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/tutorial/TutorialViewModel.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/tutorial/TutorialViewModel.kt @@ -3,6 +3,7 @@ package com.bitwarden.authenticator.ui.platform.feature.tutorial import android.os.Parcelable import com.bitwarden.authenticator.R import com.bitwarden.ui.platform.base.BaseViewModel +import com.bitwarden.ui.platform.resource.BitwardenDrawable import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.update import kotlinx.parcelize.Parcelize @@ -91,7 +92,7 @@ data class TutorialState( */ @Parcelize data object IntroSlide : TutorialSlide() { - override val image: Int get() = R.drawable.ic_tutorial_verification_codes + override val image: Int get() = BitwardenDrawable.ic_tutorial_verification_codes override val title: Int get() = R.string.secure_your_accounts_with_bitwarden_authenticator override val message: Int get() = R.string.get_verification_codes_for_all_your_accounts } @@ -101,7 +102,7 @@ data class TutorialState( */ @Parcelize data object QrScannerSlide : TutorialSlide() { - override val image: Int get() = R.drawable.ic_tutorial_qr_scanner + override val image: Int get() = BitwardenDrawable.ic_tutorial_qr_scanner override val title: Int get() = R.string.use_your_device_camera_to_scan_codes override val message: Int get() = R.string.scan_the_qr_code_in_your_2_step_verification_settings_for_any_account } @@ -111,7 +112,7 @@ data class TutorialState( */ @Parcelize data object UniqueCodesSlide : TutorialSlide() { - override val image: Int get() = R.drawable.ic_tutorial_2fa + override val image: Int get() = BitwardenDrawable.ic_tutorial_2fa override val title: Int get() = R.string.sign_in_using_unique_codes override val message: Int get() = R.string.when_using_2_step_verification_youll_enter_your_username_and_password_and_a_code_generated_in_this_app } diff --git a/authenticator/src/main/res/drawable/ic_back.xml b/authenticator/src/main/res/drawable/ic_back.xml deleted file mode 100644 index 72edab8b28..0000000000 --- a/authenticator/src/main/res/drawable/ic_back.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/authenticator/src/main/res/drawable/ic_bitwarden.xml b/authenticator/src/main/res/drawable/ic_bitwarden.xml deleted file mode 100644 index b136ea789b..0000000000 --- a/authenticator/src/main/res/drawable/ic_bitwarden.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/authenticator/src/main/res/drawable/ic_camera.xml b/authenticator/src/main/res/drawable/ic_camera.xml deleted file mode 100644 index c7af235783..0000000000 --- a/authenticator/src/main/res/drawable/ic_camera.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - diff --git a/authenticator/src/main/res/drawable/ic_chevron_down.xml b/authenticator/src/main/res/drawable/ic_chevron_down.xml deleted file mode 100644 index ae597f5f48..0000000000 --- a/authenticator/src/main/res/drawable/ic_chevron_down.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/authenticator/src/main/res/drawable/ic_chevron_up.xml b/authenticator/src/main/res/drawable/ic_chevron_up.xml deleted file mode 100644 index 2834d24487..0000000000 --- a/authenticator/src/main/res/drawable/ic_chevron_up.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/authenticator/src/main/res/drawable/ic_copy.xml b/authenticator/src/main/res/drawable/ic_copy.xml deleted file mode 100644 index 6de6bd02fa..0000000000 --- a/authenticator/src/main/res/drawable/ic_copy.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - diff --git a/authenticator/src/main/res/drawable/ic_external_link.xml b/authenticator/src/main/res/drawable/ic_external_link.xml deleted file mode 100644 index 63c65dfe0c..0000000000 --- a/authenticator/src/main/res/drawable/ic_external_link.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/authenticator/src/main/res/drawable/ic_keyboard_24px.xml b/authenticator/src/main/res/drawable/ic_keyboard_24px.xml deleted file mode 100644 index cfdcd0f52e..0000000000 --- a/authenticator/src/main/res/drawable/ic_keyboard_24px.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/authenticator/src/main/res/drawable/ic_minus.xml b/authenticator/src/main/res/drawable/ic_minus.xml deleted file mode 100644 index e48c80009e..0000000000 --- a/authenticator/src/main/res/drawable/ic_minus.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/authenticator/src/main/res/drawable/ic_plus.xml b/authenticator/src/main/res/drawable/ic_plus.xml deleted file mode 100644 index 337951f8b5..0000000000 --- a/authenticator/src/main/res/drawable/ic_plus.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/authenticator/src/main/res/drawable/ic_settings.xml b/authenticator/src/main/res/drawable/ic_settings.xml deleted file mode 100644 index 25c7d29b3e..0000000000 --- a/authenticator/src/main/res/drawable/ic_settings.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/authenticator/src/main/res/values/strings.xml b/authenticator/src/main/res/values/strings.xml index 1eb88ca751..0c6fb9edac 100644 --- a/authenticator/src/main/res/values/strings.xml +++ b/authenticator/src/main/res/values/strings.xml @@ -141,4 +141,5 @@ "File Could Not Be Processed" "File could not be processed. Ensure it’s valid JSON and try again. Need help? Visit bitwarden.com/help" Get Help + Expand advanced options diff --git a/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchViewModelTest.kt b/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchViewModelTest.kt index f8997fc765..9a8703153d 100644 --- a/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchViewModelTest.kt +++ b/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/search/ItemSearchViewModelTest.kt @@ -1,7 +1,6 @@ package com.bitwarden.authenticator.ui.authenticator.feature.search import androidx.lifecycle.SavedStateHandle -import com.bitwarden.authenticator.R import com.bitwarden.authenticator.data.authenticator.manager.model.VerificationCodeItem import com.bitwarden.authenticator.data.authenticator.manager.util.createMockVerificationCodeItem import com.bitwarden.authenticator.data.authenticator.repository.AuthenticatorRepository @@ -13,6 +12,7 @@ import com.bitwarden.authenticator.ui.authenticator.feature.model.VerificationCo import com.bitwarden.core.data.repository.model.DataState import com.bitwarden.ui.platform.base.BaseViewModelTest import com.bitwarden.ui.platform.components.icon.model.IconData +import com.bitwarden.ui.platform.resource.BitwardenDrawable import io.mockk.every import io.mockk.mockk import io.mockk.mockkStatic @@ -142,7 +142,7 @@ private val SHARED_AND_LOCAL_DISPLAY_ITEMS = listOf( timeLeftSeconds = SHARED_ITEMS[0].timeLeftSeconds, alertThresholdSeconds = 7, startIcon = IconData.Local( - iconRes = R.drawable.ic_login_item, + iconRes = BitwardenDrawable.ic_login_item, testTag = "BitwardenIcon", ), subtitle = SHARED_ITEMS[0].label, @@ -158,7 +158,7 @@ private val SHARED_AND_LOCAL_DISPLAY_ITEMS = listOf( timeLeftSeconds = LOCAL_ITEMS[0].timeLeftSeconds, alertThresholdSeconds = 7, startIcon = IconData.Local( - iconRes = R.drawable.ic_login_item, + iconRes = BitwardenDrawable.ic_login_item, testTag = "BitwardenIcon", ), subtitle = LOCAL_ITEMS[0].label, diff --git a/authenticator/src/main/res/drawable-night/ic_empty_vault.xml b/ui/src/main/res/drawable-night/ic_empty_vault.xml similarity index 100% rename from authenticator/src/main/res/drawable-night/ic_empty_vault.xml rename to ui/src/main/res/drawable-night/ic_empty_vault.xml diff --git a/authenticator/src/main/res/drawable/ic_arrow_right.xml b/ui/src/main/res/drawable/ic_arrow_right.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_arrow_right.xml rename to ui/src/main/res/drawable/ic_arrow_right.xml diff --git a/authenticator/src/main/res/drawable/ic_delete_item.xml b/ui/src/main/res/drawable/ic_delete_item.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_delete_item.xml rename to ui/src/main/res/drawable/ic_delete_item.xml diff --git a/authenticator/src/main/res/drawable/ic_edit_item.xml b/ui/src/main/res/drawable/ic_edit_item.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_edit_item.xml rename to ui/src/main/res/drawable/ic_edit_item.xml diff --git a/authenticator/src/main/res/drawable/ic_empty_vault.xml b/ui/src/main/res/drawable/ic_empty_vault.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_empty_vault.xml rename to ui/src/main/res/drawable/ic_empty_vault.xml diff --git a/authenticator/src/main/res/drawable/ic_empty_vault_dark.xml b/ui/src/main/res/drawable/ic_empty_vault_dark.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_empty_vault_dark.xml rename to ui/src/main/res/drawable/ic_empty_vault_dark.xml diff --git a/authenticator/src/main/res/drawable/ic_empty_vault_light.xml b/ui/src/main/res/drawable/ic_empty_vault_light.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_empty_vault_light.xml rename to ui/src/main/res/drawable/ic_empty_vault_light.xml diff --git a/authenticator/src/main/res/drawable/ic_login_item.xml b/ui/src/main/res/drawable/ic_login_item.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_login_item.xml rename to ui/src/main/res/drawable/ic_login_item.xml diff --git a/authenticator/src/main/res/drawable/ic_logo_horizontal.xml b/ui/src/main/res/drawable/ic_logo_horizontal.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_logo_horizontal.xml rename to ui/src/main/res/drawable/ic_logo_horizontal.xml diff --git a/authenticator/src/main/res/drawable/ic_more_horizontal.xml b/ui/src/main/res/drawable/ic_more_horizontal.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_more_horizontal.xml rename to ui/src/main/res/drawable/ic_more_horizontal.xml diff --git a/authenticator/src/main/res/drawable/ic_navigate_next.xml b/ui/src/main/res/drawable/ic_navigate_next.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_navigate_next.xml rename to ui/src/main/res/drawable/ic_navigate_next.xml diff --git a/authenticator/src/main/res/drawable/ic_refresh.xml b/ui/src/main/res/drawable/ic_refresh.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_refresh.xml rename to ui/src/main/res/drawable/ic_refresh.xml diff --git a/authenticator/src/main/res/drawable/ic_region_select_dropdown.xml b/ui/src/main/res/drawable/ic_region_select_dropdown.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_region_select_dropdown.xml rename to ui/src/main/res/drawable/ic_region_select_dropdown.xml diff --git a/authenticator/src/main/res/drawable/ic_search_24px.xml b/ui/src/main/res/drawable/ic_search_wide.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_search_24px.xml rename to ui/src/main/res/drawable/ic_search_wide.xml diff --git a/authenticator/src/main/res/drawable/ic_settings_filled.xml b/ui/src/main/res/drawable/ic_settings_solid.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_settings_filled.xml rename to ui/src/main/res/drawable/ic_settings_solid.xml diff --git a/authenticator/src/main/res/drawable/ic_tooltip.xml b/ui/src/main/res/drawable/ic_tooltip.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_tooltip.xml rename to ui/src/main/res/drawable/ic_tooltip.xml diff --git a/authenticator/src/main/res/drawable/ic_tooltip_small.xml b/ui/src/main/res/drawable/ic_tooltip_small.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_tooltip_small.xml rename to ui/src/main/res/drawable/ic_tooltip_small.xml diff --git a/authenticator/src/main/res/drawable/ic_tutorial_2fa.xml b/ui/src/main/res/drawable/ic_tutorial_2fa.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_tutorial_2fa.xml rename to ui/src/main/res/drawable/ic_tutorial_2fa.xml diff --git a/authenticator/src/main/res/drawable/ic_tutorial_qr_scanner.xml b/ui/src/main/res/drawable/ic_tutorial_qr_scanner.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_tutorial_qr_scanner.xml rename to ui/src/main/res/drawable/ic_tutorial_qr_scanner.xml diff --git a/authenticator/src/main/res/drawable/ic_tutorial_verification_codes.xml b/ui/src/main/res/drawable/ic_tutorial_verification_codes.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_tutorial_verification_codes.xml rename to ui/src/main/res/drawable/ic_tutorial_verification_codes.xml diff --git a/authenticator/src/main/res/drawable/ic_verification_codes.xml b/ui/src/main/res/drawable/ic_verification_codes.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_verification_codes.xml rename to ui/src/main/res/drawable/ic_verification_codes.xml diff --git a/authenticator/src/main/res/drawable/ic_verification_codes_filled.xml b/ui/src/main/res/drawable/ic_verification_codes_filled.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_verification_codes_filled.xml rename to ui/src/main/res/drawable/ic_verification_codes_filled.xml diff --git a/authenticator/src/main/res/drawable/ic_visibility.xml b/ui/src/main/res/drawable/ic_visibility.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_visibility.xml rename to ui/src/main/res/drawable/ic_visibility.xml diff --git a/authenticator/src/main/res/drawable/ic_visibility_off.xml b/ui/src/main/res/drawable/ic_visibility_off.xml similarity index 100% rename from authenticator/src/main/res/drawable/ic_visibility_off.xml rename to ui/src/main/res/drawable/ic_visibility_off.xml