diff options
| author | David Göransson <david.goransson@mullvad.net> | 2024-10-01 13:47:50 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-10-01 13:47:50 +0200 |
| commit | 4a263046c888a0fda676847dd16a2c4a855d4419 (patch) | |
| tree | 55555315cbf8c7cd74f474c3c20fa2884e36e781 | |
| parent | 5c05c73feaeeee30dae1c81a7e2ffc3e5b9e03b1 (diff) | |
| parent | 029ceec389cb4ea73c6229a72f655aa125a78091 (diff) | |
| download | mullvadvpn-4a263046c888a0fda676847dd16a2c4a855d4419.tar.xz mullvadvpn-4a263046c888a0fda676847dd16a2c4a855d4419.zip | |
Merge branch 'make-use-of-material-icons'
85 files changed, 373 insertions, 672 deletions
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index bb290ac89e..97a3965aaf 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -349,6 +349,7 @@ dependencies { implementation(libs.compose.constrainlayout) implementation(libs.compose.foundation) implementation(libs.compose.material3) + implementation(libs.compose.icons.extended) implementation(libs.compose.ui) implementation(libs.compose.ui.util) implementation(libs.compose.destinations) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/AnimatedIconButton.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/AnimatedIconButton.kt index 090dc287c6..dd91846c8c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/AnimatedIconButton.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/AnimatedIconButton.kt @@ -10,15 +10,15 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.painter.Painter +import androidx.compose.ui.graphics.vector.ImageVector import kotlinx.coroutines.delay internal const val PRESS_EFFECT_TIME_SPAN: Long = 1000 @Composable fun AnimatedIconButton( - defaultIcon: Painter, - secondaryIcon: Painter, + defaultIcon: ImageVector, + secondaryIcon: ImageVector, pressEffectDuration: Long = PRESS_EFFECT_TIME_SPAN, defaultIconTint: Color, secondaryIconTint: Color, @@ -50,24 +50,24 @@ fun AnimatedIconButton( } ) { AnimatedContent(targetState = state, label = contentDescription) { targetState -> - val iconPainter: Painter + val imageVector: ImageVector val tint: Color when (targetState) { ButtonState.IDLE -> { - iconPainter = defaultIcon + imageVector = defaultIcon tint = defaultIconTint } ButtonState.TOGGLED -> { - iconPainter = secondaryIcon + imageVector = secondaryIcon tint = secondaryIconTint } ButtonState.PRESSED -> { - iconPainter = secondaryIcon + imageVector = secondaryIcon tint = secondaryIconTint } } - Icon(painter = iconPainter, contentDescription = contentDescription, tint = tint) + Icon(imageVector = imageVector, contentDescription = contentDescription, tint = tint) } } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ExternalActionButton.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ExternalActionButton.kt index f4c309bd07..2666ab1485 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ExternalActionButton.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ExternalActionButton.kt @@ -1,11 +1,13 @@ package net.mullvad.mullvadvpn.compose.button +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.OpenInNew +import androidx.compose.material.icons.filled.OpenInNew import androidx.compose.material3.Icon +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.tooling.preview.Preview -import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.lib.theme.AppTheme @Preview @@ -45,7 +47,11 @@ fun ExternalButton( modifier = modifier, isEnabled = isEnabled, icon = { - Icon(painter = painterResource(id = R.drawable.icon_extlink), contentDescription = null) + Icon( + imageVector = Icons.AutoMirrored.Filled.OpenInNew, + tint = MaterialTheme.colorScheme.onTertiary, + contentDescription = null, + ) }, ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/InfoIconButton.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/InfoIconButton.kt index 61d0db68b3..df26edb857 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/InfoIconButton.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/InfoIconButton.kt @@ -1,13 +1,13 @@ package net.mullvad.mullvadvpn.compose.button +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Info import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource -import net.mullvad.mullvadvpn.R @Composable fun InfoIconButton( @@ -18,7 +18,7 @@ fun InfoIconButton( ) { IconButton(modifier = modifier, onClick = onClick) { Icon( - painter = painterResource(id = R.drawable.icon_info), + imageVector = Icons.Default.Info, contentDescription = contentDescription, tint = iconTint, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/SwitchLocationButton.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/SwitchLocationButton.kt index 69bff821c9..910276bb5b 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/SwitchLocationButton.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/SwitchLocationButton.kt @@ -121,7 +121,10 @@ fun SwitchLocationButton( overflow = TextOverflow.Ellipsis, modifier = if (isReconnectButtonEnabled) { - Modifier.padding(start = componentHeight + Dimens.listItemDivider) + Modifier.padding( + start = + componentHeight + Dimens.listItemDivider + Dimens.smallPadding + ) } else { Modifier }, @@ -153,7 +156,7 @@ fun SwitchLocationButton( .defaultMinSize(minWidth = Dimens.switchLocationRetryMinWidth), ) { Icon( - painter = painterResource(id = R.drawable.icon_reload), + painter = painterResource(R.drawable.icon_reconnect), contentDescription = null, ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/CustomPortCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/CustomPortCell.kt index c73054f772..321a86700f 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/CustomPortCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/CustomPortCell.kt @@ -12,6 +12,8 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Check import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -20,7 +22,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -78,7 +79,7 @@ fun CustomPortCell( .testTag(mainTestTag), ) { Icon( - painter = painterResource(id = R.drawable.icon_tick), + imageVector = Icons.Default.Check, contentDescription = null, tint = MaterialTheme.colorScheme.onSelected, modifier = diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt index a420534780..1aacaedbc1 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt @@ -1,12 +1,14 @@ package net.mullvad.mullvadvpn.compose.cell import androidx.compose.foundation.layout.RowScope +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Error +import androidx.compose.material.icons.rounded.Error import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text 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.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -38,7 +40,7 @@ fun DnsCell( bodyView = { if (isUnreachableLocalDnsWarningVisible) { Icon( - painter = painterResource(id = R.drawable.icon_alert), + imageVector = Icons.Rounded.Error, contentDescription = stringResource(id = R.string.confirm_local_dns), tint = MaterialTheme.colorScheme.warning, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DropdownMenuCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DropdownMenuCell.kt index 4ab25d6078..02568ec5a3 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DropdownMenuCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DropdownMenuCell.kt @@ -1,15 +1,15 @@ package net.mullvad.mullvadvpn.compose.cell +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.MoreVert import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.tooling.preview.Preview -import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.lib.theme.AppTheme import net.mullvad.mullvadvpn.lib.theme.Dimens @@ -42,7 +42,7 @@ fun ThreeDotCell( bodyView = { IconButton(onClick = onClickDots) { Icon( - painter = painterResource(id = R.drawable.icon_more_vert), + imageVector = Icons.Default.MoreVert, contentDescription = null, tint = textColor, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt index 3ccefe13b5..46a2053ffc 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt @@ -4,6 +4,8 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Info import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -15,7 +17,6 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.focus.focusProperties 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.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview @@ -100,7 +101,7 @@ private fun ExpandableComposeCellBody( onClick = onInfoClicked, ) { Icon( - painter = painterResource(id = R.drawable.icon_info), + imageVector = Icons.Default.Info, contentDescription = null, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/IconCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/IconCell.kt index 1823d15765..329f66afb4 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/IconCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/IconCell.kt @@ -3,28 +3,29 @@ package net.mullvad.mullvadvpn.compose.cell import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.width +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Add import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.TextStyle import androidx.compose.ui.tooling.preview.Preview -import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.lib.theme.AppTheme import net.mullvad.mullvadvpn.lib.theme.Dimens @Preview @Composable private fun PreviewIconCell() { - AppTheme { IconCell(iconId = R.drawable.icon_add, title = "Add") } + AppTheme { IconCell(imageVector = Icons.Default.Add, title = "Add") } } @Composable fun IconCell( - iconId: Int?, + imageVector: ImageVector?, title: String, modifier: Modifier = Modifier, contentDescription: String? = null, @@ -37,9 +38,9 @@ fun IconCell( BaseCell( headlineContent = { Row(verticalAlignment = Alignment.CenterVertically) { - iconId?.let { + imageVector?.let { Icon( - painter = painterResource(id = iconId), + imageVector = imageVector, contentDescription = contentDescription, tint = titleColor, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/InformationComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/InformationComposeCell.kt index adfa64585c..f5376335b3 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/InformationComposeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/InformationComposeCell.kt @@ -4,6 +4,8 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Info import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -13,9 +15,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.focus.focusProperties import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview -import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.lib.theme.AppTheme import net.mullvad.mullvadvpn.lib.theme.Dimens import net.mullvad.mullvadvpn.lib.theme.color.AlphaInactive @@ -79,7 +79,7 @@ private fun InformationComposeCellBody(modifier: Modifier, onInfoClicked: (() -> .align(Alignment.CenterVertically), ) { Icon( - painter = painterResource(id = R.drawable.icon_info), + imageVector = Icons.Default.Info, contentDescription = null, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/NavigationComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/NavigationComposeCell.kt index 2ef9a22c4e..2240e10eb8 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/NavigationComposeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/NavigationComposeCell.kt @@ -6,6 +6,10 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ChevronRight +import androidx.compose.material.icons.filled.Error +import androidx.compose.material.icons.filled.OpenInNew import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -13,11 +17,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview -import net.mullvad.mullvadvpn.R -import net.mullvad.mullvadvpn.compose.component.ChevronRight import net.mullvad.mullvadvpn.lib.theme.AppTheme import net.mullvad.mullvadvpn.lib.theme.Dimens @@ -67,7 +68,7 @@ fun NavigationComposeCell( showWarning: Boolean = false, textColor: Color = MaterialTheme.colorScheme.onPrimary, bodyView: @Composable () -> Unit = { - ChevronRight(contentDescription = title, tint = textColor) + Icon(Icons.Default.ChevronRight, contentDescription = title, tint = textColor) }, isRowEnabled: Boolean = true, onClick: () -> Unit, @@ -96,7 +97,7 @@ internal fun NavigationTitleView( ) { if (showWarning) { Icon( - painter = painterResource(id = R.drawable.icon_alert), + imageVector = Icons.Default.Error, modifier = Modifier.padding(end = Dimens.smallPadding), contentDescription = null, tint = MaterialTheme.colorScheme.error, @@ -115,7 +116,7 @@ internal fun NavigationTitleView( @Composable internal fun DefaultExternalLinkView(chevronContentDescription: String, tint: Color) { Icon( - painter = painterResource(id = R.drawable.icon_extlink), + imageVector = Icons.Default.OpenInNew, contentDescription = chevronContentDescription, tint = tint, ) @@ -139,7 +140,11 @@ internal fun NavigationCellBody( if (isExternalLink) { DefaultExternalLinkView(content, tint = contentColor) } else { - ChevronRight(tint = contentColor, contentDescription = contentBodyDescription) + Icon( + Icons.Default.ChevronRight, + tint = contentColor, + contentDescription = contentBodyDescription, + ) } } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ObfuscationModeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ObfuscationModeCell.kt index 55e1a76d9d..6688f5d0ab 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ObfuscationModeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ObfuscationModeCell.kt @@ -10,6 +10,9 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.widthIn +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ChevronRight +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.VerticalDivider import androidx.compose.runtime.Composable @@ -20,7 +23,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import net.mullvad.mullvadvpn.R -import net.mullvad.mullvadvpn.compose.component.ChevronRight import net.mullvad.mullvadvpn.compose.preview.SelectObfuscationCellPreviewParameterProvider import net.mullvad.mullvadvpn.lib.model.Constraint import net.mullvad.mullvadvpn.lib.model.ObfuscationMode @@ -98,7 +100,11 @@ fun ObfuscationModeCell( .clickable { onNavigate() }, contentAlignment = Alignment.Center, ) { - ChevronRight(tint = MaterialTheme.colorScheme.onPrimary, contentDescription = null) + Icon( + imageVector = Icons.Default.ChevronRight, + tint = MaterialTheme.colorScheme.onPrimary, + contentDescription = null, + ) } } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt index 3ae3487526..5b3b828e3d 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt @@ -15,6 +15,8 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Check import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -24,13 +26,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp -import net.mullvad.mullvadvpn.R -import net.mullvad.mullvadvpn.compose.component.Chevron +import net.mullvad.mullvadvpn.compose.component.ExpandChevron import net.mullvad.mullvadvpn.compose.component.MullvadCheckbox import net.mullvad.mullvadvpn.compose.preview.RelayItemCheckableCellPreviewParameterProvider import net.mullvad.mullvadvpn.lib.model.RelayItem @@ -83,10 +83,7 @@ fun StatusRelayItemCell( isSelected, leadingContent = { if (isSelected) { - Icon( - painter = painterResource(id = R.drawable.icon_tick), - contentDescription = null, - ) + Icon(imageVector = Icons.Default.Check, contentDescription = null) } else { Box( modifier = @@ -228,7 +225,7 @@ private fun RowScope.ExpandButton( color = MaterialTheme.colorScheme.surface, modifier = Modifier.padding(vertical = Dimens.verticalDividerPadding), ) - Chevron( + ExpandChevron( color = color, isExpanded = isExpanded, modifier = diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SelectableCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SelectableCell.kt index f958bec319..9d3688d352 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SelectableCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SelectableCell.kt @@ -3,17 +3,17 @@ package net.mullvad.mullvadvpn.compose.cell import androidx.compose.foundation.background import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.padding +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Check import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp -import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.compose.component.SpacedColumn import net.mullvad.mullvadvpn.lib.theme.AppTheme import net.mullvad.mullvadvpn.lib.theme.Dimens @@ -100,7 +100,7 @@ fun RowScope.SelectableIcon( isEnabled: Boolean, ) { Icon( - painter = painterResource(id = R.drawable.icon_tick), + imageVector = Icons.Default.Check, contentDescription = iconContentDescription, tint = MaterialTheme.colorScheme.onSelected, modifier = diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt index 6a684edef1..05bbcb1b5a 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt @@ -5,6 +5,9 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Add +import androidx.compose.material.icons.filled.Remove import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -106,15 +109,12 @@ fun SplitTunnelingCell( }, bodyView = { Icon( - painter = - painterResource( - id = - if (isSelected) { - R.drawable.ic_icons_remove - } else { - R.drawable.ic_icons_add - } - ), + imageVector = + if (isSelected) { + Icons.Default.Remove + } else { + Icons.Default.Add + }, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, modifier = Modifier.size(size = Dimens.addIconSize), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt index 3ed8887291..c5d9ef1f3f 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt @@ -6,6 +6,8 @@ import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Info import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -15,7 +17,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.focusProperties import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview @@ -167,11 +168,7 @@ fun SwitchCellView( .padding(horizontal = Dimens.miniPadding), onClick = onInfoClicked, ) { - Icon( - painter = painterResource(id = R.drawable.icon_info), - contentDescription = null, - tint = iconColor, - ) + Icon(imageVector = Icons.Default.Info, contentDescription = null, tint = iconColor) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Chevron.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Chevron.kt deleted file mode 100644 index 29ca1537f8..0000000000 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Chevron.kt +++ /dev/null @@ -1,91 +0,0 @@ -package net.mullvad.mullvadvpn.compose.component - -import androidx.compose.animation.core.LinearEasing -import androidx.compose.animation.core.TweenSpec -import androidx.compose.animation.core.animateFloatAsState -import androidx.compose.foundation.layout.Column -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.rotate -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.tooling.preview.Preview -import net.mullvad.mullvadvpn.R - -@Composable -@Preview -private fun PreviewChevron() { - Column { - Chevron(color = MaterialTheme.colorScheme.onPrimary, isExpanded = false) - Chevron(color = MaterialTheme.colorScheme.onPrimary, isExpanded = true) - } -} - -@Composable -@Preview -private fun PreviewChevronRight() { - Column { - ChevronLeft(tint = MaterialTheme.colorScheme.onPrimary) - ChevronRight(tint = MaterialTheme.colorScheme.onPrimary) - } -} - -@Composable -fun Chevron(modifier: Modifier = Modifier, color: Color, isExpanded: Boolean) { - - val degree = remember(isExpanded) { if (isExpanded) UP_ROTATION else DOWN_ROTATION } - val animatedRotation = - animateFloatAsState( - targetValue = degree, - label = "", - animationSpec = TweenSpec(100, easing = LinearEasing), - ) - - Icon( - painterResource(id = R.drawable.icon_chevron), - contentDescription = null, - tint = color, - modifier = modifier.rotate(animatedRotation.value), - ) -} - -@Composable -fun ChevronLeft(modifier: Modifier = Modifier, tint: Color, contentDescription: String? = null) { - Icon( - painterResource(id = R.drawable.icon_chevron), - contentDescription = contentDescription, - tint = tint, - modifier = modifier.rotate(LEFT_ROTATION), - ) -} - -@Composable -fun ChevronRight(modifier: Modifier = Modifier, tint: Color, contentDescription: String? = null) { - Icon( - painterResource(id = R.drawable.icon_chevron), - contentDescription = contentDescription, - tint = tint, - modifier = modifier.rotate(RIGHT_ROTATION), - ) -} - -@Composable -fun ExpandChevronIconButton( - modifier: Modifier = Modifier, - color: Color, - onExpand: (Boolean) -> Unit, - isExpanded: Boolean, -) { - IconButton(modifier = modifier, onClick = { onExpand(!isExpanded) }) { - Chevron(isExpanded = isExpanded, color = color) - } -} - -private const val RIGHT_ROTATION = -90f -private const val LEFT_ROTATION = 90f -private const val DOWN_ROTATION = 0f -private const val UP_ROTATION = 180f diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CopyableObfuscationView.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CopyableObfuscationView.kt index ac0938756e..430ae0cba1 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CopyableObfuscationView.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CopyableObfuscationView.kt @@ -2,6 +2,11 @@ package net.mullvad.mullvadvpn.compose.component import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Check +import androidx.compose.material.icons.filled.ContentCopy +import androidx.compose.material.icons.filled.Visibility +import androidx.compose.material.icons.filled.VisibilityOff import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -10,7 +15,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment.Companion.CenterVertically 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 net.mullvad.mullvadvpn.R @@ -38,8 +42,8 @@ fun CopyableObfuscationView( modifier = Modifier.weight(1f), ) AnimatedIconButton( - defaultIcon = painterResource(id = R.drawable.icon_hide), - secondaryIcon = painterResource(id = R.drawable.icon_show), + defaultIcon = Icons.Default.Visibility, + secondaryIcon = Icons.Default.VisibilityOff, defaultIconTint = MaterialTheme.colorScheme.onSurface, secondaryIconTint = MaterialTheme.colorScheme.onSurface, isToggleButton = true, @@ -54,8 +58,8 @@ fun CopyableObfuscationView( @Composable fun CopyAnimatedIconButton(onClick: () -> Unit) { AnimatedIconButton( - defaultIcon = painterResource(id = R.drawable.icon_copy), - secondaryIcon = painterResource(id = R.drawable.icon_tick), + defaultIcon = Icons.Default.ContentCopy, + secondaryIcon = Icons.Default.Check, defaultIconTint = MaterialTheme.colorScheme.onSurface, secondaryIconTint = MaterialTheme.colorScheme.tertiary, isToggleButton = false, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/ExpandChevron.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/ExpandChevron.kt new file mode 100644 index 0000000000..a38b283256 --- /dev/null +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/ExpandChevron.kt @@ -0,0 +1,61 @@ +package net.mullvad.mullvadvpn.compose.component + +import androidx.compose.animation.core.LinearEasing +import androidx.compose.animation.core.TweenSpec +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.foundation.layout.Column +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.KeyboardArrowDown +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.rotate +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview + +@Composable +@Preview +private fun PreviewChevron() { + Column { + ExpandChevron(color = MaterialTheme.colorScheme.onPrimary, isExpanded = false) + ExpandChevron(color = MaterialTheme.colorScheme.onPrimary, isExpanded = true) + } +} + +@Composable +fun ExpandChevron(modifier: Modifier = Modifier, color: Color, isExpanded: Boolean) { + + val degree = remember(isExpanded) { if (isExpanded) UP_ROTATION else DOWN_ROTATION } + val animatedRotation = + animateFloatAsState( + targetValue = degree, + label = "", + animationSpec = TweenSpec(ROTATION_ANIMATION_DURATION, easing = LinearEasing), + ) + + Icon( + imageVector = Icons.Default.KeyboardArrowDown, + contentDescription = null, + tint = color, + modifier = modifier.rotate(animatedRotation.value), + ) +} + +@Composable +fun ExpandChevronIconButton( + modifier: Modifier = Modifier, + color: Color, + onExpand: (Boolean) -> Unit, + isExpanded: Boolean, +) { + IconButton(modifier = modifier, onClick = { onExpand(!isExpanded) }) { + ExpandChevron(isExpanded = isExpanded, color = color) + } +} + +private const val DOWN_ROTATION = 0f +private const val UP_ROTATION = 180f +private const val ROTATION_ANIMATION_DURATION = 100 diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/FilterChip.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/FilterChip.kt index 94e1c7853a..92e2093177 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/FilterChip.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/FilterChip.kt @@ -1,6 +1,8 @@ package net.mullvad.mullvadvpn.compose.component import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Clear import androidx.compose.material3.FilterChipDefaults import androidx.compose.material3.Icon import androidx.compose.material3.InputChip @@ -9,7 +11,6 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import net.mullvad.mullvadvpn.R @@ -76,7 +77,7 @@ fun MullvadFilterChip( if (enabled) { { Icon( - painter = painterResource(id = R.drawable.icon_close), + imageVector = Icons.Default.Clear, contentDescription = null, modifier = Modifier.size(Dimens.smallIconSize), ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/MullvadModalBottomSheet.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/MullvadModalBottomSheet.kt index 1276823792..83f4758db4 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/MullvadModalBottomSheet.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/MullvadModalBottomSheet.kt @@ -30,7 +30,7 @@ private fun PreviewMullvadModalBottomSheet() { sheetContent = { HeaderCell(text = "Title") HorizontalDivider() - IconCell(iconId = null, title = "Select") + IconCell(imageVector = null, title = "Select") }, onDismissRequest = {}, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NavigateButton.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NavigateButton.kt index c9064e1372..43ba773cdc 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NavigateButton.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NavigateButton.kt @@ -1,34 +1,32 @@ package net.mullvad.mullvadvpn.compose.component +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.material.icons.filled.ArrowDownward +import androidx.compose.material.icons.filled.Close import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.rotate -import androidx.compose.ui.res.painterResource -import net.mullvad.mullvadvpn.R @Composable fun NavigateBackIconButton(modifier: Modifier = Modifier, onNavigateBack: () -> Unit) { IconButton(onClick = onNavigateBack, modifier = modifier) { - Icon(painter = painterResource(id = R.drawable.icon_back), contentDescription = null) + Icon(imageVector = Icons.AutoMirrored.Default.ArrowBack, contentDescription = null) } } @Composable fun NavigateBackDownIconButton(onNavigateBack: () -> Unit) { IconButton(onClick = onNavigateBack) { - Icon( - modifier = Modifier.rotate(-90f), - painter = painterResource(id = R.drawable.icon_back), - contentDescription = null, - ) + Icon(imageVector = Icons.Default.ArrowDownward, contentDescription = null) } } @Composable fun NavigateCloseIconButton(onNavigateClose: () -> Unit) { IconButton(onClick = onNavigateClose) { - Icon(painter = painterResource(id = R.drawable.icon_close), contentDescription = null) + Icon(imageVector = Icons.Default.Close, contentDescription = null) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/PlayPayment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/PlayPayment.kt index 87757167a7..ce2c49bf9c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/PlayPayment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/PlayPayment.kt @@ -6,6 +6,8 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Info import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -14,7 +16,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.res.stringResource import androidx.compose.ui.tooling.preview.Preview import net.mullvad.mullvadvpn.R @@ -162,7 +163,7 @@ fun PlayPayment( modifier = Modifier.testTag(PLAY_PAYMENT_INFO_ICON_TEST_TAG), ) { Icon( - painter = painterResource(id = R.drawable.icon_info), + imageVector = Icons.Default.Info, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Scaffolding.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Scaffolding.kt index 72ee86678b..3d591bafba 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Scaffolding.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Scaffolding.kt @@ -11,6 +11,9 @@ import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.OpenInNew +import androidx.compose.material.icons.filled.OpenInNew import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -26,8 +29,6 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.nestedscroll.nestedScroll -import androidx.compose.ui.res.painterResource -import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.compose.button.PrimaryButton import net.mullvad.mullvadvpn.lib.theme.Dimens import net.mullvad.mullvadvpn.lib.theme.color.AlphaScrollbar @@ -245,7 +246,8 @@ fun ScaffoldWithLargeTopBarAndButton( ), trailingIcon = { Icon( - painter = painterResource(id = R.drawable.icon_extlink), + imageVector = Icons.AutoMirrored.Filled.OpenInNew, + tint = MaterialTheme.colorScheme.onPrimary, contentDescription = null, ) }, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/TopBar.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/TopBar.kt index d90be57952..5bdb8e71ca 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/TopBar.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/TopBar.kt @@ -17,6 +17,9 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.AccountCircle +import androidx.compose.material.icons.filled.Settings import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -161,7 +164,7 @@ fun MullvadTopBar( onClick = onAccountClicked, ) { Icon( - painter = painterResource(R.drawable.icon_account), + imageVector = Icons.Default.AccountCircle, tint = iconTintColor, contentDescription = stringResource(id = R.string.settings_account), ) @@ -175,7 +178,7 @@ fun MullvadTopBar( onClick = onSettingsClicked, ) { Icon( - painter = painterResource(R.drawable.icon_settings), + imageVector = Icons.Default.Settings, tint = iconTintColor, contentDescription = stringResource(id = R.string.settings), ) @@ -229,10 +232,7 @@ private fun PreviewSlimMediumTopBar() { title = "Long top bar with long title", actions = { IconButton(onClick = {}) { - Icon( - painter = painterResource(id = R.drawable.icon_settings), - contentDescription = null, - ) + Icon(imageVector = Icons.Default.Settings, contentDescription = null) } }, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt index ac325c8f9c..676b08ed34 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt @@ -19,7 +19,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.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -186,7 +185,8 @@ private fun Notification(notificationBannerData: NotificationData) { onClick = it.onClick, ) { Icon( - painter = painterResource(id = it.icon), + modifier = Modifier.padding(Dimens.notificationIconPadding), + imageVector = it.icon, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt index bffd7d7560..1b811ed313 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt @@ -1,8 +1,12 @@ package net.mullvad.mullvadvpn.compose.component.notificationbanner -import androidx.annotation.DrawableRes +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.OpenInNew +import androidx.compose.material.icons.filled.Clear +import androidx.compose.material.icons.filled.OpenInNew import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString @@ -31,7 +35,7 @@ data class NotificationData( ) : this(title, message?.let { AnnotatedString(it) }, statusLevel, action) } -data class NotificationAction(@DrawableRes val icon: Int, val onClick: (() -> Unit)) +data class NotificationAction(val icon: ImageVector, val onClick: (() -> Unit)) @Composable fun InAppNotification.toNotificationData( @@ -60,7 +64,7 @@ fun InAppNotification.toNotificationData( ) ), statusLevel = StatusLevel.Info, - action = NotificationAction(R.drawable.icon_close, onDismissNewDevice), + action = NotificationAction(Icons.Default.Clear, onDismissNewDevice), ) is InAppNotification.AccountExpiry -> NotificationData( @@ -69,7 +73,8 @@ fun InAppNotification.toNotificationData( statusLevel = StatusLevel.Error, action = if (isPlayBuild) null - else NotificationAction(R.drawable.icon_extlink, onClickShowAccount), + else + NotificationAction(Icons.AutoMirrored.Default.OpenInNew, onClickShowAccount), ) InAppNotification.TunnelStateBlocked -> NotificationData( @@ -84,7 +89,11 @@ fun InAppNotification.toNotificationData( statusLevel = StatusLevel.Error, action = if (isPlayBuild) null - else NotificationAction(R.drawable.icon_extlink, onClickUpdateVersion), + else + NotificationAction( + Icons.AutoMirrored.Default.OpenInNew, + onClickUpdateVersion, + ), ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DaitaConfirmationDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DaitaConfirmationDialog.kt index a5237a0ca5..a79398897a 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DaitaConfirmationDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DaitaConfirmationDialog.kt @@ -7,6 +7,8 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Error import androidx.compose.material3.AlertDialog import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -14,7 +16,6 @@ import androidx.compose.material3.Text 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.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.lifecycle.compose.dropUnlessResumed @@ -44,7 +45,7 @@ fun DaitaConfirmation(navigator: ResultBackNavigator<Boolean>) { icon = { Icon( modifier = Modifier.fillMaxWidth().height(Dimens.dialogIconHeight), - painter = painterResource(id = R.drawable.icon_alert), + imageVector = Icons.Default.Error, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/NegativeConfirmationDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/NegativeConfirmationDialog.kt index bad856d8c7..4720fd9fb7 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/NegativeConfirmationDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/NegativeConfirmationDialog.kt @@ -4,6 +4,8 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Error import androidx.compose.material3.AlertDialog import androidx.compose.material3.Icon import androidx.compose.material3.LocalTextStyle @@ -14,7 +16,6 @@ import androidx.compose.ui.Alignment 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.text.AnnotatedString import androidx.compose.ui.text.TextStyle @@ -80,7 +81,7 @@ fun NegativeConfirmationDialog( icon = { Icon( modifier = Modifier.fillMaxWidth().height(Dimens.dialogIconHeight), - painter = painterResource(id = R.drawable.icon_alert), + imageVector = Icons.Default.Error, contentDescription = stringResource(id = R.string.remove_button), tint = MaterialTheme.colorScheme.error, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/info/InfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/info/InfoDialog.kt index f1f0a6d41f..b77decc9f0 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/info/InfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/info/InfoDialog.kt @@ -7,6 +7,8 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Info import androidx.compose.material3.AlertDialog import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -14,7 +16,6 @@ import androidx.compose.material3.Text 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.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview @@ -48,7 +49,7 @@ fun InfoDialog(message: String, additionalInfo: String? = null, onDismiss: () -> icon = { Icon( modifier = Modifier.fillMaxWidth().height(Dimens.dialogIconHeight), - painter = painterResource(id = R.drawable.icon_info), + imageVector = Icons.Default.Info, contentDescription = "", tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/preview/SplitTunnelingUiStatePreviewParameterProvider.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/preview/SplitTunnelingUiStatePreviewParameterProvider.kt index 70d9d2eae2..dee2d25733 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/preview/SplitTunnelingUiStatePreviewParameterProvider.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/preview/SplitTunnelingUiStatePreviewParameterProvider.kt @@ -16,12 +16,12 @@ class SplitTunnelingUiStatePreviewParameterProvider : AppData( packageName = "my.package.a", name = "TitleA", - iconRes = R.drawable.icon_alert, + iconRes = R.drawable.ic_icons_missing, ), AppData( packageName = "my.package.b", name = "TitleB", - iconRes = R.drawable.icon_chevron, + iconRes = R.drawable.ic_icons_missing, ), ), includedApps = @@ -29,7 +29,7 @@ class SplitTunnelingUiStatePreviewParameterProvider : AppData( packageName = "my.package.c", name = "TitleC", - iconRes = R.drawable.icon_alert, + iconRes = R.drawable.ic_icons_missing, ) ), showSystemApps = true, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt index ac1d758ecc..262f990d99 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt @@ -8,6 +8,8 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Info import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -20,7 +22,6 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalUriHandler -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter @@ -45,7 +46,7 @@ import net.mullvad.mullvadvpn.compose.button.RedeemVoucherButton import net.mullvad.mullvadvpn.compose.component.CopyableObfuscationView import net.mullvad.mullvadvpn.compose.component.InformationView import net.mullvad.mullvadvpn.compose.component.MissingPolicy -import net.mullvad.mullvadvpn.compose.component.NavigateBackDownIconButton +import net.mullvad.mullvadvpn.compose.component.NavigateCloseIconButton import net.mullvad.mullvadvpn.compose.component.PlayPayment import net.mullvad.mullvadvpn.compose.component.ScaffoldWithMediumTopBar import net.mullvad.mullvadvpn.compose.extensions.createOpenAccountPageHook @@ -151,7 +152,7 @@ fun AccountScreen( ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.settings_account), - navigationIcon = { NavigateBackDownIconButton(onBackClick) }, + navigationIcon = { NavigateCloseIconButton(onBackClick) }, snackbarHostState = snackbarHostState, ) { modifier -> Column( @@ -224,7 +225,7 @@ private fun DeviceNameRow(deviceName: String, onInfoClick: () -> Unit) { InformationView(content = deviceName, whenMissing = MissingPolicy.SHOW_SPINNER) IconButton(onClick = onInfoClick) { Icon( - painter = painterResource(id = R.drawable.icon_info), + imageVector = Icons.Default.Info, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt index 51214b294a..5dc2fa6d30 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt @@ -5,6 +5,9 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListScope +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ChevronRight +import androidx.compose.material.icons.filled.Info import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -14,7 +17,6 @@ import androidx.compose.runtime.getValue 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.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter @@ -28,7 +30,6 @@ import com.ramcosta.composedestinations.navigation.DestinationsNavigator import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.compose.button.PrimaryButton import net.mullvad.mullvadvpn.compose.cell.TwoRowCell -import net.mullvad.mullvadvpn.compose.component.ChevronRight import net.mullvad.mullvadvpn.compose.component.NavigateBackIconButton import net.mullvad.mullvadvpn.compose.component.ScaffoldWithMediumTopBar import net.mullvad.mullvadvpn.compose.constant.ContentType @@ -144,7 +145,7 @@ private fun LazyListScope.currentAccessMethod( .testTag(API_ACCESS_LIST_INFO_TEST_TAG), ) { Icon( - painter = painterResource(id = R.drawable.icon_info), + imageVector = Icons.Default.Info, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) @@ -188,9 +189,10 @@ private fun ApiAccessMethodItem( titleStyle = MaterialTheme.typography.titleMedium, subtitleColor = MaterialTheme.colorScheme.onSurfaceVariant, bodyView = { - ChevronRight( - tint = MaterialTheme.colorScheme.onPrimary, + Icon( + Icons.Default.ChevronRight, contentDescription = apiAccessMethodSetting.name.value, + tint = MaterialTheme.colorScheme.onPrimary, ) }, onCellClicked = { onApiAccessMethodClick(apiAccessMethodSetting) }, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt index 4d806b3645..68cd3dd00b 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt @@ -6,6 +6,9 @@ import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Delete +import androidx.compose.material.icons.filled.MoreVert import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.HorizontalDivider @@ -26,7 +29,6 @@ import androidx.compose.ui.Alignment 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.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter @@ -274,7 +276,7 @@ private fun Actions(onDeleteAccessMethod: () -> Unit) { onClick = { showMenu = true }, modifier = Modifier.testTag(API_ACCESS_DETAILS_TOP_BAR_DROPDOWN_BUTTON_TEST_TAG), ) { - Icon(painter = painterResource(id = R.drawable.icon_more_vert), contentDescription = null) + Icon(imageVector = Icons.Default.MoreVert, contentDescription = null) if (showMenu) { DropdownMenu( expanded = true, @@ -285,7 +287,8 @@ private fun Actions(onDeleteAccessMethod: () -> Unit) { text = { Text(text = stringResource(id = R.string.delete_method)) }, leadingIcon = { Icon( - painter = painterResource(id = R.drawable.icon_delete), + imageVector = Icons.Default.Delete, + tint = MaterialTheme.colorScheme.onSurface, contentDescription = null, ) }, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt index f95c4681f9..0a69b4fbb6 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt @@ -19,6 +19,9 @@ import androidx.compose.foundation.pager.PagerState import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.text.ClickableText +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ChevronLeft +import androidx.compose.material.icons.filled.ChevronRight import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -29,7 +32,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.clip -import androidx.compose.ui.draw.rotate +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -115,7 +118,7 @@ fun AutoConnectAndLockdownModeScreen(onBackClick: () -> Unit = {}) { } }, isEnabled = { pagerState.currentPage != 0 }, - rotation = 90f, + imageVector = Icons.Default.ChevronLeft, ) // Go to next page @@ -132,7 +135,7 @@ fun AutoConnectAndLockdownModeScreen(onBackClick: () -> Unit = {}) { } }, isEnabled = { pagerState.currentPage != pagerState.pageCount - 1 }, - rotation = -90f, + imageVector = Icons.Default.ChevronRight, ) PageIndicator( @@ -216,18 +219,14 @@ private fun CarouselNavigationButton( modifier: Modifier = Modifier, onClick: () -> Unit, isEnabled: () -> Boolean, - rotation: Float, + imageVector: ImageVector, ) { IconButton( modifier = modifier.alpha(if (isEnabled.invoke()) AlphaVisible else AlphaInvisible), onClick = onClick, enabled = isEnabled.invoke(), ) { - Icon( - painter = painterResource(id = R.drawable.icon_chevron), - contentDescription = null, - modifier = Modifier.rotate(rotation), - ) + Icon(contentDescription = null, imageVector = imageVector) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt index 4f39295d37..a9d47893b1 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt @@ -65,8 +65,8 @@ import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.compose.button.ConnectionButton import net.mullvad.mullvadvpn.compose.button.SwitchLocationButton -import net.mullvad.mullvadvpn.compose.component.Chevron import net.mullvad.mullvadvpn.compose.component.ConnectionStatusText +import net.mullvad.mullvadvpn.compose.component.ExpandChevron import net.mullvad.mullvadvpn.compose.component.MullvadCircularProgressIndicatorLarge import net.mullvad.mullvadvpn.compose.component.ScaffoldWithTopBarAndDeviceName import net.mullvad.mullvadvpn.compose.component.connectioninfo.ConnectionDetailPanel @@ -397,7 +397,7 @@ private fun ConnectionCardHeader( Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { ConnectionStatusText(state = state.tunnelState) if (state.tunnelState is TunnelState.Connected) { - Chevron(isExpanded = !expanded, color = MaterialTheme.colorScheme.onSurface) + ExpandChevron(isExpanded = !expanded, color = MaterialTheme.colorScheme.onSurface) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt index 65fca696e8..08ec0ee503 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt @@ -4,6 +4,8 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.foundation.lazy.LazyListState +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Add import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -18,7 +20,6 @@ import androidx.compose.ui.Alignment 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.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter @@ -125,7 +126,7 @@ fun CustomListsScreen( modifier = Modifier.testTag(NEW_LIST_BUTTON_TEST_TAG), ) { Icon( - painterResource(id = R.drawable.ic_icons_add), + imageVector = Icons.Default.Add, tint = MaterialTheme.colorScheme.onSurface, contentDescription = stringResource(id = R.string.new_list), ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt index 7617a8cb63..beb83a9b2e 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt @@ -12,6 +12,8 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Clear import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -312,7 +314,7 @@ private fun DeviceListItem(device: Device, isLoading: Boolean, onDeviceRemovalCl } else { IconButton(onClick = onDeviceRemovalClicked) { Icon( - painter = painterResource(id = R.drawable.icon_close), + imageVector = Icons.Default.Clear, contentDescription = stringResource(id = R.string.remove_button), tint = MaterialTheme.colorScheme.onPrimary, modifier = Modifier.size(size = Dimens.deleteIconSize), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditApiAccessMethodScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditApiAccessMethodScreen.kt index 32a4242a91..6596f7c343 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditApiAccessMethodScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditApiAccessMethodScreen.kt @@ -8,6 +8,8 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Check import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.SnackbarDuration @@ -22,7 +24,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha 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.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardCapitalization @@ -318,7 +319,7 @@ private fun ApiAccessMethodTypeSelection( }, leadingIcon = { Icon( - painter = painterResource(id = R.drawable.icon_tick), + imageVector = Icons.Default.Check, contentDescription = null, modifier = Modifier.padding(end = Dimens.selectableCellTextMargin) @@ -495,7 +496,7 @@ private fun CipherSelection(cipher: Cipher, onCipherChange: (Cipher) -> Unit) { }, leadingIcon = { Icon( - painter = painterResource(id = R.drawable.icon_tick), + imageVector = Icons.Default.Check, contentDescription = null, modifier = Modifier.padding(end = Dimens.selectableCellTextMargin) @@ -534,7 +535,7 @@ private fun EnableAuthentication( }, leadingIcon = { Icon( - painter = painterResource(id = R.drawable.icon_tick), + imageVector = Icons.Default.Check, contentDescription = null, modifier = Modifier.padding(end = Dimens.selectableCellTextMargin) @@ -550,7 +551,7 @@ private fun EnableAuthentication( }, leadingIcon = { Icon( - painter = painterResource(id = R.drawable.icon_tick), + imageVector = Icons.Default.Check, contentDescription = null, modifier = Modifier.padding(end = Dimens.selectableCellTextMargin) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditCustomListScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditCustomListScreen.kt index e73f0885ca..30f5491c73 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditCustomListScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditCustomListScreen.kt @@ -2,6 +2,9 @@ package net.mullvad.mullvadvpn.compose.screen import androidx.compose.foundation.background import androidx.compose.foundation.layout.padding +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Delete +import androidx.compose.material.icons.filled.MoreVert import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon @@ -16,7 +19,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.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview @@ -180,7 +182,7 @@ private fun Actions(enabled: Boolean, onDeleteList: () -> Unit) { onClick = { showMenu = true }, modifier = Modifier.testTag(TOP_BAR_DROPDOWN_BUTTON_TEST_TAG), ) { - Icon(painter = painterResource(id = R.drawable.icon_more_vert), contentDescription = null) + Icon(imageVector = Icons.Default.MoreVert, contentDescription = null) if (showMenu) { DropdownMenu( expanded = true, @@ -191,7 +193,8 @@ private fun Actions(enabled: Boolean, onDeleteList: () -> Unit) { text = { Text(text = stringResource(id = R.string.delete_list)) }, leadingIcon = { Icon( - painter = painterResource(id = R.drawable.icon_delete), + imageVector = Icons.Default.Delete, + tint = MaterialTheme.colorScheme.onSurface, contentDescription = null, ) }, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/FilterScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/FilterScreen.kt index e2de301c9c..87fe75b9f1 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/FilterScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/FilterScreen.kt @@ -9,6 +9,8 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyItemScope +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -22,7 +24,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -230,7 +231,7 @@ private fun TopBar(onBackClick: () -> Unit) { Row(Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) { IconButton(onClick = onBackClick) { Icon( - painter = painterResource(id = R.drawable.icon_back), + imageVector = Icons.AutoMirrored.Default.ArrowBack, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt index d29ed293b7..9dcd016767 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt @@ -21,6 +21,8 @@ import androidx.compose.foundation.shape.CornerSize import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Clear import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -390,7 +392,7 @@ private fun AccountDropDownItem( } IconButton(enabled = enabled, onClick = onDeleteClick) { Icon( - painter = painterResource(id = R.drawable.account_history_remove_pressed), + imageVector = Icons.Default.Clear, contentDescription = null, modifier = Modifier.size(Dimens.listIconSize), ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt index 9ac8df45d0..f894eb8eba 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt @@ -15,6 +15,9 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.ClickableText import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.OpenInNew +import androidx.compose.material.icons.filled.OpenInNew import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -23,7 +26,6 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment 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.text.AnnotatedString import androidx.compose.ui.text.TextStyle @@ -180,7 +182,7 @@ private fun Content(onPrivacyPolicyLinkClicked: () -> Unit) { ) Icon( - painter = painterResource(id = R.drawable.icon_extlink), + imageVector = Icons.AutoMirrored.Filled.OpenInNew, contentDescription = null, modifier = Modifier.align(Alignment.CenterVertically) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt index bc3918bddb..e5e64c931d 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt @@ -17,6 +17,13 @@ import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Add +import androidx.compose.material.icons.filled.Close +import androidx.compose.material.icons.filled.Delete +import androidx.compose.material.icons.filled.Edit +import androidx.compose.material.icons.filled.FilterList +import androidx.compose.material.icons.filled.Remove import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon @@ -37,11 +44,9 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.rotate import androidx.compose.ui.graphics.Color 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.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -94,7 +99,6 @@ import net.mullvad.mullvadvpn.compose.transitions.SelectLocationTransition import net.mullvad.mullvadvpn.compose.util.CollectSideEffectWithLifecycle import net.mullvad.mullvadvpn.compose.util.RunOnKeyChange import net.mullvad.mullvadvpn.compose.util.showSnackbarImmediately -import net.mullvad.mullvadvpn.lib.model.CustomList import net.mullvad.mullvadvpn.lib.model.CustomListId import net.mullvad.mullvadvpn.lib.model.CustomListName import net.mullvad.mullvadvpn.lib.model.RelayItem @@ -485,8 +489,7 @@ private fun SelectLocationTopBar(onBackClick: () -> Unit, onFilterClick: () -> U Row(modifier = Modifier.fillMaxWidth()) { IconButton(onClick = onBackClick) { Icon( - modifier = Modifier.rotate(270f), - painter = painterResource(id = R.drawable.icon_back), + imageVector = Icons.Default.Close, tint = MaterialTheme.colorScheme.onSurface, contentDescription = null, ) @@ -500,7 +503,7 @@ private fun SelectLocationTopBar(onBackClick: () -> Unit, onFilterClick: () -> U ) IconButton(onClick = onFilterClick) { Icon( - painter = painterResource(id = R.drawable.icons_more_circle), + imageVector = Icons.Default.FilterList, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) @@ -644,7 +647,7 @@ private fun CustomListsBottomSheet( ) HorizontalDivider(color = onBackgroundColor) IconCell( - iconId = R.drawable.icon_add, + imageVector = Icons.Default.Add, title = stringResource(id = R.string.new_list), titleColor = onBackgroundColor, onClick = { @@ -654,7 +657,7 @@ private fun CustomListsBottomSheet( background = backgroundColor, ) IconCell( - iconId = R.drawable.icon_edit, + imageVector = Icons.Default.Edit, title = stringResource(id = R.string.edit_lists), titleColor = onBackgroundColor.copy( @@ -702,7 +705,7 @@ private fun LocationBottomSheet( customLists.forEach { val enabled = it.canAddLocation(item) IconCell( - iconId = null, + imageVector = null, title = if (enabled) { it.name @@ -724,7 +727,7 @@ private fun LocationBottomSheet( ) } IconCell( - iconId = R.drawable.icon_add, + imageVector = Icons.Default.Add, title = stringResource(id = R.string.new_list), titleColor = onBackgroundColor, onClick = { @@ -757,7 +760,7 @@ private fun EditCustomListBottomSheet( HeaderCell(text = customList.name, background = backgroundColor) HorizontalDivider(color = onBackgroundColor) IconCell( - iconId = R.drawable.icon_edit, + imageVector = Icons.Default.Edit, title = stringResource(id = R.string.edit_name), titleColor = onBackgroundColor, onClick = { @@ -767,7 +770,7 @@ private fun EditCustomListBottomSheet( background = backgroundColor, ) IconCell( - iconId = R.drawable.icon_add, + imageVector = Icons.Default.Add, title = stringResource(id = R.string.edit_locations), titleColor = onBackgroundColor, onClick = { @@ -777,7 +780,7 @@ private fun EditCustomListBottomSheet( background = backgroundColor, ) IconCell( - iconId = R.drawable.icon_delete, + imageVector = Icons.Default.Delete, title = stringResource(id = R.string.delete), titleColor = onBackgroundColor, onClick = { @@ -816,7 +819,7 @@ private fun CustomListEntryBottomSheet( HorizontalDivider(color = onBackgroundColor) IconCell( - iconId = R.drawable.ic_remove, + imageVector = Icons.Default.Remove, title = stringResource(id = R.string.remove_button), titleColor = onBackgroundColor, onClick = { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt index de257f319f..7021969dfc 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt @@ -11,6 +11,10 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Delete +import androidx.compose.material.icons.filled.Info +import androidx.compose.material.icons.filled.MoreVert +import androidx.compose.material.icons.filled.TextFields +import androidx.compose.material.icons.filled.UploadFile import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExperimentalMaterial3Api @@ -35,7 +39,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color 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.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview @@ -249,7 +252,7 @@ private fun ImportOverridesByBottomSheet( ) HorizontalDivider(color = onBackgroundColor) IconCell( - iconId = R.drawable.icon_upload_file, + imageVector = Icons.Default.UploadFile, title = stringResource(id = R.string.server_ip_overrides_import_by_file), onClick = { onImportByFile() @@ -259,7 +262,7 @@ private fun ImportOverridesByBottomSheet( modifier = Modifier.testTag(SERVER_IP_OVERRIDES_IMPORT_BY_FILE_TEST_TAG), ) IconCell( - iconId = R.drawable.icon_text_fields, + imageVector = Icons.Default.TextFields, title = stringResource(id = R.string.server_ip_overrides_import_by_text), onClick = { onImportByText() @@ -273,7 +276,7 @@ private fun ImportOverridesByBottomSheet( Row(verticalAlignment = Alignment.CenterVertically) { Icon( modifier = Modifier.padding(Dimens.mediumPadding), - painter = painterResource(id = R.drawable.icon_info), + imageVector = Icons.Default.Info, tint = MaterialTheme.colorScheme.error, contentDescription = null, ) @@ -309,7 +312,7 @@ private fun TopBarActions( onClick = { showMenu = !showMenu }, modifier = Modifier.testTag(SERVER_IP_OVERRIDE_MORE_VERT_TEST_TAG), ) { - Icon(painterResource(id = R.drawable.icon_more_vert), contentDescription = null) + Icon(imageVector = Icons.Default.MoreVert, contentDescription = null) } DropdownMenu( modifier = Modifier.background(MaterialTheme.colorScheme.surfaceContainer), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt index df18ba86cc..8a50649ac8 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt @@ -32,7 +32,7 @@ import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.compose.cell.DefaultExternalLinkView import net.mullvad.mullvadvpn.compose.cell.NavigationCellBody import net.mullvad.mullvadvpn.compose.cell.NavigationComposeCell -import net.mullvad.mullvadvpn.compose.component.NavigateBackDownIconButton +import net.mullvad.mullvadvpn.compose.component.NavigateCloseIconButton import net.mullvad.mullvadvpn.compose.component.ScaffoldWithMediumTopBar import net.mullvad.mullvadvpn.compose.extensions.itemWithDivider import net.mullvad.mullvadvpn.compose.preview.SettingsUiStatePreviewParameterProvider @@ -87,7 +87,7 @@ fun SettingsScreen( ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.settings), - navigationIcon = { NavigateBackDownIconButton(onBackClick) }, + navigationIcon = { NavigateCloseIconButton(onBackClick) }, ) { modifier, lazyListState -> LazyColumn( modifier = modifier.testTag(LAZY_LIST_TEST_TAG).animateContentSize(), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt index 24825aec04..a73ce7abb7 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt @@ -9,6 +9,7 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ContentCopy import androidx.compose.material.icons.filled.Share import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults @@ -30,7 +31,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusProperties import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter @@ -114,10 +114,7 @@ private fun TopBar( onClick = { clipboardHandle(state.text(), clipboardToastMessage) }, modifier = Modifier.focusProperties { down = FocusRequester.Cancel }, ) { - Icon( - painter = painterResource(id = R.drawable.icon_copy), - contentDescription = null, - ) + Icon(imageVector = Icons.Default.ContentCopy, contentDescription = null) } IconButton( onClick = { scope.launch { shareText(context, state.text()) } }, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt index b5f7ae9752..5146d65bb0 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt @@ -11,6 +11,8 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Info import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -23,7 +25,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler -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 @@ -320,7 +321,7 @@ fun DeviceNameRow(deviceName: String?, navigateToDeviceInfoDialog: () -> Unit) { onClick = navigateToDeviceInfoDialog, ) { Icon( - painter = painterResource(id = R.drawable.icon_info), + imageVector = Icons.Default.Info, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/ApiAccessMethodTextField.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/ApiAccessMethodTextField.kt index 76007f7ae8..05ec572194 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/ApiAccessMethodTextField.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/ApiAccessMethodTextField.kt @@ -5,6 +5,8 @@ import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Warning import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -12,11 +14,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalFocusManager -import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardType -import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.lib.theme.Dimens @Composable @@ -71,7 +71,7 @@ private fun ErrorSupportingText(text: String) { modifier = Modifier.padding(top = Dimens.miniPadding), ) { Icon( - painter = painterResource(id = R.drawable.icon_alert), + imageVector = Icons.Default.Warning, contentDescription = null, modifier = Modifier.size(Dimens.smallIconSize), tint = MaterialTheme.colorScheme.error, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/SearchTextField.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/SearchTextField.kt index d418add080..f8c45bd6b0 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/SearchTextField.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/SearchTextField.kt @@ -7,6 +7,9 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.size import androidx.compose.foundation.text.BasicTextField +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Clear +import androidx.compose.material.icons.filled.Search import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -21,7 +24,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.SolidColor -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.tooling.preview.Preview @@ -79,7 +81,7 @@ fun SearchTextField( visualTransformation = visualTransformation, leadingIcon = { Icon( - painter = painterResource(id = R.drawable.icons_search), + imageVector = Icons.Default.Search, contentDescription = null, modifier = Modifier.size( @@ -100,7 +102,7 @@ fun SearchTextField( searchTerm = "" onValueChange.invoke(searchTerm) }, - painter = painterResource(id = R.drawable.icon_close), + imageVector = Icons.Default.Clear, tint = textColor, contentDescription = null, ) diff --git a/android/app/src/main/res/drawable/icon_reload.xml b/android/app/src/main/res/drawable/icon_reload.xml deleted file mode 100644 index 1ab457eff5..0000000000 --- a/android/app/src/main/res/drawable/icon_reload.xml +++ /dev/null @@ -1,14 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <group> - <clip-path - android:pathData="M0,0h24v24h-24z"/> - <path - android:pathData="M6,12C6,8.686 8.686,6 12,6C13.776,6 15.373,6.771 16.472,8H15C14.448,8 14,8.448 14,9C14,9.552 14.448,10 15,10H19C19.552,10 20,9.552 20,9V5C20,4.448 19.552,4 19,4C18.448,4 18,4.448 18,5V6.709C16.535,5.049 14.39,4 12,4C7.582,4 4,7.582 4,12C4,16.418 7.582,20 12,20C14.13,20 16.067,19.166 17.5,17.809C17.901,17.43 17.918,16.797 17.539,16.396C17.159,15.995 16.526,15.977 16.125,16.357C15.049,17.376 13.598,18 12,18C8.686,18 6,15.314 6,12Z" - android:fillColor="#ffffff" - android:fillType="evenOdd"/> - </group> -</vector> diff --git a/android/config/baseline.xml b/android/config/baseline.xml index dbce168994..34abe7b924 100644 --- a/android/config/baseline.xml +++ b/android/config/baseline.xml @@ -5,16 +5,11 @@ <ID>CyclomaticComplexMethod:MockApiDispatcher.kt$MockApiDispatcher$override fun dispatch(request: RecordedRequest): MockResponse</ID> <ID>EmptyKtFile:build.gradle.kts$.build.gradle.kts</ID> <ID>LongMethod:NotificationBanner.kt$@Composable private fun Notification(notificationBannerData: NotificationData)</ID> - <ID>MagicNumber:Chevron.kt$100</ID> - <ID>MagicNumber:Chevron.kt$180f</ID> <ID>MagicNumber:CustomTextField.kt$100</ID> <ID>MagicNumber:LoginScreen.kt$3f</ID> - <ID>MagicNumber:NavigateButton.kt$90f</ID> - <ID>MagicNumber:NavigationComposeCell.kt$90f</ID> <ID>MagicNumber:RedeemVoucherDialog.kt$30</ID> <ID>MagicNumber:RedeemVoucherDialog.kt$59</ID> <ID>MagicNumber:ResourcesExtensions.kt$3</ID> - <ID>MagicNumber:SelectLocationScreen.kt$270f</ID> <ID>NestedBlockDepth:MockApiDispatcher.kt$MockApiDispatcher$override fun dispatch(request: RecordedRequest): MockResponse</ID> <ID>PrintStackTrace:Extensions.kt$ex</ID> <ID>ReturnCount:RelayNameComparator.kt$RelayNameComparator$private infix fun List<String>.compareWith(other: List<String>): Int</ID> diff --git a/android/gradle/libs.versions.toml b/android/gradle/libs.versions.toml index 58de53323e..91797b0185 100644 --- a/android/gradle/libs.versions.toml +++ b/android/gradle/libs.versions.toml @@ -100,6 +100,7 @@ compose-destinations = { module = "io.github.raamcosta.compose-destinations:core compose-destinations-ksp = { module = "io.github.raamcosta.compose-destinations:ksp", version.ref = "compose-destinations" } compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "compose" } compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "compose-material3" } +compose-icons-extended = { module = "androidx.compose.material:material-icons-extended", version.ref = "compose" } compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose" } compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "compose" } compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" } @@ -157,7 +158,7 @@ compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } # Kotlin kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } -kotlin-ksp = { id = "com.google.devtools.ksp", version.ref = "kotlin-ksp"} +kotlin-ksp = { id = "com.google.devtools.ksp", version.ref = "kotlin-ksp" } # Protobuf protobuf-core = { id = "com.google.protobuf", version.ref = "protobuf" } diff --git a/android/gradle/verification-metadata.xml b/android/gradle/verification-metadata.xml index 7d45a84c6c..bdb682fad9 100644 --- a/android/gradle/verification-metadata.xml +++ b/android/gradle/verification-metadata.xml @@ -570,14 +570,6 @@ <sha256 value="bf2340bdad5f6cecdb3ba577f35bb874fc5b78512b964cd9024596ff9b8246c0" origin="Generated by Gradle"/> </artifact> </component> - <component group="androidx.compose.material" name="material-desktop" version="1.6.0"> - <artifact name="material-desktop-1.6.0.jar"> - <sha256 value="68b568457feff9c68a6970ec20d268e8aa1bb1b65dd2693f8deda0543fb466b9" origin="Generated by Gradle"/> - </artifact> - <artifact name="material-desktop-1.6.0.module"> - <sha256 value="cac67624340b65ffe719fbdc693ed4f189ebf9d102613dce0811045b4de85a33" origin="Generated by Gradle"/> - </artifact> - </component> <component group="androidx.compose.material" name="material-icons-core" version="1.0.0"> <artifact name="material-icons-core-1.0.0.aar"> <sha256 value="6e049492ec2ff0a6a1166a5985a924cf4de03465d17462594284f81eafe1a9dd" origin="Generated by Gradle"/> @@ -594,6 +586,14 @@ <sha256 value="951f2a3a6c0913819dfaae7c69cb8cdf977f7c79bd53fef03e4faf459ee30a0f" origin="Generated by Gradle"/> </artifact> </component> + <component group="androidx.compose.material" name="material-icons-core" version="1.7.2"> + <artifact name="material-icons-core-1.7.2.module"> + <sha256 value="f9d0f5d0949813202d46380b580731e058517582b3a2e52535abda887df71e42" origin="Generated by Gradle"/> + </artifact> + <artifact name="material-icons-core-metadata-1.7.2.jar"> + <sha256 value="951f2a3a6c0913819dfaae7c69cb8cdf977f7c79bd53fef03e4faf459ee30a0f" origin="Generated by Gradle"/> + </artifact> + </component> <component group="androidx.compose.material" name="material-icons-core-android" version="1.6.0"> <artifact name="material-icons-core-android-1.6.0.module"> <sha256 value="5fb8f22f619c3383800a4742aa9b334a5ae3880bd3825b921031c9f99b6697fd" origin="Generated by Gradle"/> @@ -602,12 +602,44 @@ <sha256 value="0400755a3aa7270893445a18cd845e35064c9de02c1c41cf2083ad4724bcac6f" origin="Generated by Gradle"/> </artifact> </component> - <component group="androidx.compose.material" name="material-icons-core-desktop" version="1.6.0"> - <artifact name="material-icons-core-desktop-1.6.0.jar"> - <sha256 value="9ba0b869bf23bd64187c14a72303d604c287d189b095acf2ddd9e772d608f028" origin="Generated by Gradle"/> + <component group="androidx.compose.material" name="material-icons-core-android" version="1.7.2"> + <artifact name="material-icons-core-android-1.7.2.module"> + <sha256 value="e78ea081bd571f3cdc7ae819138298292f276c6195404c24aeb2bca36eb21268" origin="Generated by Gradle"/> + </artifact> + <artifact name="material-icons-core-release.aar"> + <sha256 value="dedfed0494094de997ba3211db51f4e7c08f1091acddb4dbc96f1d8e37e3fcf9" origin="Generated by Gradle"/> + </artifact> + </component> + <component group="androidx.compose.material" name="material-icons-core-desktop" version="1.7.2"> + <artifact name="material-icons-core-desktop-1.7.2.jar"> + <sha256 value="b5729220e242132b22b0c0317a304ff167a05cc685c3e9e6483d5dfca3495f56" origin="Generated by Gradle"/> + </artifact> + <artifact name="material-icons-core-desktop-1.7.2.module"> + <sha256 value="94c7b7fe0ee2ae2c508d187a2bb0f27ed3ba6a03788cabd99527e133effc8022" origin="Generated by Gradle"/> + </artifact> + </component> + <component group="androidx.compose.material" name="material-icons-extended" version="1.7.2"> + <artifact name="material-icons-extended-1.7.2.module"> + <sha256 value="615fa62f4e12c3b3ddead57697bf9503e5dfd27647f16d0a44ce3cbb0fdd97ee" origin="Generated by Gradle"/> + </artifact> + <artifact name="material-icons-extended-metadata-1.7.2.jar"> + <sha256 value="714e2bfc4095b291e0dbcbd7626bc0e420fc2f6a78f2416398596504debd9117" origin="Generated by Gradle"/> + </artifact> + </component> + <component group="androidx.compose.material" name="material-icons-extended-android" version="1.7.2"> + <artifact name="material-icons-extended-android-1.7.2.module"> + <sha256 value="9f9f2f3a0d13f4b7d5d5e118e919f6981e5ba411c608924ab0dd3fd1e6a16252" origin="Generated by Gradle"/> + </artifact> + <artifact name="material-icons-extended-release.aar"> + <sha256 value="cb4abd93d9919c4a4d05b0a4978120a45723cf22434f7c814de65379e7f1c4e1" origin="Generated by Gradle"/> + </artifact> + </component> + <component group="androidx.compose.material" name="material-icons-extended-desktop" version="1.7.2"> + <artifact name="material-icons-extended-desktop-1.7.2.jar"> + <sha256 value="0ade0b7d55cb008136d7b58b71100ce017dedb84be20af6da2e76b58b090f699" origin="Generated by Gradle"/> </artifact> - <artifact name="material-icons-core-desktop-1.6.0.module"> - <sha256 value="64130795b1384b0ee57f3ab8bd69493de54eb31bd0c1bbb8cb63168c45fc5026" origin="Generated by Gradle"/> + <artifact name="material-icons-extended-desktop-1.7.2.module"> + <sha256 value="447c791aba3af316e32cbffcd384aec9ef4d822dfd3d742e81c75a5365dc63e1" origin="Generated by Gradle"/> </artifact> </component> <component group="androidx.compose.material" name="material-ripple" version="1.0.0"> diff --git a/android/lib/resource/src/main/res/drawable/account_history_remove_pressed.xml b/android/lib/resource/src/main/res/drawable/account_history_remove_pressed.xml deleted file mode 100644 index 49d3484460..0000000000 --- a/android/lib/resource/src/main/res/drawable/account_history_remove_pressed.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="16dp" - android:height="16dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <path android:fillColor="#FF294D73" - android:pathData=" - M 12,24 - C 5.37312,24 0,18.62688 0,12 - C 0,5.37312 5.37312,0 12,0 - C 18.62688,0 24,5.37312 24,12 - C 24,18.62688 18.62688,24 12,24 - Z - M 13.5,12 - L 17.2947612,8.20523878 - C 17.6857559,7.81424414 17.6838785,7.18387854 17.293923,6.79392296 - L 17.206077,6.70607704 - C 16.8181114,6.31811142 16.1842538,6.31574616 15.7947612,6.70523878 - L 12,10.5 - L 8.20523878,6.70523878 - C 7.81574616,6.31574616 7.18188858,6.31811142 6.79392296,6.70607704 - L 6.70607704,6.79392296 - C 6.31612146,7.18387854 6.31424414,7.81424414 6.70523878,8.20523878 - L 10.5,12 - L 6.70523878,15.7947612 - C 6.31424414,16.1857559 6.31612146,16.8161215 6.70607704,17.206077 - L 6.79392296,17.293923 - C 7.18188858,17.6818886 7.81574616,17.6842538 8.20523878,17.2947612 - L 12,13.5 - L 15.7947612,17.2947612 - C 16.1842538,17.6842538 16.8181114,17.6818886 17.206077,17.293923 - L 17.293923,17.206077 - C 17.6838785,16.8161215 17.6857559,16.1857559 17.2947612,15.7947612 - L 13.5,12 - L13.5,12 - Z" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/ic_icons_add.xml b/android/lib/resource/src/main/res/drawable/ic_icons_add.xml deleted file mode 100644 index 97f0ca7fc7..0000000000 --- a/android/lib/resource/src/main/res/drawable/ic_icons_add.xml +++ /dev/null @@ -1,9 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:pathData="M13.05,5.66v5.29h5.29c0.513,0 0.99,0.398 0.99,0.99v0.12c0,0.578 -0.477,0.99 -0.99,0.99h-5.29v5.29c0,0.522 -0.412,0.989 -0.99,0.99l-0.12,-0.001c-0.59,0 -0.99,-0.467 -0.99,-0.989v-5.29H5.66c-0.534,0 -0.99,-0.427 -0.99,-0.99v-0.12c0,-0.559 0.456,-0.99 0.99,-0.99h5.29V5.66c0,-0.512 0.407,-0.99 0.99,-0.99h0.12c0.584,0 0.99,0.478 0.99,0.99zM12,24C5.373,24 0,18.627 0,12S5.373,0 12,0s12,5.373 12,12 -5.373,12 -12,12z" - android:fillColor="@android:color/white" - android:fillType="evenOdd" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/ic_icons_remove.xml b/android/lib/resource/src/main/res/drawable/ic_icons_remove.xml deleted file mode 100644 index 50b84ad42c..0000000000 --- a/android/lib/resource/src/main/res/drawable/ic_icons_remove.xml +++ /dev/null @@ -1,9 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:pathData="M13.05,10.95h5.29c0.513,0 0.99,0.398 0.99,0.99v0.12c0,0.578 -0.477,0.99 -0.99,0.99H5.66c-0.534,0 -0.99,-0.427 -0.99,-0.99v-0.12c0,-0.559 0.456,-0.99 0.99,-0.99H13.05zM12,24C5.373,24 0,18.627 0,12S5.373,0 12,0s12,5.373 12,12 -5.373,12 -12,12z" - android:fillColor="@android:color/white" - android:fillType="evenOdd" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/ic_remove.xml b/android/lib/resource/src/main/res/drawable/ic_remove.xml deleted file mode 100644 index 2a67ab0792..0000000000 --- a/android/lib/resource/src/main/res/drawable/ic_remove.xml +++ /dev/null @@ -1,8 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="960" - android:viewportHeight="960"> - <path android:fillColor="#FF000000" - android:pathData="M200,520v-80h560v80L200,520Z" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_account.xml b/android/lib/resource/src/main/res/drawable/icon_account.xml deleted file mode 100644 index c007ae4596..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_account.xml +++ /dev/null @@ -1,11 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:pathData="M12,24A12,12 0,0 1,3.515 3.515a12,12 0,1 1,16.97 16.97A11.922,11.922 0,0 1,12 24zM12,12.175a12.164,12.164 0,0 0,-2.873 0.348,17.625 17.625,0 0,0 -2.99,1.048A2.85,2.85 0,0 0,5 14.525a2.573,2.573 0,0 0,-0.442 1.512v0.791a1.39,1.39 0,0 0,1.4 1.4h12.1a1.392,1.392 0,0 0,1.4 -1.4v-0.791A2.567,2.567 0,0 0,19 14.525a2.809,2.809 0,0 0,-1.163 -0.954,19.906 19.906,0 0,0 -2.978,-1.036 11.634,11.634 0,0 0,-2.859 -0.36zM12,3.775a3.345,3.345 0,0 0,-3.49 3.491,3.346 3.346,0 0,0 3.49,3.49 3.348,3.348 0,0 0,3.49 -3.49A3.346,3.346 0,0 0,12 3.776z" - android:strokeWidth="1" - android:fillColor="#FFFFFF" - android:fillType="evenOdd" - android:strokeColor="#00000000" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_add.xml b/android/lib/resource/src/main/res/drawable/icon_add.xml deleted file mode 100644 index bef890413b..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_add.xml +++ /dev/null @@ -1,8 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="960" - android:viewportHeight="960"> - <path android:fillColor="@android:color/white" - android:pathData="M440,520L200,520L200,440L440,440L440,200L520,200L520,440L760,440L760,520L520,520L520,760L440,760L440,520Z" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_alert.xml b/android/lib/resource/src/main/res/drawable/icon_alert.xml deleted file mode 100644 index f8e4a2c0b0..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_alert.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <path android:fillColor="#E34039" - android:pathData=" - m 12,24 - c -6.627417,0 -12,-5.372583 -12,-12 - s 5.372583,-12 12,-12 12,5.372583 12,12 -5.372583,12 -12,12 - z - m 0,-19.5 - c -0.8284271,0 -1.5,0.67157288 -1.5,1.5 - v 7.5 - c 0,0.8284271 0.6715729,1.5 1.5,1.5 - s 1.5,-0.6715729 1.5,-1.5 - v -7.5 - c 0,-0.82842712 -0.6715729,-1.5 -1.5,-1.5 - z - m 0,12 - c -0.8284271,0 -1.5,0.6715729 -1.5,1.5 - s 0.6715729,1.5 1.5,1.5 1.5,-0.6715729 1.5,-1.5 -0.6715729,-1.5 -1.5,-1.5 - z - " /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_arrow_blue20.xml b/android/lib/resource/src/main/res/drawable/icon_arrow_blue20.xml deleted file mode 100644 index 1fc5f8c1a1..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_arrow_blue20.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="16dp" - android:viewportWidth="24.0" - android:viewportHeight="16.0"> - <group> - <path android:fillColor="#33294D73" - android:pathData="M18.7015867,9 L14.4331381,12.762659 C13.851665,13.2752305 13.8579999,14.1003943 14.4392669,14.612784 C15.0245863,15.1287461 15.9602099,15.1275926 16.5380921,14.6181865 L23.5668627,8.42228969 C23.8565791,8.16690324 24.000373,7.83391619 23.999837,7.50067932 L24,7.4966702 C23.999589,7.16348359 23.8547954,6.83138119 23.5668627,6.57756713 L16.5380921,0.381670278 C15.956619,-0.130901228 15.0205338,-0.125317014 14.4392669,0.387072772 C13.8539474,0.903034846 13.8552559,1.72779176 14.4331381,2.23719784 L18.7017491,6 L1.50909424,6 C0.66354084,6 0,6.67157288 0,7.5 C0,8.33420277 0.675644504,9 1.50909424,9 L18.7015867,9 Z" /> - </group> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_arrow_white.xml b/android/lib/resource/src/main/res/drawable/icon_arrow_white.xml deleted file mode 100644 index 8b0a0e5f20..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_arrow_white.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="16dp" - android:viewportWidth="24.0" - android:viewportHeight="16.0"> - <group> - <path android:fillColor="#FFFFFF" - android:pathData="M18.7015867,9 L14.4331381,12.762659 C13.851665,13.2752305 13.8579999,14.1003943 14.4392669,14.612784 C15.0245863,15.1287461 15.9602099,15.1275926 16.5380921,14.6181865 L23.5668627,8.42228969 C23.8565791,8.16690324 24.000373,7.83391619 23.999837,7.50067932 L24,7.4966702 C23.999589,7.16348359 23.8547954,6.83138119 23.5668627,6.57756713 L16.5380921,0.381670278 C15.956619,-0.130901228 15.0205338,-0.125317014 14.4392669,0.387072772 C13.8539474,0.903034846 13.8552559,1.72779176 14.4331381,2.23719784 L18.7017491,6 L1.50909424,6 C0.66354084,6 0,6.67157288 0,7.5 C0,8.33420277 0.675644504,9 1.50909424,9 L18.7015867,9 Z" /> - </group> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_back.xml b/android/lib/resource/src/main/res/drawable/icon_back.xml deleted file mode 100644 index 15ad00f442..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_back.xml +++ /dev/null @@ -1,11 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:pathData="M12,24C5.3731,24 -0,18.6269 -0,12C-0,5.3731 5.3731,0 12,0C18.6269,0 24,5.3731 24,12C24,18.6269 18.6269,24 12,24ZM7.0055,11.9979C6.9755,12.2732 7.0685,12.5604 7.2852,12.7774L13.2129,18.7118C13.5936,19.0929 14.2231,19.0908 14.6233,18.7027L14.6942,18.634C15.0925,18.2478 15.1055,17.6196 14.7109,17.218L9.5805,11.9979L14.7109,6.7777C15.1055,6.3762 15.0925,5.7479 14.6942,5.3618L14.6233,5.293C14.2231,4.9049 13.5936,4.9028 13.2129,5.2839L7.2852,11.2184C7.0685,11.4353 6.9755,11.7225 7.0055,11.9979L7.0055,11.9979Z" - android:strokeWidth="1" - android:fillColor="#FFFFFF" - android:fillType="evenOdd" - android:strokeColor="#00000000" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_chevron.xml b/android/lib/resource/src/main/res/drawable/icon_chevron.xml deleted file mode 100644 index 5f67b4e982..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_chevron.xml +++ /dev/null @@ -1,14 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <group> - <clip-path - android:pathData="M0,0h24v24h-24z"/> - <path - android:pathData="M16.707,9.293C16.317,8.902 15.683,8.902 15.293,9.293L12,12.586L8.707,9.293C8.317,8.902 7.683,8.902 7.293,9.293C6.902,9.683 6.902,10.317 7.293,10.707L11.293,14.707C11.683,15.098 12.317,15.098 12.707,14.707L16.707,10.707C17.098,10.317 17.098,9.683 16.707,9.293Z" - android:fillColor="#ffffff" - android:fillType="evenOdd"/> - </group> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_close.xml b/android/lib/resource/src/main/res/drawable/icon_close.xml deleted file mode 100644 index f00f638dc3..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_close.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <path android:fillColor="#FFFFFFFF" - android:pathData=" - M 12,24 - C 5.37312,24 0,18.62688 0,12 - C 0,5.37312 5.37312,0 12,0 - C 18.62688,0 24,5.37312 24,12 - C 24,18.62688 18.62688,24 12,24 - Z - M 13.5,12 - L 17.2947612,8.20523878 - C 17.6857559,7.81424414 17.6838785,7.18387854 17.293923,6.79392296 - L 17.206077,6.70607704 - C 16.8181114,6.31811142 16.1842538,6.31574616 15.7947612,6.70523878 - L 12,10.5 - L 8.20523878,6.70523878 - C 7.81574616,6.31574616 7.18188858,6.31811142 6.79392296,6.70607704 - L 6.70607704,6.79392296 - C 6.31612146,7.18387854 6.31424414,7.81424414 6.70523878,8.20523878 - L 10.5,12 - L 6.70523878,15.7947612 - C 6.31424414,16.1857559 6.31612146,16.8161215 6.70607704,17.206077 - L 6.79392296,17.293923 - C 7.18188858,17.6818886 7.81574616,17.6842538 8.20523878,17.2947612 - L 12,13.5 - L 15.7947612,17.2947612 - C 16.1842538,17.6842538 16.8181114,17.6818886 17.206077,17.293923 - L 17.293923,17.206077 - C 17.6838785,16.8161215 17.6857559,16.1857559 17.2947612,15.7947612 - L 13.5,12 - L13.5,12 - Z" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_copy.xml b/android/lib/resource/src/main/res/drawable/icon_copy.xml deleted file mode 100644 index 4a919a00b8..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_copy.xml +++ /dev/null @@ -1,8 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:pathData="M15.789,2.737L5.684,2.737A1.689,1.689 0,0 0,4 4.421v11.79a0.749,0.749 0,0 0,0.829 0.736,0.812 0.812,0 0,0 0.855,-0.736L5.684,4.421h10.105a0.9,0.9 0,0 0,0.832 -0.825,0.91 0.91,0 0,0 -0.832,-0.859zM18.315,6.105L9.053,6.105a1.689,1.689 0,0 0,-1.685 1.685v11.789a1.689,1.689 0,0 0,1.684 1.684h9.263A1.689,1.689 0,0 0,20 19.579L20,7.79a1.689,1.689 0,0 0,-1.684 -1.685zM18.315,19.579L9.053,19.579L9.053,7.79h9.263z" - android:fillColor="@android:color/white" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_delete.xml b/android/lib/resource/src/main/res/drawable/icon_delete.xml deleted file mode 100644 index 237623f73c..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_delete.xml +++ /dev/null @@ -1,8 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="960" - android:viewportHeight="960"> - <path android:fillColor="@android:color/white" - android:pathData="M280,840Q247,840 223.5,816.5Q200,793 200,760L200,240L160,240L160,160L360,160L360,120L600,120L600,160L800,160L800,240L760,240L760,760Q760,793 736.5,816.5Q713,840 680,840L280,840ZM680,240L280,240L280,760Q280,760 280,760Q280,760 280,760L680,760Q680,760 680,760Q680,760 680,760L680,240ZM360,680L440,680L440,320L360,320L360,680ZM520,680L600,680L600,320L520,320L520,680ZM280,240L280,240L280,760Q280,760 280,760Q280,760 280,760L280,760Q280,760 280,760Q280,760 280,760L280,240Z" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_edit.xml b/android/lib/resource/src/main/res/drawable/icon_edit.xml deleted file mode 100644 index aa7d748cc1..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_edit.xml +++ /dev/null @@ -1,8 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="960" - android:viewportHeight="960"> - <path android:fillColor="@android:color/white" - android:pathData="M200,760L257,760L648,369L591,312L200,703L200,760ZM120,840L120,670L648,143Q660,132 674.5,126Q689,120 705,120Q721,120 736,126Q751,132 762,144L817,200Q829,211 834.5,226Q840,241 840,256Q840,272 834.5,286.5Q829,301 817,313L290,840L120,840ZM760,256L760,256L704,200L704,200L760,256ZM619,341L591,312L591,312L648,369L648,369L619,341Z" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_extlink.xml b/android/lib/resource/src/main/res/drawable/icon_extlink.xml deleted file mode 100644 index 3d31a523b2..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_extlink.xml +++ /dev/null @@ -1,9 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="16dp" - android:height="16dp" - android:viewportWidth="16" - android:viewportHeight="16"> - <path android:pathData="M12.5858,2L8.9908,2C8.451,2 8,1.5523 8,1C8,0.4439 8.4464,0 8.997,0L15.003,0C15.547,0 16,0.4464 16,0.997L16,7.003C16,7.547 15.5523,8 15,8C14.4439,8 14,7.5564 14,7.0092L14,3.4142L6.7071,10.7071C6.3166,11.0976 5.6834,11.0976 5.2929,10.7071C4.9024,10.3166 4.9024,9.6834 5.2929,9.2929L12.5858,2ZM8.4645,4L6.4645,6L2,6L2,14L10,14L10,9.5355L12,7.5355L12,14.9975C12,15.5512 11.5442,16 10.9975,16L1.0025,16C0.4488,16 0,15.5442 0,14.9975L0,5.0025C0,4.4488 0.4558,4 1.0025,4L8.4645,4Z" - android:fillColor="#FFFFFF" - android:fillType="evenOdd" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_hide.xml b/android/lib/resource/src/main/res/drawable/icon_hide.xml deleted file mode 100644 index b16cceff5c..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_hide.xml +++ /dev/null @@ -1,8 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:pathData="M12,6a9.77,9.77 0,0 1,8.82 5.5,9.647 9.647,0 0,1 -2.41,3.12l1.41,1.41A11.8,11.8 0,0 0,23 11.5,11.834 11.834,0 0,0 8.36,4.57l1.65,1.65A10.108,10.108 0,0 1,12 6zM10.93,7.14L13,9.21a2.5,2.5 0,0 1,1.28 1.28l2.07,2.07a4.679,4.679 0,0 0,0.14 -1.07A4.483,4.483 0,0 0,12 7a4.244,4.244 0,0 0,-1.07 0.14zM2.01,3.87l2.68,2.68A11.738,11.738 0,0 0,1 11.5,11.827 11.827,0 0,0 12,19a11.73,11.73 0,0 0,4.32 -0.82l3.42,3.42a1,1 0,0 0,1.41 -1.41C20.8,19.807 3.791,2.777 3.42,2.45a1.1,1.1 0,0 0,-1.41 0,1.045 1.045,0 0,0 0,1.42zM9.51,11.37 L12.12,13.98A0.5,0.5 0,0 1,12 14a2.5,2.5 0,0 1,-2.5 -2.5c0,-0.05 0.01,-0.08 0.01,-0.13zM6.11,7.97 L7.86,9.72a4.6,4.6 0,0 0,-0.36 1.78,4.505 4.505,0 0,0 6.27,4.14l0.98,0.98A10.432,10.432 0,0 1,12 17a9.77,9.77 0,0 1,-8.82 -5.5,9.9 9.9,0 0,1 2.93,-3.53z" - android:fillColor="@android:color/white" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_info.xml b/android/lib/resource/src/main/res/drawable/icon_info.xml deleted file mode 100644 index 98f45776a3..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_info.xml +++ /dev/null @@ -1,8 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:pathData="M12,24A12,12 0,0 1,3.515 3.515a12,12 0,1 1,16.97 16.97A11.922,11.922 0,0 1,12 24zM12,9a1.5,1.5 0,0 0,-1.5 1.5L10.5,18a1.5,1.5 0,1 0,3 0v-7.5A1.5,1.5 0,0 0,12 9zM12,4.5A1.5,1.5 0,1 0,13.5 6,1.5 1.5,0 0,0 12,4.5z" - android:fillColor="#294d73" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_more_vert.xml b/android/lib/resource/src/main/res/drawable/icon_more_vert.xml deleted file mode 100644 index b96d08bd90..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_more_vert.xml +++ /dev/null @@ -1,8 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="960" - android:viewportHeight="960"> - <path android:fillColor="@android:color/white" - android:pathData="M480,800Q447,800 423.5,776.5Q400,753 400,720Q400,687 423.5,663.5Q447,640 480,640Q513,640 536.5,663.5Q560,687 560,720Q560,753 536.5,776.5Q513,800 480,800ZM480,560Q447,560 423.5,536.5Q400,513 400,480Q400,447 423.5,423.5Q447,400 480,400Q513,400 536.5,423.5Q560,447 560,480Q560,513 536.5,536.5Q513,560 480,560ZM480,320Q447,320 423.5,296.5Q400,273 400,240Q400,207 423.5,183.5Q447,160 480,160Q513,160 536.5,183.5Q560,207 560,240Q560,273 536.5,296.5Q513,320 480,320Z" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_reconnect.xml b/android/lib/resource/src/main/res/drawable/icon_reconnect.xml new file mode 100644 index 0000000000..5eda40b360 --- /dev/null +++ b/android/lib/resource/src/main/res/drawable/icon_reconnect.xml @@ -0,0 +1,13 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <group> + <clip-path + android:pathData="M0,0h24v24h-24z"/> + <path + android:pathData="M5.634,18.362C6.518,19.246 7.514,19.906 8.622,20.342C9.729,20.778 10.855,20.996 11.998,20.996C13.141,20.996 14.267,20.778 15.374,20.342C16.482,19.906 17.478,19.246 18.362,18.362L16.948,16.948C15.569,18.326 13.919,19.016 11.998,19.016C10.077,19.016 8.427,18.326 7.048,16.948C5.669,15.569 4.98,13.919 4.98,11.998C4.98,10.077 5.669,8.427 7.048,7.048C8.427,5.669 10.077,4.98 11.998,4.98C13.919,4.98 15.569,5.669 16.948,7.048L17.054,7.154H14.862L14.826,9.17H20.483V3.513L18.468,3.548V5.74L18.362,5.634C17.478,4.75 16.482,4.09 15.374,3.654C14.267,3.218 13.141,3 11.998,3C10.855,3 9.729,3.218 8.622,3.654C7.514,4.09 6.518,4.75 5.634,5.634C4.75,6.518 4.09,7.514 3.654,8.622C3.218,9.729 3,10.855 3,11.998C3,13.141 3.218,14.267 3.654,15.374C4.09,16.482 4.75,17.478 5.634,18.362Z" + android:fillColor="#1C1B1F"/> + </group> +</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_reload.xml b/android/lib/resource/src/main/res/drawable/icon_reload.xml deleted file mode 100644 index 0800d557ff..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_reload.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="22dp" - android:height="22dp" - android:viewportWidth="512.0" - android:viewportHeight="512.0"> - <path android:fillColor="#FFFFFFFF" - android:pathData="M 256.455 8 c 66.269 0.119 126.437 26.233 170.859 68.685 l 35.715 -35.715 C 478.149 25.851 504 36.559 504 57.941 V 192 c 0 13.255 -10.745 24 -24 24 H 345.941 c -21.382 0 -32.09 -25.851 -16.971 -40.971 l 41.75 -41.75 c -30.864 -28.899 -70.801 -44.907 -113.23 -45.273 -92.398 -0.798 -170.283 73.977 -169.484 169.442 C 88.764 348.009 162.184 424 256 424 c 41.127 0 79.997 -14.678 110.629 -41.556 4.743 -4.161 11.906 -3.908 16.368 0.553 l 39.662 39.662 c 4.872 4.872 4.631 12.815 -0.482 17.433 C 378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8 z" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_settings.xml b/android/lib/resource/src/main/res/drawable/icon_settings.xml deleted file mode 100644 index 65de785d70..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_settings.xml +++ /dev/null @@ -1,11 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:pathData="M21.2552,12C21.2552,12.408 21.2182,12.792 21.1688,13.176L23.7719,15.156C24.0063,15.336 24.068,15.66 23.9199,15.924L21.4526,20.076C21.3045,20.34 20.9838,20.448 20.7001,20.34L17.6282,19.14C16.9867,19.608 16.2959,20.016 15.5433,20.316L15.0745,23.496C15.0375,23.784 14.7785,24 14.4701,24L9.5354,24C9.227,24 8.9679,23.784 8.9309,23.496L8.4621,20.316C7.7096,20.016 7.0187,19.62 6.3772,19.14L3.3054,20.34C3.034,20.436 2.7009,20.34 2.5529,20.076L0.0855,15.924C-0.0625,15.66 -0.0008,15.336 0.2336,15.156L2.8366,13.176C2.7873,12.792 2.7502,12.396 2.7502,12C2.7502,11.604 2.7873,11.208 2.8366,10.824L0.2336,8.844C-0.0008,8.664 -0.0748,8.34 0.0855,8.076L2.5529,3.924C2.7009,3.66 3.0217,3.552 3.3054,3.66L6.3772,4.86C7.0187,4.392 7.7096,3.984 8.4621,3.684L8.9309,0.504C8.9679,0.216 9.227,0 9.5354,0L14.4701,0C14.7785,0 15.0375,0.216 15.0745,0.504L15.5433,3.684C16.2959,3.984 16.9867,4.38 17.6282,4.86L20.7001,3.66C20.9715,3.564 21.3046,3.66 21.4526,3.924L23.9199,8.076C24.068,8.34 24.0063,8.664 23.7719,8.844L21.1688,10.824C21.2182,11.208 21.2552,11.592 21.2552,12ZM12,17C14.7571,17 17,14.7571 17,12C17,9.2429 14.7571,7 12,7C9.2429,7 7,9.2429 7,12C7,14.7571 9.2429,17 12,17Z" - android:strokeWidth="1" - android:fillColor="#FFFFFF" - android:fillType="evenOdd" - android:strokeColor="#00000000" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_show.xml b/android/lib/resource/src/main/res/drawable/icon_show.xml deleted file mode 100644 index 9535f0287b..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_show.xml +++ /dev/null @@ -1,8 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:pathData="M12,6a9.77,9.77 0,0 1,8.82 5.5,9.822 9.822,0 0,1 -17.64,0A9.77,9.77 0,0 1,12 6m0,-2a11.827,11.827 0,0 0,-11 7.5,11.817 11.817,0 0,0 22,0A11.827,11.827 0,0 0,12 4zM12,9a2.5,2.5 0,1 1,-2.5 2.5A2.5,2.5 0,0 1,12 9m0,-2a4.5,4.5 0,1 0,4.5 4.5A4.507,4.507 0,0 0,12 7z" - android:fillColor="@android:color/white" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_spinner.xml b/android/lib/resource/src/main/res/drawable/icon_spinner.xml deleted file mode 100644 index 2475c4ef3c..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_spinner.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<rotate xmlns:android="http://schemas.android.com/apk/res/android" - android:fromDegrees="0" - android:toDegrees="360" - android:pivotX="50%" - android:pivotY="50%"> - <vector android:width="60dp" - android:height="60dp" - android:viewportWidth="60.0" - android:viewportHeight="60.0"> - <group> - <path android:fillColor="#33FFFFFF" - android:pathData="M27.6038221,6.11991768 C40.7924274,4.79654517 52.5567098,14.4152168 53.8800823,27.6038221 C55.2034548,40.7924274 45.5847832,52.5567098 32.3961779,53.8800823 C19.2075726,55.2034548 7.4432902,45.5847832 6.11991768,32.3961779 C4.79654517,19.2075726 14.4152168,7.4432902 27.6038221,6.11991768 Z M28.4025481,14.0799451 C19.6101445,14.9621935 13.1976968,22.8050484 14.0799451,31.5974519 C14.9621935,40.3898555 22.8050484,46.8023032 31.5974519,45.9200549 C40.3898555,45.0378065 46.8023032,37.1949516 45.9200549,28.4025481 C45.0378065,19.6101445 37.1949516,13.1976968 28.4025481,14.0799451 Z" /> - <path android:fillColor="#FFFFFF" - android:pathData="M25.2028561,6.48431564 C12.2155023,9.13370504 3.83492624,21.80979 6.48431564,34.7971439 C9.13370504,47.7844977 21.80979,56.1650738 34.7971439,53.5156844 C44.2988591,51.577357 51.5941458,44.163762 53.514681,34.8276709 C53.9598043,32.6638409 52.5665172,30.5488664 50.4026872,30.1037431 C48.2388572,29.6586198 46.1238826,31.0519068 45.6787593,33.2157369 C44.3979534,39.441981 39.5342463,44.3845633 33.1980959,45.6771229 C24.53986,47.4433825 16.0891367,41.8563318 14.3228771,33.1980959 C12.5566175,24.53986 18.1436682,16.0891367 26.8019041,14.3228771 C28.9664631,13.8813122 30.3632257,11.7686314 29.9216608,9.60407239 C29.4800959,7.43951342 27.3674151,6.04275074 25.2028561,6.48431564 Z" /> - </group> - </vector> -</rotate> diff --git a/android/lib/resource/src/main/res/drawable/icon_text_fields.xml b/android/lib/resource/src/main/res/drawable/icon_text_fields.xml deleted file mode 100644 index c3b8ccbbfc..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_text_fields.xml +++ /dev/null @@ -1,8 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="960" - android:viewportHeight="960"> - <path android:fillColor="#FF000000" - android:pathData="M280,800v-520L80,280v-120h520v120L400,280v520L280,800ZM640,800v-320L520,480v-120h360v120L760,480v320L640,800Z" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_tick.xml b/android/lib/resource/src/main/res/drawable/icon_tick.xml deleted file mode 100644 index 8185727a1c..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_tick.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <group> - <path android:fillColor="#FFFFFF" - android:pathData="M2.92646877,10.7979185 C2.25699855,10.1340272 1.17157288,10.1340272 0.502102661,10.7979185 C-0.167367554,11.4618098 -0.167367554,12.5381902 0.502102661,13.2020815 L7.35924552,20.0020815 C8.02871573,20.6659728 9.11414141,20.6659728 9.78361162,20.0020815 L23.4978973,6.40208153 C24.1673676,5.73819023 24.1673676,4.66180977 23.4978973,3.99791847 C22.8284271,3.33402718 21.7430014,3.33402718 21.0735312,3.99791847 L8.57142857,16.3958369 L2.92646877,10.7979185 Z" /> - </group> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_upload_file.xml b/android/lib/resource/src/main/res/drawable/icon_upload_file.xml deleted file mode 100644 index 29d87d78d2..0000000000 --- a/android/lib/resource/src/main/res/drawable/icon_upload_file.xml +++ /dev/null @@ -1,8 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="960" - android:viewportHeight="960"> - <path android:fillColor="#FF000000" - android:pathData="M440,760h80v-167l64,64 56,-57 -160,-160 -160,160 57,56 63,-63v167ZM240,880q-33,0 -56.5,-23.5T160,800v-640q0,-33 23.5,-56.5T240,80h320l240,240v480q0,33 -23.5,56.5T720,880L240,880ZM520,360v-200L240,160v640h480v-440L520,360ZM240,160v200,-200 640,-640Z" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icons_more_circle.xml b/android/lib/resource/src/main/res/drawable/icons_more_circle.xml deleted file mode 100644 index 331e12b080..0000000000 --- a/android/lib/resource/src/main/res/drawable/icons_more_circle.xml +++ /dev/null @@ -1,12 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <path - android:fillColor="#FFFFFF" - android:fillType="evenOdd" - android:pathData="M12,24A12,12 0,0 1,3.515 3.515a12,12 0,1 1,16.97 16.97A11.922,11.922 0,0 1,12 24zM10.445,16.044L10.445,17.6h3.111v-1.556zM7.333,12.155v1.556h9.333v-1.556zM5,8.267v1.556h14L19,8.267z" - android:strokeWidth="1" - android:strokeColor="#00000000" /> -</vector> diff --git a/android/lib/resource/src/main/res/drawable/icons_search.xml b/android/lib/resource/src/main/res/drawable/icons_search.xml deleted file mode 100644 index 732c13f4d2..0000000000 --- a/android/lib/resource/src/main/res/drawable/icons_search.xml +++ /dev/null @@ -1,22 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="#D8D8D8" - android:fillType="evenOdd" - android:pathData="M10.5,3C14.642,3 18,6.358 18,10.5c0,1.77 -0.613,3.397 -1.64,4.68l4.169,4.294c0.55,0.566 0.54,1.487 -0.02,2.057 -0.56,0.57 -1.46,0.574 -2.01,0.008l-4.352,-4.484c-1.08,0.602 -2.323,0.945 -3.647,0.945C6.358,18 3,14.642 3,10.5 3,6.358 6.358,3 10.5,3zM10.5,5C7.462,5 5,7.462 5,10.5S7.462,16 10.5,16 16,13.538 16,10.5 13.538,5 10.5,5z" /> - <group> - <clip-path android:pathData="M10.5,3C14.642,3 18,6.358 18,10.5c0,1.77 -0.613,3.397 -1.64,4.68l4.169,4.294c0.55,0.566 0.54,1.487 -0.02,2.057 -0.56,0.57 -1.46,0.574 -2.01,0.008l-4.352,-4.484c-1.08,0.602 -2.323,0.945 -3.647,0.945C6.358,18 3,14.642 3,10.5 3,6.358 6.358,3 10.5,3zM10.5,5C7.462,5 5,7.462 5,10.5S7.462,16 10.5,16 16,13.538 16,10.5 13.538,5 10.5,5z" /> - <path android:fillColor="#294D73" - android:fillType="evenOdd" - android:pathData="M0,0H24V24H0z" /> - </group> - <group> - <clip-path android:pathData="M11.604,3.299C15.715,3.804 18.639,7.546 18.134,11.657c-0.216,1.757 -1.022,3.297 -2.198,4.445l3.615,4.77c0.477,0.629 0.355,1.542 -0.271,2.039 -0.625,0.498 -1.519,0.392 -1.996,-0.237l-3.773,-4.981c-1.145,0.466 -2.421,0.655 -3.735,0.493C5.665,17.682 2.741,13.94 3.246,9.829 3.751,5.718 7.493,2.794 11.604,3.299zM11.36,5.284C8.345,4.914 5.601,7.057 5.231,10.073S7.004,15.832 10.02,16.202 15.779,14.429 16.149,11.413 14.376,5.654 11.36,5.284z" /> - <path android:fillAlpha="0.2" - android:fillColor="#FBFCFD" - android:fillType="evenOdd" - android:pathData="M11.22,15.518s-3.072,-0.351 -4.658,-2.381c-0.509,-0.652 -0.698,-2.087 -0.566,-4.305 0.349,1.468 0.949,2.774 1.802,3.917 1.325,1.697 3.422,2.77 3.422,2.77z" /> - </group> -</vector> diff --git a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt index 424bf0a406..33fdfd4ded 100644 --- a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt +++ b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt @@ -41,13 +41,13 @@ data class Dimensions( val largePadding: Dp = 32.dp, val listIconSize: Dp = 24.dp, val listItemDivider: Dp = 1.dp, - val miniPadding: Dp = 4.dp, val mediumPadding: Dp = 16.dp, val mediumSpacer: Dp = 16.dp, - val smallSpacer: Dp = 8.dp, + val miniPadding: Dp = 4.dp, val notificationBannerEndPadding: Dp = 8.dp, val notificationBannerStartPadding: Dp = 16.dp, val notificationEndIconPadding: Dp = 4.dp, + val notificationIconPadding: Dp = 10.dp, val notificationStatusIconSize: Dp = 10.dp, val obfuscationNavigationBoxWidth: Dp = 80.dp, val problemReportIconToTitlePadding: Dp = 60.dp, @@ -62,15 +62,16 @@ data class Dimensions( val sideMargin: Dp = 22.dp, val smallIconSize: Dp = 16.dp, val smallPadding: Dp = 8.dp, + val smallSpacer: Dp = 8.dp, val spacingAboveButton: Dp = 22.dp, val splashLogoSize: Dp = 120.dp, val splashLogoTextHeight: Dp = 18.dp, val successIconVerticalPadding: Dp = 26.dp, val switchIconSize: Dp = 24.dp, val switchLocationRetryMinWidth: Dp = 48.dp, + val tinyPadding: Dp = 4.dp, val titleIconSize: Dp = 48.dp, val topPadding: Dp = 20.dp, - val tinyPadding: Dp = 4.dp, val verticalDividerPadding: Dp = 12.dp, val verticalSpace: Dp = 20.dp, val verticalSpacer: Dp = 1.dp, |
