diff options
| author | David Göransson <david.goransson@mullvad.net> | 2025-05-14 17:11:28 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2025-05-15 13:23:27 +0200 |
| commit | 0ff8188be0b1506cb859c137367ab50958dc6193 (patch) | |
| tree | 7ee2a45611331159fb2170f07898486b031af0c1 /android | |
| parent | d42a97b1628eab8207f48e28a9e660632ee4bf5f (diff) | |
| download | mullvadvpn-0ff8188be0b1506cb859c137367ab50958dc6193.tar.xz mullvadvpn-0ff8188be0b1506cb859c137367ab50958dc6193.zip | |
Fix fail & success icon size
Diffstat (limited to 'android')
10 files changed, 93 insertions, 138 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CircularProgressIndicator.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CircularProgressIndicator.kt index 8d3def6425..aae37c3f0b 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CircularProgressIndicator.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CircularProgressIndicator.kt @@ -41,6 +41,7 @@ fun MullvadCircularProgressIndicatorLarge( ) { CircularProgressIndicator( modifier + .padding(Dimens.tinyPadding) .size(Dimens.circularProgressBarLargeSize) .testTag(CIRCULAR_PROGRESS_INDICATOR_TEST_TAG), color, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/SaveApiAccessMethodDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/SaveApiAccessMethodDialog.kt index a700c6cdec..528956286c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/SaveApiAccessMethodDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/SaveApiAccessMethodDialog.kt @@ -20,7 +20,7 @@ import com.ramcosta.composedestinations.result.ResultBackNavigator import com.ramcosta.composedestinations.spec.DestinationStyle import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.compose.button.PrimaryButton -import net.mullvad.mullvadvpn.compose.component.MullvadCircularProgressIndicatorMedium +import net.mullvad.mullvadvpn.compose.component.MullvadCircularProgressIndicatorLarge import net.mullvad.mullvadvpn.compose.preview.SaveApiAccessMethodUiStatePreviewParameterProvider import net.mullvad.mullvadvpn.compose.state.SaveApiAccessMethodUiState import net.mullvad.mullvadvpn.compose.state.TestApiAccessMethodState @@ -90,18 +90,14 @@ fun SaveApiAccessMethodDialog( painter = painterResource( id = - if ( - testingState is TestApiAccessMethodState.Result.Successful - ) { + if (testingState is TestApiAccessMethodState.Result.Successful) R.drawable.icon_success - } else { - R.drawable.icon_fail - } + else R.drawable.icon_fail ), contentDescription = null, ) TestApiAccessMethodState.Testing -> - MullvadCircularProgressIndicatorMedium( + MullvadCircularProgressIndicatorLarge( modifier = Modifier.testTag(SAVE_API_ACCESS_METHOD_LOADING_SPINNER_TEST_TAG) ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/PaymentDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/PaymentDialog.kt index 9e64e0f037..bf9de7e449 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/PaymentDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/PaymentDialog.kt @@ -19,7 +19,7 @@ import com.ramcosta.composedestinations.result.ResultBackNavigator import com.ramcosta.composedestinations.spec.DestinationStyle import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.compose.button.PrimaryButton -import net.mullvad.mullvadvpn.compose.component.MullvadCircularProgressIndicatorMedium +import net.mullvad.mullvadvpn.compose.component.MullvadCircularProgressIndicatorLarge import net.mullvad.mullvadvpn.compose.util.CollectSideEffectWithLifecycle import net.mullvad.mullvadvpn.lib.payment.model.ProductId import net.mullvad.mullvadvpn.lib.theme.AppTheme @@ -169,7 +169,7 @@ fun PaymentDialog( painter = painterResource(id = R.drawable.icon_fail), contentDescription = null, ) - PaymentDialogIcon.LOADING -> MullvadCircularProgressIndicatorMedium() + PaymentDialogIcon.LOADING -> MullvadCircularProgressIndicatorLarge() else -> {} } }, 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 9d0310e60c..f711938bca 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 @@ -8,7 +8,6 @@ import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll @@ -145,11 +144,15 @@ fun DeviceListScreen( onAccountClicked = null, snackbarHostState = snackbarHostState, ) { - Column(modifier = Modifier.fillMaxSize().padding(it)) { + Column( + modifier = + Modifier.fillMaxSize().padding(it).padding(bottom = Dimens.screenBottomMargin) + ) { val scrollState = rememberScrollState() Column( modifier = Modifier.drawVerticalScrollbar(scrollState, MaterialTheme.colorScheme.onSurface) + .padding(top = Dimens.screenTopMargin) .verticalScroll(scrollState) .weight(1f) .fillMaxWidth() @@ -221,25 +224,17 @@ private fun ColumnScope.DeviceListHeader(state: DeviceListUiState) { } ), contentDescription = null, // No meaningful user info or action. - modifier = - Modifier.align(Alignment.CenterHorizontally) - .padding(top = Dimens.iconFailSuccessTopMargin) - .size(Dimens.bigIconSize), + modifier = Modifier.align(Alignment.CenterHorizontally), ) is DeviceListUiState.Error -> Image( painter = painterResource(id = R.drawable.icon_fail), contentDescription = null, // No meaningful user info or action. - modifier = - Modifier.align(Alignment.CenterHorizontally) - .padding(top = Dimens.iconFailSuccessTopMargin) - .size(Dimens.bigIconSize), + modifier = Modifier.align(Alignment.CenterHorizontally), ) DeviceListUiState.Loading -> MullvadCircularProgressIndicatorLarge( - modifier = - Modifier.align(Alignment.CenterHorizontally) - .padding(top = Dimens.iconFailSuccessTopMargin) + modifier = Modifier.align(Alignment.CenterHorizontally) ) } @@ -301,7 +296,6 @@ private fun DeviceListButtonPanel( start = Dimens.sideMargin, end = Dimens.sideMargin, top = Dimens.spacingAboveButton, - bottom = Dimens.screenBottomMargin, ) ) { VariantButton( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt index 966e7fd57b..4ab0fba693 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt @@ -3,21 +3,22 @@ package net.mullvad.mullvadvpn.compose.screen import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue +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.compose.ui.tooling.preview.PreviewParameter -import androidx.compose.ui.unit.dp -import androidx.constraintlayout.compose.ConstraintLayout -import androidx.constraintlayout.compose.Dimension import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.dropUnlessResumed import com.ramcosta.composedestinations.annotation.Destination @@ -29,11 +30,13 @@ import com.ramcosta.composedestinations.navigation.DestinationsNavigator import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.compose.button.DeviceRevokedLoginButton import net.mullvad.mullvadvpn.compose.component.ScaffoldWithTopBar +import net.mullvad.mullvadvpn.compose.component.drawVerticalScrollbar import net.mullvad.mullvadvpn.compose.preview.DeviceRevokedUiStatePreviewParameterProvider import net.mullvad.mullvadvpn.compose.state.DeviceRevokedUiState import net.mullvad.mullvadvpn.compose.util.CollectSideEffectWithLifecycle import net.mullvad.mullvadvpn.lib.theme.AppTheme import net.mullvad.mullvadvpn.lib.theme.Dimens +import net.mullvad.mullvadvpn.lib.theme.color.AlphaScrollbar import net.mullvad.mullvadvpn.viewmodel.DeviceRevokedSideEffect import net.mullvad.mullvadvpn.viewmodel.DeviceRevokedViewModel import org.koin.androidx.compose.koinViewModel @@ -84,75 +87,62 @@ fun DeviceRevokedScreen( MaterialTheme.colorScheme.error } + val scrollState = rememberScrollState() ScaffoldWithTopBar( topBarColor = topColor, onSettingsClicked = onSettingsClicked, onAccountClicked = null, ) { - ConstraintLayout( + Column( modifier = Modifier.fillMaxSize() .padding(it) + .padding( + top = Dimens.screenTopMargin, + bottom = Dimens.screenBottomMargin, + start = Dimens.screenTopMargin, + end = Dimens.sideMargin, + ) + .verticalScroll(scrollState) + .drawVerticalScrollbar( + state = scrollState, + color = MaterialTheme.colorScheme.onSurface.copy(alpha = AlphaScrollbar), + ) .background(color = MaterialTheme.colorScheme.surface) ) { - val (icon, body, actionButtons) = createRefs() - Image( painter = painterResource(id = R.drawable.icon_fail), - contentDescription = null, // No meaningful user info or action. + contentDescription = null, modifier = - Modifier.constrainAs(icon) { - top.linkTo(parent.top, margin = 30.dp) - start.linkTo(parent.start) - end.linkTo(parent.end) - } - .padding(horizontal = 12.dp) - .size(Dimens.bigIconSize), + Modifier.align(Alignment.CenterHorizontally) + .padding(bottom = Dimens.mediumSpacer), + ) + Text( + text = stringResource(id = R.string.device_inactive_title), + style = MaterialTheme.typography.headlineLarge, + color = MaterialTheme.colorScheme.onSurface, ) - Column( - modifier = - Modifier.constrainAs(body) { - top.linkTo(icon.bottom, margin = 22.dp) - start.linkTo(parent.start, margin = 22.dp) - end.linkTo(parent.end, margin = 22.dp) - width = Dimension.fillToConstraints - } - ) { - Text( - text = stringResource(id = R.string.device_inactive_title), - style = MaterialTheme.typography.headlineLarge, - color = MaterialTheme.colorScheme.onSurface, - ) + Text( + text = stringResource(id = R.string.device_inactive_description), + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurface, + modifier = Modifier.padding(top = Dimens.smallPadding), + ) + if (state == DeviceRevokedUiState.SECURED) { Text( - text = stringResource(id = R.string.device_inactive_description), + text = stringResource(id = R.string.device_inactive_unblock_warning), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurface, - modifier = Modifier.padding(top = 10.dp), + modifier = Modifier.padding(top = Dimens.mediumPadding), ) - - if (state == DeviceRevokedUiState.SECURED) { - Text( - text = stringResource(id = R.string.device_inactive_unblock_warning), - style = MaterialTheme.typography.bodySmall, - color = MaterialTheme.colorScheme.onSurface, - modifier = Modifier.padding(top = 10.dp), - ) - } } - Column( - modifier = - Modifier.constrainAs(actionButtons) { - bottom.linkTo(parent.bottom, margin = 22.dp) - start.linkTo(parent.start, margin = 22.dp) - end.linkTo(parent.end, margin = 22.dp) - width = Dimension.fillToConstraints - } - ) { - DeviceRevokedLoginButton(onClick = onGoToLoginClicked, state = state) - } + Spacer(modifier = Modifier.weight(1f).defaultMinSize(minHeight = Dimens.verticalSpace)) + + // Button area + DeviceRevokedLoginButton(onClick = onGoToLoginClicked, state = state) } } } 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 021fba19d5..d07fad359f 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 @@ -40,7 +40,6 @@ import androidx.compose.ui.autofill.ContentType import androidx.compose.ui.draw.clip import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusProperties -import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource @@ -320,14 +319,13 @@ private fun ColumnScope.LoginInput( @Composable private fun LoginIcon(loginState: LoginState, modifier: Modifier = Modifier) { - Box(contentAlignment = Alignment.Center, modifier = modifier.size(Dimens.bigIconSize)) { + Box(contentAlignment = Alignment.Center, modifier = modifier) { when (loginState) { is Idle -> if (loginState.loginError != null) { Image( painter = painterResource(id = R.drawable.icon_fail), contentDescription = stringResource(id = R.string.login_fail_title), - contentScale = ContentScale.Inside, ) } else { // If view is Idle, we display empty box to keep the same size as other states diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt index 522c2f99c7..83febe7ea3 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt @@ -2,12 +2,12 @@ package net.mullvad.mullvadvpn.compose.screen import androidx.compose.foundation.Image import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.MaterialTheme @@ -171,6 +171,12 @@ fun OutOfTimeScreen( modifier = Modifier.fillMaxSize() .padding(it) + .padding( + top = Dimens.screenTopMargin, + start = Dimens.sideMargin, + end = Dimens.sideMargin, + bottom = Dimens.screenBottomMargin, + ) .verticalScroll(scrollState) .drawVerticalScrollbar( state = scrollState, @@ -183,16 +189,13 @@ fun OutOfTimeScreen( contentDescription = null, modifier = Modifier.align(Alignment.CenterHorizontally) - .padding(vertical = Dimens.screenTopMargin) - .size(Dimens.bigIconSize), + .padding(bottom = Dimens.mediumSpacer), ) Text( text = stringResource(id = R.string.out_of_time), style = MaterialTheme.typography.headlineLarge, color = MaterialTheme.colorScheme.onSurface, - modifier = - Modifier.padding(horizontal = Dimens.sideMargin) - .testTag(OUT_OF_TIME_SCREEN_TITLE_TEST_TAG), + modifier = Modifier.testTag(OUT_OF_TIME_SCREEN_TITLE_TEST_TAG), ) Text( text = @@ -205,12 +208,7 @@ fun OutOfTimeScreen( }, style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurface, - modifier = - Modifier.padding( - top = Dimens.mediumPadding, - start = Dimens.sideMargin, - end = Dimens.sideMargin, - ), + modifier = Modifier.padding(top = Dimens.mediumPadding), ) Spacer(modifier = Modifier.weight(1f).defaultMinSize(minHeight = Dimens.verticalSpace)) // Button area @@ -237,17 +235,11 @@ private fun ButtonPanel( navigateToVerificationPendingDialog: () -> Unit, ) { - Column { + Column(verticalArrangement = Arrangement.spacedBy(Dimens.buttonSpacing)) { if (state.tunnelState.isSecured()) { NegativeButton( onClick = onDisconnectClick, text = stringResource(id = R.string.disconnect), - modifier = - Modifier.padding( - start = Dimens.sideMargin, - end = Dimens.sideMargin, - bottom = Dimens.buttonSpacing, - ), ) } state.billingPaymentState?.let { @@ -257,35 +249,16 @@ private fun ButtonPanel( onPurchaseBillingProductClick(productId) }, onInfoClick = navigateToVerificationPendingDialog, - modifier = - Modifier.padding( - start = Dimens.sideMargin, - end = Dimens.sideMargin, - bottom = Dimens.buttonSpacing, - ) - .align(Alignment.CenterHorizontally), ) } if (state.showSitePayment) { SitePaymentButton( onClick = onSitePaymentClick, isEnabled = state.tunnelState.enableSitePaymentButton(), - modifier = - Modifier.padding( - start = Dimens.sideMargin, - end = Dimens.sideMargin, - bottom = Dimens.buttonSpacing, - ), ) } RedeemVoucherButton( onClick = onRedeemVoucherClick, - modifier = - Modifier.padding( - start = Dimens.sideMargin, - end = Dimens.sideMargin, - bottom = Dimens.screenBottomMargin, - ), isEnabled = state.tunnelState.enableRedeemButton(), ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt index 06ed29e298..207e5cfc26 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt @@ -242,7 +242,7 @@ fun ProblemMessageTextField( @Composable private fun ColumnScope.SendingContent() { MullvadCircularProgressIndicatorLarge(modifier = Modifier.align(Alignment.CenterHorizontally)) - Spacer(modifier = Modifier.height(Dimens.problemReportIconToTitlePadding)) + Spacer(modifier = Modifier.height(Dimens.mediumSpacer)) Text( text = stringResource(id = R.string.sending), style = MaterialTheme.typography.headlineLarge, @@ -256,11 +256,11 @@ private fun ColumnScope.SentContent(sendingState: SendingReportUiState.Success) Icon( painter = painterResource(id = R.drawable.icon_success), contentDescription = stringResource(id = R.string.sent), - modifier = Modifier.align(Alignment.CenterHorizontally).size(Dimens.dialogIconHeight), + modifier = Modifier.align(Alignment.CenterHorizontally), tint = Color.Unspecified, ) - Spacer(modifier = Modifier.height(Dimens.problemReportIconToTitlePadding)) + Spacer(modifier = Modifier.height(Dimens.mediumSpacer)) Text( text = stringResource(id = R.string.sent), style = MaterialTheme.typography.headlineLarge, @@ -310,10 +310,10 @@ private fun ColumnScope.ErrorContent(retry: () -> Unit, onDismiss: () -> Unit) { Icon( painter = painterResource(id = R.drawable.icon_fail), contentDescription = stringResource(id = R.string.failed_to_send), - modifier = Modifier.size(Dimens.dialogIconHeight).align(Alignment.CenterHorizontally), + modifier = Modifier.align(Alignment.CenterHorizontally), tint = Color.Unspecified, ) - Spacer(modifier = Modifier.height(Dimens.problemReportIconToTitlePadding)) + Spacer(modifier = Modifier.height(Dimens.mediumSpacer)) Text( text = stringResource(id = R.string.failed_to_send), style = MaterialTheme.typography.headlineLarge, diff --git a/android/lib/resource/src/main/res/drawable/icon_fail.xml b/android/lib/resource/src/main/res/drawable/icon_fail.xml index 3f934a1300..efe8f0c89d 100644 --- a/android/lib/resource/src/main/res/drawable/icon_fail.xml +++ b/android/lib/resource/src/main/res/drawable/icon_fail.xml @@ -1,10 +1,12 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="44dp" - android:height="44dp" - android:viewportWidth="44" - android:viewportHeight="44"> - <path android:pathData="M22,22m-22,0a22,22 0,1 1,44 0a22,22 0,1 1,-44 0" - android:fillColor="#fff" /> - <path android:pathData="m25.147,22 l7.875,-7.872A2.225,2.225 0,0 0,29.875 10.982l-7.875,7.872L14.125,10.982A2.225,2.225 0,0 0,10.977 14.128l7.875,7.872 -7.875,7.871a2.225,2.225 0,0 0,3.147 3.146l7.875,-7.872 7.875,7.872a2.225,2.225 0,0 0,3.147 -3.146l-7.875,-7.872z" - android:fillColor="#e34039" /> + android:width="48dp" + android:height="48dp" + android:viewportWidth="48" + android:viewportHeight="48"> + <path + android:pathData="M24,44C35.046,44 44,35.046 44,24C44,12.954 35.046,4 24,4C12.954,4 4,12.954 4,24C4,35.046 12.954,44 24,44Z" + android:fillColor="#ffffff"/> + <path + android:pathData="M26.861,24L34.02,16.844C34.393,16.463 34.602,15.95 34.599,15.417C34.597,14.884 34.384,14.373 34.007,13.996C33.629,13.619 33.118,13.406 32.585,13.404C32.052,13.401 31.539,13.61 31.159,13.984L24,21.14L16.841,13.984C16.461,13.604 15.947,13.391 15.41,13.391C14.874,13.391 14.359,13.603 13.98,13.983C13.6,14.362 13.387,14.876 13.387,15.413C13.387,15.95 13.599,16.464 13.979,16.844L21.138,24L13.979,31.155C13.605,31.536 13.397,32.049 13.399,32.582C13.402,33.115 13.615,33.626 13.992,34.003C14.369,34.38 14.88,34.593 15.413,34.595C15.947,34.598 16.459,34.389 16.84,34.015L23.999,26.859L31.158,34.015C31.538,34.389 32.051,34.598 32.584,34.595C33.118,34.593 33.628,34.38 34.006,34.003C34.383,33.626 34.596,33.115 34.598,32.582C34.601,32.049 34.393,31.536 34.019,31.155L26.86,23.999L26.861,24Z" + android:fillColor="#E34039"/> </vector> diff --git a/android/lib/resource/src/main/res/drawable/icon_success.xml b/android/lib/resource/src/main/res/drawable/icon_success.xml index 1b15d4c1c4..2f0cf6d924 100644 --- a/android/lib/resource/src/main/res/drawable/icon_success.xml +++ b/android/lib/resource/src/main/res/drawable/icon_success.xml @@ -1,11 +1,12 @@ -<?xml version="1.0" encoding="utf-8"?> <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="44dp" - android:height="44dp" - android:viewportWidth="44.0" - android:viewportHeight="44.0"> - <path android:fillColor="#fff" - android:pathData="M22,22m-22,0a22,22 0,1 1,44 0a22,22 0,1 1,-44 0" /> - <path android:fillColor="#44AD4D" - android:pathData="M11.4142136,20.5857864 C10.633165,19.8047379 9.366835,19.8047379 8.5857864,20.5857864 C7.8047379,21.366835 7.8047379,22.633165 8.5857864,23.4142136 L16.5857864,31.4142136 C17.366835,32.1952621 18.633165,32.1952621 19.4142136,31.4142136 L35.4142136,15.4142136 C36.1952621,14.633165 36.1952621,13.366835 35.4142136,12.5857864 C34.633165,11.8047379 33.366835,11.8047379 32.5857864,12.5857864 L18,27.1715729 L11.4142136,20.5857864 Z" /> + android:width="48dp" + android:height="48dp" + android:viewportWidth="48" + android:viewportHeight="48"> + <path + android:pathData="M24,44C35.046,44 44,35.046 44,24C44,12.954 35.046,4 24,4C12.954,4 4,12.954 4,24C4,35.046 12.954,44 24,44Z" + android:fillColor="#ffffff"/> + <path + android:pathData="M14.377,22.725C14.034,22.386 13.572,22.197 13.091,22.197C12.61,22.197 12.148,22.386 11.806,22.725C11.638,22.891 11.504,23.089 11.413,23.308C11.322,23.526 11.275,23.761 11.275,23.997C11.275,24.234 11.322,24.468 11.413,24.687C11.504,24.905 11.638,25.103 11.806,25.27L19.078,32.482C19.421,32.82 19.882,33.01 20.364,33.01C20.845,33.01 21.307,32.82 21.649,32.482L36.195,18.057C36.363,17.891 36.496,17.692 36.587,17.474C36.678,17.255 36.725,17.021 36.725,16.785C36.725,16.548 36.678,16.314 36.587,16.095C36.496,15.877 36.363,15.678 36.195,15.512C35.852,15.174 35.39,14.984 34.909,14.984C34.428,14.984 33.966,15.174 33.624,15.512L20.364,28.662L14.377,22.725Z" + android:fillColor="#44AD4D"/> </vector> |
